컴퓨터구조론#10
LeeMir, 10 May 2021
제6장 보조저장장치
하드 디스크
- 자화될 수 있는 물질로 코팅된 플라스틱이나 금속을 이용한 원형 평판으로 만들어진 저장장치
- 자기 디스크(magnetic disk), 그냥 디스크(disk)라고도 부름
- 주요 구성 요소들
- 원형 평판
- 실제 정보가 저장되는 장소, 트랙들(약 500개 ~ 2000개)로 구성
- 헤드
- 전도성 코일을 통하여 표면을 자화(magnetize) 시킴으로써 데이터를 저장하는 장치
- 디스크 팔
- 헤드를 이동시키는 장치
- 구동장치
- 원형 평판 회전 및 디스크 팔 구동을 위한 모터
- 원형 평판
- 디스크의 구조
- 섹터(sector) : 디스크에 한 번에 쓰거나 읽는 데이터 크기의 최소 단위
- 초기 디스크에서는 트랙 당 섹터의 수가 32개였음
- 지금은 매우 증가함
- 등각속도 방식
- 디스크가 일정한 속도로 회전하는 상태에서 트랙의 위치에 상관없이 데이터를 동일한 비율로 액세스하는 방식
- 각속도가 일정함
- 구동장치 간단
- 바깥에 가까울수록 저장 밀도가 낮아져 저장 공간 낭비
- 디스크가 일정한 속도로 회전하는 상태에서 트랙의 위치에 상관없이 데이터를 동일한 비율로 액세스하는 방식
- 디스크 액세스 시간
- 액세스 동작의 순서
- 헤드를 해당 트랙으로 이동(탐색 시간)
- 원하는 섹터가 헤드 아래로 회전되어 올 때까지 대기(회전 지연 시간)
- 데이터를 전송(데이터 전송 시간)
- 디스크 액세스 시간 = 탐색 시간 + 회전 지연 시간 + 데이터 전송 시간
- 액세스 동작의 순서
- 디스크 형식화 작업(disk formatting)
- 디스크의 트랙에 어떠한 형식으로 데이터를 저장할 것인가?
- 예시
- 섹터 크기 = 600 bytes(512 bytes의 데이터 + 제어 정보)
- 제어 정보(ID 필드) : 섹터를 구분하는 데 필요한 식별자 또는 주소
- Synch 바이트 : 정해진 비트 패턴
- 섹터를 읽다가 정해진 비트 패턴이 검출되면 지금부터 ID 필드임을 알게 됨
- 트랙 번호, 헤드 번호, 섹터 번호 : 주소
- CRC : 오류 검출
- Synch 바이트 : 정해진 비트 패턴
- 데이터 필드에는 무조건 데이터만 담기는게 아니라, 추가적인 정보가 저장될 수 있어 515 bytes 정도 차지함
- 갭 : ID필드와 데이터 필드 또는 섹터와 섹터 등을 구분하기 위해 데이터를 저장하지 않는 빈 공간
- 기계적 오차를 완충할만큼 갭을 형성함
- CRC(Cyclic Redundancy Check)
- 디스크로부터 데이터를 읽거나 데이터 통신 과정에서 발생하는 오류를 검출하기 위하여 순환 2진 부호를 사용하는 방식
- 패리티 비트와 유사한 개념
RAID(Redundant Array of Inexpensive Disks)
- RAID 출현의 배경
- 한 개의 대형 디스크를 사용하는 것보다, 크기가 작은 여러 개의 디스크들을 서로 연결하여 하나의 큰 용량을 가진 디스크 배열을 구성하면, 보다 더 저렴한 가격으로 더 큰 용량을 가진 디스크 서브 시스템의 구성 가능
- 디스크 인터리빙(disk interleaving)
- 데이터 블록들을 여러 개 디스크들로 이루어진 디스크 배열(disk array)에 분산 저장하는 기술
- 균등 분산 저장을 위하여 라운드-로빈 방식 사용
- 동시에 병렬로 순차적인 데이터를 꺼낼 수 있게 저장함
- 디스크 배열의 주요 단점 : MTTF(Mean Time To Failure) 저하
- MTTF = 단일 디스크의 MTTF / 배열 내 디스크들의 수
- 고장이 잘 난다는 뜻
- 디스크 배열의 결함허용도(fault-tolerance)를 높이기 위하여 RAID가 제안됨
- 핵심 기술 : 추가적인 검사 디스크들을 이용하여 오류 검출 및 복구 기능 추가
- RAID의 종류
- RAID-1
- 디스크 미러링 : 데이터 디스크에 저장된 모든 데이터들은 짝(pair)을 이루고 있는 미러 디스크의 같은 위치에 복사
- 한쪽 디스크가 고장나면 다른쪽 디스크를 쓰면 된다는 생각
- 양쪽이 동시에 고장날 일은 거의 없음
- 장점 : 거의 완전한 결함 허용도(fault tolerance)를 제공
- 단점 : 가격이 높음
- 용도 : 높은 신뢰도를 요구하는 결함허용시스템에 주로 사용
- 시스템 소프트웨어 혹은 중요한 데이터 파일 저장에 사용
- RAID-2
- 비트-단위 인터리빙 방식 사용 : 데이터를 각 디스크에 비트 단위로 분산 저장
- 해밍 코드(Hamming code)를 이용한 오류 검출 및 정정
- 필요한 검사 디스크 수를 구하는 식
2^(C) - 1 >= G + C
- G : 데이터 디스크 수 / C : 필요한 검사 디스크 수
- 장점 : RAID-1보다는 적은 수의 디스크들이 필요하면서 RAID-1에 가까운 결함 허용도 제공
- 단점 : 필요한 검사 디스크들의 수가 여전히 많아 가격이 비쌈
- 용도 : 오류가 많이 발생하는 환경에서 사용
- RAID-3
- 패리티 방식을 이용한 오류 검출 및 정정 방식 사용
- 패리티 디스크를 따로 사용함
- 패리티 비트 :
p = b1 xor b2 xor b3 xor b4
- 디스크에 결함이 발생한 경우의 데이터 복구 방법
- 예) b2가 저장된 디스크 결함 발생시 :
b2 = p xor b1 xor b3 xor b4
- 예) b2가 저장된 디스크 결함 발생시 :
- 장점 : 적은 수의 디스크로 결함 허용도를 제공함
- 병렬 데이터 읽기 / 쓰기 가능 => 디스크 액세스 속도 향상
- 단점 : 쓰기 동작 때마다 패리티 비트 갱신 필요 => 시간 지연 발생
- 패리티 방식을 이용한 오류 검출 및 정정 방식 사용
- RAID-4
- 블록-단위 인터리빙 방식 사용
- 데이터 디스크들의 동일한 위치에 있는 블록들에 대한 패리티 블록을 패리티 디스크에 저장
- 데이터 블록 갱신 과정
- 4개의 디스크 중 수정한 하나의 디스크를 제외한 세 번의 디스크 읽기와 수정한 디스크 및 패리티 디스크의 두 번의 디스크 쓰기 동작이 필요
- B2를 수정하였을 때, 디스크 액세스의 횟수를 최소화하면, 새로운 패리티 블록
P' = P xor B2 xor B2'
으로, 두 번의 읽기와 두 번의 쓰기로 간추릴 수 있음
- RAID-5
- RAID-4의 문제점을 보완하기 위하여 패리티 블록들을 별도의 패리티 디스크가 아니라, 라운드-로빈 방식으로 분산 저장
- 장점 : 패리티 디스크에 대한 병목 현상 해소
- 쓰기 동작들의 병렬 수행 가능(RAID-4에서는 패리티 디스크 내에서 동시에 수정할 수 없어 병렬 수행이 불가능했음)
- 단점 : 작은 쓰기 문제 존재
- 어느 한 블록만 갱신하는 작은 쓰기의 경우에 네 번의 디스크 액세스가 필요하기 때문에 성능이 저하됨
- RAID-1