RAID: RAID 0, RAID 1, RAID 4, RAID 5, RAID 10
포스트 난이도: HOO_Junior
# Redundant Array of Inexpensive Disks
RAID라고 알려진 Redundant array of inexpensive disks는 Magnetic disk에서 데이터를 저장하는 방식을 나타낸다.
RAID system은 HW와 SW 방식 2가지로 나뉜다.
HW는 말 그대로 하드웨어적으로 RAID system을 구성하는 것이며 SW는 내부 소프트웨어를 활용해서 RAID system을 구현하는 것을 말한다.
SW RAID system의 경우에는 사실상 기존의 하드웨어에서 내부 소프트웨어를 통해 시스템을 구현하다 보니 효율성이 HW 방식보다는 떨어지지만, HW를 추가할 필요가 없다는 점에서 비용 절감의 효과를 보인다.
하지만 SW 방식보다는 HW 방식의 RAID가 비교적 효율이 좋기 때문에 기계식 HDD에서는 HW 기반 RAID system을 사용하면서 필요에 따라 SW 방식을 같이 사용한다.
RAID system은 종류에 따라서 숫자로 구분하여 부르는데, 대표적인 RAID로는 RAID 0, RAID 1, RAID 4, RAID 5 등이 있으며, 최근에는 HDD보다 SSD에 대한 사용이 증가함에 따라 RAID 6, RAID 10 방식을 사용하여 SSD를 구성하기도 한다.
HDD라고 불리는 Magnetic disk 방식에서는 RAID system을 통해 데이터에 대한 안정성, 효율성을 증가시키는 반면에 전자식 SSD에서는 기존 HDD에서 사용하던 HW 기반 RAID system 사용에 대한 효율성이 떨어진다.
그렇기에 기계식 디스크의 단점이 없는 전자식 디스크의 경우에는 RAID 시스템을 통해 기계식 단점을 보완해주던 기능이 필요 없어졌다.
기존 RAID 시스템에서도 SSD 방식에 적용해서 효율성을 높일 수 있는 반면에 기존 RAID 시스템이 SSD 효율성에 전혀 도움이 되지 않아 기존 기계식 디스크 방식에서 사용하던 RAID 시스템 방식을 사용하지 않는 이유이기도 하다.
# RAID 0
RAID 0은 striping 방식이라고도 불린다.
Striping을 생각하면 한 줄로 연결되어 있는 줄무늬나 줄이 생각나는 것처럼 RAID 0의 스트라이핑 방식은 데이터를 분할하여 저장하는 것을 의미한다.
마치 분할되어 있는 점이나 줄들을 하나로 합치면 하나의 줄이나 줄무늬가 완성되듯이 RAID 0 시스템 방식은 개별 디스크를 하나로 합치면 하나의 최종 데이터 완성된다.
디스크의 개수와 상관없이 디스크가 2개나 10개라도 분할하여 데이터를 저장한 다음 불러오는 방식이 RAID 0이다.
기계식 디스크의 단점은 사실상 물리적인 시간 소모가 이루어질 수밖에 없다.
이것을 우리는 HDD latency에서 알 수 있는데, 이러한 시간적 소모를 줄일 수 있는 것이 RAID 0 방식인 셈이다.
데이터를 불러오는 과정에서 하나의 디스크에서 모든 데이터를 불러오는 것과 여러 디스크가 데이터를 분할하여 가지고 있다가 각기 데이터를 나눠서 불러오면 효율성을 증가시킬 수 있다.
예를 들어 우리가 어떤 물건을 만들 때 분업화하여 최종 상품을 만들면 보다 더 빨리 만들 수 있듯이 분업화 방식을 적용한 게 바로 RAID 0인 것이다.
하지만 RAID 0의 경우 하나의 데이터를 분할하여 저장하고 불러오기 때문에 일부 디스크가 망가질 경우 데이터 전체를 잃어버릴 수 있다는 단점을 가지고 있다.
RAID 0은 striping 방식을 사용하지만 Parity가 적용되어 있지는 않다.
# RAID 1
RAID 1은 Mirroring 방식이라고도 불리는데 말 그대로 데이터를 미러링 하여 저장하기 때문이다.
RAID 1은 똑같은 데이터를 또 다른 드라이브에 저장하는 방식이다.
따라서 RAID 1은 2개의 드라이브만 있으면 구현이 가능하다.
똑같은 데이터를 2개의 디스크에 저장한다는 점에서 효율성 측면에서는 떨어질 수 있다.
다만 2개의 드라이브에 똑같은 데이터를 저장하고 있기 때문에 드라이브 하나의 데이터가 손실되더라도 전체 데이터를 손실되는 위험을 방지할 수 있다.
RAID 1은 Mirroring 방식을 사용하고 있지만 Striping 방식이나 Parity를 사용하지는 않는다.
# RAID 4
RAID 4의 경우는 striping 방식과 parity 방식을 모두 사용하고 있다.
RAID 4는 RAID 1처럼 Mirroring 방식을 사용하지는 않지만 RAID 0처럼 데이터 손실될 걱정은 하지 않아도 된다.
왜냐하면 Parity 방식을 적용하고 있기 때문이다.
Parity 방식 중에서도 RAID 4는 Dedicated parity 방식을 적용하고 있기 때문에 하나의 디스크 자체가 parity bit을 저장하고 있다.
따라서 데이터를 읽는 과정에서는 striping 방식 덕분에 읽는 속도의 효율성이 높지만 데이터를 쓰는 과정에서는 parity bit disk가 있기 때문에 작업량이 많을 경우 병목 현상이 발생하여 효율성이 저하될 수 있다.
# RAID 5
RAID 5는 RAID 4과 동일한 방식을 가지고 있지만 Parity를 다루는 방식이 다소 다르다.
RAID 4가 dedicated parity bit 방식을 사용했다면 RAID 5의 경우에는 distributed parity bit 방식을 적용하고 있다.
따라서 하나의 독립된 디스크가 Parity를 담당하는 것이 아니라 각각의 드라이브가 Parity를 나눠서 저장하고 있다.
사실상 Parity를 위해서 하나의 드라이브가 사용된다는 점은 동일하지만 RAID 4처럼 하나의 드라이브에 모든 Parity가 저장되어 있지는 않은 것이다.
이 경우 Striping 방식을 사용했음에도 데이터 손실에 대한 예방을 할 수 있으며, RAID 4보다 write 시간을 단축할 수 있다는 장점도 가지고 있다.
다만 단일 드라이브에 대한 손실 데이터를 복구할 수 있기에 여러 드라이브 손실이 발생할 경우 모든 데이터를 복구해낼 수는 없다.
이것을 보완한 RAID 방식이 바로 RAID 6이다.
# RAID 6
RAID 6는 RAID 5와 모든 방식이 동일하지만 Parity를 위한 드라이브를 하나 더 사용한다는 점에서 차이를 보인다.
이로 인해 RAID 5는 단일 드라이브의 데이터를 복구할 수 있었다면 RAID 6는 2개의 드라이브 데이터를 오류를 복수할 수 있다.
따라서 RAID 5는 3개 이상의 드라이브를 사용할때 사용하는 방식이며, RAID 6는 4개 이상의 드라이브를 사용할 때 사용하는 방식이다.
# RAID 10
RAID 10은 RAID 0과 RAID 1을 결합한 방식이다.
RAID 10이 RAID 5나 6과의 차이점은 데이터 오류에 대한 처리가 상대적으로 완벽하다는 점이다.
Parity bit을 사용하여 데이터에 대한 오류가 발생하였을 때 해결할 수 있는 방법을 제공하지만 Parity 방식의 경우 오류 발생 시 문제 해결을 우선시하게 된다.
한마디로 모든 디스크이 항목을 읽고 다시 재구축하는 작업을 수행하는 것이 Parity 방식이다.
이 경우 다른 디스크의 데이터 손실이 발생하거나 다른 디스크의 오류를 해결할 수 없다는 단점을 가지고 있다.
반면에 RAID 10의 경우 Mirroring 되어 있는 데이터를 다시 읽기만 하기 되기 때문에 데이터 손실 가능성이 훨씬 적다.
RAID 10이 점차적으로 많이 사용하고 가능했던 이유는 HW의 기술 발전이다.
디스크를 많이 사용해야 하기에 비용 증가라는 단점을 가지고 있지만 최근에는 디스크 비용 감소와 함께 RAID 10 방식을 적용하는 게 상대적으로 더 이점이 많아졌다.
따라서 스토리지를 추가하는 것만으로도 RAID 10 시스템을 적용하여 데이터 처리 속도와 데이터 손실 가능성 저하를 이뤄낼 수 있게 되었다.
SSD 방식에서 RAID 10을 많이 적용하여 사용하는 이유도 이러한 이유 때문이다.
'Computer Science' 카테고리의 다른 글
[Operating System] Virtual Memory: Paging, Physical Memory, MMU (0) | 2022.03.21 |
---|---|
[Programming] SSD(Solid-state Drive) (0) | 2022.03.19 |
[Programming] Magnetic Hard Disk Drive (0) | 2022.03.17 |
[Automata] Automata Prove: Infinite Countable (0) | 2022.03.09 |
[Automata] Automata Prove: Examples of Proving Sets (0) | 2022.03.09 |
댓글