※잘못된 내용과 오타가 있다면 덧글로 피드백주시면 감사하겠습니다.※
이 포스트는 '뇌를 자극하는 Windows Server 2012 R2' 한빛미디어 출판사의 책으로 공부한 내용을 정리한 것입니다.
목차
1. RAID의 개념과 구분
2. RAID 레벨
3. Windows Server에서 RAID 구현 실습
RAID
여러 개의 디스크를 하나로 묶어서 사용하는 방식에 대해서 살펴보자.
1. RAID의 개념과 구분
RAID란 Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks의 약자로, 원래 목적은 저렴한 저용량의 디스크 여러 개를 하나의 비싼 대용량의 디스크로 사용하고자 하는 것이었습니다.
예를 들어 1TB 하드디스크 10개를 가지고, 마치 10TB 하드디스크 1개처럼 사용하고자 하는 것입니다. 그렇게 디스크를 구성함으로써 여러 가지 좋은 점을 얻을 수 있게 되었습니다. RAID는 구성 방식에 따라서 입출력 성능의 향상이나, 디스크 결함 허용(Fault Tolerance, 여러 개의 디스크 중에서 하나 또는 일부가 고장나도 데이터의 안전을 보장)의 특징을 갖게 할 수 있습니다.
RAID는 크게 하드웨어 RAID와 소프트웨어 RAID 두 가지로 나눌 수 있습니다.
하드웨어 RAID는 하드웨어 장치로 RAID를 구성하는 것으로, 별도의 장치에 여러 개의 디스크를 장착해 하나의 디스크처럼 사용하는 장비를 의미합니다. 하드웨어 RAID는 안정적으고 효율적이지만 가격이 꽤 비쌉니다. 하드웨어 RAID는 각 제조사마다 지원하는 방식이 다를 수 있으므로 논외로 하겠습니다.
소프트웨어 RAID는 컴퓨터에 장착된 여러 개의 디스크를 운영체제 레벨에서 RAID로 구성하는 기능을 말합니다. Windows Server, Linux Server, Unix Server에서는 다양한 소프트웨어 RAID를 지원합니다. 하드웨어 RAID보다는 안정적인 면이 떨어지지만, 디스크만 추가한다면 저렴한 비용으로 빠르고 안정적인 시스템을 구성할 수 있다는 장점이 있습니다.
여기서 잠깐
요즘 제작된 PC나 노트북용 메인보드도 자체적으로 하드웨어 RAID기능을 가지고 있는 것이 많이 있습니다. 고가의 서버용 하드웨어 RAID보다는 기능이 떨어지지만, 개인용 PC에서 하드웨어 RAID를 사용하고자 할 경우에는 별 무리가 없습니다.
참고로 RAID는 1987년 버클리 대학의 연구원들이 'Redundant Array of Inexpensive Disks'라는 논문에서 Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks 0~5를 정의한 것이 시초였습니다. 추가로 1989년에는 RAID 6가 정의되었습니다.
구성 방식이나 이론적인 내용은 하드웨어 RAID와 소프트웨어 RAID가 동일합니다.
2. RAID 레벨
RAID는 구성 방식에 따라 몇 개의 레벨로 나눌 수 있습니다.
[그림 1] RAID의 종류와 구성 방식
- 단순 볼륨 - volume
- 스팬 볼륨 - Spanned Volume: Linear RAID
- 스트라이프 볼륨 - Striped Volume: RAID 0
RAID는 디스크의 크기가 모두 동일하다는 전제 조건을 갖습니다. 즉, 스트라이프, 미러, RAID5는 모두 동일한 크기의 디스크뿐만 아니라 동일한 회사의 동일한 모델의 디스크를 사용하는 것을 기본으로 합니다.예를 들어 스트라이프를 2TB, 1TB 두 개의 디스크 구성할 경우에 총용량은 공간 효율 100%인 3TB가 아니라 총 2TB밖에 되지 않습니다. 즉, RAID의 경우에는 동시에 디스크를 사용하는 특징 때문에 작은 쪽에 맞출 수 밖에 없습니다. 그러므로 2TB 크기의 디스크에서 1TB밖에 사용할 수 없는 것입니다. 만약, 100TB, 1TB 두 개의 디스크를 사용해도 마찬가지로 작은 쪽에 맞추게 되므로 총 2TB밖에 사용하지 못합니다.이와 달리 스팬 볼륨은 디스크의 크기가 다르더라도 첫 번째 디스크를 모두 사용한 후에 두 번째 디스크를 사용하는 방식을 사용하기 때문에 공간 효율이 100%가 됩니다. 같은 예로 100TB, 1TB 두 개의 디스크로 스팬 볼륨을 구성하면 총 용량은 101TB가 됩니다.참고로, 하드디스크 대신 SSD로 RAID를 구성한다면 성능면에서 월등히 뛰어난 RAID를 구성할 수 있습니다.
- 미러 볼륨 - Mirrored Volume: RAID 1
현재는 사용하지 않는다.
- RAID 5
RAID 5는 미러 볼륨 처럼 데이터의 안전성이 어느정도 보장되면서 공간 효율성도 좋은 방식입니다.
RAID 5는 최소한 3개 이상의 하드디스크가 있어야만 구성이 가능하며 실무에서 사용할 때는 대부분 5개 이상의 하드디스크로 구성합니다. 구성 원리는 데이터의 저장 시에 패리티를 이용함으로써, 디스크에 문제가 발생 시 원래의 데이터를 예측할 수 있는 방식입니다.
그럼에도 'ABCDEF'를 저장할 때 A는 첫 번째에, B는 두 번째에, 그리고 세 번째에는 피리티를 저장하는 방식입니다. 좀 더 쉽게 예를 들어보면 2진수로 '010011'(6비트)라는 데이터를 [그림 1]의 RAID 5에 저장한다면 다음 그림과 같이 저장됩니다.
[그림 2] RAID 5의 저장 방식(짝수 패리티의 경우)
위 그림에서 네모로 표시된 데이터는 패리티 데이터입니다. 이 경우 짝수 패리티면, 각 행은 짝수가 되어야 합니다. 처음 2비트인 01을 저장할 때 디스크1에 0, 디스크2에 1, 디스크3에는 패리티를 저장할 공간을 비워둡니다. 이 예에서는 짝수 패리티를 사용하기로 했으므로, 0+1+패리티=짝수가 되어야 합니다. 그러므로 패리티는 '1'이 입력됩니다.
다음 2비트인 00을 저장할 때 디스크1에 0, 디스크2에는 패리티로 비워두며, 디스크3에 0을 저장합니다. 이 경우도 짝수가 되기 위해서는 0+패리티+0=짝수이므로 패리티는 '0'이 됩니다. 마지막 2비트인 11을 저장할 때 디스크1에는 패리티로 비워두며, 디스크2에는 1을 디스크3에 1을 저장합니다. 이 경우도 짝수가 되기 위해서는 패리티+1+1=짝수이므로 패리티는 '0'이 됩니다.
이렇게 저장된 RAID 5는 디스크 결함을 허용을 제공합니다. 즉, 3개의 디스크 중에서 1개가 고장 나도 원래의 데이터를 예측할 수 있는 것입니다. 예를 들어 두 번째 디스크인 디스크2가 고장났다고 가정하고, 디스크2에 저장되었던 원래 데이터를 예측해보자.
[그림 3] RAID 5의 복구 방식
위 그림에서 첫 번째 줄을 보면 현재 디스크1에는 0, 디스크2는 알 수 없음, 디스크3에는 1이 들어있다. '0+?+1=짝수'여야 하므로 ?는 디스크2의 값이 '1'이되는 것을 예측할 수 있습니다. 나머지도 마찬가지로 유추해내면 디스크2에 들어 있던 원래 값이 101이라는 것을 알 수 있으므로 원래의 데이터를 손실 없이 예측하여 사용할 수 있습니다.
RAID 5의 장점은 어느정도 결함은 허용하며, 또한 저장 공간의 효율도 좋다는 것입니다. 각 디스크별로 1TB라고 가정한다면, 총 사용할 수 있는 공간은 2TB입니다. 즉, 전체 용량의 66.6%를 사용할 수 있습니다. 만약, RAID 5를 10개의 디스크로 구성했다면, 전체 10TB 중 1개의 패리티로 사용하는 1TB를 제외하고 나머지 9TB를 사용할 수 있으므로 전체 용량의 90%를 사용하게 됩니다. 여기서 디스크의 개수를 N개라고 하면, N-1만큼의 공간을 사용할 수 있다는 계산을 할 수 있습니다.
여러 개의 디스크로 RAID 5를 구성할수록 저장 공간의 효율을 높일 수 있으며, 실무에서는 8~10개 정도의 디스크로 RAID 5를 많이 사용합니다.
다음 포스트에 실습 내용을 다루도록 하겠습니다.
'System > Windows Server' 카테고리의 다른 글
[Windows Server 2016] RAID 내결함성 테스트 및 복구 (0) | 2019.03.04 |
---|---|
[Windows Server 2016] RAID 생성 (0) | 2019.03.04 |
[Windows Server 2016] DNS (0) | 2019.02.25 |
[Windows Server 2016] Mail, hMail (0) | 2019.02.25 |
[Windows Server 2016] IIS, WEB, FTP (0) | 2019.02.23 |