Storage Management - Mass-Storage Structure
- 비휘발성이고 컴퓨터의 보조기억장치로 사용된다.
- 주로 HDD를 예시로 들 수 있다.
1. 대용량 저장 장치
A. 하드 디스크
- Platter = track + ... + track = Track 50K ~ 100K개 = 12.5 ~ 100GB
- Track = sector + ... + sector = Sector 500 ~ 2000개 = 256KB ~ 1MB
- Sector = 512 bytes
- Head: 데이터를 자기적으로 읽거나 쓰는 장치
B. 하드디스크 스케쥴링
- seektime: 디스크 암이 헤드를 원하는 실린더로 옶기는데 필요한 시간
- rotational time: 디스크 헤드가 원하는 섹터 위치로 도달하기까지 회전에 소요되는 시간
- band width: 단위시간당 전송되는 데이터 수
- HDD 스케쥴링은 데이터 섹터에 access 하는 데 걸리는 시간(seek + rotational) 을 줄이고 band width를 늘려야 한다.
- 스케쥴링 알고리즘
- FIFO: 먼저 들어온 요청 수행
- SSTF: 근처에 있는 요청부터 수행
- SCAN: 디스크 암이 디스크의 한 끝에서 시작하여 다른 끝으로 이동하며, 가는 길에 있는 요청을 모두 처리
- C-SCAN: SCAN 방식을 양방향 모두 수행하는 것이다.
- LOOK: C-SCAN방식을 변형한 것으로 각 방향으로 가다가 요청이 없으면 헤드의 이동방향을 반대로 튼다.
2. RAID 구조
- Redundant Arrays of Independent Disks의 약자로 시스템이 많은 수의 디스크를 가지고 있고, 그 시스템이 병렬적으로 운영된다면 데이터 읽기, 쓰기의 시간당 비율을 높일 수 있다. 그리고 중복 정보가 여러 디스크에 저장되기 때문에 데이터 저장의 신뢰성을 높일 수 있다.
A. 중복을 통한 신뢰성 향상(Redunduncy)
- 한 디스크의 고장까지의 평균 시간이 N일때, 100개의 디스크로 구성된 세트의 몇개의 디스크의 고장까지 걸리는 시간은 N/1000으로 짧지않은 시간이다.
- 따라서 이 문제의 해결 방안은 중복을 허용하는 것이다. 필요하지 않은 정보지만 분실된 정보를 재구축 하기 위하여 오류의 경우마다 사용되는 별도의 정보를 저장한다.
- 중복 도입의 가장 간단한(그러나 비용이 많이 드는) 방식은 모든 디스크의 복사본을 만드는 것이다. 이 기술을 미러링이라고 부르고 디 결과를 미러드 볼륨이라고 부른다. 이 방식을 사용하는 경우 하나의 논리 디스크는 두개의 물리 디스크로 구성되고 하나의 디스크에 오류가 생기면 다른 디스크로 부터 데이터를 읽어 들인다.
- 만약 전원 결함 문제가 발생할 경우를 대비하기 위해 비휘발성 메모리 캐시를 RAID 배열에 두는 방식도 있다.
B. 병렬성을 이용한 성능 향상
- 데이터 스트라이핑이란 여러 디스크에 각 바이트를 나누어 저장하는 것이다.
- 여러 디스크에 병렬접근을 하는 것의 장점은 데이터 스트라이핑을 통해 전송 비율을 향상시킬 수 있다는 점이다.
- 예를 들어, 8개의 디스크에 데이터를 8개로 나누어 저장하고 병렬적으로 한 번에 읽는다면 8배 더 빠르게 읽을 수 있다.
C. RAID 레벨
- 미러링에 패리티비트와 스트라이핑을 통해 구현한 기법이 여러가지가 있고 이를 RAID레벨이라고 한다.
- RAID레벨은 0,1,2,3,4,5,6,0+1등등 존재한다.