Linux RAID 1이 높은 대기 시간을 설명할 수 있습니까?

Linux RAID 1이 높은 대기 시간을 설명할 수 있습니까?

시나리오: EC2에서 대규모(클러스터 총 3TB) Solr 설치를 실행하고 있습니다. 나는 읽기 측면의 디스크 성능에만 관심이 있습니다. 우리는 디스크 I/O로 인해 제한을 받고 있으며 특히 EBS 볼륨이 불안정해지고 느려지는 경우 문제가 발생한다고 의심합니다.

나는 RAID 1을 시험해 볼 것을 고려하고 있습니다. 내가 이해한 바에 따르면 Linux 소프트웨어 RAID는 디스크 간에 읽기를 분할하지만 이것이 얼마나 똑똑한지는 잘 모르겠습니다. RAID 1 쌍의 디스크 중 하나가 읽기로 백업되면 다른 디스크에 더 많은 읽기를 보내나요? 읽기가 너무 오랫동안 보류된 경우 다른 디스크에 대한 읽기 일정이 변경됩니까?

이 동작을 테스트할 방법이 생각나지 않습니다. 코드를 살펴보게 되어 기쁘지만 이것이 I/O 스케줄러에 의해 처리되는지 아니면 RAID 드라이버의 일부인지 확실하지 않습니다. 소프트웨어 RAID HowTo보다 더 깊이 있는 문서를 찾을 수 없습니다.

답변1

읽기 균형 조정은 커널의 md 드라이버에서 처리됩니다. 드라이버/md/raid1.c

그것은 매우 영리하지 않습니다. 탐색을 최소화하려고 시도하며 그게 전부입니다. RAID 구현이 원하는 만큼 영리한지 잘 모르겠습니다...

시스템에 충분한 메모리가 있습니까? 읽기 작업이 많은 경우 캐싱이 약간 도움이 될 것입니다.

관련 정보