![스토리지 보드: RAID란 무엇일까? [동영상]](https://kr.wsxdn.com/UploadFiles_1288/202210/2022101210115380.jpg)
안녕하세요, Ontrack 데이터 복구의 Mikey입니다. 스토리지 보드(Storage Board)에 오신 것을 환영합니다! 이번 에피소드에서는 RAID 시스템이 무엇인지, 그리고 어떻게 작동하는지 살펴보겠습니다. 본격적으로 시작하기 전에 RAID가 정확히 어떤 약어인지부터 정의해 보겠습니다.
RAID의 정의
RAID는 'Redundant Array of Independent Disks(독립 디스크의 중복 배열)'의 약자로, 여러 개의 디스크에 데이터를 분산 저장하여 성능과 안정성을 높이는 데이터 저장 방식입니다.
안정성이 크게 향상되기 때문에 기업들이 RAID 시스템의 주요 사용자라는 점은 놀라운 일이 아닙니다. RAID는 30년 가까이 이어져 온 검증된 개념으로, 꼭 기업만 사용할 수 있는 것은 아닙니다. 영상 편집이나 음악 제작 작업을 하는 개인 사용자도 충분히 활용할 수 있습니다. RAID는 단일 드라이브 대비 성능과 안정성을 높일 뿐만 아니라 볼륨 크기까지 확장할 수 있어 기업들에게 특히 각광받고 있습니다.
하드웨어 RAID vs 소프트웨어 RAID
RAID 시스템을 구성하는 방법에는 크게 두 가지가 있습니다. 첫 번째는 하드웨어 방식입니다. 호스트 컴퓨터(또는 서버)와 RAID 시스템 사이에 RAID 컨트롤러를 두어 전체 시스템을 제어하는 구조입니다. 하드웨어 구성에서는 RAID 컨트롤러가 데이터의 읽기·쓰기, 저장 위치, 기록될 드라이브 지정 등 RAID와 관련된 모든 작업을 담당합니다. 호스트 운영체제는 RAID 시스템 내부에 여러 드라이브가 있다는 사실 자체를 인식하지 못하고, 하나의 논리적 단위로만 인식합니다.
반면 소프트웨어 RAID 어레이는 조금 다릅니다. RAID 컨트롤러 역할을 운영체제가 직접 수행하며, 별도의 하드웨어 RAID 컨트롤러가 없기 때문에 OS가 여러 작업을 동시에 처리해야 하므로 성능이 다소 저하됩니다.
RAID 레벨과 실제 작동 방식을 살펴보기에 앞서, RAID 시스템을 이해하는 데 꼭 필요한 핵심 용어부터 확인해 보겠습니다.
핵심 용어
첫 번째는 '패리티(parity)'입니다. 패리티는 RAID에서 매우 중요한 개념으로, 여러 드라이브에 데이터를 분산 배치하여 부하 분산과 장애 발생 시 데이터 복구를 지원하는 방식입니다.
두 번째는 '중복성(redundancy)'입니다. 컴퓨터 과학 관점에서 중복성이란 핵심 구성 요소를 복제해 두는 것을 의미하며, 하나에 장애가 발생해도 전체 시스템이 함께 멈추지 않도록 하는 개념입니다. RAID 시스템에서 이 구성 요소는 바로 드라이브입니다. 이에 대해서는 잠시 후 더 자세히 설명하겠습니다.
RAID의 또 다른 두 가지 핵심 개념은 '미러링(mirroring)'과 '스트라이핑(striping)'입니다. 미러링은 이름 그대로 한 드라이브의 데이터를 다른 드라이브에 그대로 복제하여, 문제가 생겼을 때 동일한 정보로 복구할 수 있게 하는 방식입니다.
스트라이핑은 데이터를 여러 디스크에 순차적으로 나누어 기록하는 방식으로, 잠시 후 'RAID 0' 구성 예시를 통해 자세히 확인해 보겠습니다.
그전에 한 가지 짚고 넘어갈 점이 있습니다. RAID에는 실로 다양한 레벨이 존재합니다. 이번 영상에서는 네 가지만 다루지만, 예를 들어 맞춤형 애플리케이션이나 데이터베이스를 운영하는 기업이라면 필요에 따라 자신만의 RAID 레벨을 구성할 수도 있습니다. 레벨은 RAID 0부터 RAID 61까지, 그 이상까지 있으며 중첩(nested) 또는 커스텀 레벨도 많습니다. 여기서 소개할 네 가지가 가장 기본적인 레벨입니다.
RAID 0
RAID 0 구성에는 최소 두 개의 드라이브가 필요하며, 스트라이핑 개념을 사용합니다. 데이터가 두 디스크에 걸쳐 스트라이프 형태로 분산 저장되어, 단일 디스크 대비 읽기·쓰기 성능이 크게 향상됩니다. 하지만 중복성 측면에서는 취약합니다. 드라이브 하나(예: 드라이브 1)에 장애가 발생하면 해당 데이터는 다른 곳에 복제되어 있지 않아 되찾을 방법이 없기 때문입니다.
RAID 1
다음 레벨은 RAID 1로, 앞서 살펴본 미러링 개념을 적용합니다. 이 구성 역시 두 개의 드라이브를 사용하며, 첫 번째 드라이브의 데이터를 두 번째 드라이브에 미러링합니다. 따라서 드라이브 1에 장애가 발생해도 드라이브 2에 동일한 데이터가 남아 있으므로 문제없이 복원할 수 있습니다. RAID 1은 중복성과 데이터 보안을 확보하는 가장 기본적인 형태입니다.
RAID 5
이제 좀 더 복잡한 레벨로 넘어가 RAID 5를 살펴보겠습니다. RAID 5는 패리티 개념을 도입합니다. 즉, 여러 드라이브에 데이터를 분산하여 복구를 지원하는 방식입니다. 이 구성에는 네 개의 드라이브가 사용되었으며(RAID 5는 최소 세 개의 드라이브 필요), 빨간색으로 표시된 부분이 패리티입니다. 드라이브 4에 장애가 발생하더라도 다른 드라이브들의 패리티를 이용해 데이터를 재구축할 수 있습니다. RAID 5의 패리티는 전체적으로 드라이브 하나 분량의 공간을 차지하며, 드라이브 하나의 장애까지 견딜 수 있습니다.
RAID 5에서 한 단계 더 나아가 다섯 번째 드라이브, 즉 '핫 스페어(hot spare)'를 구성할 수도 있습니다. 핫 스페어는 시스템 내에 상주하지만 평소에는 데이터가 기록되지 않은 대기 드라이브입니다. 만약 드라이브 4에 장애가 발생하면 핫 스페어(드라이브 5)가 그 자리를 대신하며, 다른 드라이브들의 패리티를 기반으로 데이터가 기록되므로 데이터 손실이 없습니다. 이후 고장 난 드라이브를 제거하고 새 드라이브를 어레이에 삽입하면, 그 드라이브가 새로운 핫 스페어가 됩니다. 이 역시 데이터 손실을 방지하는 효과적인 중복성 확보 방법입니다.
RAID 6
마지막으로 RAID 6입니다. RAID 6는 패리티 개념을 한 단계 더 발전시킨 '이중 패리티(dual parity)'를 사용합니다. RAID 6 어레이에는 다섯 개의 드라이브가 있으며(RAID 6는 최소 네 개의 드라이브 필요), 이중 패리티가 드라이브 전반에 걸쳐 분산되어 총 두 개 드라이브 분량의 공간을 차지합니다. 덕분에 어레이 내에서 두 개의 드라이브가 동시에 장애가 발생해도 데이터를 복구할 수 있습니다. 두 개의 드라이브가 모두 다운되더라도 나머지 드라이브들의 이중 패리티를 통해 어레이 내 데이터를 재구축할 수 있으므로, 신뢰성과 데이터 보안이 한층 강화됩니다.
마지막으로 꼭 기억해야 할 점이 있습니다. 중복성과 패리티는 백업과 같지 않습니다. RAID 시스템을 사용하더라도 반드시 별도의 백업을 유지해야 한다는 사실을 잊지 마세요.
RAID 시스템에 데이터를 저장하고 계신가요? 어떤 레벨을 사용하시며, 그 이유는 무엇인가요? 아래 댓글로 알려주세요!