Proxmox. Миграция виртуальных машин и контейнеров: различия между версиями
Cless (обсуждение | вклад) |
Cless (обсуждение | вклад) |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
= | = Миграция между нодами PVE с разделами '''ZFS''' = | ||
== Требования == | |||
[[Категория:Proxmox]] | [[Категория:Proxmox]] | ||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | __ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | ||
Требования для миграции все те же, что и для репликации: [[Proxmox. Репликация виртуальных машин и контейнеров]] | Требования для миграции все те же, что и для репликации: [[Proxmox. Репликация виртуальных машин и контейнеров]] | ||
* Репликация работает ТОЛЬКО на разделах ZFS (используя технологию клонирования ZFS разделов) | * Репликация работает ТОЛЬКО на разделах ZFS (используя технологию клонирования ZFS разделов) | ||
| Строка 23: | Строка 20: | ||
То есть после миграции '''КОНТЕЙНЕРА 100''' с '''pve1''' на '''pve2''', он начал реплицироваться обратно на '''pve1''' | То есть после миграции '''КОНТЕЙНЕРА 100''' с '''pve1''' на '''pve2''', он начал реплицироваться обратно на '''pve1''' | ||
Если мы проведем обратные действия и мигрируем '''КОНТЕЙНЕР 100''' на '''pve1''', | Если мы проведем обратные действия и мигрируем '''КОНТЕЙНЕР 100''' на '''pve1''', то он снова автоматически начнет реплицироваться на '''pve2''' | ||
то он снова автоматически начнет реплицироваться на '''pve2''' | |||
== Миграция ВМ == | == Миграция ВМ == | ||
| Строка 45: | Строка 40: | ||
В свойствах хранилища, на котором лежит образ cd/dvd, подключенный к машине, включить галку "Shared" | В свойствах хранилища, на котором лежит образ cd/dvd, подключенный к машине, включить галку "Shared" | ||
= Миграция ВМ между нодами PVE с разделами '''iSCSI''' или '''RBD''' = | |||
Собираем кластер из '''2-х нод PVE''': [[Proxmox. Кластер]] | |||
Подключаем к любой ноде блочное устройство (например, RDB из системы CEPH). После подключения блочное устройство автоматически появится как локальное хранилище на всех нодах кластера: [[Proxmox. Mount Ceph RBD image]] | |||
Проверяем статус кластера | |||
<code>pvecm status</code><blockquote>'''Expected votes:''' - для успешной миграции этот параметр должен быть '''2''' (устанавливается по-умолчанию при создании кластера из 2-х нод), если нет - вводим в консоли (обе ноды должны быть онлайн): <code>pvecm expected 2</code></blockquote> | |||
... | |||
Cluster information | |||
------------------- | |||
Name: pve-cluster | |||
Config Version: 4 | |||
Transport: knet | |||
Secure auth: on | |||
Quorum information | |||
------------------ | |||
Date: Tue Mar 28 21:24:44 2023 | |||
Quorum provider: corosync_votequorum | |||
Nodes: 2 | |||
Node ID: 0x00000002 | |||
Ring ID: 1.5c | |||
Quorate: Yes | |||
Votequorum information | |||
---------------------- | |||
Expected votes: 2 | |||
Highest expected: 2 | |||
Total votes: 2 | |||
Quorum: 2 | |||
Flags: Quorate | |||
Membership information | |||
---------------------- | |||
Nodeid Votes Name | |||
0x00000001 1 192.168.199.180 | |||
0x00000002 1 192.168.199.188 (local) | |||
... | |||
== Вариант 1. Обе ноды PVE онлайн == | |||
'''ПКМ на ВМ - Migrate - target: pve02''' | |||
Произойдет '''живая''' миграция. ВМ не выключится. ВМ исчезнет на '''pve01''' и через несколько секунд появится на '''pve02''', так как виртуальный ЖД, подключенный к ВМ, остался все на том же сетевом SAN хранилище, по сути мигрирует только настройка ВМ и опертивная память. | |||
== Вариант 2. Нода '''pve01''' офлайн == | |||
В данном случае миграцию через веб-интерфейс выполнить не получится | |||
Необходимо ввести следующую команду на оставшейся онлайн ноде '''pve02:''' | |||
<code>pvecm expected 1</code> | |||
Теперь в консоли '''pve02''' просто переносим конфиг машины в директорию '''pve02:''' | |||
<code>mv /etc/pve/nodes/pve01-test/qemu-server/100.conf /etc/pve/nodes/pve02-test/qemu-server/</code> | |||
ВМ появится в веб-интерфейсе '''pve02'''. | |||
Когда '''pve01''' вернется онлайн - вводим в консоли: | |||
<code>pvecm expected 2</code> | |||
Теперь снова можно делать живую миграцию обратно на '''pve01'''. | |||
Текущая версия на 21:57, 28 марта 2023
Миграция между нодами PVE с разделами ZFS
Требования
Требования для миграции все те же, что и для репликации: Proxmox. Репликация виртуальных машин и контейнеров
- Репликация работает ТОЛЬКО на разделах ZFS (используя технологию клонирования ZFS разделов)
- На обоих хостах в кластере должен быть раздел ZFS с одинаковым именем (объем НЕобязательно должен быть одинаковым)
- При миграции ВМ и КТ на разделе ZFS хоста, на который мигрируем, создаются новые Датасеты-ZFS-клоны для каждой ВМ или КТ, то есть, по сути, миграция ВМ - это Датасет-клон-ZFS на хосте, на который мигрируем, на старом датасет удаляется
Миграция контейнера
Миграция КОНТЕЙНЕРА 100 (при условии что настроена репликация КОНТЕЙНЕРА 100 с pve1 на pve2) проходит довольно быстро (что неудивительно, ведь реплика образа ВД уже имеется на pve2)
КОНТЕЙНЕР 100 исчезнет на pve1 и появится на pve2
При этом в настройках репликации КОНТЕЙНЕРА 100 мы увидим что Target поменялся с pve2 на pve1
То есть после миграции КОНТЕЙНЕРА 100 с pve1 на pve2, он начал реплицироваться обратно на pve1
Если мы проведем обратные действия и мигрируем КОНТЕЙНЕР 100 на pve1, то он снова автоматически начнет реплицироваться на pve2
Миграция ВМ
HINTS
- При миграции, по сути, удаляется датасет-zfs, содержащий образ ВД, с одного хоста и создается на втором, а также переносится файл настройки (
mv /etc/pve/nodes/pve1/qemu-server/100.conf /etc/pve/nodes/pve2/qemu-server/или обратно) - МИГРАЦИЯ ПРИ НАЛИЧИИ СНЭПШОТОВ НЕВОЗМОЖНА. Необходимо удалить все снэпшоты
- МИГРАЦИЯ ПРИ НАСТРОЕННОЙ РЕПЛИКАЦИИ НЕВОЗМОЖНА. Необходимо удалить репликацию, затем запустить миграцию, а затем снова создать репликацию, если необходимо
- По сути, мигрировать при настроенной репликации можно командой:
mv /etc/pve/nodes/pve1/qemu-server/100.conf /etc/pve/nodes/pve2/qemu-server/ - При этом мы теряем новые данные с момента последней синхронизации через репликацию
ОШИБКА "proxmox can't migrate vm with local cd/dvd"
Образ cd/dvd, прикрепленный к ВМ, лежит на хранилище, в свойствах которого не стояла галка "Shared",
ошибка возникала даже после того как образ и даже сам cd-rom от машины я отключил
РЕШЕНИЕ
В свойствах хранилища, на котором лежит образ cd/dvd, подключенный к машине, включить галку "Shared"
Миграция ВМ между нодами PVE с разделами iSCSI или RBD
Собираем кластер из 2-х нод PVE: Proxmox. Кластер
Подключаем к любой ноде блочное устройство (например, RDB из системы CEPH). После подключения блочное устройство автоматически появится как локальное хранилище на всех нодах кластера: Proxmox. Mount Ceph RBD image
Проверяем статус кластера
pvecm status
Expected votes: - для успешной миграции этот параметр должен быть 2 (устанавливается по-умолчанию при создании кластера из 2-х нод), если нет - вводим в консоли (обе ноды должны быть онлайн):
pvecm expected 2
... Cluster information ------------------- Name: pve-cluster Config Version: 4 Transport: knet Secure auth: on Quorum information ------------------ Date: Tue Mar 28 21:24:44 2023 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 0x00000002 Ring ID: 1.5c Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 0x00000001 1 192.168.199.180 0x00000002 1 192.168.199.188 (local) ...
Вариант 1. Обе ноды PVE онлайн
ПКМ на ВМ - Migrate - target: pve02
Произойдет живая миграция. ВМ не выключится. ВМ исчезнет на pve01 и через несколько секунд появится на pve02, так как виртуальный ЖД, подключенный к ВМ, остался все на том же сетевом SAN хранилище, по сути мигрирует только настройка ВМ и опертивная память.
Вариант 2. Нода pve01 офлайн
В данном случае миграцию через веб-интерфейс выполнить не получится
Необходимо ввести следующую команду на оставшейся онлайн ноде pve02:
pvecm expected 1
Теперь в консоли pve02 просто переносим конфиг машины в директорию pve02:
mv /etc/pve/nodes/pve01-test/qemu-server/100.conf /etc/pve/nodes/pve02-test/qemu-server/
ВМ появится в веб-интерфейсе pve02.
Когда pve01 вернется онлайн - вводим в консоли:
pvecm expected 2
Теперь снова можно делать живую миграцию обратно на pve01.