"보조 기억 장치"에서 AI 인프라의 핵심 구성 요소로From "secondary storage" to a core component of AI infrastructure
| 구분Category | 2024 | 2025 (예상est.) | 2028 (전망proj.) | CAGR* |
|---|---|---|---|---|
| NAND Flash 매출Revenue | ~$53B (약approx. 79조원T KRW) | ~$78B (약approx. 116조원T KRW) | ~$120B+ (약approx. 179조원T KRW+) | ~20% |
| Enterprise SSD | ~$18B (약approx. 27조원T KRW) | ~$28B (약approx. 42조원T KRW) | ~$50B+ (약approx. 75조원T KRW+) | ~25% |
| HDD (Nearline) | ~$7B (약approx. 10조원T KRW) | ~$8B (약approx. 12조원T KRW) | ~$9B (약approx. 13조원T KRW) | ~5% |
| 전체 스토리지 시스템Total Storage Systems | ~$70B (약approx. 104조원T KRW) | ~$90B (약approx. 134조원T KRW) | ~$140B+ (약approx. 209조원T KRW+) | ~18% |
*CAGR (Compound Annual Growth Rate): 연평균 복합 성장률 — 일정 기간 동안의 연평균 성장률을 복리로 환산한 값*CAGR (Compound Annual Growth Rate): annualized growth rate compounded over a given period
| 기업Company | 동향Trend |
|---|---|
| 삼성전자 | 다운사이클 후 반등 |
| Samsung | Recovery after downcycle |
| SK하이닉스 | HBM 수혜, 2024~25 급등 |
| SK hynix | HBM beneficiary, 2024~25 surge |
| Micron | AI 수요 기대감 상승AI demand expectations rising |
| Pure Storage | 올플래시 전환 수혜All-flash transition beneficiary |
| Seagate/WD | HDD 업황 회복 + HAMRHDD market recovery + HAMR |
| 회사Company | 주요 사업Core Business |
|---|---|
| 삼성전자Samsung Electronics | NAND Flash, Enterprise/Consumer SSD, UFS, eMMC |
| SK하이닉스 hynix | NAND Flash, Enterprise SSD, UFS, Solidigm 자회사subsidiary |
| 회사Company | 주요 제품 / 특징Key Products / Features |
|---|---|
| 파두FADU (FADU) | AI 데이터센터용 고성능 SSD 컨트롤러High-performance SSD controllers for AI datacenters |
| 점프테크놀로지Jump Technology | 국산 SSD 컨트롤러 개발Domestic SSD controller development |
| 에이디테크놀로지AD Technology | 국산 SSD 컨트롤러 / 펌웨어Domestic SSD controller / firmware |
| Silicon Motion | 글로벌 1위 SSD 컨트롤러 팹리스 (한국 R&D 센터)#1 global SSD controller fabless (Korea R&D center) |
| 파이슨Phison (Phison) | PCIe Gen5 SSD 컨트롤러 (한국 협력)PCIe Gen5 SSD controller (Korea partnership) |
| 회사Company | 주요 사업Core Business |
|---|---|
| 글루시스Gluesys (Gluesys) | 스토리지 통합 관리 소프트웨어Unified storage management software |
| 나무기술Namu Tech | 클라우드 스토리지 솔루션Cloud storage solutions |
| 맨텍ManTech (ManTech) | 백업 / 아카이브 스토리지Backup / archive storage |
FAST: Quick Application Launch on Solid-State Drives — Joo et al.
| 연구 단계Research Phase | FAST 논문 적용Application in FAST Paper |
|---|---|
| 1. 시스템 입출력 관찰System I/O Observation | Blktrace로 애플리케이션 cold start 시 블록 I/O 트레이스 수집Collected block I/O traces during application cold start via Blktrace — 앱 실행 시 발생하는 수천 개의 블록 요청을 커널 레벨에서 기록— Recorded thousands of block requests at kernel level during app launch |
| 2. 특이 패턴 발견Pattern Discovery | Cold start 시 페이지 폴트 순서 및 I/O 요청 순서가 매 실행마다 동일 (deterministic)Page fault and I/O request order identical across every cold start (deterministic) — 같은 앱을 반복 실행하면 블록 요청 시퀀스가 변하지 않음을 발견— Discovered that block request sequences remain unchanged across repeated app launches |
| 3. 개선 아이디어Improvement Idea | CPU 연산 시간과 SSD I/O 시간을 오버랩 (동시 실행)Overlap CPU computation time with SSD I/O time (concurrent execution) — prefetcher가 I/O를 미리 발행하여, 앱이 필요로 할 때 이미 page cache에 존재하도록 함— Prefetcher issues I/O in advance so data resides in page cache when the app needs it — tlaunch ≈ max(tssd, tcpu) 로 단축 가능 ![]() |
| 4. 알고리즘 도출/보완Algorithm Design | LBA → 파일 역매핑 (블록 주소 → 파일명 + 오프셋 변환) 알고리즘 설계LBA → File reverse mapping (block address → filename + offset) algorithm design — 파일 시스템(EXT3)은 LBA→파일 역방향 매핑을 지원하지 않음— File system (EXT3) does not support LBA→file reverse mapping — Red-black tree 기반 LBA-to-inode map을 앱별로 구축하여 해결— Solved by building per-app LBA-to-inode map using red-black tree |
| 5. 구현Implementation | User-level FAST 시스템 구현: posix_fadvise()로 prefetch 수행User-level FAST system implementation: prefetching via posix_fadvise() — launch manager, system-call profiler, disk I/O profiler — launch sequence extractor, LBA-to-inode mapper, prefetcher generator — 커널 수정 없이 Linux 2.6.32에서 동작— Runs on Linux 2.6.32 without kernel modifications |
| 6. 시스템 구현System Integration | Linux Fedora 12 + Intel 80GB SSD 환경에서 22개 실제 앱 대상 통합 테스트Integration test with 22 real applications on Linux Fedora 12 + Intel 80GB SSD — Acrobat, Eclipse, Firefox, Gnome, Matlab, OpenOffice 등etc. |
| 7. 성능평가Evaluation | Cold start 대비 평균 28% launch time 단축 (16~46% 범위)Average 28% launch time reduction vs. cold start (range: 16~46%) — miss ratio 1.6%로 prefetcher 정확도 검증— Prefetcher accuracy verified with 1.6% miss ratio — 다중 앱 동시 실행(Fig.8)에서도 성능 향상 확인 (5~20개 앱, 개선폭 20%→7%)— Performance gains confirmed under multi-app concurrent launch (Fig.8, 5~20 apps, 20%→7%) ![]() |
Enlarging I/O Size for Faster Loading of Mobile Applications — Joo et al.
| 연구 단계Research Phase | 논문 적용Application in Paper |
|---|---|
| 1. 시스템 입출력 관찰System I/O Observation | Blktrace로 모바일 앱 시작 시 블록 I/O 트레이스 수집Collected block I/O traces during mobile app launch via Blktrace — demand paging이 생성하는 I/O 패턴을 커널 레벨에서 기록— Recorded I/O patterns generated by demand paging at kernel level |
| 2. 특이 패턴 발견Pattern Discovery | Demand paging은 다양한 크기의 다수 I/O를 queue depth 1로 발행Demand paging issues many I/Os of varying sizes at queue depth 1 — Flash 스토리지의 I/O 크기 vs 대역폭이 비선형: 소형 I/O에서 대역폭이 낮고 대형 I/O에서 급격히 높아짐— Flash storage I/O size vs. bandwidth is nonlinear: low bandwidth for small I/Os, sharply higher for large I/Os — 원인: 큰 I/O일수록 eMMC 내부 다중 다이가 동시 활성화되어 병렬 처리량 증가— Cause: larger I/Os activate multiple internal dies simultaneously, increasing parallel throughput → I/O 크기를 키우면 같은 데이터량에 대해 훨씬 빠른 전송이 가능→ Enlarging I/O size enables much faster transfer for the same data volume |
| 3. 개선 아이디어Improvement Idea | Explicit loading + I/O 크기 확대를 위한 3단계 최적화3-step optimization for explicit loading + I/O size enlargement — ① I/O Reordering: working set을 LBA 순서로 정렬 (기존 기법)— ① I/O Reordering: sort working set by LBA order (prior technique) — ② I/O Merging: 인접한 청크를 병합 (기존 기법)— ② I/O Merging: merge adjacent chunks (prior technique) — ③ I/O Padding: 비연속 청크 사이에 불필요한 페이지를 삽입하여 I/O 크기를 추가 확대 (본 논문의 핵심 기여)— ③ I/O Padding: insert unnecessary pages between non-contiguous chunks to further enlarge I/O size (key contribution) |
| 4. 알고리즘 도출/보완Algorithm Design | Dynamic Programming 기반 최적 패딩 결정 알고리즘Optimal padding decision algorithm based on Dynamic Programming — Working set W = (b0, b1, …, bn-1), 패딩 벡터padding vector P = (p0, …, pn-2) — t(i,j) = min { read(i,j), t(i,s)+t(s+1,j) } — 패딩 vs 분할의 최적 트레이드오프optimal trade-off between padding vs. splitting — Storage 성능 모델: I/O 크기별 읽기 시간을 실측하여 lookup table 구축— Storage performance model: empirical read-time lookup table per I/O size |
| 5. 구현Implementation | Explicit application loading 모듈 (pread 시스템콜 기반)Explicit application loading module (pread syscall-based) — Profiler: blktrace로 working set 수집collect working set via blktrace — Optimizer: reordering → merging → DP padding — Loader: 최적화된 I/O 시퀀스를 pread로 실행execute optimized I/O sequence via pread |
| 6. 시스템 구현System Integration | Google Nexus 5 (32GB eMMC) + 16개 Android 앱 대상 테스트Tested on Google Nexus 5 (32GB eMMC) with 16 Android apps — Chrome, Facebook, Firefox, Netflix, WhatsApp, Twitter, Skype 등etc. |
| 7. 성능평가Evaluation | 평균 I/O 크기 5.6배 증가, 앱 로딩 시간 최대 30% 단축Average I/O size increased 5.6x, app loading time reduced by up to 30% — I/O merging: 19.3% 감소, I/O padding 추가 적용: 29.9% 감소— I/O merging: 19.3% reduction; with I/O padding: 29.9% reduction — 백그라운드 I/O 간섭 하에서도 성능 이점 유지— Performance gains maintained under background I/O interference — 에너지 소비도 1/3 감소 (I/O 크기 확대로 eMMC 효율 향상)— Energy consumption also reduced by 1/3 (eMMC efficiency improved with larger I/O sizes) ![]() |
시스템 I/O를 관찰하고
남들이 못 본 패턴을 찾아내는 능력Observe system I/O and
find patterns others miss
관찰에서 얻은 통찰을
체계적 해법으로 전환Transform insights from observation
into systematic solutions
커널, 펌웨어, 디바이스 레벨
실제 시스템에 적용Apply at kernel, firmware, device level
to real systems
| 알고리즘Algorithm 문제가 정의되면 누군가는 풀 수 있음Once the problem is defined, someone can solve it |
시스템 구현System Impl. 전통적 진입장벽이었으나 AI가 빠르게 낮추는 중Traditional barrier to entry, rapidly lowered by AI |
관찰 & 문제 발견Observation & Discovery 연구의 출발점이자 핵심 비결은 호기심The starting point and essence of research The key is curiosity |
FAST '11: "앱 실행마다 동일한 I/O 시퀀스" 관찰"Identical I/O sequences per app launch" observation → prefetching 도출derived
ESL '20: "I/O 크기와 대역폭의 비선형 관계" 관찰"Nonlinear I/O size vs. bandwidth" observation → I/O padding 도출derived
→ 두 논문 모두 관찰에서 출발, 알고리즘과 시스템 구현으로 완성됨Both papers started from observation, completed through algorithm design and system implementation
Improving Virtualized I/O Performance by Expanding the Polled I/O Path of Linux — Seo, Joo, Dutt
| 연구 단계Research Phase | 논문 적용Application in Paper |
|---|---|
| 1. 시스템 입출력 관찰System I/O Observation | 가상화 환경에서 guest OS의 I/O 경로 및 host page cache 접근 성능 측정Measured guest OS I/O path and host page cache access performance in virtualized environments — fio로 guest ↔ host page cache 간 4KB random read 처리량 측정— Measured 4KB random read throughput between guest and host page cache via fio |
| 2. 특이 패턴 발견Pattern Discovery | Host page cache (DRAM)에 데이터가 있어도 guest의 처리량이 105 MB/s에 불과Even with data in host page cache (DRAM), guest throughput was only 105 MB/s — DRAM 대역폭은 수십 GB/s인데 guest I/O 경로에서 불필요한 context switch 발생— DRAM bandwidth is tens of GB/s, yet unnecessary context switches occur in guest I/O path — 원인: guest OS는 데이터가 host SSD에 있는지 host cache에 있는지 알 수 없음— Cause: guest OS cannot determine if data resides in host SSD or host cache — 항상 저장장치에 있을 것으로 간주 → I/O submit 후 무조건 task switching 수행— Always assumes data is on storage device → unconditional task switching after I/O submit |
| 3. 개선 아이디어Improvement Idea | Host cache 접근 시 polling을 시도하여 context switch 오버헤드를 회피Attempt polling on host cache access to avoid context switch overhead — 데이터가 host cache에 있으면 I/O가 즉시 완료됨 → polling이 유리— If data is in host cache, I/O completes instantly → polling is advantageous — 시스템 수준 장벽: Linux 커널의 buffered I/O, mmap 경로에 poll path가 미비— System-level barrier: Linux kernel's buffered I/O and mmap paths lack poll path support — 보완책: polled I/O 경로를 buffered I/O (path ③), mmap (path ④)으로 확장— Solution: expand polled I/O path to buffered I/O (path ③) and mmap (path ④)
— Remzi의 OSTEP 교과서에 이미 hybrid (two-phased) 접근이 예견됨 → 이를 실제 Linux 커널에 구현한 것— Remzi's OSTEP textbook already foresaw the hybrid (two-phased) approach → implemented in real Linux kernel |
| 4. 알고리즘 도출/보완Algorithm Design | hipri 플래그 주입 기법 설계hipri flag injection technique design — Block layer에서 I/O 요청의 bi_opf에 hipri 플래그를 삽입하는 위치를 탐색— Identified where to insert hipri flag in bi_opf of I/O requests in the block layer — Buffered I/O: readahead 모듈 내 submit_bio() 직전에 hipri 설정— Buffered I/O: set hipri right before submit_bio() in readahead module — Memory mapped I/O: faultaround/readaround 모듈에 동일 적용— Memory mapped I/O: same approach applied to faultaround/readaround modules — blk_poll() 반환 후 hipri를 해제하여 page status 업데이트 부작용 방지— Clear hipri after blk_poll() returns to prevent page status update side effects |
| 5. 구현Implementation | Linux 커널 소스 수정: 12개 파일, +74줄 / -19줄Linux kernel source modification: 12 files, +74 / -19 lines — ext4 파일 시스템 대상, 다른 파일 시스템 확장 용이— Targets ext4 file system, easily extensible to others — Guest OS 커널 + Host OS 커널 양쪽에 적용 가능— Applicable to both guest OS and host OS kernels |
| 6. 시스템 구현System Integration | Host: Intel i7-10700K + 32GB DDR4 + Intel Optane 900P (ULL SSD) — Guest: VirtualBox 6.1.26, Ubuntu 20.04, 커널kernel 5.15 — fio 마이크로벤치마크 + 실제 앱microbenchmarks + real applications (Matlab, Android Studio, Kdenlive 등etc.) |
| 7. 성능평가Evaluation | Buffered I/O 4KB random read: 105 → 332 MB/s (3.2배 향상)Buffered I/O 4KB random read: 105 → 332 MB/s (3.2x improvement) — DIO, Buffered, MMAP 모두 vanilla 대비 1.9~3.3배 처리량 향상— DIO, Buffered, MMAP all improved 1.9~3.3x throughput vs. vanilla — 소형 파일 복사 시간 43% 단축 (guest cp), host cp도 20% 단축— Small file copy time reduced 43% (guest cp), host cp also 20% faster — Guest OS I/O 최적화 기능 비활성화 시 메모리 사용량 31~36% 절감— 31~36% memory savings when disabling guest OS I/O optimizations |
DPAS: A Prompt, Accurate and Safe I/O Completion Method for SSDs — Seo, Jung, Yoon, Chen, Joo, Lim, Dutt
| 연구 단계Research Phase | 논문 적용Application in Paper |
|---|---|
| 1. 시스템 입출력 관찰System I/O Observation | 3종 SSD (3D XPoint, Z-NAND, TLC NAND)에서 interrupt, polling, hybrid polling 성능 측정Performance measurement of interrupt, polling, hybrid polling across 3 SSD types (3D XPoint, Z-NAND, TLC NAND) — 4KB random read, QD=1, 1~20 threads, CPU contention 유/무 조건에서 IOPS, latency, CPU 사용률 비교— 4KB random read, QD=1, 1~20 threads, IOPS/latency/CPU utilization compared with and without CPU contention |
| 2. 특이 패턴 발견Pattern Discovery | 어떤 단일 I/O completion 기법도 모든 상황에서 최적이 아님 (I/O Completion Trilemma)No single I/O completion method is optimal in all scenarios (I/O Completion Trilemma) — Interrupt: CPU 효율적이나 SSD가 빨라질수록 고정 CS 오버헤드의 비중 증가— Interrupt: CPU-efficient, but fixed CS overhead grows as SSDs get faster — Classic polling: 최저 latency이나 CPU 100% 점유 → contention 시 성능 붕괴— Classic polling: lowest latency, but 100% CPU → performance collapse under contention — Hybrid polling: epoch 기반 sleep 추정이 부정확, latency shelving (oversleep → 측정값 오염 → 양성 피드백 루프)— Hybrid polling: inaccurate epoch-based sleep estimation, latency shelving (oversleep → measurement pollution → positive feedback loop) — CPU contention 시 OS 스케줄러가 timer보다 늦게 깨움 → hybrid polling이 interrupt보다 나빠지는 현상— Under CPU contention, OS scheduler wakes later than timer → hybrid polling becomes worse than interrupt |
| 3. 개선 아이디어Improvement Idea | 두 가지 핵심 아이디어:Two core ideas: — PAS: I/O 시간을 측정하지 않고 binary 결과(UNDER/OVER)만으로 sleep duration 조정Adjusts sleep duration using only binary outcomes (UNDER/OVER) without measuring I/O time → epoch 기반의 근본 한계(부정확, latency shelving) 회피Avoids fundamental limitations of epoch-based approach (inaccuracy, latency shelving) — DPAS: polling, PAS, interrupt 3가지 모드를 런타임에 동적 전환Dynamic runtime switching among polling, PAS, and interrupt modes → timer failure 감지 + queue depth 모니터링으로 현재 상황에 최적 모드 선택Selects optimal mode via timer failure detection + queue depth monitoring |
| 4. 알고리즘 도출/보완Algorithm Design | PAS: 4가지 규칙 — 최근 2개 I/O의 결과 쌍 (sr_pnlt, sr_last)로 adjust 결정PAS: 4 rules — determine adjust from the last 2 I/O outcome pairs (sr_pnlt, sr_last) — (UNDER, UNDER): adjust += UP (OVER, OVER): adjust -= DN — (UNDER, OVER): adjust = 1-DN (OVER, UNDER): adjust = 1+UP — duration = duration × adjust (UP=0.01, DN=0.1 → oversleep 회피 10배 우선oversleep avoidance 10x prioritized) DPAS 모드 전환:DPAS mode transitions: CP ↔ PAS(normal) ↔ PAS(overloaded) ↔ Interrupt — QD=1이면 CP, timer failure 감지 시 PAS overloaded, QD>θ이면 interrupt로 전환— QD=1: CP; timer failure detected: PAS overloaded; QD>θ: switch to interrupt |
| 5. 구현Implementation | Linux multi-queue block layer에 구현: 9개 파일, +1,224줄 / -30줄Implemented in Linux multi-queue block layer: 9 files, +1,224 / -30 lines — Per-core 버킷 구조 (PAS ~592B, DPAS +~100B per core)— Per-core bucket structure (PAS ~592B, DPAS +~100B per core) — Block layer 통합 → 모든 sync I/O 앱에 투명하게 적용 (앱 수정 불필요)— Block layer integration → transparently applies to all sync I/O apps (no app modification needed) |
| 6. 시스템 구현System Integration | Intel Xeon Gold 6230 (20코어) + 3종 SSD 테스트Intel Xeon Gold 6230 (20 cores) + 3 SSD types tested — Intel Optane P5800X (3D XPoint), Samsung 983 ZET (Z-NAND), SK hynix P41 (TLC NAND) — fio 마이크로벤치마크microbenchmarks + RocksDB/YCSB A~F + CPU contention + I/O interference 조합combinations |
| 7. 성능평가Evaluation | PAS: LHP 대비 CPU 사용률 21pp 절감 (4KB random read)PAS: 21pp CPU utilization reduction vs. LHP (4KB random read) DPAS: CPU contention + I/O interference 하에서 INT 대비 OPS 9% (Optane), 7% (ZSSD), 5% (P41) 향상DPAS: under CPU contention + I/O interference, OPS improved 9% (Optane), 7% (ZSSD), 5% (P41) vs. INT — 8종 추가 NAND SSD에서도 per-device 튜닝 없이 일관된 최고 성능 달성— Consistent best performance across 8 additional NAND SSDs without per-device tuning — Artifact Evaluated: Available + Functional + Reproduced (USENIX 3관왕triple badge) |
24th USENIX Conference on File and Storage Technologies
usenix.org/conference/fast26 →클릭하여 새 탭에서 열기Click to open in a new tab
| 항목Item | 수치Data |
|---|---|
| 제출Submissions | 253편 papers (역대 최다, '25 대비 51%↑all-time record, 51%↑ vs. '25) |
| 채택Accepted | 44편 papers (acceptance rate 17.4%) |
| Best Paper | 2편 (모두 중국, 1편은 생성형 AI 기반 파일시스템) papers (both from China; 1 on GenAI-based file system) |
| Test of Time | F2FS (한국 연구진, 삼성전자Korean researchers, Samsung, FAST '15) |
| 대상 시장Target Market | 연간 출하량 (추정)Annual Shipments (est.) | 장치당 10원 기준 연간 부가가치Annual Value at 10 KRW/device |
|---|---|---|
| Enterprise SSD | ~1.4억대00M units ($28B ÷ 평균avg. $200/대unit) | ~14억원/년00M KRW/yr (~$1M) |
| 전체 SSDAll SSDs (Consumer 포함incl. Consumer) | ~3억대00M units | ~30억원/년00M KRW/yr (~$2M) |
| 전체 NAND 장치All NAND Devices (UFS/eMMC 포함incl. UFS/eMMC) | ~50억대00M units | ~500억원/년00M KRW/yr (~$34M) |
※ 출하량은 시장 매출과 평균 단가 기반 추정치. 실제 적용 범위에 따라 부가가치 규모 변동. ※ Shipment volumes are estimates based on market revenue and average unit prices. Actual value-add varies by deployment scope.