ZFS 테스트-재부팅하지 않고 UNAVAIL 풀을 제거하는 방법


1

ZFSonLinux를 테스트하고 있으며 실험용 풀이 있습니다 usbcka. 테스트 데이터 만 있습니다. 이 시나리오에서 HW가 동작을 결정하지 못하는 것을 시뮬레이션하고 있습니다. 이 설정에는 중복성이 없으므로 위험으로 받아 들여집니다 (내가 결정하지 않음). 편집 : 추가 정보 : OS가 중복 저장 장치에 있습니다

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)

디바이스 usb1usb2으로 cryptsetup 탑재 LUKS 장치이다.

** 테스트로, 의도적으로 물리적으로 기본 장치를 제거했습니다. usb2** 결함이있는 장치가 수리를 넘어서는 HDD, 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
"중복 없음"과 "내 변덕에서 재부팅 할 수 없음"이라는 개념은 상호 배타적입니다.
Eugen Rieck

그래, 내 문제는 "삭제가 불가능 손상된 데이터"의 개념이다
Sidias - Korrado

삭제할 수는 있지만 무시할 수는 없습니다.
Eugen Rieck

정지 작업 장치를 사용할 수 없기 때문에 그것은 무시할 수없는
Sidias - Korrado

1
이 문제 처럼 보입니다 . 나는 거기에 차임입니다.
kostix

답변:


0

커널 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전체 systemd를 다시 시작하여 먼저 ZFS 이벤트 데몬 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.