더 많은 vdev 추가

더 많은 vdev 추가

저는 사용자가 최대 20TB의 데이터를 저장할 수 있는 스토리지 서버를 계획하고 있습니다. Linux에서 ZFS에 대한 좋은 경험이 있었기 때문에 ZFS를 사용하고 싶었습니다. 그러나 데이터 볼륨이 매년 수백 GB씩 증가할 것이라는 것을 알고 있으므로 어느 시점에서는 풀 크기를 늘려야 할 것입니다. 이렇게 많은 양의 데이터가 있으면 zpool을 완전히 파괴하고 다시 생성하는 것은 상당히 번거로운 작업이므로 디스크를 더 추가하고 기존 디스크를 유지하여 풀 용량을 늘릴 수 있는지 궁금합니다. 풀은 최소한 RAIDZ-1입니다. 아니면 디스크를 하나씩 제거하고 더 큰 디스크로 교체해야 합니까? 아니, 믿을 수가 없어요. 내 서버보다 큰 서버는 스토리지 용량에 대한 증가하는 수요를 어떻게 처리합니까?

답변1

기본적으로 ZFS 풀을 확장하는 방법에는 두 가지가 있습니다.

더 많은 vdev 추가

이게 뭐야?user1133275가 답변에서 제안했습니다.. 완료되었으며 zpool add(구문은 기본적으로 저장을 지정하는 것과 동일함 zpool create) 훌륭하게 작동합니다.

ZFS는 저장된 데이터의 균형을 자동으로 재조정하지 않지만 새 vdev의 사용량이 기존 vdev와 거의 동일해질 때까지 새 vdev에 새 데이터를 쓰기 시작합니다.

vdev가 풀에 추가되면 풀을 처음부터 다시 생성하지 않고는 삭제하는 것이 기본적으로 불가능합니다.

풀을 가져오려면 풀의 모든 vdev가 해당 중복성 임계값보다 높아야 합니다. 즉, 각 vdev가 DEGRADED제대로 작동하려면 최소한 보장된 풀이 필요합니다.

더 큰 디스크로 교체

이것이 귀하의 질문에서 논의한 내용입니다. 이는 풀 레이아웃에 만족할 때 ZFS 풀을 확장하는 일반적인 방법입니다.

새 것으로 교체하려면 새 것이 최소한 기존 것만큼 커야 합니다.

운영상 새 디스크를 기존 디스크에 연결한 다음 zpool replace기존 디스크를 새 디스크에 연결할 수 있습니다. (이렇게 하면 replacing이전 디스크와 새 디스크의 상위가 될 임시 장치가 생성됩니다 . 재동기화가 완료되면 replacing장치가 장치 트리에서 제거되고 새 장치가 항상 있었던 것으로 나타납니다.) 재동기화가 완료되면 이전 장치가 삭제됩니다. 디스크를 시스템에서 제거할 수 있습니다.

vdev의 모든 디스크가 더 큰 디스크로 교체되면 속성을 실행 zpool online -e하거나 설정하여 풀을 확장할 수 있습니다 (후자를 권장하지는 않지만 풀 확장은 신중하게 결정해야 합니다).autoexpandon

그렇다면 어떤 방법이 더 낫습니까?

이는 기본적으로 풀에 따라 다릅니다. 앞서 언급했듯이 여러 vdev를 갖는 경우의 단점은 모두 제대로 작동해야 한다는 것입니다. 따라서 어떤 의미에서는 vdev를 추가하면 실제로 안전 마진이 줄어듭니다. 하지만 장점은 풀을 단편적으로 확장하는 것이 훨씬 쉽다는 것입니다. 장치를 제자리에 교체하는 것은 기본적으로 그 반대입니다. 많은 vdev를 계속 실행할 필요는 없지만 풀을 단편적으로 확장하는 것은 쉽지 않습니다.

솔직히 말해서 회전하는 하드 드라이브를 사용한다고 가정하면(대량 저장소처럼 보이기 때문에) 단일 vdev 풀에 20TB가 여전히 합리적입니다.귀하의 상황에 대한 나의 제안은 다음과 같습니다6개의 8TB 유형 드라이브를 가져와 단일 raidz2 vdev에 설정하세요. 이렇게 하면 약 32TB의 순 스토리지 용량이 제공되어 초기 여유 공간의 약 35%가 남고 데이터가 심각한 위험에 빠지기 전에 두 개의 드라이브를 잃을 수 있습니다. 또한 8개의 6TB 드라이브를 실행하여 약 36TB의 순 스토리지 용량을 확보하고 45%의 여유 공간으로 시작할 수도 있습니다. (6~8개의 드라이브는 raidz1에는 약간 큰 것 같지만 raidz2에는 나쁘지 않다고 생각합니다.) 그런 다음 해당 드라이브를 4~5년 주기로(마모로 인해) 또는 풀이 부족할 때마다 교체할 계획을 세웁니다. 시간의 80%가 가득 찼습니다(ZFS는 공간이 충분할 때 매우 만족하기 때문입니다). 수치가 정확하다면 풀이 가득 차기 전에 마모로 인해 드라이브를 교체해야 하며, 동시에 스토리지 요구 사항이 예상치 않게 증가하는 것을 어느 정도 허용해야 합니다. 드라이브를 교체할 때 당시의 사용량을 기준으로 기존 풀 크기에 만족할지, 아니면 더 큰 드라이브를 구매하여 풀을 확장할지 결정할 수 있습니다.

답변2

위의 훌륭한 답변에 있는 옵션 외에도 곧 또 다른 옵션이 제공될 예정입니다.

OpenZFS 프로젝트(Linux의 ZFS, FreeBSD의 ZFS)는 기존 RAID-Z vdev에 새로운 물리적 장치를 추가할 수 있는 기능을 개발 중입니다. 예를 들어 이렇게 하면 6드라이브 RAID-Z2 vdev를 7드라이브 RAID-Z2 vdev로 확장할 수 있습니다. 이는 파일 시스템이 온라인 상태인 동안 발생하며 확장이 완료된 후 반복 가능합니다(예: 7 드라이브 vdev → 8 드라이브 vdev).

답변3

zfs(및 btrfs 및 lvm2)에 공간을 추가하는 것은 쉽습니다.

zpool add $POOL mirror $A $B

https://docs.oracle.com/cd/E53394_01/html/E54801/gayrd.html#scrolltoc

관련 정보