DB 핵심 정리
💽 CH 12 · PHYSICAL STORAGE SYSTEMS

데이터가 물리적으로 앉는 곳
디스크·플래시·테이프의 내부

저장 계층 구조(Storage Hierarchy)부터 HDD 접근 시간 계산, SSD의 FTL·가비지 컬렉션·쓰기 증폭(Write Amplification), 그리고 메모리/디스크 경제학인 5분 규칙까지 — 직접 클릭하고 계산하며 익히는 한국어 학습 자료입니다.

🗼 저장 계층 피라미드 🧮 HDD 접근시간 계산기 🎬 FTL·GC·WAF 애니메이션 ⏱️ 5분 규칙 계산기

12.1 저장 계층 구조 (Storage Hierarchy)

모든 저장매체는 속도·비용·신뢰성의 절충(trade-off) 위에 놓인다. 빠를수록 비싸고 작으며, 쌀수록 느리고 크다.

지속성(Persistence)으로 본 분류

휘발성
(Volatile)
전원이 꺼지면 내용이 소실된다. 예: SRAM, DRAM(메인 메모리).
비휘발성
(Non-Volatile)
전원이 꺼져도 내용이 유지된다. secondary·tertiary 저장장치, battery-backed memory 포함.

저장매체 평가 요소

Speed
접근 속도(지연·대역폭). 위로 갈수록 빠르다.
Cost
단위 용량당 비용(cost per unit). 위로 갈수록 비싸다.
Reliability
데이터 손실에 대한 신뢰성.

인터랙티브: 저장 계층 피라미드

각 층을 클릭하면 휘발성·속도·비용·용량·특징이 오른쪽에 표시됩니다. DRAM과 NVM 사이의 점선이 휘발성/비휘발성 경계입니다.

🗼 저장 계층 피라미드 인터랙티브
한 층을 클릭해 보세요.

Primary

가장 빠르나 휘발성. SRAM·DRAM(캐시·메인 메모리). CPU가 직접 접근.

Secondary

비휘발성, 적당히 빠름. SSD·HDD. 온라인 저장(online storage).

Tertiary

보관(archival)용 자기·광학. Tape·Optic. 가장 싸고 크지만 느림.

🎯 시험핵심 · NVM 3특성

NVM(Non-Volatile Memory)의 핵심 3특성: Persistent(비휘발) · DRAM-like Speed(DRAM급 속도) · Byte-addressable(바이트 단위 접근). 피라미드에서 NVM은 DRAM 아래·SSD 위, 즉 휘발성/비휘발성 경계 바로 아래에 위치한다.

📘 보충 · 실제 NVM 제품과 차세대 매체

보충 실제 NVM: STT-RAM, PCM(상변화 메모리), NVDIMM-N, DCPMM(Intel Optane). 차세대 보관 매체: DNA storage(0/1을 ATGC 염기로, 반감기 500년+), Project Silica(석영 유리에 펨토초 레이저로 write·빛으로 read).

💬 Jim Gray

"Tape is dead, Disk is tape, Flash is disk." — 매체의 역할이 한 칸씩 아래로 밀려나는 흐름을 압축한 문장. 과거의 디스크 역할(랜덤 접근 1차 저장)을 이제 플래시가, 과거의 테이프 역할(순차 백업)을 이제 디스크가 맡는다.


12.2 5분 규칙 (The Five-Minute Rule)

"어떤 페이지를 메모리에 상주시킬까, 디스크에 둘까?"를 경제성으로 답하는 규칙.

대략 5분마다 한 번 이상 참조되는 페이지는, 디스크에서 매번 읽어오는 것보다 메모리에 상주시키는 편이 비용 효율적이다. 손익분기 간격(Break-Even Interval)은 다음 공식으로 구한다.

BreakEvenInterval (초) = ( PagesPerMB / IOPS ) × ( DiskPrice / MemoryPricePerMB )
    = Technology Ratio × Economic Ratio
  • Technology Ratio = PagesPerMB ÷ IOPS — 1MB가 담는 페이지 수를 디스크 IOPS로 나눈 값(시간 차원).
  • Economic Ratio = DiskPrice ÷ MemoryPricePerMB — 디스크 1대 가격을 메모리 1MB 가격으로 나눈 값(비용 차원).

인터랙티브: 5분 규칙 계산기

⏱️ Break-Even Interval 계산기 인터랙티브
Technology Ratio (초)
Economic Ratio
Break-Even Interval

12.3 저장 인터페이스 (Storage Interfaces)

저장장치와 호스트를 잇는 버스의 대역폭. 세대가 올라갈수록 두 배씩 빨라진다.

📊 인터페이스 대역폭 비교 (Gbps) 인터랙티브
SATA·SAS는 전통적 디스크 인터페이스, NVMe는 PCIe 직결로 플래시의 잠재력을 끌어낸다.
🎯 시험핵심 · 인터페이스 속도

SATA = 6 Gbps · SAS = 12 Gbps · NVMe = 24 Gbps. (6 → 12 → 24, 2배씩.)


12.4 HDD — 자기 디스크 (Magnetic Disk)

platter(원판)·read/write head·moving arm·motor로 구성. 데이터 한 블록을 읽는 데 걸리는 시간이 핵심 지표.

접근 시간 4요소 & 3단계

① Seek time

헤드를 올바른 트랙으로 이동(0~수 ms). 가장 큼.

② Rotational delay

원판이 올바른 섹터까지 회전(0~수 ms). 평균 0.5회전.

③ Transfer time

실제 데이터 R/W(보통 <1ms).

④ Controller overhead

컨트롤러 처리 시간(고정값).

Average Disk Access Time = Seek + Rotational delay + Transfer + Overhead
Rotational delay = 0.5 회전 × (60000 / RPM) ms   |   Transfer = (Sector bytes / Rate) 환산

인터랙티브: HDD 접근시간 계산기

🧮 HDD 접근시간 계산기 인터랙티브
① Seek (ms)
② Rot. delay (ms)
③ Transfer (ms)
④ Overhead (ms)
합계 (ms)
🎯 시험핵심 · HDD 접근시간 ≈ 6.2 ms

512B 섹터 · 15000 RPM · avg seek 4ms · 100MB/s · controller 0.2ms 조건에서: seek 4 + rot.delay 2.0(=0.5×60000/15000) + transfer ≈0.005(=512B/100MB/s) + overhead 0.2 = ≈ 6.2 ms. 회전 지연이 두 번째로 크다는 점에 주의.

성능 지표

Disk block

저장 할당·검색의 논리 단위(보통 4KB~16KB). 작은 블록 = 전송 횟수↑, 큰 블록 = 공간 낭비↑.

Sequential vs Random

Sequential: 첫 블록만 seek, 이후 연속. Random: 매번 seek+rot.delay 발생 → 훨씬 느림.

IOPS

초당 처리 가능한 임의(random) 블록 R/W 수. 랜덤 부하의 핵심 지표.


12.5 SSD & FTL

SSD는 표준 블록 인터페이스 뒤에 다수의 NAND 플래시 칩을 숨긴다. 그 핵심 두뇌가 FTL(Flash Translation Layer).

NAND Flash 특성

Read/Write 단위
page 단위로 읽고 쓴다(512B~16KB). read와 write는 비대칭(read가 빠름).
Erase 단위
지우기는 block 단위(page 여러 개 묶음).
No-overwrite
한 page는 1회만 쓸 수 있고, 재기록하려면 먼저 erase해야 한다(제자리 덮어쓰기 불가).
Finite lifespan
flash chip은 erase 횟수에 수명 한계가 있다.

보충 NAND는 NOR보다 저렴해 대용량 저장에 쓰인다.

SSD 내부 데이터 경로

HILFTL(가장 중요) → FIL → Flash Chip 그리드

  • HIL (Host Interface Layer): 호스트의 LBA 요청 수신.
  • FTL (Flash Translation Layer): LBA → PBA(Block#, Page#) 매핑, GC·wear leveling 담당.
  • FIL (Flash Interface Layer): 실제 칩 제어.
  • 채널 병렬성: Channel #0..#N 열 단위로 칩 배치, 같은 행을 동시 접근 → 병렬 처리.
🔁 LBA → PBA 매핑과 Invalidation

호스트가 LBA0를 쓰면 FTL이 빈 위치 (0,0)에 기록. 같은 LBA0를 다시 쓰면 no-overwrite 때문에 제자리에 못 쓰고, 새 위치 (0,1)에 쓴 뒤 옛 위치 (0,0)의 Valid를 N으로 표시한다(Invalidation). 무효 페이지가 쌓이면 GC가 청소한다 → 다음 절.

SSD 수명 관리 — Wear Leveling · Over-provisioning · TRIM 보충

NAND는 erase 횟수에 한계(P/E cycle)가 있고 no-overwrite 특성 탓에 내부 쓰기가 늘어난다(WAF↑). FTL은 이 둘을 완화하려 세 가지 기법을 동시에 쓴다 — 앞 절의 GC·WAF와 직결된다.

Wear Leveling (마모 평준화)

각 블록의 P/E(Program/Erase) cycle 한도는 유한(예: TLC 수천 회)하다. 특정 블록에만 쓰기가 몰리면 그 블록이 먼저 죽고 SSD 전체 수명이 단축된다. FTL은 쓰기를 모든 블록에 고르게 분산해 어느 한 블록만 닳지 않게 한다.

  • Dynamic: 새로 쓰는(hot) 데이터를 erase 횟수가 적은 free 블록으로 보냄.
  • Static: 거의 안 바뀌는(cold) 데이터까지 가끔 옮겨, 닳지 않은 블록도 활용.

Over-provisioning (예비 영역, OP)

물리 용량 중 일부를 호스트에 노출하지 않고 FTL 전용 예비 공간으로 숨긴다(예: 7%, 28%). 예: 128GiB 물리 칩을 120GB로 광고하는 차이가 OP가 된다.

예비 free 블록이 많을수록 GC가 victim을 고르고 valid를 옮길 여유가 커져 WAF가 낮아지고 성능·수명이 함께 좋아진다. OP를 늘릴수록 WAF↓ 이득이 크다.

TRIM 명령

파일을 지워도 OS는 "이 LBA는 더 이상 안 쓴다"를 SSD에 알려주지 않으면, FTL은 해당 page를 여전히 valid로 오인해 GC 때 헛되이 복사한다(WAF↑).

TRIM(SATA) / UNMAP(SCSI) / Deallocate(NVMe)는 OS가 해당 LBA를 무효로 표시하도록 FTL에 통지한다. 그러면 GC가 그 page를 옮기지 않고 버려 복사량이 줄고 WAF가 감소, free 블록 확보도 빨라진다.

📘 보충 · 세 기법과 GC·WAF의 연결 (강의 슬라이드 외 교재(Silberschatz) 보충)

보충 한 줄 요약: Over-provisioning은 GC가 일할 free 공간을 늘려 WAF를 낮추고, TRIM은 옮길 필요 없는 죽은 page를 미리 알려 GC 복사량(SSD writes)을 줄여 WAF를 낮추며, Wear Leveling은 그렇게 발생하는 쓰기를 전 블록에 분산해 수명을 늘린다. 셋 다 앞 절의 WAF = (SSD writes + Host writes) / Host writes에서 분자(SSD writes)를 줄이거나 닳음을 분산하는 방향으로 작동한다.


12.6 가비지 컬렉션 & 쓰기 증폭 (GC & Write Amplification)

무효(invalid) 페이지가 쌓이면 공간을 회수해야 한다. 그 과정에서 호스트가 시키지 않은 내부 쓰기가 발생 → 쓰기 증폭.

Garbage Collection (Greedy)

  1. 블록이 거의 차서 임계치(threshold) 도달.
  2. victim 선택: valid 페이지가 가장 적은 블록(Greedy).
  3. victim의 valid 페이지를 free block으로 Copy(매핑 갱신).
  4. victim 블록 전체를 Erase → 다시 free block으로.

Write Amplification

호스트 쓰기가 GC를 유발해 내부 쓰기가 늘어나는 현상. 성능↓, 수명↓.

WAF = (SSD가 쓴 양 + Host가 쓴 양) / (Host가 쓴 양)

예: GC가 valid 페이지 3개를 옮기고(SSD writes=3), 호스트가 1개를 썼다면(host writes=1) → WAF = (3+1)/1 = 4.

인터랙티브: FTL + GC + Write Amplification 애니메이션

"다음 단계"를 눌러 쓰기 → 무효화 → GC → WAF 계산 시나리오를 따라가 보세요. 파랑=valid, 빨강=invalid, 흰색=free.

🎬 FTL · GC · WAF 시뮬레이터 인터랙티브
"다음 단계 ▶"로 시작하세요.
🎯 시험핵심 · GC Greedy 규칙 & WAF

① GC victim = valid 페이지가 가장 적은 블록(Greedy) — 옮길 데이터가 최소라 비용 최소.
WAF = (SSD writes + Host writes) / Host writes, 캐논 예제 (3+1)/1 = 4. WAF는 항상 ≥ 1이며 클수록 나쁘다.


12.7 SSD 성능 (Performance)

SSD의 진가는 큐 깊이(Queue Depth)를 높여 채널 병렬성을 활용할 때 드러난다.

단일 명령(QD-1) 기준

4KB read ≈ 10,000 IOPS / write ≈ 40,000 IOPS.

병렬(QD-32) 기준

read: SATA 100,000 / NVMe(PCIe) 350,000 IOPS. write(QD-32) 100,000 IOPS.

📊 QD-1 vs QD-32 (SATA vs NVMe) Read IOPS 인터랙티브
큐 깊이를 높이면(QD-32) 병렬성이 살아나고, NVMe는 PCIe 직결로 SATA를 크게 앞선다.

참고: Samsung 970 Pro (NVMe) 사양

항목
Sequential Read3,500 MB/s
Sequential Write2,300 MB/s
Random Read 4KB (QD-32)370,000 IOPS
Random Write (QD-32)500,000 IOPS
Random Read (QD-1)15,000 IOPS
Random Write (QD-1)55,000 IOPS

12.8 RAID (Redundant Arrays of Independent Disks) 보충

여러 개의 값싼 디스크를 묶어 한 대의 논리 디스크처럼 쓰되, 단일 디스크보다 더 신뢰성 있고 더 빠르게 만드는 기법.

📘 보충 · 강의 슬라이드 외 교재(Silberschatz) 보충

보충 RAID는 두 개의 직교(orthogonal)하는 축으로 이해한다. ① 중복(redundancy)으로 신뢰성을 얻고, ② 병렬성(parallelism)으로 성능을 얻는다. 두 축은 독립적이며, 각 RAID 레벨은 둘을 다른 비율로 조합한 것이다.

두 축 ① — Reliability via Redundancy (중복으로 신뢰성)

Mirroring (미러링)

같은 데이터를 두 디스크에 똑같이 둔다. 한 디스크가 죽어도 사본으로 계속 서비스. 두 디스크가 동시에 죽어야 데이터 손실이 일어나는데, 이는 매우 드물다.

읽기는 두 사본 중 가까운 쪽에서 → 읽기 처리량↑. 쓰기는 양쪽 모두 써야 함(둘 중 느린 쪽 기준).

Parity (패리티) — 공간 효율적 중복

사본 전체를 두는 대신 XOR 패리티 한 블록만 둔다. 디스크 한 대가 죽으면 나머지 데이터와 패리티를 XOR해 잃어버린 블록을 복원한다.

P = D0 ⊕ D1 ⊕ D2   |   D1lost = D0 ⊕ D2 ⊕ P
🧮 MTTF · MTTDL · MTTR

MTTF(Mean Time To Failure, 평균 고장 시간): 디스크 한 대가 평균 얼마 만에 고장 나는가(예: 100,000시간). MTTR(Mean Time To Repair, 평균 복구 시간): 고장 난 디스크를 교체·재구성하는 데 걸리는 시간.
미러 쌍의 MTTDL(Mean Time To Data Loss, 평균 데이터 손실 시간)은, 한 디스크가 죽고 MTTR 안에 나머지 한 대마저 죽어야 손실이 나므로 단일 디스크 MTTF보다 훨씬 길다:

MTTDL(mirror) ≈ MTTF² / (2 × MTTR)

예: MTTF 100,000h, MTTR 10h → MTTDL ≈ 100,000² / (2×10) = 5 × 108 시간(약 57,000년). 복구 시간(MTTR)을 줄일수록 안전해진다.

두 축 ② — Performance via Parallelism (병렬성으로 성능)

Data Striping (데이터 스트라이핑)

한 덩어리의 데이터를 여러 디스크에 쪼개 분산해, N개 디스크를 동시에 읽고 써 대역폭을 N배로 끌어올린다.

Bit-level vs Block-level

  • Bit-level striping: 한 바이트의 비트들을 여러 디스크에 분산. 한 블록 접근에도 모든 디스크가 동원됨 → 동시성↓. 현실에선 거의 안 씀.
  • Block-level striping: 블록 단위로 라운드로빈 분산(블록 i → 디스크 i mod N). 큰 전송은 병렬, 작은 독립 요청들은 서로 다른 디스크에서 동시 처리 → 가장 실용적.

인터랙티브: RAID 레벨 비교

레벨 버튼을 누르면 블록 배치 다이어그램과 특성(공간 효율·고장 허용·성능)이 갱신됩니다. RAID 0·1·5는 SVG로 실제 블록/패리티 배치를 도식화합니다. 파랑=데이터, 보라=패리티, 초록=미러 사본.

🗄️ RAID 레벨 비교 인터랙티브

RAID 레벨 표

레벨방식공간 오버헤드허용 고장읽기 / 쓰기 성능비고
RAID 0Block striping, 무중복0%0대최고 / 최고신뢰성 최저(한 대만 죽어도 전손). 순수 성능용.
RAID 1Mirroring100%1대↑매우 좋음 / 보통(2회 쓰기)가장 안전·단순. 용량 절반.
RAID 2Bit-level + Hamming ECC중간1대디스크 자체 ECC와 중복 → 현재 사용 안 함.
RAID 3Byte-level striping + 전용 parity1대분1대좋음 / 낮음전용 패리티 디스크가 병목. RAID 5에 밀려 거의 안 씀.
RAID 4Block striping + 전용 parity disk1대분1대좋음 / 낮음패리티 디스크에 쓰기 집중 → 병목.
RAID 5Block striping + 분산 parity1대분1대매우 좋음 / 보통패리티를 전 디스크에 분산 → 병목 해소. 가장 널리 쓰임.
RAID 6Block striping + P+Q 이중 분산 parity2대분2대매우 좋음 / 낮음두 디스크 동시 고장 허용. 대용량 어레이의 재구성 위험 대비.

조합·세부 개념

RAID 1+0 (10) vs 0+1

1+0 (스트라이프된 미러): 먼저 디스크를 쌍으로 미러한 뒤 그 미러 쌍들을 스트라이프. 한 쌍에서 한 대가 죽어도 그 쌍의 사본이 살아 어레이가 멀쩡 → 더 견고.

0+1 (미러된 스트라이프): 먼저 스트라이프한 뒤 그 스트라이프 세트 전체를 미러. 한 대만 죽어도 그 스트라이프 세트 전체가 무효가 되어 복구 폭이 큼 → 실무에선 1+0 선호.

RAID 5의 Small-Write Problem

한 블록만 갱신해도 패리티를 다시 계산해야 하므로 read-modify-write가 필요: ① 옛 데이터 read, ② 옛 패리티 read, ③ 새 데이터 write, ④ 새 패리티 write → 4 I/O.

Pnew = Pold ⊕ Dold ⊕ Dnew

작은 무작위 쓰기가 많은 OLTP에선 이 4배 비용이 부담 → 미러(RAID 1/10)가 유리할 수 있다.

Hot Swap

시스템을 끄지 않고 고장 디스크를 교체. 다운타임 없이 복구 시작.

Hot Spare

대기용 빈 디스크를 미리 장착. 고장 즉시 자동 재구성 시작 → MTTR↓.

Hardware vs Software RAID

HW: 전용 컨트롤러·배터리 백업 캐시, CPU 부담↓. SW: OS가 처리, 저렴·유연하나 CPU 사용.

🎯 레벨 선택 기준

① 성능만, 신뢰성 불필요(스크래치·캐시) → RAID 0. ② 단순·안전, 무작위 쓰기 많은 OLTP → RAID 1 / 1+0. ③ 읽기 위주 + 용량 효율 + 1대 고장 허용 → RAID 5. ④ 대용량·재구성 시간이 길어 두 번째 고장이 걱정 → RAID 6. RAID 2·3은 사실상 도태, RAID 4는 RAID 5로 대체.


12.9 디스크 블록 접근 최적화 (Optimization of Disk-Block Access) 보충

HDD의 seek·회전 지연이 비싸므로, OS·DB는 여러 기법으로 물리 접근 횟수와 거리를 줄인다.

📘 보충 · 강의 슬라이드 외 교재(Silberschatz) 보충

보충 핵심 아이디어: 무작위·소량 접근을 순차·대량 접근으로 바꾸고, 비싼 물리 동작(seek/회전)을 모아서·미리·한 방향으로 처리한다.

Buffering (버퍼링)

읽은 블록을 메모리 버퍼에 캐시해 같은 블록의 재접근 시 디스크를 건너뛴다. 쓰기도 모아 두었다 한 번에 내려쓴다.

Read-ahead / Prefetch (선반입)

순차 접근이 예측되면 요청되기 전에 다음 블록들을 미리 읽어 둔다. 전형적 순차 스캔에서 대기 시간을 숨긴다.

File Organization / Clustering

함께 접근되는 블록을 물리적으로 인접하게 배치(클러스터링)해 seek를 줄인다.

시간이 지나면 삽입·삭제로 단편화(fragmentation)가 생겨 인접성이 깨진다 → 재구성(defragmentation) 필요.

Nonvolatile Write Buffers (NV-RAM)

쓰기를 NV-RAM(배터리 백업/플래시)에 먼저 받아 즉시 "안전하다"고 응답한다. 실제 디스크 반영은 나중에 모아서 → 쓰기 지연을 숨기면서 내구성(durability) 보장.

Log-based File System (로그 기반 파일 시스템)

갱신을 제자리에 덮어쓰지 않고 로그의 끝에 순차로 append한다. 흩어진 무작위 쓰기를 하나의 순차 쓰기로 변환해 seek를 거의 없앤다(쓰기 폭주에 강함). 단, 옛 버전 정리를 위한 정리(cleaning) 비용이 따른다 — SSD의 GC와 같은 발상.

Disk-Arm Scheduling (디스크 암 스케줄링)

대기 중인 여러 요청을 어떤 순서로 처리하면 헤드 이동(seek)을 최소화할까?

FCFS

First-Come First-Served. 도착 순서 그대로. 공정하나 헤드가 왔다 갔다 해 이동 거리가 크다.

Elevator (SCAN)

엘리베이터처럼 한 방향으로 끝까지 가며 도중 요청을 처리하고, 끝에서 방향을 뒤집는다. 이동 거리 대폭 감소.

C-SCAN

Circular SCAN. 한 방향으로만 처리하고 끝에 닿으면 처리 없이 시작으로 복귀. 대기 시간을 더 균등하게.

인터랙티브: 디스크 암 스케줄링 (FCFS vs SCAN)

요청 트랙 큐와 시작 위치를 바꿔, FCFS와 SCAN의 헤드 이동 경로·총 이동 거리를 비교하세요.

💿 Disk-Arm Scheduling 인터랙티브
FCFS 총 이동
SCAN 총 이동
절감

12.10 핵심 정리 (Exam Cheatsheet)

시험 직전 한 번 더. 숫자와 공식 위주로.

주제꼭 기억할 것핵심도
저장 계층휘발성(SRAM/DRAM) ↔ 비휘발성(NVM/SSD/HDD/Tape), 경계는 DRAM–NVM 사이. 위=$$$·빠름·작음.🎯 핵심
NVM 3특성Persistent · DRAM-like Speed · Byte-addressable.🎯 핵심
5분 규칙BreakEven = (PagesPerMB/IOPS) × (DiskPrice/MemPerMB) = Technology × Economic.🎯 핵심
인터페이스SATA 6 / SAS 12 / NVMe 24 Gbps.🎯 핵심
HDD 접근시간seek + 0.5×(60000/RPM) + transfer + overhead. 예제 = 6.2 ms.🎯 최빈출
NANDread/write=page, erase=block, no-overwrite, 유한 수명.🎯 핵심
FTLLBA→PBA(Block#,Page#) 매핑, 재쓰기 시 새 page + 옛 page Valid=N(Invalidation).🎯 핵심
GCGreedy: valid 최소 블록을 victim으로, valid copy → erase.🎯 최빈출
WAF(SSD writes + Host writes)/Host writes. 예제 (3+1)/1 = 4.🎯 최빈출
SSD 성능QD-32 read: SATA 100K / NVMe 350K IOPS.보조
SSD 수명Wear leveling(쓰기 분산), Over-provisioning(예비→WAF↓), TRIM(죽은 page 통지→GC 복사↓).보충
RAID두 축: 중복(신뢰성)·병렬(성능). 0=striping, 1=mirror, 5=분산 parity(최다 사용), 6=2대 허용. 5 small-write=4 I/O.보충
MTTDLmirror ≈ MTTF²/(2·MTTR). MTTR 줄일수록 안전.보충
디스크 접근 최적화Buffering·Read-ahead·Clustering·NV-RAM·Log-FS. 암 스케줄링: FCFS < SCAN(엘리베이터) < C-SCAN.보충