IOPS에 대한 RAID 레벨의 영향 [닫힘]


11

IOPS와 관련하여 웹에서 특정 디스크 수의 IOPS가 단일 디스크의 IOPS에 디스크 수를 곱한 값이라고 제안하는 여러 소스를 보았습니다.

IOPS에 대한 나의 이해가 정확하다면 (그리고 나는 그것이 확실하지 않다면) 현실은 다른 많은 요인들 중에서도 RAID 레벨에 달려 있다고 생각했을 것입니다. RAID 1/10을 사용하면 모든 데이터가 두 개 이상의 디스크에 복제되므로 일부 IO 패턴에 대한 특정 디스크의 경합이 줄어 듭니다. 그러나 RAID 0/5/6과 같은 스트라이프 RAID 레벨에서는 데이터가 복제되지 않고 분산됩니다. 즉, 동일한 스핀들에 대한 연속 읽기 요청이 발생하여 이전 IO가 완료되는 동안 차단 될 수 있습니다. 쓰기는 더욱 경쟁적입니다.

다양한 최적화 및 기타 요인으로 인해 현실이 훨씬 더 복잡하다는 점을 덧붙여 야합니다. 내 질문은 실제로 매우 기본적인 수준에서 IOPS가 무엇을 의미하는지에 대한 나의 이해가 올바른 길을 가고 있는지에 대한 추진력입니다. IOPS가 RAID 레벨에 의해 영향을받을 수 있다는 주장은 개념에 대한 기본적인 오해를 나타냅니다.


4
RAID 컨트롤러 캐시, OS, 응용 프로그램 동작, 동기식 또는 비동기식 I / O 및 디스크 유형의 영향을 배제 할 때까지이를 단순화하고 있습니다. 그래서 당신은 무엇을 찾고?
ewwhite

@ewwhite 죄송합니다. 더 명확 해졌습니다. 나는 실제로 예측하는 것이 아니라 내 생각의 기본 원칙이 올바른지 확인하고 싶습니다. 실제로는 모든 종류의 최적화 및 기타 복잡성에 의해 영향을 많이 받는다는 점에 감사합니다. 배경에는 실제 상황이 있지만, 당신이 익숙하지 않은 것을 조사 할 때 종종 그렇듯이, 나는 배경 학습을하기로 결정했습니다. 기본 원칙에 더 편안합니다.
dbr

스토리지와 성능을 둘러싼 이론과 개념에 관한 양질의 독서에 대한 권장 사항이 누구에게 있는지 궁금해했지만 ServerFault에 대한 부적절한 질문으로 생각되지는 않았습니다. 내가 지금까지 찾은 웹의 주제에 대한 고품질의 글쓰기는 거의없는 것 같습니다. 아마도 완전히 이해하지 못하는 복잡한 주제 일 것입니다.
dbr

RAID 성능은 RAID 수준보다 컨트롤러 하드웨어 및 구현 제한에 훨씬 더 의존합니다. 예를 들어 RAID0, RAID1, RAID5 및 RAID6은 이론적으로 모든 디스크를 장시간 읽기에 사용할 수 있으므로 이상적인 컨트롤러에서 동일한 읽기 속도를 가질 수 있습니다.
Zac67

답변:


12

HDD의 경우 IOPS는 일반적으로 디스크의 액세스 시간에 의해 좌우되며, 이는 검색 대기 시간 + 회전 지연 + 전송 지연 합입니다. 이러한 변수는 액세스 패턴에 크게 의존하고 특정 RAID 레이아웃 (예 : 스트라이프 크기) 및 컨트롤러 (예 : 미리 읽기 조정)와 명백한 상호 작용을하기 때문에 간단한 응답은 잘못됩니다.

그러나 야구장을 만들려고합니다. 첫 번째 근사치에서 n 디스크 배열에 의해 보장되는 IOPS는 단일 디스크의 IOPS의 n 배 여야합니다. 그러나 탐색 / 회전 / 전송 대기 시간 사이에 가중치를 이동 하여 RAID 레벨과 데이터 액세스 패턴 모두이 1 차 근사값을 크게 변경합니다.

단일 디스크 당 100 IOPS (7200 RPM 디스크에 대한 팁 값) 및 4 디스크 어레이 (RAID1 제외, 종종 양방향으로 만 제한됨)를 가정하여 몇 가지 예를 살펴 보겠습니다.

  • 단일 디스크는 읽기 및 쓰기 모두 100 IOPS입니다 (참고 : 쓰기 통합으로 인해 쓰기 IOPS는 일반적으로 읽기 IOPS보다 높지만 간단하게 무시할 수 있습니다)
  • RAID0 (4 방향 스트라이핑)가 최대 랜덤 IOPS를 4 배 및 최대 연속 IOPS 4 배. 여기서 핵심 단어는 "최대"입니다. 스트라이핑 및 데이터 정렬의 특성으로 인해 임의 액세스 된 섹터가 단일 디스크에 주로있는 경우 IOPS가 훨씬 낮아집니다.
  • RAID1 (양방향 미러링)은 프로파일 링하기가 더 복잡합니다. 다른 디스크가 다른 데이터를 검색 할 수 있으므로 랜덤 읽기 IOPS는 최대 2 배이지만 오버 헤드로 인해 동일한 1 배 (또는 오버 헤드로 인해 약간 낮음) 랜덤 쓰기 IOPS가 있습니다. 모든 것이 잘 정렬되면 (즉, 100 % 순차 읽기는 크지 않고, 100 % 순차 읽기, 미러링 모드에서도 청크 / 스트라이프 개념 / 처리를 사용하는 RAID 컨트롤러, 미리 읽기가 올바르게 작동하는 등) 순차 읽기는 언젠가 단일의 최대 2 배가 될 수 있습니다 디스크 값, 순차 쓰기는 단일 디스크의 1 배로 제한됩니다 (즉, 속도 향상 없음).
  • RAID10 (4 방향 미러링)은 성능 측면에서 4 방향 RAID0 스트라이핑과 2 방향 미러링의 중간에 있습니다. 랜덤 읽기 IOPS의 최대 4 배와 랜덤 쓰기 IOPS의 최대 2 배입니다. 순차 전송의 경우 RAID1주의 사항이 적용됩니다. 순차 읽기 IOPS는 최대 4 배이지만 순차 쓰기 IOPS는 2 배에 불과합니다. 일부 RAID10 구현 (즉, Linux MDRAID)은 성능 프로파일다른 RAID10 어레이에 다른 레이아웃을 제공 합니다 .
  • RAID5 (스트라이핑 패리티)는 최대 4 배의 랜덤 읽기 IOPS를 갖지만, 랜덤 쓰기 IOPS는 쓰기가 스트라이프 크기와 관련하여 얼마나 큰지, 큰 스트라이프 캐시의 가용성, 스트라이프 재구성 알고리즘과 같은 여러 요인에 따라 다릅니다. 자체 (읽기 재구성 쓰기 / 읽기 수정 쓰기) 등은 단일 디스크의 IOPS가 0.5 배 (또는 그 이하)에서 2 배 사이 일 수 있습니다. 단일 디스크의 IOPS 3 배 (읽기 및 쓰기 모두)로 순차적 워크로드 예측 가능
  • RAID6 (striped double parity)은 RAID5 형제와 매우 유사하지만 쓰기 성능이 떨어집니다. 단일 디스크의 랜덤 읽기 IOPS는 최대 4 배이지만 랜덤 쓰기 성능은 동일한 절대 값 (0.5x-2x)이지만 실제 단어 평균은 낮은 RAID5보다 훨씬 낮습니다. 순차 읽기 및 쓰기는 단일 디스크의 IOPS의 2 배로 제한됩니다.

반복하겠습니다 : 위의 내용은 간단하고 거의 근사치입니다. 어쨌든 (완전히 불완전한) RAID IOPS 계산기를 사용 하려면 여기를보십시오 .

이제 현실 세계로 돌아가십시오. 실제 워크로드에서 RAID10은 종종 더 빠르고 선호되는 선택 이며, 성능 이 저하 된 어레이에서도 성능을 유지 합니다. 읽기 중심적이거나 순차적 인 것이 아니라면 성능에 민감한 워크로드에는 RAID5 및 RAID6을 사용해서는 안됩니다. 심각한 RAID 컨트롤러에는 RAID5 / 6의 낮은 임의 쓰기 성능을 극복하기 위해 주로 강력한 스트라이프 캐싱을 통해 큰 전력 손실로 보호되는 쓰기 저장 캐시가 있습니다. 어레이 속도에 신경 쓰지 않는 한 캐시없는 RAID 컨트롤러와 함께 RAID5 / 6을 사용하지 마십시오 .

SSD는 다른 짐승이라고 생각합니다. 본질적으로 평균 액세스 시간이 훨씬 낮아짐에 따라 패리티 기반 RAID는 훨씬 낮은 성능 오버 헤드를 유발하고 HDD보다 훨씬 더 실용적인 옵션입니다. 그러나 작은 임의 쓰기 중심 워크로드에서는 어쨌든 RAID10 설정을 사용합니다.


어레이 속도에 신경 쓰지 않는 한 캐시없는 RAID 컨트롤러와 함께 RAID5 / 6을 사용하지 마십시오. 실제로 수행중인 작업을 알고 IO 패턴을 엄격하게 제어하는 ​​경우이 문제를 해결할 수 있습니다. 어레이의 스트라이프 크기와 일치하는 순차 IO 만 수행하는 경우 캐시없는 RAID5 / 6을 사용하여 벗어날 수 있습니다. RAID5 / 6 어레이에 대해 임의의 소규모 블록 쓰기 작업을 충분히 수행하면 캐시가 성능을 절약 할 수 없지만 성능을 저하시키는 "충분한 IO 작업"의 값이 실제로는 우수한 RAID 컨트롤러에 큰 영향을 줄 수 있습니다.
Andrew Henle

@AndrewHenle 물론, 스트라이프 정렬 된 순차적 읽기 / 쓰기 만 수행하는 경우 RAD5 / 6 모드의 캐시없는 컨트롤러라도 좋은 결과를 얻을 수 있습니다. 그러나 이것은 매우 좁은 사용 패턴입니다 (예 : 스트리밍 및 백업). 범용 워크로드의 경우, 패리티 RAID와 결합 된 캐시없는 컨트롤러는 실제로 느립니다. 일부 컨트롤러 에는 패리티 RAID를 만들 수 있도록 전원 손실 방지 쓰기 저장 캐시가 필요 합니다.
shodanshok

나는 더 큰-필수가 되 19-MB-때문에 - - 빠른 스트라이프 크기와 자신의 회사 메일 저장 (21) 드라이브 RAID6 어레이가 느린 이유를 궁금해 관리자 ....에 대해 더 생각
앤드류 헨레

1

정의의 문제 일뿐입니다. 시스템의 다른 수준에서 IOPS를 측정 할 수 있으며 다른 값을 얻을 수 있습니다. 예를 들어, 두 개의 미러 된 디스크가 있고 가능한 한 빨리 쓰고 있다고 가정하십시오. 디스크로가는 IOPS는 단일 디스크가 비슷한 쓰기로드로 처리 할 수있는 IOPS 수의 두 배입니다. 그러나 컨트롤러로 들어가는 IOPS는 단일 디스크가 처리 할 수있는 IOPS의 수와 같습니다.

일반적으로 우리가 관심을 갖는 것은 어레이에 들어갈 수있는 논리적 IOPS의 수이며 디스크 수준에서 일어나는 일에 대해서는 특별히 신경 쓰지 않습니다. 이 경우 정확하며 IOPS는 RAID 레벨, 디스크 수, 개별 디스크의 성능 및 경우에 따라 작업의 특정 특성에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.