간단히 말해서 , 캐시가없는 로우 엔드 RAID 카드를 사용하는 경우 자신에게 유리한 태도를 취하고 소프트웨어 RAID로 전환하십시오. BBU 또는 NVRAM이있는 미드 투 하이 엔드 카드를 사용하는 경우 하드웨어가 좋은 선택 인 경우가 많습니다 (항상 그런 것은 아닙니다! 참조).
긴 대답 : 컴퓨팅 성능이 제한되었을 때, 하드웨어 RAID 카드는 RAID 체계 (RAID 3/4/5, RAID6, ecc)에 대한 패리티 / 증후 계산을 오프로드하는 데 큰 이점이있었습니다.
그러나 CPU 성능이 계속 향상됨에 따라 이러한 이점은 기본적으로 사라졌습니다. 노트북의 고대 CPU (Core i5 M 520, Westmere 세대)조차도 4GB / s 이상의 XOR 성능과 3GB / s 이상의 RAID-6 증후군 성능을 갖 습니다. 단일 실행 코어 .
오늘날 하드웨어 RAID가 유지하는 이점은 BBU 또는 NVRAM 형식의 전원 손실 보호 DRAM 캐시가 있다는 것입니다. 이 보호 된 캐시는 임의 쓰기 액세스 (및 히트에 대한 읽기)에 대한 대기 시간이 매우 낮으며 기본적으로 임의 쓰기를 순차적 쓰기로 변환합니다. 이러한 캐시가없는 RAID 컨트롤러는 거의 쓸모가 없습니다 . 또한 일부 저급 RAID 컨트롤러는 캐시없이 제공 될뿐만 아니라 디스크의 전용 DRAM 캐시를 강제로 비활성화하여 RAID 카드가없는 것보다 성능이 느려집니다. DELL의 PERC H200 및 H300 카드를 예로들 수 있습니다. 최신 펌웨어로 변경되지 않은 경우 디스크의 개인 캐시를 완전히 비활성화합니다 (디스크가 RAID 컨트롤러에 연결된 동안 다시 활성화 할 수 없음). 호의를 베푸십시오절대 그런 컨트롤러를 사지 마십시오 . 고급 컨트롤러조차도 디스크의 개인 캐시를 비활성화하는 경우가 많지만, 적어도 자체 보호 캐시가있어 HDD (SSD가 아닌!) 개인 캐시가 약간 중복됩니다.
그러나 이것은 끝이 아닙니다. 유능한 컨트롤러 (BBU 또는 NVRAM 캐시가있는 컨트롤러)조차도 SSD와 함께 사용할 때 일관성없는 결과를 제공 할 수 있습니다. 기본적으로 SSD 는 효율적인 FLASH 페이지 프로그래밍 / 삭제를 위해 빠른 개인 캐시 가 필요 하기 때문 입니다. 일부 (대부분의) 컨트롤러를 사용하면 디스크의 개인 캐시를 다시 활성화 할 수 있지만 (예 : PERC H700 / 710 / 710P는 사용자가 다시 활성화 할 수 있음), 개인 캐시가 쓰기 방지되어 있지 않으면 데이터가 손실 될 위험이 있습니다. 전력 손실. 정확한 동작은 실제로 컨트롤러와 펌웨어에 따라 다릅니다 (예 : 256MB WB 캐시 및 활성화 된 디스크 캐시가있는 DELL S6 / i 의 경우 여러 번 계획된 전력 손실 테스트 중에 손실 이 없었 습니다). 불확실성과 많은 우려가 있습니다.
반면에 오픈 소스 소프트웨어 RAID는 훨씬 더 제어 가능한 짐승입니다. 소프트웨어는 독점 펌웨어에 포함되어 있지 않으며 메타 데이터 패턴과 동작이 잘 정의되어 있습니다. 소프트웨어 RAID는 디스크의 전용 DRAM 캐시가 보호되지 않는다고 가정하지만 올바른 성능에 중요합니다. 따라서 일반적으로 디스크를 비활성화하지 않고 ATA FLUSH / FUA 명령을 사용하여 중요합니다. 안정적인 스토리지에 데이터를 제공합니다. 칩셋 SB에 연결된 SATA 포트에서 종종 실행되므로 대역폭이 매우 우수하고 드라이버 지원이 우수합니다.
그러나 기계적 HDD와 함께 사용하면 WB 캐시가있는 하드웨어 RAID 컨트롤러와 비교하여 동기화 된 임의 쓰기 액세스 패턴 (예 : 데이터베이스, 가상 머신)이 크게 어려움을 겪게됩니다. 반면, 엔터프라이즈 SSD (예 : powerloss 보호 쓰기 캐시)와 함께 사용하면 소프트웨어 RAID가 하드웨어 RAID 카드로 달성 할 수있는 것보다 훨씬 뛰어난 결과를 제공합니다. 즉, 읽기 및 비동기 쓰기에 능숙하지만 소비자 쓰기 SSD (읽기 : 보호되지 않은 쓰기 저장 캐시 사용)는 동기화 된 쓰기 워크로드에서 매우 낮은 IOPS를 제공한다는 것을 기억해야합니다.
또한 소프트웨어 RAID가 모두 같은 것은 아닙니다. Windows 소프트웨어 RAID는 평판이 나쁘고 성능면에서 우수하며 스토리지 공간도 그렇게 다르지 않습니다. Linux MD Raid는 매우 빠르고 다재다능하지만 Linux I / O 스택은 최대 성능을 추출하기 위해 신중하게 이해해야하는 여러 개의 독립적 인 조각으로 구성됩니다. ZRAID (ZFS 패리티 RAID)는 매우 고급이지만 올바르게 구성되지 않으면 IOP가 매우 떨어질 수 있습니다 . 반면에 미러링 + 스트라이핑은 성능이 뛰어납니다. 어쨌든 동기식 쓰기 처리 (ZIL)를위한 빠른 SLOG 장치가 필요합니다.
결론 :
- 워크로드가 무작위 쓰기 감지로 동기화되지 않은 경우 RAID 카드가 필요하지 않습니다
- RAID 카드가 필요한 경우 WB 캐시가없는 RAID 컨트롤러를 구입 하지 마십시오
- SSD 소프트웨어를 사용하려는 경우 RAID가 선호되지만 동기화 된 랜덤 쓰기가 높은 경우 powerloss로 보호되는 SSD (예 : Intel S4600, Samsung PM / SM863 등)가 필요합니다. 순수한 성능을 위해 최선의 선택은 아마도 Linux MD Raid이지만, 현재는 일반적으로 스트라이프 ZFS 미러를 사용합니다. 미러로 인해 공간의 절반을 잃을 여유가없고 ZFS 고급 기능이 필요한 경우 ZRAID를 사용하지만 VDEV 설정에 대해 신중하게 생각하십시오.
- SSD를 사용하는 경우에도 실제로 하드웨어 RAID 카드가 필요한 경우 쓰기 방지 캐시가있는 SSD를 사용하십시오 (Micron M500 / 550 / 600은 부분적으로 보호 할 수는 있지만 아무것도 아닌 것보다 낫습니다). Intel DC 및 S 시리즈는 전체 전력 손실이 있습니다 기업 삼성 SSD에 대해서도 마찬가지입니다.)
- RAID6이 필요하고 일반 기계식 HDD를 사용하는 경우 512MB 이상의 WB 캐시가있는 빠른 RAID 카드를 구입하는 것이 좋습니다. RAID6은 쓰기 성능이 높고, 적절한 크기의 WB 캐시는 최소한 작은 동기 쓰기 (예 : 파일 시스템 저널)를위한 빠른 중간 스토리지를 제공 할 수 있습니다.
- HDD가있는 RAID6이 필요하지만 하드웨어 RAID 카드를 구매할 수 없거나 원하지 않는 경우 소프트웨어 RAID 설정에 대해 신중하게 생각하십시오. 예를 들어 Linux MD Raid에서 가능한 솔루션은 저널 쓰기 / DB 로그를위한 작은 RAID10 어레이와 원시 스토리지를위한 RAID6 어레이 (파일 서버)의 두 가지 어레이를 사용하는 것입니다. 반면 SSD가 포함 된 소프트웨어 RAID5 / 6은 매우 빠르므로 모든 SSD 설정에 RAID 카드가 필요하지 않을 수 있습니다.