느리고 큰 저장장치를 어떻게 하면 빠르고 안정적으로 쓸 수 있을까?
전통 디스크에서는 헤드 이동 최소화가, 현대 SSD/클라우드에서는 IOPS·중복·연결 방식이 답이 된다.
전통적인 하드디스크(HDD)는 물리적으로 회전하는 기계 장치다
| 요소 | 의미 | 특징 |
|---|---|---|
| ① 탐색 시간 | 헤드를 목표 트랙으로 이동 | 가장 큼 (지배적) |
| ② 회전 지연 | 목표 섹터가 헤드 밑에 올 때까지 회전 대기 | RPM에 좌우 |
| ③ 전송 시간 | 실제 데이터 읽기/쓰기 | 상대적으로 작음 |
탐색 시간이 압도적으로 크다 → 헤드 이동을 줄이는 것이 성능의 핵심
여러 요청이 큐에 쌓였을 때, 어떤 순서로 트랙을 방문하느냐로 헤드 총 이동 거리가 크게 달라진다.
예시: 헤드 위치 53, 요청 큐 98, 183, 37, 122, 14, 124, 65, 67
| 알고리즘 | 동작 | 선점/특징 |
|---|---|---|
| FCFS | 요청 온 순서대로 | 공정하나 헤드가 크게 왕복 → 탐색 낭비 극심 |
| SSTF | 현재 헤드에서 가장 가까운 요청부터 | 탐색 최소화하나 기아(SJF의 디스크판) |
| SCAN | 한 방향으로 끝까지 훑고 반대로 회귀 (엘리베이터) | 기아 없음, 규칙적 |
| C-SCAN | 끝까지 간 뒤 처리 없이 반대 끝으로 점프해 같은 방향만 반복 | 대기 시간 균일 |
| LOOK / C-LOOK | SCAN/C-SCAN에서 물리적 끝이 아니라 마지막 요청까지만 이동 | 쓸데없는 끝 이동 생략, 실무에서 많이 씀 |

53→98→183→37→… (총 이동 640) — 왔다갔다 낭비53→65→67→37→14→98→… (총 236) — 가깝게, 대신 멀리 있는 요청 기아 위험53→65→67→98→122→124→183→(끝)→37→14 — 한 방향 훑고 회귀대신 SSD 고유의 특성을 고려하여 다른 방식으로 최적화 한다 (NVM 스케줄링)
여러 디스크로 신뢰성·성능을 얻는다
여러 물리 디스크를 하나의 논리 디스크로 묶어서 중복(신뢰성)과 병렬 접근을 얻는다.
스트라이핑 (성능), 미러링 (복제 중복), 패리티 (계산 복구) 세 가지를 조합하여 구현한다.

| 레벨 | 방식 | 특징 |
|---|---|---|
| RAID 0 | 스트라이핑 (분산 저장) | 빠름, 중복 없음 → 1개 고장 시 전손실 |
| RAID 1 | 미러링 (복제) | 1개 고장 견딤, 용량 절반 |
| RAID 5 | 스트라이핑 + 분산 패리티 | 1개 고장 복구, 균형형 (≥3개), 쓰기 시 패리티 계산 비용 |
| RAID 6 | 이중 패리티 | 2개 고장까지 견딤 |
| RAID 10 | 미러링 후 스트라이핑 | 성능·신뢰성 모두 우수, 용량 절반, DB에 자주 |
⚠️ RAID ≠ 백업
RAID는 디스크 하드웨어 고장을 견디는 것이지, 실수 삭제·데이터 오염은 미러/패리티에도 반영되어 못 살린다. 백업은 별도로 필요하다.
서버의 디스크
관리 서비스