Skip to main content

OpenZFS 2.1 / dRAID

Больше 20-25 дисков в системе? Диски объёмом больше 1-2Тб? Хотим OpenZFS? Добро пожаловать в дивный новый мир dRAID.

zpool create -f -o autoreplace=on -o ashift=12 \
-O recordsize=1m -O compression=zstd storarray_ext \
        draid3:21c:5d:1s \
        wwn-0x5000c50063470f97 \
        wwn-0x5000c50063471e63 \
        wwn-0x5000c50063479f93 \
        wwn-0x5000c5006347a25f \
        wwn-0x5000c5006347a3ff \
        wwn-0x5000c5006347a4db \
        wwn-0x5000c5008390a7bb \
        wwn-0x5000c5008390b0af \
        wwn-0x5000c5008390b147 \
        wwn-0x5000c5008390c3d7 \
        wwn-0x5000c5008390c7f7 \
        wwn-0x5000c5008390c867 \
        wwn-0x5000c5008390cd2f \
        wwn-0x5000c5008390ce87 \
        wwn-0x5000c5008391300b \
        wwn-0x5000c500839137af \
        wwn-0x5000c50083913c1f \
        wwn-0x5000c500839162df \
        wwn-0x5000c50083916493 \
        wwn-0x5000c500839227d3 \
        wwn-0x5000c500839228ff 

recordsize можно проигнорить, ashift ИМХО ставить надо обязательно (AF/4К диски наше всё, а пулы пересоздавать не охота). draid3:21c:5d:1s – 21 диск всего, 1 распределённая спара, страйп-юнит теперь – это 5d – пять дисков, draid3 – 3 блока чётности. По умолчанию всё проще (см. хорошую статейку). Не понятно – лучше слазить в коммиты OpenZFS. Не понятно совсем = лучше не использовать.

Кратко: резильвер действительно в РАЗЫ быстрее. Подковырок для себя пока не наблюдаю (а они есть и описаны).

Живуч и быстр, но загнать, понятно, можно и эту штуку (мастерское владение echo offline что угодно заставят приболеть):

  pool: storarray_ext
 state: SUSPENDED
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-HC
  scan: scrub in progress since Sat Jul  3 20:00:58 2021
        17.8G scanned at 123M/s, 13.2G issued at 90.8M/s, 21.4G total
        0B repaired, 61.67% done, 00:01:32 to go
  scan: resilvered (draid3:16d:21c:2s-0) 2.30G in 00:02:46 with 0 errors on Sat Jul  3 20:00:58 2021
config:

        NAME                          STATE     READ WRITE CKSUM
        storarray_ext                 DEGRADED     0     0     0
          draid3:16d:21c:2s-0         DEGRADED    32   104     0
            wwn-0x5000c50063470f97    ONLINE       0     0     0
            wwn-0x5000c50063471e63    ONLINE       3   104     0
            wwn-0x5000c50063479f93    ONLINE       0     0     0
            wwn-0x5000c5006347a25f    ONLINE       0     0     0
            wwn-0x5000c5006347a3ff    UNAVAIL     10 8.70K     0
            wwn-0x5000c5006347a4db    UNAVAIL     27 8.17K     0
            wwn-0x5000c5008390a7bb    UNAVAIL      6 8.62K     0
            spare-7                   DEGRADED     0     0     0
              wwn-0x5000c5008390b0af  UNAVAIL     33   411     0
              draid3-0-1              ONLINE       0     0     0
            spare-8                   DEGRADED     0     0     0
              wwn-0x5000c5008390b147  UNAVAIL      3   685     0
              draid3-0-0              ONLINE       0     0     0
            wwn-0x5000c5008390c3d7    ONLINE       0     0     0
            wwn-0x5000c5008390c7f7    ONLINE       0     0     0
            wwn-0x5000c5008390c867    ONLINE       0     0     0
            wwn-0x5000c5008390cd2f    ONLINE       0     0     0
            wwn-0x5000c5008390ce87    ONLINE       0     0     0
            wwn-0x5000c5008391300b    ONLINE       0     0     0
            wwn-0x5000c500839137af    ONLINE       0     0     0
            wwn-0x5000c50083913c1f    ONLINE       0     0     0
            wwn-0x5000c500839162df    ONLINE       0     0     0
            wwn-0x5000c50083916493    ONLINE       0     0     0
            wwn-0x5000c500839227d3    ONLINE       0     0     0
            wwn-0x5000c500839228ff    ONLINE       0     0     0
        spares
          draid3-0-0                  INUSE     currently in use
          draid3-0-1                  INUSE     currently in use

errors: 7932 data errors, use '-v' for a list

Для особо одарённых – dRAID бэкапы не заменяет 😉 Более того, фича новая, я бы повременил с внедрениями, но в случае чего без бэкапов никуда.