저는 여러분이 선호하는 클라우드 스토리지와 마찬가지로 ZFS가 제공하는 모든 이점을 갖춘 대규모 확장 가능한 시스템을 구축하기 위해 ZFS 시스템을 설계하는 방법을 알고 싶었습니다.
제가 궁금한 좀 더 구체적인 시나리오는 서버(내부/DAS/SAN 등)의 최대 드라이브 수에 도달하고 다른 서버로 확장해야 하는 경우입니다. 실제로 가능하다면 어떻게 생성할 것입니까? 한 서버의 서버가 다른 서버의 zpool/account로 확장됩니다. 여기서 데이터의 일부는 서버 1에 저장되고 나머지는 서버 2에 저장됩니까? 이 문제를 어떻게 처리하시겠습니까?
저는 FreeBSD를 사용하여 서버 팜/클러스터를 만드는 방법을 모르기 때문에 특별히 FreeBSD를 고려하고 있습니다.
답변1
ZFS는 클러스터 파일 시스템이 아니므로 말씀하신 내용은 실제로 설명대로 작동하지 않습니다. 서버 스토리지의 용량을 늘리려면 섀시나 스토리지 배열(디스크가 가득 찬 경우)에서 호스트에 더 많은 디스크를 추가해야 합니다. ZFS를 실행하는 호스트는 최대 2^64개의 zpool을 가질 수 있고 각 zpool은 최대 2^64개의 vdev를 포함할 수 있으므로 종말의 이 측면을 제한할 가능성은 거의 없습니다!
이것이 옵션이 아니고 새 호스트를 인프라에 통합하려는 경우 NFS를 사용하여 ZFS 파일 시스템을 내보낸 다음 각 호스트가 동일한 네트워크 보기를 갖도록 마운트할 수 있습니다. 이렇게 하면 어떤 저장 상자를 클릭하더라도 올바른 내용을 얻을 수 있습니다.
이는 클러스터가 아니며 네트워크 트래픽 측면에서 약간의 오버헤드가 있습니다. 하지만 이 오버헤드는 프로토콜 혼란을 방지하고 정적 파일 시스템에서 네트워크 혼란을 방지하기 위해 자동 마운트를 사용하여 어느 정도 완화될 수 있습니다. 그러나 ZFS의 데이터 무결성 보장과 RAIDZ가 제공하는 중복성을 통해 대용량 스토리지 시스템을 설정하는 좋은 방법이라고 생각합니다. 이는 실제로 우리가 직장에서 하는 일입니다. 우리는 수백 TB의 용량을 출력하는 수십 대의 시스템을 보유하고 있습니다. 저장 공간. 사용자는 어떤 머신에나 로그인하고 동일한 경로를 사용하여 데이터를 가져올 수 있으므로 클러스터된 스토리지 설정이라는 느낌을 받을 수 있습니다. SAMBA를 사용하여 데이터 세트를 내보내면 Windows 사용자도 데이터에 액세스할 수 있습니다.