|
들어가면서
Abit의
MAX 씨리즈, ASUS A7V333, Gigabyte 8IEXP, Iwill XP333-R, Epox
4BDA2+, Leotec Techno Ace Raid, Soltek SL-85DR2+
등등 국내서 구입 가능한 메인보드 벤더들의 보드 이름을 각각 하나씩
열거해
보았습니다. 이 보드들의 공통점이 무엇인지 아는 것은 이 글의
제목을 보면 잘 아실 겁니다^^;;
과거만 해도
Raid라는 기술은 얼마 전만 해도 대부분 SCSI 인터페이스를 사용한
서버급의 시스템에서만 쓰였지만 IDE 레이드 컨트롤러가 많이 보급되면서
이제는 일반 사용자들도 많이 사용하고 있습니다. 위에서 열거한
메인보드들을 보면 거의 모든 메인보드 벤더들이 Raid 컨트롤러를
내장한 보드를 선보이고 있습니다.
위의 그림은
보드나라 묻고 답하기 게시판에 Raid에 대한 문의를 캡처한 그림입니다.
많은 Raid 지원 제품들이 출시되고 있지만, 아직 Raid를 사용하는
사용자들은 많지 않다고 봅니다. 실제로 레이드 컨트롤러를 사용하면서도
Raid기능을 사용하지 않는 경우도 많죠. 하드디스크나 ODD장비등
IDE장비가 많은 경우 IDE 커넥터가 모자라서 그냥 컨트롤러로 사용하는
경우도 많습니다...(보드나라 운영자님도 마찬가지죠..^^;;)
|
|
|
이 레이드가 아닙니다...^^;;
|
이
글은 아직도 Raid가 무엇인지 잘 모르는, 혹은 막연한 새로운
하드웨어에 대한 두려움(?) 때문에 Raid를 구현하지 못하는 사용자들이나,
하드디스크 성능을 더 업그레이드 하고자 하는 사용자들을 위해
기획되었습니다. 대부분 Raid를 모르거나 아직 사용법을 모르는
사용자들을 대상으로 하기 때문에 되도록 쉽게 설명을 할 것입니다.
1부는 Raid의
기본적인 원리에 대해서 설명을 할 것입니다. 그 후 2부에 사용자들이
가장 많이 사용하는 Highpoint사와 Promise사의 Raid 컨트롤러의
사용법과 실제 성능테스트를 할 것입니다.
|
|
위의
사진은 Abit MAX 씨리즈중 I845E 칩을 사용한 IT-7입니다.
보드 사진을 보면 FDD 1단자와 IDE 커넥터가 일반적으로
2개인데 반해 6개가 있는 것을 알 수 있습니다.
파란
원 안이 좌측 그림의 HighPoint HPT374칩이고, 노란
원안이 레이드용 IDE 단자입니다.
일반적으로
IDE RAID 컨트롤러는 2개의 커넥터로 4개의 장비를
지원하는데 반해 HPT374칩은 4개의 단자로 총 8개의
장비를 지원합니다.
|
Raid의
시작
현재 일반
사용자들이 Raid를 사용하는 이유는 성능상의 이유가 클 것입니다.
하지만 80년대 후반 Raid가 만들어진 이유는 그러한 이유보다는
용량이 작은 디스크를 여러개 연결해서 논리적으로 마치 하나의
디스크처럼 사용하고자 하는 이유로 시작되었습니다. 현재 160GB가
넘는 대용량의 하드디스크가 선보이고 있지만 10년전만 해도 100MB도
안되는 하드디스크가 주력 제품이었다는 것을 생각해 보면
기술적, 상업적으로 대용량의 디스크도 없었고, 가격도 비쌌기 때문에 대용량의 데이터를 하드 디스크에 저장해야 하기
위해서 Raid가 고려되었습니다. 그래서
Raid는 Redundant Array Of Inexpensive
Disk의 약자로 시작한 것입니다. - 과거의 개념 -
하지만 현재는
데이터 집적도의 향상으로 인해서 저렴한 대용량의 디스크가 개발되면서 가격적인 부분보다는 데이터 안정성과 성능 향상을 위해서
Raid를 사용하고 있습니다. 그래서 현재는 Raid를 Redundant Array Of
Independent Disk의 약자로 사용하기도 합니다. -
현대의 개념 -
|
여기까지 읽으신
분들은 아시겠지만 Raid를 사용하게 되면 물리적으로
여러 개의
하드 디스크를 마치 하나의 하드디스크처럼 인식하게
됩니다. Raid 구성 후 처음 하나의 하드디스크를
구입했을 때처럼 파티션 설정을 해주시면 됩니다.
|
Raid
성능향상의
원리
하드웨어
성능을 향상시키기 위한 시도는 여러 가지가 있습니다. 컴퓨터에
대해 조금 아신다는 분들은 병렬처리라는 것을 아실 겁니다. 병렬처리라는
용어는 아마 여러 개의 컴퓨터를 연결해서 슈퍼컴퓨터를 만든다는 것에서도
들어 보셨을 겁니다. 하나의 프로세스를 여러 개의 컴퓨터를 이용해서
처리하는 것이죠. Raid도 성능을 향상시키기 위한 부분에서는 같은
개념을 사용합니다.
비슷한 예로
I850 시스템에서의 Dual Channel RDRAM을 예로 듭니다. RDRAM 각각은
1.6GB/S의 전송률을 보이지만 두 개의 RDRAM을 동시에 사용함으로써
3.2GB/S 의 전송률을 보입니다.
RAID의 경우도
같습니다. 위의 그림을 예로 들면 123456이라는 데이터를 저장해야 할
때, 각각 1초의 시간이
걸린다면 일반적인 환경에서는 총 6초의 시간이 걸립니다. 하지만 두 개의 하드디스크에
데이터를 나누어서 동시에 데이터를 저장한다면 3초의 시간이
걸릴 것입니다. (이론적으로...)
|
이와 같은 원리를 Stripping 이라고
합니다. 통상 아래 설명할 Raid 0을 Stripping라고
부르지만 이와 같은 원리로 하드디스크 성능을 올리는
것을 Stripping라고도 합니다.
|
Raid의
형태
Raid라는
개념도 계속 발전해 가는 부분이기 때문에 Raid의 형태는 많은 종류가
있습니다만 일반적으로 많이 사용하는 IDE Raid Controller에는 대부분
Mode 0,
Mode 1, Mode 0+1 만을 지원합니다. 그럼 일반적인 Raid의 형태를
설명하기 위해서 대부분 많이 쓰이는 Raid의 형태에 대해 알아보겠습니다.
(1) Raid 0
Raid0은
RAID의 정의인 Redundant
( 결함허용 ),
즉 안정성을 위한 여분의 데이터를 남기지 않기 때문에 RAID의 정확한
정의와는 조금 차이가 있습니다. 오직 성능만을 고려한 형태입니다.
데이터는 블록단위로 Access됩니다.
각 데이터를
Raid를 구성하는 하드디스크에 분산해서 동시에 저장을 합니다.
위에서 설명한 Raid성능향상의 원리와 같은 형태입니다. 하지만
문제가 있는 것이 하나의 데이터를 분산 저장하기 때문에 하나의
디스크라도 문제가 방생하면 모든 드라이브의 데이터가 유실된다는
점입니다. 그래서 Raid의 나머지 형태들은 이 Error를 체크하기
위한 알고리즘이 있고 그에 따라 약간의 성능 하락을 보입니다.
그런 면에서
Raid 0 은 가장 빠른 형태입니다.
|
하드디스크 블록
많은 사용자들이 하드디스크
블록에 대해서 그다지 관심이 없지만 가끔 바이오스에서
다음과 같은 항목을 보실 수 있습니다
노란 부분을
보면 Block Mode라는 것이 있습니다. 하드디스크 성능을
높게 하기 위한 것으로 이 항목이 없는 보드 바이오스의
경우도 Default로 사용됩니다. 하드디스크를 이 Block단위로
Access 하게 됩니다.
Raid Controller의 경우 Block Size를
결정할 수 있습니다. 그러면 Block Size에 따라 성능이
어떻게 되는가 알아보겠습니다. 예로 Block Size가
4Kbyte라면 5Kbyte의 데이터는 실제로 8Kbyte의 용량을
차지하게 됩니다. Block 단위로 Access하기 때문이죠.
그래서 Block Size가 크면 클수록 용량의 낭비가 심해지게
됩니다. 하지만 Block Size가 작으면 하드디스크
Access횟수가 많아지고, 시간도 길어지기 때문에 성능의
하락이 있을 수 있다. 결국 자신이 이용하는 시스템의
특성과 용도에 맞게 Block 사이즈를 지정해서 사용하면
됩니다.
|
(2) Raid 1
Raid 1 은
데이터 안정성을 위해서 똑같은 복제품을 만들어 놓는 것입니다. (Clone)
통상 Mirroring 이라고도 합니다. 원래의 데이터와 완전히 같은
데이터를 저장하기 때문에 하나의 하드디스크가 손실되더라도 백업
디스크를 사용하면 아무 문제가 없습니다만 정확히 같은 데이터를
저장하기 때문에 데이터 용량이 두배가 됩니다. 300메가의 데이타를
저장한다면 정확히 그 두배인 600메가의 용량을 차지하게 됩니다.
Raid 형태 중 가장 안정적인 방법이지만 가장 낭비가 심한 방법입니다.
Stripping 방법을
사용하지 않기 때문에 속도 향상은 거의 없습니다.
(3) Raid 0
+ 1
Raid 0
+ 1은 말 그대로 Raid 0 과 Raid 1을 합쳐놓은 것입니다. Stripping기술을
사용하면서 Mirroring도 사용합니다. 속도와 안정성 두 마리의 토끼를
잡은 형태이지만 역시 용량 낭비라는 문제가 있습니다.
(4) Raid 3 and 4
Raid 0 과
같이 Stripping 방식을 사용하면서 에러 체킹과 수정을 위한 ECC
: Error Correction Code를 하나의 드라이브에 저장하는 방식이다.
하지만 ECC를 위한 드라이브가 손상될 경우는 문제가 발생하며,
ECC를 위한 작업 때문에 Raid 0 보다는 약간의 성능 하락이 있습니다.
Raid 3 과 Raid 4의 차이점은 Raid
3은 Byte단위로 데이터를 저장하는 반면 Raid 4는 Block단위로 저장을 한다. Block단위로 저장을 할
경우 작은 파일의 경우는 한번의 작업으로 데이터를 읽을 수 있기 때문에 성능상의 장점이 있습니다.
(4) Raid 5
Raid 3과
Raid 4의 단점을 해결한 형태이며 고급 Raid Controller에서 현재
많이 쓰이고 있는 형태입니다. 이는 별도의 ECC 드라이브를 두지 않고, 각 드라이브에
분산되어 ECC 드라이브에 대한 병목현상을 막아주며 ECC를 위한
알고리즘 때문에 성능 면에서는 여전히 Raid 0 보다 떨어지지만 성능,
안정성, 용량 3 부분을 고려한 형태입니다.
2부
에서는.....
이런 괴물같은 Raid Controller
Card도 있습니다..ㅡㅡ;;
이미 위에서 설명하였다시피 이 글은 일반 사용자들을 위해 기획되었습니다. 일반 사용자들이
가장 많이 사용하는 IDE Raid Controller는 대부분 HighPoint사의
HPT - 370, 372 칩셋과 Promise 사의 20276 칩셋이며 이 제품들은
Raid 0, 1, 0 + 1 만을 지원을 하지만 일반 사용자라면 아무리
안정적이지만 용량을 두배씩이나 차지하는 Mirroring을 사용하지는
않을 것입니다. 그래서 실제로 테스트는 Raid 0으로 성능 테스트를
진행할 것입니다.
다음 2부에서는
자세한 Raid 설정 방법, OS 설치 방법과 실제로 HighPoint제품과
Promise제품과의 성능 테스트를 진행 할 것입니다. 많은 관심 바랍니다..^^;;
(현재 대중적으로 많이 쓰이는
Promise 20276 칩셋과 Hipoint HPT-372 칩셋. 둘다 ATA-133
지원)
|
HighPoint
|
Promise
|
|
ABIT
Epox
Iwill
|
ASUS
Gigabyte
Soltec
|
-OnBoard Raid 마더보드 제조사 중
자주 사용하는 칩셋-
|