콘텐츠로 바로가기

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

  • 단순히 freadfwrite를 사용하여 파일을 저장하는 것은 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

  1. Storage Physics: HDD의 기계적 구조와 SSD의 전기적 특성에 따른 제어 차이를 익힙니다.
  2. Hardware Interface: 버스(Bus) 아키텍처와 컨트롤러 간의 물리적 통신 규격을 이해합니다.
  3. Driver Mechanics: 장치 드라이버가 하드웨어와 커널을 잇는 물리적 작동 원리를 배웁니다.
  4. 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: 타이머를 이용해 일정 주기로 디스크 상태를 체크하는 기초 폴링 드라이버 모사

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

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core/misused/legacy)
Inode (아이노드) 파일의 메타데이터(크기, 권한, 입지 등)를 저장하는 데이터 구조입니다. 기본 관리 단위 Metadata Directory 파일 이름도 포함한다고 오해 P1:CS2023/File Systems core
Journaling 변경 전 로그를 먼저 기록하여 무결성을 빠르게 복구하는 기법입니다. 추천 신뢰성 보장 fsck Logging 아카이빙용 백업으로 오해 P1:CS2023/File Systems core
DMA CPU 개입 없이 장치가 메모리에 직접 데이터를 전송하는 방식입니다. 기본 효율화 Interrupt PIO CPU가 전혀 필요 없다고 오해 P1:CS2023 core
RAID 여러 물리 디스크를 하나의 논리 단위로 결합하여 성능/안정성을 높이는 기술입니다. 추천 내결함성 Stripe / Mirror Backup 하드웨어 백업과 혼동함 Industry Standard core

8. References

Primary References

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) 비트 관점에서 설명 가능한가?