Ⅰ. 동적 디스크
윈도우 7 에서 사용할 수 있는 디스크의 종류 중에는 우리가 일반적으로 사용하는 기본 디스크 외에 동적 디스크란 것이 있습니다. 동적 디스크란 윈도우 2000 부터 지원되기 시작한 윈도우의 새로운 디스크 형식으로 동적 디스크에서는 여러 개의 디스크를 스팬하는 볼륨(스팬 볼륨 및 스트라이프 볼륨)을 만드는 기능이나 내결함성이 있는 볼륨(미러 볼륨 및 RAID-5 볼륨)을 만드는 기능을 가지고 있습니다. 이러한 동적 디스크에서 만들어지는 모든 볼륨을 동적 볼륨이라고 합니다.[동적 디스크의 볼륨은 기본 디스크의 파티션과 비슷한 개념이라고 생각하시면 됩니다.]
애초의 목적이 서버 운영체제를 위한 것이다 보니 윈도우 서버 제품군에서[윈도우 2000 Server 제품군, 윈도우 서버 2003, 윈도우 서버 2008, 윈도우 서버 2008 R2] 지원을 하며 윈도우 데스크탑 제품군의 경우[윈도우 2000 Professional, 윈도우 XP, 윈도우 비스타, 윈도우 7] 기능이 제한된 Home 에디션 그룹에서는 지원하지 않으며 Professional 이상 급의 에디션 그룹에서 일부 동적 볼륨을(스팬 볼륨, 스트라이프 볼륨) 지원하기도 합니다.[미러 볼륨까지 지원하기도 합니다.]
이러한 동적 디스크는 운영체제 차원에서 관리되고 지원되는 레이드의 한 종류로써 소프트웨어 기반 레이드입니다. 동적 디스크는 별도의 레이드 컨트롤러를 통해 하드웨어적인 차원에서 관리되고 지원되는 하드웨어 기반 레이드나 메인보드의 칩셋을 통해 바이오스 차원에서 관리되고 지원되는 펌웨어(드라이버) 기반 레이드와 같은 레이드의 한 종류로써 동적 디스크를 이해하기 위해선 반드시 레이드를 먼저 이해해야만 합니다. 그리하여 이번 포스팅에서는 레이드에 대한 설명이 주축을 이루게 될 것 입니다.
※ 펌웨어 기반 레이드는 소프트웨어 기반 레이드로 보기도 합니다.
Ⅱ. 레이드(RAID)
RAID(Redundant Array of Inexpensive Disks, Redundant Array of Independent Disks, 복수 배열 독립 디스크) 란 여러 개의 하드 디스크에 데이터를 나눠서 저장하는 기술입니다. 데이터를 나누는 다양한 방법이 존재하며 이 방법들을 레벨이라고 합니다. 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등 목적에 따라 레벨의 선택이 가능합니다.[컨트롤러에서 지원한다는 가정하에]
설명이 뭔가 좀 어렵죠? 쉽게 이야기하자면 파티션이 하나의 디스크를 마치 여러 개의 디스크를 사용하는 것과 같이 해주는 기술이라면 레이드는 이와 반대로 여러 개의 디스크를 마치 하나의 디스크처럼 사용할 수 있게끔 해주는 기술이라고 할 수 있습니다. 쉽죠? 파티션이나 레이드도 따지고 보면 일종의 가상화의 개념으로 접근할 수 있습니다. ^^
레이드는 1987년 UC 버클리 대학의 David A. Patterson, Garth A. Gibson, Randy Katz 세 사람이 이와 관련된 논문을 발표하면서 시작되었습니다. 논문은 저렴한 디스크들의 중복 배열을 통해 보다 저렴하고 안전하며 신뢰할 수 있는 스토리지를 꾸미는 것에 대한 기술을 담고 있습니다. 즉, 고용량의 디스크는 그만큼 가격도 쌔기 때문에 좀 더 저렴한 디스크 여러 개를 사용하여 고가의 고용량 디스크를 사용하는 것과 같은 효과를 가지게끔 만들어 보자는 것에서 시작한 것 입니다. 더불어 이를 통해 신뢰성과 성능 향상의 효과도 기대할 수 있으며 현존하지 않는 고용량의 디스크 구성도 가능해 지는 것이죠.[버클리, 스탠퍼드, MIT 놈들 머리엔 뭐가 들어있는지...]
- 문제의 레이드가 시작된 논문 - 공돌이와 수학은 위대했습니다. -_-;;
위의 논문을 통해 정의된 최초의 레이드는 레벨 0~5 까지의 사양으로 구성되어 있었습니다. 이 후 1989년 다시 레벨 5 를 강화한 레벨 6 가 추가 됩니다. 이러한 레이드 레벨 0~6 을 표준 레이드 레벨(Standard RAID Levels) 이라고 합니다. 이 외에 두 개의 레벨을 하나로 합친 중첩 레벨(Nested RAID Levels) 로 레벨 0+1, 레벨 10(1+0), 레벨 50(5+0) 등이 등장하며 스토리지 업체들에 의해 독자적으로 추가된 레벨 등이 존재하고 있습니다. 하지만 어디까지나 표준은 레벨 0~6 까지 입니다.
레이드는 스트라이핑(Striping, 분산), 미러링(Mirroring, 중복), 패리티(Parity, 무결성) 이라는 세 가지 근원이 되는 기술로 이루어지며 이러한 세 가지 기술을 어떻게 적용하느냐에 따라 레벨이 나누어집니다.
1. 분산 - 스트라이핑(Striping)
A. 묶음 - 스팬(Span)
B. 분산 - 스트라이프(Stripe)
다만 데이터를 쪼개서 여러 개의 디스크에 나누어 저장하는 특성으로 인해 하나의 디스크에 장애가 발생하면 모든 디스크의 데이터가 쓸모 없어진다는 치명적인 단점이 존재합니다. 이러한 단점을 해결하기 위해 미러링과 패리티가 존재합니다.
2. 중복 - 미러링(Mirroring)
3. 무결성 - 패리티(Parity)
스트라이핑 기술과 함께 사용되며 패리티의 저장 방식에 따라 여러가지 레벨로 나누어집니다. 이러한 데이터의 패리티를 생성하고 패리티를 통해 데이터를 복구하는 작업에는 XOR 연산이 필요하기 때문에 데이터를 저장하고 복구하는데 성능 저하가 일어납니다. 이를 해결하기 위해 레이드 컨트롤러는 전용의 XOR 연산 프로세서를 포함하는 것이 보통입니다.[소프트웨어 기반 레이드와 펌웨어 기반 레이드에선 이를 CPU 가 처리합니다.]
Ⅲ. 레이드 레벨의 특성
레이드는 위에서 말한 6 개의 표준 레이드 레벨과 몇 가지의 중첩 레이드 레벨이 존재하고 있습니다.[스토리지 업체의 독자적인 레이드 레벨은 논외로 칩니다.] 그럼 이러한 레이드 레벨의 원리와 각각의 특성에 대해서 간략하게 알아보도록 하겠습니다.
1. 표준 레이드 레벨(Standard RAID Levels)
※ 표의 구성은 위키피디아 RAID 자료에 포함된 표의 구성을 따랐으나 설명은 표의 원문을 번역한 것이 아닌 위키피디아 Standard RAID levels 자료의 내용을 제가 나름대로 쉽게 요약하여 재작성한 것을 기재한 것 입니다. 참고하세요.
※ 공간 효율성은 전체 디스크 크기의 합을 1 로 놓았을 때를 기준으로 합니다. 이 때 전체 디스크 크기의 합은 n * min(Disk 1, Disk 2, Disk 3...)[디스크 수 * 디스크 중 가장 작은 디스크 크기] 입니다.
레벨 | 설명 | 최소 필요 디스크 | 공간 효율성 | 장애 허용 | 이미지 |
---|---|---|---|---|---|
RAID 0 | 블록 레벨 스트라이핑. 패리티, 미러링 없음. 패리티를 포함하지 않는 블록 레벨 스트라이프 구성입니다. 패리티를 포함하지 않기 때문에 실제로 사용 가능한 용량은 전체 디스크 용량의 합을 그대로 사용합니다. 레벨의 구성에 최소 두 개의 디스크가 필요합니다. | 2 | 1 | 0 (none) | |
RAID 1 | 미러링. 패리티, 스트라이핑 없음. 패리티를 포함하지 않는 미러링 구성입니다. 동일한 데이터를 두 개의 디스크에 동시에 저장하기 때문에 실제로 사용 가능한 용량은 전체 디스크 용량을 합한 것의 절반 밖에 되지 않습니다. 레벨의 구성에 두 개의 디스크가 필요합니다. | 2 | 1/n | n-1 disks | |
RAID 2 | 비트 레벨 스트라이핑. 전용의 해밍 코드 디스크를 통해 구성. 헤밍 코드 에러 수정 방식을 사용하는 스트라이프 구성입니다. | 3 | 1 - 1/n ? log2(n-1) | 1 disk when the fact that the disk is corrupt isn't found by any thing but the hamming -recover-record-code. | |
RAID 3 | 바이트 레벨 스트라이핑. 전용의 패리티 디스크를 통해 구성. 바이트 레벨에서 패리티의 생성이 이루어지는 스트라이프 구성입니다. 이 때 패리티는 따로 전용의 패리티 저장용 디스크에 저장됩니다. 패리티를 저장할 디스크가 필요하기 때문에 레벨의 구성에 최소 세 개의 디스크가 필요합니다. | 3 | 1 - 1/n | 1 disk | |
RAID 4 | 블록 레벨 스트라이핑. 전용의 패리티 디스크를 통해 구성. 블록 레벨에서 패리티의 생성이 이루어지는 스트라이프 구성입니다. 이 때 패리티는 따로 전용의 패리티 저장용 디스크에 저장됩니다. 패리티를 저장할 디스크가 필요하기 때문에 레벨의 구성에 최소 세 개의 디스크가 필요합니다. | 3 | 1 - 1/n | 1 disk | |
RAID 5 | 블록 레벨 스트라이핑. 하나의 분산 패리티를 통해 구성. 블록 레벨에서 패리티의 생성이 이루어지는 스트라이프 구성입니다. 이 때 패리티는 모든 디스크에 분산되어 저장됩니다. 패리티를 저장할 공간이 필요하기 때문에 레벨의 구성에 최소 세 개의 디스크가 필요합니다. | 3 | 1 - 1/n | 1 disk | |
RAID 6 | 블록 레벨 스트라이핑. 이중의 분산 패리티를 통해 구성. 블록 레벨에서 이중으로 패리티의 생성이 이루어지는 스트라이프 구성입니다. 이 때 이중의 패리티는 모든 디스크에 분산되어 저장됩니다. 이중의 패리티를 저장할 공간이 필요하기 때문에 레벨의 구성에 최소 네 개의 디스크가 필요합니다. | 4 | 1 - 2/n | 2 disks |
2. 중첩 레이드 레벨(Nested RAID level, Hybrid RAID level)
A. RAID 0+1
RAID 0+1 은 먼저 디스크를 스트라이핑(RAID 0) 한 후 이를 다시 미러링(RAID 1) 하는 구성입니다. 레벨의 구성에 최소 4 개의 디스크가 필요합니다.
만약 디스크가 6 개일 경우 디스크를 3 개씩 스트라이핑한 후 이를 미러링합니다. 즉, 스트라이핑 후 미러링을 하는 구성입니다.
B. RAID 10(RAID 1+0)
RAID 10 은 먼저 디스크를 미러링(RAID 1) 한 후 이를 다시 스트라이핑(RAID 0) 하는 구성입니다. 레벨의 구성에 최소 4 개의 디스크가 필요합니다.
만약 디스크가 6 개일 경우 디스크를 2 개씩 미러링한 후 이를 스트라이핑합니다. 즉, 미러링 후 스트라이핑을 하는 구성입니다.
C. 기타 중첩 레이드 레벨
RAID 100
RAID 50
RAID 51
RAID 60
Ⅳ. 동적 디스크와 레이드 레벨의 상관 관계
이제 레이드에 대해서 어느정도 아시겠나요? 처음에 이야기했듯이 동적 디스크는 운영체제 차원에서 관리되는 소프트웨어 기반 레이드입니다. 그렇기 때문에 동적 디스크의 동적 볼륨은 레이드 레벨과 서로 상응하며 각각의 동적 볼륨이 지원하는 레이드 레벨은 아래의 표와 같습니다.[이 때 단순 볼륨은 레이드가 아닌 단일 디스크 구성을 생각하시면 됩니다.]
동적 볼륨 | 레이드 레벨 |
---|---|
단순 볼륨 | None |
스팬 볼륨 | JBOD |
스트라이프 볼륨 | RAID 0 |
미러 볼륨 | RAID 1 |
RAID-5 볼륨 | RAID 5 |
이 중 윈도우 7 에서 사용할 수 있는 동적 볼륨은 단순, 스팬, 스트라이프, 미러 볼륨이며 RAID-5 볼륨은 지원하지 않습니다. RAID-5 볼륨은 윈도우 서버 제품군을 위한 것으로 윈도우 서버 2008 R2[서버 2008, 서버 2003, 2000 서버 에디션 포함] 에서만 지원을 하고 있습니다.
스팬 볼륨에 상응하는 JBOD 의 경우 위의 레이드 레벨에서는 설명을 하지 않았는데요. JBOD 는 그저 단순하게 디스크를 하나로 묶어주는 것으로[스트라이핑, 미러링, 패리티 없음] 위에서 이야기한 레이드의 세 가지 기반 기술 중 스트라이핑에서 스팬 기술만이 적용된 레이드라고 생각하시면 됩니다.
그 외의 동적 볼륨은 모두 해당 레이드 레벨에 그대로 상응한다고 생각하시면 됩니다. 그렇기 때문에 구성이나 특성이 거의 동일하게 적용된다고 할 수 있습니다.
Ⅴ. 동적 디스크만의 특성
동적 디스크는 레이드이지만 그 나름대로 자신만의 특성을 가지고 있습니다. 동적 디스크가 가지는 특성 중 중요한 네 가지만 이야기 하도록 하겠습니다.
1. 볼륨 차원의 레이드 구성 - 매트릭스 레이드?
하나의 동적 디스크 그룹에 서로 다른 동적 볼륨이 존재하는 모습.
MATRIX-RAID
사실 이러한 특성이 상황에 따라 굉장히 유용하지만 레이드라는 영역에서 따지고 보자면 좀 변태적[-_-]이라고 할 수 있습니다. 동적 디스크의 이러한 특성은 어디까지나 앞에서 말했다시피 디스크가 아닌 디스크 위의 볼륨들을 묶어서 레이드 레벨을 구성하는 동적 볼륨의 특성으로 인한 것 입니다. 아무튼 목적에 따라 잘만 활용하면 굉장히 유용한 특성 중에 하나입니다.이러한 동적 디스크의 특성과 비슷한 것이 바로 인텔 내장 칩셋에서 지원하는 매트릭스 레이드라는 기술 입니다. 하나의 레이드 배열을 쪼개서 서로 다른 두 개 이상의 레이드 레벨을 구성할 수 있는 기술이죠. 유용하게 사용하시는 분들은 굉장히 유용하게 잘 사용하고 있는 기술 중 하나입니다.
2. 디스크 옮기기
3. 디스크 성능의 하락
또한 소프트웨어 기반 레이드는 레이드에 관련된 모든 연산 작업을 CPU 가 처리하게 됩니다. 그러다 보니 동적 디스크를 사용하기 전보다 CPU 리소스의 점유율 또한 올라가게 됩니다.
동적 디스크는 원래 윈도우 서버 제품군을 위해 개발된 기술 입니다. 사실 서버에서는 다른 무엇보다 RAID 5 가 중요합니다. 그런데 RAID 5 의 미칠듯한 XOR 연산은 CPU 를 당황하게끔 만들기에 충분하지요.[레이드 컨트롤러에 괜히 XOR 전용의 프로세서와 캐시 버퍼가 달리는 게 아닙니다.] 하지만 다행히도 서버는 멀티 프로세서가 기본이다 보니 시스템에 크게 무리를 주지 않고 처리하는 게 가능할 뿐 입니다.
다행히 요즘은 데스크탑도 듀얼은 기본이요 쿼드는 옵션이며 옥타는 선택이라고 할 만큼 멀티 코어가 보편화 되어 있어서 이러한 문제는 크게 염려하지 않아도 될 수준이 되었습니다.[가장 큰 연산을 필요로 하는 RAID-5 볼륨은 일반 윈도우 데스크탑 제품군에서는 아예 지원하지도 않고]
4. 윈도우 전용
긴 글 읽으시느라 수고 많으셨습니다. ^^ 동적 디스크와 레이드에 관한 내용은 여기까지 입니다. 이상입니다. ^^a
Ⅵ. 부록
1. 참고 자료
'Windows > 윈도우 공통' 카테고리의 다른 글
[스크랩] 윈도우 업데이트내역 txt파일로 떨구기 (0) | 2016.04.08 |
---|---|
[스크랩] 윈도우 디스크관리 이론 목차 (0) | 2016.03.30 |
[스크랩] 윈도우 디스크 스팬/STRIPE/MIRROR/RAID-5 (0) | 2016.03.30 |
[스크랩] NETBIOS 이름 확인/DNS 이름 또는 IP주소를 사용하여 NETBIOS 리소스에 연결 (0) | 2016.03.11 |
sysprep시 동작 하는 / 안하는 애들 (0) | 2016.02.18 |