RAID가 뭐지요?

2000년대 들어서서 AMD가 1기가의 벽을 넘어서면서 CPU의 속도는 비약적으로 발전해왔습니다. 공정의 발전도 한몫했고 어찌됐건간에 엄청나게 빠른속도를 낼 수 있었습니다. 그런데 유독 프로그램의 처리 속도에 직접적으로 영향을 준다고 볼 수 있는 디스크의 성능은 속도를 ms로 나타낼 만큼 엄청나게 느렸지요. 이런 상황때문에 아무리 프로세서가 빠르다고 하더라도 디스크의 속도때문에 전체적인 속도에는 애로사항이 만발할 수 밖에 없다는 소리입니다.

많이 개선 됐다고 하더라도 현저히 떨어지는것은 익히 알려져있는 사실입니다. RAID가 대두되던 때에도 상황은 지금보다 나쁘면 나빴지 좋지 못했습니다.

RAID는 Redundant Array of Inexpensive Disks의 줄임말입니다.
풀어보자면 값싼 디스크의 잉여 배열(?)이라는 이상한 뜻이 되는데 (영어가 약하니 딴지는 사절) 정확히 말하자면 여러개의 작은 디스크들을 배열구조로 연결해서 하나의 유닛으로 패키지 함으로써 액세스 속도를 크게 향상시키고 신뢰도까지 높이는 것을 꾀하는것이 되겠습니다.

1956년도에 RAMDAC 디스크 드라이브로 부터 시작된 하드 디스크 기술은 73년도 IBM연구원들에 의해 개발된 윈체스터 디스크 드라이브로까지 발전해 오는 동안에 디스크 평판크기도 많이 줄어들고 여튼 이전에 쓰이던 기록매체들보다 훨씬 싼데다가 용량도 크고 소형화를 이룩할 수 있었습니다.

그래봤자 역시 속도에 문제가 있었고 이를 해결하기 위한 방법이 분산저장(?)기술입니다. 바로 여러개의 디스크를 배열화하여 동시 액세스가 가능하게 해주는것이 되겠죠.

이해하기 쉽게 설명하자면...

이것도 병목현상과 견주어 말할 수 있을것 같은데 100개의 어떤 데이터를 한곳에 죽어라 퍼넣는것보다 두곳에다가 나눠 넣는다면 당연히 훨씬 빠르겠죠?

바로 이 분산저장 기술이 RAID의 핵심중 한부분이라고 할 수 있습니다.

원래 이 분산저장기술은 디스크 인터리빙이라는 용어가 따로 있습니다. 어떤 파일이 다수의 데이터 블록들로 이루어져 있으면 여러개의 블록을 몇블록씩 순차적으로 돌아가면서 저장이 됩니다. 하나의 디스크만 액세스가 이루어지지 않기 때문에 위에서 말한 병목현상을 많이 줄일수 있다는 점이겠지요.

RAID라는것이 디스크 인터리빙과 다른점은 바로 신뢰도까지 높이는데에 있습니다.

디스크 인터리빙의 최대 취약점은 에러에 쥐약이라는것이죠. 분산저장하는 만큼 하나라도 잘못되게 된다면 전체를 사용 못하는 엄청난 문제점이 생깁니다. 뭐 MTTF(Mean Time To Failure)라고 해서 결함이 발생하는 기간들의 평균값이 높아진다는 문제이죠. 너무 자세히 들어가면 뭐하니까 대충 여기까지 설명하고..

이 신뢰도를 높이기 위해서 오류검출을 위한 여분을 남겨둔다는 것이 나머지 핵심이라고 할 수 있습니다. RAID 방식에도 여러가지 레벨이 있는데 0부터 5인가 까지 있습니다. 더 있을수도 있는데 제가 관련 기사는 읽어본지 몇년이나 지나서 기억도 안나고 참고할 자료도 없네요.

LEVEL - 0

0은 Striping 이라고 해서 오류검출에 필요한 디스크를 따로 두지 않습니다. 그냥 단순히 분산 저장을 시키는것이고 덕분에 가장빠른 속도를 구사할 수 있습니다.

LEVEL - 1

1은 mirroring 이라고 해서 한 패키지 내에 데이터를 저장하는 부분과 반사 디스크를 두어 같은곳에 저장시키는 법입니다. 이것이 신뢰도를 가장 높일수 있는데 단점은 COST가 많이 든다는 점이겠죠. 왜냐면 미러링때문에 사용용량이 반으로 줄기 때문입니다.

LEVEL - 2

잘 사용하지 않는 법이죠. 데이터를 비트 단위로 인터리빙 시키고 오류검출에는 해밍코드라는 것을 사용해서 하는것입니다. 검사디스크가 또 필요하므로 COST가 많이 든다는 점이 역시 존재를 하게 됩니다.

LEVEL - 3

이것도 역시 잘 사용하지 않습니다. 여러개의 디스크중에서 한개의 패리티 디스크(오류 정정에 쓰일)만 추가하는 것입니다. 레벨 2에서는 오류검출을 위해 많은 수의 검사디스크가 필요하게 됩니다. (로그2에 비례한다고 하네요.) 그래서 한개의 패리티 디스크만 추가해서 가격을 조금 낮추게 된것이죠. 그렇다고 해도 데이터가 비트단위로 분산저장되기 때문에 느린편입니다.

LEVEL - 4

레벨 2와 3과는 다르게 데이터를 블록단위로 저장하며 한개의 패리티 디스크를 둔다는 것이 특징입니다.

LEVEL - 5

패리티 블록을 모든 디스크에 분산저장하는 방식입니다. 이것이 가장 큰 특징이라고 할 수 있고 블록단위의 저장이기 때문에 큰파일을 저장할땐 빠른데 작은 파일을 저장할때는 그만큼의 분산된 액세스가 필요하기에 속도에 문제가 발생합니다. 가격대 성능비 측면에서 레이드 1보다는 나은편이라고 할 수 있죠.


날림으로 작성하는 바람에 너무 세세한 부분까지는 미처 설명하지 못했습니다. 레이드 0과 1을 제외하고는 제가 잘 모르는 방식들이라 책을 참고했습니다. 여튼 대충 이런 방식이랍니다.

더 궁금한점이 있으면 이곳을 참고하세요~

by muzie | 2004/12/29 23:25 | 컴퓨터이야기 | 트랙백 | 덧글(5)

트랙백 주소 : http://muzie.egloos.com/tb/729324
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by Spearhead at 2004/12/29 23:33
바퀴벌레를 한방에 잡는다는 그것...(존내 처맞는다)
Commented by 카린 at 2004/12/30 00:25
일단 호준이는 존내 맞는거고
... 컴터를 나름대로 쫌 안다고 하는데도 ... 이 얘기는 이해가 별로 안 되네... 이젠 컴터도 제대로 전문영역인가 OTL
Commented by muzie at 2004/12/30 12:08
글쎄 이얘기는 전문영역이라고 하기엔 아는사람이 많은 편이야 -_-; 뭐 관심있는사람들에 한해서 적용이 되는 이야기겠지만서도.. 그래봤자 나도 아직 못써본 레이드 -_ㅠ 군대갔다오면 사타2 레이드 해버릴테다 흑.
Commented by 섀도우 at 2005/01/25 01:14
RAID.. 컴퓨터구조 시간에 기말고사쯤에 지겹도록 외운기억이.. 3학년때 운영체제 끝에쯤에 또 한답니다.
Commented by muzie at 2005/01/25 23:59
컴구... 자신있는 과목이었는데 C+ 나왔습니다. 하드웨어쪽에 대해서 나름대로 지식있다 생각하고 구조도 누구보다 잘 이해했다고 생각했는데 역시..이상과 현실을 틀린가봐요 ㅠㅠ

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶