Назад | Перейти на главную страницу

Openstack: можно ли перенести экземпляр с мертвого вычислительного сервера на работающий?

У меня есть кластер с 84 вычислительными узлами Openstack Essex, один из которых решил тосковать по фьордам около 2 часов назад, с 8 работающими экземплярами на нем.

Все экземпляры работают с дисков qcow2 в общей папке NFS, поэтому образы дисков по-прежнему доступны.

nova live-migration только кажется способным перенести работающий экземпляр с одного работающего узла на другой.

Я хочу «перенести» мертвые экземпляры с мертвого вычислительного узла на любой из активных вычислительных узлов. Тот факт, что экземпляры будут перезагружены (и им придется выполнять fsck при загрузке), на самом деле не имеет значения - это лучше, чем их полностью потерять.

Прежде чем я начну действовать в соответствии с мыслями о том, чтобы возиться с virsh и напрямую взломать базу данных mysql nova, знает ли кто-нибудь о каком-либо инструменте или документированной процедуре для такого рода «мертвой миграции»?

Это старый вопрос, но да, вы можете с командой nova evacuate. Пример перемещения vm_name на узел nova_compute1:

nova evacuate vm_name nova_compute1 
nova reboot --hard vm_name

Экземпляр будет загружен на новый узел.

Я никогда этого не делал. Надеюсь, эта ссылка поможет вам восстановить экземпляры.

http://docs.openstack.org/essex/openstack-compute/admin/content/nova-disaster-recovery-process.html

Миграция экземпляра Openstack прошла успешно только после следующих шагов.

обе хост-машины должны подключить ssh без пароля для пользователя nova.

Для этого нам нужно создать пару ключей с помощью ssh-keygen после запуска команды su nova

# usermod -s /bin/bash nova
# su nova
# ssh-keygen

пара ключей будет сгенерирована в /var/lib/nova/.ssh

#cat <pub_key> >> /var/lib/nova/.ssh/authorized_keys
#echo 'StrictHostKeyChecking no' >> /var/lib/nova/.ssh/config

Проделайте вышеуказанные шаги со вторым хостом.

скопируйте открытый ключ (id_rsa.pub) с первого хоста на второй и добавьте к авторизованным ключам, выполнив следующую команду

#cat <pub_key> >> /var/lib/nova/.ssh/authorized_keys

скопируйте открытый ключ (id_rsa.pub) со Второго хоста на первый хост и добавить к авторизованным ключам файл авторизованных ключей в /var/lib/nova/.ssh/ должен содержать открытый ключ от обоих хостов. затем

# su nova
# ssh nova@otherhost should connect without password.

Тогда миграция Openstack будет работать.