# Техобслуживание

# Замена диска в пуле ZFS

# Замена диска в пуле ZFS на Proxmox

<span style="white-space: pre-wrap;">Документ описывает </span>**пошаговую процедуру замены физического диска в ZFS-пуле на Proxmox VE**.

Подходит для сценариев:

- диск умирает / деградировал пул;
- замена SSD/HDD на новый;
- пересборка пула «как было», без спасения старых VM;
- перенос VM с одного пула на другой.

<span style="white-space: pre-wrap;">Рассматриваются </span>**два варианта**:

- <span style="white-space: pre-wrap;">пул из </span>**одного диска**;
- <span style="white-space: pre-wrap;">пул из </span>**двух и более дисков (mirror / raidz)**.

---

## 0. Вводные и допущения

- Proxmox VE использует ZFS
- VM используют ZFS Storage (`<span class="editor-theme-code">zfspool</span>`)
- <span style="white-space: pre-wrap;">Мы </span>**не восстанавливаем старые VM**, а хотим вернуть инфраструктуру «как было»
- <span style="white-space: pre-wrap;">Все команды выполняются от </span>`<span class="editor-theme-code">root</span>`

---

## 1. Просмотр текущей картины

### 1.1 Список ZFS-пулов

```bash
zpool list
```

Обращаем внимание на:

- `<span class="editor-theme-code">HEALTH</span>`<span style="white-space: pre-wrap;"> — ONLINE / DEGРАDED</span>
- <span style="white-space: pre-wrap;">имя пула (например </span>`<span class="editor-theme-code">SSD</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">DEXP_SSD</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">Main</span>`)

---

### 1.2 Список датасетов и виртуальных дисков

```bash
zfs list
```

По выводу можно понять:

- какие VM используют пул;
- <span style="white-space: pre-wrap;">есть ли </span>`<span class="editor-theme-code">vm-XXX-disk-Y</span>`;
- какие VM задействованы в проблемном пуле.

---

### 1.3 Проверка, какие VM используют пул

```bash
pvesm status
```

Смотрим строку нужного пула (`<span class="editor-theme-code">SSD</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">DEXP_SSD</span>`) и убеждаемся, что он активен и используется.

---

### 1.4 Просмотр конфигураций VM

Для каждой VM:

```bash
qm config <VMID>
```

Пример:

```
scsi0: SSD:vm-112-disk-0
scsi1: DEXP_SSD:vm-112-disk-1
```

Фиксируем:

- какие VMID используют пул;
- какие диски где находятся.

> <span style="white-space: pre-wrap;">💡 Если цель — «вернуть как было», </span>**достаточно знать, какие storage использовались**, а не точный порядок дисков.

---

## 2. Остановка и удаление VM

<span style="white-space: pre-wrap;">Если VM </span>**не нужно сохранять**:

### 2.1 Остановка VM

```bash
qm stop <VMID>
```

### 2.2 Удаление VM

```bash
qm destroy <VMID> --purge
```

<span style="white-space: pre-wrap;">Флаг </span>`<span class="editor-theme-code">--purge</span>`:

- удаляет конфиг;
- удаляет все диски VM из storage.

---

## 3. Удаление ZFS storage из Proxmox

### 3.1 Проверка storage

```bash
cat /etc/pve/storage.cfg
```

Ищем блок:

```
zfspool: SSD
    pool SSD
    content images,rootdir
```

### 3.2 Удаление storage

- <span style="white-space: pre-wrap;">через GUI: </span>`<span class="editor-theme-code">Datacenter → Storage → Remove</span>`
- <span style="white-space: pre-wrap;">или вручную удалить блок из </span>`<span class="editor-theme-code">storage.cfg</span>`

После этого storage исчезнет из GUI.

---

## 4. Удаление ZFS-пула

### 4.1 Проверка, что пул не используется

```bash
zfs list | grep <POOLNAME>
```

### 4.2 Удаление пула

```bash
zpool destroy <POOLNAME>
```

Пример:

```bash
zpool destroy SSD
```

После этого:

- <span style="white-space: pre-wrap;">пул исчезнет из </span>`<span class="editor-theme-code">zpool list</span>`;
- <span style="white-space: pre-wrap;">данные будут </span>**полностью уничтожены**.

---

## 5. Физическая замена диска

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

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

```bash
ls -l /dev/disk/by-id | grep Samsung
```

<span style="white-space: pre-wrap;">Используем </span>**`<strong class="editor-theme-bold editor-theme-code">/dev/disk/by-id</strong>`**<span style="white-space: pre-wrap;">, а не </span>`<span class="editor-theme-code">/dev/sdX</span>`.

---

## 6. Создание нового ZFS-пула

### <span style="white-space: pre-wrap;">6.1 Пул из </span>**одного диска**

```bash
zpool create SSD /dev/disk/by-id/ata-Samsung_SSD_870_EVO_1TB_XXXX
```

📌 Особенности:

- нет отказоустойчивости;
- при отказе диска — потеря данных;
- используется для тестов или вторичных VM.

---

### <span style="white-space: pre-wrap;">6.2 Пул из </span>**двух дисков (mirror)**

```bash
zpool create SSD mirror \
  /dev/disk/by-id/ata-Samsung_SSD_1 \
  /dev/disk/by-id/ata-Samsung_SSD_2
```

📌 Разница:

- данные пишутся на оба диска;
- переживает отказ одного диска;
- выше надёжность.

---

### 6.3 RAIDZ (3+ диска)

```bash
zpool create SSD raidz1 \
  /dev/disk/by-id/disk1 \
  /dev/disk/by-id/disk2 \
  /dev/disk/by-id/disk3
```

📌 Отличия:

- эффективнее по объёму;
- медленнее resilver;
- сложнее восстановление.

---

## 7. Настройка свойств ZFS

Рекомендуемые параметры (как в рабочей системе):

```bash
zfs set compression=zstd SSD
zfs set atime=off SSD
zfs set xattr=sa SSD
```

Проверка:

```bash
zfs get compression,atime,xattr SSD
```

---

## 8. Добавление пула в Proxmox

### Через GUI

```
Datacenter → Storage → Add → ZFS
```

- <span style="white-space: pre-wrap;">ID: </span>`<span class="editor-theme-code">SSD</span>`
- <span style="white-space: pre-wrap;">Pool: </span>`<span class="editor-theme-code">SSD</span>`
- <span style="white-space: pre-wrap;">Content: </span>`<span class="editor-theme-code">Disk image, Container</span>`

### Проверка

```bash
pvesm status
```

<span style="white-space: pre-wrap;">Пул должен быть </span>`<span class="editor-theme-code">active</span>`.

---

## 9. Восстановление VM «как было»

```bash
qmrestore <backup> <VMID>

//Например
qmrestore PBS_Local:backup/vm/112/2026-01-24T17:00:06Z 112
```

Proxmox сам:

- создаст нужные диски;
- положит их в правильные storage.

## 10. Контрольный чек-лист

- [ ] VM остановлены
- [ ] VM удалены (`<span class="editor-theme-code">qm destroy --purge</span>`)
- [ ] storage удалён из Proxmox
- [ ] zpool уничтожен
- [ ] диск заменён
- [ ] пул создан заново
- [ ] свойства ZFS применены
- [ ] storage добавлен в Proxmox
- [ ] VM восстановлены / созданы

---

## 11. Полезные команды

```bash
zpool status
zpool list
zfs list
pvesm status
qm config <VMID>
```

---

## Итог

<span style="white-space: pre-wrap;">Замена диска в ZFS-пуле на Proxmox — </span>**контролируемый и безопасный процесс**, если:

- чётко понимать, какие VM и storage используются;
- разделять удаление VM, storage и пула.

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