zpool застрял в цикле переназначения

У меня есть следующий zpool:

    NAME                        STATE     READ WRITE CKSUM
    zfspool                     ONLINE       0     0     0
      mirror-0                  ONLINE       0     0     0
        wwn-0x5000cca266f3d8ee  ONLINE       0     0     0
        wwn-0x5000cca266f1ae00  ONLINE       0     0     0

Этим утром хост обнаружил событие (все еще копается в нем. Нагрузка была очень высокой, и многие вещи не работали, но я все еще мог вникнуть).

При перезагрузке хост завис во время ожидания загрузки службами, которые полагались на данные из указанного выше пула.

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

Скраб показал, что все данные на существующем диске в порядке. После этого я снова вставил извлеченный диск. Диск начал перенастройку, но проходит около 4%, а затем перезагружается.

smartctl не показывает проблем ни с одним из дисков (ошибки не зарегистрированы, WHEN_FAILED пусто).

Однако я не могу сказать, какой из дисков восстанавливается, и на самом деле похоже, что с пулом все в порядке, и его вообще не нужно восстанавливать.

errors: No known data errors
root@host1:/var/log# zpool status
  pool: zfspool
 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 Sun Dec  8 12:20:53 2019
        46.7G scanned at 15.6G/s, 45.8G issued at 15.3G/s, 5.11T total
        0B resilvered, 0.87% done, 0 days 00:05:40 to go
config:

        NAME                        STATE     READ WRITE CKSUM
        zfspool                     ONLINE       0     0     0
          mirror-0                  ONLINE       0     0     0
            wwn-0x5000cca266f3d8ee  ONLINE       0     0     0
            wwn-0x5000cca266f1ae00  ONLINE       0     0     0

errors: No known data errors

Как лучше всего выйти из этого цикла восстановления?В других ответах предлагается отсоединить диск, который подвергается восстановлению, но, как я уже сказал, это не похоже ни на один из них.

edit:

zpool-события - это примерно 1000 из следующих повторяющихся:

Dec  8 2019 13:22:12.493980068 sysevent.fs.zfs.resilver_start
        version = 0x0
        class = "sysevent.fs.zfs.resilver_start"
        pool = "zfspool"
        pool_guid = 0x990e3eff72d0c352
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5ded4d64 0x1d7189a4
        eid = 0xf89

Dec  8 2019 13:22:12.493980068 sysevent.fs.zfs.history_event
        version = 0x0
        class = "sysevent.fs.zfs.history_event"
        pool = "zfspool"
        pool_guid = 0x990e3eff72d0c352
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = "host1"
        history_internal_str = "func=2 mintxg=7381953 maxtxg=9049388"
        history_internal_name = "scan setup"
        history_txg = 0x8a192e
        history_time = 0x5ded4d64
        time = 0x5ded4d64 0x1d7189a4
        eid = 0xf8a

Dec  8 2019 13:22:17.485979213 sysevent.fs.zfs.history_event
        version = 0x0
        class = "sysevent.fs.zfs.history_event"
        pool = "zfspool"
        pool_guid = 0x990e3eff72d0c352
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = "host1"
        history_internal_str = "errors=0"
        history_internal_name = "scan aborted, restarting"
        history_txg = 0x8a192f
        history_time = 0x5ded4d69
        time = 0x5ded4d69 0x1cf7744d
        eid = 0xf8b

Dec  8 2019 13:22:17.733979170 sysevent.fs.zfs.history_event
        version = 0x0
        class = "sysevent.fs.zfs.history_event"
        pool = "zfspool"
        pool_guid = 0x990e3eff72d0c352
        pool_state = 0x0
        pool_context = 0x0
        history_hostname = "host1"
        history_internal_str = "errors=0"
        history_internal_name = "starting deferred resilver"
        history_txg = 0x8a192f
        history_time = 0x5ded4d69
        time = 0x5ded4d69 0x2bbfa222
        eid = 0xf8c

Dec  8 2019 13:22:17.733979170 sysevent.fs.zfs.resilver_start
        version = 0x0
        class = "sysevent.fs.zfs.resilver_start"
        pool = "zfspool"
        pool_guid = 0x990e3eff72d0c352
        pool_state = 0x0
        pool_context = 0x0
        time = 0x5ded4d69 0x2bbfa222
        eid = 0xf8d

...
1
задан 8 December 2019 в 21:25
1 ответ

Это теперь разрешено.

следующая проблема о GitHub предоставила ответ:

https://github.com/zfsonlinux/zfs/issues/9551

красный флаг в этом случае, вероятно, быстро цикличное выполнение "starting deferred resilver" события, как замечено в zpool events -v

, первое предложение в ссылке состояло в том, чтобы отключить сервис zfs-зета. В моем случае это не было включено для начала.

второе предложение проверяло, что шпульке активировали defer_resilver функцию. Кажется, что существует потенциальная проблема, когда пул обновлен без опций, активированных, которые соответствуют тому обновлению. Этот пул переместился от нескольких машин/операционных систем за прошлые 2 года или так, таким образом, он имеет смысл, что он, возможно, был создан в более старой версии ZFS и находится на более новой версии ZFS на актуальнейшем хосте:

root@host1:/# zpool get all | grep feature
...
zfspool  feature@resilver_defer         disabled                       local
...

После наблюдения этого, я активировал опцию. Ссылка GitHub, казалось, предположила, что это было опасно, поэтому удостоверьтесь, что у Вас есть резервные копии.

root@host1:/# zpool set feature@resilver_defer=enabled zfspool

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

root@host1:/# zpool status
  pool: zfspool
 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 Sun Dec  8 13:53:43 2019
        847G scanned at 2.03G/s, 396G issued at 969M/s, 5.11T total
        0B resilvered, 7.56% done, 0 days 01:25:14 to go
config:

        NAME                        STATE     READ WRITE CKSUM
        zfspool                     ONLINE       0     0     0
          mirror-0                  ONLINE       0     0     0
            wwn-0x5000cca266f3d8ee  ONLINE       0     0     0
            wwn-0x5000cca266f1ae00  ONLINE       0     0     0

errors: No known data errors
1
ответ дан 29 December 2019 в 22:46

Теги

Похожие вопросы