这个机器自闭了,得赶紧吃了它。

原因

  • 在openstack上,热迁移节点后,机器所能读到的网卡MAC地址会发生变化。
  • 在Centos中,/etc/udev/rules.d/70-persistent-net.rules,记录了网卡的MAC地址和逻辑名称。
  • 这里会出现不一致,从而导致网卡加载失败。
  • 至于这是一个稳定的bug还是偶尔热迁移出错,并不清楚。

解决办法

  • ip addr可查看修改后的mac地址。
  • 重写/etc/udev/rules.d/70-persistent-net.rules

问题的严重性

  • 令人苦恼的在于,虚拟机网卡加载失败,就无法再ssh连接到机器上,想要修改文件也变得很难。

Guestfish

  • 由此,发现了一个修改虚拟机文件系统的好东西。
  • 参考网页
1
2
3
4
5
6
7
8
sudo yum install libguestfs-tools
guestfish --rw -a diskfile
run
list-filesystem

mount /dev/sda1 /

vi /etc/shadow
  • 注意修改的时候把虚拟机关机。
  • 如果不小心搞崩了文件系统,可以用fsck恢复。

docker run –rm -it -v /home/lib/docker/volumes/nova_compute/_data/:/var/lib/nova -v /tmp:/tmp xword/guestfish -r -a /var/lib/nova/instances/87d9b0e0-46f6-4308-b8b3-67f3f2d91bc9/disk