CentOS 6 용 24 x 1.2 TB 드라이브로 RAID 5, 특히 스트라이프 크기를 어떻게 구성합니까?


8

24 x 1.2TB 디스크 (및 1TB RAM)가 장착 된 Dell R920의 경우 빠른 IO를위한 RAID 5 구성을 설정하려고합니다. 서버는 대용량 파일을 포함하여 모든 크기의 파일을 읽고 쓰는 KVM VM을 호스팅하는 데 사용됩니다. 서버가 어떤 이유로 든 고장이 나면 고장난 부품을 교체 한 후 베어 메탈에서 서버를 다시 프로비저닝하기 때문에 데이터 안전성에 크게 관심이 없습니다. 따라서 성능이 주요 관심사입니다. RAID 5는 여러 스핀들에 데이터를 분배 할 수있게 해 주므로 성능을 향상시키고 주요 관심사가 아닌 데이터 보호 기능을 제공하기 때문에 RAID 5를 고려하고 있습니다. NIC는 듀얼 10Gbps입니다.

최상의 성능을 제공 할 것이라고 생각하기 때문에이 질문을 RAID 5로 제한하고 있습니다. 강력한 성능상의 이유가있는 경우에만 다른 것을 고려할 것입니다. 그러나 RAID 5 구성과 관련된 답변을 선호한다고 생각합니다.

위에서 언급했듯이 현재 구성에 대한 생각은 다음과 같습니다.

  • 24 개의 하드 드라이브 : RMCP3 : 1.2TB, 10K, 2.5 "6Gbps
  • RAID 컨트롤러 : H730P, 12Gbps SAS 지원, 2GB NV 캐시
  • 1 핫 스페어 (드라이브가 고장 나면 수명 연장)
  • 23 개의 데이터 드라이브 (이 중 1 개는 패리티로, 22 개는 데이터로 남음)
  • 스트라이프 크기 : 1MB (디스크 당 1MB / 22 데이터 드라이브 = ~ 46.5KB 또는 스트라이프 크기를 잘못 이해합니까)?
  • 읽기 정책 : 적응 형 미리 읽기
  • 정책 쓰기 : 다시 쓰기
  • 디스크 캐시 정책 : 사용

스트라이프 크기가 ​​데이터 드라이브 전체에서 TOTAL이면 드라이브 당 ~ 46.5KB가 매우 우수한 처리량을 제공 할 것이라고 생각했습니다. 스트라이프 크기가 ​​스핀들 당인 경우이 모든 것이 잘못되었습니다.

스트라이프 크기도 단일 파일의 크기입니까? 예를 들어, 2KB 파일이있는 경우 스트라이프 크기를 1MB로 선택하면 거의 전체 메가 바이트가 낭비되고 있습니까? 아니면 여러 파일이 스트라이프 내에 존재할 수 있습니까?

마지막으로 CentOS 6.5 (또는 최신 버전)를 설치할 때 파일 시스템이 RAID를 최적으로 사용하도록 특별한 작업을 수행해야합니까? 예를 들어, mkfs.ext4 에는 옵션 -E stride 가 있는데 RAID 구성에 해당한다고 들었습니다. 그러나 CentOS 설치 중에이를 수행 할 수있는 방법이 있습니까?

빠른 IO를위한 RAID 5 구성에 대한 귀하의 의견에 감사드립니다.


4
RAID 5는 성능을 원할 경우 사용 하지 않는 것입니다. 쓰기 속도가 끔찍할 수 있습니다.
Nathan C

1
이 스토리지 솔루션의 읽기 / 쓰기 워크로드 및 애플리케이션에 대한 컨텍스트를 제공 할 수 있습니까?
ewwhite

1
성능을 원한다면 HDD를 전혀 사용하지 마십시오. 좋은 SSD 스토리지 시스템 또는 PCIe 스토리지 솔루션으로 더 많은 성능을 얻을 수 있습니다. 데이터 손실이 걱정되지 않으면 SSD 또는 PCIe 스토리지 솔루션으로 이동하십시오.
Dennis Nolte

2
@ 토니 나는 이것을 확인했다. 해당 컨트롤러의 최대 16 디스크.
ewwhite

7
여러분, 전문가가 아니었다는 점을 기억하십시오. 당신보다 잘 아는 사람들에게 친절하십시오.
Chris S

답변:


12

컨트롤러 및 드라이브 설정에 RAID 1 + 0을 사용하십시오. 더 많은 용량이 필요한 경우 RAID 50/60과 같은 중첩 된 RAID 레벨 작동 할 수 있습니다 . 재 구축 시간이 나쁘지 않기 때문에 소수의 엔터프라이즈 SAS 디스크 (8 개 이하의 드라이브)에서 RAID 5를 사용할 수 있습니다. 그러나 24 개의 드라이브는 끔찍한 실수입니다. (오, 개별 디스크 캐싱 기능을 비활성화하십시오 ... 위험)

I / O 및 로컬 스토리지 성능에는 많은 측면이 있습니다. 초당 I / O 작업이 있고 처리량이 있으며 스토리지 대기 시간이 있습니다. RAID 1 + 0은 이들 사이의 균형이 양호합니다. 여기서 긍정적 인 측면은 엔터프라이즈 디스크, 유능한 하드웨어 컨트롤러 및 많은 수의 디스크를 사용하고 있다는 것입니다. 얼마나 많은 용량이 필요합니까?

가상 디스크 그룹 내에서 사용할 수있는 드라이브 수에 제한이있을 수 있습니다. PERC / LSI 컨트롤러는 전통적으로 단일 RAID 레벨 및 RAID 1 + 0의 경우 16 개 드라이브로 제한했습니다. 사용 설명서가이를 확인합니다 . 단일 RAID 5 또는 단일 RAID 1 + 0 그룹에서 24 개의 디스크를 모두 사용할 수는 없습니다.

워크로드에 따라 고려해야 할 또 다른 측면은 특정 PERC 컨트롤러 에서 LSI Cachecade 기능을 사용하여 SSD 캐싱을 활용할 수 있다는 것 입니다. 이를 사용할 수는 없지만 I / O 패턴을 이해하면 스토리지 솔루션을 조정하는 데 도움이됩니다.


ext4 파일 시스템 생성 옵션에 대해서는 하드웨어 RAID 컨트롤러에 의해 대부분 추상화됩니다. 특별한 옵션없이 파일 시스템을 만들 수 있어야합니다. 언급 한 매개 변수는 소프트웨어 RAID 솔루션에 더 많은 영향을 미칩니다.


여기에 매우 유용한 정보가 있습니다. 우리는 먼저 성능, 총 디스크 공간을 찾고 있습니다 따라서 사용 가능한 24TB 디스크 공간의 절반이 손실되므로 RAID 10을 고려하지 않습니다. 우리의 요구는 매우 많은 양의 데이터이며 TB의 데이터를 매우 쉽게 이탈합니다. 서버 고장의 결과는 우리에게 우선 순위가 낮기 때문에 (불량한 하드웨어를 수정 한 후 서버를 처음부터 다시 구축 할 수 있기 때문에, 즉 데이터 안전이 가장 중요한 고려 사항이 아니기 때문에) 디스크 IO를 최대화하려고합니다. 로컬 및 NFS / 또 다른 이야기) 및 전체 처리 속도.
Steve Amerige

@SteveAmerige 얼마나 많은 디스크 공간이 필요합니까? 하나의 RAID 그룹에서 24 개의 디스크를 사용할 수 없으므로 환경에 대한 추가 디자인 고려 사항이 있습니다. 이 시스템의 기능, 관련된 데이터 유형 및 실제 성능 요구 사항을 알려주십시오.
ewwhite

1
@SteveAmerige 더 자세한 정보! RAID 5는 스타터가 아닙니다. 2014 년에는 사용해서는 안됩니다. 어떤 유형의 데이터입니까? 가상화 기술은 무엇입니까? KVM? VMware? 여기의 디자인은 특히 많은 양의 하드웨어에 투자하기 전에 약간의 개선이 필요하다고 생각합니다. VM 당 데이터의 "작업 집합"크기가 얼마인지 알고 있습니까? 해당 값을 알고있는 경우이를 캐시하고 최적화 할 수 있습니다. 계층화 된 스토리지. SSD. 워크로드가 읽기 바이어스입니까 아니면 쓰기 바이어스입니까?
ewwhite

1
RAID 5 would give us some data safety at the expense of effectively 1 hard drive per group, right? 아뇨. 이러한 크기의 드라이브와 그룹에있는 많은 디스크를 사용하면 RAID 5는 0의 데이터 안전성을 효과적으로 제공합니다. 디스크를 두 개의 12 디스크 RAID 0 어레이에 넣을 수도 있습니다.
HopelessN00b

1
결국 24 개의 물리적 드라이브를 다음과 같이 구성했습니다. 디스크 그룹 0, RAID 10 (4 개의 드라이브) : VD 0 : BOOT 100GB; VD 1 : 루트 2134.5GB. 디스크 그룹 1, RAID 0 (10 개 드라이브) : VD 2 : DATA1, 11172.5GB. 디스크 그룹 2, RAID 0 (10 개 드라이브) : VD 3 : DATA2, 11172.5GB. 별도의 VD 0 BOOT 및 VD 1 ROOT 가상 디스크가 필요하지 않았을 수도 있습니다. 부팅 디스크가 표준 (UEFI 이외의) 부팅을 수행 할 수 있도록하기 위해 수행했습니다. VVM 0과 ​​VD 1을 독점적으로 사용하도록 LVM을 나중에 사용했습니다. VD 2와 VD 3을 사용한 / data. 모든 의견에 감사드립니다.
Steve Amerige

5

24 개의 1TB 디스크에서 단일 RAID 5 어레이를 사용하지 마십시오! 나는 당신이 대답을 제한하기를 선호하는 것을별로 신경 쓰지 않습니다. 나쁜 생각이므로 다른 옵션을 봐야합니다.

디스크 고장 가능성은 각 디스크마다 올라갑니다. 재 구축하는 데 걸리는 시간도 마찬가지입니다. 드라이브에 장애가 발생하여 교체하면 가능한 한 모든 디스크에서 IO를 많이 사용하여 새 드라이브에 대한 데이터를 작성합니다. 이 과정에서 남은 양호한 디스크 23 개 중 하나가 실패하여 백업에서 서버를 복원해야 할 가능성이 큽니다. 당신이 걱정하지 않는다고 말하지만 ... 한 달에 한 번 그 일을 기꺼이 받아들이겠습니까? 일주일에 한 번? 디스크가 노화함에 따라 매우 나빠질 수 있습니다.

또한 성능을 원한다면 RAID5가 잘못된 방향으로 나아가고 있습니다. 대부분의 경우 RAID5는 모든 쓰기에 대한 패리티를 계산 한 다음 드라이브에도 기록해야하므로 다른 옵션보다 성능이 떨어집니다. RAID5는 성능을 위해 설계되지 않았습니다.

데이터에 관심이 없다면 RAID 0을 사용하십시오. 그럼에도 불구하고 거대한 24 디스크 RAID 0이 아닌 몇 개의 개별 어레이를 만드십시오.

성능과 무결성을 원하면 RAID10을 사용하십시오. 디스크 공간이 다소 떨어지지 만 성능이 크게 향상됩니다.

또는 처음부터 디스크의 방대한 양의 데이터를 처리하도록 설계된 ZFS와 같은 것을 볼 수 있습니다.


1
참고로, 저는 부서의 서버를 부업으로 관리하는 소프트웨어 개발자입니다. 그것은 내 지식에 많은 차이가 있음을 의미합니다. 그러나 나는 이것을 몇 년 동안 합리적으로 성공적으로 해왔습니다. 이 서버를 처음 구축하는 것은 여러분의 의견에 매우 감사합니다. RAID 5 제한 사항에 대한 의견을 보내 주셔서 감사합니다. 우리가 원하는 것은 성능과 사용 가능한 총 디스크 공간이지만 데이터 안전성을 보장하는 RAID 구성을 고려할 것입니다 (최종 우선 순위).
Steve Amerige

1

귀하의 옵션 :

  • RAID 0 : 모든 디스크를 중복없이 단일 장치로 만듭니다. 이것은 읽기 및 쓰기 성능이 가장 높고 옵션 중 가장 유용한 공간이 있지만 단일 디스크가 손실되면 모든 데이터가 손실됩니다.

  • RAID 1 + 0 : 모든 디스크가 두 개의 디스크에 존재하는 모든 디스크를 단일 장치로 만듭니다. 읽기 속도는 RAID 0과 거의 같으며 쓰기 속도가 절반으로 줄어 듭니다 (각 데이터 조각을 두 번 써야하기 때문에), 절반의 공간 만 사용할 수 있습니다. 단일 디스크의 손실은 데이터 가용성에 영향을 미치지 않으며 읽기 / 쓰기 속도에 미치는 영향을 최소화합니다.

  • RAID 5 : 하나의 디스크에 패리티 값을 가진 모든 디스크를 단일 장치로 만듭니다. 읽기 속도가 RAID 0보다 약간 낮고 쓰기 속도가 훨씬 느리며 단일 비 RAID 디스크의 쓰기 속도보다 느릴 수 있습니다 (각 쓰기에는 두 개 이상의 디스크에서 읽기-수정-쓰기주기가 필요함). 패리티 정보를위한 하나의 디스크 공간이 손실됩니다. 단일 디스크가 손실되면 읽기 속도가 크게 저하 될 수 있지만 (저장된 데이터를 재구성 하면 다른 모든 디스크 에서 데이터를 읽어야 함 ) 데이터 가용성에 영향을 미치지 않습니다.

  • RAID 6 : 패리티 계산 외에 더 멋진 체크섬을 저장하고 데이터 손실없이 두 디스크의 손실을 처리 할 수 ​​있다는 점을 제외하면 RAID 5의 모든 장점과 단점이 있습니다.

데이터 안전성이 실제로 관련이없는 경우 (원본 소스에서 데이터를 복원하는 데 소요 된 시간, 며칠이 소요될 수있는 시간, 중단 된 계산을 다시 수행하는 데 시간이 걸리는 시간 포함) RAID 0을 권장합니다. 그렇지 않은 경우 거의 워크로드가있는 경우 독점적으로 읽고 일부 안정성을 원한다면 RAID 6을 권장합니다 (하지만 실패한 디스크에서 복구 할 때 성능이 저하 될 수 있습니다). 읽기 / 쓰기 작업이있는 경우 RAID 1 + 0을 권장합니다.

워크로드의 정확한 특성에 따라 (예 : 주어진 작업이 디스크 공간의 잘 정의 된 서브 세트에 액세스하는 경우) 하나의 장애가 다른 하나에 영향을 미치지 않도록 여러 개의 독립적 인 RAID 어레이를 설정할 수 있습니다. .

RAID 5는 상황에 이점이 없습니다. RAID 0에 비해 성능이 떨어지고 (특히 쓰기의 경우) 디스크 수가 많으면 복구 중에 두 번째 디스크에 오류가 발생하여 데이터 안전성이 향상되지 않습니다.


1

한 가지 분명한 질문은 스트라이프 크기입니다. RAID가 항상 전체 데이터 스트라이프를 최소 I / O 청크로 읽거나 쓰지 않는 한 스트라이프 크기가 ​​클수록 좋습니다.

왜? 작은 스트라이프 크기는 여러 개의 디스크를 긴 I / O에 포함 시키므로 하나의 논리적 I / O로 여러 디스크를로드 할 가능성이 줄어 듭니다. 큰 스트라이프는 하나의 디스크 (또는 몇 개)가 I / O에 관여 할 가능성이 더 높다는 것을 의미합니다. 이는 여러 디스크에 비해 성능이 향상되지 않는 것처럼 보일 수 있지만 거의 임의의로드가 증가하면로드가 모든 디스크에 다소 골고루 퍼질 것입니다.

이 뒤에 더 많은 이론은 여기에서 찾을 수 있습니다 : http://www.vinumvm.org/vinum/Performance-issues.html

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