07-1 다양한 보조 기억 장치
하드 디스크
하드 디스크(Hard Disk Drive)
- 자기 디스크(magnetic disk)
- 자기적인 방식으로 데이터를 저장하는 보조 기억 장치
- 구성요소
- 플래터(platter): 하드 디스크에서 실질적으로 데이터가 저장되는 곳
- 트랙(track): 플래터를 여러 동심원으로 나누었을 때 그중 하나의 원
- 섹터(sector): 트랙을 나눈 한 조각
- 블록(block): 다수의 섹터 묶음
- 실린더(cylinder): 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위
- 연속된 정보는 보통 한 실린더에 기록
- 스핀들(spindle): 플래터를 회전시키는 구성 요소
- RPM(Revolution Per Minute): 플래터가 돌아가는 분당 회전수
- 헤드(head): 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
- 디스크 암(disk arm): 헤드를 원하는 위치로 이동시키는 부품
- 플래터(platter): 하드 디스크에서 실질적으로 데이터가 저장되는 곳
- 접근 과정
- 탐색 시간(seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- **다중 헤드 디스크(multiple-head disk)**에선 소요되지 않는 시간
- 다중 헤드 디스크 = 고정 헤드 디스크(fixed-head disk)
- 회전 지연(rotational latency): 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간(transfer time): 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
- 하드 디스크가 데이터에 접근하는 시간 = 탐색 시간 + 회전 지연 + 전송 시간
- 탐색 시간(seek 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 게이트 기반 메모리
- NAND 플래시 메모리
셀(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 레벨은 각 장단점이 있으므로 상황에 따라 최적이 달라짐