ZFS - одна из лучших файловых систем для хранения данных, да и для ОС хороша (убив систему, можно откатить её за минуту до стабильного состояния).
Мало того, что она поддерживает большие объёмы данных, работает поверх устройств, т.е. из нескольких hdd/ssd делает программный raid, её две основных особенности - контроль целостности данных на основе контрольных сумм, возможность каждому пользователю быстро выделить свой пул фиксированного размера, и возможность создания снимков файловой системы.
Единственная проблема у zfs, как и у любой другой, созданной для быстрой работы с большими объёмами данных - вероятность восстановления в случае краха довольно мала. Правда, в zfs это компенсируется тем самым контролем целостности, и за три года не наблюдалось сбоев, не вызванных человеческим фактором вмешательства администратора. инструменты восстановления пулов есть, но в тех нескольких наблюдаемых случаях люди постарались так, что восстановить данные оказалось невозможно, поэтому определить их действенность пока не представлялось возможным.
Кстати, у zpool есть опция zpool status -x
[waryag@gaia] ~% zpool status -x
all pools are healthy
очень удобно для алертов.
На сайте оракла полное руководствор по zfs, даже на русском:
О снимках
При создании снимка фиксируется состояние "блоков" фс, и дальнейшая работа проходит с новыми блоками, создавая таким образом что-то похожее на инкрементальный архив.
Вообще, строго говоря, не похожее внутренне, но по принципам работы со снимками напоминает.
В моём случае использовался freenas, поэтому я не буду приводить тут первичные настройки, их итак очень много. Хранилище - volume manager - делаем пул. Если нужен cifs для сетевого доступа windows, то в пользователях создаём пользователя с домашней директорией этого пула, в службах включаем ssh, при необходимости что-то ещё, настраиваем сетевые шары. В создании снимков задаём задания снапшотов.
В моём случае это снапшоты каждые 15 минут, хранящиеся два дня, и ежедневные, хранящиеся два месяца.
Ну и получаем например такую картину:
[waryag@gaia] ~% zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
freenas-boot 5.84G 2.85G 2.99G - - 48% 1.00x ONLINE -
gaia 1.81T 155G 1.66T - 5% 8% 1.00x ONLINE /mnt
Очень часто нужно не откатить назад весь пул, а взять из снапшота состояние файла/каталога на какой-то момент времени. Например, удалён важный плейлист с каналами iptv, а посмотреть хочется.
[waryag@gaia] ~/sansara/letters% ls
./ .server.txt.kate-swp* akt.doc work/
../ 123* hyperspace_IPTV_playlist.m3u
.directory SkyNet_IPTV_playlist.m3u keys waryag*
[waryag@gaia] ~/sansara/letters% rm SkyNet_IPTV_playlist.m3u
[waryag@gaia] ~/sansara/letters% ls
./ .server.txt.kate-swp* hyperspace_IPTV_playlist.m3u
../ 123* keys waryag*
.directory akt.doc work/
Проще всего открыть доступ к .zfs/snapshot:
[waryag@gaia] /mnt/gaia
[waryag@gaia] /mnt/gaia
И с вашей клиентской машины откроется доступ к .zfs/snapshot.
!!ВНИМАНИЕ!! большое количество (100+) снапшотов в этом каталоге вешают долфин/наутилус на клиентских машинах насмерть, вслед за чем подвешивается плазма (что и произошло во время написания статьи, хоть и между gaia и клиентской infinity 1gb сеть, у обоих по 16 гигов памяти и 8 ядер процессоры), так что все дальнейшие операции на клиентах лучше выполнять из консоли или консольных менеджеров типа mc.
для наглядности покажу в командах, но с mc всё конечно гораздо проще.
[waryag@infinity ~]$ cd /gaia/sansara/letters/
[waryag@infinity letters]$ ls
123* akt.doc hyperspace_IPTV_playlist.m3u keys waryag* work/
[waryag@infinity letters]$
Ищем снапшот с нужной датой, заходим туда
cd /gaia/.zfs/snapshot/auto-20150529.1134-2d/sansara/letters
[waryag@infinity letters]$ ls
123* akt.doc hyperspace_IPTV_playlist.m3u keys waryag* SkyNet_IPTV_playlist.m3u work/
[waryag@infinity letters]$
Копируем плейлист обратно
[waryag@infinity letters]$ cp SkyNet_IPTV_playlist.m3u /gaia/sansara/letters/
[waryag@infinity letters]$ ls /gaia/sansara/letters/
123* akt.doc hyperspace_IPTV_playlist.m3u keys waryag* SkyNet_IPTV_playlist.m3u work/
[waryag@infinity letters]$
Готово!
Автор: Артём Ягодкин
Автор: vovans
http://zenway.ru/page/zfs
|