Назад | Перейти на главную страницу

Linux: ZFS аналог pvmove - как перенести данные из vdev?

Мне нужно расширить дисковую емкость сервера. Пул был запущен с диска 1 ТБ, затем его расширили диском 2 ТБ. Свободного места больше 1Тб, т.е. все данные легко уместятся в части 2Тб, но сейчас они размещены на дисках 1Тб.

На самом деле, эти диски представляют собой аппаратные (PERC) массивы RAID1 с парой 1 Тбайт и парой 2 Тбайт соответственно.

Хочу заменить эти диски 1Тб на 3Тб. Замена "по одному" на самом деле не вариант. В принципе, этот физический RAID может заменять диски один за другим, а затем увеличивать массив для заполнения дисков. Однако я хочу избежать этого пути, потому что он оставляет довольно длительные периоды времени, когда теряется избыточность диска.

Я хочу буквально переместить все данные с 1 ТБ, затем удалить их и заменить на 3 ТБ. Все будет сделано «на лету», с работающей системой, с нулевым временем простоя.

С LVM операция должна быть очень простой и понятной:

  1. pvmove все выделенные данные с физического диска 1 ТБ (VD в терминах RAID)
  2. vgreduce, чтобы удалить этот pv из vg и pvremove, чтобы удалить метаданные pv
  3. удалить массив 1 ТБ с помощью megacli (PERC переименован в LSI / Avago MegaRAID SAS)
  4. физически заменить диски
  5. снова собрать еще один массив, используя megacli
  6. создать новый pv и добавить его в vg

Это обычная процедура, которую я делал. Каждый шаг очень хорошо понят, на каждом шагу я полностью контролирую, что происходит, я всегда знаю, как действовать, если что-то пойдет не так, и так далее.

Как безопасно и осознанно проделать ту же процедуру с ZFS?

Если это важно:

как убрать данные с vdev?

Не может быть сделано кроме зеркальных бассейнов.