OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)一、网络问题-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-managenetworkcreate分别做什么设定floatingip和fixedip在配置文件nova.conf里面有提到,可是为什么还要novamanagercreate呢,系统最终调用的是哪个呢?fixed_ip=10.0.0.1/27nova-managenetworkcreate是创建项目的网络,每个项目有自己的ip范围,它必须在nova.conf范围内。这个create过程是填充数据库的过程,后面会根据数据库的状态分配ip。1.9、OpenStack中网络注意问题1)openstack中,nova-managecreate用来创建虚拟机运行时所需的内网,并且将相关的IP地址记录到fixed_ips数据表中。但是,当调用nova-managedelete时,并不会自动的删除fixed_ips中的内容,需手动进行删除。2)采用FlatDHCP方式部署openstack,在开放了icmp和ssh22端口的情况下,仍然无法通过控制节点连接到虚拟机实例。此时应该检查控制节点的ip配置信息ipaddr。3)FlatDHCP模式下,network_size是整个fixed_iprange中的所有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。二、虚拟化问题-virtual2.1、OpenStack中控制节点和计算节点配置nova.conf一样吗多节点时,网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有nova-network控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。可以通过multi_host等高可用性部署方式改变这个单点故障问题。计算节点的nova.conf并不是与控制节点完全一样,主要是--vncserver_proxyclient_address=--vncserver_listen=应该是计算节点的ip。2.2、OpenStack执行virsh-cqemu:///systemlist,一直挂起在那里(hang),怎么解决killall-9dmidecodedmidecode是一个管理工具,在虚拟机装OpenStack中需要用到,用在libvirt中,但在有的机器中会出现hangup的情况,这时候需要kill掉它。2.3、OpenStack中虚拟化技术在哪里配置主要两个文件:nova.confnova-compute.conf。其中的虚拟技术应该一致,比如都为kvm,或者都为qemu。2.4、OpenStack中虚拟机中nova-compute经常启动失败,virshlist显示空白,怎么解决1.在vmwareworkstation上的虚拟机需要修改*.vmx文件vcpu.hotadd=TRUE变更为vcpu.hotadd=FALSE重新启动机器,如果执行命令:virsh进入控制台就没有问题了。2.修改nova配置文件/etc/nova/nova.conf#--libvirt_type=kvm更改为qemu--libvirt_type=qemu3.修改/etc/nova/nova-compute.conf--libvirt_type=qemu4.重新启动nova-compute,如果libvirt报错/var/log/libvirt/libvirtd.logCannotfind'pm-is-supported'inpath:Nosuchfileordirectory报错后需要安装apt-getinstallpm-utils2.5、noVNC不能连接到实例,提示“ConnectionRefuesd”,什么原因可能是控制节点在收到vnc请求的时候,无法解析计算节点的主机名,从而无法和计算节点上的实例建立连接。另外可能是,当前浏览器不支持或者不能访问,将计算节点的ip和主机名的对应关系加入到控制节点的/etc/hosts文件中。三、存储、卷问题-volume、lvm3.1、OpenStack中创建volume一直在creating,什么原因主要因为nova-volume没有正常启动,可以nova-manageservicelist看看后面的状态,不是笑脸:-)而是xx。如果没有启动,请看下一条。3.2、OpenStack中nova-volume服务不能启动,什么原因主要因为没有nova-volumes卷组,或者iscsitarget服务没有启动(或者没有安装)。1、vgdisplay没有nova-volumes卷组,可以创建卷组和磁盘$ddif=/dev/zeroof=/opt/nova-volumes.imgbs=1Mseek=100000count=0$losetup-f/opt/nova-volumes.img$losetup-a$vgcreatenova-volumes/dev/loop0记着启动nova-volume然后创建volume,否则下面仍然不能创建$servicenova-volumerestart$novavolume-create--display_namevolume1102、serviceiscsitargetstatus1)没有安装iscsitarget,可以apt安装;然后执行以下命令安装和设置为可以启动apt-getinstall-yiscsitargetiscsitarget-dkmslvm2sed-i-e's/false/true/'/etc/default/iscsitargetserviceiscsitargetstartservicenova-volumestart2)状态为stop,可以startserviceiscsitargetstart3)如果既没有nova-volumes卷组,也没有安装iscsitarget,切忌保证这两者都存在,然后重启nova-volume,再创建volume有人安装iscsitarget并启动后就create,结果nova-volume并没有启动,所以问题依然存在;有人创建nova-volumes,也没有重启nova-volume,也不能正常工作。3.3、OpenStack中创建volume一直在creating,怎么停掉(stop)主要因为nova-volume没有正常启动,可以nova-manageservicelist看看后面的状态,不是笑脸:-)而是xx。如果没有启动,请看下一条。3.4、OpenStack中nova-volume执行出现问题,检查什么地方主要因为nova-volume没有正常启动或者计算节点没有能找到target,可以检查以下这些问题。nova-volume是否正常;控制点,详见问题3.2iscsitarget是否开启;服务端open-iscsi是否安装和开启;客户端客户端(计算节点)iscsiadmdiscovery看看能不能找到存储服务;分析nova-volume.log。3.5、OpenStack中nova-volume管理target控制节点查看targettgtadm--lldiscsi--opshow--modetarget建立targetsudotgtadm--opnew--lld=iscsi--mode=target--tid=1--targetname=iqn.2010-10.org.openstack:volume-000000013.6、OpenStack中计算节点管理volume查看sessionsudoiscsiadm-msession手动发现targetsudoiscsiadm-mdiscovery-tsendtargets-pIP:port登入登出sudoiscsiadm-mnode-Ttargetname(iqn.2010-10.org.openstack:volume-00000004)-p10.200.200.4:3260--loginsudoiscsia