[운영체제/OS] RAID
RAID
Redundant Array of Independent/Inexpensive Disks : 복수 배열 독립 디스크
여러 대의 물리적 디스크를 하나의 논리적 디스크로 인식시키는 기술
여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술 = 디스크 어레이
데이터를 나누는 다양한 방법이 존재하며, 이 방법들을 레벨
이라 하는데, 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등의 다양한 목적을 만족시킬 수 있다.
RAID의 사용 목적
- 무정지 구현(가용성)
- 성능 향상
- 주의) 데이터의 무결성, 안전, 백업에 대한 목적은 아니다.
RAID 0
스트라이핑
Striping
일련의 데이터를 하나의 논리적 디스크
배열에 일정한 크기로 나누어서 분산 저장하는 기법
사용자와 시스템 데이터는 하나의 논리 디스크상에 저장되어 있는 것으로 인식하며 디스크는 스트립
(Strip)이라는 일정한 크기의 섹터 또는 물리적 블록 단위
로 나누어 연속적인 배열 구성요소와 대응되도록 순환할당된다.
이와 같이 하나의 스트립들과 각 배열의 구성요소가 대응하는 논리적으로 연속적인 스트립의 집합
을 스트라이프
라고 한다.
RAID 0 방식은 데이터를 입출력할 때, RAID 컨트롤러에서 여러 개의 하드 디스크로 나눠서 쓰고 읽어 들이므로 중요하지 않은 데이터에 대한 빠른 데이터 입출력 성능이 요구되는 동영상 편집 등에 적합
데이터를 중복해서 기록하지 않으므로 장애발생에 대비한 여분의 저장 공간을 가지고 있지 않다. 즉, 어느 한 드라이브에서 장애가 발생하면 데이터는 손실
RAID 1
미러링
Mirroring + 스트라이핑 Striping
RAID 0 과 같이 데이터 스트라이핑을 사용하면서 배열 내의 모든 디스크가 동일
한 데이터를 가지는 미러 디스크
를 가진다.
각 논리적 스트립은 두 개의 별도 디스크에 대응되므로 미러링이라고도 하는데, 중복 저장된 데이터를 가진 적어도 두 개의 드라이브로 구성
멤버 디스크 중 하나만 살아남으면 데이터는 보존되며 복원도 1:1복사로 매우 간단하기 때문에 서버에서 끊김없이 지속적으로 서비스를 제공하기 위해 사용
읽기 요구는 요구 데이터를 가지고 있는 두 개의 디스크 중 어떤 디스크에서도 서비스를 받을 수 있기 때문에 성능이 향상될 수 있으나, 데이터를 분할 저장하지 않기 때문에 두 스트립이 모두 갱신되어야 하며 쓰기 요구는 단일 디스크 드라이브의 경우와 같다.
RAID 2
스트라이핑 + 허밍 코드
Hamming Code
디스크들 간에 데이터 스트라이핑을 사용하며 오류 검출 능력이 없는 드라이브를 위해 허밍 코드 기법을 사용한다.(안전성
확보)
몇몇 디스크들은 오류를 감지하고 수정하는 데 사용되는 오류정정코드(ECC
, Error Correcting Code)정보를 저장
허밍 오류정정코드는 패리티 비트를 사용해 디스크로부터 전송된 데이터에 오류가 있는지 검사 및 정정
실시간 오류수정이 가능하다는 장점이 있지만, 현재의 SCSI 드라이브들이 자체 오류 검출 능력을 갖고 있기 때문에 실제 잘 쓰이지 않음.
RAID 3
RAID 0과 같이 스트라이브를 사용하며, 오류 검출과 수정을 위해 별도의 드라이브
한 개를 패리티 드라이브로 사용
각각의 데이터 디스크에 데이터를 비트 단위로 스트라이핑하여 기록
대형 레코드가 많이 사용되는 단일 사용자 시스템과 다량의 데이터 전송이 요구되는 작업에 적합
RAID 4
데이터 분산 저장을 위해 스트라이핑과 패리티 드라이브를 사용한다는 점에서 RAID 3과 유사하지만, 각 드라이브에 데이터를 블록 단위
로 분산 저장한다는 점에서 다름
쓰기 요청이 있을 때마다 사용자 데이터와 함께 패리티 정보를 갱신해야 하기 때문에 추가시간이 소요되므로 크기가 작은 입출력이 요청될 때 쓰기 성능 저하(입출력의 병목현상
유발)
데이터 읽기 요청은 RAID 0과 비슷한 성능을 가짐
여러 드라이브 중에서 한 대의 드라이브만이 여분의 패리티 정보를 기록하는데 사용되기 때문에 용량당 비용은 높지않아 저렴한 가격으로 장애 복구 능력이 요구되거나 빠른 판독속도가 필요한 경우에 사용
RAID 5
RAID 4 구성과 유사하며 별도의 패리티 드라이브 대신 모든
드라이브에 패리티
정보를 나누어 저장. (디스크 병목현상 해결
)
다중 프로세스 시스템에서와 같이 작고 잦은 데이터 기록이 있을 경우 더 빠르지만, 읽기 요청의 경우 각 드라이브에서 패리티 정보를 건너뛰어야 하기 때문에 RAID 4보다 속도가 느리다.
최소한 3
대, 일반적으로 5대 이상의 드라이브가 필요. N개의 디스크를 사용하면 (N-1)배의 저장 공간을 사용 가능하다.
데이터는 각 데이터 영역에 블록 단위로 스트라이핑하여 저장된다.
병렬 입출력이 가능하기 때문에 기록과 읽기가 동시에 가능하며 데이터 입출력 선능이 아주 빠르면서도 안전성 또한 높은 편으로 파일 서버 등의 입출력이 빈번한 업무에 적합하다.
RAID 6
RAID 5와 원리는 같으며, 서로 다른 방식
의 패리티 2개를 동시에 사용한다.
성능과 용량을 희생해서 가용성을 높인 셈.
N개의 디스크를 사용하면 (N-2)배의 저장 공간을 사용할 수 있다.
Nested RAID
레이드 볼륨의 멤버로 다른 레이드 볼륨을 사용하는 형태.
멤버 디스크를 묶는 배열을 하위
배열, 하위 배열을 묶는 배열을 상위
배열이라고 한다.
표기 방법은 m(하위 배열)n(상위 배열)이며 m=0이면 뒤에 +를 붙인다.
RAID 0+1
RAID 0으로 스트라이핑 된 볼륨을 RAID 1로 미러링. (적어도 4개의 디스크 필요)
댓글남기기