작성자 프로필
mouuaw
코드 깎는 다람쥐
2023.06.24

다양한 보조기억장치

보조기억장치에는 다양한 종류가 있습니다. 그 중 가장 대중적인 보조기억장치는 하드 디스크와 플래시 메모리 입니다. 이번장에서는 이 두 장치에 대해 알아보겠습니다.

하드 디스크

하드 디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다. 이 때문에 하드 디스크를 자기 디스크의 일종으로 지칭하기도 합니다.

하드디스크는 우리가 아는 CD나 옛날 음향 장치인 LP가 떠오를 겁니다. 실제로도 CD나 LP와 비슷하게 동작하는데 동그란 원판에 데이터를 저장하고, 그것을 회전시켜 뾰족한 리더기로 데이터를 읽는 점에서 비슷하지요.

하드 디스크에서 실제로 데이터가 저장되는 곳은 동그란 원판입니다. 이를 플래터라고 합니다. 플래터는 자기 물질로 덮여 있어 N극과 S극을 저장합니다. N극과 S극은 0과 1의 역할을 수행합니다.

플래터를 회전시키는 구성 요소를 스핀들이라고 합니다. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현됩니다. 가령 RPM이 15,000인 하드 디스크는 1분에 15,000 바퀴를 회전하는 하드 디스크입니다.

플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드입니다. 헤드는 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는, 마치 바늘같이 생긴 부품입니다. 그리고 헤드는 원하는 위치로 헤드를 이동시키는 디스크 암에 부착되어 있습니다.

CD나 LP에 비해 하드 디스크는 훨씬 더 많은 양의 데이터를 저장해야 하므로 일반적으로 플래터 양면을 모두 사용할 수 있습니다. 양면 플래터를 사용하면 위아래로 플래터당 두 개의 헤드가 사용됩니다.

플래터는 트랙섹터라는 단위로 데이터를 저장합니다. 플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원을 트랙이라고 부릅니다. 트랙은 여러 조각으로 나누어지는데, 이 한 조각을 섹터라고 부릅니다. 섹터는 하드 디스크의 가장 작은 전송 단위입니다.

플래터는 여러겹으로 쌓여있습니다. 이때 여러 겹의 플래터에서 같은 트랙의 위치를 논리적으로 연결한 단위를 실린더라고 부릅니다.

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

데이터가 하드 디스크의 섹터, 트랙, 실린더에 저장된다는 것을 알았다면 저장된 데이터에 접근하는 과정을 알아봅시다. 하드 디스크에 저장된 데이터에 접근하는 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉩니다.

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

위 시간들은 성능에 큰 영향을 미칩니다.

플래시 메모리

플래시 메모리 기반의 보조기억장치 또한 많이 사용합니다. 우리가 흔히 사용하는 USB 메모리, SD 카드, SSD가 모두 플래시 메모리 기반의 보조기억장치 입니다.

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다.

플래시 메모리에는 이라는 단위가 있습니다. 셀이란 플래시 메모리에서 데이터를 저장하는 가장 작은 단위입니다. 이 셀이 모이고 모여 MB, GB, TB 용량을 갖는 저장 장치가 되는 것이지요. 이 때 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉩니다.

한 셀이 1비트를 저장할 수 있는 플래시 메모리를 SLC타입, 2비트는 MLC타입, 3비트를 저장할 수 있는 플래시 메모리를 TLC타입 이라고 합니다.

각 타입의 특징을 알아보도록 합시다.

SLC 타입

SLC 타입은 한 셀로 두 개의 정보를 표현할 수 있습니다. SLC 타입은 다른 타입에 비해 비트의 빠른 입출력이 가능합니다. 수명도 상대적으로 길어서 수만에서 수십만 번 가까이 데이터를 쓰고 지우고를 반복할 수 있습니다.

하지만 용량대비 가격이 높습니다.

MLC 타입

MLC 타입은 2비트를 저장하기 때문에 4개의 정보를 표현할 수 있습니다. SLC 타입보다 속도와 수명은 떨어지지만, 대용화하기 유리합니다. MLC 타입은 SLC 타입보다 용량 대비 가격이 저렴합니다.

TLC 타입

한 셀당 3비트씩 저장하기 때문에 8개의 정보를 표현할 수 있습니다. 대용량화 하기가 유리하고 다른 타입보다 수명과 속도가 떨어지지만 용량대비 가격도 저렴합니다.

이제 플래시 메모리의 가장 작은 단위인 셀보다 더 큰 단위를 알아봅시다.

셀들이 모여 만들어진 단위를 페이지, 그리고 페이지가 모여 만들어진 단위를 블록, 블록이 모여 플레인, 플레인이 모여 다이가 됩니다.

플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어집니다. 하지만 삭제는 페이지보다 큰 블록단위로 이루어집니다.

읽기/쓰기 단위와 삭제 단위가 다르다는 것이 플래시 메모리의 가장 큰 특징중 하나입니다.

페이지는 세 개의 상태를 가질 수 있습니다. 각각 Free, Valid, Invalid 상태입니다.

Free 상태는 어떠한 데이터도 저장하지 않고있어서 새로운 데이터를 저장할 수 있는 상태를 의미합니다.
Valid 상태는 이미 유효한 데이터를 저장하고 있는 상태를 의미합니다.
Invalid 상태는 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태를 의미합니다.

플래시 메모리는 하드 디스크와는 달리 덮어쓰기가 불가능하여 Valid 상태인 페이지에는 새 데이터를 저장할 수 없습니다.

플래시 메모리는 데이터를 수정할 경우 덮어쓰기가 불가능해서 기존 데이터를 놔둔채로 새로운 데이터를 빈 공간에 저장하게 됩니다. 그래서 데이터를 비울때 유효한 데이터들을 새로운 블록으로 복사하고, 기존 블록을 삭제합니다. 이런 기능을 가비지 컬렉션이라 합니다.

RAID의 정의와 종류

1TB 하드 디스크 네개와 4TB 하드 디스크 한개를 비교했을때 어떤게 더 나을까요? 1TB 하드 디스크 네 개로 RAID를 구성하면 4TB 하드 디스크 한개의 성능과 안전성을 능가할 수 있습니다. 왜 이런 차이가 생기는 것인지 알아보겠습니다.

RAID의 정의

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

RAID의 종류

여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여러 가지가 있습니다. RAID 구성 방법을 RAID 레벨이라 표현하는데, RAID 레벨에는 대표적으로 RAID 0, RAID 1, RAID 2, RAID 3 RAID 4, RAID 5, RAID 6이 있고, 그로부터 파생된 RAID 10, RAID 50등이 있습니다.

RAID 0

RAID 0 은 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식입니다. 여러개의 하드디스크를 RAID 0으로 구성했다 가정해봅시다. 그러면 데이터를 저장할 때 각 하드 디스크는 데이터를 번갈아 가며 데이터를 저장합니다. 즉, 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장되는 것이지요.

이 때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입이라 하고, 분산하여 저장하는 것을 스트라이핑이라고 합니다.

위와 같이 데이터가 분산되어 저장되면, 다시 말해 스트라이핑되면 저장된 데이터를 읽고 쓰는 속도가 빨라집니다. 하나의 대용량 저장 장치를 이용했더라면 어러 번에 걸쳐 읽고 썻을 데이터를 동시에 읽고 쓸 수 있기 때문입니다.

이론상 4개의 하드디스크로 구성된 RAID 0은 하나의 하드디스크보다 4배 빠릅니다.

하지만 RAID 0 에는 단점이 있습니다. 저장된 정보가 안전하지 않습니다. 구성된 하드디스크 하나에 문제가 발생하면 다른 모든 하드 디스크의 정보를 읽는데 문제가 생길 수 있습니다. 그래서 등장한 것이 RAID 1 입니다.

RAID 1

RAID 1 은 복사본을 만드는 방식입니다. 그래서 미러링이라고도 부릅니다. 같은 데이터를 두개의 공간에 저장하는 방식입니다. 그래서 용량이 적어지는 단점과 속도가 RAID 0 에 비해 느립니다.

RAID 4

RAID 4 는 RAID 1 처럼 완전한 복사본을 만드는 대신 오류를 검출하고 복구하기 위한 정보를 저장한 장치를 두는 구성 방식 입니다. 이때 '오류를 검출하고 복구하기 위한 정보'를 패리티 비트라고 합니다. RAID 4에서는 패리티를 저장한 장치를 이용해 다른 장치들의 오류를 검출하고, 오류가 있다면 복구합니다. 이로써 RAID 4 는 RAID 1 보다 적은 하드 디스크로도 데이터를 안전하게 보관 할 수 있습니다.

RAID 5

RAID 4에서는 어떤 새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되므로 패리티를 저장하는 장치에 병목 현상이 발생한다는 문제가 있습니다.

RAID 5는 패리티 정보를 분산하여 저장하는 방식으로 RAID 4의 문제인 병목 현상을 해소합니다.

RAID 6

RAID 6의 구성은 기본적으로 RAID 5와 같으나, 서로 다른 두개의 패리티를 두는 방식입니다. 이는 오류를 검출하고 복구살 수 있는 수단이 두 개가 생긴 셈입니다. 따라서 RAID 6은 RAID 4나 RAID 5보다 안전한 구성이라고 볼 수 있습니다. 다만 새로운 정보를 저장할 때마다 함께 저장할 패리티가 두 개이므로, 쓰기 속도는 RAID 5 보다 느립니다.

스터디 프로필
코드 깎는 다람쥐
의 다른 카테고리
0
👍0
👏0
🤔
댓글 작성