iSCSI 위에 ZFS

iSCSI 위에 ZFS

ZFS와 BSD를 사용하여 파일 서버를 구축할 계획이고, 동일한 랙의 다른 시스템에 저장된 드라이브를 iSCSI를 통해 연결하여 확장성을 더욱 높이고 싶었습니다(예: 한 시스템은 ZFS를 실행하고 다른 시스템은 iSCSI를 사용함). ZFS 상자로 연결하고 zpool에 추가할 수 있는 대상).

이 작업을 시도한 다른 사람들을 찾으면 ZFS 위에 iSCSI 공유를 노출하는 방법에 대한 리소스가 많이 있지만 그 반대에 대해서는 아무것도 없습니다. 주로 다음과 같은 질문이 있습니다.

  • 기가비트 이더넷을 통한 iSCSI는 이 목적에 충분히 빠른가요, 아니면 적절한 성능을 얻으려면 10GbE로 전환해야 합니까?
  • iSCSI 대상을 실행하는 시스템 중 하나가 네트워크에서 연결 해제되면 어떻게 됩니까?
  • 내가 깨달을 만큼 영리하지 못한데 이를 수행하는 더 좋은 방법이 있습니까?

용량 측면에서 초기에는 약 10TB의 데이터(중복성을 고려하지 않음)가 될 것이며, 가까운 미래에 대한 합리적인 목표는 20TB로 확장하는 것이므로 중복성을 고려하면 총 스토리지는 약 40~50TB가 될 것입니다. 가능하다면 GELI를 사용하여 모든 데이터를 암호화된 상태로 유지하려고 합니다.

도움을 주셔서 감사합니다.

답변1

용량 측면에서 귀하의 목표는 무엇입니까? ZFS가 대상을 확인하고 이를 풀로 집계할 수 있으므로 이는 확실히 가능합니다. 그러나 상당한 양의 성능과 안정성을 확보하게 됩니다.

(귀하의 용량 요구 사항에 따라) 확장에 대한 권장 사항은 외부 SAS 다중 경로 케이블 드라이브 인클로저 및 ZFS 친화적 컨트롤러에 투자하는 것입니다. 이것이 말할 수 없이 더 필요한 상황이라면, 에서 제공하는 24TB의 사용 가능한 RAID 1+0 스토리지가 필요합니다.하나2TB 디스크로 채워진 외부 엔클로저라면 전문적인 설계 조언의 혜택을 누릴 수 있는 영역에 있는 것입니다. 이 수준에서는 다른 시스템에 있는 디스크를 사용하는 iSCSI로는 작업 속도가 더 빨라지지 않습니다.

iSCSI 설계는 대기 시간, 안정성 및 지원 가능성으로 인해 대체됩니다.

답변2

이더넷을 통한 iSCSI에 대한 질문에 따르면 iSCSI는 가장 빠른 프로토콜에 불과합니다. 기본적으로 유선을 통한 직접적인 디스크 블록 액세스입니다. 괜찮은 기가비트 NIC를 포화시킬 것입니다.

네트워크에서 대상 손실과 관련하여 제가 본 (거의) 모든 iSCSI 대상 구현은 일종의 다중 경로를 지원합니다. open-ietd가 아직 다중 경로를 지원하지 않을 수도 있다고 생각합니다. 최악의 경우 저널링 파일 시스템을 사용하고 있습니다. 대상이 다시 온라인 상태가 되면 저널을 재생해야 할 수도 있습니다. 스토리지 서버 삭제로 인해 iSCSI를 통한 파일 시스템이 손상된 적은 아직 없습니다.

답변3

참고: 실제로 이 작업을 수행한 적이 없으므로 소금을 조금 넣어서 처리하세요. ZFS에 대해 읽는 동안 이에 대한 언급을 본 적이 있지만 지금은 이러한 참조를 찾을 수 없습니다...

ZFS가 물리적 레이아웃을 완전히 볼 수 있도록 각 물리적 디스크를 별도의 LUN으로 내보내려고 합니다. 이는 IO 예약 및 복제에 대해 올바른 결정을 내리는 데 필요합니다.

기가비트 이더넷을 통한 iSCSI는 이 목적에 충분히 빠른가요, 아니면 적절한 성능을 얻으려면 10GbE로 전환해야 합니까?

디스크 속도, 디스크 수, 달성하려는 성능에 따라 다릅니다. 15k RPM 디스크는 최대 105MiB/s(840Mbit/s)까지 전송할 수 있습니다. 단일 기가비트 링크를 통해 두 개 이상의 디스크에 액세스하면 링크가 포화되어 네트워크에 병목 현상이 발생합니다. 사용하려는 디스크의 최대 속도를 찾아 디스크 수를 곱하면 이를 지원하는 데 필요한 네트워크 대역폭을 얻을 수 있습니다.

물론 이는 ZFS 서버에서 가능한 최대 성능을 원한다고 가정합니다. 100Mbit/s 이상으로 연결된 소수의 클라이언트만 있는 경우에는 필요하지 않으므로 예상되는 최대 수요가 얼마인지 계산하십시오. RAIDZ1/2/3을 사용하는 경우 디스크에 대한 대역폭은 클라이언트 대역폭보다 약간 높으며 클라이언트가 서버에 액세스하는 것과 동일한 NIC를 통해 서버가 디스크에 액세스하는 경우 이 대역폭은 공유할 필요가 있습니다.

iSCSI 대상을 실행하는 시스템 중 하나가 네트워크에서 연결 해제되면 어떻게 됩니까?

ZFS에서는 디스크를 사용할 수 없는 것으로 간주합니다. RAID1/2/3을 사용하는 경우 클라이언트에 대한 서비스가 중단되어서는 안 됩니다. 핫 스페어를 구성한 경우 ZFS는 이에 대한 데이터 재동기화를 시작합니다. iSCSI 대상이 다시 나타나면 개시자가 자동으로 다시 연결된다는 가정하에 ZFS는 이를 다시 사용하기 시작해야 합니다. (이것은 테스트해야 할 사항입니다.)

관련 정보