Рейтинг:1

zfs не распознает собственные физические диски

флаг us

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

Убунту 20.04.2 ЛТС
5.11.0-44-generic #48~20.04.2-Ubuntu SMP Вт, 14 декабря, 15:36:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
libzfs2linux/now 0.8.3-1ubuntu12.11 amd64 [установлено, можно обновить до: 0.8.3-1ubuntu12.13]
zfs-zed/now 0.8.3-1ubuntu12.11 amd64 [установлено, можно обновить до: 0.8.3-1ubuntu12.13]
zfsutils-linux/now 0.8.3-1ubuntu12.11 amd64 [установлено, можно обновить до: 0.8.3-1ubuntu12.13]

Примеры моделей.

  1. Я могу создать пул, подключить совершенно не связанный диск (например,usb, внешний) и при перезагрузке (с подключенным usb-диском) zfs сообщает, что один из дисков из его пула отсутствует.
  2. То же самое происходит и со сменой контроллера для одного (или, возможно, нескольких) дисков. Все физические диски есть, все метки/uuid, кажется, есть, что меняется, так это назначение буквы устройства.

Трудно поверить, что zfs собирает пул на основе порядка назначения системных устройств, игнорируя его метки/uuid, но вот как это выглядит.

    agatek@mmstorage:~$ статус zpool
          пул: ммданные
         состояние: ДЕГРАДАЦИЯ
        статус: Одно или несколько устройств не могут быть использованы, так как метка отсутствует или
            недействителен. Существует достаточное количество реплик для продолжения работы пула.
            функционируют в деградированном состоянии.
        действие: Замените устройство с помощью «zpool replace».
           см.: http://zfsonlinux.org/msg/ZFS-8000-4J
          сканирование: чистка выполняется с воскресенья, 9 января, 13:03:23 2022 г.
            650G сканируется со скоростью 1,58G/s, 188G выдается со скоростью 468M/s, всего 22,7T
            0B отремонтирован, выполнено 0,81%, осталось 0 дней 14:00:27
        конфигурация:

        ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
        mmdata УНИЧТОЖЕНО 0 0 0
          raidz1-0 ДЕГРАДАЦИЯ 0 0 0
            ata-HGST_HDN726040ALE614_K7HJG8HL ОНЛАЙН 0 0 0
            6348126275544519230 ОШИБКА 0 0 0 был /dev/sdb1
            ата-HGST_HDN726040ALE614_K3H14ZAL ОНЛАЙН 0 0 0
            ата-HGST_HDN726040ALE614_K4K721RB ОНЛАЙН 0 0 0
            ата-WDC_WD40EZAZ-00SF3B0_WD-WX12D514858P ОНЛАЙН 0 0 0
            ata-ST4000DM004-2CV104_ZTT24X5R ОНЛАЙН 0 0 0
            ata-WDC_WD40EZAZ-00SF3B0_WD-WX62D711SHF4 ОНЛАЙН 0 0 0
            sdi ОНЛАЙН 0 0 0
    
    ошибки: Нет известных ошибок данных

agatek@mmstorage:~$ blkid 
/dev/sda1: UUID="E0FD-8D4F" TYPE="vfat" PARTUUID="7600a192-967b-417f-b726-7f5524be71a5"
/dev/sda2: UUID="9d8774ec-051f-4c60-aaa7-82f37dbaa4a4" TYPE="ext4" PARTUUID="425f31b2-f289-496a-911b-a2f8a9bb5c25"
/dev/sda3: UUID="e0b8852d-f781-4891-8e77-d8651f39a55b" TYPE="ext4" PARTUUID="a750bae3-c6ea-40a0-bdfa-0523e358018b"
/dev/sdb1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="13253481390530831214" TYPE="zfs_member" PARTLABEL="zfs-5360ecc220877e69" PARTUUID="57fe225e-a27e69-460-2f46
/dev/sdd1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="17929921080902463088" TYPE="zfs_member" PARTLABEL="zfs-f6ef14df86c7a6e1" PARTUUID="31a074a3-300d-9eb43-db45
/dev/sde1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="505855664557329830" TYPE="zfs_member" PARTLABEL="zfs-6326993c142e4a03" PARTUUID="37f4954d-67efdafd-26145-0-8945-0
/dev/sdg1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="1905592300789522892" TYPE="zfs_member" PARTLABEL="zfs-9d379d5bfd432a2b" PARTUUID="185eff00-254d6a-a3040-a642-642-
/dev/sdi1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="15862525770363300383" TYPE="zfs_member" PARTLABEL="zfs-3c99aa22a45c59bf" PARTUUID="89f16dd0a-b58e-c74
/dev/sdh1: LABEL = "mmdata" UUID = "16683979255455566941" UUID_SUB = "15292769945216849639" TYPE = "zfs_member" PARTLABEL = "zfs-ee9e1c9a5bde878c" PARTUUID = "2e70d63b-4ddd30ba-f23-3-b442-b842-b
/dev/sdf1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="5773484836304595337" TYPE="zfs_member" PARTLABEL="zfs-ee40cf2140012e24" PARTUUID="e5cc3e2a-f7ac9-de-36e-25e
/dev/sdc1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="6348126275544519230" TYPE="zfs_member" PARTLABEL="zfs-0d28f0d2715eaff8" PARTUUID="a328981a-62abbf-269a-294a-294a

Для вышеуказанного пула, что случилось, одно из устройств ранее вышло из строя. Я подключил сменный диск ко второму контроллеру и произвел замену. Это было успешно. Бассейн был в порядке. Далее отказавшее устройство удалялось из пула и физически заменялось сменным диском (смена контроллера). После перезагрузки я получил его в деградированном состоянии с сообщением об исчезновении одного из устройств. Очистка была вызвана командой zpool clear.

Итак, как показывает blkid, есть 8 дисков, все разбиты на разделы и помечены (я думаю) правильно, но одно из устройств не распознается как часть пула. Что делать в таких ситуациях? Это очень раздражает. Восстановление пула занимает несколько дней.

Рейтинг:3
флаг us

Если вы добавите какое-либо устройство в пул, используя /dev/sdX путь, он может быть изменен, так как ядро ​​Linux не гарантирует какой-либо порядок для этих записей дисков.

В вашем выводе у вас есть /dev/sdi как член пула. Это может измениться в любой момент.

Ты должен попытаться zpool экспорт mmdata перевести массив в автономный режим, а затем zpool import mmdata -d /dev/disk/by-id чтобы импортировать его снова, используя постоянные идентификаторы для дисков.

agatek avatar
флаг us
Спасибо. Я попробую это. Так почему же он помечает /uuids все диски/разделы и по-прежнему полагается на /dev/disk/by-id? Я пытаюсь понять логику.
флаг us
ZFS маркирует диски/разделы. Однако он использует идентификаторы устройств, предоставленные ему во время создания zpool.
agatek avatar
флаг us
Это именно моя точка зрения, почему он помечает их, если он полагается на сопоставление /dev/disk/by-id? Почему он не сканирует ууиды и метки и не собирает их на основе этого? Кроме того, то, что говорится в сообщении об ошибке, в лучшем случае вводит в заблуждение: одно или несколько устройств не могут быть использованы, потому что **метка отсутствует или недействительна**. Ну, метка не отсутствует и не недействительна. Возможно, это какая-то ошибка, о которой нужно сообщить?
agatek avatar
флаг us
Теро, экспорт/импорт пула, как вы предложили, сработало хорошо. Еще раз спасибо, но перед этим я экспортировал пул и просто выполнил импорт zpool (без -d). Это правильно перечислило все устройства, поэтому одно, отмеченное выше как неисправное, имело правильный физический идентификатор и больше не отсутствовало. Интересно, что это устройство никогда не вводилось в пул по id (было /dev/sdX). Теперь можно было предположить какое-то нормальное сканирование, но последнее устройство (sdi) все равно осталось sdi. Только ваш метод, указывающий на каталог, позволял отображать все устройства в пуле с использованием физических идентификаторов. Странный.

Ответить или комментировать

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