热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

openstack平台部署中遇到的一些问题

本文总结了在多节点上部署openstack时碰到的一些问题,算是对自己前段时间的工作做一小结。转载请注明出处。1、假设当前主机名为“computer”,IP地址为“192.168.136.123”在当前主机安装mysqlserver,创建数据库nova,并执行如下语句:grantallonnov

本文总结了在多节点上部署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远程桌面访问。

25、keystone配置时,留意endpoint的设定,结尾不要有多余的"/”,否则会出现认证失败。

26、虚拟机在build阶段时,不要进行重启操作,否则会出现kernel panic现象。(bug)

27、在openstack中,nova失去rabbitmq连接后,会尝试重新进行连接,默认尝试12次,每次间隔10秒,到时间后,如果还没有连上,则抛出错误,退出。

#防止 rabbitmq重启导致 compute 死掉

rabbit_max_retries=0

相关文件:impl_kombu.py

28、在 openstack 下,重新启动compute,实例不会自动恢复,解决办法:

修改 /etc/nova.conf,添加两个选项:

start_guests_on_host_boot = True

resume_guests_state_on_host_boot =True

29、openstack的热迁移,关键是要把nfs配好,而且nfs所在的主机不能安装计算节点。

30、在PC目标机器上,kvm可以最多模拟255核的CPU,超过这个数目虚拟机将不能启动。此外,kvm虚拟机在启动的时候,会从宿主机申请所需的内存,如果申请失败,虚拟机也不能正常启动。


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
author-avatar
陈苏女士
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有