scrub pool freenas что это
Проверка целостности данных ZFS
Эквивалентов служебной программы fsck для ZFS не существует. Эта служебная программа традиционно использовалась в двух целях: для восстановления и проверки данных.
Восстановление данных
В традиционных файловых системах сам способ записи данных обуславливал вероятность непредвиденных сбоев, приводящих к противоречивости данных. Поскольку традиционная файловая система не является транзакционной, в ней могут появляться блоки, ссылки на которые отсутствуют, неверные счетчики связей или другие противоречивые структуры данных. Журналирование позволяет решить некоторые из этих проблем, но также приводит к возникновению новых проблем в случае невозможности отката записей в журнале. В системе ZFS эти проблемы отсутствуют. Единственной причиной возникновения на диске несогласованных данных является сбой оборудования (в этом случае пул должен быть избыточным) или ошибка в программном обеспечении ZFS.
Поскольку служебная программа fsck предназначена для устранения известных патологий, характерных для отдельных файловых систем, создать такую служебную программу для файловой системы при отсутствии известных патологий невозможно. Возможно, в будущем некоторые проблемы повреждения данных будут признаны достаточно распространенными и идентифицируемыми для разработки служебной программы устранения сбоев, однако этих проблем всегда можно избежать путем организации пулов с избыточностью.
В противном случае всегда существует вероятность того, что в результате повреждения данных часть или все данные окажутся недоступными.
Проверка данных
Управление очисткой данных ZFS
Каждый раз, когда ZFS обнаруживает ошибку в процессе очистки или при обращении к файлу по запросу, ошибка регистрируется на внутреннем уровне, что позволяет получить сводку всех выявленных ошибок в пуле.
Явная очистка данных ZFS
Следует отметить, что в конкретный момент времени может выполняться только одна операция активной очистки в пуле.
В большинстве случаев для обеспечения целостности данных операция очистки должна быть доведена до конца. Пользователь может прервать очистку по собственному усмотрению, если эта операция оказывает воздействие на производительность системы.
Выполнение программы очистки также гарантирует непрерывный ввод/вывод по всем дискам в системе. Программа очистки обладает побочным эффектом, который заключается в невозможности перевода неактивных дисков в режим пониженного энергопотребления функциями управления питанием. Если система обычно всегда выполняет операции ввода/вывода или объем потребления электроэнергии неважен, эту проблему можно игнорировать.
Для получения дополнительной информации об интерпретации выходных данных команды zpool status см. Запрос состояния пула устройств хранения данных ZFS.
Очистка данных ZFS и перенос актуальных данных
При замене устройства инициируется операция переноса актуальных данных, в рамках которой данные корректных копий переносятся на новое устройство. Это действие представляет собой разновидность очистки диска. Поэтому в пуле одновременно может выполняться только одна такая операция. Если выполняется операция очистки, то операция переноса актуальных данных приостанавливает текущую очистку и перезапускает ее после завершения переноса.
Для получения дополнительной информации о переносе актуальных данных см. Просмотр статуса переноса актуальных данных.
Небольшое руководство по ZFS
Заметил, что на Хабре много статей про ZFS. И вот, решил написать краткое руководство, как же этой ZFS пользоваться. В качестве ОС буду рассматривать Solaris, т.к. ZFS изначально разрабатывалась для Соляры да и познакомился с ZFS я именно там. Понимаю, что мало у кого стоит Open Solaris на десктопе, а администраторы Solaris и так должны это знать. Но может кому и пригодится.
Немного терминологии
Собственно руковдство
В Solaris работа с ZFS идет в основном через 2 команды. Это zpool и zfs.
zpool — работа с пулами. Их создание, изменение, удаление и т.д.
zfs — работа с самой файловой системой.
Итак, из чего же можно создать пул? Да из чего угодно. От файлов под другой фс, до дисков в дисковом массиве.
Примеры создания пула MyPool
# Создание пула из файлов /zfs1/disk01 и /zfs1/disk02 созданных командой mkfile
zpool create MyPool /zfs1/disk01 /zfs1/disk02
# Создание пула используя обычный слайс
zpool create MyPool c1t0d0s0
# Создание пула c зеркалированием и использованием spare дисков.
zpool create MyPool mirror c1t0d0 c2t0d0 mirror c1t0d1 c2t0d1
zpool create MyPool mirror c1t0d0 c2t0d0 spare c3t0d0
NAME STATE READ WRITE CKSUM
MyPool ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
Изменение пула MyPool
#Добавление и удаление элементов (дисков) из пула, не использующего зеркалирование осуществляется с помощью команд:
zpool add MyPool /zfs1/disk3
zpool remove MyPool /disk3
#Добавление и удаление элементов (дисков) из пула, c зеркалированиеv осуществляется с помощью команд:
zpool attach MyPool /disk1 /disk3
zpool detach MyPool /disk1 /disk3
NAME STATE READ WRITE CKSUM
myzfs DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/disk1 OFFLINE 0 0 0
/disk2 ONLINE 0 0 0
#И обратно online
zpool online MyPool /disk1
#Замена одного элемента пула на другой
zpool replace MyPool /disk1 /disk3
Создание и работа с файловой системой
#Создаем файловую систему
zfs create MyPool/systemname
#Резервируем место под свою файловую систему
zfs set reservation=20m MyPool/systemname
#Устанавливаем квоту для вашей файловой системы, которую вы не сможете превысить
zfs set quota=20m MyPool/systemname
#Включаем компрессию.
zfs set compression=on MyPool/systemname
#Расшариваем нашу файловую систему.
zfs set sharenfs=on MyPool/systemname в NFS
zfs set sharesmb=on MyPool/systemname в SMB
#Снимаем снапшот
zfs snapshot MyPool/systemname@hostname
#Так как снапшот — это просто снимок системы в данный момент, то иногда стоит создавать клона.
zfs clone MyPool/systemname@hostnameyPool/systemname2
Как видите, ничего сложного с ZFS на начальном этапе нет. Очень и очень гибкая штука.
Скраб в FreeNAS 11
Определение
Скраб (scrub) — это процесс сканирования ZFS через данные на томе. Скрабы помогают выявлять проблемы с целостностью данных, обнаруживать недействительные данные, вызванные временными проблемами аппаратного обеспечения, и предоставлять ранние оповещения о предстоящих сбоях диска. FreeNAS упрощает планирование периодических автоматических скрабов.
Каждый том следует чистить не реже одного раза в месяц. Бит-ошибки в критических данных могут быть обнаружены ZFS, но только при чтении этих данных. Запланированные скрабы могут найти ошибки в редко читаемых данных. Количество времени, необходимое для скраба, пропорционально количеству данных по объему. Типичные скрабы занимают несколько часов или дольше.
Процесс очистки является интенсивным вводом-выводом и может отрицательно влиять на производительность. Расписание скрабов для вечеров или выходных дней, чтобы минимизировать влияние на пользователей. Удостоверьтесь, что скрабы и другая интенсивная дисковая деятельность, такая как S.M.A.R.T. тесты планируется запустить в разные дни, чтобы избежать конкуренции с диском и экстремальных воздействий.
Скрабы проверяют только используемое дисковое пространство. Чтобы проверить неиспользуемое дисковое пространство, запишите S.M.A.R.T. Тесты типа Long Self-Test выполняются один или два раза в месяц.
Скрабы планируются и управляются с помощью Storage ‣ Scrubs.
Когда создается тома, автоматически запускается скраб ZFS. Запись с таким же именем тома добавляется в Storage ‣ Scrubs. Сводку этой записи можно просмотреть с помощью Storage ‣ Scrubs ‣ View Scrubs. На рисунке ниже показаны настройки по умолчанию для тома с именем volume1. В этом примере запись была выделена, и нажата кнопка Edit (Редактировать), чтобы отобразить экран Edit (Редактировать).
Просмотр настроек скраба тома по умолчанию в FreeNAS
Опции скраба ZFS
Volume
Тип drop-down menu. Выберите том для очистки.
Threshold days
Тип integer. Определите количество дней, чтобы предотвратить скраб после завершения последнего. Это игнорирует любое другое расписание календаря. Значение по умолчанию — кратное 7, чтобы гарантировать, что скраб всегда встречается в тот же день недели.
Description
Тип string. Дополнительное текстовое описание скраба.
Minute
Тип slider or minute selections. Если используется слайдер, скраб происходит каждые N минут. Если выбраны определенные минуты, скраб работает только с выбранными значениями минут.
Тип slider or hour selections. Если используется слайдер, скраб происходит каждые N часов. Если выбраны определенные часы, скраб работает только с выбранными значениями часа.
Day of Month
Тип slider or month selections. Если используется слайдер, скраб происходит каждые N дней. Если выбраны определенные дни месяца, скраб работает только в выбранные дни выбранных месяцев.
Month
Тип checkboxes. Определите месяцы для запуска скраба.
Day of week
Тип checkboxes. Скраб происходит в выбранные дни.
По умолчанию это воскресенье (Sunday), чтобы иметь наименьшее влияние на пользователей; обратите внимание, что это поле и поле Day of Month (День месяца) объединены вместе (ORed ): установка «День месяца» на 01,15 и «День недели» в четверг приведет к тому, что кусты будут работать в первый и пятнадцать дней месяца, но также и в любой четверг.
Enabled
Тип checkbox. Отключите, чтобы отключить запланированный скраб без его удаления.
Просмотрите варианты по умолчанию и, если необходимо, измените их, чтобы они соответствовали потребностям среды. Обратите внимание, что поле Threshold используется для предотвращения слишком быстрого запуска скрабов и переопределяет расписание, выбранное в других полях. Кроме того, если пул заблокирован или размонтирован, когда планируется скраб, он не будет очищен.
Запланированные скрабы можно удалить с помощью кнопки «Удалить», но это не рекомендуется. Scrubs могут обеспечить раннее указание проблем с диском перед сбоем диска. Если скраб слишком интенсивен для оборудования, подумайте о том, чтобы временно отключить кнопку «Включено» для очистки, пока аппаратное обеспечение не будет обновлено.
Scrub pool freenas что это
Таблица 1.1а: Суммаризация версий ZFS
ZFS использует следующий словарь терминологии:
Pool (Пул): набор устройств, который предоставляет физическое хранение и репликацию данных под управлением ZFS. Это пуловая модель хранения, исключает концепцию томов и связанные с ними проблемы разделов, выделение ресурсов, расход пропускной способности. Тысячи файловых систем могут быть объеденены в общий пул хранилища, каждый из которых потребляет только то пространство в котором он нуждается. Объединённая полоса пропускания ввода/вывода всех устройств в пуле всё время доступна для всех файловых систем. Рекомендации по пулам хранилищ (http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#ZFS_Storage_Pools_Recommendations) являются лучшим практическим руководством ZFS предоставляющим детальные рекомендации по созданию пулов хранения.
Dataset (Набор данных): созданный пул, может быть разделён на наборы данных. Набор данных похож на папку, в том плане, что он поддерживает разрешения. Так же, набор данных аналогичен файловой системе, т.к. вы можете установить его свойства, такие как квоты и сжатие.
Zvol: пулы хранения ZFS могут предоставлять тома для приложений, которым необходима семантика raw-устройств, такая как устройства подкачки или расширения устройств iSCSI. Другими словами, zvol, это виртуальное блочное устройство в пуле хранения ZFS.
Snapshot (Снимки): моментальная копия файловой системы в режиме только-чтение. Моментальные снимки могут быть быстро созданы, и, если происходили небольшие изменения, они занимают весьма мало места. Например, снимок неизменённых файлов составляет 0Мб, однако, если вы изменили 10Гб-й файл, хранилище будет содержать старую копию и новую 10Гб-ю копию. Снимки обеспечивают разумный способ сохранения истории файлов, на случай восстановления более старой копии файла или удалённого файла. По этой причине, многие администраторы достаточно часто делают снимки (например каждые 15 минут), хранят их в течение определённого периода времени (например месяц), а затем размещают их на других системах. Такая стратегия позволяет администратору восстановить систему за весьма короткое время, или, в случае катастрофических потерь восстановить систему до последнего интервала снимков (например в течении 15 минут до потери данных). Моментальные снимки могут клонироваться или откатываться, но файлы из снимка не могут быть доступны независимо.
Clone (Клоны): Запись моментальных снимков может быть создана только на том же самом томе ZFS. Клоны предоставляют черезвычайно эффективный способ хранения бмножества копий общих данных, таких как рабочее пространство, установки ПО и бездисковых клиентов. Клоны не наследуют свойств родительских наборов данных, но наследуют свойства основанные на месте создания клона в ZFS пуле. Поскольку, первоначально, клон разделяет всё дисковое пространство с оригинальным моментальным снимком, его свойства нулевые. При внесение изменений в клон, он использует больше места.
ZIL: (ZFS Intent Log (http://blogs.oracle.com/realneel/entry/the_zfs_intent_log)) фактически является файловой системой журнала, записями которого управляет. Если вы используете VMWare, скорость устройства ZIL будет являться узким местом при использовании NFS. В этом случае, iSCSI будет работать лучше чем NFS. Если вы решили создать специализированное устройство кеша для ускорения записи NFS, оно может составлять половину объёма оперативной памяти, поскольку больший размер окажется не использованным. Зеркалирование ZIL не увеличит скорость, но может помочь увеличить производительность и надёжность в случае сбоя одного устройства.
L2ARC: фатически кеш на диске используемый для управления чтением. Потеря устройства L2ARC не повлияет на целостность пула, но может оказать влияние на производительность чтения, в зависимости от рабочей нагрузки и отношения размера набора данных к размеру кеша. Узнать больше о работе L2ARC можно здесь (https://blogs.oracle.com/brendan/entry/test).
Scrub (Скраббинг): аналогично очистке памяти ECC, все данные читаются для обнаружения скрытых ошибок пока они ещё исправимы. Краббинг читает каждый блок данных пула, проверяет его на соответствие своих 256-битных контрольных сумм и при необходимости восстанавливает.
Справочное руководство по ZFS
Доброго времени суток.
Заметил, что на Хабре много статей про ZFS. И вот, решил написать краткое руководство, как же этой ZFS пользоваться. В качестве ОС буду рассматривать Solaris, т.к. ZFS изначально разрабатывалась для Соляры да и познакомился с ZFS я именно там. Понимаю, что мало у кого стоит Open Solaris на десктопе, а администраторы Solaris и так должны это знать. Но может кому и пригодится.
Немного терминологии
Собственно руковдство
В Solaris работа с ZFS идет в основном через 2 команды. Это zpool и zfs.
zpool — работа с пулами. Их создание, изменение, удаление и т.д.
zfs — работа с самой файловой системой.
Итак, из чего же можно создать пул? Да из чего угодно. От файлов под другой фс, до дисков в дисковом массиве.
Примеры создания пула MyPool
# Создание пула из файлов /zfs1/disk01 и /zfs1/disk02 созданных командой mkfile
zpool create MyPool /zfs1/disk01 /zfs1/disk02
# Создание пула используя обычный слайс
zpool create MyPool c1t0d0s0
# Создание пула c зеркалированием и использованием spare дисков.
zpool create MyPool mirror c1t0d0 c2t0d0 mirror c1t0d1 c2t0d1
zpool create MyPool mirror c1t0d0 c2t0d0 spare c3t0d0
NAME STATE READ WRITE CKSUM
MyPool ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
Изменение пула MyPool
#Добавление и удаление элементов (дисков) из пула, не использующего зеркалирование осуществляется с помощью команд:
zpool add MyPool /zfs1/disk3
zpool remove MyPool /disk3
#Добавление и удаление элементов (дисков) из пула, c зеркалированиеv осуществляется с помощью команд:
zpool attach MyPool /disk1 /disk3
zpool detach MyPool /disk1 /disk3
NAME STATE READ WRITE CKSUM
myzfs DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/disk1 OFFLINE 0 0 0
/disk2 ONLINE 0 0 0
#И обратно online
zpool online MyPool /disk1
#Замена одного элемента пула на другой
zpool replace MyPool /disk1 /disk3
Создание и работа с файловой системой
#Создаем файловую систему
zfs create MyPool/systemname
#Резервируем место под свою файловую систему
zfs set reservation=20m MyPool/systemname
#Устанавливаем квоту для вашей файловой системы, которую вы не сможете превысить
zfs set quota=20m MyPool/systemname
#Включаем компрессию.
zfs set compression=on MyPool/systemname
#Расшариваем нашу файловую систему.
zfs set sharenfs=on MyPool/systemname в NFS
zfs set sharesmb=on MyPool/systemname в SMB
#Снимаем снапшот
zfs snapshot MyPool/systemname@hostname
#Так как снапшот — это просто снимок системы в данный момент, то иногда стоит создавать клона.
zfs clone MyPool/systemname@hostnameyPool/systemname2
Как видите, ничего сложного с ZFS на начальном этапе нет. Очень и очень гибкая штука.