나스에 RAID를 구성할 때 전용 레이드 카드를 이용하는 HW RAID와 SW RAID 사이에서 고민이 되어서 서로 비교 정리해 보았다.
HW RAID
장점
BBU와 NV-CACHE가 있으면 갑작스러운 정전에서 데이터 손실에 면역이 될 수 있다.
패리티 연산을 레이드 카드의 프로세서가 담당하므로 CPU에 부담을 주지 않는다.
GUI나 WEB기반의 관리 프로그램이 제공된다.
단점
BBU나 NV-CACHE가 없는 경우 레이드 카드 캐시 메모리에 저장된 데이터는 손실된다.
통상적으로 8 포트까지 제공된다. 16 포트도 있으나 구하기 어렵다.
BBU와 NV-CACHE모듈을 구하기 어렵다.
레이드 카드 고장 시에는 동일한 회사의 대체품이 필요하다.
SW RAID(MDADM)
장점
HBA카드 고장 시에 회사에 관계없이 HBA카드만 교체해주면 된다.
레이드 셋을 구성하는 디스크 카운트에 제한이 없다(그러나 통상적으로 8개 정도를 추천한다)
SW이므로 수시로 업데이트가 가능하기에 HW 방식에 비해 가용성이 좋다.
정전 시 데이터 손실의 위험에서 BBU없는 HW RAID 보다 안전하다.
Resync 속도가 빠르다.
단점
패리티 계산에 CPU 파워가 필요하나 현대의 CPU에는 거의 부담이 없다.
mdadm 커맨드를 다룰 줄 알아야 한다.
정리해보자면 HW RAID는 BBU가 있다면 정전 시에 수십 분, NV-CACHE까지 있다면 수개월에 걸쳐서 데이터를 보호할 수 있어서 데이터 손실의 위험성을 최소화할 수 있는 장점이 있다.
그러나 홈서버에 사용하는 레이드 카드는 대부분 교체되는 노후 서버에서 적출한 중고 레이드 카드를 사용하게 되는데 이런 경우 소모품인 BBU, NV-CACHE 없이 판매되는 경우가 많다. BBU 없는 HW RAID 카드는 데이터 손실 가능성 측면에서 SW RAID에 비해 좋은 점은 없다. 전용 UI를 제공받을 있고 CPU 파워를 아낄 수 있다는 정도의 장점이 있을 뿐이다.
게다가 정전에 대한 대비는 10만 원 내외의 UPS만으로도 서버 정상 종료를 위한 시간을 충분히 확보할 수 있다.
반면에 SW RAID의 장점은 프로그램을 다룰 줄 안다면 튜닝을 통해서 하드웨어 레이드보다 압도적인 성능을 만들어 낼 수 있다. 아무래도 레이드 카드에 달려 있는 CPU보다는 PC의 CPU 성능이 압도적이기 때문이다.
SW RAID는 정전시 데이터 손실에서 BBU 없는 HW RAID 방식보다 안전하다.
ZFS는 CoW구조여서 근본적으로 데이터 손실에서 자유로운 장점이 있고, MDRAID도 bitmap으로 데이터 손실의 위험성을 줄여주는 내부 로직을 갖추고 있다.
그리고 레이드 카드 고장 시에도 동일회사의 제품을 찾아야 하는 수고로움에서 벗어나서 HBA카드 고장에 더 유연하게 대처할 수 있다.
또한, 잠시 하드를 분리했다 다시 연결해서 resync 해야 하는 경우에 HW RAID는 디스크 전체를 리빌딩하는 만큼의 시간이 걸리지만 ZFS와 bimap이 켜진 MDRAID는 필요한 부분만 resync가 진행되므로 순식간에 완료되는 장점도 있다.
SW RAID는 포트의 제한도 없다. 16개의 포트를 지원하는 HW RAID 카드도 있지만 구하기 어렵다. 반면에 SW RAID는 10개든 20개든 포트만 확보되어 있으면 제한이 없다. 물론 RAID-6라 하더라도 10개 이상의 어레이 구성은 추천하지 않는다.
이상의 이유로 SW RAID가 더 적합하다고 결론을 내렸다.