[О блоге]
[наверх]
[пред]
[2016-01-18 01:12:31+03:00]
[3df04ced3bebb15c49f874f2f3674a170ac61358]
Темы: [tip][zfs]
Обожаю удобство ZFS
Очередная радость от использования ZFS. dmesg стал говорить регулярно
что на ada1 диске возникают unrecoverable ошибки DMA. ada1 это зеркало
ada0. Возможно порт SATA плохой в корзине, возможно шлейф, возможно диск
или ещё чего. Самое простое это просто переткнуть диск в другой слот
корзины.
Можно выключить систему, переткнуть, включить. Это будет большое время
простоя, не хочется выключать систему. Можно сделать по горячему: вынуть
и вставить. Будь это обычный RAID, то не миновать полного rebuild-а
всего трёхтерабайтного диска.
Но в ZFS это тривиально:
# zpool offline zroot ada1
Через пару секунд ada1 диск можно вынуть, он отключен от пула.
Перетыкаем в другой слот.
# zpool online zroot ada1
И видим что он автоматически понял что диск из этого пула, и быстро
сделал resilvering:
pool: zroot
state: ONLINE
scan: resilvered 33.5M in 0h0m with 0 errors on Mon Jan 18 00:23:43 2016
То есть ему пришлось всего 33.5 мегабайта данных синхронизировать. Он
находит superblock, находит ближайший checkpoint в одном и другом диске.
У каждого checkoint-а есть монотонно инкрементирующийся timestamp. По
нему он понимает насколько кто отстаёт. Используя деревья Меркле он
шустро находит разницу между ними и её дописывает во время resilvering
на второй диск. Теперь они синхронизированы точно.
Никакого downtime, 33.5 мегабайта переданных данных, вместо трёх
терабайт, пара команд, всё работает как ни в чём не бывало.
[оставить комментарий]