홈서버에 필요한 하드웨어 개론 – 레이드 편에서 레이드의 레벨과 특성에 대해 간략하게 이야기해봤는데요.
이번엔 디스크를 묶어 레이드를 구성하고 데이터를 총괄하는 레이드 컨트롤러에 대해 이야기 해볼까 합니다.
홈서버의 레벨에 맞는 수준으로 설명되어 있으며 좀더 자세한 내용을 알고 싶으시면 검색을 통해 정보를 얻을수 있습니다.
목차
레이드 컨트롤러의 특성
아답텍의 8시리즈 제품군
레이드 컨트롤러는 저장되는 데이터의 입출력을 담당하는 카드 형태의 장치이며 메인보드의 PCI-Express (이하 PCIe)에 장착됩니다.
성능에 따라 PCIe 배속이 차이가 나며 이 PCIe 레인으로 레이드 컨트롤러(다른 장치도 마찬가지지만)의 성능을 가늠할수 있습니다. 고급형 컨트롤러일 경우 PCIe x8 gen.3 를 지원합니다.
레이드 컨트롤러 또한 작은 컴퓨터의 형태를 띄고 있어(small computer system interface : SCSI 에 기반한 직렬 연결 – SAS) 연산을 위한 ROC(Raid-On-Chip) 와 데이터의 임시 저장을 위한 캐시 메모리(RAM) 구조로 되어 있고 여기에 캐시 메모리의 안정성을 위한 BBU (Battery Backup Unit) 가 옵션으로 구성되고 있습니다.
레이드 컨트롤러 선택시 고려해야 할 사항
첫번째. 최초 부팅시 레이드 컨트롤러의 설정과 정보를 메인보드의 옵션롬(Option ROM) 에 올려놓기 때문에 일반 PC에 연결시 옵션롬이 충분한지의 여부를 우선적으로 검토해야 합니다.
메이저 브랜드인 아답텍과 LSI를 예로들면 대체로 아답텍(Adaptec) 사의 레이드 컨트롤러는 일반 PC에도 잘 붙는 편이며 LSI의 레이드 컨트롤러는 대체로 큰 옵션롬을 요구합니다.
메인보드 같은 경우 서버용 메인보드들은 큰 옵션롬을 가지고 있어 (당연히) 문제가 되지 않지만 PC용 메인보드 같은 경우 기가바이트(Gigabyte), MSI, 애즈락(Asrock) 의 메인보드들이 비교적 레이드 컨트롤러가 잘 붙는 편입니다.
두번째. 브랜드 제품군(이하 벤더) 을 사용하는 경우 벤더사의 파츠에 맞게 사용해야 호환에 대한 걱정이 없습니다.
벤더사는 자사의 부품을 사용하도록 권장하고 타사의 부품에 대한 배려따위는 없기 때문에 호환에 대한 부분을 사용자가 직접 확인해야 하는 어려움이 있습니다. IBM같은 경우는 하드디스크까지도 호환이 안되게끔 하는 디테일을 보여주기도 하죠. HP와 델(Dell)은 리테일 하드디스크 사용에 무리가 없습니다만 호환을 보장하지는 않습니다.
반대로 리테일 메인보드에 벤더 레이드 컨트롤러를 사용한다면 호환이 안되는 경우가 있으니 사전에 잘 알아보거나 리테일로 판매되는 레이드 컨트롤러를 구입하는것이 좋습니다. (LSI, 인텔등)
세번째. 두번째와 같은 맥락에서 우리가 사용하는, 혹은 사용할 하드디스크와의 호환성을 먼저 확인합니다.
리테일 레이드 컨트롤러의 경우 하드디스크의 호환표를 제공하고 있어 참고를 하면 되지만 벤더서버에 벤더파츠 레이드 컨트롤러를 사용한다면 두번째의 이유로 호환표를 제공하지 않습니다.
LSI와 그 OEM
현재 엔터프라이즈용 레이드 컨트롤러는 딱 두개의 회사로 양분됩니다. 아답텍(PMC)과 LSI.
PMC같은 경우 HP에 칩셋을 납품해 HP가 레이드 컨트롤러를 자체적으로 제작하며 LSI는 인텔, IBM, 슈퍼마이크로(Supermicro)등에 OEM으로 같은 제품이지만 모델명과 펌웨어를 손봐서 각 회사에 레이드 컨트롤러를 납품하고 있습니다.
그래서 같은 모델인 경우 OEM 제품의 펌웨어를 LSI 펌웨어로 입히면 리테일 제품이 되는 효과를 보게 됩니다. 만일 OEM 제품을 싸게 구할수 있고 펌웨어를 입힐수 있는 약간의 실력만 있으면 OEM 제품을 구하는것도 나쁘지 않은 선택입니다.
이런 이유로 LSI의 OEM제품(벤더)의 호환표를 보고 싶으면 그 OEM제품과 같은 LSI의 리테일 제품의 정보를 참고하면 됩니다.
그 이외의 제조사들
아레카(Areca), 하이포인트(Highpoint), 프로미스(Promise) 정도의 제조사가 있으며 PMC나 LSI와 다른 점은 시스템의 지향점입니다.
PMC, LSI는 엔터프라이즈 솔루션을 제공하며 SAS를 기반으로 하는 반면, 아레카, 하이포인트, 프로미스는 하이엔드/워크스테이션을 지향하며 주로 SATA를 기반으로한 솔루션이 대부분입니다.
그리고 하드웨어 레이드 컨트롤러도 존재하지만 ROC와 캐시 메모리가 없는 형태 (컨트롤러의 bios에 연산 소프트웨어로 구현, 필요한 리소스는 CPU에 의존 – Hardware-Assisted Software RAID) 또한 존재하고 성능이 메인보드 내장 레이드와 별반 다를것이 없기 때문에 잘 알아 보고 구매해야 합니다.
메인보드의 레이드는?
메인보드의 사우스브릿지(Southbridge) 에서 제공하는 통칭 ‘내장 레이드’는 메인스트림급의 메인보드에서 지원하고 있으며 인텔 같은 경우 SSD 레이드를 사용시 트림을 지원하는 기능을 갖추고 있습니다.
대부분 RAID 0,1,10 을 지원하고 있으며 RAID 5도 지원하는 경우가 있으나 앞서 얘기했던 것처럼 XOR연산을 하는 레이드 레벨은 형편없는 수준의 성능이기 때문에 사용하지 않는 것이 좋습니다.
서버 제품군으로는 사우스브릿지를 통한 내장 레이드와는 별개로 메인보드에 따로 ROC를 심고 별도의 SAS/SATA 포트를 구비하여 레이드 컨트롤러를 메인보드에 합친 형태의 구성도 존재합니다.
보통 캐시 메모리는 구성에서 제외되어 RAID 0,1,10 이 구현되며 ROC가 있는 만큼 동일 레벨의 레이드에서는 레이드 컨트롤러와 비등한 성능을 보여주는 것이 특징입니다.
하드웨어 레이드와 소프트웨어 레이드
하드웨어 레이드는 앞서 얘기했던것과 같이 ROC를 기반으로한 컨트롤러로 구성한 레이드이고 소프트웨어 레이드는 운영체제(OS) 레벨에서 구현한 레이드 입니다.
‘레이드에 필요한 연산 자체가 소프트웨어 구성 아니냐’ 라고 반문한다면 그 또한 맞는 얘기지만 보편적으로 레이드 컨트롤러 자체만으로 데이터를 처리하느냐(하드웨어 레이드), 다른 하드웨어 리소스를 빌려 데이터를 처리하느냐(소프트웨어 레이드)에 따라 정의가 나뉘게 됩니다.
그렇다면 소프트웨어 레이드는 그냥 맛보기 학습용인가요? 아닙니다. 소프트웨어 레이드는 구성 비용이 낮은 장점이 있으며 패리티 연산을 필요로 하지 않는 레이드 레벨 (RAID 0,1,10) 에서는 괜찮은 수준의 퍼포먼스를 보여줍니다. 하지만 결국엔 CPU의 도움을 받아 데이터를 처리하기 때문에 CPU의 리소스를 소량 점유하는 것이 단점이죠.
편의성으로는 레이드 컨트롤러를 통한 레이드를 구성시 레이드 컨트롤러와 디스크를 다른 시스템으로 옮긴다면 큰 문제 없이 이동이 가능하지만 소프트웨어 레이드는 해당 OS를 꼭 사용해야 하는 점이 특징이며, 그 중간 형태인 Hardware-Assisted Software RAID 같은 경우는 레이드 컨트롤러와 같은 편의성을 가지긴 하지만 드라이버를 설치해줘야 올바르게 인식한다는 불편함이 있습니다.
레이드의 안정성 비교
레이드에서 안정성을 논하기 전에 두가지를 짚고 넘어가야 합니다.
첫번째. 레이드 컨트롤러를 사용하는 환경은 쾌적한가. 레이드 컨트롤러의 ROC는 상당한 발열이 생깁니다. 일반적인 PC에서 쿨러 없이 사용할 경우 3초 이상 손가락을 대고 있기 힘들정도의 온도를 보여주기 때문에 제조사에서 권장하는 안정적으로 사용할수 있는 온도인 55°C를 넘지 않아야 합니다.
두번째. 하드디스크는 진동과 열에 취약하기 때문에 케이스를 손이나 발에 잘 닿지 않는 공간에 케이스(본체)를 배치해야 합니다.
사실 이건 간과할수 있는 부분인데 개인적인 경험으로 어설픈 선반에 서버 두대를 올려놨다가 두달 사이에 디스크가 3개나 깨져버려 교체한 사례가 있습니다. 튼튼한 중량랙 선반으로 본체를 옮긴 후 부터는 안정적으로 사용하고 있는데요.
홈서버의 특성상 책상 근처에 본체를 놓게 되는데 PC처럼 본체를 책상 하단에 두고 발받침으로 사용한다던가 하는 것은 홈서버를 사용하게 되면 버려야 할 습관중 하나입니다. 그리고 원활한 쿨링은 말할것도 없구요.
위 두가지 위험 요소를 배제한다면 필자의 개인적인 의견으로는 하드웨어 레이드와 소프트웨어 레이드의 안정성은 같다고 생각하고 레이드 컨트롤러나 구성보다는 디스크의 생존률에 따라 안정성에 차이가 난다고 얘기하고 싶습니다.
레이드 컨트롤러의 경우 우리가 흔하게 접할수 있는 부품은 아닌만큼 사전조사가 많이 필요한 분야이기도 하고 데이터를 취급하는 만큼 신중함이 요구되므로 도입 전 충분한 테스트와 시뮬레이션을 통해 장애에 대처할수 있어야 하겠습니다.
3 댓글. Leave new
홈서버 구축중인데 큰 도움이 되었습니다. 레이드.컨트롤러를 달까 말꺼 고민중에 레이드 0,1,10 는 소프트웨어 레이드로 구성해도 크게 성능이 떨어지지 않을거란 확신이 들었는데 핫스왑에 관해 의문이 듭니다. 하드웨어 레이드라면 오토 리빌드라던지 컨트롤러 관리화면에서 핫스왑하고 리빌드하면되는데 소프트웨어 레이드도 핫스왑하고 그냥 리눅스 os상에서 리빌드 진행하면 될까요?
네 똑같습니다.
리눅스에서 소프트웨어로 레이드를 구현하는 경우 VM으로 우선 테스트 해보시면 될 것 같습니다.
친절한 답변 감사합니다!!