我收到一条错误消息,提示“Trace nova Stderr:'iscsiadm:No portal found.\n'。Trace nova 命令:sudo nova-rootwrap iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000003 -p :3260 --rescan
如果需要更多信息,请告诉我。提前致谢。
更新:
有两台服务器
1. 控制节点(主机名:cc)
2. 计算节点(主机名:nc)
操作系统:Ubuntu 12.04(无头)
Openstack 风格:埃塞克斯
直到上周,我们的设置都运行良好。但是,当我们想要安装 Ubuntu 桌面以摆脱 Headless 并获得一些漂亮的屏幕时,我们必须输入命令(在 cc host 中)
#sudo apt-get install ubuntu-desktop
然后,我们所有的问题就开始了。我注意到,它正在删除 Apache、Openstack – 仪表板和 nova 卷,也没有任何事先通知或确认。它甚至没有更新这些东西。
因此我们所有的虚拟机实例都崩溃了。
然后,当我运行 #sudo nova-manage service list 时,它会向我显示 nova-volume 和 nova-compute 的 XXX。我们重新安装了 nova-volume,将状态从 XXX 更改为 :-)。
然后,我们尝试了我们知道的所有方法,例如重新安装 apahce2、重新安装 openstack-dashboard、apt-get update、apt-get upgrade、从 mysql 中删除可疑记录、删除 lvm。
经过上述步骤,我们终于可以启动并运行我们的 openstack 仪表板了。现在,我们关心的是 nova-compute 服务,它在服务列表中显示 XXX。
尝试 1:当我们将 nova.conf 文件更改为 start_guests_on_host_boot=false 和 resume_guests_state_on_host_boot=false 并重新启动 cc 主机时,重新启动后所有服务均显示 :-)。现在,当我检查仪表板时,它显示所有虚拟机的状态为“已关闭”,并且旋转器正在旋转。
尝试2:当我们将 nova.conf 文件更改为 start_guests_on_host_boot=true 和 resume_guests_state_on_host_boot=true 并重新启动 cc 主机时,重新启动后它会显示 nova-compute 服务的 XXX。当我们检查 /var/log/nova/nova-compute.log 文件时,它显示了类似以下错误
iscsiadm: No portal found. \n'. Trace nova Command: sudo nova-rootwrap iscsiadm -m node -T iqn.2010-10.org.openstack: volume-0000003 -p: 3260 --rescan
修复上述问题:
1.将nova conf中的两个flags改为true。
2.执行#apt-get remove --purge iscsitarget
3.重启cc主机。
4.执行#/etc/init.d/open-iscsi restart。
5.执行#sudo /etc/init.d/networking restart
6.执行#sudo service ntp restart
7.执行#sudo service tgt restart
8.执行#sudo nova-manage db sync
9.重启cc主机的nova-volume、nova-compute、nova-cert、nova-network、nova-scheduler、nova-consoleauth。
修复结果:
当我们运行以下命令时,我们能够获得(之前没有获得过)卷列表
#iscsiadm -m discovery -t sendtargets -p :3260
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000007
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000005
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000014
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000003
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-0000000f
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000013
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000004
CC_HOST_IP:3260, 1 iqn.2010-10.org.openstack: volume-00000008
但所有虚拟机仍处于关闭状态,旋转器连续旋转了整整一天。我们注意到,我们能够 ping 一些虚拟机,并且还可以使用 MSTSC 连接到它们。
现在,我们在计算日志中没有看到 Portal not found 错误。但我们注意到错误信息如下。
libvirtError: Unable to allow access for disk path /dev/disk/by-path/ip-:3260-iscsi-iqn.2010-10.org.openstack:volume-00000017-lun-1: No such file or directory
供您参考,作为我研发的一部分,我已删除(lvremove volume-17)与此相关的 lvm。
当前状态:在 cc 主机上,获取以下错误
libvirtError: Unable to allow access for disk path /dev/disk/by-path/ip-:3260-iscsi-iqn.2010-10.org.openstack:volume-00000017-lun-1: No such file or directory
在 nc 主机上,出现以下错误
libvirtError: Unable to allow access for disk path /dev/disk/by-path/ip-:3260-iscsi-iqn.2010-10.org.openstack:volume-00000020-lun-1: No such file or directory
输入:
1. 我们这里没有 cinder。只有 nova-volume、nova-compute、nova-cert、nova-network、nova-scheduler、nova-consoleauth。2.
服务的当前状态是
Binary Host Zone Status State Updated_At
nova-network cc nova enabled :-) 2016-05-19 13:48:48
nova-compute cc nova enabled XXX 2016-05-19 11:37:23
nova-scheduler cc nova enabled :-) 2016-05-19 13:48:51
nova-volume cc nova enabled :-) 2016-05-19 13:48:48
nova-consoleauth cc nova enabled :-) 2016-05-19 13:48:50
nova-cert cc nova enabled :-) 2016-05-19 13:48:49
nova-compute nc nova enabled XXX 2016-05-19 11:37:13
nova-volume nc nova enabled :-) 2016-05-19 13:48:44
是的,tgt 正在运行。
root@cc:/dev/disk/by-path# sudo service tgt status tgt start/running, process 2583
配置文件如下。
cc 主机上的 nova.conf:--dhcpbridge_flagfile=/etc/nova/nova.conf --my_ip= --dhcpbridge=/usr/bin/nova-dhcpbridge --logdir=/var/log/nova --debug = true --state_path=/var/lib/nova --lock_path=/run/lock/nova --allow_admin_api=true --use_deprecated_auth=false --auth_strategy=keystone --scheduler_driver=nova.scheduler.simple.SimpleScheduler --max_cores=106 --s3_host= --ec2_host= --rabbit_host= --cc_host= --nova_url=http://:8774/v1.1/ --routing_source_ip= --glance_api_servers=:9292 --image_service=nova.image.glance.GlanceImageService --iscsi_ip_prefix=192.168.4 --sql_connection=mysql://nova:nova@/nova --ec2_url=http://:8773/services/Cloud --keystone_ec2_url=http://:5000/v2.0/ec2tokens --api_paste_config=/etc/nova/api-paste.ini --libvirt_type=kvm --libvirt_use_virtio_for_bridges=true --start_guests_on_host_boot=true --resume_guests_state_on_host_boot=true --novnc_enabled=true --novncproxy_base_url=http://:6080/vnc_auto.html --vncserver_proxyclient_address= --vncserver_listen= --vncserver_listen=0.0.0.0 --network_manager=nova.network.manager.FlatDHCPManager --public_interface=eth0 --flat_interface=eth1 --flat_network_bridge=br100 --fixed_range=192.xxx.y.1/27 --floating_range=/27 --network_size=32 --flat_network_dhcp_start=192.xxx.y.33 --flat_injected=False --force_dhcp_release=True --iscsi_helper=tgtadm --connection_type=libvirt --root_helper=sudo nova-rootwrap --verbose
nc 主机上的 nova.conf:
--dhcpbridge_flagfile=/etc/nova/nova.conf --my_ip= --dhcpbridge=/usr/bin/nova-dhcpbridge --logdir=/var/log/nova --state_path=/var/lib/nova --lock_path=/run/lock/nova --allow_admin_api=true --use_deprecated_auth=false --auth_strategy=keystone --scheduler_driver=nova.scheduler.simple.SimpleScheduler --max_cores=106 --s3_host= --ec2_host= --rabbit_host= --cc_host= --nova_url=http://:8774/v1.1/ --routing_source_ip= --glance_api_servers=:9292 --image_service=nova.image.glance.GlanceImageService --iscsi_ip_prefix=192.xxx.y --sql_connection=mysql://nova:cyient#3@/nova --ec2_url=http://:8773/services/Cloud --keystone_ec2_url=http://:5000/v2.0/ec2tokens --api_paste_config=/etc/nova/api-paste.ini --libvirt_type=kvm --libvirt_use_virtio_for_bridges=true --start_guests_on_host_boot=true --resume_guests_state_on_host_boot=true --novnc_enabled=true --novncproxy_base_url=http://:6080/vnc_auto.html --vncserver_proxyclient_address= --vncserver_listen=0.0.0.0 --network_manager=nova.network.manager.FlatDHCPManager --public_interface=eth0 --flat_interface=eth1 --flat_network_bridge=br100 --fixed_range=192.xxx.y.1/27 --floating_range=/27 --network_size=32 --flat_network_dhcp_start=192.xxx.y.33 --flat_injected=false --force_dhcp_release=true --iscsi_helper=tgtadm --connection_type=libvirt --root_helper=sudo nova-rootwrap --verbose
更新:通过下面解释的步骤修复了上述两个错误
- 在 cc host 中,我制作了标志
start_guests_on_host_boot=false
和resume_guests_state_on_host_boot
。 - 重新启动 cc 和 nc 主机。
- 重启后,所有 nova 服务均显示出来
:-)
。 - 从 mysql db 中删除已删除状态为 1 的记录。
- 将每个虚拟机的状态更改为
mysql: update instances set vm_state='active', task_state = NULL, power_state = 1 where uuid = INSTANCE_UUID
- 使用命令重新启动每个虚拟机
#nova reboot --hard INSTANCE_UUID
- 这解决了我的问题并使我的所有虚拟机正常运行。
- 将上述两个布尔标志恢复为 true 并重新启动 cc 主机。
- 重启后,所有 nova 服务
:-)
和所有虚拟机均已启动并运行。