[OS] Mass-Storage Structure
[목차]
Disk Structure
Solid-state disk (SSD) Characteristics
Disk Attachment
Disk Scheduling
Disk Management
RAID Structure
Disk Structure
- Head가 track으로 seek(탐색)
- 가장 오래 걸림, 연산은 실린더 단위로 - rotational delay
- 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 사용)
SAN(Storage Area Network)
- storage protocol 사용
- storage는 host에게 붙는다.
- FC는 SAN에서 가장 흔함
- FC는 SAN에서 가장 흔함
Disk Scheduling
FCFS(First Come First Served)
- seek time 최소화
- request queue에 있는 request를 reordering
ex) 수능 쉬운 문제부터 풀기 - 요청이 먼저 들어온 순서대로 처리(?)
- cf) CPU 스케줄러 목표 : 하나 선택
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 됨
> 쫓겨난 페이지는 bit map이 0인 곳에!
RAID Structure
: Redundant Array of Inexpensive(Independent) Disks
- Throughput(처리율)
- striping
- 파일 쪼개서 분산 저장
- bandwidth ⬆️ 읽기 속도 ⬆️
- striping 쪼개는 단위
- Bit-level striping => 잘게 쪼갠다 (모든 disk가 데이터 읽어들일 확률⬆️)
- Block-level striping => 크게 잘랐음(모든 disk가 참여 안할수도, 몇개만 참여)
- striping
- Fault-Tolerance(고장 감내 시스템)
- Mirroring
- 데이터 복제 => 용량 많이 필요
- Mean time to data loss
- repair 하는동안 또 고장나는 거임
- parity
- XOR 연산
- Mirroring
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