ZFS 스크럽은 64코어 AMD Threadripper Pro와 같이 성능 향상을 위해 병렬화를 지원합니까?

ZFS 스크럽은 64코어 AMD Threadripper Pro와 같이 성능 향상을 위해 병렬화를 지원합니까?

vdev당 8개의 Seagate Exos X18 16TB 드라이브를 실행하는 3개의 RAIDZ1 vdev로 구성된 24개의 드라이브 zpool이 있습니다. 이는 64코어(128스레드) AMD Threadripper Pro 및 256GB ECC RAM을 갖춘 Supermicro MB에 있습니다.

스크럽 중 시스템 사용률은 한 번에 최대 2개의 CPU가 사용되는 것으로 표시되며 총 스크럽 시간은 5~7일 정도 걸릴 수 있습니다.

속도를 높이기 위해 스크럽에서 모든 CPU 코어를 병렬로 작동시키는 방법이 있습니까?

답변1

CPU가 성능을 제한하는 요인이 아닐 가능성이 높습니다. 7200RPM 스핀들은 약 60~70 임의 IOPS입니다. 24개의 디스크라도 우선순위가 낮은 무결성 검사를 위한 여유 성능은 많이 남지 않습니다.

일주일에 한 번 정도 스크럽을 수행하는 현재 성능을 계획하세요. 복구 지점 목표가 야간 백업인 경우 복원 소스가 완전히 스크러빙되지 않습니다. 아마도 일부 스냅샷일 것입니다. 당신이 받아 들일 수 있습니다.

백업을 스크럽에 맞춰 정렬하는 것을 고려하세요. 매주 전체 백업을 수행하고 해당 시점에 스크럽을 시작하면 다음 주가 가득 차기 전에 완료될 수 있습니다. 어레이 및 프록시를 통한 백업 무결성에 대한 추가 보증을 제공합니다. 그러나 좋은 파일 시스템 무결성 검사를 통해 백업을 수행하는 데는 많은 시간이 소요되지 않습니다. 여러 개의 전체 백업을 편리하게 유지하는 것이 좋습니다. 복원 목표에 대해 며칠이 지난 아카이브가 얼마나 유용한지는 귀하에게 달려 있지만 최소한 관련 스크러빙은 완료되어야 합니다.

답변2

ZFS에 대한 디스크 읽기/쓰기 작업의 병렬화 작업이 진행되고 있는 것으로 보이지만 아직 테스트할 준비가 되어 있지 않습니다.

응답을 안내하는 매개변수와 약간의 수학:

드라이브당 용량: 16,000,000,000,000바이트(16TB 아님)

지속적인 읽기/쓰기: 270MB/s(258MiB/s).

실패 사이의 평균 시간: 285년.

비트 읽기당 복구 불가능한 섹터 읽기 오류: 116,415TB의 데이터 읽기당 1비트 오류.

무작위 읽기 4K QD16 QCD: 170 IOPS.

무작위 쓰기 4K QD16 QCD: 550 IOPS.

각 8드라이브 RAIDZ1 vdev는 연결된 드라이브당 512MB/초의 지속적인 처리량을 지원하는 8채널 PCIe 3.0x HBA에 연결됩니다.

HBA는 128레인 마더보드의 PCI4.0 x16 슬롯에 연결됩니다.

병렬로 실행되는 이 시스템은 22시간 내에 24개의 16TB 드라이브 전체에 대한 완전한 읽기를 지원합니다.

나는 스크럽이 24시간 이내에 완료될 것으로 예상합니다. 따라서 병목 현상은 체크섬 확인을 위한 CPU 사용률입니다. 드라이브당 5개의 계산 스레드(128 스레드/24 드라이브 시스템)의 가용성을 고려하면 체크섬 병렬화로 병목 현상 문제를 해결할 수 있습니다.

신뢰성 기준:

확률론적 이론에서는 제조업체의 MTBF가 285년이고 신뢰 구간이 6개의 표준 편차라고 가정할 때 드라이브 고장이 발생할 가능성이 없다고 예측합니다. 그럼에도 불구하고 오류 수정 및 재해 복구를 위해 4개의 드라이브를 사용하고 있습니다.

비트 부패(비트 읽기당 복구할 수 없는 섹터 읽기 오류)는 별도의 문제이므로 스크럽 작업이 걱정됩니다. 예상 오류율은 116,415TB의 데이터 읽기당 1비트 오류입니다. 이는 14년마다 1비트 읽기 오류가 발생함을 의미합니다. 270MB/s의 전체 처리량에서 IFF 연속 읽기는 14년 동안 연중무휴 24시간 유지됩니다.

이 머신은 핫 페일오버 1024노드, 1페타바이트 클러스터의 일부입니다.

관련 정보