У нас есть установка Proxmov HV, подключенная к 2 ящикам FreeNAS. Мы используем интерфейс FreeNAS ZFS поверх iSCSI для представления zvols как томов для виртуальных машин Proxmox.
Мы включили моментальные снимки на стороне FreeNAS и реплицируем блоки NAS друг с другом.
Что мы сейчас пытаемся сделать, так это подключить существующий снимок к виртуальной машине Proxmox, чтобы выполнить восстановление.
Во-первых, вам понадобится консольный доступ к блоку FreeNAS, блоку Promox HV (при запущенной виртуальной машине) и виртуальной машине. Вам также понадобится пользовательский интерфейс для FreeNAS и, возможно, Proxmox.
Вам нужно будет ввести свои собственные пути и имена пула.
В сеансе SSH на NAS:
Удерживайте снимок, который хотите. Это гарантирует, что он не будет случайно удален.
sudo zfs hold keep tank/tank-iscsi/*snapshot-name*
Если вам нужно получить список снимков, эта команда может помочь
sudo zfs list -t snapshot -o name | grep *vm-id*
Если вы используете исходный NAS в качестве источника (Primary NAS)
sudo zfs clone tank/tank-iscsi/*snapshot-name* tank/tank-iscsi/*cloned-snapshot-name*
Если вы используете реплицированный NAS в качестве источника (реплицированный NAS)
sudo zfs clone tank/replicated/tank-iscsi/*snapshot-name* tank/replicated/tank-iscsi/*cloned-snapshot-name*
NB: путь / имя zvol должно быть меньше 67 символов и не может быть доступно только для чтения. Это может потребовать изменения родительского набора данных.
В интерфейсе FreeNAS:
Sharing->iSCSI->Extents->Add Extent
tank/tank-iscsi/*cloned-snapshot-name*
tank/replicated/tank-iscsi/*cloned-snapshot-name*
Sharing->iSCSI->Associated Targets->Add Target
NB: это можно сделать на любом из NAS из-за репликации. Если используется реплицированная цель, убедитесь, что ReadOnly имеет значение false и репликация выключена. Возможно, вам потребуется настроить новую цель iscsi хранилища в Proxmox для пути к реплицированной цели iscsi.
В SSH на Proxmox HV (https://johnkeen.tech/proxmox-physical-disk-to-vm-only-2-commands/):
Убедитесь, что zvol виден Proxmox:
pvesm list tank-zfs-iscsi
pvesm list tank-zfs-iscsi-replicated
Добавьте диск к ВМ:
qm set *vm-id* -virtio1 tank-zfs-iscsi:*cloned-snapshot-name*
qm set *vm-id* -virtio1 tank-zfs-iscsi-replicated:*cloned-snapshot-name*
В ВМ (https://sontsysadmin.blogspot.com/2017/09/mounting-lvm-with-same-pv-lv-vg-names.html):
vgimportclone --basevgname recover /dev/vdX3
lvs
vgchange -a y recover
ls /dev/recover/
mkdir /mnt/recover
mount /dev/recover/ubuntu-lv /mnt/recover/
ls /mnt/recover/
Если вы получите следующую ошибку:
$ vgchange -ay recover
device-mapper: create ioctl on recover-ubuntu--lv LVM-3jIHEjL7LvdGGd4BP08N failed: Device or resource busy
Попробуйте эти команды для сброса диска:
dmsetup ls
recover-ubuntu--lv (253:1)
ubuntu--vg-ubuntu--lv (253:0)
dmsetup remove recover-ubuntu--lv
Повторить $ vgchange -ay recover
Убираться
На ВМ:
umount /mnt/recover
lvchange -an recover
vgchange -an recover
В интерфейсе Proxmox
На NAS SSH:
sudo zfs release keep Slow1/slow1-iscsi/*snapshot-name*