Chap7 보조기억장치

생성 일시: 2023년 9월 21일 오후 10:09

07 보조기억장치

07-1 다양한 보조기억장치

  • 하드 디스크
  • 플래시 메모리

하드 디스크

자기적인 방식으로 데이터를 저장하는 보조기억장치

→ 이때문에 하드 디스크를 자기 디스크 magnetic disk 라고도 한다.

하드 디스크의 동작 원리는 CD와 비슷하다. 원판에 데이터를 저장하고, 이를 회전시켜 리더기로 데이터를 읽는 방식이다.

플래터 platter

하드디스크에서 데이터가 실질적으로 저장되는 곳

플래터는 자기 물질로 덮여 있어 수많은 N극과 S극을 저장한다. ⇒ 0과 1을 나타냄

스핀들 spindle

플래터를 회전시키는 도구, 스핀들이 플래터를 회전시키는 속도를 RPM (Rotation Per Minute)

헤드 head

플래터를 대상으로 읽고 쓰는 구성 요소

플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓴다. 이를 원하는 위치를 이동시키기 위해 디스크 암에 부착되어 있다.

플래터는 트랙과 섹터 단위로 데이터를 저장하는데, 플래터를 동심원 단위로 나눈 것을 트랙, 이를 여러 조각으로 나눈 것을 섹터라고 한다. 섹터가 하드 디스크의 가장 작은 전송 단위이다. 섹터의 크기는 하드 디스크마다 다른데, 일반적으로 512 바이트 정도의 크기를 가진다.

여러 섹터를 묶어 블록이라고 표현하기도 한다.

여러 겹의 플래터를 사용할 경우, 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 실린더라고 한다. 같은 종류의 연속된 정보를 여러 섹터에 저장하고자 할 때는 같은 실린더에 저장된다. 이는 데이터 암을 움직이지 않고 데이터에 접근할 수 있기 때문이다.

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

탐색 시간, 회전 지연, 전송 시간

  • 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
  • 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
  • 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간

이 시간에 따라 성능이 결정된다.

탐색 시간과 회전 지연을 단축시키는 방법으로 하드 디스크의 RPM을 높일 수도 있지만, 데이터를 효율적으로 배치하여 빠르게 접근하게 하는 것도 방법이다.

플래시 메모리

USD 메모리, SD 카드, SSD

전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치

플래시 메모리의 종류: NAND 메모리, NOR 메모리

구성 단위: 셀 < 페이지 < 블록 < 플레인 < 다이

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

한 셀에 저장할 수 있는 용량에 따라 세 종류

SLC: 1비트, Single Level Cell

MLC: 2비트, Multiple Level Cell

TSL: 3비트, Triple-Level Cell

SLC 타입

0과 1 두 가지 정보를 표현한다

MLC, TLC에 비해 비트의 빠른 입출력이 가능

다른 타입보다 수명이 길지만 용량 대비 가격이 비싸다

데이터를 읽고 쓰기가 많이 반복되고 고성능의 빠른 저장 장치가 필요한 경우에 SLC 타입을 사용한다

MLC 타입

한 셀로 네 개의 정보 표현 가능

일반적으로 SLC 타입보다 속도와 수명은 떨어지지만 두 비트씩 저장할 수 있다는 점에서 SLC 타입보다 대용화하기 유리하다.

SLC 타입보다 용량 대비 가격이 저렴하기 때문에 시중에서 많이 사용됨

TLC 타입

한 셀당 3비트씩 저장할 수 있는 TLC 타입

수명과 속도가 가장 떨어지만 용량 대비 가격도 저렴하다.

플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어진다. 하지만 삭제는 블록 단위로 이루어진다. 읽기/쓰기 단위, 삭제 단위가 다르다는 것이 플래시 메모리의 특징이다.

페이지의 상태

  1. Free

    어떤 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태

  2. Valid

    이미 유효한 데이터를 저장하고 있는 상태

  3. Invalid

    쓰레기값(유효하지 않은 데이터)를 저장하고 있는 상태

하드디스크는 덮어쓰기가 불가능하기 때문에 Valid 상태에서는 새 데이터를 저장할 수 없다!!

그럼 기존에 저장된 데이터를 수정하고 싶다면 어떻게 할까?

수정할 데이터의 상태를 Invalid로 변경하여 쓰레기값으로 변경한다.

남은 공간에 수정한 새로운 데이터를 저장한다.

그렇다면 Invalid로 변경된 값은? 쓰레기값을 저장하고 있으면서 용량만 차지한다. 이를 삭제하려면 블록 단위로 삭제해야 하기 때문에 삭제도 하지 못함!

⇒ garbage collection 기능

유효한 페이지들만 새로운 블록으로 복사한 뒤, 기존의 블록을 삭제하는 기능 (유효한 페이지만 새로운 블록으로 복사한 뒤, 기존의 블록을 삭제하는 개념)

07-2 RAID의 정의와 종류

RAID?

보조기억장치를 더욱 안전하고 빠르게 활용하는 방법

1TB x 4 > 4TB x 1

왜?

RAID의 정의

Redundant Array of Independent Disks

보조기억장치에도 수명이 있는데, 우리는 많은 양의 데이터를 어떻게 관리할 것인가?

하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술

RAID의 종류

RAID 레벨

대표적으로 RAID 0, RAID 1, RAID 3, RAID 4, RAID 5, RAID 6 ⇒ RAID 10, RAID 50

RAID 0

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

저장되는 데이터를 하드디스크 개수만큼 나누어 저장한다.

ex) 하드디스크가 4개라면, A라는 데이터를 A1, A2, A3, A4로

이때, 줄무늬처럼 분산되어 저장된 데이터를 stripe이라고 하고, 분산하여 저장하는 것은 striping 이라고 한다.

데이터를 스트라이핑 하여 저장하면 저장된 데이터를 읽고 쓰는 속도가 빨라진다. 하나의 저장 장치에 한꺼번에 저장했을 때는 여러 번에 걸쳐 읽고 써야 하는데, 이를 한꺼번에 병렬적으로 처리할 수 있기 때문이다.

하지만, 하나의 하드 디스크에 문제가 생기면 나머지 정보에도 문제가 생길 수 있어 안전하진 않다.

RAID 1

거울처럼 완전한 복사본을 만드는 방식 ⇒ mirroring

스트라이핑으로 데이터를 분산시켜 저장하는 것은 RAID 0과 동일하지만, 같은 정보를 가진 하드디스크를 한 세트 더 만든다고 생각하면 된다.

그래서 데이터를 저장할 때는 양쪽 다 저장해야 하기 때문에 RAID 0보다는 느리다.

하나의 디스크에 문제가 생겨도 잃어버린 정보를 금방 되찾을 수 있기 때문에 복구가 매우 간단하다.

하지만 복사본이 늘어나는 만큼 저장할 수 있는 정보의 양이 그만큼 줄어든다. ⇒ 더 많은 양의 디스크가 필요하고, 결국 비용도 증가한다.

RAID 4

완전한 복사본을 만드는 대신 ‘오류를 검출하고 복구하기 위한 정보’(패리티 비트 parity bit)를 저장하는 방식

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

데이터를 저장할 때 이를 복구하기 위한 패리티 비트도 별도의 디스크에 저장해야 해서 패리티를 저장하는 디스크에 병목 현상이 발생한다.

RAID 5

패리티 정보를 분산하여 저장한다. 데이터를 분산시켜 저장하면서, 데이터를 저장하지 않은 디스크에 패리티 정보를 저장하는 방식

디스크1디스크2디스크3디스크4
A1A2A3PARITY A
B1B2PARITY BB3
C1PARITY CC2C3
PARITY DD1D2D3

RAID 6

기본적인 구성은 RAID 5와 같지만, 서로 다른 두 개의 패리티를 두는 방식

정보를 저장할 때마다 함께 저장할 패리티 정보가 두 개이기 때문에 RAID 5보다 속도는 느리다. 따라서 느린 저장 속도를 감수하더라도 데이터를 더욱 안전하게 보관하고 싶을 때 사용한다.

RAID의 레벨마다 장단점이 분명하므로, 이를 파악해 두고 상황마다 우선순위를 고려하여 최적의 RAID 레벨을 찾는 것이 중요하다.