ZFS: Zpool에서 최상위 드라이브를 제거해 보십시오.

ZFS: Zpool에서 최상위 드라이브를 제거해 보십시오.

5개의 장치로 구성된 raidz1 배열을 포함하는 스토리지라는 zpool이 있습니다.

오늘은 가서 3TB 기기를 하나 더 사서 케이스에 넣었습니다. 하지만 새 풀을 생성하고 여기에 장치를 추가하는 대신 기존 스토리지 풀에 추가하는 실수를 저질렀습니다.

이제 제거하려는 최상위 장치 sdg(예: 새 드라이브) 가 있습니다. 삭제하려고 할 때마다 다음 메시지가 표시됩니다.

cannot remove sdg: only inactive hot spares, cache, top-level, or log devices can be removed.

이제 이 장치를 어떻게 삭제합니까? 이 장치에 오류가 발생하면 전체 풀을 사용할 수 없게 됩니다. 다른 드라이브를 구입해야 한다고 생각하며 적어도 미러링은 되지만 이를 수행할 수 있는 적절한 방법이 없다는 것이 믿기지 않습니다.

내 상태 덤프는 다음과 같습니다.

pool: storage
state: ONLINE
scan: scrub canceled on Wed Jul 23 17:26:08 2014

config:

 NAME                                 STATE     READ WRITE CKSUM
 storage                              ONLINE       0     0     0
   raidz1-0                           ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F1PYM6  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24CSC  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F2372R  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24BTK  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F2KKLW  ONLINE       0     0     0
   sdg                                ONLINE       0     0     0

errors: No known data errors

답변1

불행하게도 ZFS는 현재 풀에서 vdev(이 드라이브) 제거를 지원하지 않습니다.진행중인 작업지원하기 위해). 해결 방법은 풀에서 데이터를 덤프하고 다시 만든 다음 데이터를 다시 넣는 것입니다.

답변2

후속 조치:그 이후로 이 글을 읽으신 분들은 적어도 FreeBSD 12.2-RELEASE부터 가능합니다. (그러나 매뉴얼 페이지는 zpool12.2 섹션에서 이에 대해 언급하지 않았지만 중복되지 않은 최상위 수준 제거도 허용합니다. vdevs,removezpool remove수영장에 여유 공간이 충분한 경우).

관련 정보