Failover management » История » Версия 2
« Предыдущее -
Версия 2/6
(Разница(diff)) -
Следующее » -
Текущая версия
Владимир Ипатов, 24.10.2012 20:53
.
FAILOVER management¶
designations:
gnt# - command exec on master node gntX# - command exec on ordinary node gntY# - command exec on other node # - command exec on any node
Start instances on one node where other is down¶
When node starts and can't find other node, cluster management daemon ganeti-masterd don't start automatically, even on a master-node.
It is because of not able to find out if second node down or there is a link problem when instances on other node is still running.
Cluster management daemon start:
gnt# ganeti-masterd --no-voting
Normal change master node¶
Both of the nodes are online, master node changing is in normal mode
On master-candidate (gntX):
gntX# gnt-cluster master-failover
Failure of master node¶
Master node(in this example gnt1) is down by hardware failure.
Start management daemon on master-candidate(gntX):
gntX# ganeti-masterd --no-voting
Activate new master node:
gntX# gnt-cluster master-failover --no-voting
Set broken node to offline so master node don't try to connect it.
-С = master-candidate
-O = offline
gnt# gnt-node modify -C no -O yes gntY
Запустить все виртуалки отключенного узла на резервном:
gnt# gnt-node failover --ignore-consistency gnt1
Возврат основного узла в строй¶
Старый основной узел не будет автоматически запускать управляющего демона.- если не найдет парного узла,
- если найдет парный узел и узнает, что он стал новым master-ом.
Если на узле сохранились данные, то для включения его обратно в кластер:
Скопировать на него свежую конфигурацию с нового master-а
gnt# gnt-cluster redist-conf
Запустить на нем ganeti-демоны
gntX# /etc/init.d/ganeti restart
Плановый вывод узла из эксплуатации¶
Мигрируем виртуальные машины:
gnt# gnt-instance migrate имя_машины
Если выводимый узел - мастер, то нужно назначить нового мастера(см. выше Штатное переключение master узла).
Вывести узел из списка кандидатов на мастера и перевести его в режим offline (это предотвратит появление сообщений об "аварии"):
gnt# gnt-node modify -C no -O yes УЗЕЛ
Далее узел можно просто выключить.
Возврат узла в кластер¶
После включения узла нужно сообщить кластеру, что узел вернулся в строй:
gnt# gnt-node modify -C yes -O no УЗЕЛ
Однако, если у вас имеются сомнения в том, что узел остался в рабочем состоянии, то лучше выполнить:
gnt# gnt-node add --readd УЗЕЛ
В любом случае, после этого нужно подождать около 5 минут, чтобы демон watcher поднял drbd, либо инициировать процесс вручную:
gnt# gnt-cluster verify-disks
Замена узла на новый¶
Добавить узел в кластер
gnt# gnt-node add --readd gntX
Для всех виртуалок, которые имеют secondary на подключенном узле:
gnt# gnt-instance replace-disks --submit -s INSTANCE
Перерегистрировать узел в puppet
gnt# gnt-instance console sci sci# puppetca --clean gnt1.fqdn
gntX# /var/lib/puppet/ssl/* gntX# /etc/init.d/puppet restart
Замена жесткого диска¶
Скопировать разметку с существующего (только для дисков одной модели!)
# sfdisk -d /dev/sda|sfdisk /dev/sdX
Проверить
# fdisk -l
Добавить в RAID
# mdadm --manage /dev/md0 --add /dev/sdX1 # mdadm --manage /dev/md1 --add /dev/sdX2 # mdadm --manage /dev/md2 --add /dev/sdX3
Проверить
cat /proc/mdstat