4 minute read

‘혼자 공부하는 컴퓨터구조+운영체제 - 강민철’ 책을 참고하여 작성한 포스트입니다.


하드 디스크(HDD, Hard Disk Drive)

  • 자기적인 방식으로 데이터를 저장하는 보조기억장치. 그래서 자기 디스크(magnetic disk)의 일종으로 지칭하기도 함.
  • 하드 디스크에서 데이터가 저장되는 동그란 원판을 플래터(platter)라고 한다.
  • 플래터는 자기 물질로 덮여 있어 수많은 N극과 S극을 저장하며, 각각 0과 1의 역할을 수행한다.
  • 플래터를 회전시키는 구성 요소를 스핀들(spindle)이라고 한다.
  • 스핀들이 플래터를 돌리는 속도를 분당 회전 수인 RPM(revolution per minute)으로 나타낸다.
  • 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드(head)이다.
  • 플래터 위에 미세하게 떠 있는 채로 데이터를 읽고 쓰며, 바늘같이 생겼고, 헤드를 원하는 위치로 움직이는 디스크 암(disk arm)에 부착되어 있다.
  • 하드 디스크는 일반적으로 여러 겹의 플래터로 이루어져 있고 양면 모두 사용 가능 하다. 따라서 위아래로 두 헤드가 필요하겠죠.
  • 플래터는 트랙(track)섹터(sector)라는 단위로 데이터를 저장한다.
    • 플래터를 여러 동심원으로 나누었을 때 그중 하나의 원을 트랙이라 부른다.
    • 트랙은 피자 조각처럼 여러 조각으로 나누어지는 데 이 한 조각을 섹터라고 한다.
    • 섹터는 하드 디스크의 가장 작은 전송 단위이다.
    • 하나 이상의 섹터를 묶어 블록(block)이라고 한다.
  • 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더(cylinder)라고 한다.
  • 연속된 정보는 보통 한 실린더에 기록된다.
  • 하드 디스크가 저장된 데이터에 접근하는 시간은 크게 ‘탐색 시간’, ‘회전 지연’, ‘전송 시간’으로 나뉜다.
    • 탐색시간(seek time)
      • 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 회전지연(rotational latency)
      • 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송시간(transfer time)
      • 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
  • 하드 디스크에서 데이터를 탐색 하는 시간을 줄이기 위해 RPM을 올리는 것도 좋지만,
  • 참조 지역성을 고려하여 데이터를 배치해 주는 것도 중요하다!
  • 트랙별로 헤드가 여러 개 달려 있는 하드 디스크를 다중 헤드 디스크(multiple-head disk)라고 한다.
  • 그래서 다중 헤드 디스크는 헤드를 움직일 필요가 없어 고정 헤드 디스크(fixed-head disk)라고도 부른다.
  • 반대는 단일 헤드 디스크(single-head disk), 이동 헤드 디스크(movable-head disk)라고 부른다.



플래시 메모리(flash memory)

  • USB 메모리, SD 카드, SSD가 모두 플래시 메모리이다.
  • 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다.
  • 셀(cell)은 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다.
  • 하나의 셀에 몇 비트를 저장하냐에 따라 플래시 메모리 종류가 나뉜다.
  • 한 셀에 1비트를 저장하는 플래시 메모리를 SLC(single level cell) 2, 3을 MLC(multiple level cell), TLC(triple level cell)이라 한다.

SLC 타입

  • 비트의 빠른 입출력이 가능하다.
  • 수명도 길다. 하지만 용량 대비 가격이 높다.
  • 고성능이 요구될 때 사용된다.

MLC 타입

  • 두개의 비트니까 한 셀로 네 개의 정보를 표현 가능하겠죠
  • 시중에서는 MLC 혹은 TLC를 많이 사용한다.

TLC 타입

  • 세개의 비트니까 한 셀로 8개의 정보를 표현 하겠죠


  • 이런 셀들이 모여 만들어진 단위를 페이지(page), 그리고 페이지가 모여 만들어진 단위를 블록(block),
  • 블록이 모여 플레인(plane), 플레인이 모여 다이(die)가 된다.
  • 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어 지지만, 삭제는 페이지보다 큰 블록 단위로 이루어진다!
  • 페이지는 세 개의 상태를 가질 수 있다.
    • 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 Free 상태
    • 이미 유효한 데이터를 저장하고 있는 상태인 Valid 상태
    • 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태인 Invalid 상태
  • 플래시 메모리는 하드 디스크와 달리 덮어 쓰기가 불가능하여 Valid 상태인 페이지에는 새 데이터를 저장할 수 없다!
  • 수정하고 싶다면 기존의 데이터를 Invalid 상태로 바꾸어야 함.
  • 계속 수정하다 보면 이런 쓰레기값이 계속 용량을 차지하기 때문에, 최근 플래시 메모리는 가비지 컬렉션(garbage collection) 기능을 제공한다.
  • 가비지 컬렉션은 유효한 페이지들만을 새로운 블록으로 복사한 뒤, 기존의 블록을 삭제하는 기능이다.



RAID

  • RAID(redundant array of independent disks) 는 주로 하드 디스크와 SSD에 사용하는 기술로,
  • 데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

RAID의 종류

  • RAID 구성 방법을 RAID 레벨이라 표현하는데, 가장 대중적인 RAID 레벨들은
  • RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 등이 있다.

RAID 0

  • RAID 0은 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식이다.
  • 즉, 저장되는 데이터가 보조기억장치의 개수만큼 나누어 저장되는 것이다.
  • 이때 마치 줄무늬처럼 분산되어 저장되며, 이렇게 저장된 데이터를 스트라입(stripe)이라 하고,
  • 분산하여 저장하는 것을 스트라이핑(striping)이라고 한다.
  • 여러 보조기억장치로부터 데이터를 한번에 받아 읽고 쓰므로 이론상으로 한개의 저장 장치를 이용하는 것보다 보조기억장치의 개수의 배만큼 빠르다.
  • 문제는 하나의 보조기억장치에 문제가 생기면 다른 모든 보조기억장치의 정보를 읽는 데 문제가 생길 수 있다.

RAID 1

  • RAID 0 의 단점을 보완하기 위해 복사본을 만드는 방식이다.
  • 거울처럼 완전한 복사본을 만드는 구성이라 미러링(mirroring)이라고도 부른다.
  • 보조기억장치의 개수를 반으로 나눠 각 그룹에 같은 데이터를 저장하는 방식이라, 한 그룹 내의 보조기억장치에 문제가 생겨도 다른 그룹의 데이터는 멀쩡하다.
  • 안정적이지만 그만큼 느려진다.

RAID 4

  • RAID 1처럼 완전한 복사본을 만드는 것이 아닌, 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성방식이다.
  • 오류를 검출하고 복구하기 위한 정보패리티 비트(parity bit) 라고 한다.
  • 본래 패리티 비트는 오류 검출용 정보지만, RAID 에서는 오류 복구도 가능하다.

RAID 5

  • RAID 4에서는 데이터 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되므로 패리티를 저장하는 장치에 병목 현상이 발생한다는 문제가 있다.
  • RAID 5는 패리티 정보를 각 보조기억장치에 분산하여 저장하는 방식으로 병목 현상을 해소한다.

RAID 6

  • RAID 6 은 RAID 5와 비슷하나, 서로 다른 두 개의 패리티를 두어, 오류를 검출하고 복구할 수 있는 수단을 두 개로 늘린 방식이다.
  • 쓰기 속도는 RAID 5보다 느려지겠지만 데이터를 더 안전하게 보관 가능하다.



정리

  • 하드 디스크의 구성 요소에는 플래터, 스핀들, 헤드, 디스크 암이 있다.
  • 플래터는 트랙과 섹터로 나뉘고, 여러 플래터의 동일한 트랙이 모여 실린더를 이룬다.
  • 하드 디스크의 데이터 접근 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.
  • 플래시 메모리는 한 셀에 몇 비트를 저장할 수 있느냐에 따라 SLC, MLC, TLC로 나뉜다.
  • 플래시 메모리의 읽기와 쓰기는 페이지 단위로, 삭제는 블록 단위로 이루어진다.
  • RAID란 데이터의 안전성 혹은 높은 성능을 위해 여러 보조기억장치를 마치 하나의 장치처럼 사용하는 기술이다.
  • RAID 0는 데이터를 단순히 병렬 분산하여 저장하고, RAID 1은 완전한 복사본을 만든다.
  • RAID 4는 패리티를 저장한 장치를 따로 두고, RAID 5는 패리티를 분산하여 저장한다.
  • RAID 6은 서로 다른 두 개의 패리티를 두는 방식이다.

Leave a comment