학습 목표
•
하드 디스크 구조와 작동 원리
•
플래시 메모리 구조와 작동 원리
•
RAID의 의미와 다양한 RAID 레벨
다양한 보조기억장치
하드 디스크, 플래터, 데이터 접근 시간, 플래시 메모리, 페이지, 블록
•
대표적인 보조기억장치 = 하드 디스크 + 플래시 메모리
•
플래시 메모리 = USB 메모리, SD 카드, SSD, …
하드 디스크
HDD, Hard Disk Drive
•
자기적인 방식으로 데이터를 저장하는 보조기억장치
•
자기 디스크(magnetic disk)의 일종
•
플래터, platter
◦
실질적으로 데이터가 저장되는 곳, 동그란 원판
◦
자기 물질로 덮여 있어 수많은 N, S극 저장 → 0과 1
•
스핀들, spindle
◦
플래터를 회전시키는 구성 요소
◦
스핀들이 ㅡㄹ래터를 돌리는 속도 → RPM (Revolution Per Minute)
◦
15,000 RPM → 분당 15,000 회전
•
헤드, head
◦
플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
•
디스크 암, disk arm
◦
헤드를 원하는 위치로 이동시키는 구성 요소
•
양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드
플래터에 데이터가 저장되는 원리
•
트랙과 섹터 단위로 데이터를 저장
•
트랙: 여러 동심원 중 하나, 운동장의 트랙이랑 비슷
•
섹터: 하나의 트랙은 여러 개의 섹터
◦
섹터는 하드 디스크의 가장 작은 전송 단위
◦
일반적으로 512 바이트, 일부 하드 디스크는 4,096 바이트
•
여러 겹의 플래터 상에서 같은 트랙이 위치한 곳 → 논리적 단위: 실린더, cylinder
◦
한 플래터를 동심원으로 나눈 공간은 트랙
◦
같은 트랙끼리 연결한 원통 모양의 공간은 실린더
데이터 접근
접근 시간 = 탐색 시간 + 회전 시간 + 전송 시간
•
탐색 시간, seek time
◦
접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
•
회전 시간, rotational latency
◦
헤드가 있는 곳으로 플래터를 회전시키는 시간
•
전송시간, transfer time
◦
하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
구글 AI를 주도하는 제프 딘의 ‘프로그래머가 꼭 알아야 할 컴퓨터 시간들’
플래시 메모리
Flash Memory
•
전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치
•
셀: 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
◦
셀이 모여 MB, GB, TB 용량 형성
◦
하나의 셀이 몇 비트를 저장하는가? → 플래시 메모리 종류 나뉨
•
SLC, Single Level Cell
◦
한 셀에 1 비트를 저장할 수 있는 플래시 메모리
•
MLC, Multiple Level Cell
◦
한 셀에 2 비트를 저장할 수 있는 플래시 메모리
•
TLC, Triple Level Cell
◦
한 셀에 3 비트를 저장할 수 있는 플래시 메모리
•
가격, 속도, 수명에 큰 영향
•
QLC도 존재
SLC 타입
•
MLC, TLC 타입에 비해 비트의 빠른 입출력이 가능
◦
혼자 거주하는 집에 제약 없이 출입하듯 빠르다
•
SLC는 용량 대비 비싸다
◦
혼자 살면 감당해야 할 거주 비용이 는다
MLC 타입
•
SLC 타입보다 속도와 수명이 떨어짐
•
용량 대비 가격이 저렴 (→ 시중에 많이)
TLC 타입
•
대용량화에 유리
•
SLC, MLC보다 수명과 속도가 떨어지지만 용량 대비 가격도 저렴
플래시 메모리의 단위
읽기쓰기 단위와 삭제 단위가 다른 게 플래시 메모리의 가장 큰 특징이다
•
셀 집합 → 페이지, Page
◦
읽기와 쓰기는 페이지 단위로 진행
◦
세 개의 상태를 가짐: Free, Valid, Invalid
•
페이지 집합 → 블록, Block
◦
삭제는 블록 단위로 진행
•
블록 집합 → 플레인, Plane
•
플레인 집합 → 다이, Die
•
셀의 상태
◦
Free 상태: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
◦
Valid 상태: 이미 유효한 데이터를 저장하고 있는 상태
◦
Invalid 상태: 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
•
플래시 메모리는 하드 디스크와 달리 덮어쓰기가 불가능 → Valid 상태인 페이지에는 새 데이터 저장 불가
가비지 컬렉션
Garbage Collection
•
페이지 단위의 삭제가 안 되고, 덮어쓰기가 안 되므로 비효율 → 용량 낭비
•
SSD를 비롯한 플래시 메모리는 이러한 쓰레기 값을 정리하기 위해 가비지 컬렉션 기능 제공
•
유효한 페이지들만 이동→기존 블록 삭제
RAID의 정의와 종류
Redundant Array of Indendent Disks
•
1TB x 4 vs 4TB ?
•
디스크 네 개로 RAID를 구성하면 큰 디스크 하나의 성능과 안정성을 능가할 수 있다
RAID란?
•
주로 하드 디스크와 SSD를 사용하는 기술
•
데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
RAID의 종류
•
RAID 구성 방법을 RAID 레벨이라고 표현
•
RAID 0 ~ RAID 6, RAID 10, RAID 50, …
RAID 0
•
여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
•
저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장
◦
스트라입, Stripe: 줄무늬처럼 분산되어 자장된 데이터
◦
스트라이핑, Striping: 분산하여 저장하는 것
•
스트라이핑되면 저장된 데이터를 읽고 쓰는 속도가 빨라진다
◦
동시에 읽고 쓸 수 있게 되기 때문
•
하나라도 고장나면 전체가 망가짐
RAID 1
•
복사본을 만드는 방식 → Mirroring
•
똑같은 걸 두 개 만든다
◦
쓸 때도 두 번 써야해서 느리다
•
복구가 매우 간단하다
•
하드 디스크 개수가 한정되었을 때, 용량이 많이 필요하다
RAID 0: 데이터를 균등하게 분산
RAID 1: 완전한 복사본
RAID 4
•
완전한 복사본 만드는 대신
◦
오류를 검출하고 복구하기 위한 정보를 저장하는 장치를 두는 구성 방식
◦
패리티 비트, Parity Bit
•
RAID 1보다 적은 하드디스크로도 데이터를 안전하게 보관 가능
RAID 5
•
RAID4는 패리티를 저장하는 디스크에 병목현상
•
RAID 5는 이러한 병목 현상 해소
RAID 6
•
RAID 5랑 같지만, 패리티를 하나 더 두는 방식
•
쓰기 속도가 더 느려지지만, 안정성은 더 높아진다