RAID
Redundant Array of Inexpensive Disks. 여러 개의 디스크를 배열하여 속도의 증대, 안정성의 증대, 효율성, 가용성의 증대를 하는데 쓰이는 기술이다. 서버 운용 시 하드디스크의 장애로 인한 data 손실이 발생하는 사고에 대한 대비책이다.
장점
1) 운용 가용성, 데이터 안정성 증대
3) 2) 디스크 용량 증설의 용이성
4) 3) 디스크 I/O 성능 향상
Parity
2) 1) 정수의 홀수 또는 짝수 특성
3) 2) 정보 블록과 연결된 중복 정보, 패리티는 오류 후 데이터를 재 구축하는데 사용되는 계산된 값
RAID의 종류와 구성 방식
RAID 0
1) Concatenate 방식: 두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법
장점: 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설이 가능하다.
단점: RAID 0의 특성상 디스크 중 하나의 디스크라도 장애가 발생하면 복구가 어렵고, 패리티(오류검출기능)를 지원하지 않는다.
용량: 모든 디스크의 용량을 합친 용량 ex) 300GB disk * 2ea = 600GB
2) Stripe 방식: 두 개 이상의 디스크에 데이터를 여러 블록으로 나누어 분산 저장하는 방법
흔히 RAID 0라고 하면 Stripe 방식을 뜻한다.
장점: 데이터를 사용할 때 I/O를 디스크 수만큼 분할하여 쓰기 때문에 I/O 속도가 향상되고 I/O Controller나 I/O board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더 큰 I/O 속도 향상 효과를 볼 수 있다.
단점: Stripe를 구성할 시 기존 데이터는 모두 삭제 되어야 한다. 그 외의 단점은 위의 Concatenate 방식과 같다.
용량: 위의 Concatenate 방식과 같다.
RAID 1 (Mirror)
: Mirror 볼륨 내의 패리티를 사용하지 않고 디스크에 같은 데이터를 중복 기록하여 데이터를 보존하게 되며, 적어도 동일한 용량의 디스크 두 개가 필요하다.
장점: 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터는 보존되어 운영이 가능하기 때문에 가용성이 높고, 복원이 비교적 매우 간단하다.
단점: 용량이 절반으로 줄고, 쓰기 속도가 조금 느리다.
용량: 모든 디스크의 절반의 용량 ex) 300GB *2ea = 300GB
RAID 2
: RAID2는 RAID 0처럼 striping 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming code를 사용한다. 하드 디스크에서 ECC(Error Correction Code)를 지원하지 않기 때문에 ECC를 별도의 드라이브에 저장하는 방식으로 처리된다. 하지만 ECC를 위한 드라이브가 손상될 경우는 문제가 발생할 수 있으며, 패리티 정보를 하나의 하드 드라이브에 저장하는 RAID 4가 나오면서 거의 사용되지 않는 방식이다.
RAID 3, RAID 4
: RAID 3, RAID 4는 RAID 0, RAID 1의 문제점을 보완하기 위한 방식으로 3, 4로 나뉘긴 하지만 RAID 구성 방식은 거의 같다. RAID 3, 4는 기본적으로 RAID 0과 같은 striping 구성을 하고 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있게 해준다. 여기에 추가로 에러 체크 및 수정을 위해서 패리티 정보를 별도의 디스크에 따로 저장한다.
RAID 3은 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록하며 RAID 4는 데이터를 블록 단위로 나눠 기록한다는 차이가 있다
RAID 3은 드라이브 동기화가 필수적이라 많이 사용되지 않고 RAID 4를 더 많이 쓴다고 볼 수 있다.
RAID 5
: RAID 5는 RAID 3,4 에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식으로 패리티 정보를 stripe로 구성된 디스크 내에서 처리한다. 만약 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터를 복구할 수 있다는 장점이 있다.
RAID 6
: RAID 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 복구할 수 있게 설계되었다. 따라서 RAID 5보다 더욱 데이터의 안전성을 고려하는 시스템에서 사용된다.