• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
  • ๐Ÿ’ฐ Finance

    • ๋น„ํŠธ์ฝ”์ธ(Bitcoin)
  • ๐Ÿ›๏ธ Humanities

    • Nordvik, Russia
    • North Sentinel Island
    • ๋กฑ๊ณ ๋กฑ๊ณ (Rongorongo)
  • ๐Ÿ‹๏ธ Wellness

    • ๐Ÿซ’ ์—‘์ŠคํŠธ๋ผ ๋ฒ„์ง„ ์˜ฌ๋ฆฌ๋ธŒ์œ  (Extra Virgin Olive Oil)
    • ์ฐจ์ „์žํ”ผ(Psyllium Husk)
  • ๐Ÿ–ฅ๏ธ Computer Graphics

    • 8 - Lighting
    • 9 - Orientation & Rotation
    • 10 - Character Animation
    • 11 - Curves
    • 12 - More Lighting, Texture
  • ๐Ÿ—‚๏ธ Operating System

    • 7. Deadlocks
    • 8. Memory Management(1)
    • 9. Memory Management(2)
    • 10. Virtual Memory(1)
    • 11. Virtual Memory(2)
    • 12. File System
    • 13. Mass Storage Management
    • 14. I/O Systems
  • ๐Ÿ”ฃ Programming Language Theory

    • 13. FPL(1)

13. Mass Storage Management

Dept. of Computer Science
Hanyang University

Physical Disk Structure

  • ๋””์Šคํฌ๋Š” ์–‡์€ ๊ธˆ์† ํ”Œ๋ž˜ํ„ฐ(platter)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ,
    ๊ทธ ์œ„๋ฅผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ํ—ค๋“œ๊ฐ€ ๋น„ํ–‰ํ•˜๋ฉฐ ๋™์ž‘

  • ๋””์Šคํฌ์—์„œ ์ฝ๊ธฐ ์œ„ํ•ด ์ง€์ •ํ•ด์•ผ ํ•  ์š”์†Œ:

    • cylinder #
    • surface #
    • sector #
    • transfer size
    • memory address
  • ์ „์†ก ์‹œ๊ฐ„(Transfer time)์€ ๋‹ค์Œ์„ ํฌํ•จ:

    • Seek time
    • Rotational delay
    • Transfer time

Disk Structure

  • ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ๋Š” ๋…ผ๋ฆฌ ๋ธ”๋ก(logical block)์˜ 1์ฐจ์› ๋ฐฐ์—ด๋กœ ์ฃผ์†Œ ์ง€์ •๋จ
    โ†’ ๋…ผ๋ฆฌ ๋ธ”๋ก์€ ์ „์†ก์˜ ์ตœ์†Œ ๋‹จ์œ„

  • ์ด 1์ฐจ์› ๋ฐฐ์—ด์€ ๋””์Šคํฌ์˜ ์„นํ„ฐ๋“ค๋กœ ๋งคํ•‘๋จ

    • sector 0 = ์ตœ์™ธ๊ณฝ ์‹ค๋ฆฐ๋”์˜ ์ฒซ ๋ฒˆ์งธ ํŠธ๋ž™์˜ ์ฒซ ๋ฒˆ์งธ ์„นํ„ฐ
    • ๋งคํ•‘์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ํŠธ๋ž™์„ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰
      โ†’ ์‹ค๋ฆฐ๋” ๋ฐ”๊นฅ์ชฝ์—์„œ ์•ˆ์ชฝ์œผ๋กœ ์ง„ํ–‰
      (์‹ค์ œ ๊ตฌํ˜„์€ ์ œํ’ˆ๋งˆ๋‹ค ๋‹ค๋ฆ„)

Disk Scheduling

  • ๋””์Šคํฌ ์ ‘๊ทผ ์‹œ๊ฐ„์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋จ:

    • Seek time: ๋””์Šคํฌ ํ—ค๋“œ๋ฅผ ์›ํ•˜๋Š” ์‹ค๋ฆฐ๋”๋กœ ์ด๋™ํ•˜๋Š” ์‹œ๊ฐ„
    • Rotational latency: ์›ํ•˜๋Š” ์„นํ„ฐ๊ฐ€ ํ—ค๋“œ ์•„๋ž˜๋กœ ์˜ฌ ๋•Œ๊นŒ์ง€์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„
  • ๋ชฉํ‘œ: Seek time ์ตœ์†Œํ™”

    • Seek time โ‰ˆ Seek distance
  • ๋””์Šคํฌ ๋Œ€์—ญํญ:

    Diskย bandwidth=์ดย ์ „์†กย ๋ฐ”์ดํŠธย ์ˆ˜์š”์ฒญ๋ถ€ํ„ฐย ์™„๋ฃŒ๊นŒ์ง€ย ๊ฑธ๋ฆฐย ์ดย ์‹œ๊ฐ„\text{Disk bandwidth} = \frac{\text{์ด ์ „์†ก ๋ฐ”์ดํŠธ ์ˆ˜}}{\text{์š”์ฒญ๋ถ€ํ„ฐ ์™„๋ฃŒ๊นŒ์ง€ ๊ฑธ๋ฆฐ ์ด ์‹œ๊ฐ„}} Diskย bandwidth=์š”์ฒญ๋ถ€ํ„ฐย ์™„๋ฃŒ๊นŒ์ง€ย ๊ฑธ๋ฆฐย ์ดย ์‹œ๊ฐ„์ดย ์ „์†กย ๋ฐ”์ดํŠธย ์ˆ˜โ€‹

Seek Time Benchmark

  • ์‹ค๋ฆฐ๋” ์ˆ˜์— ๋”ฐ๋ฅธ ํ‰๊ท  seek time์˜ ๋ณ€ํ™” ๊ทธ๋ž˜ํ”„

  • Seek time ๋ชจ๋ธ:

    a+bd(a,ย b:ย ์ƒ์ˆ˜,ย d:ย ์‹ค๋ฆฐ๋”ย ๊ฐ„ย ๊ฑฐ๋ฆฌ)a + b\sqrt{d} \quad \text{(a, b: ์ƒ์ˆ˜, d: ์‹ค๋ฆฐ๋” ๊ฐ„ ๊ฑฐ๋ฆฌ)} a+bdโ€‹(a,ย b:ย ์ƒ์ˆ˜,ย d:ย ์‹ค๋ฆฐ๋”ย ๊ฐ„ย ๊ฑฐ๋ฆฌ)

Disk Scheduling (Cont.)

  • ๋””์Šคํฌ I/O ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์–‘ํ•จ

  • ์˜ˆ์‹œ ์š”์ฒญ ํ (0~199):

    98, 183, 37, 122, 14, 124, 65, 67
    
  • ํ˜„์žฌ ํ—ค๋“œ ์œ„์น˜: 53

FCFS

  • First-Come, First-Served ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹
  • ์š”์ฒญ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•จ
  • ๋‹จ์ˆœํ•˜์ง€๋งŒ, seek ์ด๋™์ด ๋น„ํšจ์œจ์ 
  • ์˜ˆ์‹œ:
    queue = 98, 183, 37, 122, 14, 124, 65, 67
    head starts at 53
    
  • ์ด ์ด๋™ ๊ฑฐ๋ฆฌ: 640 cylinders

SSTF

  • Shortest Seek Time First
  • ํ˜„์žฌ ํ—ค๋“œ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์š”์ฒญ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌ
  • SJF(Shortest Job First)์˜ ์ผ์ข…์œผ๋กœ, ์ผ๋ถ€ ์š”์ฒญ์€ ๊ธฐ์•„(starvation) ์ƒํƒœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • ์„ฑ๋Šฅ์€ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ
  • ์˜ˆ์‹œ์—์„œ์˜ ์ด ์ด๋™ ๊ฑฐ๋ฆฌ: 236 cylinders

SSTF (Cont.)

  • ๊ฐ™์€ queue์™€ ์‹œ์ž‘ ์œ„์น˜์—์„œ
    SSTF ๋ฐฉ์‹์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์š”์ฒญ๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์ ‘๊ทผ
    โ†’ ํšจ์œจ์ ์ด๋‚˜, ํŽธํ–ฅ๋œ ์š”์ฒญ์€ ๋ฌด๊ธฐํ•œ ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ์Œ

SCAN

  • ๋””์Šคํฌ ์•”์ด ๋””์Šคํฌ์˜ ํ•œ์ชฝ ๋์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ˜๋Œ€ํŽธ ๋์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์š”์ฒญ ์ฒ˜๋ฆฌ

  • ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋ฐฉํ–ฅ์„ ๋ฐ”๊ฟ” ๋‹ค์‹œ ์ด๋™ํ•˜๋ฉฐ ์š”์ฒญ ์ฒ˜๋ฆฌ

  • ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ:

    • ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ์š”์ฒญ ์ฒ˜๋ฆฌ
    • ๋‚ด๋ ค์˜ค๋ฉด์„œ๋„ ์š”์ฒญ ์ฒ˜๋ฆฌ
  • ์ด ์ด๋™ ๊ฑฐ๋ฆฌ: 208 cylinders

  • ๋ฌธ์ œ์ :

    • ์•ˆ์ชฝ ํŠธ๋ž™์€ ๋‘ ๋ฒˆ ์„œ๋น„์Šค๋จ (ํŽธ๋„๋งˆ๋‹ค ์ ‘๊ทผ)
    • ์™ธ๊ณฝ ํŠธ๋ž™์— ๋น„ํ•ด ๋ถˆ๊ณต์ •

C-SCAN

  • SCAN๋ณด๋‹ค ๋” ๊ท ๋“ฑํ•œ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์ œ๊ณต

  • ๋””์Šคํฌ์˜ ํ•œ์ชฝ ๋์—์„œ ๋‹ค๋ฅธ ๋๊นŒ์ง€ ์ด๋™ํ•˜๋ฉฐ ์š”์ฒญ ์ฒ˜๋ฆฌ
    โ†’ ๋์— ๋„๋‹ฌํ•˜๋ฉด ๋˜๋Œ์•„์˜ค๋Š” ๊ฒฝ๋กœ์—์„œ๋Š” ์š”์ฒญ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Œ

  • ์›ํ˜• ๋””์Šคํฌ ๋ฆฌ์ŠคํŠธ(circular list)์ฒ˜๋Ÿผ ์ž‘๋™
    โ†’ ๋งˆ์ง€๋ง‰ ์‹ค๋ฆฐ๋”์—์„œ ์ฒซ ๋ฒˆ์งธ ์‹ค๋ฆฐ๋”๋กœ ์ ํ”„

  • ๋ฌธ์ œ์ :

    • ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ ์ค‘์—๋„ ์š”์ฒญ์ด ์—†๋”๋ผ๋„ ๊ณ„์† ์ง„ํ–‰
  • C-SCAN ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋””์Šคํฌ ํ—ค๋“œ ์ด๋™ ๊ฒฝ๋กœ ์‹œ๊ฐํ™”

  • ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋ชจ๋“  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„,
    ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒฝ๋กœ์—์„œ๋Š” ์š”์ฒญ์„ ๋ฌด์‹œํ•˜๊ณ  ์ฒ˜์Œ ์œ„์น˜๋กœ ์ด๋™

C-LOOK

  • C-SCAN์˜ ๋ณ€ํ˜• ๋ฒ„์ „
  • ๋””์Šคํฌ ๋๊นŒ์ง€ ์ด๋™ํ•˜์ง€ ์•Š๊ณ , ์š”์ฒญ์ด ์žˆ๋Š” ๋งˆ์ง€๋ง‰ ์œ„์น˜๊นŒ์ง€๋งŒ ์ด๋™
  • ๊ทธ ํ›„ ์ฆ‰์‹œ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ „ํ™˜
  • ๋””์Šคํฌ ๋๊นŒ์ง€ ๊ฐ€๋Š” ๋ถˆํ•„์š”ํ•œ ์ด๋™ ์ œ๊ฑฐ

C-LOOK (Cont.)

  • ์˜ˆ์‹œ queue:
    queue = 98, 183, 37, 122, 14, 124, 65, 67
    head starts at 53
    
  • ์š”์ฒญ์ด ์žˆ๋Š” ๋งˆ์ง€๋ง‰ ์ง€์ ๊นŒ์ง€๋งŒ ์ด๋™ํ•˜๊ณ  ๋˜๋Œ์•„์˜ด
    โ†’ ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ด๋™ ๊ฑฐ๋ฆฌ ํ™•๋ณด

Arm Stickiness Problem

  • SCAN, C-SCAN, SSTF๋Š” Arm Stickiness ๋ฌธ์ œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

  • ์„ค๋ช…:

    • ํŠน์ • ํŠธ๋ž™์— ์ ‘๊ทผ ๋นˆ๋„๊ฐ€ ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ
    • ํ•ด๋‹น ํŠธ๋ž™์—๋งŒ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ‘๊ทผ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด์„œ ๋””์Šคํฌ ์•”์„ ๊ทธ ์œ„์น˜์— ๊ณ ์ •์‹œํ‚ด
    • ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋””์Šคํฌ ์ „์ฒด ์‚ฌ์šฉ์ด ๋น„ํšจ์œจํ•ด์ง

Disk Management

  • ๋ฌผ๋ฆฌ์  ํฌ๋งท(Physical formatting) ๋˜๋Š” ์ €์ˆ˜์ค€ ํฌ๋งท

    • ๋””์Šคํฌ๋ฅผ ์„นํ„ฐ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•จ
    • ์„นํ„ฐ = ํ—ค๋” + ๋ฐ์ดํ„ฐ(๋ณดํ†ต 512B) + ํŠธ๋ ˆ์ผ๋Ÿฌ
    • ์—ฌ๋ถ„ ์„นํ„ฐ ๋˜๋Š” ์‹ค๋ฆฐ๋”๋Š” bad block ๋Œ€๋น„์šฉ
  • ํŒŒ์ผ ์‹œ์Šคํ…œ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋…ผ๋ฆฌ ํฌ๋งท(Logical formatting) ํ•„์š”

    • OS๊ฐ€ ํŒŒํ‹ฐ์…˜์„ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„
    • ํŒŒํ‹ฐ์…˜๋งˆ๋‹ค ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ์ดˆ๊ธฐํ™”
  • ๋ถ€ํŒ… ๊ณผ์ •(Power-up)

    • ์ž‘์€ bootstrap loader๋Š” ROM์—์„œ ์‹คํ–‰๋จ
    • ๋””์Šคํฌ์˜ ๋ถ€ํŠธ ๋ธ”๋ก์„ ๋กœ๋”ฉํ•˜์—ฌ OS๋ฅผ ์‹คํ–‰

RAID

  • RAID (Redundant Array of Inexpensive Disks)

    • ๋‹ค์ˆ˜์˜ ๋””์Šคํฌ๋ฅผ ๋ณ‘๋ ฌ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ณ ์šฉ๋Ÿ‰ ๋ฐ ๊ณ ์† ์ œ๊ณต
    • ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ: ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ €์žฅ โ†’ ์ผ๋ถ€ ๋””์Šคํฌ ์‹คํŒจ ์‹œ์—๋„ ๋ณต๊ตฌ ๊ฐ€๋Šฅ
  • ์ด์ :

    • ํ•˜๋‚˜์˜ ๋””์Šคํฌ๊ฐ€ ๊ณ ์žฅ๋‚  ํ™•๋ฅ  < ์—ฌ๋Ÿฌ ๋””์Šคํฌ ์ค‘ ์ผ๋ถ€๊ฐ€ ๊ณ ์žฅ๋‚  ํ™•๋ฅ 
    • ํ•˜์ง€๋งŒ RAID๋Š” ๋ณต๊ตฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์—ฌ ์ „์ฒด ์‹œ์Šคํ…œ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ด
  • ์˜ˆ์‹œ:

    • 100๊ฐœ์˜ ๋””์Šคํฌ๋ฅผ ๊ฐ€์ง„ ์‹œ์Šคํ…œ
      • ๊ฐ ๋””์Šคํฌ MTTF: 100,000์‹œ๊ฐ„
      • ์‹œ์Šคํ…œ ์ „์ฒด MTTF๋Š” ์•ฝ 1000์‹œ๊ฐ„ (41์ผ)
  • ๋Œ€๊ทœ๋ชจ ๋””์Šคํฌ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค ๋ฐฉ์ง€ ๊ธฐ์ˆ ์ด ํ•„์ˆ˜

Improvement of Reliability via Redundancy

  • Redundancy: ๋””์Šคํฌ ๊ณ ์žฅ ์‹œ ์†์‹ค๋œ ์ •๋ณด๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ์ •๋ณด ์ €์žฅ
  • ์˜ˆ์‹œ: Mirroring (shadowing)
    • ๋‘ ๊ฐœ์˜ ๋ฌผ๋ฆฌ ๋””์Šคํฌ์— ๋™์ผํ•œ ๋…ผ๋ฆฌ ๋””์Šคํฌ ๋‚ด์šฉ์„ ์ €์žฅ
    • ๊ฐ ์“ฐ๊ธฐ ์ž‘์—…์€ ๋‘ ๋””์Šคํฌ ๋ชจ๋‘์— ์ˆ˜ํ–‰๋จ
    • ์ฝ๊ธฐ ์š”์ฒญ์€ ์–ด๋А ๋””์Šคํฌ์—์„œ๋“  ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ์žฅ์ :
    • ํ•œ ๋””์Šคํฌ๊ฐ€ ๊ณ ์žฅ ๋‚˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๋””์Šคํฌ์—์„œ ์ •๋ณด ๋ณต๊ตฌ ๊ฐ€๋Šฅ
    • ๋™์‹œ ๊ณ ์žฅ ํ™•๋ฅ ์ด ๋งค์šฐ ๋‚ฎ์Œ
  • ๋‹จ์ :
    • ๋””์Šคํฌ ์ˆ˜ ์ฆ๊ฐ€
  • ํ‰๊ท  ๋ฐ์ดํ„ฐ ์†์‹ค ์‹œ๊ฐ„ = ๊ณ ์žฅ๊นŒ์ง€์˜ ํ‰๊ท  ์‹œ๊ฐ„ + ๋ณต๊ตฌ ์‹œ๊ฐ„
    • MTTF = 100,000์‹œ๊ฐ„, ๋ณต๊ตฌ = 10์‹œ๊ฐ„ โ†’ RAID 1 ๊ตฌ์„ฑ ์‹œ ์•ฝ 5์ฒœ๋งŒ ์‹œ๊ฐ„

Improvement in Performance via Parallelism

  • ๋””์Šคํฌ ๋ณ‘๋ ฌ์„ฑ์˜ ๋ชฉํ‘œ:
    1. ๋ถ€ํ•˜ ๋ถ„์‚ฐ โ†’ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ฆ๊ฐ€
    2. ๋ณ‘๋ ฌ ์ ‘๊ทผ โ†’ ์‘๋‹ต ์‹œ๊ฐ„ ๋‹จ์ถ•
  • Bit-level striping
    • ๊ฐ ๋ฐ”์ดํŠธ์˜ ๋น„ํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ๋‚˜๋ˆ  ์ €์žฅ
    • ์ฝ๊ธฐ ์†๋„๋Š” ๋น ๋ฅด์ง€๋งŒ, seek/latency๋Š” ๋‹จ์ผ ๋””์Šคํฌ๋ณด๋‹ค ๋‚˜์  ์ˆ˜ ์žˆ์Œ
  • Block-level striping
    • ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋””์Šคํฌ์— ๋ถ„์‚ฐ ์ €์žฅ:
      • ์˜ˆ: ๋””์Šคํฌ kkk์— ์ €์žฅ โ†’ (imodโ€‰โ€‰n)+1(i \mod n) + 1(imodn)+1
    • ์—ฐ์†๋œ ๋ธ”๋ก ์š”์ฒญ ์‹œ ์—ฌ๋Ÿฌ ๋””์Šคํฌ์—์„œ ๋™์‹œ์— ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

RAID Levels

  • RAID๋Š” ๋””์Šคํฌ ์ŠคํŠธ๋ผ์ดํ•‘ + ํŒจ๋ฆฌํ‹ฐ๋ฅผ ํ†ตํ•ด ์ €๋น„์šฉ์œผ๋กœ ์ค‘๋ณต์„ฑ ์ œ๊ณต
  • ๋‹ค์–‘ํ•œ RAID ๋ ˆ๋ฒจ์€ ๋น„์šฉ, ์„ฑ๋Šฅ, ์‹ ๋ขฐ์„ฑ ์ธก๋ฉด์—์„œ ์ฐจ์ด๋ฅผ ๋ณด์ž„
  • RAID 0: ๋ธ”๋ก ์ŠคํŠธ๋ผ์ดํ•‘, ์ค‘๋ณต ์—†์Œ
    • ๋ฐ์ดํ„ฐ ์†์‹ค ํ—ˆ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ
  • RAID 1: ๋ฏธ๋Ÿฌ๋ง (๋ณต์ œ ๋””์Šคํฌ)
    • ๋›ฐ์–ด๋‚œ ์“ฐ๊ธฐ ์„ฑ๋Šฅ ์ œ๊ณต
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ๋“ฑ์— ์ ํ•ฉ
  • RAID 2: Bit-level striping + ECC ๋””์Šคํฌ
    • ๊ฐ ๋น„ํŠธ ๋‹จ์œ„๋กœ ๋””์Šคํฌ ๋ถ„์‚ฐ, ECC๋กœ ์—๋Ÿฌ ๋ณต๊ตฌ ๊ฐ€๋Šฅ
  • RAID 3: Byte-level striping + ํŒจ๋ฆฌํ‹ฐ ์ „์šฉ ๋””์Šคํฌ
    • ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ  ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ์ €์žฅ
    • ํŒจ๋ฆฌํ‹ฐ๋Š” ๋ณ„๋„์˜ ๋””์Šคํฌ์— ์ €์žฅ๋จ
  • RAID 4: Block-interleaved parity, block-level striping
    • ๋ชจ๋“  ๋””์Šคํฌ์—์„œ์˜ ํ•ด๋‹น ๋ธ”๋ก๋“ค๊ณผ XORํ•˜์—ฌ ํŒจ๋ฆฌํ‹ฐ ๋””์Šคํฌ์— ์ €์žฅ
    • ํŒจ๋ฆฌํ‹ฐ ๋ธ”๋ก์€ ๋ณ‘๋ ฌ ์“ฐ๊ธฐ ๋ณ‘๋ชฉ ํ˜„์ƒ์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ์Œ
  • RAID 5: Block-interleaved distributed parity, block-level striping
    • ๋ฐ์ดํ„ฐ์™€ ํŒจ๋ฆฌํ‹ฐ๋ฅผ ๋ชจ๋“  ๋””์Šคํฌ์— ๋ถ„์‚ฐ ์ €์žฅ
    • ์˜ˆ: ๋””์Šคํฌ๊ฐ€ 5๊ฐœ์ผ ๋•Œ,
      • nnn๋ฒˆ์งธ ๋ธ”๋ก์˜ ํŒจ๋ฆฌํ‹ฐ๋Š” (nmodโ€‰โ€‰5)+1(n \mod 5) + 1(nmod5)+1๋ฒˆ์งธ ๋””์Šคํฌ์— ์ €์žฅ
      • ๋‚˜๋จธ์ง€ 4๊ฐœ ๋””์Šคํฌ์—๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์ €์žฅ
  • ๋ถ„์‚ฐ ํŒจ๋ฆฌํ‹ฐ โ†’ ๋ณ‘๋ชฉ ํ˜„์ƒ ์ค„์ž„

Choice of RAID Level

  • RAID ๋ ˆ๋ฒจ ์„ ํƒ ์‹œ ๊ณ ๋ ค ์š”์†Œ:

    • ๋น„์šฉ (Monetary cost)
    • ์„ฑ๋Šฅ: ์ดˆ๋‹น I/O ์—ฐ์‚ฐ ์ˆ˜, ์ •์ƒ ์ž‘๋™ ์ค‘ ๋Œ€์—ญํญ
    • ์žฅ์•  ๋ฐœ์ƒ ์‹œ ์„ฑ๋Šฅ
    • ๋””์Šคํฌ ๋ณต๊ตฌ ์‹œ ์„ฑ๋Šฅ
  • RAID 0: ๋ฐ์ดํ„ฐ ์•ˆ์ „์ด ์ค‘์š”ํ•˜์ง€ ์•Š์„ ๋•Œ๋งŒ ์‚ฌ์šฉ

    • ๋‹ค๋ฅธ ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
  • RAID 2, 3: ํ˜„์žฌ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

    • ๋น„ํŠธ/๋ฐ”์ดํŠธ ๋‹จ์œ„ striping์€ ๋ชจ๋“  ๋””์Šคํฌ ์ ‘๊ทผ์„ ๊ฐ•์ œ
    • ๋””์Šคํฌ ์•” ์ด๋™ ๋‚ญ๋น„ โ†’ ๋ธ”๋ก ๋‹จ์œ„ striping์ด ์ด๋ฅผ ํ”ผํ•จ (RAID 4, 5)
  • RAID 4: RAID 5์— ํก์ˆ˜๋˜์–ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

  • โ†’ ์‹ค์งˆ์  ์„ ํƒ์ง€๋Š” RAID 1 vs RAID 5

  • RAID 1: RAID 5๋ณด๋‹ค ํ›จ์”ฌ ๋‚˜์€ ์“ฐ๊ธฐ ์„ฑ๋Šฅ

    • RAID 5๋Š” ๋ธ”๋ก 1๊ฐœ ์“ฐ๊ธฐ์—๋„ ์ตœ์†Œ 2๊ฐœ์˜ ์ฝ๊ธฐ + 2๊ฐœ์˜ ์“ฐ๊ธฐ ํ•„์š”
    • RAID 1์€ ๋ธ”๋ก 2๊ฐœ ์“ฐ๊ธฐ๋งŒ ํ•„์š”
    • ๋กœ๊ทธ ๋””์Šคํฌ ๋“ฑ ์—…๋ฐ์ดํŠธ ๋นˆ๋„ ๋†’์€ ํ™˜๊ฒฝ์— ์ ํ•ฉ
  • RAID 1์˜ ๋‹จ์ : ์ €์žฅ ๊ณต๊ฐ„ ์š”๊ตฌ๋Ÿ‰์ด RAID 5๋ณด๋‹ค ํผ

    • ํ•˜์ง€๋งŒ ๋””์Šคํฌ ์šฉ๋Ÿ‰์€ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ (์—ฐ๊ฐ„ 50%)
    • ๋””์Šคํฌ ์ ‘๊ทผ ์‹œ๊ฐ„์€ ์ฒœ์ฒœํžˆ ๊ฐ์†Œ (10๋…„๊ฐ„ 3๋ฐฐ ์ˆ˜์ค€)
    • ์›น ์„œ๋ฒ„ ๋“ฑ์—์„œ I/O ์š”๊ตฌ๋Ÿ‰์ด ๋งค์šฐ ํผ
    • ์ถฉ๋ถ„ํ•œ ๋””์Šคํฌ๋ฅผ ํ™•๋ณดํ•ด๋‘์—ˆ๋‹ค๋ฉด ์—ฌ์œ  ์šฉ๋Ÿ‰์ด ๋‚จ๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์Œ
      โ†’ ์ด ๊ฒฝ์šฐ RAID 1๋„ ์ถ”๊ฐ€ ๋น„์šฉ ์—†์ด ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • RAID 5: ์—…๋ฐ์ดํŠธ๊ฐ€ ์ ๊ณ  ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ™˜๊ฒฝ์— ์ ํ•ฉ

  • RAID 1: ๊ทธ ์™ธ ๋ชจ๋“  ์ƒํ™ฉ์— ๊ถŒ์žฅ๋จ

์ตœ๊ทผ ์ˆ˜์ •:: 25. 6. 19. ์˜คํ›„ 8:26
Contributors: kmbzn
Prev
12. File System
Next
14. I/O Systems

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License