07-1 다양한 보조 기억 장치

하드 디스크

하드 디스크(Hard Disk Drive)

  • 자기 디스크(magnetic disk)
  • 자기적인 방식으로 데이터를 저장하는 보조 기억 장치
  • 구성요소
    • 플래터(platter): 하드 디스크에서 실질적으로 데이터가 저장되는 곳
      • 트랙(track): 플래터를 여러 동심원으로 나누었을 때 그중 하나의 원
      • 섹터(sector): 트랙을 나눈 한 조각
      • 블록(block): 다수의 섹터 묶음
      • 실린더(cylinder): 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
        • 연속된 정보는 보통 한 실린더에 기록
    • 스핀들(spindle): 플래터를 회전시키는 구성 요소
      • RPM(Revolution Per Minute): 플래터가 돌아가는 분당 회전수
    • 헤드(head): 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
    • 디스크 암(disk arm): 헤드를 원하는 위치로 이동시키는 부품
  • 접근 과정
    • 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
      • **다중 헤드 디스크(multiple-head disk)**에선 소요되지 않는 시간
      • 다중 헤드 디스크 = 고정 헤드 디스크(fixed-head disk)
    • 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송 시간(transfer time): 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
    • 하드 디스크가 데이터에 접근하는 시간 = 탐색 시간 + 회전 지연 + 전송 시간
  • 컴퓨터 내 소요 시간(ns = 10^-9)
    내용소요 시간
    L1 캐시 참조 시간0.5ns
    L2 캐시 참조 시간5ns
    메모리 참조 시간7ns
    메모리에서 1MB를 순차적으로 읽는 시간250,000ns
    하드 디스크 탐색 시간10,000,000ns
    하드 디스크에서 1MB를 순차적으로 읽는 시간30,000,000ns
    한 패킷이 캘리포니아에서 네덜란드까지 왕복하는 시간150,000,000ns

플래시 메모리

  • 플래시 메모리(flash memory): 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치

    • NAND 플래시 메모리
      • NAND 연산을 수행하는 NAND 게이트 기반 메모리
      • 대용량 저장 장치로 많이 사용
      • 보조기억장치로서의 플래시 메모리
    • NOR 플래시 메모리
      • NOR 연산을 수행하는 NOR 게이트 기반 메모리
  • 셀(cell): 플래시 메모리에서 데이터를 저장하는 가장 작은 단위

    • SLC(Single Level Cell): 한 셀에 1비트 저장
    • MLC(Multiple Level Cell): 한 셀에 2비트 저장
    • TLC(Triple-Level Cell): 한 셀에 3비트 저장

    SLC 타입

    • 1개의 셀로 2개의 정보 표시(0과 1)
    • 비트의 빠른 입출력
    • 긴 수명
    • 용량 대비 높은 가격

    MLC 타입

    • 1개의 셀로 4개의 정보 표시
    • SLC보다 대용량화에 유리

    TLC 타입

    • 1개의 셀로 8개의 정보 표시
    • 짧은 수명
    • 용량 대비 낮은 가격
    • MLC보다 대용량화에 유리
  • 셀 이상의 단위

    • 셀 → 페이지(page)블록(block)플레인(plane)다이(die)
    • 읽기와 쓰기: 페이지 단위
    • 삭제: 페이지보다 큰 블록 단위
    • 페이지의 상태
      • Free: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
      • Valid: 이미 유효한 데이터를 저장하고 있는 상태
        • 덮어쓰기가 불가능하여 이 상태의 페이지에는 저장 불가능
      • Invalid: 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
  • 가비지 컬렉션(garbage collection)

    • 4개의 페이지로 이루어진 블록 X에 2개의 페이지에 A,B 데이터가 입력되었다고 가정
    • 이때 C를 새로 입력하고, A를 A’ 으로 변경한다면?
    • 블록 X는 A, B, C, A’ 4개가 모두 차게 됨
      • 덮어쓰기가 불가능하고,
      • 삭제는 페이지 단위가 아닌 블록 단위이기 때문
    • 이떄 Valid 상태는 A, B, C 뿐임
      • A’는 Invalid 상태의 페이지로 냅두는 것은 리소스 낭비
    • GC는 유효한 페이지인 A, B, C를 새로운 블록 Y로 복사하고, 기존의 블록 X는 삭제함

07-2 RAID의 정의와 종류

RAID의 정의

보조기억장치에도 수명이 있다.

RAID(Redundant Array of Independent Disks)

  • 주로 하드 디스크와 SSD를 사용하는 기술
  • 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미
  • ex. 1TB 디스크 5개를 하나의 5TB 디스크처럼 사용

RAID의 종류

RAID 레벨

  • RAID를 구성하는 방법
  • RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6, RAID 10, RAID 50 등

RAID 0

  • 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
  • 여러 하드 디스크에 번갈아 가며 데이터를 저장
    • 스트라입(stripe): 줄무니처럼 분산되어 저장된 데이터
    • 스트라이핑(striping): 분산하여 저장하는 것
  • 장점: 데이터를 읽고 쓰는 속도가 빠름(여러 디스크에서 동시에 쓰고 읽기 때문)
  • 단점: 안전하지 않음(하나라도 문제가 생기면 모든 정보를 읽는데 문제가 생길 수 있음)

RAID 1

  • 미러링(mirroring): 복사본 생성
  • 완전히 똑같은 백업을 만듬
  • 장점: 안전함, 복구가 간단함
  • 단점: RAID 0 보다 느린 쓰기 속도, 저장할 수 있는 정보가 가용량의 절반

RAID 4

  • 패리티 비트(parity bit)
    • 오류를 검출하고 복구하기 위한 정보
    • 본래 오류 검출용 정보지만, RAID에서는 오류 복구에도 사용할 수 있음
    • RAID 1 처럼 완전한 복사본 대신, 패리티 비트를 저장하여 안전을 확보
    • 장점: RAID 1보다 적은 백업용 용량
    • 단점: 패리티 비트 저장 장치에 병목이 발생

RAID 5

  • RAID 4와 달리, 패리티 비트를 분산하여 저장
  • RAID 4의 단점인 패리티 비트 저장 병목을 해소

RAID 6

  • RAID 5에서, 패리티 비트를 2개 저장
  • 장점: 복구 수단이 2개가 되어 RAID 5보다 안전
  • 단점: 쓰기 속도는 RAID 5보다 느림

Nested Raid: RAID 0과 RAID 5의 혼합인 RAID 50, RAID 1과 RAID 0의 혼합인 RAID 10처럼 여러 RAID 레벨을 혼합한 방식

RAID 레벨은 각 장단점이 있으므로 상황에 따라 최적이 달라짐