понедельник, 13 февраля 2017 г.

Замена сбойного диска в корне ZFS RAID 1 Proxmox 3.4.


Статья не претендует на образцово-показательную, но как рабочий HOWTO пойдет. Итак, имеем сбойный (сдохший) винт в зеркальном рейде на ZFS и этот рейд держит корень всей системы Proxmox. Глаза боятся – руки делают. Поехали!
Выключаемся и вынимаем сбойный винт, на его место ставим новый, точно такой же по размеру, винт. Было бы не плохо иметь винт не только такой же по размеру, но и такого же производителя и модели для большей производительности рейда. Включаемся. Если сбойный винт не был /dev/sda, то естественно загрузка произойдет без всяких проблем. Если это был как раз таки /dev/sda, то руками грузимся с /dev/sdb. Для этого указываем в bios или во время загрузки с какого устройства грузиться. Увы, в Proxmox установщик не привязывает диски по меткам, а привязывает к их реальному "местонахождению" в системе. Загрузились. Увидели сию картину: zpool status rpool. Приступаем к подготовке новенького диска. Для начала его нужно разбить так же как и тот исправный, с которого загрузились. Смотрим какая картина на исправном диске. Допустим, что исправный /dev/sda: parted -s /dev/sda print
Копируем разметку с исправного винта (sda) на новый: sgdisk -R /dev/sdb /dev/sda. Присваиваем новому диску случайный UUID: sgdisk -G /dev/sdb Проверяем что у нас получилось. Вывод по разделам parted -s /dev/sda print и parted -s /dev/sdb print должны быть одинаковы.
Добавляем загрузчик на новенький винт и обновляем GRUB:
grub-install /dev/sdb –recheck
update-grub
update-initramfs -u

Указываем какой диск мы собираемся заменить:
zpool replace rpool /dev/sdb3
Добавляем диск в рейд:
zpool online rpool /dev/sdb3
Готово! Осталось пронаблюдать за процессом синхронизации: zpool status rpool
Радует что ZFS не будет синхронизировать нули, а только полезное пространство. Поэтому ZFS произведёт синхронизацию гораздо быстрее, чем mdadm.
Автор: Денис Кузаков.