Что: 3df04ced3bebb15c49f874f2f3674a170ac61358
Когда: 2016-01-18 01:12:31+03:00
Темы: 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 мегабайта переданных данных, вместо трёх терабайт, пара команд, всё работает как ни в чём не бывало.
Сгенерирован: SGBlog 0.34.0