[혼공컴운] CH 07 보조기억장치

sookyoung.k·2024년 1월 19일
0

🤓 [혼공학습단] 

목록 보기
10/23
post-thumbnail

💾 다양한 보조기억장치

💽 하드 디스크(HDD: Hard Disk Drive)

자기적인 방식으로 데이터를 저장하는 보조기억장치 (때문에 자기 디스크 magnetic disk 의 일종으로 지칭하기도 함)

놀라운 점... 하드 디스크는 우리가 아는 CD나 LP와 비슷하게 동작한다!

  • 동그란 원판에 데이터를 저장
  • 그것을 회전시켜 뾰족한 리더기로 데이터를 읽음

그럼 이 하드디스크에 구성에 대해서 자세히 알아보도록 하자!

✍️ 플래터와 스핀들

플래터 - 동그란 원판 모양으로 하드 디스크에서 실질적으로 데이터가 저장되는 곳

  • 자기 물질로 덮여 있어서 수많은 N극과 S극을 저장한다 (이들은 0과 1의 역할을 수행)

스핀들 - 플래터를 회전시키는 구성 요소

  • 스핀들이 플래터를 돌리는 속도는 RPM으로 나타낸다 (분당 회전수)

✍️ 헤드와 디스크 암

헤드 - 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소

  • 바늘처럼 생겨서 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓴다

디스크 암 - 헤드를 원하는 위치로 이동시키는 요소로 헤드가 부착되어 있다

하드 디스크는 많은 양의 데이터를 저장해야 하기 때문에 일반적으로 여러 개의 플래터로 이루어져 있고, 플래터 양면을 모두 사용할 수 있다

➡️ 양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드가 사용됨
➡️ 일반적으로 모든 헤드는 디스크암에 부착되어 다같이 이동하게 된다

💿 플래터에 저장되는 데이터

트랙섹터라는 단위로 데이터를 저장한다!

  • 트랙: 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원
  • 섹터: 트랙은 여러 조각으로 나누어지는데 그 한 조각이 섹터
    하드 디스크의 가장 작은 전송 단위
    → 하나 이상의 섹터를 묶어 블록이라고 표현하기도 한다


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

→ 한 플래터를 동심원으로 나눈 공간은 트랙
→ 같은 트랙끼리 연결한 원통 모양의 공간은 실린더

연속된 정보는 보통 한 실린더에 기록된다 → 디스크 암을 움직이지 않고도 바로 데이터에 접근할 수 있기 때문

📀 저장된 데이터에 접근하는 과정

  • 탐색 시간* 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

  • 회전 지연 헤드가 있는 곳으로 플래터를 회전시키는 시간

  • 전송 시간 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

* 전송 시간들은 성능에 큰 영향을 끼친다!
→ 하드 디스크에서 다량의 데이터를 탐색하고 읽어 들이는 시간은 생각보다 어마어마 하다

탐색 시간과 회전 지연을 단축시키기 위해서는 플래터를 빨리 돌려 RPM을 높이는 것도 중요하지만, 접근하려는 데이터가 플래터 혹은 헤드를 조금만 옮겨도 접근할 수 있는 위치에 있는 것(참조 지역성)도 중요하다

* 다중 헤드 디스크와 고정 헤드 디스크

  • 단일 헤드 디스크 = 이동 헤드 디스크 : 플래터 한 면당 헤드가 하나씩 달려있어서 데이터가 있는 곳까지 움직여야 하는 디스크
  • 다중 헤드 디스크 = 고정 헤드 디스크 : 헤드가 트랙별로 여러개 달려 있어서 헤드를 움직일 필요가 없는 디스크 (탐색 시간이 들지 않는다!)

💽 플래시 메모리

전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치
(USB 메모리, SD 카드, SSD 등)

✔️ 보조기억장치 범주에만 속한다기 보다는 다양한 곳에서 널리 사용하는 저장 장치로 보는 것이 맞다
✔️ 주기억장치 중 하나인 ROM에도 사용되고, 우리가 일상적으로 사용하는 거의 모든 전자제품 안에 플래시 메모리가 내장되어 있다

- 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
→ 셀이 모이고 모여서 MB, GB, TB 용량을 갖는 저장 장치가 된다
→ 하나의 셀에 몇 비트를 저장할 수 있는지에 따라서 종류가 나뉜다

📥 SLC 타입

한 셀에 1비트를 저장

  • 한 셀로 두 개의 정보를 표현할 수 있다
  • 비트의 빠른 입출력이 가능
  • 수명이 길어서 수만에서 수십만 번 가까이 데이터를 쓰고 지우고 반복 가능
  • 용량 대비 가격이 비싸다
    ➡️ 기업에서 데이터를 읽고 쓰기가 매우 많이 반복되며 고성능의 빠른 저장 장치가 필요한 경우에 사용

📥 MLC 타입

한 셀에 2비트를 저장

  • 한 셀로 네 개의 정보를 표현
  • SLC 타입보다 속도와 수명은 떨어지지만 대용화하기 유리
  • SLC 타입보다 용량 대비 가격이 저렴
    ➡️ (TLC와 더불어) 시중에서 사용되는 많은 플래시 메모리 저장 장치들에 사용

📥 TLC 타입

한 셀에 3비트를 저장

  • 한 셀로 여덟 개의 정보를 표현
  • 대용화 하기에 유리
  • SLC나 MLC 타입보다 수명과 속도가 떨어지지만 용량 대비 가격이 저렴

📥 QLC 타입

한 셀에 4비트를 저장

결론 = 같은 용량의 플래시 메모리 저장 장치라고 할지라도 셀의 타입에 따라 수명, 가격, 성능이 다르다!

* 플래시 메모리에도 수명이 있다!
⚠️ 한 셀에 일정 횟수 이상 데이터를 쓰고 지우면 그 셀은 더 이상 데이터를 저장할 수 없다

플래시 메모리의 단위

셀 (가장 작은 단위) > 페이지 > 블록 > 플레인 > 다이

  • 읽기와 쓰기는 페이지 단위로 이루어진다
  • 삭제는 블록 단위로 이루어진다

✔️ 읽기/쓰기 단위와 삭제 단위가 다르다

  • 페이지의 상태 - Free, Valid, Invaild
    • Free 상태: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
    • Valid 상태: 이미 유효한 데이터를 저장하고 있는 상태
    • Invalid 상태: 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태

  • 플래시 메모리는 덮어쓰기가 불가능 ➡️ Valid 상태인 페이지에는 새 데이터를 저장할 수 없다!

  • A 값을 삭제하고 A'를 저장하고 싶다! → 기존 A는 Invalid 상태가 되어 쓰레기값이 됨 (유효하지 않은 값)

  • 쓰레기값을 저장하고 있는 공간... 사용하지 않으면서도 용량 차지 = 용량 낭비!

  • 하지만 A만 지우기도 불가능이다 (삭제는 블록 단위로 수행)
    ➡️ 가비지 컬렉션의 등장! → 쓰레기값을 정리해준다

  • 가비지 컬렉션의 동작
    1 유효한 페이지들만 새로운 블록으로 복사
    2 기존 블록 삭제

💾 RAID의 정의와 종류

✔️ RAID의 정의

RAID (Redundant Array of Independent Disks)

➡️ 하드 디스크와 SSD를 사용하는 기술

여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용한다

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

✔️ RAID의 종류

RAID의 구성 방법을 RAID 레벨이라고 한다

📀 RAID 0

여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식

  • 스트라입 - 줄무늬처럼 분산되어 저장된 데이터
    스트라이핑 - 분산하여 저장하는 것
  • 데이터가 분산되어 저장되면(=스트라이핑) 저장된 데이터를 읽고 쓰는 속도가 빨라짐
    → 여러 번에 걸쳐 읽고 썼을 데이터를 동시에 읽고 쓸 수 있기 때문!
  • 4TB 하나를 읽고 쓰는 속도보다 RAID 0로 구성된 1TB 저장 장치 네 개의 속도가 이론상 네 배정도 빠르다
  • 하지만 저장된 정보가 안전하지 않다
    → 디스크 하나에 문제가 생긴다면 다른 모든 하드 디스크의 정보를 읽는 데 문제가 생길 수 있다

💿 RAID 1

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

  • 스트라이핑이 사용되었지만 오른쪽 두 하드 디스크는 거울처럼 왼쪽의 두 하드 디스크와 동일한 내용 저장
  • 쓰기 속도는 RAIN 0보다 느림
  • 복구가 매우 간단
    → 하나에 문제가 발생해도 잃어버린 정보를 금방 되찾을 수 있다
  • 용량이 적어지는 단점
    → 복사본이 만들어지는 용량만큼 사용자가 사용 불가
    → 많은 양의 하드 디스크가 필요하기 때문에 비용이 증가한다

📀 RAID 4

완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 둔다

* 패리티 비트 - 오류를 검출하고 복구하기 위한 정보
✔️ 본래 오류 검출용 정보지만, RAID에서는 오류 복구도 가능

  • 패리티를 저장한 장치를 이용하여 다른 장치들의 오류를 검출하고 오류가 있다면 복구
  • RAID 1보다 적은 하드 디스크로도 **데이터를 안전하게 보관할 수 있다
  • 페리티를 저장하는 장치에 병목 현상이 발생한다는 문제까 있다

💿 RAID 5

패리티 정보를 분산하여 저장하는 방식 (병목 현상 해소)

📀 RAID 6

서로 다른 두 개의 패리티를 두는 방식

  • 오류를 검출하고 복구할 수 있는 수단이 두 개가 생긴 것
  • 안전한 구성
  • 쓰기 속도는 RAID 5보다 느리다 (정보 저장 시에 저장할 패리티가 두 개니까)
  • 데이터 저장 속도를 조금 희생하더라도 데이터를 더욱 안전하게 보관하고 싶을 때 사용하는 방식

💿 Nested RAID

여러 RAID 레벨을 혼합한 방식

  • RAID 10 - RAID 0 + RAID 1
  • RAID 50 - RAID 0 + RAID 5

➡️ 각 레벨마다 장단점이 다르기 때문에 어떤 상황에서 무엇을 최우선으로 원하는지에 따라 최적의 RAID 선택은 달라질 수 있다

profile
영차영차 😎

0개의 댓글