CS/OS

[OS] Mass-Storage Structure

은 딩 2023. 6. 7. 03:35

[목차]

Disk Structure

Solid-state disk (SSD) Characteristics

Disk Attachment

Disk Scheduling

Disk Management

RAID Structure


Disk Structure

  1. Head가 track으로 seek(탐색)
    - 가장 오래 걸림, 연산은 실린더 단위로
  2. rotational delay
  3. transfer time
    -모든 arm이 동일 track
    -spinning 하는데 많이 소모

Access Time

  • seek time + Rotational delay + data transfer time
    • seek time : head가 track 가는 시간, 최소화 시켜야 함
    • data transfer time : 데이터 전송
  • Effective bandwidth = (# of bytes) / (seek time + Rotational delay + data transfer time)    MB/s
  • sustainable bandwidth = (# of bytes) / (data transfer time) 

SSD(solid-state disk) 특징

  • Less capacity
  • much faster
  • MB당 더 비쌈
  • HDD보다 reliable
  • 칩 안정적
  • P/E cycle
  • "page"단위로 읽고 씀
  • overwrite X
  • 수명은 DWPD(Drive Writes Per Day)로 측정
    • DWPD는 하루에 쓸 수 있는 최대 용량
  • read/write 단위 : page
    erase 단위 : block
    => SSD에서 중요
    why? 이거 때문에 garbage collection
    +) disk 최소 단위는 sector
  • Read보다 Write 성능이 훨씬 안 좋음
    (쓸 때 지우고 필요하면 garbage도 해야 함.)
    • 그래서 유효한 데이터 옮겨놓고 전체 지움
      • 옮기는 과정이 garbage collection이고 당연히 많이 할수록 성능 떨어짐

Data Attachment

Host-attached storage

  • I/O ports를 통해 접근
  • SCSI
    • bus 그 자체
    • 한 cable에 16 device까지 initiator가 작업 요청하고 target이 task 수행

NAS(Network Attached Storage)

  • bus 같은 local 연결이 아니라 network를 통해 사용할 수 있는 storage
  • protocol 있음(network protocol 사용)

NAS

SAN(Storage Area Network)

  • storage protocol 사용
  • storage는 host에게 붙는다.
    • FC는 SAN에서 가장 흔함

SAN


Disk Scheduling

FCFS(First Come First Served)

  • seek time 최소화
  • request queue에 있는 request를 reordering
    ex) 수능 쉬운 문제부터 풀기
  • 요청이 먼저 들어온 순서대로 처리(?)
  • cf) CPU 스케줄러 목표 : 하나 선택

FCFS

SSTF(Shortest Seek Time First)

  • seek time 최소화, throughput 극대화
  • 최적X
  • 현재 head에서 가장 가까운 track의 요청을 먼저 처리
    • 그래서, seek time은 적을 수 있으나, 바깥쪽애들은 starvation 발생 가능

SCAN(elevator algorithm)

  • head의 진행방향에 있는 요청을 처리하고, 다시 반대방향으로 틀어 반대방향에 있는 요청 처리
  • 엘레베이터가 동작하는 원리 같아서 elevator algorithm이라고 함
  • 장점 : SSTF의 starvation 가능성 제거, 응답시간 편차 줄임
  • 단점 : 양쪽 끝 트랙의 대기 시간이 길어진다. (엘베 비유 : 맨 꼭대기 층이 중간층보다 응답시간 길어질수도)
  • ex) 스캐너

C-SCAN(one direction)

  • 항상 한쪽 방향에서 반대방향으로 진행하며 트랙 요청 처리
  • 끝에 도달하면 다른 끝으로 가서 다시 진행
  • SCAN의 단방향 처리

 

Look Algorithm

  • LOOK 과 C-LOOK 은 SCAN과 C-SCAN을 보완하기 위한 스케쥴링 기법
  • 굳이 끝까지 가지 않고 방향 바꾸기
  • 장점 : 불필요한 헤드 이동시간 제거
  • 단점 : 끝까지 갈지 말지 판단하는데 overhead 발생

C-Look (one direction)

  • 단방향인데 끝까지 X


Disk Management

Disk Formatting

  • file system 새로 입힘(logical formatting)

Swap-space

  • 쫓겨난 page 담는 공간
  • 주로 row disk partition에서 사용
    • partition은 File System이 입힐 수 있는 단위
  • row나 cooked로 나뉘는데,
    row는 File System이 없고 formatting 안됨
    cooked는 File System 있고 Formatting 됨

swap map mechanism

 > 쫓겨난 페이지는 bit map이 0인 곳에!


RAID Structure

: Redundant Array of Inexpensive(Independent) Disks

 

  • Throughput(처리율)
    • striping
      • 파일 쪼개서 분산 저장
      • bandwidth ⬆️ 읽기 속도 ⬆️
      • striping 쪼개는 단위
        • Bit-level striping => 잘게 쪼갠다 (모든 disk가 데이터 읽어들일 확률⬆️)
        • Block-level striping => 크게 잘랐음(모든 disk가 참여 안할수도, 몇개만 참여)
  •  Fault-Tolerance(고장 감내 시스템) 
    • Mirroring
      • 데이터 복제 => 용량 많이 필요
      • Mean time to data loss
        • repair 하는동안 또 고장나는 거임
    • parity
      • XOR 연산

XOR로 복구 가능

disk 많아질수록 failure(고장) ⬆️

 


RAID Levels

전체 구조

 

(a) RAID 0

> striping만(복구X)

 

(b) RAID 1

> mirroring

 

(c) RAID 2

많이 안쓰임

 

(d) RAID 3

> 잘게 쪼개서 여러 disk에 저장(parity)

 

(e) RAID 4

> block level striping

 

RAID3, RAID4의 문제점 : 고장 안나면 parity 낭비

 

(f) RAID 5

> parity 분산해서 저장

> block-level striping + distributed parity

 

RAID3,4,5는 두 개 동시에 고장이면 복구X

but, RAID 6은 가능

 

(g) RAID 6

> 두 개 고장나도 북구 가능

 

+) Board는 h/w RAID

윈도우 설정은 s/w RAID

 

Disk mode

- normal mode

- failure mode

 

Hot spare

- 다른 disk fail 되면 대체(rebuilding) => fail disk의 data 복구 돼야함

 

small write problem

- Read -> modify -> write cycle

추가적으로 read하고 parity update 해야 함

 

 

 

 

 

 

 

 

 

 

 


Reference

Operating System Concepts 10th Edition