Перейти к основному содержимому

Инструкция №33. Резервное копирование и восстановление виртуальной машины

Резервное копирование виртуальной машины

Данная инструкция предназначена для создания резервной копии и восттановления из неё, виртуальной машины (далее — VM), которая позволит выполнить восстановление VM за короткий промежуток времени в случае аварийной ситуации, повлёкшей за собой не работоспособность VM.

Нам потребуется:

  1. USB memory stick (далее — Носитель) размером не менее 32GB, либо сетевое хранилище.
  2. Доступ в CLI узла.

Желательно использовать модель Носителя, поддерживающую версию USB не менее 3.0, и подключать её в разъём USB 3.0. В случае невозможности использования USB 3.0 скорость создания резервной копии и восстановления из неё существенно увеличится.

Рассматривается пример, создания резервной копии для VM ID 1018166, находящейся на пуле z04. Посредством SSH или системной консоли выполните логин на Узел, на котором обслуживается пул z04,посмотреть можно в веб интерфейсе либо на любом из узлов, cli утилитой ccrd_cli (в примере пулл обслуживается на узле номер 2).

root@q7u002:~ # ccrd_cli

Node ID: 1; name: q7u001.z.vstack.com; state: ONLINE; [ enabled]
Service name: cluster-management; state: STARTED; [ enabled]
Service name: zpool_z05; state: STARTED; [ enabled]
Node ID: 2; name: q7u002.z.vstack.com; state: ONLINE; [ enabled]
Service name: zpool_z04; state: STARTED; [ enabled]
Node ID: 3; name: q7u003.z.vstack.com; state: ONLINE; [ enabled]
Service name: zpool_z01; state: STARTED; [ enabled]
Node ID: 4; name: q7u004.z.vstack.com; state: ONLINE; [ enabled]
Service name: zpool_z03; state: STARTED; [ enabled]
Node ID: 5; name: q7u005.z.vstack.com; state: ONLINE; [ enabled]
Service name: zpool_z02; state: STARTED; [ enabled]
________________________________________
root@q7u002:~ # zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
z04 2.17T 1.18T 1020G - - 31% 54% 1.39x ONLINE -
root@q7u002:~ # zfs list -t all | grep 1018166
z04/.vm_V4/001018166 575K 563G 206K /pools/z04/.vm_V4/001018166
z04/.vm_V4/001018166/disk_000000000 99.4K 563G 1.33G -
z04/.vm_V4/001018166/log 170K 99.8M 170K /pools/z04/.vm_V4/001018166/log
z04/.vm_V4/001018166/snapshot.bvmss 99.4K 563G 99.4K -

Подключите Носитель к узлу описание процедуры содержится в Инструкции №30.

Проверяем статус VM (она имеет ID 1018166)

root@q7u002:~ # vstack-vm vm --list | grep 1018166
1018166 : z04 : Started

Для создания консистентной резервной копии необходимо остановить VM

root@q7u002:~ # vstack-vm vm --id=1018166 --stop
VM_id=1018166 stopping; fifo=/var/run/vstack-vm-cli-fifo.84054.1018166
VM_id=1018166 event Status=Stopping Progress=0
VM_id=1018166 event Status=Stopping Progress=20
VM_id=1018166 event Status=Stopping Progress=30
VM_id=1018166 event Status=Stopping Progress=40
VM_id=1018166 event Status=Stopping Progress=50
VM_id=1018166 event Status=Stopping Progress=90
VM_id=1018166 event Status=Offline Progress=100
VM_id=1018166 finish Status=1
VM_id=1018166 stopped with status: 1

Выполнить снятие снапшета, после чего VM можно запустить, резервная копия будет создаваться и копироваться из снятого снапшета.

root@q7u002:~ # zfs snapshot -r z04/.vm_V4/001018166@20260601
root@q7u002:~ # vstack-vm vm --id=1018166 --start
VM_id=1018166 starting; fifo=/var/run/vstack-vm-cli-fifo.84989.1018166
VM_id=1018166 event Status=Starting Progress=0
VM_id=1018166 event Status=Starting Progress=20
VM_id=1018166 event Status=Starting Progress=30
VM_id=1018166 event Status=Starting Progress=40
VM_id=1018166 event Status=Starting Progress=90
VM_id=1018166 event Status=Started Progress=100
VM_id=1018166 finish Status=1
root@q7u002:~ # zfs send -vR z04/.vm_V4/001018166@20260601 > z04_001018166-20260601.zfs
full send of z04/.vm_V4/001018166@20260601 estimated size is 47.3K
full send of z04/.vm_V4/001018166/log@20260601 estimated size is 44.8K
full send of z04/.vm_V4/001018166/snapshot.bvmss@20260601 estimated size is 28.8K
full send of z04/.vm_V4/001018166/disk_000000000@20260601 estimated size is 2.01G
total estimated size is 2.01G
TIME SENT SNAPSHOT z04/.vm_V4/001018166@20260601
TIME SENT SNAPSHOT z04/.vm_V4/001018166/log@20260601
TIME SENT SNAPSHOT z04/.vm_V4/001018166/snapshot.bvmss@20260601
TIME SENT SNAPSHOT z04/.vm_V4/001018166/disk_000000000@20260601

Восстановление VM из резервной копии

Данная инструкция предназначена для восстановления VM из резервной копии.

INFO

VM должна быть восстановлена на тот же пул, на котором находилась при снятии резервной копии

Восстановление производится на пул z04. Определить его местоположение из cli на любом из серверов, с помощью утилиты ccrd_cli. На Узле на котором находится пул z04:

  • проверить активность пула
  • остановить VM
  • переименовать текущий датасет VM
  • восстановить резервную копию
  • запустить VM
root@q7u002:~ # zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
z04 2.17T 1.18T 1020G - - 31% 54% 1.39x ONLINE -
root@q7u002:~ # vstack-vm vm --id=1018166 --stop
VM_id=1018166 stopping; fifo=/var/run/vstack-vm-cli-fifo.88715.1018166
VM_id=1018166 event Status=Stopping Progress=0
VM_id=1018166 event Status=Stopping Progress=20
VM_id=1018166 event Status=Stopping Progress=30
VM_id=1018166 event Status=Stopping Progress=40
VM_id=1018166 event Status=Stopping Progress=50
VM_id=1018166 event Status=Stopping Progress=90
VM_id=1018166 event Status=Offline Progress=100
VM_id=1018166 finish Status=1
VM_id=1018166 stopped with status: 1
root@q7u002:~ # zfs rename z04/.vm_V4/001018166 z04/.vm_V4/20260601-001018166
root@q7u002:~ # cat z04_001018166-20260601.zfs | zfs recv -vd z04
receiving full stream of z04/.vm_V4/001018166@20260601 into z04/.vm_V4/001018166@20260601
received 58.5K stream in 0.09 seconds (681K/sec)
receiving full stream of z04/.vm_V4/001018166/log@20260601 into z04/.vm_V4/001018166/log@20260601
received 48.5K stream in 0.07 seconds (721K/sec)
receiving full stream of z04/.vm_V4/001018166/snapshot.bvmss@20260601 into z04/.vm_V4/001018166/snapshot.bvmss@20260601
received 3.24K stream in 0.11 seconds (29.0K/sec)
found clone origin z04/.vm_images/FreeBSD-15.0-RELEASE-amd64-v0@.clone.source_1750000000
receiving incremental stream of z04/.vm_V4/001018166/disk_000000000@20260601 into z04/.vm_V4/001018166/disk_000000000@20260601
received 12.4M stream in 1.14 seconds (10.8M/sec)
root@q7u002:~ # vstack-vm vm --id=1018166 --start
VM_id=1018166 starting; fifo=/var/run/vstack-vm-cli-fifo.89653.1018166
VM_id=1018166 event Status=Starting Progress=0
VM_id=1018166 event Status=Starting Progress=20
VM_id=1018166 event Status=Starting Progress=30
VM_id=1018166 event Status=Starting Progress=40
VM_id=1018166 event Status=Starting Progress=90
VM_id=1018166 event Status=Started Progress=100
VM_id=1018166 finish Status=1

После проверки, можно удалить старый датасет

root@q7u002:~ # zfs destroy -r z04/.vm_V4/20260601-001018166