Замена диска в пуле ZFS
Замена диска в пуле ZFS на Proxmox
Документ описывает пошаговую процедуру замены физического диска в ZFS-пуле на Proxmox VE.
Подходит для сценариев:
- диск умирает / деградировал пул;
- замена SSD/HDD на новый;
- пересборка пула «как было», без спасения старых VM;
- перенос VM с одного пула на другой.
Рассматриваются два варианта:
- пул из одного диска;
- пул из двух и более дисков (mirror / raidz).
0. Вводные и допущения
- Proxmox VE использует ZFS
- VM используют ZFS Storage (
zfspool) - Мы не восстанавливаем старые VM, а хотим вернуть инфраструктуру «как было»
- Все команды выполняются от
root
1. Просмотр текущей картины
1.1 Список ZFS-пулов
zpool list
Обращаем внимание на:
HEALTH— ONLINE / DEGРАDED- имя пула (например
SSD,DEXP_SSD,Main)
1.2 Список датасетов и виртуальных дисков
zfs list
По выводу можно понять:
- какие VM используют пул;
- есть ли
vm-XXX-disk-Y; - какие VM задействованы в проблемном пуле.
1.3 Проверка, какие VM используют пул
pvesm status
Смотрим строку нужного пула (SSD, DEXP_SSD) и убеждаемся, что он активен и используется.
1.4 Просмотр конфигураций VM
Для каждой VM:
qm config <VMID>
Пример:
scsi0: SSD:vm-112-disk-0
scsi1: DEXP_SSD:vm-112-disk-1
Фиксируем:
- какие VMID используют пул;
- какие диски где находятся.
💡 Если цель — «вернуть как было», достаточно знать, какие storage использовались, а не точный порядок дисков.
2. Остановка и удаление VM
Если VM не нужно сохранять:
2.1 Остановка VM
qm stop <VMID>
2.2 Удаление VM
qm destroy <VMID> --purge
Флаг --purge:
- удаляет конфиг;
- удаляет все диски VM из storage.
3. Удаление ZFS storage из Proxmox
3.1 Проверка storage
cat /etc/pve/storage.cfg
Ищем блок:
zfspool: SSD
pool SSD
content images,rootdir
3.2 Удаление storage
- через GUI:
Datacenter → Storage → Remove - или вручную удалить блок из
storage.cfg
После этого storage исчезнет из GUI.
4. Удаление ZFS-пула
4.1 Проверка, что пул не используется
zfs list | grep <POOLNAME>
4.2 Удаление пула
zpool destroy <POOLNAME>
Пример:
zpool destroy SSD
После этого:
- пул исчезнет из
zpool list; - данные будут полностью уничтожены.
5. Физическая замена диска
- Выключаем сервер (рекомендуется)
- Меняем диск
- Загружаем систему
Проверяем, что диск виден:
ls -l /dev/disk/by-id | grep Samsung
Используем /dev/disk/by-id, а не /dev/sdX.
6. Создание нового ZFS-пула
6.1 Пул из одного диска
zpool create SSD /dev/disk/by-id/ata-Samsung_SSD_870_EVO_1TB_XXXX
📌 Особенности:
- нет отказоустойчивости;
- при отказе диска — потеря данных;
- используется для тестов или вторичных VM.
6.2 Пул из двух дисков (mirror)
zpool create SSD mirror \
/dev/disk/by-id/ata-Samsung_SSD_1 \
/dev/disk/by-id/ata-Samsung_SSD_2
📌 Разница:
- данные пишутся на оба диска;
- переживает отказ одного диска;
- выше надёжность.
6.3 RAIDZ (3+ диска)
zpool create SSD raidz1 \
/dev/disk/by-id/disk1 \
/dev/disk/by-id/disk2 \
/dev/disk/by-id/disk3
📌 Отличия:
- эффективнее по объёму;
- медленнее resilver;
- сложнее восстановление.
7. Настройка свойств ZFS
Рекомендуемые параметры (как в рабочей системе):
zfs set compression=zstd SSD
zfs set atime=off SSD
zfs set xattr=sa SSD
Проверка:
zfs get compression,atime,xattr SSD
8. Добавление пула в Proxmox
Через GUI
Datacenter → Storage → Add → ZFS
- ID:
SSD - Pool:
SSD - Content:
Disk image, Container
Проверка
pvesm status
Пул должен быть active.
9. Восстановление VM «как было»
qmrestore <backup> <VMID>
//Например
qmrestore PBS_Local:backup/vm/112/2026-01-24T17:00:06Z 112
Proxmox сам:
- создаст нужные диски;
- положит их в правильные storage.
10. Контрольный чек-лист
- VM остановлены
- VM удалены (
qm destroy --purge) - storage удалён из Proxmox
- zpool уничтожен
- диск заменён
- пул создан заново
- свойства ZFS применены
- storage добавлен в Proxmox
- VM восстановлены / созданы
11. Полезные команды
zpool status
zpool list
zfs list
pvesm status
qm config <VMID>
Итог
Замена диска в ZFS-пуле на Proxmox — контролируемый и безопасный процесс, если:
- чётко понимать, какие VM и storage используются;
- разделять удаление VM, storage и пула.
При правильной последовательности система легко возвращается в состояние «как было», но уже на новом железе.