HDD vs SSD vs NVMe — 기록 방식과 열화
같은 4KB 덮어쓰기를 세 매체가 다르게 처리하는 것을 실행한다 — HDD의 제자리 자화, SSD의 새 페이지+무효화+GC(P/E 수명 차감), NVMe의 다중 큐.
단계 목록 · 키보드 ←/→ 이동, Space 재생
차이의 뿌리는 하나다 — 자성은 제자리에서 다시 자화할 수 있지만 NAND 셀은 지우기 전엔 다시 쓸 수 없다. 그 비대칭(페이지 쓰기·블록 소거)에서 FTL·GC·마모 평준화·TRIM·쓰기 증폭이 전부 파생된다.
왜 헷갈리는가
"SSD도 그냥 빠른 디스크"라는 모델이 실무 사고를 만든다 — SSD에 조각모음을 돌리고(수명만 깎음), 꽉 채워 쓰다 성능 절벽을 만나고(GC가 절박해짐), NVMe와 SATA SSD를 같은 급으로 취급한다(인터페이스가 10배를 가른다).
애니메이션이 보여주는 것
HDD는 헤드가 그 자리로 가서 자화를 다시 쓰면 끝 — 느리지만 마모 개념이 없다. SSD는 v2를 제자리에 못 쓴다: 빈 페이지에 쓰고 옛 페이지를 무효로 표시하며, 논리→물리 매핑을 컨트롤러(FTL)가 바꾼다. OS는 덮어썼다고 믿지만 실제로는 이사했다.
무효 페이지가 쌓이면 GC가 유효분을 옮기고 블록을 소거한다 — 소거 1회가 그 블록의 P/E 수명(TLC ~3,000회)을 1 깎는 것이 화면의 카운터다. 옮겨 쓰는 만큼 실쓰기가 불어나는 쓰기 증폭, 소거를 고르게 분산하는 마모 평준화, '이거 이제 쓰레기'라고 미리 알려 주는 TRIM이 전부 이 구조의 파생물이다. NVMe는 셀이 아니라 길의 혁신 — SATA의 큐 1개×32깊이를 PCIe 직결·큐 65,535개로 바꿔 NAND의 병렬성을 해방했다.
실무 감각
구조를 알면 운영 규칙이 자명해진다.
- SSD 조각모음 금지 — 임의 접근이 어차피 빠르고, 재배치 쓰기는 수명만 깎는다. TRIM(fstrim)이 그 자리의 올바른 관리다.
- 여유 공간 = 성능: SSD가 차오를수록 GC가 절박해져 쓰기 지연이 튄다. 오버프로비저닝(10~28%)이 그 완충이다.
- 내구 등급 읽는 법: DWPD(하루 전체 용량 쓰기 횟수)·TBW — 쓰기 폭주 워크로드(DB WAL, 로그 수집)는 이 스펙부터 본다.
- 셀 밀도의 거래: SLC→MLC→TLC→QLC로 갈수록 싸고 크지만 P/E 수명과 쓰기 속도가 준다 — 캐시용과 아카이브용이 갈리는 이유.
- NVMe의 진짜 값: 처리량보다 병렬 큐 — 수십 스레드가 동시에 때리는 서버 워크로드에서 SATA와의 격차가 극대화된다.
기억할 것
- 뿌리 하나: NAND는 소거 전 재기록 불가 — 페이지 쓰기·블록 소거의 비대칭.
- SSD 덮어쓰기의 실체 = 이사 + 무효화 + 나중의 GC(수명 차감).
- TRIM은 하고 조각모음은 말 것 — 여유 공간이 곧 쓰기 성능이다.
- NVMe는 셀이 아니라 길(PCIe·다중 큐)의 혁신이다.