Каждый раз, когда ZFS обнаруживает ошибку в процессе очистки или при обращении к файлу по запросу, ошибка регистрируется на внутреннем уровне, что позволяет получить сводку всех выявленных ошибок в пуле.
Наиболее простым способом проверки целостности данных является инициирование явной очистки всех данных в пуле. Эта операция позволяет проследить все данные в пуле и проверить возможность чтения блоков на определенный момент времени. Очистка выполняется с той скоростью, с которой это позволяют соответствующие устройства, несмотря на то, что приоритет ввода/вывода остается ниже, чем в нормальном режиме работы. Эта операция может негативно повлиять на производительность, несмотря на то, что файловая система остается доступной и обеспечивает в процессе очистки почти такой же отклик. Для инициирования явной очистки используется команда zpool scrub. Пример:
# zpool scrub tank |
Информацию по текущей очистке можно вывести при помощи команды zpool status. Пример:
# zpool status -v tank pool: tank state: ONLINE scrub: scrub completed after 0h7m with 0 errors on Tue Sep 1 09:20:52 2009 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors |
Следует отметить, что в конкретный момент времени может выполняться только одна операция активной очистки в пуле.
Выполняемую очистку можно остановить при помощи параметра -s. Пример:
# zpool scrub -s tank |
В большинстве случаев для обеспечения целостности данных операция очистки должна быть доведена до конца. Пользователь может прервать очистку по собственному усмотрению, если эта операция оказывает воздействие на производительность системы.
Выполнение программы очистки также гарантирует непрерывный ввод/вывод по всем дискам в системе. Программа очистки обладает побочным эффектом, который заключается в невозможности перевода неактивных дисков в режим пониженного энергопотребления функциями управления питанием. Если система обычно всегда выполняет операции ввода/вывода или объем потребления электроэнергии неважен, эту проблему можно игнорировать.
Для получения дополнительной информации об интерпретации выходных данных команды zpool status см. Запрос состояния пула устройств хранения данных ZFS.
При замене устройства инициируется операция переноса актуальных данных, в рамках которой данные корректных копий переносятся на новое устройство. Это действие представляет собой разновидность очистки диска. Поэтому в пуле одновременно может выполняться только одна такая операция. Если выполняется операция очистки, то операция переноса актуальных данных приостанавливает текущую очистку и перезапускает ее после завершения переноса.
Для получения дополнительной информации о переносе актуальных данных см. Просмотр статуса переноса актуальных данных.