1、nova image-show 报错500 yum downgrade python-urllib3 版本1.10 yum downgrade python-requests 版本2.7 2、http启动报错 cp /usr/share/keystone/keystone.wsgi /var/www/cgi-bin/keystone/admin cp /usr/share/keystone/keystone.wsgi /var/www/cgi-bin/keystone/main httpd 3、neutron报timeout /etc/neutron/neutron.conf中会有一个配置项“rpc_response_timeout”,它用来配置RPC的超时时间,默认为60s,所以导致超时异常.解决方法为设置rpc_response_timeout=180 在controller上 4、rabbitmq报错406 删除openstack用户,重新建立一个 rabbitmqctl delete_user openstack rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*" 5、删除僵尸实例 OpenStack Juno 删除僵尸实例 注意:这里还有一个很关键的问题没解决,配额信息如何处理?查看僵尸实例占用了多少配额倒是比较简单,但如何把这些配额释放回去? 我目前只能人工计算删除之后的instance、cores、ram值,然后去reservations和quota_usages表中修改。 这个方法很二缺,而且容易出错,但暂时没有更好的办法,还望路过的前辈支个招。 操作之前,我也尝试在网上找了一些,很多都是同出一源,屏蔽外键(SET FOREIGN_KEY_CHECKS=0;),然后删除instances表中的记录。显而易见,这种方式很暴力,会留下相当多的数据库垃圾条目。 当然,也是有一些通过脚本,或者逐条清除的办法来解决的,但版本相对比较早,比如像这位前辈的blog中的记录(传送门),关联的数据库条目相对非常少。 所以,只好自己照着前辈的方法摸索着去处理了… 以下以demo1实例为例,测试删除僵尸实例 获取当前状态,尝试删除,状态仍然是ERROR技术分享 [root@controller ~(demo)]$ nova list |grep demo1 | 38887ca5-b697-451f-8d95-36b8b64aae3e | demo1 | ERROR | - | NOSTATE | | 回收floating ip,这个例子里面实例并没有分配到floating ip,但还是需要先提出来,避免出现更多的数据库外键错误 # nova remove-floating-ip demo1 192.168.8.101 # nova floating-ip-delete 192.168.8.101 确认需要删除的实例的id,在数据库的表中,它可能以uuid,instance_uuid,id等名称出现 # nova list | grep demo1 从上面图中可以看到id是 38887ca5-b697-451f-8d95-36b8b64aae3e 确认数据库中此实例的信息 mysql -uroot -pPASSWORD -e "USE nova; SELECT uuid, vm_state, display_name FROM instances WHERE uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" 逐条删除数据库表记录 mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM security_group_instance_association WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_info_caches WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM block_device_mapping WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_extra WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_actions_events WHERE action_id IN (SELECT id FROM instance_actions WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘) ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_actions WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_faults WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_system_metadata WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instances WHERE uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" 如果删除过程中提示还有其他外键,比如以下提示, ERROR 1451 (23000) at line 1: Cannot delete or update a parent row: a foreign key constraint fails (`nova`.`instance_system_metadata`, CONSTRAINT `instance_system_metadata_ibfk_1` FOREIGN KEY (`instance_uuid`) REFERENCES `instances` (`uuid`)) 在执行命令时,依次替换3个下划线的位置。第1个是关联外键所在表,第2个是该表中相关联的字段,第3个是被引用的表中对应的字段,就是前面查询到的instance_id。前两条直接复制,后面instance_id根据实际需要删除的实例的uuid去替换。执行的实际命令如下: mysql -uroot -pPASSWORD -e "USE nova; DELETE FROM instance_system_metadata WHERE instance_uuid=‘38887ca5-b697-451f-8d95-36b8b64aae3e‘ ;" 接下来,删除实例所使用的镜像。默认位于 /var/lib/nova/instances 目录中,镜像文件仍然是以instance_id命名,删除整个instance_id的文件夹即可。保险起见,可以将文件夹先备份到其他位置保留一段时间。 最后,就是前面提到的,手动去处理配额用量信息。 6、cinder创建云硬盘一直显示创建中,查看debug去抓8776然后就不动了 cinder配置文件没关联到ceph 7、dashboard能正常登陆,能做一系列的操作,但在做删除操作时会报如下错误 解决:在/etc/openstack-dashboard/local_settings中的import os后加入相关模块三行 import sys reload(sys) sys.setdefaultencoding('utf-8') 然后重启httpd和memcached 8、dashbaord session过期后再无法登录,报错 在/etc/openstack-dashboard/local.settings 加上一行 AUTH_USER_MODEL='openstack_auth.User' 9、FWaas安装完后数据库没有对应的表,导致无法创建防火墙 su -s /bin/sh -c "neutron-db-manage --service fwaas --service_plugins openstack-neutron-fwaas upgrade head" neutron 10、raw格式的镜像修改实例密码 网络节点:yum install cloud-init 计算节点:vim /etc/nova/nova.conf 加force_config_drive=true/always 创建主机时引用文件: #cloud-config ssh_pwauth: true disable_root: 0 user: root password: abc123 chpasswd: expire: false 11、raw格式镜像地址 centos7:http://cloud.centos.org/centos/7/images/ centos6:http://cloud.centos.org/centos/6/images/ 删除clond.conf里users里的root ubuntu:http://cloud-images.ubuntu.com/daily/server 转换镜像格式:http://docs.openstack.org/image-guide/convert-images.html 12、rabbitmq报错 2016-08-12 23:13:26.072 3683 ERROR oslo_messaging._drivers.impl_rabbit [-] AMQP server on 172.16.0.1:5672 is unreachable: [Errno 104] Connection reset by peer. Trying again in 1 seconds : 配置文件里面rabbit-hosts 记得加“s” 13、neutron 9696端口与LB问题: LB需要调成7层模式,会话保持与openstack一致 14、HA环境中查看vnc界面失败,刷新几下才好,再刷新又不好 在所有controller上/etc/nova/nova.conf的default模块中添加:memcached_servers = 172.16.0.1:11211,172.16.0.2:11211,172.16.0.3:11211 如果还没好: 查看netstat -lntap |grep memcache 保证监听的是0.0.0.0:11211,如果监听的是127.0.0.1,则需要修改:/etc/sysconfig/memcached 将OPTIONS="-l 127.0.0.1,::1"改成OPTIONS="" 15、修改openstack默认配额 修改controller上的nova.conf文件里面的quota选项 网络相关选项在controller上的neutron.conf里 16、cinder存储节点日志报错:(OperationalError) (1040, 'Too many connections') None None 增加mysql最大连接数 17、ceilometer meter-list报错: The service catalog is empty 修改环境变量:vim ceilometer-openrc.sh unset OS_PROJECT_DOMAIN_ID unset OS_USER_DOMAIN_ID export OS_PROJECT_NAME=admin export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=Admin@1233 export OS_AUTH_URL=http://172.16.0.100:35357/v2.0 export OS_IMAGE_API_VERSION=2 export OS_VOLUME_API_VERSION=2 18、rabbitmq启动报错ERROR: node with name "rabbit" already running ps aux | grep erl kill -9 该进程 19、rabbitmq优化命令 rabbitmqctl stop rabbitmq-server -detached 20、创建实例一直显示scheduling,nova-schedul日志一直调度: 有一台计算节点坏了,但是dashboard上没有关闭这个坏的计算节点,先将其关闭,然后重启计算节点上的nova-compute服务 21、cinder-volumes云硬盘dashboard和命令都删不掉: 进入数据库: >UPDATE volumes SET attach_status='detached',status="available" WHERE id='647d95ff-851d-415c-aba6-9419e5541758'; 22、查看镜像报错:The resource could not be found. (HTTP 404) Deferring keystone exception: The plugin token_endpoint could not be found 删除当前环境变量: unset OS_TOKEN OS_URL 重新创建:. admin-openrc 23、通过libvirt-set-admin-password方式修改实例登录密码: 安装相关软件(计算+控制): libvirt 1.2.16+ 宿主机 python-libvirt 1.2.16+ 宿主机 qemu-guest-agent 2.3+ 虚机内部 https://launchpad.net/ubuntu/+source/qemu 虚机镜像除了要安装qemu-guest-agent外,镜像本身还要设置hw_qemu_guest_agent属性: json文件在控制节点/etc/glance/metadefs目录下 导入元数据文件:compute-libvirt-image.json # glance-manage db_load_metadefs 导入所有默认的元数据文件 在镜像处选择更新元数据: libvirt Driver Options for Images 下的hw_qemu_guest_agent的值为yes。 在控制节点: # nova list # nova root-password 实例名字 New password: Again: 24、使用ovs安全组策略不生效: 在计算节点的openvswitch_agent.ini文件里的[securitygroup]模块下添加:: enable_ipset = True enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver 开启所有计算节点的iptables服务 25、dashboard上面调整云主机大小不生效,计算节点报错: 原因: OpenStack的云主机配置类型的修改,其实相当于做了一个云主机在不同宿主机的迁移,所以需要在相关迁移云主机进行无密码访问,由于OpenStack是由Nova组件来管理云主机,所以需要对Nova用户进行无密码访问。 需要配置各节点的ssh无密码访问 26、更改云主机密码 nova meta 主机名 set changePasswd=True admin_pass=密码 27、云主机热迁移配置: 所有计算节点: vim /etc/nova/nova.conf 在[libvirt]下添加: live_migration_flag = VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED vim /etc/libvirt/libvirtd.conf 添加: listen_tls = 0 listen_tcp = 1 auth_tcp = "none" tcp_port = "16509" listen_addr = "本机IP" vim /etc/sysconfig/libvirtd 添加:LIBVIRTD_ARGS="--listen" # service openstack-nova-compute restart # service libvirtd restart # netstat -lntp|grep 16509 如果有端口就成功了 28、配置云主机实例cpu型号和物理机一致: 修改所有计算节点: # vim /etc/nova/nova.conf 在[libvirt]下添加cpu_mode=host-passthrough 如果想指定某个型号: cpu_mode=custom cpu_model=型号 (支持的型号列表文件: /usr/share/libvirt/cpu_map.xml) 注意:型号要和物理机兼容,否则云主机系统起不来 (责任编辑:IT) |