반응형

안녕하세요.


이번 포스팅에서는 RAID 구현 방법에 대해 얘기해 보겠습니다.


RAID 구현 방법 이라고 표현하긴 했지만, 이 표현이 맞는 표현인지는 잘 모르겠습니다.



이전 포스팅에서 다루었던 RAID Level이 RAID의 논리적 구성 방법이었다면,


이번 포스팅에서는 물리적으로 구성 방법에 대해서 알아보겠습니다.


RAID 구현 방법으로는 하드웨어 RAID, 소프트웨어 RAID, 그리고 펌웨어 RAID 방식이 있습니다.


각각에 대해 자세히 알아보겠습니다.



1. 하드웨어 RAID


하드웨어 RAID는 별도의 RAID 카드를 이용해 RAID를 구성합니다.


RAID 카드에는 RAID를 관리하는 RAID 컨트롤러 칩셋과 방열판, 캐시로 사용하기 위한 메모리가 달려있고,


디스크를 연결하기 위한 인터페이스 (주로 SAS나 mini-SAS)가 달려있습니다.


전원 장애 시 캐시의 내용을 (짧은 시간이나마) 유지하기 위해 배터리 (BBU : Battery Backup Unit)가 달려 있기도 합니다.


RAID 카드는 (거의 대부분) PCI-E 슬롯에 꽂아서 사용 하며,


OS 부팅 이전 단계에서 RAID 카드의 설정 페이지로 진입하여 RAID를 관리하게 됩니다.


RAID 구성 후 부팅을 하게 되면 OS에서는 구성이 완료 된 RAID 볼륨만 보여지게 됩니다.


즉, RAID를 구성하고 있는 단일 디스크의 정보는 RAID 카드를 통해서만 알 수 있습니다.


대표적인 RAID 카드(컨트롤러 칩셋) 제조 회사로는 LSI, Adaptec (아답텍), 3-ware 등이 있습니다.


(Dell 이나 HP에서도 카드가 나오지만, 위 회사의 OEM으로 알고있습니다.)


하드웨어 RAID는 카드에 달려있는 별도의 컨트롤러 칩셋이 RAID를 관리하기 때문에


다른 RAID 방식에 비해 성능이 월등히 높습니다.


특히 별도의 패리티 연산이 필요한 RAID 5나 RAID 6에서 상대적으로 (매우) 높은 성능을 보여줍니다.


RAID를 구성 할 수 있는 최대 디스크 개수도 월등히 높습니다.


그리고 하드웨어 RAID는 RAID 카드와 연결되어있는 디스크를 그대로 제거하여 다른 PC나 서버로 이동시키면 기존 운영하던 RAID 볼륨을 (거의 100%) 그대로 유지 할 수 있습니다.


하드웨어 RAID의 단점이라면 구축 비용이 많이 들고, (RAID 카드 가격만 최소 100만원 이기 때문에...)


RAID를 구성하는 단일 디스크의 분석을 거의 할 수 없습니다.



2. 소프트웨어 RAID


소프트웨어 RAID는 말 그대로 RAID 소프트웨어 (프로그램) 을 이용하여 RAID를 구성하는 방식 입니다.


즉, OS 부팅 이후 관련 프로그램을 실행하여 RAID를 구축하게 됩니다.


소프트웨어 RAID는 OS가 인식 하고 있는 블록 디바이스를 사용해서 구축하게 됩니다.


RAID 구성을 위한 디스크는 미리 연결해두고 부팅을 하면 됩니다.


따라서 하드웨어 RAID와는 다르게 RAID를 구성하는 단일 디스크에 대한 분석을 할 수 있습니다.


하지만 소프트웨어 RAID는 말 그대로 OS 위에서 동작하는 프로그램이 관리하기 때문에


상대적으로 속도가 매우 느립니다.


별도의 패리티 연산이 필요한 RAID 5나 RAID 6의 경우 상당히 차이가 많이 납니다.


그리고 다른 프로그램들과 리소스 (CPU, 메모리 등)을 같이 사용 하기 때문에 전체적인 시스템의 성능이 떨어 질 수도 있습니다.


그리고 OS를 변경하게 되면 기존 RAID 볼륨의 유지가 (거의) 불가능 합니다.


윈도우 환경에서는 '디스크 구성'을 통해서 소프트웨어 RAID 구성이 가능하고,


리눅스 환경에서는 대표적으로 mdadm을 사용합니다.


(mdadm에 대한 설명은 추 후 포스팅을 통해 하도록 하겠습니다.)


리눅스 환경에서 사용하는 소프트웨어 RAID 프로그램들은 오픈소스가 많아 RAID 알고리즘을 분석하거나 수정하여 테스트 할 때 사용이 가능합니다. (다른 종류의 RAID는 동작 알고리즘에 대한 연구가 상당히 어렵습니다.)



3. 펌웨어 RAID


드라이버 RAID, On-board RAID, 임베디드 RAID 등으로 불리기도 합니다.


하드웨어 RAID 처럼 별도의 카드를 사용하지 않고,


메인보드에 있는 RAID 컨트롤러 칩셋을 사용해 RAID를 구성하고 관리하게 됩니다.


바이오스에서 설정 가능한 RAID가 여기에 해당 됩니다. (이 경우 인텔의 RAID 칩셋을 사용합니다.)


서버 환경에서는 보드에 LSI의 칩셋이 달려있는 경우도 본 적이 있습니다.


펌웨어 RAID는 OS 부팅 이전 RAID를 구성하기 때문에 OS 변경에는 영향을 끼치지 않습니다.


다만 메인보드를 교체 할 경우엔 RAID 볼륨 유지가 (거의) 어렵습니다.


하드웨어 RAID에 비해서는 상대적으로 성능이 느리나 가격이 저렴하고,


소프트웨어 RAID에 비해서는 상대적으로 성능이 빠르나 가격이 조금 더 비쌀 수는 있습니다. (최근엔 대부분의 PC의 메인보드에서 인텔 RAID를 제공하기 때문에, 가격은 서버 환경에서 별도의 RAID 칩셋을 사용할 때에만 해당됩니다.)



세 종류의 RAID 구현 방법에 대해 알아봤습니다.


개인적인 생각으로는


성능과 안정성을 둘 다 잡아야 되서 RAID 5나 RAID 6를 사용해야 하는 환경에서는 하드웨어 RAID의 사용이 거의 필수로 생각되고,


개인 환경에서는 펌웨어 RAID를 사용하시면 될 것 같습니다.

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1501)
Profile (2)
Park's Life (599)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (245)
생활 정보 (12)
Pokemon GO (50)