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 (Редактировать).

Scrub pool freenas что это. Смотреть фото Scrub pool freenas что это. Смотреть картинку Scrub pool freenas что это. Картинка про Scrub pool freenas что это. Фото Scrub pool freenas что этоПросмотр настроек скраба тома по умолчанию в 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.

Так как включить в пул (zpool) можно любые сущности файловой системы, автор приводит примеры построения пулов и работы с ними с использованием простых файлов. Итак, создадим несколько файлов, с которыми будем работать подобно дискам.

Мы создали 5 «виртуальных дисков». Четыре имею размер по 100 Мб, а один — 50 Мб. Это пригодится для демонстрации работы с устройствами (разделами) разной емкости.

Работа с пулом ZFS

Теперь создадим простой пул без избыточности, затем проверим его размер и использование.

Созданы пул автоматически монтируется в каталог /myzfs

Посмотрим более детальную информацию о нашем хранилище.

Из вывода видно, что в пул включены два диска. Пул без избыточности (не mirror и не RAIDZ).

Теперь попробуем удалить только что созданный пул. Должны же мы это уметь.

Создать зеркалируемое (MIRROR) хранилище можно на двух и более устройствах. Сколько устройств в пуле типа MIRROR — столько у нас есть одинаковых копий данных.

Вместо зеркалирования можно использовать массивы RAID. Для этого необходимо создавать пул типа raidz вместо mirror. Подробнее в хендбуке.

Давайте теперь исключим один из дисков из пула. Так как этот диск относится к зеркалу (MIRROR), то при его исключении никаких проблем не возникает.

Теперь давайте добавим к пулу новый диск. Если пул не был зеркальным, то он им станет после добавления нового диска.

А что будет, если попытаемся удалить, а не исключить устройство из пула? Zpool сообщит нам о том, что устройство не может быть удалено. Для начала его нужно отключить.

Теперь давайте попробуем добавить диск горячей замены (hot spare) к нашему пулу.

А теперь удалим его из пула.

Обратите внимание на состояние пула: DEGRADED

Теперь включим этот диск.

Состояние пула снова ONLINE.

В данный момент в нашем пуле два диска: disc1 и disc2. Также в системе имеется диск disc3, но он не подключен к пулу. Предположим, что disc1 вышел из строя и его нужно заменить на disc3.

Периодически для исправления ошибок необходимо выполнять процедуру чистки (scrubbing) для пулов типа MIRROR или RAID-Z. Данная процедура находит ошибки в контрольных суммах и исправляет их. Также восстанавливаются сбойные блоки.

Данная операция слишком ресурсоемка! Следует выполнять ее только во время наименьшей нагрузки на пул.

Если необходимо перенести пул в другую систему, то его необходимо сначала экспортировать.

А затем импортировать в новой системе.

Если нужно получить статистику по операциям ввода/вывода пулов, выполняем команду.

Работа с файловой и другими системами ZFS

Файловая система

Создадим файловую систему в нашем пуле. Затем проверим автомонтирование новой файловой системы.

Получить список файловых систем ZFS можно следующей командой.

В данный момент в нашем пуле имеется одно зеркало, в которое входят два диска: disc2 и disc3

Давайте попробуем расширить наш пул. Попытаемся добавить к нему disc1

Попытка добавления не удалась, т.к. она неоднозначно и при добавлении диска к существующему зеркалу необходимо указать дополнительно один из существующих в этом зеркале дисков, либо добавить минимум два диска для формирования нового зеркала, которое будет входить в данный пул.

Добавим к пулу новое зеркало, состоящее из дисков: disc1 и disc5

Добавим теперь к пулу еще одну файловую систему и посмотрим, как это отразится на размере файловых систем, входящих в пул.

Обе файловые системы, входящие в пул, по объему равны всему пулу. В этом заключается одно из преимуществ системы ZFS — по умолчанию нет никакого ограничения на файловые системы.

Чтобы явно управлять объемом файловых систем, можно прибегнуть к резервированию — выделению гарантированного объема для файловой системы, либо квотированию — ограничению файловой системы по максимальному объему.

Давайте зарезервируем для файловой системы /myzfs/colin место в пуле, равное 20 Мб. Остальные файловые системы, заполняя пул, в любом случае оставят для этой файловой системы 20 Мб места.

Теперь для файловой системы /myzfs/colin2 установим квоту в 20 Мб. Это означает, что данная файловая система не сможет занять в пуле более 20 Мб, даже если пул будет полностью свободным.

Также для файловой системы /myzfs/colin2 включим сжатие. Сжатие достаточно эффективно работает на уровне ZFS практически без потерь производительности (конечно же, при условии, что производительности сервера достаточно). Вместо compression=on можно использовать compression=gzip.

Чтобы сделать файловую систему доступной по протоколу NFS, достаточно выполнить одну команду. Причем после перезагрузки сервера доступ к файловой системе утерян не будет. Никаких дополнительных настроек операционной системы производить не нужно.

Точно так же в одну команду ресурс можно сделать доступным по протоколу SMB. Что пользователям ОС Windows наверняка пригодится.

Для повышения надежности (если у вас обычный пул, без избыточности), можно использовать следующую опцию файловой системы.

Теперь в файловой системе будет храниться по две копии каждого блока. Это имеет смысл, если пул без избыточности (mirror / raidz).

Snapshots (снепшоты или снимки состояния)

Создать снепшот файловой системы очень просто. Давайте создадим снепшот для файловой системы myzfs/colin и назовем его test.

Если появится необходимость отката к снепшоту, достаточно выполнить одну команду.

Снэпшот можно подмониторовать, как обычно. Например так.

Даже можно клонировать файловую системы из снепшота в новую файловую систему.

Теперь давайте удалим наши файловые системы /myzfs/colin и /myzfs/colin2

Сперва удалим пустую файловую систему /myzfs/colin2

Файловая система удалилась без проблем. Теперь удалим файловую систему, для которой существует снепшот.

Мы можем отключить снепшот от /myzfs/colin и оставить его дочерним только для /myzfs/colin3

Теперь сделанный ранее снепшот для /myzfs/colin стал дочерним объектом /myzfs/colin3. Таким образом у файловой системы /myzfs/colin больше нет дочерних объектов и ее можно без труда разобрать (удалить).

Если вдруг понадобиться переименовать ранее созданную файловую систему или снепшот, то можно воспользоваться следующими командами.

Снова вернемся к пулам

Получить полную информацию о пулах можно следующим образом.

Если пул нам более не нужен, можем его удалить. Однако, нельзя удалить пул, в котором имеются активные файловые системы.

Отключить файловую систему от пула можно следующим образом.

Подключить файловую систему к пулу вот так.

Снепшот можно сделать и на удаленный ресурс (или другое место в локальной системе).

В данном случае снепшот передан zfs receive на локальном узле (в демонстрационных целях). В реальной ситуации таким образом можно сделать снепшот на другой узел сети.

Zpool ведет собственную историю всех команд. Посмотреть историю можно следующим образом.

Ну вот. Основные команды для работы с пулами ZFS усвоены.

Теперь можно удалить сам пул и файлы. Они нам больше не пригодятся.

ZFS — Справочник команд: 2 комментария

Всё хорошо и наглядно, спасибо! Но что происходит при команде zpool export myzfs?

К сожалению, очень давно (более 5 лет) не работаю с ZFS. Но, если всё правильно помню, пул будет размонтирован (поэтому команда list из примера показывает, что активных пулов нет) и его можно будет подмонтировать (импортировать) в другой системе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *