RAID Storage Systems

RAID는 단일 디스크의 속도·용량·신뢰성 한계를 여러 디스크의 병렬 구성으로 극복하는 스토리지 기술이다. DB 조회 읽기 성능 최적화에서 RAID 10이 DB 읽기 성능 최적화에 적용되는 맥락과 이어진다.

RAID란

RAID(Redundant Array of Inexpensive Disks)는 여러 디스크를 하나의 논리적 디스크처럼 보이게 구성하는 기술이다. OS/애플리케이션에게 투명하게(transparently) 단일 큰 디스크로 보이므로 소프트웨어 변경이 필요 없다. 평가 축은 Capacity(용량), Reliability(내결함성), Performance(성능) 세 가지다.[1]

평가 기준

성능 지표 2가지

지표 설명
Single-request latency 단일 I/O 요청의 응답 시간 — 병렬성 활용 여부
Steady-state throughput 동시 다수 요청의 총 대역폭 — 주요 평가 기준

워크로드 유형

유형 설명 디스크 효율
Sequential 연속된 큰 블록 (e.g., 1MB 파일 스트리밍) Seek/Rotation overhead 작음, S MB/s
Random 소규모 랜덤 위치 접근 (e.g., DB transactional) Seek/Rotation overhead 지배적, R MB/s (S >> R)

이 두 지표와 워크로드 구분이 아래 RAID 레벨별 분석의 기준이 된다.[2]

RAID 레벨별 분석

N = 디스크 수, B = 디스크당 블록 수, S = Sequential 단일 디스크 속도, R = Random 단일 디스크 속도로 둔다.[2:1]

RAID 0 — Striping (순수 성능, 무결함성)

블록을 디스크에 라운드로빈 방식으로 분산 배치한다.[3]

Disk0  Disk1  Disk2  Disk3
  0      1      2      3
  4      5      6      7
평가축 결과
Capacity N × B (100% 활용)
Reliability 0 — 디스크 하나라도 장애 시 데이터 손실
Sequential read/write N × S
Random read/write N × R

Chunk size에는 트레이드오프가 있다: 작으면 파일 I/O 병렬화가 늘지만 positioning time이 늘고, 크면 병렬화는 줄지만 seek 오버헤드가 준다.[3:1]

RAID 1 — Mirroring (최고 신뢰성, 50% 용량 낭비)

각 데이터 블록을 두 디스크에 복제한다.[4]

Disk0  Disk1  Disk2  Disk3
  0      0      1      1      ← mirror pair
  2      2      3      3
평가축 결과
Capacity N × B / 2
Reliability 1개 장애 보장 / 운이 좋으면 N/2개까지
Sequential read N/2 × S (디스크마다 교번 read 시 skip 발생)
Sequential write N/2 × S (두 디스크에 동시 write)
Random read N × R (복제본 중 하나를 자유 선택)
Random write N/2 × R (두 복제본 동시 write)

RAID-10은 stripe of mirrors(RAID-0 위에 RAID-1), RAID-01은 mirror of stripes다.[5] write 중 장애가 나면 두 복제본이 불일치할 수 있는데(Consistent-update problem), non-volatile RAM에 write-ahead log를 유지해 해결한다.[5:1]

RAID 4 — Parity (용량 효율, write bottleneck)

N-1개 데이터 디스크와 1개 전용 Parity 디스크로 구성하며, XOR로 복구한다.[6]

Disk0  Disk1  Disk2  Disk3  Disk4(parity)
  0      1      2      3      P0
  4      5      6      7      P1

임의의 한 컬럼(디스크)이 사라지면 나머지 컬럼을 XOR해서 복원하는 것이 XOR 복구 원리다.[6:1]

평가축 결과
Capacity (N-1) × B
Reliability 1개 장애 허용
Sequential read (N-1) × S
Sequential write (N-1) × S
Random read (N-1) × R
Random write R/2 — 병목!

RAID-4 Write Penalty에는 두 방식이 있다.[7]

Parity 디스크가 모든 write의 공통 병목이 된다 — Sequential write는 괜찮지만 random write는 parity disk I/O가 직렬화된다.[7:1]

RAID 5 — Rotating Parity (RAID 4 병목 해결)

Parity 블록을 디스크 전체에 분산 배치한다.[8]

Disk0  Disk1  Disk2  Disk3  Disk4
  0      1      2      3      P
  5      6      7      P      4
  10     11     P      8      9
  ...
평가축 RAID 4 대비
Capacity 동일: (N-1) × B
Reliability 동일: 1개 장애 허용
Sequential r/w 동일
Random write N/4 × R — parity 병목 제거, RAID 4 대비 대폭 향상

RAID 레벨 요약 비교

레벨 용량 신뢰성 Seq Read Seq Write Rand Read Rand Write
RAID 0 N·B ✗ N·S N·S N·R N·R
RAID 1 N·B/2 1개 장애 N/2·S N/2·S N·R N/2·R
RAID 4 (N-1)·B 1개 장애 (N-1)·S (N-1)·S (N-1)·R R/2
RAID 5 (N-1)·B 1개 장애 (N-1)·S (N-1)·S (N-1)·R N/4·R

실제 선택 가이드

목적 권장 RAID
순수 성능, 신뢰성 불필요 RAID 0
읽기 성능 + 신뢰성 (DB Read Replica 등) RAID 10 (1+0)
공간 효율 + 신뢰성, write 많지 않음 RAID 5
공간 효율 + 신뢰성, write 많음 RAID 6 (2중 parity, 레벨 미포함)

DB 조회 읽기 성능 최적화 패턴에서는 RAID 10(Read 성능 + 1개 장애 허용)이 권장된다. 이는 RAID 1의 Random Read 이점(N·R)과 RAID 0의 Striping 이점을 결합한 형태라고 볼 수 있다.[9]

흔히 놓치는 지점

관련

출처

테스트 질문


  1. file-raid.pdf — RAID 정의, 투명성(transparency), Capacity/Reliability/Performance 3축 평가. PDF 렌더링 도구(poppler)가 이 환경에 설치되어 있지 않아 원문 대조는 하지 못했다.[10] ↩︎

  2. file-raid.pdf — Single-request latency/Steady-state throughput, Sequential/Random workload 구분, N/B/S/R 표기. PDF 원문 대조는 하지 못했다.[10:1] ↩︎ ↩︎

  3. file-raid.pdf — RAID 0 Striping, chunk size trade-off 절. PDF 원문 대조는 하지 못했다.[10:2] ↩︎ ↩︎

  4. file-raid.pdf — RAID 1 Mirroring 절. PDF 원문 대조는 하지 못했다.[10:3] ↩︎

  5. file-raid.pdf — RAID-10 vs RAID-01, Consistent-update problem 절. PDF 원문 대조는 하지 못했다.[10:4] ↩︎ ↩︎

  6. file-raid.pdf — RAID 4 Parity, XOR 복구 원리 절. PDF 원문 대조는 하지 못했다.[10:5] ↩︎ ↩︎

  7. file-raid.pdf — RAID-4 Write Penalty (Additive/Subtractive Parity) 절. PDF 원문 대조는 하지 못했다.[10:6] ↩︎ ↩︎

  8. file-raid.pdf — RAID 5 Rotating Parity 절. PDF 원문 대조는 하지 못했다.[10:7] ↩︎

  9. 출처 매핑 미확인 — "RAID 1의 Random Read 이점과 RAID 0의 Striping 이점을 결합한 형태"라는 해석은 두 절의 표를 엮은 Wiki 차원의 해석이다. ↩︎

  10. 출처 매핑 미확인 — 이번 포맷 변환 작업 환경에는 PDF 페이지 렌더 도구(poppler)가 없어 file-raid.pdf 원문을 직접 대조하지 못했다. 본문의 수치·표는 기존 Wiki 페이지(이전 ingest)의 서술을 그대로 유지했다. 다음에 poppler 또는 대체 PDF 렌더 도구를 확보하면 원문과 대조할 것. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎