Skip to main content

Замена диска в пуле 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. Физическая замена диска

  1. Выключаем сервер (рекомендуется)
  2. Меняем диск
  3. Загружаем систему

Проверяем, что диск виден:

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 и пула.

При правильной последовательности система легко возвращается в состояние «как было», но уже на новом железе.