Розглянемо відновлення Zfs RAID1, якщо нам потрібна заміна диска. Нагадаю, що у нас Proxmox встановлений у efi bios і там використовується завантажувач systemd-boot.
Перевірка статусу пулу
Припустимо, у нас полетів диск і ми його замінили. Бачимо, наш пул у статусі DEGRADED і не бачить наш старий диск.
Переглянути статус пулу можна в GUI Proxmox.
Або за допомогою команди, де rpool - назва пула:
zpool status rpool
Рядок після was (/dev/disk/by-id/ata-VBOX_HARDDISK_VB06e95e61-403d7e2b-part3) копіюємо, вона потрібна нам буде для видалення не робочого диска.
Видаляємо мертвий диск
Видаляємо мертвий диск:
zpool detach rpool /dev/disk/by-id/ata-VBOX_HARDDISK_VB06e95e61-403d7e2b-part3
Готуємо новий диск до відновлення завантажувача та raid1 Копіюємо таблицю розділів із робочого диска sda (робочий) на новий диск sdb (новий):
sgdisk -R /dev/sdb /dev/sda
Генеруємо унікальні UUID для /dev/sdb:
sgdisk -G /dev/sdb
Відновлюємо завантажувач systemd-boot Потрібно відновити завантажувач, для цього відформатуємо розділ /dev/sdb2 як ESP:
pve-efiboot-tool format /dev/sdb2
Налаштуємо розділ /dev/sdb2 для включення в Proxmox VE kernel update synchronization mechanism, щоб завантажувальні розділи синхронізувалися:
pve-efiboot-tool init /dev/sdb2
Обновимо конфігурацію всіх ESP, щоб скопіювати ядра та засинхронити всі ESP на наших дисках:
pve-efiboot-tool refresh
Відновлюємо raid1
Запукаєм команду smartctl -i /dev/sda smartctl -i /dev/sdb
Для перевірки серійного номеру та ІД пристроїв, потім підставляєм в zpool attach
Створимо raid1 з нашим новим диском (створювати пул краще за id дисками, щоб при зміні порту диска zfs могла знайти диски):
zpool attach rpool /dev/disk/by-id/ata-VBOX_HARDDISK_VBfb65757e-ea936e4d-part3 /dev/disk/by-id/ata-VBOX_HARDDISK_VB9b8d476a-b387a510-part3
І почекаємо, коли він відновить дані на новому диску.
Переглянути проценти відновлення можна за допомогою команди:
zpool status rpool
На цьому все. Zfs RAID1 відновлено, завантажувальна область відновлено.