1

Я тестирую ZFSonLinux и у меня есть экспериментальный пул с именем usbcka . Есть только данные тестирования. Я имитирую неспособность HW определить поведение в этом сценарии. Я знаю, что эта настройка не имеет избыточности, что принимается как риск (решение не принято мной). РЕДАКТИРОВАТЬ: дополнительная информация: ОС будет на избыточном хранилище

root@carbon:~# zpool status -xv
  pool: usbcka
 state: UNAVAIL
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: http://zfsonlinux.org/msg/ZFS-8000-HC
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    usbcka      UNAVAIL      0     0     0  insufficient replicas
      usb1      ONLINE       0     0     0
      usb2      FAULTED      0     0     0  too many errors

errors: List of errors unavailable (insufficient privileges)

Устройства usb1 и usb2 являются устройствами LUKS, установленными с помощью cryptsetup.

** В качестве теста я намеренно физически удалил базовое устройство для usb2 ** Предположим, что неисправное устройство было жестким диском, который не подлежал ремонту, отказ HW.

Я старался

root@carbon:~# zpool destroy -f usbcka
cannot open 'usbcka': pool I/O is currently suspended

root@carbon:~# zpool set failmode=continue usbcka
cannot set property for 'usbcka': pool I/O is currently suspended

Также

zpool clear usbcka

ничего не делает, пустой вывод

Также

zpool export usbcka

висит

Как уничтожить бассейн без перезагрузки?

Я хочу использовать все еще работающие устройства для создания нового пула

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

Я искал решения, но все они в конечном итоге заканчиваются решением по перезагрузке.

root@carbon:~# zfs list usbcka
cannot open 'usbcka': pool I/O is currently suspended

root@carbon:~# zpool get all usbcka
NAME    PROPERTY                    VALUE                       SOURCE
usbcka  size                        174G                        -
usbcka  capacity                    1%                          -
usbcka  altroot                     -                           default
usbcka  health                      UNAVAIL                     -
usbcka  guid                        1317589842010265379         default
usbcka  version                     -                           default
usbcka  bootfs                      -                           default
usbcka  delegation                  on                          default
usbcka  autoreplace                 off                         default
usbcka  cachefile                   -                           default
usbcka  failmode                    wait                        default
usbcka  listsnapshots               off                         default
usbcka  autoexpand                  off                         default
usbcka  dedupditto                  0                           default
usbcka  dedupratio                  1.00x                       -
usbcka  free                        170G                        -
usbcka  allocated                   3.26G                       -
usbcka  readonly                    off                         -
usbcka  ashift                      13                          local
usbcka  comment                     -                           default
usbcka  expandsize                  -                           -
usbcka  freeing                     0                           default
usbcka  fragmentation               1%                          -
usbcka  leaked                      0                           default
usbcka  feature@async_destroy       enabled                     local
usbcka  feature@empty_bpobj         enabled                     local
usbcka  feature@lz4_compress        active                      local
usbcka  feature@spacemap_histogram  active                      local
usbcka  feature@enabled_txg         active                      local
usbcka  feature@hole_birth          active                      local
usbcka  feature@extensible_dataset  enabled                     local
usbcka  feature@embedded_data       active                      local
usbcka  feature@bookmarks           enabled                     local
usbcka  feature@filesystem_limits   enabled                     local
usbcka  feature@large_blocks        enabled                     local

1 ответ1

0

У меня была такая же проблема при тестировании Debian с ядром 4.14 и модулем zfs 0.7.6. Но я думаю, что это поведение одинаково на всех компьютерах с Linux.

Чтобы уничтожить пул UNAVAIL , где статус выглядит следующим образом:

user@system: ~ $ sudo zpool status -xv
pool: icy_tank
state: UNAVAIL
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: http://zfsonlinux.org/msg/ZFS-8000-HC
scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    icy_tank    UNAVAIL      0     0     0  insufficient replicas
      sdb       UNAVAIL      0     0     0

errors: List of errors unavailable: pool I/O is currently suspended

сначала нужно перезапустить zed , демон событий zfs, перезапустив весь systemd zfs-target .

sudo systemctl restart zfs.target

После этого шага бассейн можно очистить.

sudo zpool clear icy_tank

Если устройство (например, sdb) доступно в это время, и sdb является частью пула, zpool немедленно запускает очистку на устройстве.

pool: icy_tank
state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub in progress since Wed Mar  7 20:27:55 2018
    316M scanned out of 121G at 9,89M/s, 3h28m to go
    0B repaired, 0,26% done
config:

    NAME        STATE     READ WRITE CKSUM
    icy_tank    ONLINE       0     0     0
      sdb       ONLINE       0     0     0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .