ZFS RAIDZ에 대한 IOPS 계산이 RAID5 및 RAID6에 대한 IOPS 계산과 다릅니 까?


13

기존 RAID 어레이에 대한 IOPS를 계산할 때 다음 공식을 사용할 수 있습니다 ( Symantec Connect 에서 IOPS v1.3 중단하기에서 차용 ).

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

어디:

  • 효과적인 IOPS 수입니다
  • Isingle은 단일 드라이브의 평균 IOPS 입니다.
  • n은 어레이의 디스크 수
  • READ %는 디스크 프로파일 링에서 가져온 읽기 비율입니다.
  • WRITE %는 디스크 프로파일 링에서 가져온 쓰기의 비율입니다.
  • F는 RAID 쓰기 패널티입니다 .

    RAID Level      Write Penalty
    RAID-0          1
    RAID-1          2
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

공식은 본질적으로 다음의 함수입니다.

  • 어레이의 각 개별 드라이브에 대한 IOPS
  • 디스크 수 더 많은 디스크는 더 많은 IOPS를 의미합니다
  • 각 쓰기 작업에 대한 RAID 패널티.
    • RAID5 및 RAID6에는 모든 쓰기 작업에 4 개 이상의 디스크 작업이 필요합니다. 컨트롤러는 블록을 읽은 다음 패리티 데이터를 읽고 (두 작업) 새 패리티 데이터를 계산 한 다음 패리티 블록을 업데이트하고 데이터 블록을 업데이트해야합니다 (두 번 더). RAID6에는 2 개의 패리티 블록이 있으므로 3 개의 읽기와 3 개의 쓰기가 필요합니다. 따라서 RAID5 및 RAID6 어레이는 RAID1보다 적은 IOPS를 수행 할 수 있습니다.
    • RAID1 및 RAID10은 미러의 각 디스크에 하나씩 2 개의 쓰기 만 필요합니다.

그리고 분명히, 이것은 모두 이론적 성능 의 추정치 를 제공합니다 . 다양한 컨트롤러와 RAID 방법에는이 중 일부 속도를 높이는 트릭이 있습니다.

RAID5 및 RAID6에 해당하는 ZFS는 RAIDZ 및 RAIDZ2입니다. RAIDZ 어레이에 대한 IOPS를 계산할 때 RAID5 및 RAID6에 사용하는 것과 같은 공식을 사용하거나 ZFS에 쓰기 작업에 필요한 작업 수를 줄이는 특별한 방법이 있습니까?

RAIDZ 어레이의 IOPS를 계산할 때 사용할 다른 공식이 있습니까?


1
좋은 질문입니다. 나는 ... 답변을 읽고 기대하고
EEAA

1
iops는 신화 적이지만이 문서는 약간의 통찰력을 제공 할 수 있습니다. info.nexenta.com/rs/nexenta/images/…
tony roth

IOPS는 이론적이지만, 동일한 드라이브에서 RAID10 어레이가 일반적으로 RAID5 어레이보다 성능이 우수한 이유에 대한 설명을 제공 할 수 있습니다.
Stefan Lasiewski

Nexenta 문서에서 한 가지 주목할만한 인용문 : "RAIDZ-2 구성에서 VDEV로 들어오는 단일 IO는 모든 데이터 디스크에서 분리되어 기록되어야합니다. 그런 다음 패리티를 계산하고 디스크에 기록해야합니다. 모든 디스크의 대기 시간이 동일하면 디스크에 대한 모든 작업이 동시에 완료되므로 한 디스크 속도로 VDEV에 대한 IO를 완료 할 수 있습니다 대기 시간이 긴 디스크가 느린 경우 가장 느린 드라이브의 IO가 완료 될 때까지 RAIDZ-2 VDEV, VDEV에 대한 IO가 완료되지 않습니다. "
Stefan Lasiewski

답변:


13

대답하기가 더 쉽습니다 ...

그것은 모두 여기에 증류수 것 : ZFS의 RAID 권장 사항 : 공간, 성능, MTTDLZFS, Vdevs 및 성능에 대해 자세히 살펴

  • 하나의 패리티 드라이브가있는 RAIDZ는 단일 디스크의 IOPS 성능을 제공하지만 단일 디스크의 n-1 배 집계 대역폭입니다.

따라서 확장이 필요한 경우 RAIDZ vdev의 수로 확장 할 수 있습니다. 예를 들어 16 개의 디스크를 사용하면 4 개의 디스크로 구성된 4 개의 디스크 RAIDZ가 8 개의 디스크로 구성된 2 개의 RAIDZ보다 IOPS 가능성이 더 높습니다.

놀랍지 않나요?

일반적으로 ZFS 설치시 스트라이프 미러 (RAID 1 + 0)를 사용합니다. 같은 개념이 적용됩니다. 미러 쌍이 많을수록 성능이 향상됩니다.

ZFS에서는 전체 vdev 단위로만 확장 할 수 있습니다. 따라서 RAID 1 + 0 세트의 확장은 더 많은 쌍을 추가하는 것을 의미하지만, RAIDZ 세트에 대해 동일한 작업을 수행한다는 것은 동일한 컴포지트의 RAIDZ 그룹을 더 추가하는 것을 의미합니다.


좋은 기사이지만 너무 오래되어 ZFS RAID1과 RAID5의 링크 비교 ( "단일 패리티 모델 결과"및 "이중 패리티 모델 결과"가 누락되었습니다). 쥐!
Stefan Lasiewski

하나의 패리티 드라이브가있는 RAIDZ는 단일 디스크의 IOPS 성능을 제공합니다. 이것은 흥미 롭습니다. 읽기 대 쓰기 백분율에 관계없이 일정한 값입니까? 예를 들어, RAID5의 성능은 읽기 구절 쓰기 백분율에 따라 크게 다릅니다. 3 Disk 15K 어레이는 읽기 / 쓰기 비율에 따라 130IOPS와 500IOPS 사이에서 달라질 수 있습니다. 50 % 읽기 및 50 % 쓰기는 단일 디스크의 IOPS 성능 보다 더 큽니다 . 3 개 이상의 스핀들을 사용하면 성능이 1 대 스핀들보다 향상됩니다. 맞습니까?
Stefan Lasiewski

방금 vdev 스케일링을 생각하고 vdev의 구성에 관계없이 쓰기 성능은 1 디스크와 같습니다. 미러, RAIDZ, RAIDZ2 등 vdev 내부의 디스크는 용량을 늘리기 위해 존재합니다. vdev의 수는 스트라이핑 성능을 구축하는 데 사용됩니다. vdev의 읽기는 드라이브 수에 따라 확장됩니다.
ewwhite

1
나는 이것에 대해 상당한 경험을 가지고 있으며, 대부분의 상황에서 RAIDZ가 전통적인 RAID5 / 6 동등한 어레이에 던져진 동일한 수의 디스크를 능가하지 않을 것임을 확인할 수 있습니다. 대부분의 기존 RAID5 / 6 어레이는 RAID 세트에 스핀들을 추가 할 때 IOPS 성능을 얻습니다 (거의 모든 사람이 생각하지 않더라도 신경 쓰지 않음). ZFS는 그렇지 않습니다. 그 대가로 ZFS는 데이터를 잃지 않으며 'RAID 쓰기 홀'문제를 겪지 않습니다. 또한 전체 스냅 샷, 클론, 압축 등이 있습니다. 그리고 아크. 그리고 .. 당신은 아이디어를 얻습니다.
Nex7

2
ZFS는 성능상 전쟁에서 이길 수없는 디자인입니다. 동일한 하드웨어 (예 : ext4 및 Adaptec RAID 카드)에서 ZFS를 능가 할 수있는 대체 파일 시스템 및 볼륨 관리자 (또는 조합)를 찾을 수 있습니다. 내가 아는 유일한 예외는 쉽게 캐시되는 읽기에서 비롯됩니다. ARC는 종종 ZFS에 대부분의 대안을 제공합니다. 그러나 글을 쓸 때? 아니요. ZFS가 데이터 무결성에 쓰는 노력과 쓰기 처리 방법은 속도 경쟁에서 이길 수 없습니다. 절충점은 무결성과 기능 세트입니다.
Nex7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.