中国领先的IT技术网站
|
|

【博文推荐】使用Fuel安装OpenStack juno之使用OpenStack创建云主机和Volume

在云中,基本的概念就是租户和用户,例如X公司买了某公司的公有云,那以X公司为例,就是一个租户,而这个公司买了N多云主机给公司的员工使用,这些员工就是用户。那角色又是什么呢,这个租户中有N多云主机,总有人来管理和分配的,那这个管理员就是admin角色,而其他的用户就是普通用户,也可以适当的赋权给他们,这个角色可以理解为一系列权限的合集。

作者:yishuizhao来源:51CTO博客|2015-02-06 09:39


本博文出自51CTO博客yishuizhao博主,有任何问题请进入博主页面互动讨论!
博文地址:http://tianhunyongheng.blog.51cto.com/1446947/1607676


在云中,基本的概念就是租户和用户,例如X公司买了某公司的公有云,那以X公司为例,就是一个租户,而这个公司买了N多云主机给公司的员工使用,这些员工就是用户。那角色又是什么呢,这个租户中有N多云主机,总有人来管理和分配的,那这个管理员就是admin角色,而其他的用户就是普通用户,也可以适当的赋权给他们,这个角色可以理解为一系列权限的合集。

这个租户、用户和角色的创建分配,我就不演示了,相信做IT的基本都应该了解。我们默认的OpenStack环境是有一个admin的租户,有一个admin的用户,拥有admin的权限,咱们就是用默认的做实验即可。

其一:创建云主机,并可以SSH登录

在部署完成后,Fuel Master就可以关机,或者放在一边了,完全不影响openstack的环境使用了。但是如果整个openstack环境都关机了,那么开机也有个顺序,我们先打开controller,等开机后再打开compute主机,这样各个服务才能找到他的服务器通信。

为了演示,我把controller内存调整为1.5G,compute内存调整为3G,以便于创建虚机,如果计算节点内存分配过小,那么创建云主机的时候就会报错。

首先开启controller主机,然后再开启compute主机

还记的之前部署环境的openstack的UI地址吧:172.16.0.2,用户密码同为admin

这里提示cookies问题,刷新浏览器或重启浏览器后可以解决

进入到咱们工作平台啦

咱们首先看看这个网络,还记得Fuel UI的如下网络嘛,相信很多朋友不理解这是干什么的。这里解释下这个192.168.111.0网段是给云主机内部使用的,但是仅限于虚拟机内部通信,不能和这个网络之外通信或者上网。那这个172.16.0.0网段就是外部网络了,也是咱们可以分配给云主机做floating IP使用的地址段,这两部分都可以调整,在下面继续介绍。

在openstack UI界面,打开“network topology”,看一下我们使用的网络拓扑,未来云主机都会接在“net04”这个网络上,分配的IP地址也是192.168.111.0这个网段的,网关指向中间的路由器,网关地址是192.168.111.1,这个路由链接的就是咱们的公开网络“net04_ext”这是我们的外部网络,也就是跟咱们的PC机在一个网段或者互通了。

接下来就开始创建云主机(虚机),我们打开instances界面,单击右上角的“launch instance”开始创建

在弹出的窗口内,“details”是云主机的相关信息,“access&security”是选择安全组,默认是defaults安全组,“networking”是选择管理的网络,“post-creation”是创建云主机后需要运行的脚本信息,需要自己添加,这几个是必须的

在“details”选项内,填写新建云主机名字“test01”,flavor类型可以查看flavor菜单,里面有很多类型,针对默认的一个迷你操作系统,定义了CPU,内存和硬盘灯资源,咱们也可以收到修改,很容易理解,我就不再演示,咱们这里选择“m1.tiny”,也就是如右边所展示的包含1个vCPU、一个1G的磁盘和512M的内存,创建数量选择1,如果是批量创建,就选择你要创建的数量,例如20,当然你要计算好这个计算节点可以承受的虚机数量,包含CPU\RAM\DISK等资源,“instance boot source”选择“boot from image”,“image name”选择“testVM(12.6MB)”,这是个迷你操作系统。

“access&security”选择默认的default即可,networking则是选择net04,也可以手动创建多个不同网段的内网,只要你需要,我们这里选择关联net04,当然这里不能直接关联公共网络。

后面选择默认即可。点击右下角的“launch”后开始创建虚机,根据磁盘等资源的大小,等待一段时间后创建完成,下图显示正在创建

如下是已经创建完成的云主机,“status”显示active,IP地址是192.168.111.3,这里应该明白点了吧

现在的云主机只能使用VNC来访问,这个VNC的效果真是不敢恭维,所以我习惯使用CRT来访问,那么按照前面说的,这个虚机现在只有192.168.111.3这个私有IP,这个IP只能是多个云主机之前通信,需要外部通信的话,还需要分配一个172.16.0.0的IP地址,直接在云主机内存添加网卡手动配置可不可以,当然不行,在openstack中floating IP也是一种资源,需要从IP地址池中拿出一个IP来跟云主机做关联。这里演示下。

在该云主机的嘴右边“actions”下有一个下拉菜单,单击,然后选择“associate floating ip”

在新弹出窗口内,我们还没看到公开网络,单击中间的+号,在下面的新窗口内选择“net04_ext”网络,单击右下角的associate进行关联

这时,回到floating ip管理页,可以看到公开网络的网段了,默认分配的172.16.0.131,当然也可以手动选择,单击右下角的associate

好了,回到instance界面,看到此时已经分配了floating ip了

那现在可以ping或者SSH了吗,当然不可以,这是由于安全策略的缘故,我们得修改下策略来放行ICMP和SHH

打开“access & security”菜单,这里默认只有default一组安全组,我们也可以创建,但是新创建的话还是得手动再跟云主机管理,而默认组已经默认关联了,我们只要修改策略就可以了,所这里我们直接修改,不再添加安全组了。

单击default安全组左边的“manage rules”

在新窗口,单击右上角的“add rule”

先添加ICMP,在“rule”栏选择“ALL ICMP”,下面默认全部放行即可

看看,是不是可以ping通了

接下来如上方法,添加SSH规则

添加完毕,规则如下

放行了SSH就可以远程登陆了,但是用户名和密码呢。如是自己上传的镜像,相信自己都晓得,也别担心,这openstack自带的镜像用户名和密码在这里。

回到instances菜单,单击云主机名称“test01”

“overview”可以看到云主机的信息概览,在“log”里面可以看此云主机的log

拉到最低如下,可以看到用户名cirros和密码cubswin:)

那现在可以使用CRT登陆了,如下。

创建云主机完毕,也可以SSH登陆了,当然大家也可以批量创建,省心不少,也可以上传自己的镜像,比较这个自带的镜像只是用来测试的,甚至大家可以上传IOS镜像,这个如有时间,以后再做介绍。

其二:给云主机附加磁盘volume

上面已经跟大家介绍了怎么创建和访问云主机,接下来介绍怎么给虚机附加磁盘。

那么为什么要给云主机增加额外的磁盘呢。

这就看需求了,一是虚机时创建在本地,还是共享存储;二是很多客户习惯本地只有OS信息,而数据则保存在其他地方以保护数据。

总之有需求就有市场,每个客户都有自己的需求和架构,如果是需要额外磁盘,那么openstack的cinder可以提供块存储。

接下来开始动手实践。

我的所有虚机都已关机,接下来按照顺序依次打开Master->controller->compute主机,如图FUEL UI可以正常访问

openstack UI可以正常访问了

要想使用volume得安装和配置cinder服务,我之前没有配置此服务,所以这里需要再创建一个虚机来作为cinder使用,同时也是compute主机,以后做迁移的实验来用,当然其实在第一次部署的时候,我们就可以把cinder功能同controller或者compute主机一同部署在同一台主机上这样这个功能就直接可用了,我这里是考虑以后的实验和演示效果,所以单独创建了一台虚机,如下图的cinder主机,跟之前的虚机设定是一样的,为了节省资源我给了大概800M内存,怎么开机

已经自动从PXE启动

启动过程中咱们进入darshboard,看一下instance,他还在,只是我上次实验完成就关机了

cinder主机马上引导完成

FUEL已经检测到了主机

如之前,选择新增主机,我们选中主机,然后分配compute和storage-cinder两个角色

选择如下

应用变更

然后跟之前虚机相同更改网络接口如下

选中该主机

单击右上角的部署变更

确认变更信息

开始部署了,这就是FUEL的方便性,而且我们已经在生产环境部署了,效果还可以。

奇怪的是,这里提示启动失败,于是随意按键重新引导

正常引导安装,没有其他意外

centos安装完成,接下来开始安装部署openstack的cinder和nova组件

这个时间不长,完成了。

咱们看一下三台虚机安装的服务,可以看到controller的服务最多,有cinder的api和schedule,而volume服务在cinder主机上,compute主机上没有cinder服务,这下我们可以理解部署了cinder的volume服务才可以使用云磁盘

展开“volumes”,单击右上角的“create volume”来创建云磁盘

在新弹出窗口填写磁盘名字和磁盘大小,我这里默认1G来做实验,其他默认即可

创建完成,主要看“status”为available即为正常

这时我们需要展开instances,单击“start instance”来启动云主机,以便于附加磁盘

我是I3的CPU和8GB内存,大家可以看看我此时的资源占用情况

主机启动完成,我们看下主机内部分配的IP地址

然后展开“network topology”看下网络拓扑,大家应该可以大概了解咱们的虚机、内网、路由和公共网络的关系了

再回头看看部署时的这张图

好了,既然volume创建完成,虚机依然开启,那么接下来开始分配磁盘给云主机,展开volumes,在希望分配的磁盘后面单击下拉菜单,选择“edit attachments”

在新窗口选择要把此volume附加给哪台虚机,咱们这只有test01

此时,再看已经分配出去了,而且可以看到在云主机上此volume是/dev/vdb,要记得这里

分配完成了,看看主机是否识别,使用CRT连接到云主机,由于这是mini Ubuntu系统,使用管理命令需要sodu,使用sudo fdisk -l看下是否识别到了vdb

从上面看已经识别到了,然后咱们开始格式化,命令如下

然后格成文件系统并挂载

挂载后可以正常使用喽,是不是很好用啊。

那怎么卸载呢,是不是直接删除volume就可以了呢,当然不行,反正之前Havana版本直接删除volume会一直卡在删除状态,需要手动再底层删除,UI界面是没办法了,这也是一个BUG,不知道在juno版本有没有修复,你们可以测试下。

当然那也不是正常的操作流程,那么我们按照正常流程走一遍。

首先需要我们在云主机上umount该磁盘,如下

然后回到“vilumes”界面,在右侧的下拉菜单依旧选择“edit attachments”

在新弹出窗口选择detach volume

确认

现在可以看到volume已经detach了,就是和云主机解除绑定了。

以上是关于volume的操作。

我这实际环境中使用的情形跟大家分享下:

我这里云主机创建在本地,cinder使用共享存储,数据全部存储在volume上,一旦虚机出现问题或者物理主机故障,会把volume再挂载到其他主机上,这样可以保证数据不丢失,也是针对目前openstack HA功能缺失或者不完善的一种不完美的解决方案。

接下来如果有时间,我会写一下虚机迁移等实验。

【责任编辑:Ophira TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

实时UML与Rational Rose RealTime建模案例剖析

本书将实时系统、实时统一建模语言、实时系统的统一开发过程和Rational Rose RealTime建模环境有机地结合起来,以案例为基础,系统地介绍了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊