BLOG main image
분류 전체보기 (781)
LENOVO (19)
HP (3)
DELL (7)
IBM (32)
My Retain Tip (697)
자료실 (0)
Firmware (5)
기타서버관련소식 (5)
IBM Server Picture (3)
STUDY (2)
설정세팅 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2011. 4. 26. 16:17
Notice!!
IBM
본 블로그의 모든내용은 ibm.com에 있는 내용이며 본 블로그의 내용은 증빙내용으로는 활용 불가능합니다
주의! 모든 방문자는 공지를 반드시 읽어본 후 글을 읽으시기 바랍니다.:*필독공지*

딴지 거실분들은 절대 읽지 마시고 100% 정확한 정보가 있는 ibm.com 에서 확인하시기 바랍니다.

이자료는 보드나라의 자료입니다.
2007년 개정신판! RAID를 알자


보드나라에서는 이미 지난 2002년 이석원 전(前) 객원기자가 3부작으로 "RAID를 알자"라는 테크닉 기사를 작성한 바 있는데, 이번에 2007년 개정 신판으로 당시 기사에서 다루지 않는 부분을 좀더 살펴보는 시간을 마련했다.

RAID의 기본 원리와 방식에 대해서는 이미 2002년 기사에서 다룬 내용이지만 예전 기사를 찾아가면서 다시 읽어야 하는 불편을 방지하기 위해 본 기사에서 간단히 정리하여 올릴 것이다. 2002년 기사 원문을 읽어보고 싶은 분들은 아래의 링크를 클릭하시기 바란다.

- RAID를 알자 1부: Raid의 개요 & 원리

- RAID를 알자 2부: HighPoint의 모든 것

- RAID를 알자 3부: Promise PDC20276의 모든 것

 

RAID란 무엇인가?

요즘 웬만한 메인보드를 보면 RAID(레이드)를 지원한다는 내용을 발견하기가 쉽다. RAID는 예전에는 적은 용량을 가진 디스크 여러 대를 연결해 하나의 디스크처럼 만들어 사용하는 것이었지만 이제는 하드 디스크 드라이브가 갖는 성능이나 안정성을 더 향상시키기 위해서 사용된다.

RAID란 단어는 'Redundant Array Of Independent(예전에는 Inexpensive) Disk'의 약자로 굳이 해석하자면 복수배열독립(複數配列獨立) 디스크 정도로 풀이할 수 있다. RAID는 독립적으로 만들어진 2개 이상의 하드 디스크 사이를 병렬로 처리해서 데이터를 입/출력 하는 것이라 컴퓨터에 2개 이상의 하드 디스크 드라이브가 있을 때에 구성 가능하다.

물론 데스크탑용 PC에서 사용되는 3.5인치 하드 디스크가 이제는 단일 제품으로 1TB(테라바이트) 용량까지 출시되었으니 필자처럼 그 동안 용량이 모자랄 때마다 100~200GB 하드 여러 대를 가끔씩 구입해서 사용하는 사람이라면 아직도 RAID의 원래 개념인 '저렴한 하드를 하나로 묶어서 쓰기'로 생각해도 무방하겠다.

 

아무튼 기술 자체가 하드 여러 개를 지지고 볶는 일이다 보니 인터페이스나 동작이 복잡하고 시스템 자원을 많이 필요로 하기 때문에 처음에는 SCSI 인터페이스를 중심으로 하는 서버 시스템에서나 사용되곤 했지만 점차 데스크탑 시스템에서도 IDE와 SATA를 통해 RAID 기능을 지원하더니 이제는 메인보드에 기본으로 포함되기까지 한다.

 

RAID 성능 향상의 원리

RAID는 크게 스트라이핑(Strpping)과 미러링(Mirroring)으로 구분할 수 있는데, 뒤에서 설명할 RAID 규격은 모두 이 스트라이핑과 미러링을 어떤 식으로 구성했느냐에 따라 나눈 것이기 때문에 두가지 방식 차이만 잘 알아두면 RAID에 대해 절반은 알고 시작하는 것이라고 하겠다.

스트라이핑이란 논리적으로 연속된 데이터를 물리적으로 여러 개의 저장 장치에 나눠서 저장하는 방식으로 우리가 생각하는 파일 1개씩이 아니라 데이터 단위로 나뉘므로 우리가 볼 때는 하나의 하드로 나타나지만 실제로는 하나의 하드에 들어갈 내용을 여러 개의 디스크에 저장하므로 개별 하드의 데이터는 독립적으로는 쓸모가 없고 스트라이핑 된 모든 하드가 있어야 완전한 저장장치가 된다.

스트라이핑이 좋은 점은 병렬로 하드 디스크를 묶었을 때 각 하드와 데이터를 주고 받는 속도가 단일 하드에 데이터를 주고 받는 속도보다 빠르다는 것이다. 이로 인해 데이터를 하드 디스크에 쓰거나 읽기 위해서 기다려야 하는 시간에 다른 하드의 데이터를 읽고 쓰는 식으로 액세스 타임을 줄일 수 있으며, 이론상 하드 디스크를 추가할수록 성능은 증가하게 된다.

 

미러링은 말 그대로 거울에 비치는 것처럼 같은 데이터를 복수의 장치에 동일하게 저장하는 방식이다. 이것은 성능과는 관계없는 순수한 데이터 보호를 위한 안정성을 추구하는 방식으로 사용자가 직접 데이터를 백업하는 것이 아니라 데이터 자체를 동일한 형태로 2개 이상의 복수 장치에서 보관하기 때문에 한군데서 데이터가 분실되거나 파손되더라도 보존된 다른 장치에서 같은 데이터를 그대로 복구할 수 있다.

미러링의 경우는 스트라이핑처럼 성능 향상과 관계없고 오히려 복수의 하드에 같은 내용을 저장해야 하므로 성능이 같거나 미세하게 떨어질 수 있고 2개의 하드가 같은 데이터를 기록하게 되니 사용 가능한 용량도 절반으로 줄어든다. 하지만 데이터 복구가 가능하기 때문에 역시 단독 RAID 1 시스템보다는 데이터 유실의 염려가 큰 스트라이핑을 보완하는 식으로 함께 구성된다.

스트라이핑과 미러링을 어떤 식으로 구성하느냐, 그리고 두가지 방식을 보완하기 위해서 어떤 방법을 택하고 있느냐에 따라 RAID의 규격이 바뀌게 되는데... 다음 장에서는 수많은 RAID 규격 가운데 표준 규격으로 사용되는 것들과 비표준 규격이지만 데스크탑 메인보드 제품에서 지원되는 규격들을 살펴보겠다.


2. 기본적인 RAID 규격을 알아보자

RAID의 규격에는 어떤 것들이 있을까?


RAID 표준 규격 및 데스크탑 PC에서 쓰이는 비표준 규격 소개

RAID는 일정한 방식에 따라 여러 개의 디스크를 묶는 것이라 그 묶는 원리와 구성에 따라 다양한 조합으로 만들어질 수 있다. 표준 규격은 RAID 0부터 1, 2, 3, 4, 5, 6 등으로 이어지며 이와 다른 중첩(Nested) RAID와 비표준(Non Standard) RAID 레벨인 0+1, 1.5, 인텔 Matrix RAID 등이 있다. 이번 페이지는 다양한 RAID 가운데 표준 규격과 데스크탑 PC에서 많이 사용되는 나머지 규격을 간단히 설명하도록 하겠다.

 

RAID 0

RAID 0은 일반적으로 2개 이상의 하드를 병렬로 연결해서 데이터를 블록(Block) 단위로 분산해서 읽고 쓰는 방식으로 구성된다. 하나의 데이터를 복수의 하드를 이용해 분산시키기 때문에 하드 1개에 데이터를 저장하고 불러오는 것보다 훨씬 빠른 속도를 가질 수 있게 되며 하드 용량도 모두 쓸 수 있다.

이론상으로는 하드 디스크를 추가할 때마다 계속 성능이 향상되기 때문에 여러 대의 하드를 RAID 0으로 묶으면 하드 자체가 가진 물리적인 성능을 넘어 컨트롤러의 대역폭을 충분히 활용할 수 있는 강력한 드라이브를 구축할 수 있다. 하지만 안정성을 체크하는 기능이 없어 만약 1개의 하드라도 완전히 고장나면 RAID 0으로 구성된 모든 데이터를 전부 날리게 된다.

따라서 서버나 워크 스테이션처럼 RAID가 주로 사용되는 분야에서는 절대 RAID 0만으로는 RAID 시스템을 구축하지 않으며, 미러링이나 패리티 정보 저장 등 다른 방식과 함께 구성해 성능/안정성을 동시에 추구하도록 보완된 RAID 규격을 쓴다. 

PC에서도 보존해야 할 중요한 데이터가 있는 경우 RAID 0 하드에 저장하지 않는다는 것이 상식이지만, 데이터 보존용이 아니라 프로그램 설치/실행 및 캐시 용도로 사용한다면 충분히 좋은 성과를 누릴 수 있다. RAID 0 방식이 위험하긴 하지만 심심하면 깨지는 그런 형편없는 수준은 아니다.

 

RAID 1

RAID 1은 데이터의 안정성을 높이기 위해 동일한 데이터를 1개 이상의 하드에 똑같이 저장하는 방식으로 RAID 0과는 반대되는 개념이라고 할 수 있다. RAID 1로 구성한 하드는 한 쪽이 망가져도 동일한 데이터가 저장된 다른 하드가 살아있다면 데이터를 복구할 수가 있으며, RAID 구성이 풀리더라도 같은 데이터를 가진 2개의 하드 디스크가 존재하게 된다.

RAID 1은 데이터 안정성은 높지만 2개의 하드를 RAID 1로 묶으면 같은 데이터를 2개에 기록해 전체 하드 디스크 용량의 절반만 사용하게 된다. RAID 1은 2개의 하드 디스크를 1조로 묶는 것을 기본으로 하므로 RAID 1로만 시스템을 구현하지 않고 다른 RAID 방식과 합쳐서 구성하게 된다.

 

RAID 2

RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징이다. 하드 디스크에서 ECC 기능을 지원하지 않기 때문에 ECC(Error Correction Code)을 별도의 드라이브에 저장하는 방식으로 처리된다. 

하지만 ECC를 위한 드라이브가 손상될 경우는 문제가 발생할 수 있으며, 패리티 정보를 하나의 하드 드라이브에 저장하는 RAID 4가 나오면서 거의 사용되지 않는 방식이라고 하겠다.

 

RAID 3, RAID 4

RAID 3, RAID 4는 RAID 0, 1의 문제점을 보완하기 위한 방식으로 3, 4로 나뉘긴 하지만 RAID 구성 방식은 거의 같다. RAID 3/4는 기본적으로 RAID 0과 같은 스트라이핑(Striping) 구성을 하고 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있게 해주는데, 여기에 추가로 에러 체크 및 수정을 위해서 패리티(Parity) 정보를 별도의 디스크에 따로 저장하게 된다.

RAID 3는 데이터를 바이트(byte) 단위로 나눠 디스크에 동등하게 분산 기록하며, RAID 4는 데이터를 블럭 단위로 나눠 기록하므로 완벽하게 동일하진 않다. RAID 3는 드라이브 동기화가 필수적이라 많이 사용되지 않고 RAID 4를 더 많이 쓴다고 한다.

RAID 0+1과는 다르게 패리티 정보 기록용 하드 1개만을 제외한 나머지 하드를 모두 스트라이핑으로 묶어 사용하게 되므로 저장 용량에서도 유리하며, 패리티 정보를 별도의 디스크에 저장하므로 스트라이핑 하드 가운데 1개가 고장나도 패리티 정보 디스크를 통해 복구가 가능하다. 하지만 패리티 디스크 쪽도 데이터를 갱신해줘야 하므로 느려질 수 있으며 패리티 디스크가 고장나면 문제가 생길 수 있다. 스트라이핑과 달리 패리티 정보 저장 및 추후 복구를 위해 XOR 연산이 필요하며, 이 때문에 고가의 RAID 컨트롤러는 XOR 연산을 담당하는 프로세서를 따로 장착하고 있다. 

 

RAID 5
 

RAID 5는 RAID 3, 4에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식으로 패리티 정보를 스트라이핑으로 구성된 디스크 내에서 처리하게 만들었다. 물론 패리티 정보는 데이터가 저장된 디스크와는 물리적으로 다른 디스크에 저장되도록 만들어 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터를 복구할 수 있도록 했다. 최소 3개부터 구성이 가능하며 하드 1개 용량만 빠지게 되므로 미러링으로 처리되는 RAID 1보다 저장 공간도 크다. 

패리티 정보가 데이터가 저장된 디스크와는 다른 디스크에 저장되기 때문에 위의 RAID 5 구성에서 만약에 3번 하드(Disk3)가 고장날 경우 A3, C2, D2, 데이터는 다른 하드에 별도로 저장된 패리티 정보를 통해서 복구하고 B 패리티 정보는 나머지 하드에 있는 B1, B2, B3 데이터를 토대로 다시 작성할 수 있다. 그러나 별도로 패리티 정보를 저장하는 작업을 해야 하므로 RAID 1보다 쓰기 성능이 떨어진다.

RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식이기도 하다. 보드나라 서버 역시 3개의 하드로 RAID 5를 구성하고 있다. 

RAID 5 역시 XOR 연산을 필요로 하기 때문에 PCI 방식의 보급형 RAID 컨트롤러 카드나 데스크탑 메인보드의 내장 RAID 컨트롤러에서는 그 동안 거의 지원하지 않았던 규격이기도 하지만, 컴퓨터 성능이 올라간 요즘에는 메인보드 사우스브릿지 칩셋에 RAID 5 기능을 넣는 추세로 가고 있다.

 

RAID 6

RAID 6는 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있게 고안되었다. 이론상 하드 3개부터 만들 수 있지만 이럴 경우는 1개의 하드에 저장될 용량을 2개의 하드로 패리티 정보를 저장하는 꼴이므로 전체 용량의 1/3만 사용 가능하게 된다. 따라서 보통 4개 이상의 하드 디스크로 구성하며 RAID 5보다 더욱 데이터 안정성을 고려하는 시스템에서 사용한다.

위의 이미지처럼 40GB 하드 4개로 RAID 6를 구성하면 패리티 정보를 저장하는데 2개 분량의 용량을 잡아먹기 때문에 실제 사용 가능한 용량은 절반에 불과하지만 4개의 하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수하다. 하지만 패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용되지는 않는다.

 

RAID 0+1과 RAID 10(1+0)

RAID 0+1과 RAID 10(1+0)은 RAID 0(스트라이핑)과 RAID 1(미러링) 방식을 혼합해 만들어졌다는 점에서는 매우 비슷하게 보여진다. 특히 서버/워크스테이션이 아닌 일반 사용자의 PC로 RAID를 구성한다면 많아야 4개 정도까지 묶기 때문에 RAID 0+1과 RAID 1+0을 헷갈릴 수도 있으며 실제 RAID 0+1을 RAID 10으로 표기하는 곳도 많이 있다. 필자 역시 이 둘을 혼동하는 사람 중에 하나였는데, 두 방식은 어느 쪽을 먼저 묶고 나중에 묶느냐에 따라 다르다고 한다.

RAID 0+1은 이름 그대로 RAID 0과 RAID 1을 합쳐놓은 방식이다. RAID 0으로 묶은 하드 디스크를 최종적으로 RAID 1로 구성하기 때문에 일반 RAID 1 구성보다 높은 성능을 낼 수 있으며 한쪽 RAID 0에 들어가는 하드들이 모두 고장난다고 해도 나머지 RAID 0 하드를 통해 정상 동작 및 데이터 복구를 할 수 있다.

그래도 RAID 1이 들어가므로 전체 하드 디스크 용량의 절반 밖에 사용하지 못한다는 단점은 같지만, 성능과 안정성을 동시에 추구할 수 있는데다 따로 패리티 정보를 사용하지 않기 때문에 패리티 정보를 별도로 처리할 필요가 없다. 또한 RAID 기능을 지원하는 웬만한 메인보드 컨트롤러 및 보급형 RAID 카드에서 RAID 0+1을 기본 지원하고 있어 RAID 3, 4와 달리 고급형 컨트롤러가 필요하지 않다.

 

이와 달리 RAID 10(1+0)은 RAID 1로 구성된 하드들을 최종적으로 RAID 0 방식으로 스트라이핑해서 성능을 높이게 된다. 역시 RAID 1의 미러링을 기본으로 하고 있으므로 하드 1개가 고장나도 그와 함께 미러링 된 하드를 통해 데이터 복구가 가능하다.

 

RAID 0+1과 RAID 10은 4개의 하드 디스크로 RAID를 구성할 경우 용량이나 구조에서 별 차이가 없어 보이지만 6개 이상의 하드를 사용하게 되면 위와 같은 차이가 생긴다. RAID 0+1은 RAID 0으로 구성된 하드들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드가 나눠지며, RAID 10은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성된다.

RAID 0+1은 양쪽 RAID 0 구성 중 하나씩 고장이 나면 전체 데이터가 손실되고, RAID 10은 미러링 된 하드 2개가 동시에 고장 날 경우 전체 데이터가 날라간다. 물론 그 대신 RAID 0+1은 미러링 된 한쪽이 하드 전체가 망가져도 데이터를 살릴 수 있고, RAID 10도 각 RAID 1 묶음에서 하나씩이 고장이 나도 이상없이 동작한다.

그러나 RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체(A1~3, B1~3, C1~3)를 복구해야 하지만, RAID 10으로 만든 시스템은 고장난 하드가 A2, B2, C3 가 저장된 하드 1개라고 하면 미러링으로 묶인 하드를 통해 A2, B2, C2 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 10이 훨씬 유리하다.

 

JBOD (Just Bunch of Disks)

제이비오디(JBOD)는 Just Bunch of Disks의 약어로 사실은 스트라이핑이나 미러링 방식을 쓰지 않았기 때문에 RAID 규격이라고 할 수 없다. 다만 여러 대의 하드 디스크를 묶어 하나의 하드처럼 보이게 만든다는 점에서 RAID와 비슷하기 때문에 함께 쓰이고, RAID 지원 컨트롤러에서 JBOD 역시 지원하는 일이 많은 것이다.

JBOD는 단순히 물리적인 여러 하드를 모아서 하나의 큰 용량을 제공하는 하드처럼 보이게 만드는 방식으로 스패닝(Spanning)으로도 불린다. 디스크 전체 용량을 사용한다는 점에서 RAID 0과 같지만 RAID 0처럼 데이터를 분산 저장하는게 아니라 디스크 순서대로 저장하기 때문에 대용량 디스크를 만들 수 있지만 실제 성능 향상은 없다. 그러나 디스크 종류/용량에 제한을 받게 되는 RAID 규격과 달리 각기 다른 용량의 디스크도 묶을 수 있다는 장점이 있다.

 

 

RAID 1.5

RAID 1.5는 RAID 비표준 규격 가운데 하나로 RAID 컨트롤러 칩셋을 만드는 회사 중 하나인 Highpoint에서 만든 것이다. RAID 15라고 불리기도 하는 이 규격은 최소 4개의 하드가 필요한 RAID 0+1 구성을 단 2개의 하드로 구성하도록 만들었다.

RAID 1.5의 동작 원리는 읽기는 RAID 0 모드로 읽기 성능을 향상시키고 쓰기 모드일 때는 RAID 1 방식처럼 2개의 디스크 모두 데이터를 기록해 안정성을 높인다는 것이다. 일단 하드 디스크의 구성은 기본적으로 미러링으로 만든 RAID 1과 같지만, 읽기에서 RAID 0처럼 미러링 된 2개의 하드에서 다른 부분을 동시에 읽어서 시간을 절약하게 된다고 한다. 위의 이미지가 RAID 1.5의 정확한 구조를 나타낸 것은 아니지만 Read, Write 부분을 보면 RAID 1.5가 어떤 방식으로 동작하는지 참고하는데 도움이 될 것이다.

하지만 쓰기 속도에서 RAID 1과 같으므로 읽기/쓰기가 반복되는 작업에서 RAID 0 만큼 체감 성능 향상을 느끼기 어려운데다 전체 하드 용량의 절반만 쓸 수 있다는 점에서 RAID 1과 같다. 어차피 2개의 하드로 RAID를 구성해야 한다면 RAID 0, RAID 1 외에는 다른 방법이 없기 때문에 RAID 1.5는 성능과 안정성에 타협을 본 방식이라 할 수 있지만 RAID 1.5를 지원하는 컨트롤러나 메인보드가 있어야 하므로 일반적으로 널리 사용되진 않는다. (예전에 보드나라에서 리뷰했던 DFI 메인보드 중 일부가 Highpoint RAID 컨트롤러를 달아 RAID 1.5를 지원했었다)

 

Intel Matrix RAID

인텔 매트릭스 레이드(Intel Matrix RAID)는 인텔 ICH6R부터 들어간 RAID 규격으로 RAID 1.5와 마찬가지로 2개의 하드 디스크로도 RAID 0과 RAID 1을 구성할 수 있도록 한 것이다. 하지만 미러링된 RAID 1 디스크를 기반으로 하는 RAID 1.5와 다르게 2개의 하드 디스크를 수평으로 묶어서 2개의 파티션(Partition)을 만들어 한 쪽은 RAID 1으로 구성하고 다른 한쪽을 RAID 0으로 만들어 2개의 하드처럼 쓰게 된다. 물론 Matrix RAID 기술은 2개의 하드를 위한 것이 아니므로 인텔에서는 4개의 하드로 같은 방식의 RAID 0 / RAID 1 파티션을 만들어 낼 수 있다고 설명한다.

매트릭스 RAID를 구성하면 운영체제에서 각 파티션이 구분되어 2개의 하드 디스크로 잡히게 되는데, 용량은 RAID 1로 만든 쪽은 실제 묶인 하드 용량의 절반, 그리고 RAID 0 쪽은 당연히 묶인 하드 용량을 온전히 사용할 수 있어 단순한 RAID 1, RAID 1.5 방식보다 용량이나 운용면에서 이득을 준다.

중요 데이터가 있는 부분은 RAID 1로 보호하고 애플리케이션 실행처럼 빠른 하드 성능이 요구되는 쪽은 RAID 0으로 구성된 파티션에 설치해 실행하므로 성능과 용량, 그리고 데이터 보호까지 적절하게 만족시키는 타협점인데다 2개의 하드 디스크만으로 구성이 가능하기 때문에 하드가 많지 않은 일반 유저들이 데스크탑 PC로 구성하기에 적당하다. 또한 인텔 매트릭스 레이드를 지원하는 메인보드들에서 호환되기 때문에 특별한 문제가 없다면 ICH6R에서 ICH9R까지 같은 매트릭스 레이드 구성을 보존해준다고 알려지고 있다.

하지만 비표준 RAID 규격으로 일반 RAID 컨트롤러에서 사용할 수 없고 인텔 메인보드만 지원하기 때문에 업그레이드 범위가 제한된다는 단점은 있다. 굳이 Matrix RAID라는 용어를 쓰지 않더라도 일부 RAID 컨트롤러는 전체 RAID 볼륨 용량을 나누는 방법으로 2개의 하드에 RAID 0, 1을 따로 구성할 수 있다.


3. RAID를 구성하기 위한 준비

RAID를 구성하기 위한 준비


그럼 데스크탑 시스템에서 RAID를 구성하기 위해서는 무엇이 필요할까? 당연히 RAID를 지원하는 장치가 필요할 것이다. 데스크탑 시스템에서 RAID를 지원하는 장치는 외장 카드와 내장 컨트롤러로 구분되는데, 외장 카드는 메인보드의 확장 슬롯에 장착해서 사용하는 방식이며 내장 컨트롤러는 메인보드의 사우스브릿지 칩셋이나 보드에 달린 RAID 기능 지원 추가 컨트롤러를 통하는 방식이다.

(그러나 RAID를 구성하는 방법으로 RAID 기능이 들어간 하드웨어를 사용하지 않고도 운영체제가 제공하는 기능을 이용해 소프트웨어적으로 RAID를 만들 수도 있는데, 이 부분은 이번 테스트에는 포함시키지 않으며 별도의 페이지로 언급하겠다)

 

RAID 기능을 지원하는 메인보드

메인보드는 보통 사우스브릿지라고 불리는 칩셋이나 추가적인 SATA/IDE 컨트롤러에 RAID 기능을 달아서 제공하고 있는데, 이러한 메인보드를 사용하면 보드에 달린 SATA/IDE 커넥터에 하드를 연결해 RAID 구성이 가능하다.

RAID 기능을 지원하는 메인보드는 그렇지 않은 제품보다 가격이 더 비싸지만 대부분 단순히 RAID 유/무의 차이로 가격을 정하는 것은 아니고, 더 좋은 품질의 부품을 쓰거나 부가 기능을 더 많이 포함시켜 만들기 때문이다. 

오늘 RAID 기사에서 사용한 메인보드는 ASUS P5K Premium으로 이 제품은 메인보드 사우스브릿지 칩셋인 ICH9R에서도 SATA RAID 기능을 지원하며, IDE 커넥터 및 eSATA 포트를 위한 추가 컨트롤러 칩셋에서도 RAID 기능을 지원하므로 만약 필요하다면 2개의 컨트롤러로 2가지 RAID 구성을 할 수 있다. 양쪽 모두 RAID 기능을 제공하지만 실제 RAID 작업에 필요한 XOR 프로세서 역할이나 캐시 메모리는 PC 자원을 사용하므로 고급형 RAID 컨트롤러 카드처럼 완전한 하드웨어 RAID 방식이라고 할 순 없다.

 

사우스브릿지에 들어있는 RAID 기능은 칩셋에서 지정원 SATA/IDE 대역폭을 사용하고, 추가 컨트롤러에서 제공하는 RAID는 컨트롤러 칩셋이 메인보드 칩셋과 연결된 인터페이스 대역폭을 사용하게 된다. 이번에 테스트한 메인보드 RAID는 추가 컨트롤러 대신 메인보드 칩셋 ICH9R에서 제공하는 기능을 썼다.

 

RAID 전용 컨트롤러 카드 (고급형)

메인보드에서 제공하는 RAID 기능 대신 별도의 확장 카드를 이용한 RAID를 구성하려는 사람이라면 가격비교 사이트에서 같은 RAID 컨트롤러 카드임에도 불구하고 엄청난 차이가 있는 가격을 보고서 놀란 경험이 있을 것이다. RAID 컨트롤러 카드는 단순히 몇개의 하드를 연결하고 어떤 인터페이스를 지원하느냐 외에 하드웨어 방식이냐 소프트웨어 방식(운영체제를 의미하는 건 아님)이냐로 가격 차이가 난다.

하드웨어 방식의 RAID는 시스템과 별개로 컨트롤러에서 모든 드라이브 통신을 처리해 시스템/운영체제에서 독립된 하나의 저장장치로 보이게 한다. 주로 PCI-X급 이상의 충분한 대역폭을 가진 인터페이스 기반으로 만들어져 일반 데스크탑 시스템보다 서버/워크스테이션 시스템에서 사용되며, RAID 구성 및 작동을 위해 별도의 XOR 프로세서와 전용 캐시 메모리를 내장해 가격이 상당히 비싸다. 하드웨어 RAID 방식은 전송 속도 및 안정성에서 유리하며, 특히 소프트웨어 방식은 시스템에서 RAID 작업을 떠맡아야 하므로 경우에 따라서는 시스템의 성능을 저하시킬 수도 있다.

 

하드웨어 방식의 RAID 컨트롤러 카드로는 Adaptec사의 ASR-3405 4ch 컨트롤러를 사용했다. 이 제품은 히트싱크가 부착된 인텔 80333 500MHz 프로세서를 하드웨어 XOR RAID 엔진으로 사용하고, 128MB의 DDR 메모리를 카드에 달아 ECC-Protected 데이터 캐시 메모리 역할을 하도록 만들었다. LP(Low Profile) 디자인으로 블레이드 서버 등에서도 사용 가능하다.

단순히 SATA RAID 뿐만 아니라 SAS(Serial Attached SCSI) 컨트롤러로 사용할 수 있으며, PCI-X 인터페이스 대신 PCI Express x4 방식을 지원해 서버/워크스테이션 보드가 아니어도 대역폭 문제가 없다. PCI Express x4 인터페이스의 대역폭이 서버용  PCI-X 133MHz의 대역폭과 같기 때문이다.

PCI Express x4 슬롯은 일반 PCI Express 데스크탑용 메인보드 중에서도 흔한 것은 아니지만, 그래픽 카드의 멀티 GPU 기능을 지원하는 보드라던지 유사 멀티 GPU를 지원하는 보드에서 많이 제공한다. (PCI-X 슬롯을 지원하는 데스크탑 메인보드보다는 훨씬 많다)

 

RAID 0, 1, 1E, 5, 5EE, 6, 10, 50, 60, JBOD로 핫 스페어(Hot Spare), 핫 스왑(Hot Swap) 기능도 지원한다. 전용 연결 포트와 케이블을 통해 1개의 케이블에서 4개의 하드 디스크를 연결할 수 있으며, 정전이나 시스템 문제가 발생할 때 캐시 데이터를 보호할 수 있는 배터리팩(옵션) 연결도 지원한다.

 

 

RAID 전용 컨트롤러 카드 (보급형)

메인보드와 별개의 확장 카드로 제공되지만 XOR 프로세서나 캐시 메모리가 따로 들어가지 않는 제품들을 보급형 RAID 컨트롤러 카드라고 부르는데, 이 제품들은 RAID 구성을 위한 기본 기능은 제공하지만 운용을 위한 작업은 시스템에 의존하기 때문에 가격이 저렴하면서 복잡하지 않은 RAID를 지원할 때 사용할 수 있다.

RAID 작업이 단일 하드 사양을 넘는 고성능이 필요하거나 데이터 보호를 위한 것이므로 전문적인 작업이라면 그만큼의 성능과 안정성이 담보된 고급형 컨트롤러 카드를 사용하겠지만 데스크탑에서 1~ 2개의 하드를 가지고 구성하는 RAID 0, 1 수준이라면 보급형 컨트롤러로도 무난한 성능을 낼 수 있다.

다만 보급형 RAID 컨트롤러 카드는 대부분 보다 많은 시스템 호환성을 위해 PCI 인터페이스를 지원하는데, 이 경우 PCI 대역폭이나 속도가 많은 숫자의 하드로 RAID를 구성하기에는 모자라 단일 하드보다 오히려 성능이 떨어질 수도 있다.

 

누디앙일렉트론의 코요테(Coyote) SATA II RAID 4ch 컨트롤러 카드가 바로 컨트롤러 칩셋과 바이오스만으로 구성된 보급형 제품으로 폭넓은 호환성을 가진 32bit PCI 인터페이스 외에 4채널 RAID 구성을 위해 인 PCI-X 인터페이스도 지원하도록 만든 제품이다. 앞에서도 언급했지만  PCI-X 133MHz인터페이스는 PCI Express x4와 마찬가지로 단방향 1GB/s의 대역폭을 가지고 있다.

보드나라에 32bit PCI RAID 컨트롤러 카드가 따로 없는데다 PCI 전용으로 나온 제품들은 대부분 2포트만을 지원해 특별히 PCI와 PCI-X를 모두 지원하는 이 제품을 포함시켰다. 물론 RAID 테스트는 PCI-X 지원 보드가 아닌 일반 데스크탑 시스템을 기준으로 할 예정이라 이 제품은 32bit PCI RAID 컨트롤러 카드로만 사용될 것이다.  

 

RAID 드라이버 설치용 FDD와 플로피 디스켓

윈도우 XP는 출시된지 꽤 오래된 운영체제라 XP 이후에 나온 RAID 장치나 SATA RAID를 운영체제에서 제대로 인식하지 못한다. 이 때문에 RAID로 구성된 드라이브를 인식하거나 운영체제를 설치하기 위해서는 드라이버를 따로 설치해줘야 한다.

윈도우 비스타처럼 최신 운영체제에서는 FDD를 이용하지 않더라도 대부분 드라이버를 가지고 있어 P35 메인보드의 ICH9R을 RAID 모드로 바꿔도 운영체제를 설치할 수 있었지만 이 때도 SATA 포트를 지원하는 블루레이 드라이브를 썼을 때 문제가 생겨 필자는 IDE 지원 DVD 드라이브로 교체했다.


8. 현실성 높은 RAID! 그리고 각 RAID별 장단점

능은 PCI-E 하드웨어 RAID, 비용 절약은 메인보드 RAID


데스크탑 환경에서는 각 컨트롤러별로 장단점이 있다

지금까지 RAID의 구성과 성능, 그리고 각 RAID 컨트롤러 인터페이스별 성능 차이가 어느 정도인지 살펴보았다. 데스크탑 시스템 환경에서 RAID를 구축하는 방법은 오늘 필자가 소개한 3가지 방법이 대표적이라고 하겠는데, 각 인터페이스별 장단점이 다 있어 RAID를 구성하려는 사람은 이 부분에 유념해서 자기가 원하는 방식을 선택해야 할 것이다.

 

메인보드 내장 RAID는 일단 추가 비용이 들어가지 않고 별도의 확장 카드를 설치할 필요도 없으며, 인터페이스 대역폭 제한도 없기 때문에 가장 무난하게 RAID 시스템을 구성하는 방법이다. 하지만 시스템 업그레이드나 RAID 드라이브 이동시 컨트롤러가 메인보드에 종속되어 있어 제약을 받게 되며, IDE 장치 대신 RAID 장치로 설정할 경우 SATA ODD를 ICH9R에 붙였을 때 문제가 발생할 수 있다. 그리고 RAID 5 같은 XOR 연산이 필요한 구성에서는 제 성능을 내지 못했다. 이 부분이 소프트웨어적으로 해결되어 제 성능을 낼 수 있다면 아마 가장 현실적이고 추천할만한 방식이 되지 않을까 한다.

 

XOR 프로세서와 캐시 메모리를 가지고 있는 하드웨어 RAID 컨트롤러 카드는 가장 강력한 성능을 보여주며, PCI Express x4 또는 133MHz 64bit PCI-X 인터페이스를 사용한다면 대역폭의 제한 염려도 없다. 그러나 컴퓨터 한대 가격과 맞먹는 고가인데다 데스크탑 메인보드에서는 PCI Express x4 호환성이 검증되지 않아 제 성능을 내지 못할 수도 있다는 것이 단점이다. 하지만 현재로썬 RAID 5 시스템을 구성하고자 한다면 서버/워크스테이션 시스템과 마찬가지로 반드시 선택해야 할 방식이다.

 

제품 사진은 PCI-X를 지원하는 컨트롤러지만 32bit PCI 슬롯만으로 한정해서 설명하면 하드웨어 RAID 카드보다 훨씬 저렴하고 메인보드 호환성이 좋으며, 시스템 업그레이드나 RAID 드라이브 이동에 대응하고 있다. 하지만 PCI 대역폭의 한계 때문에 제대로 된 RAID 성능을 내주지 못하므로 PCI-X 겸용이 아니라 PCI용으로만 출시된 제품들은 대부분 SATA 포트를 2개까지만 제공한다. PCI 슬롯에 장착해 4개의 하드로 RAID를 구성한다는 것은 가장 선택하지 말아야 할 방식이고, 제대로 쓰고 싶다면 PCI-X 슬롯을 지원하는 메인보드를 찾아보는 쪽을 권한다. 

 

무난한 RAID를 원한다면 RAID 0, 1, 10 정도에 만족해야

여러가지 RAID 규격 가운데 데스크탑에서 쓸만한 RAID 0, 1, 10(또는 0+1), 5 등을 비교한 결과 성능에서는 역시 RAID 0, 성능과 용량, 데이터 보호를 모두 고려한다면 RAID 5가 올바른 선택이다. 하지만 RAID 5구성은 메인보드 내장 RAID 컨트롤러 및 XOR 프로세서가 없는 보급형 RAID 컨트롤러 카드로는 제 성능을 내줄 수 없으므로 그나마 현실적인 최선의 방법은 RAID 10이나 인텔 Matrix RAID가 될 것이다.

물론 RAID 10은 하드 디스크 4개를 기준으로 잡은 것이라 보통 2개 정도로 RAID를 묶는다면 RAID 0, 1, 그리고 Matrix RAID가 남는데, 인텔 RAID 지원 메인보드를 쓰지 않는다면 RAID 0만이 성능을 올리는 방법이 되는 셈이다.

 

끝으로 덧붙이자면 RAID 컨트롤러들이 같은 RAID 규격 지원을 내세우고 있다고 해서 서로 호환되는 것은 아니라는 점과 RAID 구성 방식에 따라서 문제가 발생할 수 있다는 점을 염두에 두어야 한다.

가령 이번 테스트에서 ICH9R을 RAID 모드로 바꿨을 경우 ICH9R에 연결했던 SATA ODD로 윈도우 비스타를 설치하지 못하고 중간에 리부팅 되는 현상도 있었고, ICH9R로 RAID를 설정한 하드들을 외부 RAID 컨트롤러에 바로 연결하면 RAID 바이오스로 들어가지 못하고 얼어버리는 일도 있었다.





About
IBM 최신서버에 관련된 경험과 지식을 공유하는 블로그이며 블로그에 처음오신분은 *필독공지*를 꼭 먼저 읽어보시기 바랍니다.