컴퓨터구조론#10

LeeMir, 10 May 2021

제6장 보조저장장치


하드 디스크
  • 자화될 수 있는 물질로 코팅된 플라스틱이나 금속을 이용한 원형 평판으로 만들어진 저장장치
    • 자기 디스크(magnetic disk), 그냥 디스크(disk)라고도 부름
  • 주요 구성 요소들
    • 원형 평판
      • 실제 정보가 저장되는 장소, 트랙들(약 500개 ~ 2000개)로 구성
    • 헤드
      • 전도성 코일을 통하여 표면을 자화(magnetize) 시킴으로써 데이터를 저장하는 장치
    • 디스크 팔
      • 헤드를 이동시키는 장치
    • 구동장치
      • 원형 평판 회전 및 디스크 팔 구동을 위한 모터
  • 디스크의 구조
    • 섹터(sector) : 디스크에 한 번에 쓰거나 읽는 데이터 크기의 최소 단위
    • 초기 디스크에서는 트랙 당 섹터의 수가 32개였음
      • 지금은 매우 증가함
  • 등각속도 방식
    • 디스크가 일정한 속도로 회전하는 상태에서 트랙의 위치에 상관없이 데이터를 동일한 비율로 액세스하는 방식
      • 각속도가 일정함
    • 구동장치 간단
    • 바깥에 가까울수록 저장 밀도가 낮아져 저장 공간 낭비
  • 디스크 액세스 시간
    • 액세스 동작의 순서
      • 헤드를 해당 트랙으로 이동(탐색 시간)
      • 원하는 섹터가 헤드 아래로 회전되어 올 때까지 대기(회전 지연 시간)
      • 데이터를 전송(데이터 전송 시간)
    • 디스크 액세스 시간 = 탐색 시간 + 회전 지연 시간 + 데이터 전송 시간
  • 디스크 형식화 작업(disk formatting)
    • 디스크의 트랙에 어떠한 형식으로 데이터를 저장할 것인가?
    • 예시
      • 섹터 크기 = 600 bytes(512 bytes의 데이터 + 제어 정보)
      • 제어 정보(ID 필드) : 섹터를 구분하는 데 필요한 식별자 또는 주소
        • Synch 바이트 : 정해진 비트 패턴
          • 섹터를 읽다가 정해진 비트 패턴이 검출되면 지금부터 ID 필드임을 알게 됨
        • 트랙 번호, 헤드 번호, 섹터 번호 : 주소
        • CRC : 오류 검출
      • 데이터 필드에는 무조건 데이터만 담기는게 아니라, 추가적인 정보가 저장될 수 있어 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
      • 장점 : 적은 수의 디스크로 결함 허용도를 제공함
        • 병렬 데이터 읽기 / 쓰기 가능 => 디스크 액세스 속도 향상
      • 단점 : 쓰기 동작 때마다 패리티 비트 갱신 필요 => 시간 지연 발생
    • RAID-4
      • 블록-단위 인터리빙 방식 사용
      • 데이터 디스크들의 동일한 위치에 있는 블록들에 대한 패리티 블록을 패리티 디스크에 저장
      • 데이터 블록 갱신 과정
        • 4개의 디스크 중 수정한 하나의 디스크를 제외한 세 번의 디스크 읽기와 수정한 디스크 및 패리티 디스크의 두 번의 디스크 쓰기 동작이 필요
        • B2를 수정하였을 때, 디스크 액세스의 횟수를 최소화하면, 새로운 패리티 블록 P' = P xor B2 xor B2'으로, 두 번의 읽기와 두 번의 쓰기로 간추릴 수 있음
    • RAID-5
      • RAID-4의 문제점을 보완하기 위하여 패리티 블록들을 별도의 패리티 디스크가 아니라, 라운드-로빈 방식으로 분산 저장
      • 장점 : 패리티 디스크에 대한 병목 현상 해소
        • 쓰기 동작들의 병렬 수행 가능(RAID-4에서는 패리티 디스크 내에서 동시에 수정할 수 없어 병렬 수행이 불가능했음)
      • 단점 : 작은 쓰기 문제 존재
        • 어느 한 블록만 갱신하는 작은 쓰기의 경우에 네 번의 디스크 액세스가 필요하기 때문에 성능이 저하됨