Лабораторная работа 2. Установка клиентской ВМ и настройка динамической миграции
Настройка динамической миграции
Установка Pacemaker/Corosync
- На всех узлах нужно установить требуемые пакеты и запустить демон
pcsd
:udo apt install pacemaker corosync pcs resource-agents udo systemctl enable --now pcsd ``
Запуск кластера
-
Задать пароль пользователя
hacluster
на всех узлах (в примере используется парольpassword
):sudo passwd hacluster
-
Отредактировать раздел nodelist файла
/etc/corosync/corosync.conf
(на одном из узлов):nodelist { node { name: ceph-01 nodeid: 1 ring0_addr: 172.17.5.237 } node { name: ceph-02 nodeid: 2 ring0_addr: 172.17.5.232 } node { name: ceph-03 nodeid: 3 ring0_addr: 172.17.5.251 } }
-
С помощью pcs создать кластер (на одном из узлов):
sudo pcs host auth ceph-01 addr=172.17.5.237 \ ceph-02 addr=172.17.5.232 ceph-03 addr=172.17.5.251 \ -u hacluster -p password sudo pcs cluster setup newcluster ceph-01 ceph-02 ceph-03 --force sudo pcs cluster start --all
-
Отключить fencing (в рамках работы он не рассматривается):
sudo pcs property set stonith-enabled=false
-
Включить автозапуск сервисов на всех трех машинах:
sudo systemctl enable pacemaker corosync
-
Просмотреть информацию о кластере и кворуме:
sudo pcs status sudo corosync-quorumtool
Создание ресурса
-
Создать дамп созданной ВМ и затем удалить её:
sudo virsh dumpxml Test-VM | tee vm_conf.xml sudo virsh undefine Test-VM sudo virsh destroy Test-VM
-
Скопировать дамп с ceph-01 на ceph-02 и ceph-03:
scp vm_conf.xml ceph-02:~ scp vm_conf.xml ceph-03:~
-
На ceph-01, ceph-02 и ceph-03 переместить файл в /etc/pacemaker/
sudo mv vm_conf.xml /etc/pacemaker/ sudo chown hacluster:haclient /etc/pacemaker/vm_conf.xml
-
Теперь добавить сам ресурс:
sudo pcs resource create test-vm VirtualDomain \ config="/etc/pacemaker/vm_conf.xml" \ migration_transport=tcp meta allow-migrate=true
-
Просмотреть список добавленных ресурсов:
sudo pcs status sudo pcs resource config test-vm
-
Проверить список виртуальных машин на узле, на котором запустился ресурс:
sudo virsh list --all
-
Проверить, что ресурс успешно запустился.
Настройка миграции
Выполнить действия на всех узлах
-
Необходимо отредактировать файл
/etc/libvirt/libvirtd.conf
:listen_tls = 0 listen_tcp = 1 auth_tcp = "none"
-
Отредактировать файл
/etc/default/libvirtd
:libvirtd_opts="--config /etc/libvirt/libvirtd.conf"
-
Запустить сокет
libvirt-tcp
:sudo systemctl stop libvirtd && sudo systemctl start libvirtd-tcp.socket
Миграция ресурса
-
Нужно переместить ресурс на
ceph-02
:sudo pcs resource move test-vm ceph-02
-
На ceph-02 посмотреть статус кластера, и проверить список запущенных гостевых машин можно следующими командами:
sudo pcs status sudo virsh list --all
-
Команда move добавляет ресурсу правило, заставляющее его запускаться только на указанном узле. Для того, чтобы очистить все добавленные ограничения - clear:
sudo pcs resource clear test-vm