openstack 虚拟机单台虚拟机配置可以超过物理服务器的配置吗

您的位置:
OpenStack安装部署管理中常见问题解决方法
日 01:32:36 | 作者:佚名 | 来源:csdn
摘要:OpenStack在开源云计算世界里谈的很是火热,也有许多来人开始安装和部署OpenStack,在这个过程中很多人都遇到了问题,本文针对一些常见的问题提供了解决办法。
在世界里谈的很是火热,也有许多来人开始安装和部署OpenStack,在这个过程中很多人都遇到了问题,本文针对一些常见的问题提供了解决办法。
一、网络问题-network
更多网络原理机制可以参考《OpenStack云平台的网络模式及其工作机制》。
1.1、控制节点与网络控制器区别
OpenStack平台中有两种类型的物理节点,控制节点和计算节点。控制节点包括网络控制、调度管理、api服务、存储卷管理、数据库管理、身份管理和镜像管理等,计算节点主要提供nova-compute服务。
控制节点的服务可以分开在多个节点,我们把提供nova-network服务的节点称为网络控制器。
1.2、OpenStack中nova-network的作用
OpenStack的网络由nova-network(网络控制器)管理,它会创建虚拟网络,使主机之间以及与外部网络互相访问。
OpenStack的API服务器通过消息队列分发nova-network提供的命令,这些命令之后会被nova-network处理,主要的操作有:分配ip地址、配置虚拟网络和通信。
1.3、OpenStack中Flat与FlatDHCP区别
Flat(扁平): 所有实例桥接到同一个虚拟网络,需要手动设置网桥。
FlatDHCP: 与Flat(扁平)管理模式类似,这种网络所有实例桥接到同一个虚拟网络,扁平拓扑。不同的是,正如名字的区别,实例的ip提供dhcp获取(nova-network节点提供dhcp服务),而且可以自动帮助建立网桥。
1.4、OpenStack中Flat与vLAN区别
在两种Flat模式里,网络控制器扮演默认网关的角色,实例都被分配了公共的IP地址(扁平式结构,都在一个桥接网络里)。
vLAN模式功能丰富,很适合提供给企业内部部署使用。但是,需要支持vLAN的switches来连接,而且相对比较复杂,在小范围实验中常采用FlatDHCP模式。
1.5、OpenStack中网络流向是怎样的,都经过网络控制器吗
多节点时,网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有nova-network控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。
可以通过multi_host等高可用性部署方式改变这个单点故障问题。
1.6、OpenStack单网卡怎么配置?
配置好服务器的网络(混杂模式);
/etc/nova/nova.conf那一块,public_interface和flat_interface都改成这个单网卡的名称即可,比如在脚本oneStack.sh 改动2处:
/etc/network/interfaces设置那一块,去掉第2个网卡的设置(eth1);
/etc/nova/nova.conf那一块,eth1修改为eht0(flat的网卡)。
这样,在这个网卡上,既有外网的网络,又有flat网络。详见《OpenStack云平台的网络模式及其工作机制》。
1.7、OpenStack中网络流向是怎样的,都经过网络控制器吗
多节点时,网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有nova-network控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。
可以通过multi_host等高可用性部署方式改变这个单点故障问题。
1.8、OpenStack中网络nova.conf与nova-manage network create分别做什么
设定floating ip和fixed ip在配置文件nova.conf里面有提到,可是为什么还要nova manager create呢,系统最终调用的是哪个呢?
fixed_ip=10.0.0.1/27
nova-manage network create 是创建项目的网络,每个项目有自己的ip范围,它必须在nova.conf范围内。
这个create过程是填充数据库的过程,后面会根据数据库的状态分配ip。
1.9、OpenStack中网络注意问题
1)openstack中,nova-manage create用来创建虚拟机运行时所需的内网,并且将相关的IP地址记录到fixed_ips数据表中。但是,当调用nova-manage delete 时,并不会自动的删除fixed_ips中的内容,需手动进行删除。
2)采用FlatDHCP方式部署openstack,在开放了icmp和ssh22端口的情况下,仍然无法通过控制节点连接到虚拟机实例。此时应该检查控制节点的ip配置信息ip addr。
3)FlatDHCP模式下,network_size是整个fixed_ip range中的所有ip数。例如在一个A类/12的网络中,有2^20个IP地址,所有的这些IP地址都要写入数据库fixed_ips表中,这将会花费很长时间,导致出现假死。
4)如果采用FlatManager的网络模式,则必须手动建立相关的网桥,以便虚拟机实例之间以及和主机之间通信。
而且,必须手动的将虚拟机实例的内部IP加入到nova数据库的fixed_ips表中。
此外,fiexed_ips表保着所有可供虚拟机实例使用的内部IP,每次发起一个新的虚拟机实例,openstack的网络服务部分,根据fixed_ips表中的内容分配给该实例IP。如果用户希望保留特定的IP地址,需要将数据库中该IP对应的reserved字段设置为1。
二、问题-virtual
2.1、OpenStack中控制节点和计算节点配置nova.conf一样吗
多节点时,网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有nova-network控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。
可以通过multi_host等高可用性部署方式改变这个单点故障问题。
计算节点的nova.conf并不是与控制节点完全一样,主要是
--vncserver_proxyclient_address=
--vncserver_listen=
应该是计算节点的ip。
2.2、OpenStack执行 virsh -c qemu:///system list,一直挂起在那里(hang),怎么解决
killall -9 dmidecode
dmidecode是一个管理工具,在虚拟机装OpenStack中需要用到,用在libvirt中,但在有的机器中会出现hang up的情况,这时候需要kill掉它。
2.3、OpenStack中虚拟化技术在哪里配置
主要两个文件:nova.conf nova-compute.conf。
其中的虚拟技术应该一致,比如都为kvm,或者都为qemu。
2.4、OpenStack中虚拟机中nova-compute经常启动失败,virsh list显示空白,怎么解决
1. 在vmware workstation上的虚拟机需要修改 *.vmx文件
vcpu.hotadd = "TRUE"
vcpu.hotadd = "FALSE"
重新启动机器,如果执行命令:
进入控制台就没有问题了。
2. 修改nova配置文件/etc/nova/nova.conf
#--libvirt_type=kvm
更改为qemu
--libvirt_type=qemu
3. 修改/etc/nova/nova-compute.conf
--libvirt_type=qemu
4. 重新启动nova-compute,如果libvirt报错
/var/log/libvirt/libvirtd.log
Cannot find 'pm-is-supported' in path: No such file or directory
报错后需要安装
apt-get install pm-utils
2.5、noVNC不能连接到实例,提示“Connection Refuesd”,什么原因
可能是控制节点在收到vnc请求的时候,无法解析计算节点的主机名,从而无法和计算节点上的实例建立连接。
另外可能是,当前浏览器不支持或者不能访问,将计算节点的ip和主机名的对应关系加入到控制节点的/etc/hosts文件中。
三、存储、卷问题-volume、lvm
3.1、OpenStack中创建volume一直在creating,什么原因
主要因为nova-volume没有正常启动,可以
nova-manage service list
看看后面的状态,不是笑脸:-)而是xx。如果没有启动,请看下一条。
3.2、OpenStack中nova-volume服务不能启动,什么原因
主要因为没有nova-volumes卷组,或者iscsitarget服务没有启动(或者没有安装)。
1、vgdisplay
没有nova-volumes卷组,可以创建卷组和磁盘
$ dd if=/dev/zero of=/opt/nova-volumes.img bs=1M seek=100000 count=0
$ losetup -f /opt/nova-volumes.img
$ losetup -a
$ vgcreate nova-volumes /dev/loop0
记着启动nova-volume然后创建volume,否则下面仍然不能创建
$ service nova-volume restart
$ nova volume-create --display_name "volume1" 10
2、service iscsitarget status
1)没有安装iscsitarget,可以apt安装;
然后执行以下命令安装和设置为可以启动
apt-get install -y iscsitarget iscsitarget-dkms lvm2
sed -i -e 's/false/true/' /etc/default/iscsitarget
service iscsitarget start
service nova-volume start
2)状态为stop,可以start
service iscsitarget start
3)如果既没有nova-volumes卷组,也没有安装iscsitarget,切忌保证这两者都存在,然后重启nova-volume,再创建volume
有人安装iscsitarget并启动后就create,结果nova-volume并没有启动,所以问题依然存在;
有人创建nova-volumes,也没有重启nova-volume,也不能正常工作。
3.3、OpenStack中创建volume一直在creating,怎么停掉(stop)
主要因为nova-volume没有正常启动,可以
nova-manage service list
看看后面的状态,不是笑脸:-)而是xx。如果没有启动,请看下一条。
3.4、OpenStack中nova-volume执行出现问题,检查什么地方
主要因为nova-volume没有正常启动或者计算节点没有能找到target,可以检查以下这些问题。
nova-volume是否正常;控制点,详见问题3.2
iscsitarget是否开启;服务端
open-iscsi是否安装和开启;客户端
客户端(计算节点)iscsiadm discovery看看能不能找到存储服务;
分析nova-volume.log。
3.5、OpenStack中nova-volume管理target
控制节点查看target
tgtadm --lld iscsi --op show --mode target
建立target
sudo tgtadm --op new --lld=iscsi --mode=target --tid=1 --targetname=iqn.2010-10.org.openstack:volume-
3.6、OpenStack中计算节点管理volume
查看session
sudo iscsiadm -m session
手动发现target
sudo iscsiadm -m discovery -t sendtargets -p IP:port
sudo iscsiadm -m node -T targetname(iqn.2010-10.org.openstack:volume-) -p 10.200.200.4:3260 --login
sudo iscsiadm -m node -T targetname(iqn.2010-10.org.openstack:volume-) -p 10.200.200.4:3260 --logout
sudo iscsiadm -m node -o [delete|new|update] -T targetname
四、OneStack安装问题
4.1、OpenStack能在普通的PC机上跑吗?
普通pc没有试过,这也不是它需要支持的对象。但是普通pc一样可以工作的。
官网的配置,只是对于稍有一定规模的部署(配置并不算高,甚至是服务器最基本的要求)
现在服务器基本都64位,但是它也指出了,32位的可以工作的,只是不能运行64位的操作系统实例,自己改一下镜像就可以。还有不支持vt技术的,我没有试过。
双网卡也不是必须的,一个对内,一个对外。可以更改配置。详见1.6单网卡安装。
其它的基本就是自由的。
4.2、OneStack简单安装需要改哪些地方?
1、切换到root,oneStack.sh删除设置root密码、设置locale、设置apt这3段(为了方便刚安装新系统的用户加入的可选的步骤,setup_base.sh没有这3段)
2、设置ip等参数 OUT_IP 外网ip(注意这是相对于OpenStack?内部网络的) OUT_IP_PRE 外网ip前缀(脚本后面出现ip不用管,会被这个参数替换) FLOAT_IP 浮动ip
3、裸机的话qemu改成kvm (对于xen之类的未加入支持) VIRT_YPE
4、网络设置,会替换掉你原来的,不想替换就删掉这一段 设置cat写入interfaces文件(注意,那里面pre-up手动设置了网卡mac,不需要的自行去掉;单网卡去掉eth1的设置即可)
5、执行oneStack.sh 或者setup_base.sh(基本系统,没有添加镜像和实例,可以setup_test.sh)
其它没有需要更改的(数据库密码等自行更改无影响)。 里面有个image是从ubuntu官网下载,可能需要一些时间 (svn checkout,里面还有一些删除之类的工具)
4.3、OneStack单网卡安装需要改哪些地方?
除了4.2所述部分外
1)在配置interfaces时,去掉eth1部分;
2)后面nova.conf设置里面,eth1改为eth0(public_interface)。
4.4、OneStack多节点安装需要改哪些地方?
控制节点使用oneStack.sh,如果不需要安装nova-compute去掉即可;
计算节点执行addComputeNode.sh
注意nova.conf配置其余一样,只是
--vncserver_proxyclient_address=
--vncserver_listen=
应该是计算节点的ip。
4.5、OneStack安装后怎么清空nova数据,包括实例和volume等?
控制节点执行resetStack.sh clear,清空数据库;
再执行resetStack.sh重新初始化数据库。
五、镜像问题-image
5.1、OpenStack中可以使用windows吗
虚拟出来的实例基本与普通的主机一样,所以基本上所有系统都可以使用,制作相应的镜像即可。
5.2、OpenStack怎么制作Windows镜像
建立镜像文件
kvm-img create -f raw windowsxp.img 10G
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-22.iso
启动安装到镜像
kvm -m 1024 -cdrom winxp.iso -drive file=windowsxp.img,if=virtio,boot=on -drive file=virtio-win-0.1-22.iso,media=cdrom -boot d -nographic -vnc :0
可以vnc查看以及操作安装过程
vncviewer 192.168.139.50:5900
(注意,5900最后一位与vnc :0对应,如果端口占用可以改为1、2、3等,vncviewer 5901等)
glance add name="WindowsXP" is_public=true container_format=ovf disk_format=raw & windowsxp.img
5.3、OpenStack怎么制作CentOS镜像
kvm-img create -f raw centos.img 5G
kvm -m 2048 -cdrom CentOS-6.2-i386.iso -drive file=centos.img -boot d -net nic -nographic -vnc :1
操作安装过程
vncviewer 192.168.139.50:5901
再次启动安装好的镜像
kvm -m 2048 -drive file=centos.img -boot c -net nic -nographic -vnc :1
在虚拟机内部安装ssh,以便可以远程登录实例
yum install openssh-server
service sshd start (虚拟机内部)
chkconfig sshd on (不然,重启又不能ssh)
glance add name="CentOS6.2" is_public=true container_format=ovf disk_format=raw & centos.img
要使虚拟机内部访问外网,需要在节点上执行
sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1 (vi /proc/sys/net/ipv4/ip_forward)
5.4、OpenStack怎么Linux登录ubuntu
官方提供的镜像需要使用密钥登录,也就是启动实例的时候使用的那个key(不用key启动ubuntu实例是没法ssh登录的)
ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
在外网登录使用
要访问外网注意设置节点上
sysctl -w net.ipv4.ip_forward=1
5.5、OpenStack怎么novnc浏览器访问登录ubuntu
在能使用vnc的地方,浏览器输入地址可以访问系统。
控制节点上
nova get-vnc-console 4 novnc
得到一个url,例如
+-------+-------------------------------------------------------------------------------------+
| Type | Url |
+-------+-------------------------------------------------------------------------------------+
| novnc | http://192.168.139.50:6080/vnc_auto.html?token=ca2455e8-fcc9-447f-92ee-853b92b37cdb |
+-------+-------------------------------------------------------------------------------------+
浏览器中使用这个url访问。
5.6、OpenStack怎么Windows登录ubuntu
下载启动实例的时候使用的那个key(不用key启动ubuntu实例是没法ssh登录的)
ssh登录工具里面选择key认证方式,auth里面上传这个private key
然后ssh登录,输入用户名ubuntu,直接登录。
5.7、OpenStack可以密码登录ubuntu而不是密钥吗
默认的镜像通过注入密钥的方式,ssh是需要密钥认证的方式登录,不允许密码登录的;
设置别的用户比如root密码后,在vnc里面可以通过密码登录;
可以自己制作镜像,参考制作CentOS镜像那样,使用密码登录。
六、实例问题-instance
6.1、OpenStack中实例是什么意思
简单的说,一个实例就是一个跑着操作系统的虚拟机。
6.2、OpenStack中实例怎么访问
在OpenStack内部,可以使用内网ip(fixed ip)访问。
外部,可以使用floating ip访问。
注意设置相应的访问规则,比如ssh端口,防火墙规则,ipv4_forward等。
可以vnc访问,vnc浏览器访问。
Linux系统可以ssh登录,桌面系统也可以安装xrdp实现远程桌面访问;
Windows系统可以远程桌面连接。
6.3、OpenStack中怎么管理实例
可以web端(dashboard)访问,图形化操作管理。也可以使用api,如下:
## 1:上传实例
wget http://cloud-/precise/current/precise-server-cloudimg-amd64-disk1.img
glance add name="Ubuntu12.04-amd64" is_public=true container_format=ovf disk_format=qcow2 & precise-server-cloudimg-amd64-disk1.img
nova image-list
## 2:创建flavor
nova flavor-list
nova-manage flavor create --name=m1.minitest --memory=384 --cpu=1 --root_gb=1 --flavor=6 --ephemeral_gb=1
## 3、创建虚拟机
nova boot --flavor 1 --image "Ubuntu12.04-amd64" --key_name key1 cloud01
nova show cloud01
nova console-log cloud01
##绑定浮动ip
nova floating-ip-create
nova add-floating-ip cloud01 192.168.139.226
nova show cloud01
nova add-floating-ip cloud01 `nova floating-ip-create | awk 'FNR==4{print $2}'`
nova show cloud01
### 查看vm
### 删除vm,vm的ID或者名字
nova delete 10d1bc19-b2c4-4eee-a5c8-b256bda3f343
nova delete cloud01
## 4、默认实例登录
ssh-keygen -f "/home/cloud/.ssh/known_hosts" -R 10.0.0.2
ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
6.4、怎么新建密钥,怎么使用密钥
mkdir /root/ssh_clients/
创建密钥:ssh-keygen -t rsa -f /root/ssh_clients/key01
上传密钥:nova keypair-add --pub_key /root/ssh_clients/key01.pub key01
启动实例时分配密钥:nova keypair-add --pub_key /root/ssh_clients/key01.pub key01
使用密钥登录:ssh -i /root/ssh_clients/key01 ubuntu@192.168.139.225
删除keypair:nova keypair-delete
6.5、OpenStack中nova-compute启动失败什么原因
分析/var/log/nova/nova-compute.log日志。
容易出现的问题是,volume问题或者virt问题。
6.6、OpenStack中无法连接实例
无法连接到虚拟机实例的时候,应该检查如下的环节:
1) 公共IP是否已经绑定到了公共网卡接口上,ip addr
2) 查看iptable的设置,NAT规则是否设置正确,iptables-save
3) 检查安全组设置,euca-describe-groups
6.7、OpenStack中compute和实例需要注意的问题
1)虚拟机在build阶段时,不要进行重启操作,否则会出现kernel panic现象。
nova-manage create用来创建虚拟机运行时所需的内网,并且将相关的IP地址记录到fixed_ips数据表中。但是,当调用nova-manage delete 时,并不会自动的删除fixed_ips中的内容,需手动进行删除。
2)计算节点的操作系统为32位,因此,kvm上启动的虚拟机内存受到限制,比如无法创建内存大于4G的虚拟机。
3)虚拟机实例已经绑定了浮动IP,并且控制节点的对外网络接口上也发现了相关的浮动IP地址,但是通过ssh却无法进行连接。
解决:在dashboard中添加相关的安全规则。security group -& edit rules
添加:icmp -1 -1 0/0;tcp 22 22 0/0
在OneStack里面,已经把端口全部启动1~65535,可以更改为只开放ssh、imcp等部分。
4)nova的配置文件默认存放在/etc/nova/nova.conf中,其中涉及到nova各个参数的配置。
nova所有的参数可以通过nova-api --help进行查看。
七、系统及其它
7.1、查看日志
OpenStack的nova相关日志都在/vr/log/nova下面,一般多数是nova出现问题,包括网络、存储、compute、虚拟化等。
volume相关问题查看nova-volume.log
compute和libvirt相关问题查看nova-compute.log
查看实例日志,web里面有这样一个菜单,api里面使用nova console-log cloud01
7.2、怎么实现高可用性的部署
请参考文章《构建OpenStack的高可用性(HA,High Availability)》,里面给出了一些大概的方案。
参考资料1.:(Cloud Computing)描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。云计算是继1980年代大型计算机到...
[责任编辑:行云之路 ]
正在加载...
我也说几句
汇编一周来国内外网络和IT行业发生的焦点新闻,精挑细选,第一时间推送独家采写的深度报道和热点专题,深入挖掘新闻事件背后的故事,剖析新闻事件的来龙去脉,让读者准确把握业界的发展态势。
汇集存储频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的购买指南,专家博客,皆汇聚在此。
定期为您带来深入权威的网络,交换机,路由器,无线,通信领域信息服务,涵盖产品,技术,新闻,应用案例,评测,购买指南,专栏,技巧等多个方面的信息。与企业网络相关的一切,尽在网络通信邮件,您怎可错过?
新一代数据中心建设管理最新信息快递――聚焦新一代绿色数据中心的设计、建设、运营和管理,汇集业界专家与用户的最精粹观点,展示国内外数据中心经典案例!
定期为您带来安全领域权威专业的产品,技术,新闻,应用案例,评测,购买指南等信息,保护您在网络畅游之时不受病毒的威胁,企业运行之际减少安全的风险。一份邮件在手,一份安全在心!
深入、专业关注云计算相关的技术与实践,范围覆盖私有云建设、公有云服务运营、开源云平台发展、重要云服务商动态等领域,面向企业CIO和IT经理提供深度原创报道,以及云计算、云服务领域最新的市场资讯。
汇集软件频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的企业软件新闻,SOA,SaaS,BI,ERP,开源技术,产品,技巧等全方面的实用资讯。还犹豫什么,这就开始体验一下吧!
深入、专业关注大数据相关的技术与实践,提供Hadoop、NoSQL等领域的最新技术资讯,定期发布由业界专家撰写的大数据专栏文章,面向企业CIO、IT经理、DBA提供深度原创报道,以及大数据领域的最新市场资讯。
汇集服务器频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的服务器虚拟化,刀片服务器,操作系统,大型机,服务器芯片信息,最新最全的服务器技巧,购买指南,专家博客,皆汇聚在此。
网界网网络学院频道,内容涵盖移动互联,技术开发,Web前端,安全,网络通信,云计算,数据中心,存储,服务器,软件等内容。
订阅过的用户,全部取消选择,可取消订阅
热点排行周月
网络世界移动客户端网界网微信订阅号查看:6381|回复:8
如题: 架设 共5台服务器,每台4c& & 8内存,& & 能否构建虚拟机大于物理机配置(如8c&&16G),能否可以请给与一些资料,俺要的并非只是结果
各位大大可能我没说清楚,我意思并非在一台机器上去部署虚拟姐, 比如我是用VMware vSphere 构建集群之类的方式
本帖最后由 dagger9907 于
09:08 编辑
优秀技术经理
就算你那么配置,你也是虚的,能够那么显示。实际没有超过单机的cpu计算能力,你懂了没?
你唯一的办法就是,2路服务器不够就上4路的,4c的不够就6c,ht之后12c,再不够就8c,ht之后16c
中级工程师
单台虚机的资源是不允许超过虚机所在宿主物理机的资源上限的。
虚拟化追求的是多节点高容错不间断的环境。计算密集型应用一般不会放在虚拟化平台上跑,多数仍然会选择在裸机上跑。
虚拟机参数配置可以高过物理机资源。
实际使用量=物理机资源
【欢迎访问Tim2009的虚拟化技术博客】
引用:原帖由 爱喝可乐的小白 于
22:47 发表
就算你那么配置,你也是虚的,能够那么显示。实际没有超过单机的cpu计算能力,你懂了没?
你唯一的办法就是,2路服务器不够就上4路的,4c的不够就6c,ht之后12c,再不够就8c,ht之后16c ... 能否使用集群的方式呢&&比如 VMware vSphere
引用:原帖由 tim2009 于
08:53 发表
虚拟机参数配置可以高过物理机资源。
实际使用量=物理机资源 能否使用集群的方式呢&&比如 VMware vSphere
优秀技术经理
引用:原帖由 dagger9907 于
09:09 发表
能否使用集群的方式呢&&比如 VMware vSphere 就像T版说的那个一样,极限就是等同于单台物理机,而且这个还是没算ESXi的本身消耗。你主要是对这个模式没理解,目前双机之间cpu和mem是不能调用的,你要么等下一代技术吧。。。
引用:原帖由 dagger9907 于
09:09 发表
能否使用集群的方式呢&&比如 VMware vSphere 使用VMware vSphere也遵从这个规则,
之所以使用群集,是方便物理服务器资源调度。
举个例子,物理服务器A和物理服务器B在同一个群集,A上的虚拟机使用了该物理服务器80%的资源,B上的虚拟机使用了该物理服务器的50%的资源,那么开启DRS,调整好迁移阈值,就可以平衡2台服务器的资源。
【欢迎访问Tim2009的虚拟化技术博客】Openstack基本模块单机部署练习
VM VirtualBox 5.0.24,Ubuntu-14.04.4(LTS) 64位。
由于是在环境下单机部署,考虑到系统的流畅性,内存分配4096MB,4 CPU,虚拟磁盘动态分配16GB,双网卡(Host-Only+桥接)。
*注:这里虚拟机网卡用Host-Only模式,个人想法是Host-Only模式正好可以模拟一个局域网,便于以后配置openstack多节点的管理网络,所以本练习中就用Host-Only模式这块网卡来作为控制节点的管理网络接口;而虚拟机第二块网卡采用桥接方式便于在搭建环境中访问外网。
Openstack目前最新的版本是Mitaka(2016.04),Ubuntu_14.04版本上的安装指南如下:
http://docs.openstack.org/mitaka/install-guide-ubuntu/
本次练习中安装的基本服务包括:
ServiceProject Name
Identity serviceKeystone
Image serviceGlance
Compute serviceNova
Networking serviceNeutron
Block StorageCinder
*注:Horizon其实也装了,但是没有调试起来,回头再去debug一下django的问题。
练习在单机上部署openstack基本的服务模块,配通这些服务模块;
练习创建一个实例,其中包括上传镜像、创建一个openstack网络、创建一个volume并附着给一个实例,最后在实例中挂载块设备。
正常按照官方文档进行部署即可,只不过本练习中是把控制节点、计算节点和存储节点都放在了一台虚拟机上。安装的过程中会碰到一些需要注意的地方:
[Environment]
1)[Networking]章节中给出了两种网络选择:provider network和self-service network,选择了更简单的前者作为练习部署的网络选择。这里大概能看懂官方文档中的解释,前者配置的网络只有层2服务,后者可以配置的网络包含层3服务,相关层2层3网络的知识点(bridge、routing、NAT、VXLAN等)还需要课外补充下。
2)官方推荐使用虚拟机安装,也是本练习采用的方案,原因是可以利用快照节省时间,另外虚拟机方便配置多网卡。由于对linux操作系统比较生疏,练习过程中确实在安装操作系统和配置openstack服务上花费了很多时间,中间还在物理机上安装了ubuntu练习部署openstack环境,但是中间碰到问题不知道怎么回滚,所以后来还是转移到虚拟机环境下部署。
3) 部署过程中,密码有_DBPASS和_PASS两种,前者是sql密码,后者是service密码,为了方便,本练习中的_DBPASS全部采用openstack,_PASS采用项目名称(即glance项目的服务密码是glance,以此类推)。
4)[Host networking]章节中给出了官方推荐的网络拓设计示例。本次练习中虚拟机Host-Only模式的网卡(eth0)扮演的是控制/计算/存储节点的管理网络接口,但是没有练习到把管理网络配通道外网。
5)接着是练习手动修改节点网卡配置,配置节点IP,修改Hosts文件(虚拟机hostname配置为controller,和文档中控制节点的保持一致,这样后续直接复制粘贴配置指令很方便)等操作。其中网卡配置文件/etc/network/interfaces内容的含义自己查了一下]:
# The provider network interface
auto INTERFACE_NAME //auto小节定义了接口是不是要在系统启动时自动初始化。
iface INTERFACE_NAME inet manual //iface小节定义的逻辑接口的特性,这里意思应该是手动配置
up ip link set dev $IFACE up //启动端口
down ip link set dev $IFACE down //关闭端口
6)NTP同步并没有调试,因为是单节点练习,这里随便百度了下网络上可用的NTP服务器,貌似国内的NTP服务器都无法ping通。
7)安装和配置,最后需要运行一次安全配置向导。
8)RabbitMQ和Memcached的安装按照文档流程即可顺利通过。
[Indentity service]
1)在生成一个随机数用作admin token时,可以把随机数保存到文件中,后续用到时方便查阅,例如:
openssl rand -hex 10 & /root/token
2)配置/etc/keystone/keystone.conf的[database]小节时,官方文档并没有强调必须注释掉默认的数据库连接这句,但国内写的很多openstack配置文档上都强调需要注释掉这句,实际看起来好像不注释掉这句也没有影响。
connection = sqlite:////var/lib/keystone/keystone.db
connection = +pymysql://keystone:openstack@controller/keystone
3)最后会创建两个client environment scripts,我也是保存在/root目录下,后续会经常用到。
4)Keystone模块是第一个创建的模块,是Openstack框架中负责管理身份验证、服务规则和服务令牌功能的模块。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone来处理,本次练习中配置的是V3版本,新加入了Domain和Group等概念,详细的模块介绍可以看官方[wiki]。
[Image service]
配置本章节时按照官方文档流程即可,最后下载一个cirros镜像并上传到openstack镜像服务中。
root@controller:/home/jason# openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| fc3-4bc8-b04d-60af0f4b1942 | cirros | active |
+--------------------------------------+--------+--------+
[Compute service]
1)需要分别创建nova_api和nova两个数据库。
2)修改/etc/nova/nova.conf时,官方文档提到的需要修改的小节都是缺省的,需要手动添加上去。文档有句很隐蔽的提示:由于某个BUG,需要注释掉[DEFAULT]小节中logdir选项的配置。
3)由于是单机部署,所以配置计算节点的部分基本上在配置控制节点时都已经完成了,唯一不同的地方是在/etc/nova/nova.conf文件的[vnc]小节。另外需要验证节点是否支持硬件加速,本练习中虚拟机并不支持,所以要将libvirt改为QEMU,这样才能在虚拟机里成功创建实例吧。
4)本练习中部署的计算服务列表如下:
root@controller:/home/jason# openstack compute service list
+----+------------------+------------+----------+---------+-------+----------------------------+
| Id | Binary | Host | Zone | Status | State | Updated At |
+----+------------------+------------+----------+---------+-------+----------------------------+
| 3 | nova-consoleauth | controller | internal | enabled | up | T15:53:39.000000 |
| 4 | nova-scheduler | controller | internal | enabled | up | T15:53:39.000000 |
| 5 | nova-conductor | controller | internal | enabled | up | T15:53:38.000000 |
| 6 | nova-compute | controller | nova | enabled | up | T15:53:46.000000 |
+----+------------------+------------+----------+---------+-------+----------------------------+
[Networking service]
1)本练习中创建的是Provider networks。
2)配置/etc/neutron/plugins/ml2/ml2_conf.ini文件的[ml2]小节时,由于是单机部署,type_drivers字段采用了示例值而没有完全按照官方文档来配置:
type_drivers = local,flat,vlan,gre,vxlan,geneve
3)配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件的[linux_bridge]小节时,physical_interface_mappings的值配置为eth1,因为官方文档给出该字段的解释是应该配置为provider physical network的接口。
4)计算服务部署完毕后,就可以练习启动一个实例了。
root@controller:/home/jason# openstack network list
+--------------------------------------+----------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+--------------------------------------+
| bda76bb6-bb48-47a2-9f80-d | provider | a3ebf78-8d3e-6c525cb8beaa |
+--------------------------------------+----------+--------------------------------------+
root@controller:/home/jason# openstack server list
+--------------------------------------+-------------------+--------+------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-------------------+--------+------------------------+
| 11fe5a2c-f594-46b2-90d3-e8eeefd51159 | provider-instance | ACTIVE | provider=192.168.0.102 |
+--------------------------------------+-------------------+--------+------------------------+
[Block Storage service]
1)开始配置虚拟机时,只创建了一个虚拟磁盘,fdisk只能看到/dev/sda,为了创建LVM物理卷,需要关闭虚拟机后新增一个虚拟磁盘:
2)修改lvm配置文件/etc/lvm/lvm.conf时,devices小节的filter字段配置需要接受sda和sdb:
filter = [ &a/sda/&, &a/sdb/&, &r/.*/&]
3)cinder服务部署完毕后,就可以创建一个volume并附着到之前创建的实例上了。
root@controller:/home/jason# openstack volume list
+--------------------------------------+--------------+--------+------+--------------------------------------------+
| ID | Display Name | Status | Size | Attached to |
+--------------------------------------+--------------+--------+------+--------------------------------------------+
| 500ec894-9d1d-44d4-a0bb-ac11 | volume1 | in-use | 1 | Attached to provider-instance on /dev/vdb |
+--------------------------------------+--------------+--------+------+--------------------------------------------+
登陆到实例中,可以看到实例用volume作为它的/dev/vdb块存储设备。
root@controller:/home/jason# ssh cirros@192.168.0.102
$ sudo fdisk -l
Disk /dev/vda: 1073 MB,
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x
Device Boot Start End Blocks Id System
/dev/vda1 * 9
Disk /dev/vdb: 1073 MB,
9 heads, 8 sectors/track, 29127 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x55b4d605
Device Boot Start End Blocks Id System
最后在实例中挂在该快设备,并写入一个文件:
root@controller:/home/jason# ssh cirros@192.168.0.102
$ fdisk -l
Disk /dev/vda: 1073 MB,
255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x
Device Boot Start End Blocks Id System
/dev/vda1 * 9
Disk /dev/vdb: 1073 MB,
9 heads, 8 sectors/track, 29127 cylinders, total 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x55b4d605
Device Boot Start End Blocks Id System
Filesystem Size Used Available Use% Mounted on
/dev 21.3M 0 21.3M 0% /dev
/dev/vda1 23.2M 18.2M 3.8M 83% /
tmpfs 24.8M 0 24.8M 0% /dev/shm
tmpfs 200.0K 72.0K 128.0K 36% /run
/dev/vdb1 .3M 938.5M 2% /mnt/vdb1
$ echo &Hello world!& & /mnt/vdb1/text
$ cat /mnt/vdb1/text
Hello world!
其实有很多一键部署的项目例如Devstack这种,通过几个脚本来非常快速地部署openstack环境,我一开始也用这种方法操作过,大约20分钟就可以直接登陆使用web界面了。但是练习按照官方文档来手动配置openstack环境有这么些好处:
首先也是最重要的,官方文档最新也最准确。网络上也可以搜到很多用命令行部署openstack环境的中文文档,但是要么版本比较老,要么有些地方没有写清楚或者不正确,与其这样不如老老实实读官方文档。其次可以拆解式地了解到这些基础模块创建的过程,比如每个模块包含哪些,需要给模块配置什么参数(创建数据库-创建用户-创建服务实体-创建API端点-在配置文件中添加database链接/message queue配置/keystone认证等等),整个体系的基本网络拓扑等等。虽然是单机部署练习,但是通过官方配置文档(因为配置文档是针对分布式架构部署)可以分别了解控制节点、计算节点和存储节点上分别应该部署哪些模块,他们之间如何配置到可以互相连通等等。最后通过命令行配置,多少也可以初步练习到一些基本的CLI命令,后面学习openstack CLI命令会更快。另外从熟悉linux环境的角度来说,本身熟练使用命令行操作也是必须的。
整个过程中碰到比较难以消化的是neutron网络配置这一块,因为自己网络方面的知识忘得差不多了,到最后还没有把实例网络配置到可以ping通外网,所以网络这一块的知识下来需要好好补充一下。

我要回帖

更多关于 虚拟机安装openstack 的文章

 

随机推荐