• toc {:toc}

Mass Storage

  • ์˜๊ตฌ์ ์œผ๋กœ ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” mass storage๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • Hard disk / nonvolatile memory devices

์—ฌ๋Ÿฌ ์ธก๋ฉด ์กด์žฌ

  • Sequential access vs Random access
  • Synchronous transfer vs Asynchronous transfer
  • Dedicated vs Shared
  • Read-only vs Read-write

OS์˜ ์ฃผ ๋ชฉ์ 

  1. Mass storage์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
  2. ์ตœ๋Œ€ ๋™์‹œ์„ฑ์— ๋Œ€ํ•ด I/O ์ตœ์ ํ™”

Hard Disk Drive

Transclude of Hard-Disk-Drive

Nonvolatile Memory Devices

  • Read-only memory(ROM) : ์ƒ์‚ฐ๋  ๋•Œ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘์„ฑ๋œ๋‹ค.

  • Programmable ROM(PROM) : ํ•œ๋ฒˆ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

  • Erasable PROM(EPROM) : ์ง€์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • Electrically erasable PROM (EEPROM) : ์ „์ž๊ธฐ์  ์‚ญ์ œ ๊ฐ€๋Šฅ์„ฑ

  • Flash memory : EEPROM์ด๋‹ค. block ๋‹จ์œ„๋กœ ์‚ญ์ œ ๊ฐ€๋Šฅ

  • Flash memory-based NVM

    • Solid-state disks(SSDs)
    • USB drives
    • ํšŒ๋กœ์— ๋ฐ•ํ˜€์žˆ๋Š” memory
  • ์žฅ์ 

    • ์ „๊ธฐ์  NVM๋“ค์€ HDD๋ณด๋‹ค ๋” ์•ˆ์ „ํ•˜๊ณ  ๋น ๋ฅด๋‹ค. HDD๋Š” ์™ธ๋ถ€ ์ถฉ๊ฒฉ์— ๊ณ ์žฅ๋‚˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ.
    • ์›€์ง์ด์ง€ ์•Š์•„๋„ ๋˜๊ธฐ ๋•Œ๋ฌธ์— seek time, rotational latency๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋‹จ์ 

    • NVM๋“ค์€ ๋” ๋น„์‹ธ๊ณ  ๋” ์ ์€ ์šฉ๋Ÿ‰์„ ๊ฐ–๋Š”๋‹ค.
    • ๋” ์งง์€ ์ˆ˜๋ช…์„ ๊ฐ–๋Š”๋‹ค.
    • ์ „๊ธฐ์  ์„ฑ์งˆ๋กœ ์ธํ•ด ์‚ญ์ œ ๊ฐ€๋Šฅํ•œ ์ •๋„๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ๋‹ค.

NAND Flash Controller

  • HDD์˜ sector์™€ ๊ฐ™์ด Page ์กฐ๊ฐ block ๋‹จ์œ„๋กœ ์ฝํžˆ๊ณ  ์”Œ์—ฌ์ง„๋‹ค.

  • ์ด block ๋‹จ์œ„๊ฐ€ ์ตœ์†Œ๋‹จ์œ„๊ฐ€ ๋˜๊ณ  block ๋‚ด๋ถ€ ์ค‘๊ฐ„๋งŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.

  • NAND Flash Controller

    • Flash Translation Layer(FTL) table์„ ์œ ์ง€ํ•œ๋‹ค.
      • Logical block๋“ค์ด ์œ ํšจํ•œ์ง€ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด
    • Garbage collection์„ ๊ตฌํ˜„
      • invalid page space๋ฅผ ํ• ๋‹น ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด
      • valid ์–ผ๋งˆ ์•ˆ๋‚จ์€ ๊ฒฝ์šฐ ์ „๋ถ€ ์˜ฎ๊ธฐ๊ณ  block clear, invalid
    • Overpositioning์„ ํ• ๋‹นํ•œ๋‹ค.
      • GC์— ๋Œ€ํ•œ ์ž‘์—… ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด
    • Wear leveling(๋‹ฎ์€ ์ •๋„)๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
      • ์ˆ˜๋ช…์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ฎ์€ ์ •๋„๋ฅผ ์ œ๊ณตํ•ด ๊ณจ๊ณ ๋ฃจ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

HDD Scheduling

  • OS๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค ํ•œ๋‹ค.

    • ํšจ์œจ์ ? fast access time, disk bandwidth
    • Disk bandwidth : ์ „์†ก๋˜๋Š” byte์˜ ์ด๋Ÿ‰. ์ฒซ ์š”์ฒญ๊ณผ ์ „์†ก ์™„๋ฃŒ๊นŒ์ง€์˜ ์ด ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.
  • ๋ชฉ์ 

    • Minimize seek time
      • Seek time๊ณผ Seek distance๋Š” ์„œ๋กœ ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๋ฆฌ๋ฅผ ์ค„์ด์ž!
  • ๋“œ๋ผ์ด๋ธŒ์— I/O ํ•„์š”ํ•˜๋ฉด OS์— system call ์„ ํ˜ธ์ถœ์‹œํ‚จ๋‹ค.

    • I/O ์š”์ฒญ์ด ํฌํ•จํ•˜๋Š” ๊ฒƒ
      • input์ธ์ง€ output์ธ์ง€
      • ์ „์†ก์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ
      • ์ „์†ก ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ
    • Idle(์•ˆ ๋ฐ”์œ ์ƒํƒœ) : ์ฆ‰์‹œ ์ฒ˜๋ฆฌ
    • ๋ฐ”์˜๋ฉด queue์— ์ €์žฅ
  • ๊ณผ๊ฑฐ์—๋Š” OS๊ฐ€ queue, ๋””์Šคํฌ head ์ด๋™์„ ๋‹ค๋ค„์•ผ ํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” Storage๊ฐ€ ์ „๋‹ด

    • Logical block address๋งŒ ์ œ๊ณตํ•œ๋‹ค.
    • Drive controller๊ฐ€ queue๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

FCFS Scheduling

  • First-come, first-served : ํ์— ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋น ๋ฅด์ง„ ์•Š๋‹ค.

SCAN Algorithm

  • ์ข…์ข… elevator algorithm์ด๋ผ ๋ถˆ๋ฆฐ๋‹ค.
  • ์œ„/์•„๋ž˜ ํ•œ์ชฝ์œผ๋กœ ์ญ‰ ์ด๋™ํ•˜๊ณ  ๋‹ค์Œ ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • FCFS ๋ณด๋‹ค๋Š” ์ ์€ ์ด๋™๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ–๋Š”๋‹ค.

C-SCAN Scheduling

  • Circular SCAN์ด๋‹ค.
  • ํ•œ์ชฝ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋‚ด๋ ค๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ„์†ํ•ด์„œ ์˜ฌ๋ผ๊ฐ„๋‹ค.
  • seek time์ด ์ข€ ๋” ํ‰๋“ฑํ•˜๊ฒŒ ํ‰๊ท ์ ์œผ๋กœ ์œ„์น˜ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

Error Detection and Correction

  • Error Dectection : ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•ˆ ํ–ˆ๋Š”์ง€ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ
    • ex) bit flipping(ํ•˜๋‚˜์˜ bit(๋ฐ์ดํ„ฐ)๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ)
  • Parity Bit : ์—๋Ÿฌ ํƒ์ง€๋ฅผ ์œ„ํ•ด ํ•˜๋‚˜์˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ(๋”ํ–ˆ์„ ๋•Œ ํ™€, ์ง)
    • 2๊ฐœ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
  • Error-Correction Code (ECC) : ํƒ์ง€ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ •์ •ํ•œ๋‹ค.
    • ์ •์ • ๋˜๋ฉด soft error
    • ์ •์ • ์•ˆ๋˜๋ฉด hard error

Storage Device Management

  • Low-level formatting / Physical formatting : ๋””์Šคํฌ๋ฅผ disk controller๊ฐ€ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๋Š” sector(๊ตฌ์—ญ)์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

    • ๊ฐ sector๋Š” header information, plus data, ECC๋ฅผ ๊ฐ–์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ฃผ๋กœ 512 bytes
  • Logical formatting (making a file system)

    • Partition : ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜, ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์‹ค๋ฆฐ๋”๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ
    • ํŒŒํ‹ฐ์…˜ ๊ฐ๊ฐ์„ logical disk๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
    • ๋Œ€๋ถ€๋ถ„ ํŒŒ์ผ ์‹œ์Šคํ…œ block๋“ค โ†’ cluster๋“ค๋กœ ๋ฌถ์ธ๋‹ค. (ํšจ์œจ ์ฆ๊ฐ€)
  • Root partition โ†’ OS ํฌํ•จ. boot time์— mount ๋œ๋‹ค.

  • Mount : ์šด์˜์ฒด์ œ์™€ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณผ

  • Mount ๋  ๋•Œ, ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•œ๋‹ค.

    • ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์œผ๋ฉด? โ†’ ๊ณ ์น˜๊ณ  ๋‹ค์‹œ
    • ์˜ฌ๋ฐ”๋ฅด๋ฉด ์ ‘๊ทผ ํ—ˆ์šฉ
  • Initial bootstrap์€ NVM flash memory firmware์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

  • Full bootstrap program์€ boot partition์˜ boot block์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

  • Booting Process

  1. ์ปดํ“จํ„ฐ ์ „์› on
  2. mother board ์œ„์— ์žˆ๋Š” BIOS Firmware๊ฐ€ ์‹œ์ž‘ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹คํ–‰
  3. ๋””์Šคํฌ ํŠน์ •์œ„์น˜์˜ Master Block Record๋ฅผ ์ฝ์–ด boot partition์„ ์ฐพ๋Š”๋‹ค.
  4. Boot loader๊ฐ€ boot partition์ฝ์–ด load
  5. kernel์„ ๋ฉ”๋ชจ๋ฆฌ์— Load, kernel ์ดˆ๊ธฐํ™” ๋ฐ ์„ค์ •

Swap-Space Management

  • DRAM์ด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค๋ฃจ๊ธฐ์— ์ถฉ๋ถ„ํžˆ ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— swapping, paging ์‚ฌ์šฉ
  • OS๋Š” ์ด๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด swap space management๋ฅผ ์ œ๊ณต
  • Swap space๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ๋‘˜ ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ๋ณ„๋„ partition ์‚ฌ์šฉ์ด ์ผ๋ฐ˜์ 
    • Secondary storage ๋А๋ฆฌ๊ธฐ์— ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ค‘์š”
    • ์ผ๋ฐ˜ ํŒŒ์ผ๋ณด๋‹ค ํ›จ์”ฌ ์งง์€ ์‹œ๊ฐ„๋งŒ ์กด์žฌํ•˜๊ณ  ์ž์ฃผ ์ฐธ์กฐ๋จ
    • ๋”ฐ๋ผ์„œ, blcok ํฌ๊ธฐ, ์ €์žฅ ๋ฐฉ์‹์ด ์ผ๋ฐ˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋‹ค๋ฅด๋‹ค.

Storage Attachment

์ €์žฅ์†Œ ์ ‘๊ทผ ๋ฐฉ์‹

  1. local I/O ํฌํŠธ๋ฅผ ํ†ตํ•ด์„œ ํ˜ธ์ŠคํŠธ ์—ฐ๊ฒฐ๋ฐฉ์‹
  2. Remote procedure call ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๋ฐฉ์‹
  3. ํด๋ผ์šฐ๋“œ ์‚ฌ์šฉ

RAID

  • RAID : Redundant Array of Inexpensive(Independent) Disks
  • Redundancy : ์ค‘๋ณต์„ฑ โ‡’ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ๋ฅผ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • Multiple Disk์ธ ๊ฒฝ์šฐ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ๊ฐ๊ฐ ์ง์ ‘ ์ ‘๊ทผํ•ด์ค˜์•ผ ํ•œ๋‹ค.
  • RAID์˜ ๊ฒฝ์šฐ ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ‰ํ–‰ํ•˜๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ
    • Block์˜ ๋‚ด์šฉ์„ ๋ถ„์‚ฐ ์ €์žฅ ๊ฐ€๋Šฅ
    • ๋ณ‘๋ ฌ์  ์ฝ๊ธฐ ๊ฐ€๋Šฅ
  • ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ
    • ๋™์ผ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ์ค‘๋ณต ์ €์žฅ ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ ๋””์Šคํฌ ๊ณ ์žฅ ์‹œ ๋‹ค๋ฅธ ๋””์Šคํฌ์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Œ

image

  • Mean Time Between Failures(MTBF) : ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•œ ํ‰๊ท ์‹œ๊ฐ„

  • Mean Time to Repair

  • Mean Time to Data Loss

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋น„์‹ผ ์ ‘๊ทผ : ๋งค์ผ drive ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ

  • RAID scheme

    • RAID 0 (non-redundant striping) - ๊ฐ™์€ ๋‚ด์šฉ ๋ฐฑ์—…๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

    • RAID 1 (mirroring or shadowing) - ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋„๋ก data copy

    • RAID 0+1 (mirrored stripes) - stripe๋œ ํ›„ mirror

    • RAID 1+0 (striped mirrors) - mirror๋œ ํ›„ stripe

      • ์„ฑ๋Šฅ ์ฆ๊ฐ€, ์‹ ๋ขฐ๋„ ์ฆ๊ฐ€

      image

    • RAID 4, 5, 6 (block interleaved parity)

      • Parity disk๋ฅผ ํ•˜๋‚˜๋ฅผ ๋‘”๋‹ค. ---โ‡’
        • mirroringํ•  ๋•Œ 2๋ฐฐ์˜ ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ parity disk ํ•˜๋‚˜์— ์ €์žฅํ•ด ์ค‘๋ณต๋„๋ฅผ ์ค„์ธ๋‹ค.
        • parity disk๊ฐ€ ํƒ€๊ฒฉ์„ ์ž…์œผ๋ฉด ํŒŒ์ผ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
      • RAID 5 โ†’ parity๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ ๋†“๋Š”๋‹ค.
      • redundancy๋ฅผ ๋” ์ ๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค. image ์ฐธ : https://www.prepressure.com/library/technology/raid