Назад | Перейти на главную страницу

Обновленный Ubuntu, все диски в одном zpool отмечены как недоступные

Я только что обновил Ubuntu 14.04, и у меня на сервере было два пула ZFS. Была небольшая проблема, когда я боролся с драйвером ZFS и версией ядра, но теперь это сработало. Один пул подключился и установился нормально. Другой нет. Основное различие между инструментом заключается в том, что один представляет собой просто пул дисков (хранилище видео / музыки), а другой - набор raidz (документы и т. Д.).

Я уже пытался экспортировать и повторно импортировать пул, но безрезультатно, попытка импорта дает мне следующее:

root@kyou:/home/matt# zpool import -fFX -d /dev/disk/by-id/
   pool: storage
     id: 15855792916570596778
  state: UNAVAIL
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
 config:

        storage                                      UNAVAIL  insufficient replicas
          raidz1-0                                   UNAVAIL  insufficient replicas
            ata-SAMSUNG_HD103SJ_S246J90B134910       UNAVAIL
            ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523  UNAVAIL
            ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969  UNAVAIL

Символические ссылки для тех, кто в /dev/disk/by-id также существуют:

root@kyou:/home/matt# ls -l /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910* /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51*
lrwxrwxrwx 1 root root  9 May 27 19:31 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910 -> ../../sdb
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part9 -> ../../sdb9
lrwxrwxrwx 1 root root  9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 -> ../../sdd
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part9 -> ../../sdd9
lrwxrwxrwx 1 root root  9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 -> ../../sde
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part9 -> ../../sde9

Осмотр различных /dev/sd* перечисленных устройств, они кажутся правильными (3 диска по 1 ТБ, которые были в массиве raidz).

Я бегал zdb -l на каждом диске, выгрузив его в файл и запустив diff. Единственная разница в 3 - это поля guid (что, как я полагаю, ожидается). Все 3 метки на каждом в основном идентичны и выглядят следующим образом:

version: 5000
name: 'storage'
state: 0
txg: 4
pool_guid: 15855792916570596778
hostname: 'kyou'
top_guid: 1683909657511667860
guid: 8815283814047599968
vdev_children: 1
vdev_tree:
    type: 'raidz'
    id: 0
    guid: 1683909657511667860
    nparity: 1
    metaslab_array: 33
    metaslab_shift: 34
    ashift: 9
    asize: 3000569954304
    is_log: 0
    create_txg: 4
    children[0]:
        type: 'disk'
        id: 0
        guid: 8815283814047599968
        path: '/dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1'
        whole_disk: 1
        create_txg: 4
    children[1]:
        type: 'disk'
        id: 1
        guid: 18036424618735999728
        path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1'
        whole_disk: 1
        create_txg: 4
    children[2]:
        type: 'disk'
        id: 2
        guid: 10307555127976192266
        path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1'
        whole_disk: 1
        create_txg: 4
features_for_read:

Тупо у меня нет свежей резервной копии этого пула. Однако перед перезагрузкой пул был в порядке, и Linux видит диски в порядке (у меня сейчас запущен smartctl, чтобы дважды проверить)

Итак, в итоге:

Есть ли какая-то черная магия, которую я могу вызвать через zpool / zfs, чтобы вернуть эти диски в разумный массив? Могу я бежать zpool create zraid ... без потери данных? Мои данные все равно ушли?

После множества и многих других поисков в Google по этому конкретному сообщению об ошибке я получал:

root@kyou:/home/matt# zpool import -f storage
cannot import 'storage': one or more devices are already in use

(Включено сюда для потомков и поисковые индексы) Я нашел это:

https://groups.google.com/a/zfsonlinux.org/forum/#!topic/zfs-discuss/VVEwd1VFDmc

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

Я вспомнил, что видел несколько строк mdadm в dmesg и конечно же:

root@kyou:/home/matt# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active raid5 sdd[2] sdb[0] sde[1]
      1953524992 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

Когда-то эти диски были частью программного массива raid5. По какой-то причине во время обновления было решено повторно сканировать диски и обнаружить, что диски когда-то были частью массива MD, и было решено воссоздать его. Это было подтверждено с помощью:

root@kyou:/storage# mdadm --examine /dev/sd[a-z]

Эти три диска показали кучу информации. А пока остановим массив:

root@kyou:/home/matt# mdadm --stop /dev/md126
mdadm: stopped /dev/md126

И повторно запускаем импорт:

root@kyou:/home/matt# zpool import -f storage

вернул массив в оперативный режим.

Теперь я делаю снимок этого пула для резервного копирования и запускаю mdadm --zero-superblock на них.

В Ubuntu есть раздражающие проблемы udev чего мы не видим на стороне Red Hat / CentOS. Я бы порекомендовал использовать имена устройств на основе WWN, если вы можете, поскольку они кажутся менее восприимчивыми к этому.

Ты видел: Почему в результате перезагрузки одна сторона моего зеркала ZFS стала UNAVAIL?

Я столкнулся почти с этой проблемой, пытаясь перейти на ядра серии 3.13 в Debian Wheezy. Вы правы в своем комментарии; это ошибка udev. К сожалению, мне так и не удалось разобрать его, но стоит изучить другие ядра, особенно серии 3.11, на предмет совместимости с версией ZOL 0.6.2. Просто используйте старое ядро, пока не выйдет 0.6.3.