시스템해킹 스터디 - (4) 보조기억장치
A A

참고 도서: 혼자 공부하는 컴퓨터구조 + 운영체제

 

섹션 8에 대한 정리.

(보조기억장치, RAID)

 

📍 다양한 보조기억장치

하드디스크, 플래시 메모리(SSD, USB, SD) 등

 

하드디스크 - 구성요소

자기적인 방식으로 데이터를 저장한다.

하드디스크 구성1

 

 

자기적인 성질이 있는 판을 플래터라고 하고, 일반적으로 여러 겹의 양면을 모두 사용한다.

스핀들은 플래터를 회전시키는 구성요소이다.

(단위 RPM: 분당 회전수)

 

하드디스크 구성2

 

헤드는 플래터를 읽고 쓸 수 있는 수단이다.

각 플래터마다 헤드가 달려 있다.

헤드를 움직이는 구성 요소를 디스크 암이라고 하며, 일반적으로 모든 헤드가 디스크 암에 부착되어 함께 이동한다.

 

 

하드디스크 - 저장 단위

 

기본적으로 트랙섹터 단위로 데이터를 저장한다.

(섹터의 크기: 512~4096바이트)

하나 이상의 섹터를 묶어 블록이라고 표현하기도 한다.

 

하드디스크 - 저장 단위2

 

실린더는 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위이다.

연속된 정보는 한 실린더에 기록된다.

한 실린더에 기록해 두면 헤드가 움직이지 않고도 곧바로 데이터를 읽을 수 있다.

 

하드디스크 - 데이터 접근 과정

하드디스크가 저장된 데이터에 접근하는 시간:

1. 탐색 시간 (seek time) - 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

2. 회전 지연 (rotational latency) - 헤드가 있는 곳으로 플래터를 회전시키는 시간

3. 전송 시간 (transfer time) - 하드디스크와 컴퓨터 간에 데이터를 전송하는 시간

 

Numbers Every Programmer Should Know

 

 

 

플래시 메모리

전기적으로 데이터를 읽고 쓰는 반도체 기반 저장장치이다.

플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능하다.

범용성이 넓어 보조기억장치에만 속한다고 보기 어려우며, 주기억장치인 ROM으로도 자주 사용된다.

 

플래시 메모리의 종류는 NAND 플래시 메모리와 NOR 플래시 메모리 2가지이다.

각각 NAND gate와 NOR gate 기반으로 만들어졌다.

오늘날의 대용량 저장장치로 많이 사용되는 플래시 메모리는 NAND 플래시 메모리이다.

 

셀(cell)

플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다.

(셀 -> MB, GB, TB ... )

셀들이 모여 page가 되고, page들이 모여 block이 되고, block이 모여 plane이 되고, plane이 모여 die가 된다.

 

읽기/쓰기는 페이지 단위로 이루어지고, 삭제는 블록 단위로 이루어진다.

 

페이지의 상태:

  • Free 상태: 어떠한 데이터도 저장하고 있지 않으며 새로운 데이터를 저장할 수 있는 상태
  • Valid 상태: 이미 유효한 데이터를 저장하고 있는 상태
  • Invalid 상태: 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태

 

 

한 셀에

  • 1비트를 저장할 수 있는 플래시 메모리: SLC
  • 2비트를 저장할 수 있는 플래시 메모리: MLC
  • 3비트를 저장할 수 있는 플래시 메모리: TLC
  • 4비트를 저장할 수 있는 플래시 메모리: QLC

 

플래시 메모리 - SLC, MLC, TLC

SLC:

- 한 셀당 1비트 저장, 2개의 정보 표현

- 비트의 빠른 입출력

- 긴 수명

- 용량 대비 고가격

 

MLC:

- 한 셀당 2비트 저장, 4개의 정보 표현 (대용량화 유리)

- SLC보다 느린 입출력

- SLC보다 짧은 수명

- SLC보다 저렴

- 시중에서 많이 사용 (MLC, TLC, QLC를 많이 사용)

 

TLC: 

- 한 셀당 3비트 저장, 8개의 정보 표현 (대용량화 유리)

- MLC보다 느린 입출력, 짧은 수명, 저렴

 

플래시 메모리 종류별 특징

 

같은 플래시 메모리라도 수명, 가격, 성능이 다르다.

 

 

가비지 컬렉션

플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능하다.

쓰레기값으로 가득 차는 것을 방지하기 위해 가비지 컬렉션을 사용해 공간을 정리한다.

 

1. 유효한 페이지들만을 새로운 블록으로 복사한다.

2. 기존의 블록을 삭제한다.

 

 

📍 RAID의 정의와 종류

1TB 하드디스크 4개로 구성한 RAID의 성능 & 안정성 >>> 4TB 하드디스크 1개의 성능 & 안정성

 

RAID(Redundant Array of Independent Disks)란?

하드디스크와 SSD로 사용하는 기술로,

데이터의 안정성 혹은 성능을 위해 여러 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 것이다.

 

RAID 레벨

  • RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6
  • 그로부터 파생된 10, 50, ...

 

RAID 0

스트라이프(stripe): 줄무늬처럼 분산되어 저장된 데이터 (아래 그림에서 A1, A2, A3, ...)

스트라이핑(striping): 분산하여 저장하는 방식

RAID 0

 

RAID 0은 데이터를 단순히 나누어 저장하는 구성 방식이다.

각 하드디스크는 번갈아가며 데이터를 저장한다.

 

RAID 0로 구성하면 입출력 속도가 향상되지만, 하드디스크 하나라도 고장나는 경우 저장된 정보가 안전하지 않다.

 

RAID 1

미러링(Mirroring): 복사본을 만드는 방식

RAID 1

 

RAID 1은 데이터를 쓸 때 원본과 복사본 두 군데에 쓴다.

백업 및 복구가 쉽다.

그러나 입출력 속도, 특히 쓰기 속도가 느리다.

하드디스크 개수가 한정되어 있을 때 사용 가능한 용량이 적어진다는 단점이 있다.

 

RAID 4

RAID 1처럼 완전한 복사본을 만드는 대신, 패리티 비트(오류를 검출하고 복구하기 위한 정보)를 저장한다.

RAID 4

 

패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고, 오류가 있다면 복구한다.

RAID 1보다 적은 하드디스크로도 데이터를 안전하게 보관할 수 있다.

 

단점으로, 데이터를 새롭게 쓸 때마다 패리티 비트를 저장해야 하기 때문에 패리티 비트를 담고 있는 패리티 디스크에 병목 현상이 생길 수 있다.

이러한 단점을 극복하기 위해 RAID 5가 만들어졌다.

 

RAID 5

패리티 정보를 분산하여 저장하는 방식이다.

패리티 디스크를 따로 두는 RAID 4와 달리, RAID 5는 패리티를 분산해 저장한다.

RAID 5

 

RAID 6

두 종류의 패리티(오류 검출 및 복구 수단)를 사용한다.

따라서 RAID 5보다 좀 더 안전하지만, 쓰기 속도는 좀 더 느리다.

RAID 6

 

 

 

각 RAID 레벨마다 장단점이 존재하고, 상황에 따라 최적의 레벨이 달라질 수 있다.

Copyright 2024. GRAVITY all rights reserved