디스크가 고장 나도 데이터를 어떻게 지킬 것인가
RAID는 여러 개의 디스크를 하나처럼 묶어서 사용하는 기술이다. 디스크는 기계 장치라서 언제든 고장 날 수 있는데, RAID는 같은 데이터를 여러 디스크에 나눠 저장하거나 일부를 중복 저장해서, 디스크 하나가 고장 나도 데이터가 사라지지 않도록 만든다. 즉, 목적은 크게 두 가지다. 하나는 “속도 향상”, 다른 하나는 “장애 대비(안정성)”이다. RAID 종류에 따라 이 둘 중 무엇을 더 중시하느냐가 달라진다.
RAID 0부터 보자. RAID 0은 가장 단순하다. 데이터를 여러 디스크에 나눠서 저장한다. 예를 들어 파일을 조각내서 디스크 1, 2, 3에 동시에 저장하는 방식이다. 이렇게 하면 읽고 쓰는 속도는 빨라진다. 하지만 중요한 단점이 있다. 디스크 하나라도 고장 나면 전체 데이터를 복구할 수 없다. 즉, RAID 0은 “속도만 빠르고 안전성은 전혀 없는 방식”이다. 그래서 장애 대응이 필요 없는 임시 데이터나 성능이 최우선인 경우에만 쓴다.
RAID 1은 반대 성격이다. 데이터를 그대로 복사해서 여러 디스크에 똑같이 저장한다. 마치 하드디스크를 통째로 복사해 두는 것과 같다. 디스크 하나가 고장 나도 다른 디스크에 동일한 데이터가 있으므로 바로 사용 가능하다. 안정성은 매우 높다. 읽기 성능도 좋아질 수 있다. 하지만 디스크를 두 개 쓰면 실제 저장 용량은 하나 분량밖에 못 쓴다. 비용이 많이 든다는 것이 가장 큰 단점이다.
RAID 2는 실제로는 거의 쓰이지 않는다. 디스크 자체에 오류 검출·수정 기능이 없던 시절을 전제로 만들어진 방식이다. 여러 디스크에 데이터를 저장하고, 별도의 디스크에는 오류를 복구하기 위한 정보(ECC)를 저장한다. 이론적으로는 정교하지만, 현대 디스크는 이미 자체적으로 오류 처리를 하기 때문에 실무에서는 의미가 거의 없다.
RAID 3과 RAID 4는 구조가 비슷하다. 핵심은 “Parity(패리티)”라는 복구용 정보를 사용한다는 점이다. 패리티는 여러 디스크의 데이터를 계산해서 만든 일종의 복구 공식이라고 생각하면 된다. 디스크 하나가 고장 나면, 나머지 데이터와 패리티를 이용해 고장 난 디스크의 데이터를 재생성할 수 있다. RAID 3은 데이터를 아주 작은 단위로 나누고, RAID 4는 블록 단위로 나눈다는 차이가 있다. 공통적인 문제는 패리티를 저장하는 디스크가 하나라서, 쓰기 작업이 많아지면 그 디스크가 병목이 된다는 점이다.
RAID 5는 이 문제를 개선한 방식이다. RAID 5는 패리티를 특정 디스크 하나에 몰아두지 않고, 여러 디스크에 분산해서 저장한다. 그래서 특정 디스크에 부담이 집중되지 않는다. 디스크 하나가 고장 나도 복구가 가능하고, 성능과 안정성의 균형이 비교적 좋다. 실제 서버 환경에서 가장 널리 사용되는 RAID 방식 중 하나다. 단, 디스크 하나까지만 고장에 대응할 수 있다.
RAID 6은 RAID 5를 더 안전하게 만든 방식이다. RAID 5는 디스크 하나까지는 괜찮지만, 복구 중에 또 하나가 고장 나면 데이터가 날아간다. RAID 6은 패리티를 두 개 만들어 저장해서, 디스크 두 개가 동시에 고장 나도 복구할 수 있도록 했다. 대신 디스크를 더 많이 사용하고, 쓰기 성능은 조금 더 떨어진다. 대용량 스토리지나 장애 리스크가 큰 환경에서 사용된다.
정리하면 이렇게 이해하면 된다. RAID 0은 빠르지만 위험하고, RAID 1은 안전하지만 비싸다. RAID 5는 속도와 안정성의 균형형이고, RAID 6은 안정성을 최우선으로 한 방식이다. RAID 2, 3, 4는 개념 이해용으로만 알고 있으면 되고, 실제 현업에서는 거의 RAID 0, 1, 5, 6만 접하게 된다.