• 作者:【吴业亮】云计算开发工程师 
    博客:http://blog.csdn.net/wylfengyujiancheng

    在部署和使用openstack过程中小伙伴们经常问我关于openstack问题,感谢小伙伴们的信任。其中有很多问题都是重复的,现将一些代表性的问题总结如下: 
    一、vnc打不开问题 
    1、检查controller和所以computer节点的nova.conf 文件vnc选项IP是否为controller的管理IP

    # cat /etc/nova/nova.conf | grep “novncproxy_base_url“

    这里写图片描述

    2、novncproxy_base_url中尽量写IP,写主机名在无dns情况下无法解析导致vnc打不开

    二、安装neutron 提示neutron agent-list 失败。 
    Cpu和内存不够导致,提高硬件配置 
    三、Ping不通虚拟机? 
    1、检查物理链路是否正常,网线,交换机是否正常 
    2、网卡的状态是否为UP 
    举例:

    这里写图片描述
    3、neutron绑定的网卡是否为规划的网卡(各个节点都需检查) 
    这里写图片描述
    4、neutron服务是否正常 
    5、路由器接口是否为up 
    这里写图片描述
    6、网关是否为up 
    这里写图片描述
    7、虚拟机是否已经正常启动,且分配到IP 
    8、创建虚拟机所用的安全组是否允许icmp协议通过?

    四、虚拟机获取不到IP? 
    1、网络中有其他的dhcp源干扰 
    2、neutron所桥接的网卡名称错误,或状态异常,如网线没插好,onboot=no 
    这里写图片描述
    3、neutron服务异常

    五、创建云硬盘失败 
    Ntp问题,各个节点时间不同步。 
    六、创建虚拟机失败 
    这里写图片描述
    此类问题比较多,任何一个组件出问题都会导致虚拟机启动失败。最好的办法是掌握虚拟机创建过程中各个组件的调度过程,从日志分析。no valid host was found,这个是个大类,很多错误都会显示这个,需要具体的看日志。 
    七、安装cinder报 pvcreate /dev/sdb && vgcreate cinder-volumes /dev/sdb failed. ? 
    系统中没有sdb磁盘,cinder是块存储服务,需要底端存储。解决办法新增一块磁盘 
    八、管理网和业务网可以同网段吗? 
    尽量做到管理和业务分离,如果IP实在不够用记得不要冲突

    九、官网上Network节点需要3张网卡,其它节点需要两张网卡,本方案为什么两块网卡?

    这里写图片描述
    本方案将第一块和第二块网卡合并了,如果需要三块网卡也可合并成一块网卡 
    十、创建的虚拟机运行http服务,外部无法访问网页? 
    1、虚拟机的防火墙开启 
    2、selinux开启 
    3、安全组没允许80端口通过

    十一、重启controller物理机后整个环境不可用 
    原因: 
    在一些老的物理机或手写的网卡配置文件,重启物理机网卡都会启动失败,而消息队列和数据库都是监听的管理网IP,网卡没起来导致消息队列和数据库启动失败,从而导致nova和neutron等一系列的服务启动失败。 
    解决办法: 
    通过下列命令查询那些服务启动失败,然后挨个手动启动。 
    systemctl –failed

    十二、外部可以访问虚拟机,但ping不通百度? 
    网络规划问题 
    网络问题排查思路: 
    1、ping 自己 目的:检查网卡状态和配置是否正确 
    2、ping网关 目的:检查路由寻址是否正常 
    3、ping dns 目的:检查dns是否可达 
    此类问题不清楚的,建议学习cisco的ccna路由和交换知识 
    十三、镜像忘记密码怎么办? 
    1、创建虚拟机时选择秘钥对,可从controller上免密码登录 
    这里写图片描述
    2、创建虚拟机时直接修改密码 
    参见:http://www.chenshake.com/openstack-mirror-and-password/ 
    十四、dashboard界面总是抛出异常错误? 
    在点击openstack的dashboard时右上角总是弹出一些错误的提示,再次刷新时又不提示 
    这里写图片描述 
    原因: 
    MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点这个连接数是远远不够的 
    解决办法: 
    1、修改mairadb的配置文件,将最大连接数改为1500

    # echo "max_connections=1500" >>/etc/my.cnf.d/mariadb_openstack.cnf

    2、重启数据库

    # service  mariadb  restart

    十五、如何制作openstack镜像模板? 
    参见:http://blog.csdn.net/wylfengyujiancheng/article/details/50468173 
    Linux模板制作方法类似 
    十六、后端存储如何选型?

    这里写图片描述 
    上图为官方调查报告,根据公司资金及技术实力选择。个人比较推荐ceph 
    十七、在部署计算节点时,脚本不能继续进行,但没有报错 
    这里写图片描述 
    请确保controller节点正常运行且与computer节点网络正常,因为在computer节点上启动nova服务时,需要去controller上注册服务。 
    十八、消息队列启动失败 
    检查/etc/hosts中IP是否正确,如果采用脚本安装还需检查installrc和lib/hosts中IP是否正确 
    十九、数据库启动失败 
    检查监听IP是否正确,如果采用脚本安装还需检查installrc和lib/hosts中IP是否正确 
    这里写图片描述 
    如都没问题,手动卸载数据库,并删除库文件rm -rf /var/lib/mysql/再次安装 
    二十、执行source admin-openrc.sh后执行命令报错 
    环境中有代理,或者其他环境变量干扰。此问题也和开发人员编程习惯有关,在写代码是从不喜欢写绝对路径,环境中执行了该程序导致。出现问题是无从查起。 
    解决办法: 
    重启物理机、或者将admin-openrc.sh内容拷贝出来在命令行中执行一遍

    二十一、通过dashboard界面上传镜像,创建虚拟机失败? 
    由于网络原因,在传输时文件极其容易损坏,建议现将镜像上传到后台,通过命令行上传。

    # source /root/admin-openrc.sh  
    # openstack p_w_picpath create "cirros"   --file /tmp/cirros-0.3.4-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public

    二十二、如何做到公司不同部门走不同网段网络? 
    1、用admin用户创建两外出网络,不同租户(对应公司部门)创建的虚拟机分配不同的浮动IP网络 
    2、也可将admin创建的不同网络绑定到对应的物理网卡上,方法后续补充 
    二十三、如何将官网的openstack源同步到本地? 
    1、 采用reposync,将所有的源都同步下来 
    2、 参见http://blog.csdn.net/wylfengyujiancheng/article/details/50008325

    二十四、Mongodb启动失败,如何解决? 
    监听的IP是否正确,如果采用脚本安装还需检查installrc和lib/hosts中IP是否正确 
    这里写图片描述 
    二十五、如何实现虚拟机动态迁移? 
    参见:http://blog.csdn.net/wylfengyujiancheng/article/details/50822695

    二十六、如何在线拉伸虚拟机大小? 
    http://blog.csdn.net/wylfengyujiancheng/article/details/50822491 
    二十七、如何将快照导入到本地? 
    http://blog.csdn.net/wylfengyujiancheng/article/details/48825207

    二十八、cpu、内存和硬盘资源超配 
    它们默认的超配比为: 
    CPU: CONF.cpu_allocation_ratio = 16 
    RAM: CONF.ram_allocation_ratio = 1.5 
    DISK: CONF.disk_allocation_ratio = 1.0 
    在生产环境中的利用率建议cpu:vcpu 1:1.5 mem 1:1 disk 1:1 
    二十九、虚拟机流量全部通过network节点,大规模时如何减轻network的负载 
    采用dvr,分布式虚拟路由技术 
    请参见:http://www.sxt.cn/u/756/blog/3168 
    三十、win7镜像放到openstack中出 错误代码0X0000005D 这个该如何解决? 
    将虚拟化类型改为kvm

    # cat /etc/nova/nova.conf | grep ^virt_type

    三十一、安装neutron时修改网卡失败 
    nmcli connection modify ipv4.addresses 192.168.80.253/24 && nmcli connection modify ipv4.method manual && nmcli connection up failed. 
    请检查各个节点的各个网卡名称是否与实际名称一致,如不一致可用nmtui命令修改 
    举例: 
    这里写图片描述
    不一致 
    这里写图片描述

    待解决问题: 
    1、 脚本中有没有安装swift组件? 
    虽然swift是openstack的元老组件,它和ceph比都有自己的优势和劣势,但本人比较倾向于ceph,脚本中没写swift的安装脚本,但本地源中包含了swift的rpm包。如有兴趣,请小伙伴们补充 
    https://github.com/wuyeliang/install_openstack

    2、 有没有界面直接调用安装脚本,os安装完成后即登录http界面,通过点点鼠标即可完成部署? 
    前端技术本人不擅长,如有兴趣,请小伙伴们补充 
    https://github.com/wuyeliang/install_openstack

    3、 有没有卸载脚本? 
    暂时没有,如有兴趣,请小伙伴们补充 
    https://github.com/wuyeliang/install_openstack 
    4、 关于高可用和负载均衡脚本?高可用和负载均衡采取哪种架构? 
    这个是需要花费不少时间暂时本人没这个精力写自动化脚本。如有兴趣,请小伙伴们补充。https://github.com/wuyeliang/install_openstack 
    本人建议采用3controller模式。具体如下 
    这里写图片描述
    数据库如下: 
    这里写图片描述 
    可参见: 
    http://www.cnblogs.com/endoresu/p/5029649.html 
     
    http://docs.openstack.org/ha-guide/