본문 바로가기

파일 처리

[파일처리] HDD의 구조 및 저장 방식

HDD란?

하드디스크(Hard Disk Drive, HDD)는 데이터를 저장하고 읽는 역할을 하는 컴퓨터의 주요 저장 장치이다. 내부에 회전하는 자기 디스크(플래터, platter)와 이를 읽고 쓰는 헤드(head)가 있으며, 전자기적인 방식으로 데이터를 기록한다.

 

 

 

하드디스크의 주요 특징

  1. 비휘발성 저장 장치
    • 전원이 꺼져도 데이터가 사라지지 않는다.
  2. 대용량 저장 가능
    • 일반적으로 테라바이트(TB) 단위까지 저장 가능하며, SSD보다 저렴한 비용으로 많은 데이터를 저장할 수 있다.
  3. 자기 디스크 기반 작동
    • 플래터가 빠르게 회전하며, 자기 헤드가 데이터를 읽고 쓴다.
  4. 속도와 내구성
    • SSD(Solid State Drive)에 비해 속도가 느리고 충격에 취약하다.
    • 평균 회전 속도는 5400RPM, 7200RPM이며, 서버용은 10000RPM 이상인 경우도 있다.
  5. 구성 요소
    • 플래터(Platter): 데이터를 저장하는 자기 디스크
    • 읽기 쓰기 헤드(Read/Write Head): 데이터를 읽고 쓰는 장치
    • 스핀들 모터(Spindle Motor): 플래터를 회전시키는 역할
    • 컨트롤러(Controller): 데이터 전송을 담당하는 회로

HDD의 구성 요소

1. 플래터(Platter):

플래터(Platter)는 하드디스크(HDD) 내부에서 데이터를 저장하는 원형의 자기 디스크이다. 하드디스크의 핵심 구성 요소 중 하나로, 여러 개의 플래터가 스택(Stack) 형태로 겹쳐져 있으며, 각각의 플래터는 자기적으로 데이터를 기록하고 읽을 수 있다.

 

플래터는 트랙(Track), 섹터(Sector), 실린더(Cylinder) 구조를 가진다.

  • 트랙(Track): 플래터 표면의 원형 데이터 저장 경로
  • 섹터(Sector): 트랙을 세분화한 데이터 저장 단위. 가장자리 섹터가 더 길다고해서 더 많은 용량을 가지는 것은 아님.
  • 실린더(Cylinder): 여러 플래터에서 같은 위치의 트랙이 겹쳐진 구조


 

2. 스핀들(Splindle) :

스핀들(Spindle)은 하드디스크(HDD) 내부에서 플래터를 고정하고 고속으로 회전시키는 축 역할을 하는 부품이다. 플래터가 데이터를 저장하는 디스크라면, 스핀들은 이 디스크를 회전시키는 핵심 장치다.

 


3. 읽기 쓰기 헤드(Read/Write Head):

읽기/쓰기 헤드(Read/Write Head)는 하드디스크(HDD)에서 데이터를 읽고 쓰는 핵심 부품이다.
플래터(Platter) 위에서 자기 신호를 감지하여 데이터를 읽거나, 자기장을 변화시켜 데이터를 기록하는 역할을 한다.

 

헤드 플로팅(Head Floating) 기능

  • 헤드는 플래터 표면과 직접 접촉하지 않고, 수 나노미터(nm) 간격으로 공중에 떠서(Floating) 작동한다.
  • 플래터가 회전하면 발생하는 공기 흐름(Airflow)이 헤드를 띄우는 역할을 한다.

 


컴퓨터 디스크가 다음 조건을 따른다고 가정해보자

  • #bytes per sector = 12
  • #sectors per track = 63
  • #tracks per cylinder = 16
  • #cylinders = 4,092

 

Q: 디스크의 저장 용량은 얼마인가?

A: 512 * 63 * 16 * 4,096 = 2,111,864,832 bytes

 

 

Q: 50,000의 고정된 길이의 데이터 파일을 저장하고 싶을 때 각 데이터를 저장하기 위해 256bytes가 필요하다면 몇개의 실린더가 필요한가?

A: (50,000 * 256) / (512 * 63 * 16) = 24.8cylinders

(사실은 수십개 혹은 수백개의 실린더에 펼쳐져서 저장될수도 있음.)


섹터 단위로 트랙을 구성하는 방식

  • Sector
    • 디스크에서 고정된 크기로 주소지정이 가능한 최소 단위
    • 디스크에서 track을 만드는 요소
    • 섹터에서 데이터를 저장하는데에는 두가지 방법이 있음.
      1. 섹터당 오직 하나의 레코드만 저장가능함 : 시간 효율성이 좋음
      2. 섹터를 확장해서 레코드를 저장하는것을 허용함 : 저장 효율성이 좋음
  • Cluster
    • 고정된 크기의 인접한 섹터들의 집합
    • 파일에서 할당 가능한 최소단위의 유닛
    • 더 큰 클러스터는 탐색없이 더 많은 섹터를 읽을 수 있음을 보장한다.
    • 더 큰 클러스터를 사용하면 내부 단편화가 발생한다. 파일 크기가 클러스터 크기보다 작을 때, 사용되지 않는 공간이 생기는 현상을 의미한다.
  • Extents
    • 하나 혹은  그이상의 인접한 클러스터는 파일의 일부를 할당함
    • 만약 연속된 공간이 충분하지 않을때는 파잉의 일부가 여러개로 분리되어 비연속적은 부분에 저장된다. 각 부분을 Extent라고 부른다.