하드디스크도 기계이므로 수명이 있다. 따라서 저장장치에 있는 중요한 데이터는 수시로 백업을 해야 하는데 이를 수동으로 하면 매우 번거로울 뿐 아니라, 얼마나 자주 또 어떤 데이터를 백업할지 결정하기가 어렵다. 하드디스크를 통째로 백업하면 시간이 많이 걸리기 때문에 백업 전용 소프트웨어를 사용하는데, 이 자동 백업을 통해 장애 발생시 복구하는 시스템을 RAID, Redundant Array of Independenrt Disks 라고 한다.
RAID는 메모리가 아닌 값싼 물리적 디스크를 여러개 묶어서 하나의 고성능 논리적 디스크 local unit 처럼 사용하는 기술이다. 이를 통해 안정적인 데이터의 보존과 유지 및 속도의 향상이 가능하다. RAID 미 구성시 일반적으로 1개의 디스크는 1개의 RAID 로 인식하여 불량시 백업이 불가능하다.
비용이 저렴하다
일반적으로 사용하는 방식으로, 전원이 ON인 상태에서 하드디스크 교체가 가능하다. 핫스왑 Hot Swap, 베이 Bay 이용.
2개의 동일한 크기의 디스크에 거울처럼 똑같은 내용을 저장하여 하나의 디스크가 고장 났을 때 다른 디스크를 사용하여 데이터를 복구하는 기술이다.
여러 디스크에 데이터를 동시에 저장 또는 읽기를 하며 데이터의 입출력 속도를 높이는 기술이다. 연속된 데이터를 여러 개의 디스크에 라운드로빈 방식으로 기록한다.
e.g. 서로 겹쳐서 읽기가 가능한 RAID 설계에서 아래 조건으로 '사과, 배, 나무, 복숭아' 데이터를 가져온다고 가정
두개 이상의 병렬로 연결된 여러 개의 디스크에 데이터를 동시에 입출력할 수 있도록 구성된다. 예를 들어 A1, A2, A3, A4의 4개의 데이터를 저장하는 경우 순서대로 네 번 저장하지 않고, 데이터를 여러 갈래로 찢어 4개의 데이터를 동시에 저장한다. 데이터를 사용할 때 I/O를 디스크 수만큼 분할하여 쓰기 때문에 I/O 속도가 향상되고 I/O controller나 I/O board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더 큰 I/O 속도 향상 효과를 볼 수 있다.
하지만 RAID 0은 장애 발생시 복구 기능이 없기때문에 데이터를 잃는다.
하나의 데이터를 2개의 디스크에 나누어 저장하여 장애 시 백업 디스크로 활용한다. 디스크를 최소 2개 이상 필요로 하며 짝수 개의 디스크로 구성된다. 단점으로는 디스크가 더 필요하게되어 비용이 증가한다는 것이며 같은 내용을 두 번 저장하기에 속도가 느려질 수 있다는 것이다. 따라서 데이터 입출력이 없는 시점에 백업이 이루어지도록 조정하는 것이 좋다.
RAID 0 처럼 striping 방식이지만 ㅇ러 체크와 수정을 할 수 있도록 허밍 코드 Hamming code 를 사용하고 있는 것이 특징이다. 하드 디스크에서 오류 교정 코드 ECC(Error Correction Code) 를 지원하지 않기 때문에 ECC를 별도의 드라이브에 저장하는 방식으로 처리된다. 하지만 ECC를 위한 드라이브가 손상될 경우에는 문제가 발생할 수 있으며, 패리티 정보를 하나의 하드 드라이브에 저장하는 RAID 4 가 나오면서 거의 사용되지 않는 방식이다.
RAID 3과 RAID 4는 거의 동일한 구성 방식을 갖는데, RAID 0 과 RAID 1의 문제점을 보완하기 위한 방식이다. 기본적으로 RAID 0과 같은 striping 구성을 하고 있어, 성능을 보완하고 디스크 용량을 온전히 사용할 수 있게 해준다. 입출력 작업이 동시에 모든 디스크에 대해 이루어지며, 여기에 추가로 에러 체크 및 수정을 위해서 패리티 정보를 별도의 디스크에 따로 저장하게 된다. 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록하며, 패리티 정보를 보관하기 위해 배열의 크기에 상관없이 디스크 하나만 사용한다. 최소 디스크는 3개 이상이 필요한데, 패리티 정보를 한 디스크에 모두 저장하기 때문에 패리티 디스크가 손상될 경우 데이터 복구가 어려울 수 있다. 드라이브 동기화가 필수적이라 많이 사용되지 않고 RAID 4가 더 많이 쓰인다.
RAID 3과 유상하게 하나의 패리티 드라이브를 사용하나, RAID 3의 바이트 단위 대신 RAID 4는 데이터를 블록 단위로 나누어서 디스크에 분산 저장을 수행한다. 단일 디스크로부터 레코드 읽기가 가능하며, 데이터 읽기시 중첩 입출력이 가능하다. 시스템 병목현상이 발생될 수 있으며, RAID 3과 마찬가지로 패리티 정보를 한 디스크에 모두 저장하기 때문에 패리티 디스크 손상 시 데이터 복구가 어려울 수 있다는 단점이 있다.
RAID 4와 같이 블록 단위로 striping을 구성한다. 하지만 RAID 4의 별도 패리티 디스크 대신, 모든 드라이브에 패리티 정보를 분산저장한다. 즉, RAID 3, 4를 보완하는 방식으로, 패리티 정보를 stripe로 구성된 디스크 내에서 처리할 수 있게 된다. 이는 한 개의 하드가 고정나더라도 남은 하드를 통해 데이터 복구가 가능하다는 장점을 가진다. 성능면에서는 RAID 0보다 부족하나, 성능과 안정성, 용량을 모두 고려하는 방식으로 실제로 많이 사용되는 방식이다.
RAID 5와 비슷한 구성이지만, 용량을 줄이고 안정성을 높인 RAID 구성이다. RAID 5는 패리티 정보를 하나의 드라이브에 뒀지만, RAID 6은 패리티 정보를 2개의 드라이브에 둔다. 즉, 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣는다. 이 방식은 2개의 하드에 문제가 생겨도 복구할 수 있다는 장점을 가지므로 RAID 5보다 더욱 데이터의 안정성을 고려하는 시스템에서 사용된다.
RAID 0과 RAID 1을 합친 방식, 즉 striping 과 mirroring 방식을 혼합해서 구성하는 형태이다. 병렬로 데이터를 처리하여 입출력 속도를 높일 수 있으며, 장애 발생 시 미러링된 디스크로 복구가 가능하다. RAID 10은 2개의 디스크가 RAID 1로 묶여 있기 때문에 반대편에 있는 디스크를 멈추지 않아도, 즉 일부 디스크만 중단하여 복구할 수 있다 (c.f. RAID 01). RAID 10을 사용하려면 최소 4개의 디스크가 필요하다.
RAID 10과 마찬가지로 같은 RAID를 0으로 묶어 성능을 높이는 방식이다. RAID 50에서는 RAID 5로 묶은 두 쌍을 다시 RAID 0으로 묶고, RAID 60에서는 RAID 6으로 묶은 두 쌍을 다시 RAID 0으로 묶어 사용한다.
RAID 60은 RAID 50에서 두번째 패리티 비트를 더한 것 과 같다.
RAID 50과 60은 RAID 10에 비해 추가되는 디스크의 수가 적지만 입출력 시 계산량이 증가한다.