Storage & I-O Mechanics
데이터를 영구적으로 보존하기 위한 파일 시스템 아키텍처와 저장 장치의 물리적 비휘발성 제어 기술을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
저장 장치 및 I/O 메카니즘(Storage & I-O Mechanics, SIOM)은 휘발성 CPU 연산 결과를 비휘발성 매체에 안전하고 효율적으로 기록하는 물리적 과정을 다룹니다.
데이터는 시스템 전원이 꺼져도 보존되어야 하며, 이를 위해 운영체제는 복잡한 파일 시스템(FS) 계층과 I/O 스택을 관리합니다. 학습자는 하위 계층의 디스크 스케줄링(HDD/SSD), 장치 드라이버 구조, 상위 계층의 VFS(Virtual File System) 추상화 및 저널링(Journaling) 기법을 학습합니다. 이를 통해 데이터 손실을 방지하고 입출력 병목을 최소화하는 고성능 저장 시스템을 구축합니다.
2. Scope & Boundaries
In-Scope
- Storage Devices: HDD(탐색 지연) vs SSD(플래시 메모리 물리, FTL)의 동작 원리
- I/O Scheduling: 요청 병합(Merging) 및 정렬 알고리즘 (SCAN, C-SCAN, Deadline)
- File System Internals: 아이노드(inode), 디렉토리 구조, 블록 할당 및 저널링 메커니즘
- VFS Interface: 다중 파일 시스템 지원을 위한 가상 추상화 계층 물리
- Reliability Systems: RAID 계층화 기초 및 데이터 무결성 체크섬 기초
Out-of-Scope
- 네트워크 파일 시스템(NFS/DFS)의 분산 프로토콜 (07. System Architecture 영역으로 위임)
- 데이터베이스(DB) 내 인덱싱 소프트웨어 구현 (06. Data Management 영역으로 위임)
Boundaries
- SIOM vs. Database: SIOM은 '섹터/블록 레벨의 물리적 기록과 정합성'에 집중하며, Database는 '기록된 데이터의 논리적 쿼리와 관계'에 집중합니다. (P1:CS2023
/File Systems)
3. Counterexample
- 단순히
fread나fwrite를 사용하여 파일을 저장하는 것은 SIOM 학습이 아닙니다. 쓰기 요청 시 **파일 시스템 캐시(Page Cache)**에 머물다 **지연 쓰기(Delayed Write)**가 발생하여 실제 디스크 섹터에 할당되는 로직과, 전원 차단 시 발생할 수 있는 부분 쓰기(Partial Write) 문제를 저널링이 어떻게 해결하는지 설명할 수 있어야 합니다.
4. Prerequisites
- 커널 및 시스템 인터페이스 물리 (Basic): 장치 파일(Device File) 개념과 시스템 콜 처리가 선행되어야 합니다. (03. KSIP)
- 컴퓨터 아키텍처 (Recommended): DMA(Direct Memory Access)와 하드웨어 인터럽트 흐름 이해가 권장됩니다. (02. Computer Architecture)
5. Learning Map
- Storage Physics: HDD의 기계적 구조와 SSD의 전기적 특성에 따른 제어 차이를 익힙니다.
- Hardware Interface: 버스(Bus) 아키텍처와 컨트롤러 간의 물리적 통신 규격을 이해합니다.
- Driver Mechanics: 장치 드라이버가 하드웨어와 커널을 잇는 물리적 작동 원리를 배웁니다.
- Reliability & RAID: 다중 디스크 구성을 통한 안정성 및 가용성 물리를 실습합니다.
6. Learning Topics
Basic
Core: 저장 장치의 물리와 입출력 관리 (Storage & Hardware)
- Why to Learn: 저장 매체의 하드웨어 특성에 맞는 최적의 입출력 전략을 수립하기 위함입니다.
- What to Learn:
- HDD: 탐색 시간(Seek Time)과 회전 지연(Latency)의 물리
- SSD: 페이지 기반 읽기/쓰기 및 블록 기반 삭제(Erase-before-write)
- DMA(Direct Memory Access)를 이용한 CPU 부하 분산 원리
- How to Learn:
- 디스크 벤치마킹 도구를 사용하여 순차 I/O(Sequential) vs 랜덤 I/O 성능 차이 측정
- 인터럽트 구동 방식(Interrupt-driven)과 폴링(Polling) 방식의 효율 비교
- Implement: 타이머를 이용해 일정 주기로 디스크 상태를 체크하는 기초 폴링 드라이버 모사
Recommended
Core: 디스크 스케줄링과 파일 시스템 구조 (FS Foundations)
- Why to Learn: 다수의 I/O 요청이 몰릴 때 디스크 헤드의 이동을 최소화하여 성능을 높이기 위해서입니다.
- What to Learn:
- 스케줄링 알고리즘: FCFS, SSTF, SCAN, LOOK 이론
- 파일 시스템 구성 요소: 수퍼블록(Superblock), 아이노드(inode), 데이터 블록
- 고정 크기 할당 vs 불연속(Linked/Indexed) 할당 장단점
- How to Learn:
- 리눅스의
ls -i명령어를 통해 아이노드 번호를 확인하고 파일 실체 추적 - 특정 워크로드(Workload) 상황에서 SCAN 알고리즘의 평균 응답 시간 계산
- 리눅스의
- Implement: 아이노드 테이블과 데이터 블록 맵으로 구성된 초미니 가상 파일 시스템 관리기
Practical
Core: 데이터 무결성과 VFS 계층 (VFS & Reliability)
- Why to Learn: 다중 저장 장치를 통합 관리하고 갑작스러운 종료 상황에서 데이터를 보호하기 위함입니다.
- What to Learn:
- 가상 파일 시스템(VFS)의 추상화 인터페이스와 함수 포인터 매핑
- 저널링(Journaling) 파일 시스템의 로그 기록 및 복구(Recovery) 물리
- RAID 0, 1, 5, 10의 물리적 구성과 내결함성 수치
- How to Learn:
mount명령어를 통해 서로 다른 FS(ext4, xfs, ntfs)가 한 논리 트리로 묶이는 관측- 인위적으로 시스템을 다운시킨 후 파일 시스템 체크(fsck)를 통한 복구 과정 분석
- Implement: 소프트웨어 RAID 1(Mirroring)을 모사하여 두 파일에 동일 데이터를 동시 기록하는 로직
Advanced
Core: 고성능 저장 기술 및 스택 최적화 (Advanced Storage Tech)
- Why to Learn: NVMe와 같은 초고속 저장 장치의 잠재력을 최대한 끌어내기 위해서입니다.
- What to Learn:
- NVMe(Non-Volatile Memory express)의 다중 큐(Queue) 아키텍처
- 사용자 공간 I/O(User-space I/O, SPDK)와 제로 카피(Zero-copy) 전송
- 계층형 저장 장치(Tiered Storage)와 캐싱 알고리즘 최적화
- How to Learn:
fio등의 전문 도구를 사용하여 CPU 코어당 I/O 처리량(IOPS) 병목 지점 분석- SSD의 FTL(Flash Translation Layer) 내 웨어 레벨링(Wear Leveling) 알고리즘 연구
- Implement:
mmap을 활용하여 유저 공간에서 커널 버퍼를 거치지 않고 데이터에 접근하는 고속 시퀀서 프로토타입
7. Terminology
8. References
Primary References
- [P1] CS2023 - OS/File Systems — Storage management and I/O.
- [P2] SWEBOK - Computing Foundations — Data persistence and device management.
Secondary References
- [Operating Systems: Three Easy Pieces] Remzi H. Arpaci-Dusseau — The "Persistence" section.
- [Understanding the Linux Virtual File System] — Deep dive into VFS structures.
Industry References
- [NVM Express Specification] — Modern storage protocol standard.
- [RAID Level Definitions] SNIA — Industry standard for storage reliability.
9. Final Checklist
Primary Checklist
- HDD의 기계적 특성(Seek, Rotation)이 대용량 데이터 조회 성능에 미치는 물리적 영향을 정량화할 수 있는가? (P1)
- 파일 시스템의 저널링 기법이 데이터 소실을 막는 시퀀스를 3단계(Log, Write, Checkpoint)로 설명 가능한가? (P1)
Secondary Checklist
- 사용자 프로그램에서
fsync()호출 유무가 시스템 충돌 시 데이터 정합성에 미치는 영향을 인지하는가? - 아이노드 소진(Inode exhaustion) 문제가 물리 용량이 남았음에도 파일 생성을 막는 이유를 설명할 수 있는가?
Industry Checklist
- SSD 환경에서 '쓰기 증폭(Write Amplification)' 현상을 이해하고 수명을 연장하기 위한 OS 설정을 제안 가능한가? (SFIA)
- RAID 5 환경에서 디스크 한 개 장애 시 데이터 복구가 가능한 원리를 패리티(Parity) 비트 관점에서 설명 가능한가?