하나의 큰 RAID 10 대 여러 개의 작은 배열?


10

내 질문은 : 특정 응용 프로그램을 위해 더 작은 어레이를 만드는 대신 RAID 10과 같은 빠른 읽기 및 쓰기 성능으로 하나의 큰 어레이를 만드는 것이 언제 적절한가?

전반적인 I / O 요구 사항이 너무 무겁지 않은 경우, 읽기 및 쓰기 성능이 우수한 단일 어레이는 액세스 패턴이 다른 응용 프로그램이 정점에 이르렀을 때 (어쩌면 드문 경우)를 제외한 모든 응용 프로그램에 대해 전반적으로 더 나은 성능을 제공 할 수 있습니다. 동시에 (데이터베이스가 비틀리는 동안 많은 양의 큰 파일을 복사 함).

트랜잭션 로그와 같은 특정 작업에 페어 스핀들을 전용으로 사용하고 작업 부하로 인해 땀을 흘리지 않는 경우 해당 워크로드를 더 큰 RAID 10에 배치하는 이유는 무엇입니까? 이러한 스핀들은 60 %의 시간을 긁지 않고 다른 작업 부하에 기여할 수 있습니다.

추신 : 필자의 경우 RAID 10의 비용 오버 헤드는 중요하지 않습니다. 여러 RAID 1 어레이와 하나의 작은 RAID 5를 만드는 중이기 때문입니다. 필요한 공간을 확보하기 위해 RAID 10을 사용하는 것은 비슷할 것입니다.

답변:


10

스토리지 설정 방법을 아는 것은 IOPS 및 대역폭을 측정하고 예산을 책정하는 것입니다. (읽기 / 쓰기 비율, 평균 IO, RAID 스트라이프 크기 및 캐시 적중률의 비율이 크게 중요하기 때문에 여기서는 간단합니다.이 수를 얻을 수 있으면 계산을 더 정확하게 할 수 있습니다.)

여기에는 스토리지를 계획 할 때 자주 사용 하는 정말 멋진 IO 계산기가 있습니다 . wmarow의 스토리지 디렉토리 는 또한 상당히 현대적인 디스크 성능 수치를 얻는 데 좋습니다.

트랜잭션 로그와 같은 특정 작업에 페어 스핀들을 전용으로 사용하고 작업 부하로 인해 땀을 흘리지 않는 경우 해당 워크로드를 더 큰 RAID 10에 배치하는 이유는 무엇입니까?

임의 IO가있는 스핀들에 순차적 IO를 넣으면 순차적 IO가 임의적임을 기억하십시오. 트랜잭션 로그 디스크는 순차적 IO 작업을보고 있기 때문에 땀을 흘리지 않는 것처럼 보일 수 있습니다. RAID-1 볼륨에 대한 순차 읽기 및 쓰기 속도는 매우 빠르므로 디스크 대기열 길이를 기준으로 "땀을 흘리지 않는"경우 전체 스토리를 얻지 못합니다.

의도 된 대상 볼륨에 대해 가능한 최대 임의 IOPS를 측정 또는 계산하고 해당 볼륨의 현재 작업 부하의 기준을 얻은 다음 해당 트랜잭션 로그 IOPS를 대상 볼륨의 나머지 임의 IO에 넣을 충분한 여유 공간이 있는지 확인하십시오. 또한 워크로드에 필요한 공간을 분명히 예산으로 책정하십시오. 너무 기울어지면 IO 워크로드 / 공간 할당에 추가 "헤드 룸"을 추가하십시오.

대상 RAID-10 볼륨에 넣고 자하는 다른 모든 작업에 대해이 방법을 계속하십시오. 임의의 IOPS가 부족하면 볼륨에 너무 많은 파일이 쌓여 있습니다. 디스크를 추가하거나 일부 워크로드를 전용 볼륨에 두십시오. 공간이 부족하면 디스크를 더 추가하십시오.


한 가지 문제는 현재 구성을 사용하면 전송 당 평균 14K 바이트로 약 300 (60 % 읽기)에 불과한 총 IOPS에 대해서만 제대로 측정 할 수 있다는 것입니다. 내가 생각하고있는 대형 RAID 10 어레이는 758 개의 임의 16k IOPS (60 % 및 캐시 제외)를 수행 할 수 있어야합니다. 그러나이 계산에서는 혼합 된 워크로드를 고려하지 않으며 이것이 제가 고심하고있는 것입니다.
Boden

4

RAID 5가 신뢰성을 얻는 데 나쁜 길이라고 최근에 더 많은 기사를 읽었습니다. RAID 5 어레이에서 디스크가 손상되어 드라이브를 교체 한 후 더 많은 것으로 생각하고 두 번째 디스크에는 복구 할 수없는 잠재적 인 읽기 오류가있어 백업에서 다시 포맷하고 복원해야했기 때문에 복구 할 수 없었습니다.

드라이브가 커짐에 따라이 거대한 디스크에서 복구 할 수없는 읽기 오류를 발견 할 가능성도 높아지고 있으며 RAID 5에서는 더 이상 신뢰성이 떨어지지 않습니다. 미러링하지 않는 경우 RAID 10을 사용하는 것이 좋습니다.

속도 문제에 매우 민감한 작업을 수행하지 않으면 작은 배열이나 그와 비슷한 것으로 나눌 염려가 없습니다. RAID 10에 넣고 성능이 제대로 작동하는지 확인하십시오. 시스템에 적절한 캐싱과 메모리가 있으면 괜찮습니다. 벤치 마크 수치는 실제 사용량, 실제로드, 디스크 드라이브 성능, 컨트롤러 캐싱, 디스크 캐싱, 조각화 등에 따라 달라 지므로 실제로 얻을 수있는 수치는 아닙니다.

가장 좋은 방법은 1 ~ 2 주 안에이 설정으로 인해 하루나 일주일 동안 땀을 흘리더라도이 서버에서 발생할 수있는 문제를 해결해야하기 때문에 구성을 최대한 단순화하는 것입니다. 구성에 불필요한 복잡성을 추가 한 경우 왜 그렇게 설정했는지 궁금합니다.


1
예, RAID 5에서 RAID 6으로 옮겼는데 쓰기 패널티가 저를 죽였습니다. 하나의 큰 RAID 10이라는 아이디어가 마음에 듭니다. 다양한 유형의 동시 I / O로드를 벤치마킹하기 위해 무엇을 사용할 수 있습니까?
Boden

1
스톱워치가 가장 정확합니다 :-)
Bart Silverstrim

1
드라이브와 컨트롤러의 중요성을 과소 평가하지 마십시오. RAID 5가 장착 된 Dell NAS가 있으며 사용자가 로그인하여 프로파일을 가져올 때 질식되어 성능 모니터 번호를 조사한 후 드라이브가 10,000RPM이 아니라고 결론을 내 렸습니다. 결국 일부 데이터를 별도의 서버로 이동하여 일부 워크로드를 오프로드했습니다.
Bart Silverstrim

2
솔직히, 나는 왜 회사 환경에서 누군가가 RAID 5를 사용하는지 이해할 수 없습니다. 우리는 RAID 10입니다.
Beep beep

2
상기 때문에 시간 RAID 5가 (10)가 비즈니스의 우리의 수준에서 필요로하지 않는 고급 간주 악 :-) RAID 아니었다, 나는 당신이 말할 수도있을 것 같군요. 가격은 실제로 떨어졌고 시간은 바뀌 었으며 우리는 여전히 서버 룸에서 "작동"하는 것을 지원합니다.
Bart Silverstrim

2

애플리케이션의 지연 시간을 얼마나 예측할 수 있습니까?

예를 들어 대기 시간에 민감한 앱이 하나 있고 재무 데이터베이스와 파일 시스템을 공유한다고 가정 해보십시오. 회계 결산시, 갑자기 대기 시간에 민감한 앱 시간 초과에 대한 전화를받습니다. 어떻게 알아낼거야?

다른 한편으로, 나는 모든 것을 단순화하는 열렬한 팬이므로 예외적 인 요구 사항이 없는지 확인하고 요구 사항이 이상한 특별한 경우에 속하지 않으면 구성을 통합하고 단순화합니다.


0

물론이지 중요한 것은 큰 멀티 디스크 어레이를 올바르게 구축하고 잘못 이해하면 오랫동안 재 구축하는 것입니다.

RAID 10에는 두 가지 맛이 있습니다.

  • 2 개의 RAID 1 어레이를 구축 한 다음 스트라이핑하는 RAID 1 + 0.
  • 2 개의 RAID 0 어레이를 구축 한 다음 미러링하는 RAID 0 + 1.

디스크가 죽으면 하나의 raid1 어레이 만 다시 빌드하면됩니다. 다른 하나를 사용하면 전체 raid0 배열을 다시 작성해야합니다.

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