
zfs+redundancy+performance에 대한 가이드는 미러링을 좋은 옵션으로 강조하는 경향이 있지만 zfs 관리 정보는 raidz 기반 가이드에 비해 미러링 설정 관리에 대한 정보를 상대적으로 거의 제공하지 않는 경향이 있습니다.
Windows의 미러 디스크에서 zfs 풀을 마이그레이션할 계획입니다. 내가 선호하는 설정은 항상 순수 미러링되었으며 zfs를 살펴본 후 이를 유지하고 RAIDZ 대신 중복성을 위해 순수 미러링을 사용하고 싶습니다. 이상적으로 각 드라이브는 격리된 상태에서 논리적으로 읽을 수 있는 상태로 유지됩니다. 즉, 6개 디스크의 경우 데이터 (1+2+3 mirror) + (4+5+6 mirror)
는 가 아닌 으로 효과적으로 저장됩니다 ((1+2 stripe) x 3 mirror)
. 나는 이것이 그다지 효율적이지 않고 여러 개의 작은 풀/데이터 세트를 포함하지만 이전에 데이터를 잃어버린 적이 있기 때문에 효율성보다 더 중요하게 생각하는 이점이 있다는 것을 알고 있습니다. 또한 읽기 및 리실버링 속도가 훨씬 빠르고 물리적으로도 훨씬 더 유연합니다.
이런 종류의 설정을 실행하려는 경우 vdev 내 미러링과 vdev 미러링의 의미는 무엇이며, 향후에 3개의 새 디스크 세트를 추가하여 스토리지를 확장하는 경우 별도의 풀로 추가하는 것이 더 낫습니까? 아니면 별도의 vdev(또는 3개의 별도 vdev)?
답변1
ZFS에서는vdev 수준에서는 항상 모든 종류의 중복성을 가지며 풀 수준에서는 가질 수 없습니다..
vdev는 단일 디스크(디스크 1개), 미러링된 디스크(디스크 2개 이상), Z1 스트라이프(디스크 2개 이상), Z2 스트라이프(디스크 3개 이상) 또는 Z3 스트라이프(디스크 4개 이상)로 구성될 수 있습니다. 그런 다음 각 풀이 1개 이상의 vdev로 지원되는 풀을 구축할 수 있으며 원하는 만큼 풀을 가질 수 있습니다. 각 풀은 중복성(vdev 수준에서 관리됨) 없이 모든 지원 vdev를 사용하며 단일 vdev(디스크 아님)가 손실되면 전체 풀이 손실된다는 의미입니다.
따라서 풀을 분할하면 기본적으로 완전히 분리된 여러 개의 RAID1 어레이가 나란히 있게 됩니다. 한 풀의 손실은 다른 풀에 영향을 미치지 않지만 모두 RAID10이 아닌 RAID1이기 때문에 성능이 저하됩니다.
확장에는 이러한 절충안도 있습니다. 단일 풀을 확장하면 속도가 빨라지지만(적어도 새로 작성된 데이터의 경우 자동 재조정이 이루어지지 않음) 실패 가능성도 높아집니다.
그 외에도 vdev에 2방향 또는 3방향 미러를 원하는지에 대한 질문이 있습니다. 3방향이 훨씬 안전하지만(4방향은 거의 쓸모가 없다는 점에서) 비용이 더 많이 듭니다(더 많은 것이 필요함) 디스크가 없거나 공간이 적음). 3-way는 읽기 속도도 약간 빠르지만 쓰기 속도는 변하지 않습니다.
따라서 이는 비용, 성능, 안전성 및 사용 편의성 간의 절충안입니다.