Замена неисправного диска в пуле ZFS

У меня большой дисковый пул ZFS; 3 вложенных RAIDZ2 vdevs.

Я документирую процесс замены неисправного диска для своих коллег и поэтому смоделировал сбой диска, удалив диск с хоста.

Разумеется, vdev, к которому принадлежал диск, стал деградированным, а диск недоступен.

Я отложил диск так …

zpool offline diskpool sdo 

Быстрое состояние «zpool» показывает диск как офлайн … пока все хорошо.

Я заменил диск и подтвердил, что на моем контроллере SATA обнаружен новый диск, каким он был. Затем я попытался получить linux для повторного сканирования шины scsi для обнаружения диска. Здесь моя первая проблема возникает.

Насколько мне известно, следующая команда используется для поиска правильной хост-шины для повторного сканирования …

 grep mpt /sys/class/scsi_host/host?/proc_name 

Однако в моей системе Centos 7.2 эта команда не имеет выхода. Это не ошибка, она просто дает мне нулевой вывод и ждет моей следующей команды.

Я использую несколько карт специалиста, которые позволяют мне подключать многие устройства sata. Обычно я сканирую автобус с помощью

 echo "- - -" > /sys/class/scsi_host/hostX/scan 

Где hostX – правильная хост-шина, но поскольку я не могу найти хост-шину, я не могу выполнить этот шаг.

Есть ли другой способ получить эту информацию или изменить команду в Centos 7.2 или что-то еще?

Кроме того, я решил перезагрузить машину, чтобы продолжить тестирование. После перезагрузки пул ZFS не был присоединен. Мне пришлось вручную импортировать его с помощью «zpool import diskpool». Это работало нормально, но, как ни странно, после его импорта, если я делаю статус «zpool», я больше не вижу идентификаторы устройств, как это мне показывалось раньше …

  raidz2-2 ONLINE 0 0 0 /dev/sdd ONLINE 0 0 0 /dev/sde ONLINE 0 0 0 /dev/sdf ONLINE 0 0 0 /dev/sdg ONLINE 0 0 0 

Вместо этого, похоже, серийные номера дисков …

  raidz2-2 ONLINE 0 0 0 ata-ST8000AS0002-1NA17Z_Z840DG66 ONLINE 0 0 0 ata-ST8000AS0002-1NA17Z_Z840DVE0 ONLINE 0 0 0 ata-ST8000AS0002-1NA17Z_Z840CQFB ONLINE 0 0 0 ata-ST8000AS0002-1NA17Z_Z840DP2V ONLINE 0 0 0 

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

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

Заранее спасибо!

One Solution collect form web for “Замена неисправного диска в пуле ZFS”

ZFS обнаруживает диски не по имени в файловой системе, а по их UUID, записанному на диск (или, по крайней мере, что-то похожее, а не на 100% уверенному, что это фактически UUID). Когда запускается zpool import , диски перечисляются, ZFS перестраивает все пулы и затем использует имя устройства (без фактического включения какого-либо каталога IME, обычно это что-то вроде sda а не /dev/sda ) в выводе zpool status . Таким образом, если вы перемещаете диски (или если ядро перемещает диски вокруг, что может случиться с современными ядрами на современном оборудовании), zpool все равно будет обнаруживать диски в том же порядке, что и раньше; диски, появившиеся вначале на выходе, снова появятся на выходе, даже если ядро ​​больше не перечисляет их в этом выпуске.

Что случилось с вами здесь, вероятно, из-за того, что исходный zpool import не работал, ядро ​​могло завершить загрузку, udev сделал намного больше работы, а затем, когда вы сделали ручной zpool import , по умолчанию нумерация всех ваших дисков оказалась первой, а не основанной на sdX . Скорее всего, в следующий раз, когда вы перезагрузите машину, используемые имена вернутся к схеме sdX .

К счастью, разрешение имен от одной схемы именования на другую довольно просто:

 wouter@gangtai:/dev/disk/by-id$ ls -l total 0 lrwxrwxrwx. 1 root root 9 Mar 31 18:15 ata-SAMSUNG_MZ7TE256HMHP-00004_S1RKNSAFC04685 -> ../../sda lrwxrwxrwx. 1 root root 10 Mar 31 18:15 ata-SAMSUNG_MZ7TE256HMHP-00004_S1RKNSAFC04685-part1 -> ../../sda1 lrwxrwxrwx. 1 root root 9 Mar 31 18:15 wwn-0x50025388a089e89c -> ../../sda lrwxrwxrwx. 1 root root 10 Mar 31 18:15 wwn-0x50025388a089e89c-part1 -> ../../sda1 

Существует множество схем именования ( by-id , by-uuid и by-path ), все из которых можно найти в /dev/disk .

Сказав все это, я должен сказать, что я не согласен с вашим утверждением, что было бы легче выяснить, какой диск – это, глядя на имена sdX . Современные ядра больше не назначают статические имена устройств определенным устройствам; поэтому в современных дистрибутивах используются файлы fstab основе UUID, а не на основе sdX . Серийный номер, по сути, является гораздо более надежным способом выяснить, что является сломанным диском; в конце концов, это написано на фактическом диске , в отличие от имени sdX , которое может отличаться от загрузки для загрузки (я действительно столкнулся с этим в ZFS-окне с шестнадцатью жесткими дисками). Любой из других методов ( by-uuid , by-id , и особенно by-path в корпоративных дисках с несколькими дисками) гораздо надежнее.

  • Как использовать ключевые файлы для шифрования всего диска ZFS?
  • Установите zfs на debian 9 stretch
  • Как превратить Linux по умолчанию в дополнение к некоторой файловой системе в linux поверх zfs?
  • Наборы данных ZFS наследуют наследование
  • Обновление Solaris Live на ZFS: за и против загрузочной среды в новом корневом пуле против существующего корневого пула
  • Можно ли использовать dd для быстрого восстановления зеркального диска ZFS?
  • Cifs (samba) Разрешить доступ к разрешению (unix + zfs)
  • Open ZFS: недавно использованная / часто используемая статистика
  • Смешивание 4k / 512 дисков с ZFS (FreeNAS)
  • Загрузочный загрузчик FreeBSD не загружается из правильного пула
  • установка квоты на zfs не работает
  • Interesting Posts

    Shell scripts Linux -> Руководство по преобразованию Solaris

    Ошибка при установке пакета xserver-xorg-video- * из сжатия-сжатия в Debian Squeeze

    Как разбить имя файла на переменную?

    Получите максимальное использование ЦП для процесса

    Сколько времени занимает установка Linux Mint?

    Как переместить вновь созданный файл в определенное место в tarfile

    Есть ли способ отправить почту без сервера ретрансляции?

    Подключить сетевой сетевой диск к Linux в другом домене

    Проблема с несколькими сетевыми интерфейсами

    Не удается запустить удаленный скрипт через скрипт bash, но может через терминал

    Почему скорость соединения ограничена 20-30 мбит / с в случае демона PPP?

    Как я могу показать кириллические символы mutt на OpenBSD?

    Не удалось загрузить Linux / Windows, так как в BIOS нет загрузочных записей

    Назначение конкретного IP-приложения

    Задача Cron, случайное начало, но в пределах временного интервала

    Linux и Unix - лучшая ОС в мире.