本文总结了在多节点上部署openstack时碰到的一些问题,算是对自己前段时间的工作做一小结。 转载请注明出处。 1、假设当前主机名为“computer”,IP地址为“192.168.136.123”在当前主机安装mysql server,创建数据库nova,并执行如下语句: grant all on nova.* to 'nova'@'%' identified by 'nova'; 在其他主机上通过如下语句: mysql -h 192.168.136.123 -u nova -p 连接正常。但是在当前主机确连接失败,检查相关的日志后发现,当前主机会将192.168.136.123地址解析为当前主机的主机名,但是在mysql数据中,当前主机的主机名没有访问nova数据库的权限。 解决方法: grant all on nova.* to 'nova'@'computer' identified by 'nova'; 或者 在myql配置文件中添加 skip-name-resolve参数
2、根据官方的文档正常安装keystone认证系统后,测试却无法通过,显示“Connetion Refused”。 经检查,发现keystone认证模块的监听端口在新版本中已经发生变化。 解决方法: 在keystone的配置文件中,将认证端口,从5001改为35357
3、在采用keystone认证系统后,glance的操作必须通过Token进行,其中admin_token是在keystone初始化的时候设定的,改token记录在数据库当中。
4、rabbitmq-server初始的guest用户没有密码,更改密码: rabbitmqctl change_password username newpassword 更改密码后,其他相关组件的配置文件须做出相应的修改,并重启。
5、根据官方文档,执行如下命令创建网络: nova-manage network create 10.0.0.0/24 1 255 出现错误,Command Failed, Please check log for more information. 日志中: NetworkNotCreated: --bridge_interface is required to create a network 重新运行如下的命令: nova-manage network create 10.0.0.0/24 1 255 --bridge_interface=br100 (其中br100为本机上设置的网桥,并绑定到内网接口) 又出现错误:Command Failed, Please check log for more information 日志中: Value Error:the network range is not big enough to fit 255. network size is 1 原因在于,新版本中,网络创建命令的格式发生了变化。 解决方法: nova-manage network create public 10.0.0.0/24 1 255 --bridge_interface=br100
6、noVNC不能连接到虚拟机实例,显示“Connection Refuesd”提示。 原因是控制节点在收到vnc请求的时候,无法解析计算节点的主机名,从而无法和计算节点上的虚拟机建立连接。 另外一个原因是,当前浏览器不支持(如crhome浏览器,firefox11) 解决方法: 更换浏览器 将计算节点的ip和主机名的对应关系加入到控制节点的/etc/hosts文件中。
7、每个计算节点中的虚拟机会被分配不同的虚拟网卡接口,如vnet0, vnet1, vnet2等等。 而这些虚拟网卡接口都是绑定在一个虚拟的网桥上边的(如br100),以便虚拟机实例之间互相通信. 没有安装network服务的节点上的br100网桥都没有设置ip地址,而安装了network服务的br100网桥则被设置为网关。
8、noVNC连接虚拟机的一个大概流程: (1)kvm启动的虚拟机在计算节点上启动了一个VNC服务 (2)控制节点noVNC对该VNC服务进行一个代理 (3)终端用户访问控制节点,控制节点返回给用户一个VNC界面
9、多节点部署完成后,通过nova-manage service list命令发现,计算节点的各个服务时断时好,经检查,原因在于,计算节点和控制节点的时间不同步造成该问题。 解决方法: 通过ntp同步计算节点和控制节点的时间
10、上传ubuntu镜像的过程中,内核和内存盘可以成功上传,但是ubuntu的镜像文件上传失败,提示“”Failed to connect to the Glance API server, is the server running? 经分析检查,原因在于,ubuntu镜像文件过大。 解决办法: 减小ubuntu镜像文件大小,或者重新设置glance中的chunk size,并重新启动服务
11、如果采用FlatManager的网络模式,则必须手动的建立相关的网桥,以便虚拟机实例之间以及和主机之间进行通信,此外,必须手动的将虚拟机实例的内部IP加入到nova数据库的fixed_ips表中。 此
外,fiexed_ips表保着所有可供虚拟机实例使用的内部IP,每次发起一个新的虚拟机实例,openstack的网络服务部分,根据
fixed_ips表中的内容分配给该虚拟机实例一个IP。如果用户希望保留特定的IP地址,那么需要将该IP对应的reserved字段设置为1。
12、restart nova-network restart: Unknown instance 改为: start nova-network
13、nova的配置文件默认存放在/etc/nova/nova.conf中,其中涉及到nova各个参数的配置。 nova所有的参数可以通过nova-api --help进行查看
14、flatdhcp模式下,network_size是整个fixed_ip range中的所有ip数。例如在一个A类/12的网络中,有2^20个IP地址,所有的这些IP地址都要写入fixed_ips数据库表中,这将会花费很多的时间,导致假死。
15、keystone认证系统无法输出日志。 keystone.conf文件中设置了log_config=/etc/keystone/logging.conf,但是貌似该设置不起作用。 采用: log_file=/var/log/keystone.log
16、虚拟机实例已经绑定了浮动IP,并且控制节点的对外网络接口上也发现了相关的浮动IP地址,但是通过ssh却无法进行连接。 解决: 在dashboard中添加相关的安全规则。security group -> edit rules 添加:icmp -1 -1 0/0;tcp 22 22 0/0
17、通过dashboard启动虚拟机实例,发现当虚拟机的内存设置为4G的时候,虚拟机无法启动。相关日志提示,无法创建内存大于4G的虚拟机。检查分析后发现,计算节点的操作系统为32位,因此,kvm上启动的虚拟机内存受到限制。 解决方法: 更改计算节点的操作系统为64位
18、在采用keystone认证前端的情况下,按照euca2ools官方的使用文档进行配置后,仍然无法使用euca工具集,相关日志显示,用户认证失败。原因在于,keystone用户认证系统的加入,对euca2ools工具集的配置产生的一定的影响。 解决: 将生成的novarc配置文件中的NOVA_USERNAME和NOVA_API_KEY分别改为keystone数据库的用户名和密码,而不再是一长串token
19、
使用UEC镜像,虚拟机实例在启动后会通过169.254.169.254:80获取相关的metadata,裡面包含instance id
等資訊,但是该地址是在nova-api服务器上的,在某些情况下,虚拟机实例无法连接到该地址,日志中会出现如下的错误: http://169.254.169.254′ failed: url error 解决方法:
在计算节点上配置iptable,使得该请求转向nova-api服务器。 iptables -t nat -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $NOVA_API_IP:8773
20、单网卡且采用FlatDHCP方式部署openstack,在开放了icmp和ssh22端口的情况下,仍然无法通过控制节点连接到虚拟机实例。此时应该检查控制节点的ip配置信息。 ip addr 此时网卡上应该绑定有两个IP地址,一个是控制节点的IP,另外一个是虚拟机实例网络的网关。应该将虚拟机实例的网关放在IP列表的第一位。 解决方法: ip addr del x.x.x.x dev device ip addr del x.x.x.x dev device ip addr add 虚拟机网关 dev device ip addr add 控制节点IP dev device
21、
openstack中,nova-manage
create用来创建虚拟机运行时所需的内网,并且将相关的IP地址记录到fixed_ips数据表中。但是,当调用nova-manage
delete 时,并不会自动的删除fixed_ips中的内容,需手动进行删除。
22、无法连接到虚拟机实例的时候,应该检查如下的环节: a 公共IP是否已经绑定到了公共网卡接口上,ip addr b 查看iptable的设置,NAT规则是否设置正确,iptables-save c 检查安全组设置,euca-describe-groups
24、制作windows2008镜像的时候,如果采用raw格式,生成的镜像文件在计算节点中运行会出现蓝屏现象。应该采用如下格式创建磁盘并安装windows2008: kvm-image create -f qcow2 windows2008.img 50G 此外在安装windwos2008的时候,应该加载virtio驱动。 windows镜像制作完成后,须在安全组里添加3389端口,以便windwos远程桌面访问。
|