RAID5 완전 정복
— 개념부터 디스크 장애 복구까지 실무 가이드
1. RAID5란 무엇인가?
RAID(Redundant Array of Independent Disks)는 여러 개의 디스크를 논리적으로 묶어 하나의 스토리지처럼 사용하는 기술입니다. 성능 향상, 용량 확장, 그리고 데이터 보호 중 어느 쪽에 무게를 두느냐에 따라 RAID 0, 1, 5, 6, 10 등 다양한 레벨이 존재합니다.
그중 RAID5는 성능 + 용량 효율 + 내결함성을 균형 있게 제공하는 레벨로, 중소기업 파일 서버, NAS, 데이터베이스 서버에서 가장 널리 쓰입니다. 최소 3개의 디스크가 필요하며, 데이터와 패리티(오류 검증 정보)를 모든 디스크에 분산 저장하는 것이 핵심입니다.
2. 패리티(Parity)의 원리
RAID5의 가장 중요한 개념은 패리티입니다. 패리티는 데이터를 XOR(배타적 논리합) 연산으로 계산한 값으로, 디스크 하나가 죽어도 나머지 디스크의 데이터와 패리티를 조합해 원본 데이터를 재계산할 수 있게 해 줍니다.
XOR 연산 예시
디스크 A = 1010, 디스크 B = 1100, 디스크 C = 0110 일 때
패리티 P = A XOR B XOR C
= 1010
XOR 1100
XOR 0110
= 0000 ← 이 값을 패리티 디스크에 저장
복구 시: A = B XOR C XOR P 로 역산 가능
RAID5 데이터 배치 구조
패리티가 특정 디스크에만 몰리지 않도록, 스트라이프마다 패리티 블록의 위치를 순환 배치합니다. 이를 분산 패리티(Distributed Parity)라 하며, 특정 디스크에 쓰기 부하가 집중되는 문제를 방지합니다.
▲ 스트라이프마다 패리티(초록) 위치가 순환됩니다
3. RAID5의 특징과 장단점
| 항목 | 내용 |
|---|---|
| 최소 디스크 수 | 3개 |
| 실제 사용 용량 | (n-1) × 디스크 용량 |
| 허용 장애 수 | 디스크 1개 |
| 읽기 성능 | ⭐⭐⭐⭐ (스트라이핑으로 빠름) |
| 쓰기 성능 | ⭐⭐⭐ (패리티 계산 오버헤드 있음) |
| 내결함성 | ⭐⭐⭐ (2개 동시 장애 시 데이터 손실) |
장점
디스크 4개 기준 75%의 용량 효율을 제공해 RAID1(50%)보다 훨씬 경제적입니다. 읽기 작업은 모든 디스크에서 병렬로 수행되어 단일 디스크 대비 속도가 크게 향상됩니다. 또한 한 개의 디스크가 고장 나도 서비스를 중단 없이 운영하면서 교체 후 복구가 가능합니다.
단점
쓰기 작업마다 패리티를 다시 계산해야 하는 Write Penalty가 발생합니다. 특히 소량 랜덤 쓰기가 잦은 환경에서는 성능 저하가 눈에 띌 수 있습니다. 그리고 디스크가 2개 이상 동시에 고장 나면 데이터를 완전히 복구하기 어렵습니다. 대용량 디스크(8TB 이상)를 사용할 때는 리빌드 도중 추가 장애 위험이 높아지므로 RAID6 도입도 고려해야 합니다.
4. 디스크 1개 장애 — 단계별 대처 방법
RAID5에서 디스크 1개가 고장 나면 어레이는 Degraded(성능 저하) 모드로 전환됩니다. 데이터는 아직 살아 있지만, 이 상태에서 또 다른 디스크가 고장 나면 데이터가 손실되므로 즉시 조치해야 합니다.
▶ 리눅스 소프트웨어 RAID(mdadm) 기준
어레이 상태 확인
현재 RAID 상태와 어떤 디스크가 고장났는지 파악합니다.
cat /proc/mdstat # 또는 mdadm --detail /dev/md0
출력 예시에서 [UUU_] 형태(언더바 = 고장 디스크)로 확인됩니다.
고장 디스크 강제 제거
이미 고장 상태지만, 명시적으로 어레이에서 제거해 교체 준비를 합니다.
mdadm /dev/md0 --fail /dev/sdb mdadm /dev/md0 --remove /dev/sdb
물리 디스크 교체
서버 전원을 끄거나, 핫 스왑(Hot Swap) 지원 시 전원 유지 상태로 고장 디스크를 제거하고 동일 용량 이상의 새 디스크로 교체합니다.
새 디스크를 어레이에 추가 (리빌드 시작)
새 디스크를 인식시킨 후 어레이에 추가하면 자동으로 리빌드가 시작됩니다.
mdadm /dev/md0 --add /dev/sdb
리빌드 진행 상황 모니터링
수십 분에서 몇 시간이 걸릴 수 있습니다. 완료될 때까지 서버 부하를 낮게 유지하세요.
watch -n 5 cat /proc/mdstat # 출력 예: # [==========>..........] recovery = 54.3% (112640/207872K) # finish=15.7min speed=94712K/sec
mdadm --detail /dev/md0 실행 시 State가 clean이고 디스크 상태가 모두 active sync라면 정상 복구된 것입니다.
▶ 하드웨어 RAID 컨트롤러(Dell PERC, HPE Smart Array 등) 기준
제조사 전용 유틸리티(예: megacli, HPE SSA)나 iDRAC/iLO 웹 인터페이스에서 고장 디스크를 확인할 수 있습니다.
핫 스페어(Hot Spare)가 사전에 지정되어 있으면 디스크 교체 없이도 자동 리빌드가 시작됩니다.
5. 디스크 2개 동시 장애 — 데이터 복구 방법
RAID5는 디스크 1개 장애까지만 자체 복구가 가능합니다. 2개가 동시에 고장 나면 어레이는 Failed 상태가 되고, 일반적인 방법으로는 데이터에 접근할 수 없습니다. 이 상황에서 취할 수 있는 방법을 현실적으로 설명합니다.
시나리오 A — 2개 중 1개가 소프트웨어 오류(논리적 장애)인 경우
디스크 자체 하드웨어는 살아있지만 파티션 테이블이나 RAID 슈퍼블록이 손상된 경우, 복구 가능성이 있습니다.
모든 디스크 이미지 백업 (최우선)
작업 전 반드시 각 디스크를 dd로 이미징합니다. 원본 디스크를 건드리지 않고 이미지 파일로 작업합니다.
ddrescue /dev/sdb /mnt/backup/sdb.img /mnt/backup/sdb.log ddrescue /dev/sdc /mnt/backup/sdc.img /mnt/backup/sdc.log
RAID 슈퍼블록 스캔
mdadm으로 각 디스크의 RAID 메타데이터를 확인해 어레이 정보를 파악합니다.
mdadm --examine /dev/sdb mdadm --examine /dev/sdc mdadm --examine /dev/sdd
강제 어셈블 시도 (1개 missing 상태로)
살아있는 디스크들로 어레이를 강제 조립합니다. 데이터 일부라도 살릴 수 있습니다.
# --assume-clean 옵션은 리빌드 없이 강제 마운트 시도 mdadm --assemble --force /dev/md0 /dev/sdb /dev/sdc /dev/sdd # 혹은 missing 선언 mdadm --assemble /dev/md0 /dev/sdb /dev/sdd --run --force
읽기 전용 마운트로 데이터 추출
어셈블이 성공하면 즉시 읽기 전용으로 마운트해 중요 데이터를 다른 스토리지로 복사합니다.
mount -o ro /dev/md0 /mnt/recovery rsync -avz /mnt/recovery/ /mnt/safe_backup/
시나리오 B — 2개 모두 물리적 손상(하드웨어 장애)인 경우
두 디스크 모두 플래터 손상, 헤드 크래시 등 물리적 문제가 있다면 일반 소프트웨어 복구 도구로는 한계가 있습니다.
전문 데이터 복구 업체 의뢰
클린룸 환경에서 플래터를 직접 이식하거나 펌웨어를 복구하는 작업이 필요합니다. 국내 대표 업체로는 드림시큐리티, 데이터복구센터 등이 있습니다.
R-Studio, UFS Explorer 등 RAID 복구 전용 도구 활용
RAID 파라미터(스트라이프 크기, 디스크 순서, 패리티 위치)를 수동으로 입력해 논리적 어레이를 재구성하는 방식입니다. 성공 여부는 디스크 손상 정도에 따라 다릅니다.
✓ 정상
✗ 장애
✗ 장애
✓ 정상
▲ 2개 장애 시 패리티로도 원본 데이터 재계산 불가 → Failed 상태
6. 장애를 예방하는 실무 팁
사후 복구보다 사전 예방이 훨씬 중요합니다. 현업에서 바로 적용할 수 있는 습관을 정리합니다.
1. SMART 모니터링 자동화
smartmontools의 smartd를 활성화하면 디스크 이상 징후(재할당 섹터 증가, 불안정 섹터 등)를 조기에 이메일로 받을 수 있습니다.
smartctl -a /dev/sdb # 즉시 상태 확인 systemctl enable smartd # 자동 모니터링 활성화
2. 핫 스페어 디스크 지정
항상 1개의 예비 디스크를 핫 스페어로 어레이에 물려두면, 장애 발생 즉시 자동으로 리빌드가 시작되어 사람이 개입할 필요가 없어집니다.
mdadm /dev/md0 --add-spare /dev/sde # 스페어 추가
3. 주기적인 어레이 스크럽(Scrub)
조용히 쌓여가는 비트 오류(Silent Corruption)를 사전에 찾아내기 위해 월 1회 스크럽을 권장합니다.
echo check > /sys/block/md0/md/sync_action cat /sys/block/md0/md/mismatch_cnt # 오류 수 확인
4. 3-2-1 백업 원칙 준수
데이터 3개 사본, 2종류 이상의 미디어, 1개는 오프사이트(외부) 보관 — RAID가 있어도 이 원칙은 반드시 지켜야 합니다.
7. 정리
지금까지 RAID5의 핵심 개념과 장애 대응 방법을 살펴봤습니다. 핵심 내용을 다시 한번 정리합니다.
📌 핵심 요약
- RAID5는 분산 패리티로 디스크 1개 장애를 자체 복구할 수 있습니다.
- 디스크 1개 장애 → Degraded 모드 → 즉시 교체 + 리빌드로 정상 복구 가능
- 디스크 2개 동시 장애 → Failed 상태 → 소프트웨어 도구로 부분 복구 시도, 어렵다면 전문 업체 의뢰
- 리빌드 중 추가 장애는 데이터 손실로 직결되므로, 핫 스페어와 모니터링이 필수
- RAID는 백업의 대안이 아닙니다. 3-2-1 백업 정책은 반드시 병행해야 합니다.
'데이터복구' 카테고리의 다른 글
| 외장하드 갑자기 인식 안됨 해결 방법 총정리 (윈도우 기준) (0) | 2026.02.25 |
|---|---|
| 하드디스크 데이터 복구, 직접 하기 전에 반드시 확인해야 할 5가지 (0) | 2026.02.25 |
| 컴퓨터 SSD 갑자기 사라졌을 때 해결하는 방법 — 초보자도 따라하는 복구 가이드 (0) | 2026.02.24 |
| USB 메모리 인식 불가 해결 방법 7가지— 원인부터 완벽 해결까지 (0) | 2026.02.24 |
| 외장 하드 인식 안될 때 이렇게 해결하세요-누구나 따라할 수 있는 단계별 가이드 (0) | 2026.02.24 |