Freenas проверка диска на ошибки

Обновлено: 07.07.2024

Я создаю сервер на базе FreeNAS в корпусе Supermicro X6DHE-XB 3U с 4G оперативной памяти, 16 отсеков для горячей замены SATA. Он поставляется с 2x8 портами 3Ware RAID-карт, но я планирую использовать только возможности ZFS вместо аппаратного RAID. Мой первоначальный набор дисков будет 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642.

Если бы я использовал аппаратный RAID, это дало бы мне красный свет на отсеке дисковода, где диск не удалось. Как это работает с ZFS при сбое диска? Я не думаю, что есть гарантии, что sda = bay1, sdb = bay2 и т. Д., И как вы определяете, какой диск нужно заменить? Может ли ZFS откликнуться на контроллер SATA, чтобы включить индикатор «неисправный диск»? Он просто сообщает серийный номер накопителя? Что делать, если диск не работает так сильно, что он не может сообщить о его серийном номере? Я полагаю, что это хорошая идея записать серийный номер каждого диска и в который он попал, прежде чем вы начнете жить. Существуют ли какие-либо другие «предварительные» задачи для облегчения замены дисков в будущем?

zpool status -v должен сообщить вам, какой диск находится в сети или нет.

Вам нужна утилита sas2ircu из LSI (теперь Avago). LSI поддерживает версии для FreeBSD, Linux и Windwos. С FreeNAS вам понадобится версия FreeBSD.

Чтобы попробовать, вы поместите его в каталог /tmp и сделаете его выполнимым.

Шаг первый обнаруживает идентификатор вашего SAS HBA (пример):

Шаг второй будет генерировать список всех ваших устройств, которые вы можете изучить позже:

Шаг 3 рассматривает ваш список дисков. Он будет выглядеть так:

Чтобы выключить светодиод после замены:

Надеюсь, это поможет!

Текущая версия FreeNAS (версия 9.3 на данный момент) создаст gptid для каждого диска, добавленного в zpool. Сразу после создания статус «zpool» будет выглядеть примерно так (в зависимости от конфигурации вашего пула) .

  1. Когда вы создаете свою систему. Запишите серийный номер каждого диска, а также запишите местоположение места, где был вставлен этот диск. Например, в двухстороннем случае JBOD вы можете отметить фронт /назад, строку и amp; колонка.
  2. Когда вы загружаете FreeNAS, в веб-графическом интерфейсе перейдите на «storage> volume /view disks». На этой вкладке вы должны иметь список всех ваших дисков и их серийные номера. Обратите внимание на имя диска, указанное для каждого серийного номера, который вы имели в предыдущем списке. Если вы не видите серийные номера, вам нужно будет перейти к оболочке и введите smartctl -a /dev/ada0 | grep ^Serial (заменив "/dev /ada0" с каждым из имен дисков из списка)

Теперь в оболочке нам нужно совместить имена дисков со всеми номерами gptid. Итак, введите glabel status , и вы должны получить что-то вроде этого .

Теперь напишите во всех числах gptid, чтобы связать их с именами дисков и, следовательно, порядковыми номерами и их местоположениями. Примечание : когда вы видите что-то вроде «da3p1», это один из дисков, идентифицированный как da3. Список в веб-графическом интерфейсе отображает только метку «da3» для диска.

Теперь, когда возникает ошибка, говоря, что на диске с номером gptid xyz есть ошибка, вы сможете ссылаться на свой листок и знать, какой диск вам нужно потянуть /заменить.

Я знаю, что это слишком поздно для оригинального плаката; но, возможно, другие найдут это полезным.

Посмотрите на тома.

Выберите том, который деградировал.

В нижней части экрана есть три выбора . нажмите «Состояние громкости»

Теперь вы увидите крупный план тома, и его отдельные жесткие диски перечисляют что-то вроде ada3p2, ada5p2, ada6p2, ada4p2 и т. д.

Выберите Деградированный диск.

В нижней части экрана вы увидите два варианта; Изменить диск и заменить

Выберите «Редактировать диск»

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

Отключите ваш FreeNAS-сервер и найдите этот диск.

Самый простой способ найти.

нажмите кнопку просмотра кликов по хранилищу.

вытащите один кабель sata. напечатайте метку с отсутствующим диском с диска просмотра aka ada1 stick на стороне диска.

подключите накопитель. тянуть второй кабель sata с метки печати ada2 и т. д.

, тогда, когда диск сбой, вы знаете его ada2

Это предполагает, что у вас есть случай, в котором есть отдельные индикаторы HD (например, серверный корпус)

Найдите листинг для диска, который плохой. Пример /dev /da9, /dev /sda . etc

В автономном режиме этот диск использует команды терминала GUI или FreeNAS.

Выполните DD, чтобы прочитать этот диск в /dev /null, когда вы смотрите на фронт сервера на свет, который теперь безумно мерцает.

Обратите внимание на местоположение диска, отмените команду DD (ctrl-c), а затем перейдите к методу замещения. Для freeNAS загрузите новый диск, затем нажмите кнопку «Замена графического интерфейса» и завершите этот процесс. Когда это будет сделано, удалите плохой диск и сделайте все, что хотите. Протестируйте его, безопасно Удалите его, физически уничтожьте, отправьте его для гарантийного ремонта . и т. Д.

Я строю сервер на базе FreeNAS в корпусе Supermicro X6DHE-XB 3U с 4 ГБ оперативной памяти и 16 отсеками для горячей замены SATA. Он поставляется с 2x8 портами 3Ware RAID, но я планирую просто использовать возможности ZFS вместо аппаратного RAID. Мой начальный набор дисков будет 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642.

Если бы я использовал аппаратный RAID, это дало бы мне красный свет на отсеке для дисковода, где произошел сбой диска. Как это работает с ZFS, когда диск выходит из строя? Я не думаю, что есть какая-либо гарантия, что sda = bay1, sdb = bay2 и т. Д. Так как определить, какой диск необходимо заменить? Может ли ZFS сообщить об этом контроллеру SATA, чтобы загорелся индикатор неисправного диска? Это просто сообщает серийный номер привода? Что делать, если диск выходит из строя так сильно, что не может сообщить его серийный номер? Я полагаю, что это хорошая идея записать серийный номер каждого диска и в какой отсек он вошел, прежде чем начать работу. Существуют ли какие-либо другие "подготовительные" задачи, которые облегчат замену дисков в будущем?

zpool status -v должен сказать вам, какой диск в сети или нет.

Крис С неверен. Диски не всегда отображаются в порядке, указанном на карте. Например, наш «da7» появляется вторым в списке из 8 дисков . Кроме того, статус zpool просто дает метки, а не фактические диски.

Текущая версия FreeNAS (версия 9.3 на данный момент) создаст gptid для каждого диска, добавленного в zpool. Сразу после создания «состояние zpool» будет выглядеть примерно так (в зависимости от конфигурации вашего пула) .

  1. Когда вы строите свою систему. Запишите серийный номер каждого диска, а также запишите место, где этот диск был вставлен. Например, в случае двухстороннего JBOD вы можете отметить переднюю / заднюю, строку и столбец.
  2. При загрузке FreeNAS в веб-интерфейсе перейдите в раздел «Хранилище> Тома / Просмотр дисков». На этой вкладке у вас должен быть список всех ваших дисков и их серийные номера. Запишите имя диска, указанное для каждого серийного номера, который вы указали в предыдущем списке. Если вы не видите серийные номера, вам придется перейти к оболочке и ввести smartctl -a /dev/ada0 | grep ^Serial (заменив «/ dev / ada0» на каждое из названий дисков в списке)

Теперь в оболочке нам нужно сопоставить имена дисков со всеми числами gptid. Итак, напечатайте, glabel status и вы должны получить что-то вроде этого .

Теперь запишите все числа gptid, чтобы связать их с именами дисков и, следовательно, серийными номерами и их расположением. Примечание : когда вы видите что-то вроде «da3p1», это первый раздел диска, обозначенный как da3. Список в веб-интерфейсе будет отображать только метку «da3» для диска.

Теперь, когда появляется ошибка, говорящая о том, что диск с номером gptid xyz имеет ошибку, вы сможете ссылаться на свой лист и знать, какой диск вам нужно извлечь / заменить.

Я знаю, что это слишком поздно для оригинального плаката; но, возможно, другие найдут это полезным.

Эквивалентов служебной программы fsck для ZFS не существует. Эта служебная программа традиционно использовалась в двух целях: для восстановления и проверки данных.

Восстановление данных

В традиционных файловых системах сам способ записи данных обуславливал вероятность непредвиденных сбоев, приводящих к противоречивости данных. Поскольку традиционная файловая система не является транзакционной, в ней могут появляться блоки, ссылки на которые отсутствуют, неверные счетчики связей или другие противоречивые структуры данных. Журналирование позволяет решить некоторые из этих проблем, но также приводит к возникновению новых проблем в случае невозможности отката записей в журнале. В системе ZFS эти проблемы отсутствуют. Единственной причиной возникновения на диске несогласованных данных является сбой оборудования (в этом случае пул должен быть избыточным) или ошибка в программном обеспечении ZFS.

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

В противном случае всегда существует вероятность того, что в результате повреждения данных часть или все данные окажутся недоступными.

Проверка данных

Помимо восстановления данных служебная программа fsck осуществляет проверку на отсутствие проблем в данных, хранящихся на диске. Традиционно эта задача выполнялась путем размонтирования файловой системы и выполнения служебной программы fsck , возможно, с переводом системы в однопользовательский режим. Этот случай приводит к простою, продолжительность которого пропорциональна размеру проверяемой файловой системы. Вместо явного вызова служебной программы для выполнения необходимой проверки ZFS предоставляет механизм программной проверки всего объема данных. Эта функциональность, называемая очисткой (scrubbing), обычно применяется для памяти и файловых систем в целях обнаружения и предотвращения ошибок до того, как они приведут к сбою оборудования или программного обеспечения.

Управление очисткой данных ZFS

Каждый раз, когда ZFS обнаруживает ошибку в процессе очистки или при обращении к файлу по запросу, ошибка регистрируется на внутреннем уровне, что позволяет получить сводку всех выявленных ошибок в пуле.

Явная очистка данных ZFS

Наиболее простым способом проверки целостности данных является инициирование явной очистки всех данных в пуле. Эта операция позволяет проследить все данные в пуле и проверить возможность чтения блоков на определенный момент времени. Очистка выполняется с той скоростью, с которой это позволяют соответствующие устройства, несмотря на то, что приоритет ввода/вывода остается ниже, чем в нормальном режиме работы. Эта операция может негативно повлиять на производительность, несмотря на то, что файловая система остается доступной и обеспечивает в процессе очистки почти такой же отклик. Для инициирования явной очистки используется команда zpool scrub . Пример:

Информацию по текущей очистке можно вывести при помощи команды zpool status . Пример:

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

Выполняемую очистку можно остановить при помощи параметра -s . Пример:

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

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

Для получения дополнительной информации об интерпретации выходных данных команды zpool status см. Запрос состояния пула устройств хранения данных ZFS.

Очистка данных ZFS и перенос актуальных данных

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

Для получения дополнительной информации о переносе актуальных данных см. Просмотр статуса переноса актуальных данных.

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

С наступающим новым годом коллеги.
В прочем, он наступит не зависимо от любых событий в нашей жизни.
Да будет он благосклоннее прошедшего. Спасибо всем за то, что вы есть!

  • если ваши диски используются в существующем программном RAID-е UFS или ZFS, смотрите раздел 6.3.1,"Автоматический импорт томов".
  • если ваши диски отформатированы в UFS, NTFS, MSDOS или EXT2, смотрите раздел 6.3.2, "Импорт томов"
  • если вы хотите форматировать диски в том UFS или пул ZFS, смотрите раздел 6.3.3, "Менеджер томов"
  • если вы хотите увеличить размер существующего пула ZFS, смотрите раздел 6.3.4, "Использование менеджера томов после создания тома"
  • если вы хотите разделить существующий пул ZFS на наборы данных, смотрите раздел 6.3.5, "Создание наборов данных ZFS"
  • если вы хотите создать блочное устройство ZFS для использования в качестве расширения устройства iSCSI, смотрите раздел 6.3.6, "Создание zvol"
  • если вы хотите просматривать и управлять томами, смотрите раздел 6.3.7, "Просмотр томов"
  • если вы хотите просматривать или конфигурировать свойства дисков, смотрите раздел 6.3.8, "Просмотр дисков"
  • если вы хотите управлять доступом пользователя/группы к существующему тому UFS, пулу ZFS или набору данных ZFS, смотрите раздел 6.3.9, "Установка разрешений"
  • если ваше оборудование поддерживает множественные пути, FreeNAS будет автоматически его конфигурировать. Вы можете проверить конфигурацию, как описано в разделе 6.3.10, "Обзор множества путей"
  • если вам необходимо заменить неисправный диск ZFS, смотрите раздел 6.3.11, "Замена неисправного диска или устройства ZIL"

ПРИМЕЧАНИЕ: версии FreeNAS до 0.7.2, включительно основаны на ZFSv13. Вы можете импортировать эти пулы, но только в одном направлении. Другими словами, когда вы импортировали том ZFSv13, вы не можете откатиться. FreeNAS 8.3.0 не поддерживает совместимость с пулами Nexenta или Linux fuse-zfs.

Существующие тома программного RAID, должны быть доступны для выбора в выпадающем меню. В примере показанном на рисунке 6.3а, система FreeNAS имеет существующий том ZFS с именем test. После выделения тома, нажмите кнопку "Импорт тома".

ПРИМЕЧАНИЕ: FreeNAS не будет импортировать "грязные" тома. если существующий UFS RAID не отображается в выпадающем меню, вам необходимо выполнить fsck для данного тома. Если существующий пул ZFS не отображается в выпадающем меню, выполните из оболочки zpool import для импортируемого пула. Если вы подозреваете, что ваше оборудование не обнаружено, выполните camcontrol devlist из оболочки. Если диск не отображается в выводе, проверьте, поддерживается ли драйвер контроллера и если необходимо загрузите его с помощью настройки (tunable).

Рисунок 6.3а: Импортирование существующего тома RAID

6.3.2 Импортирование томов
Экран Volume->Import Volume, показанный на рисунке 6.3b, используется для импорта диска или раздела который был форматирован в поддерживаемую файловую систему. FreeNAS поддерживает импорт дисков которые были форматированы с UFS, NTFS, MSDOS или EXT2.

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

Читайте также: