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

Диск ZFS в двух пулах после перезагрузки?

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

# zpool status -v
  pool: data
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: scrub in progress since Sat Mar 11 09:54:23 2017
    18.4M scanned out of 28.9T at 4.61M/s, (scan is slow, no estimated time)
    0 repaired, 0.00% done
config:

        NAME                     STATE     READ WRITE CKSUM
        data                     DEGRADED     0     0     0
          raidz1-0               DEGRADED     0     0     0
            sdd                  ONLINE       0     0     0
            5824186382562856058  FAULTED      0     0     0  was /dev/sdb1
            sde                  ONLINE       0     0     0
          raidz1-1               ONLINE       0     0     0
            sdj                  ONLINE       0     0     0
            sdk                  ONLINE       0     0     0
            sdl                  ONLINE       0     0     0
          raidz1-2               ONLINE       0     0     0
            sdg                  ONLINE       0     0     0
            sdb                  ONLINE       0     0     0
            sdf                  ONLINE       0     0     0
          raidz1-3               ONLINE       0     0     0
            sdc                  ONLINE       0     0     0
            sdh                  ONLINE       0     0     0
            sdi                  ONLINE       0     0     0

Что привлекло мое внимание, так это FAULTED объем в raidz1-0, но я не заметил, что это был /dev/sdb, но /dev/sdb в настоящее время используется в raidz1-2!

Итак, я должным образом экспортировал пул, заставил этикетку очистить. /dev/sdb и был представлен в таком статусе:

# zpool status
  pool: data
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Sat Mar 11 10:01:16 2017
    6.16G scanned out of 28.9T at 263M/s, 32h3m to go
    2.02G resilvered, 0.02% done
config:

        NAME                       STATE     READ WRITE CKSUM
        data                       ONLINE       0     0     0
          raidz1-0                 ONLINE       0     0     0
            sdd                    ONLINE       0     0     0
            replacing-1            UNAVAIL      0     0     0
              5824186382562856058  UNAVAIL      0     0     0  was /dev/sdb1/old
              sdb1                 ONLINE       0     0     0  (resilvering)
            sde                    ONLINE       0     0     0
          raidz1-1                 ONLINE       0     0     0
            sdj                    ONLINE       0     0     0
            sdk                    ONLINE       0     0     0
            sdl                    ONLINE       0     0     0
          raidz1-2                 ONLINE       0     0     0
            sdg                    ONLINE       0     0     0
            16211591403717513484   UNAVAIL      0     0     0  was /dev/sdb1
            sdf                    ONLINE       0     0     0
          raidz1-3                 ONLINE       0     0     0
            sdc                    ONLINE       0     0     0
            sdh                    ONLINE       0     0     0
            sdi                    ONLINE       0     0     0

У меня два вопроса

  1. Как это произошло
  2. Предположительно это означает, что у меня где-то пропал диск? Как лучше всего это определить?

Дополнительная информация: на этом сервере должно быть 12 дисков с данными + загрузка, но blkid только 11.

# blkid
/dev/sda1: UUID="43AB-B900" TYPE="vfat" PARTUUID="70dbeb11-8d0f-4a90-892b-71ddbfa40614"
/dev/sda2: UUID="31b78e1e-47d2-4835-84f3-52526382626e" TYPE="ext2" PARTUUID="d4385b72-1d3b-4f10-b7be-a47240d0a875"
/dev/sda3: UUID="BW2exB-GVBK-2kYB-O6I3-0Xff-tZsT-1wR3eT" TYPE="LVM2_member" PARTUUID="8298e710-3c27-45f8-bde2-0ca014f61560"
/dev/sdc1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8549439230979948204" TYPE="zfs_member" PARTLABEL="zfs-d160a62f672223cd" PARTUUID="9a5815bb-0c8c-4147-81f7-3c2ed819c856"
/dev/sdd1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8670871889276024405" TYPE="zfs_member" PARTLABEL="zfs-056f7c2c0a7e1d0a" PARTUUID="672f59c7-b6b3-604b-8afd-594bd3b9b5f8"
/dev/sde1: LABEL="data" UUID="1497224562158568852" UUID_SUB="6213246766257863816" TYPE="zfs_member" PARTLABEL="zfs-65908045daba9599" PARTUUID="04785f97-1125-7642-b5c1-9c1a16cda925"
/dev/sdf1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8276492610986556289" TYPE="zfs_member" PARTLABEL="zfs-f8318dd36075cff4" PARTUUID="5d7feebf-8a5f-654b-b2d1-c15691800f44"
/dev/sdh1: LABEL="data" UUID="1497224562158568852" UUID_SUB="1281571628149249275" TYPE="zfs_member" PARTLABEL="zfs-59cc747b1125d66a" PARTUUID="61c60d91-9a85-3b4d-9b99-8df071434a50"
/dev/sdg1: LABEL="data" UUID="1497224562158568852" UUID_SUB="10881622467137806147" TYPE="zfs_member" PARTLABEL="zfs-1a80f12f1e668bbe" PARTUUID="208107b9-ad5f-184c-9178-5db0ebf19a14"
/dev/sdi1: LABEL="data" UUID="1497224562158568852" UUID_SUB="17007441084616526595" TYPE="zfs_member" PARTLABEL="zfs-0a8e6dabd469faca" PARTUUID="e8ed04a8-cde2-6244-902e-6353664af06a"
/dev/sdj1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8620535390437895467" TYPE="zfs_member" PARTLABEL="zfs-97d91e998134d363" PARTUUID="a689a2ff-3b07-ef41-8b9c-cf6361a0e1d1"
/dev/sdk1: LABEL="data" UUID="1497224562158568852" UUID_SUB="17779182602415489900" TYPE="zfs_member" PARTLABEL="zfs-52c3d94733668a22" PARTUUID="42a8072a-e94c-a64d-aa07-dee30f675655"
/dev/sdl1: LABEL="data" UUID="1497224562158568852" UUID_SUB="7227713853040895948" TYPE="zfs_member" PARTLABEL="zfs-cc1406096601d13c" PARTUUID="5481683e-1d8b-4342-9629-3c49f6397075"
/dev/mapper/server--vg-root: UUID="1e3fee5d-d4c8-4971-ae32-23722bbd0688" TYPE="ext4"
/dev/mapper/server--vg-swap_1: UUID="6447b120-e79d-4c9f-8cc6-8eef5e275dfc" TYPE="swap"
/dev/sdb1: LABEL="data" UUID="1497224562158568852" UUID_SUB="16704776748125199400" TYPE="zfs_member" PARTLABEL="zfs-368140a1f4980990" PARTUUID="c131befd-a122-aa45-b710-399233eb08a6"
/dev/sdb9: PARTUUID="4aaed8f3-443e-2e44-8737-94a4d09496aa"
/dev/sdc9: PARTUUID="5f2cb2dd-dddd-154f-a771-8db4f5475fec"
/dev/sdd9: PARTUUID="22968880-24bb-d94a-a50f-13adaaa380bc"
/dev/sde9: PARTUUID="b867fa3f-bda4-cf40-b44c-c76bad4047be"
/dev/sdf9: PARTUUID="b4f79585-6676-de40-81ea-44cf74937b28"
/dev/sdh9: PARTUUID="77f5225f-e0e5-4d4f-8361-d13984807960"
/dev/sdg9: PARTUUID="be9746bc-1eb5-9342-b753-3471ae936d42"
/dev/sdi9: PARTUUID="08675893-d6d3-0b49-bf69-105383040006"
/dev/sdj9: PARTUUID="107df9dc-7ea8-694a-8deb-7a6025b74b86"
/dev/sdk9: PARTUUID="2b2ef8de-da71-a740-aad0-bd2dc1d1c8a7"
/dev/sdl9: PARTUUID="f52efda2-f758-2f47-80ff-318be5db3fca"

Что ж, вы потеряли диск, входивший в raidz1-0. А после перезагрузки /dev/sd[a-m] устройства были переименованы, как уже упоминал Майкл Хэмптон.

ZFS достаточно умен, чтобы не полагаться на /dev/sdx имена и могут объединять пулы на основе метаданных на диске. На данный момент ваш raidz1-0был ухудшен из-за неисправного диска, который раньше был /dev/sdb перед перезагрузкой сервера. После перезагрузки отказавший диск приводит к переименованию дисков и диска, который принадлежит raidz1-2 стал /dev/sdb. Поскольку ZFS достаточно умен, ей было все равно, и она просто правильно собирала пулы.
На этом этапе вам просто нужно было заменить вышедший из строя диск и повторно отремонтировать raidz1-0 бассейн.
Вместо этого вы ухудшили свой второй пул raidz1-2 удалив исправный диск /dev/sdb, который действительно принадлежит raidz1-2 и добавил его в raidz1-0 что приводит к восстановлению серебристого цвета.

Вам следует заменить неисправный диск и начать перенастройку на raidz1-2. Диски, скорее всего, будут снова переименованы после перезагрузки.

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