RAID 4 (블록 단위 스트라이핑 + 단일 패리티 디스크)

핵심 인사이트 (3줄 요약)

  1. 본질: RAID 4는 데이터를 블록 단위로 여러 디스크에 쪼개어 쓰는 스트라이핑(Striping) 기법을 사용하면서, 오직 1대의 전담 디스크(Dedicated Parity Disk)에만 데이터를 복구하기 위한 패리티(Parity) 비트를 몰아서 저장하는 스토리지 아키텍처다.
  2. 가치: 미러링(RAID 1)처럼 디스크 용량의 50%를 낭비하지 않고 단 $1/N$의 용량(패리티 디스크 몫)만 희생하면서도 디스크 1대의 고장을 완벽하게 이겨내는(Fault Tolerant) 최초의 경제적인 역산 복원(XOR) 시스템을 도입했다.
  3. 한계: 모든 쓰기 작업(Write)이 발생할 때마다 반드시 유일하게 지정된 '단일 패리티 디스크'를 거쳐 패리티가 갱신되어야 하므로 그 디스크에 극심한 병목 현상(Bottleneck)이 발생하며, 이 치명적 태생 결함으로 인해 현대에는 거의 멸종하고 RAID 5로 진화하는 징검다리 역할에 그쳤다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: 초기 RAID의 설계자들은 RAID 0의 '놀라운 속도'와 부서지면 다 날아가는 무방비 리스크, RAID 1의 '안전함' 대신 50%의 무지막지한 하드웨어 비용 출혈 사이에서 깊은 고민에 빠졌다. 이를 기술적으로 타결하기 위해 "데이터 중복 복사본을 남기지 말고, 수학적인 오답 노트 힌트(패리티)만 써두어서 계산으로 복원하자"고 제안한 것이 패리티 레이드의 서막이며 그중 묶음(Block) 단위로 기록하는 모델이 RAID 4다.

  • 필요성: 당시 하드 디스크 구매 비용이 서버 전체 가격을 위협할 만큼 비쌌던 시절, 4개의 디스크를 샀을 때 RAID 1을 주면 2개 분량의 용량만 쓸 수 있었다. 그러나 이 패리티(RAID 4)의 마법을 도입하면 디스크 1개만 보험용(Parity)으로 할당하고 나머지 3개를 순수 데이터 용량(Capacity)으로 뽑아 쓰면서도 "아무 디스크 한 개가 죽더라도 복구 가능한 안전함"을 달성하는 기적적인 비용 최적화를 입증하여 기업들에게 열광을 받았다.

  • 💡 비유: RAID 4는 4명의 학생(디스크)이 조별 과제를 단독으로 나눠서 써오는데(스트라이핑), 맨 마지막 4번째 학생은 보고서 내용은 하나도 안 쓰고 오직 앞 3명이 쓴 글자 수의 "합계(패리티)" 엑셀만 전담 계산해 적고 있는 억울한 역할을 맡은 팀입니다. 만약 2번 학생이 결석(고장)해도, 앞의 학생들 과제물과 4번 학생의 '총합계'를 대조(XOR 역산)해 빼보면 이가 빠진 2번 학생이 뭘 썼어야 하는지 알아낼 수 있죠! 다만 4번 학생은 모두가 글자를 쓸 때마다 계속 지우개로 합계를 다시 고쳐 써야 해서(병목 타격) 미쳐버릴 지경이 됩니다.

  • RAID 4의 데이터 및 지정 패리티 구조 매핑: 어떻게 블록 데이터들과 XOR 계산 값이 전담 디스크 한 곳에만 몰리는지를 ASCII 다이어그램으로 시각화하면 다음과 같다.

  ┌─────────────────────────────────────────────────────────────────────────────┐
  │                 RAID 4 어레이 병목의 구조 (단일 패리티 집중)                │
  ├─────────────────────────────────────────────────────────────────────────────┤
  │                                                                             │
  │     가상 볼륨 /dev/md0 에 [ A | B | C ] 3개의 블록 쓰기 명령 하달           │
  │                                                                             │
  │      [ 데이터 분산 처리 ]             [ 패리티 단독 계산 및 몰빵 ]          │
  │   ┌────────┐  ┌────────┐  ┌────────┐    ┌────────────────────┐              │
  │   │ 디스크 1│  │ 디스크 2│  │ 디스크 3│    │ 패리티 전담 디스크(P)│         │
  │   │        │  │        │  │        │    │    (Bottleneck!)   │              │
  │   │        │  │        │  │        │    │                    │              │
  │   │ Data A │  │ Data B │  │ Data C │ == │ Parity(P1) =A⊕B⊕C  │◀─┐           │
  │   │ Data D │  │ Data E │  │ Data F │ == │ Parity(P2) =D⊕E⊕F  │  │           │
  │   │ Data G │  │ Data H │  │ Data I │ == │ Parity(P3) =G⊕H⊕I  │  │           │
  │   │  ...   │  │  ...   │  │  ...   │    │     ... (혹사)     │  │           │
  │   └────────┘  └────────┘  └────────┘    └────────────────────┘  │           │
  │                                                 🔥 불타는 부하 발생 │       │
  │                                                                   │         │
  │  * 문제점: 1~3번 디스크가 독립적으로 다른 블록을 무작위로 쓸 때마다,      │ │
  │           이 불쌍한 패리티 전담 4번 디스크는 매번 무조건 같이 불려나가     ││
  │           자신의 I/O(쓰기암 리프트)를 허덕이며 바꿔치기해야 함.          │  │
  └─────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] RAID 4의 핵심 아키텍처는 스트라이핑 된(Striped) 블록 데이터가 무방비로 분산 기록될 때(1, 2, 3번 디스크), 이 수치들의 이진수 배타적 논리합(XOR)을 계산하여 유일하게 지정된 Parity 디스크 한 곳에만 들이붓는다. 이 XOR 연산(예: $1 \oplus 0 \oplus 1 = 0$) 덕에 디스크 중 하나가 물리적으로 사망하더라도 복원이 가능해졌다. 이 방식은 순차적(Sequential) 대형 파일을 읽을 때는(Read) 훌륭한 속도를 보여주지만, 작고 수많은 무작위 쓰기(Random Write)가 여기저기서 일어날 때마다 무조건 패리티 디스크 1대에만 쓰기 요청이 몰리게(Traffic Jam) 되므로 구조적 한계인 패리티 디스크 쓰기 병목(Parity Disk Bottleneck)의 대재앙이 일어난다.

  • 📢 섹션 요약 비유: 이 구조는 마치 교차로에 3개의 고속 톨게이트(데이터)를 뚫어놓았으면서도 결제를 담당하는 영수증 발급 창구 직원(패리티)은 단 1명만 뽑아둔 채 톨게이트 맨 끝에 세워둔 격이라, 영수증 직원이 과로로 쓰러지거나 느려져 결국 전체 톨게이트 차선이 마비되는 최악의 교통체증 설계와 같습니다.

Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

1. XOR 패리티 생존율 모델 (Fault Recovery)

패리티 시스템을 가능케 하는 이진법 덧셈 뺄셈의 마법, 배타적 논리합(Exclusive OR, $\oplus$)의 특성은 디스크 용량을 N-1이나 아끼면서 데이터를 유추(Guess)해내는 유일한 단서다.

디스크 1디스크 2디스크 3 (고장)패리티(P)복구 연산 메커니즘비유
101 로 저장됨!0 (짝수개)(정상 운영 시) 그냥 컨트롤러만 묵묵히 저장 기록평소에 팀원 점수들의 종합 스코어(P)만 조장 장부에 기입해둠.
1 유지0 유지💥 하드 파괴됨0 (온전함)1 ⊕ 0 ⊕ P(0) = 1조장 장부 총점에서 남은 친구 점수를 빼보니 고장 난 친구의 점수 역 채굴 획득!
  • 디스크 N개 중 단 하나의 기계적 결함만 허용(1-Drive Fault Tolerance)한다.
  • 고장난 디스크를 빼고 새 깡통을 핫스왑으로 끼우면 커널의 MDADM이나 하드웨어 CPU가 미친듯이 빈자리에 XOR 역산을 수행해(Rebuilding) 새 디스크를 100% 데이터로 가득 채워버린다.

2. 치명적인 쓰기 오버헤드 (Write Penalty)와 RMW(Read-Modify-Write)

RAID 4가 멸망하게 된 이유는 바로 이 Read-Modify-Write(읽고-수정하고-쓰기) 로 불리는 끔찍한 쓰기 페널티(Write Penalty) 메커니즘 탓이다.

작은 데이터 통과(예: 부분 업데이트) 하나를 처리하기 위해, 백엔드에서는 디스크 I/O가 4번이나 무자비하게 터진다. (패리티 재산정을 위해 옛날 블록과 옛날 패리티를 읽어 와야만 새 값을 산출할 수 있기 때문이다).

  1. Read: 데이터 디스크에서 기존(Old) 데이터 블록 한 개를 읽어낸다. (I/O 1회)
  2. Read: 패리티 전담 디스크에서 기존(Old) 패리티 블록을 읽어낸다. (I/O 2회)
  3. Modify (XOR Calculate): CPU 또는 카드 엔진이 (Old Data XOR New Data) XOR Old Parity = New Parity 공식을 풀어낸다.
  4. Write: 진짜 바꿀 데이터 디스크에 새(New) 데이터를 덮어쓴다. (I/O 3회)
  5. Write: 패리티 전담 디스크에 새(New) 패리티 블록을 업데이트해 쓴다. (I/O 4회)
  • 결과 병목 파괴: 다른 디스크들은 펑펑 쉬고 있는데 무조건 단계 2와 단계 5에서는 저 불쌍한 단일 패리티 드라이브를 건드려야만 하므로, 그 전담 디스크가 초당 견딜 수 있는 IOPS(예: 고작 150 IOPS 한계) 수치에 묶여 서버 전체의 IOPS 성능이 하향 평준화되어 버린다. 대참사다.

  • 📢 섹션 요약 비유: 이 4번의 헛발질(RMW 페널티)은 햄버거 메뉴판의 치즈를 베이컨으로 1개 수정하려고, 햄버거를 만들지 않고 옛날 영수증 읽어오기, 옛날 장부 재대조하기, 새 영수증 찍기, 도장 결재받기를 매번 시키는 관료제 끝판왕 테이블 시스템과 같아 서비스의 목을 스스로 조릅니다.


Ⅲ. 실무 적용 및 안티패턴 (퇴역 기술의 통찰)

NetApp WAFL 시스템에서의 유일한 생존 부활

표준적인 서버 인프라 세계에서 RAID 4는 병목의 치욕을 안고 멸종했지만(그리고 다음 숫자인 분산 패리티 RAID 5에 정권을 내주었지만), 전 세계 엔터프라이즈 스토리지의 거장 넷앱(NetApp)은 독자 OS 파일시스템 계층 (WAFL - Write Anywhere File Layout) 소프트웨어 기술력으로 저 빌어먹을 Parity 병목을 뚫어버리고 자기들만의 변종 RAID-DP/RAID 4를 전성기로 이끌어냈다.

  • NetApp의 우회 묘책법: WAFL은 수많은 더러운 Random Write 조각들을 즉각 바로바로 디스크에 내려 꽂지 (RMW 페널티) 않고 거대한 고속 NVRAM(배터리 백업 RAM) 캐시에 차곡차곡 모아놨다가, 꽉 차서 순차적인 아주 긴 줄(Full-Stripe Write 방식) 로 변압한 채로 디스크에 한 방에 길게 부어버린다. 그러면 패리티 디스크는 찔끔찔끔 불리는 병목에 갈리지 않고 그냥 쫙 스트리밍으로 한 번만 계산하면 되어 '단일 패리티 디스크' 구조라도 미친 성능으로 I/O를 소화해냈다. 이 S/W 캐시 컨트롤러 트릭은 파일시스템이 하드웨어 물리 한계를 구원한 가장 아름다운 승리 사례로 꼽힌다.

안티패턴 및 주의점

  • 오늘날 범용 리눅스 환경 (mdadm 이나 LVM)에서 일부러 RAID Level 4 옵션을 고르는 것은 아키텍트의 완벽한 징계 대상급 실수다. 병목을 제거한 분산 RAID 5가 완전히 보급된 지금 시대에는 오직 역사적인 테스트나 구형 레거시 복원 이외에는 단독 채택 구성을 철저히 지양(금지)한다.

  • 📢 섹션 요약 비유: 이제 와서 RAID 4를 쓴다는 것은 고속도로 하이패스(RAID 5 분산 톨게이트 칩)가 깔린 21세기에, 굳이 고지식하게 국도 끝에 동전 결제 아저씨 1명만 세워놔 명절 체증을 재현하는 시간 여행 아키텍처와 다를 바 없습니다! 단, 천재 기업(넷앱)은 차들을 100대씩 버스에 실어서 한 방에 결제시켜 버리는 편법(WAFL)으로 이 단점을 찢었을 뿐이죠.


Ⅳ. 기대효과 및 결론

RAID 4의 역사적 등장(그리고 장렬한 실책 퇴장)은 스토리지 업계를 뒤집어놓은 두 가지 혁명을 증명한 프로토타입 설계도로 남았다.

  1. 첫 번째 증명 (비용 절감 혁명): "용량의 반을 버려야 한다(RAID 1)"는 자본적 저주에서 벗어나, 총 디스크가 10개라도 단 1개 (총 10%의 용량)만 패리티로 희생하면 전체를 고장으로부터 보위할 수 있다는 N-1 다대일 오류 복원 구조의 가능성을 상용(블록 스트라이프 전송)에 최초 구상 성사시켰다.
  2. 두 번째 증명 (분산 패리티 필요성 통찰): 단일 자원에만 부하가 쏠리는 디자인(Single Parity Disk)은 트래픽 폭증 서버 환경(I/O 스케일업 아키텍처)에서는 물리적으로 붕괴한다는 것을 몸소 한계 입증함으로써 다음 번호의 기술(패리티를 모든 디스크에 골고루 흩뿌리는 RAID 5)을 창조하게 만든 반면교사의 구세주 역할을 담당했다.

결과적으로 RAID 4는 오늘날 시스템 엔지니어가 명령어로 치는 설정값에서 제외되었지만, 컴퓨터 공학에서 '성능 대역폭', '신뢰성 결함 대안', 그리고 '특정 자원 병목' 이라는 세 가지 트라이앵글 딜레마를 가장 직관적으로 보여주는 교보재의 화석이자 영속적인 블록 분산 기술의 핵심 모뉴먼트다.


📌 관련 개념 맵

개념관계
RAID 5 (분산 패리티)이 RAID 4의 병목을 보고 경악한 엔지니어들이 "패리티 전용 전담을 없애고 다 골고루 나눠 짐을 지우자"고 해서 탄생한 직계 완전체 후손.
Write Penalty (RMW 페널티)1바이트 찔끔 바꿨다고 원본 읽고, 패리티 읽고 디스크 4번 연산 뻘짓하게 만드는 병목. 이를 타파하는 것이 모든 스토리지 컨트롤러 튜닝의 전쟁의 역사.
WAFL (Write Anywhere File Layout)죽은 자식 불알 만지던 격인 RAID 4 구조를 소프트웨어 메모리 지연 적재 캐시 기술로 감싸 병목을 소거해 초특급 장비로 환생시킨 파일시스템 기적.
MTBF (Mean Time Between Failures)고장 난 디스크 한 장을 복원하기 위해 패리티(P) 원본을 맹거품 끌어올려 도출하는 그 긴 시간 동안 또 하나가 고장 나면 파괴되는 확률 한계점 공식.

👶 어린이를 위한 3줄 비유 설명

  1. 팀원 5명이서 다 같이 블록을 조립하려고 분담했어요! (RAID 4). 앞의 4명은 열심히 집을 만들고 마지막 5번째 친구는 '블록 개수 기록장' 무조건 쓰는 전담을 시켰죠. (패리티 디스크 전담)
  2. 한 명이 갑자기 아파서 결석해도 5번째 친구 수첩을 보고 뭐가 모자란지 알게 돼 안전해요(고장 복구율 달성). 완전 아이디어 좋죠!
  3. 하지만 치명적인 문제가 생겨버렸어요! 4명이 1초마다 계속 집을 부수고 다시 지을 때마다 5번째 친구가 계속 혼자 수첩을 지우고 다시 쓰느라고 손목 관절염(패리티 병목 폭발)에 걸려 팀 성적이 다 망하는 구조가 드러난 거예요! (퇴역)