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부터 가능합니다. (그러나 매뉴얼 페이지는 zpool
12.2 섹션에서 이에 대해 언급하지 않았지만 중복되지 않은 최상위 수준 제거도 허용합니다. vdevs,remove
zpool remove
수영장에 여유 공간이 충분한 경우).