Search
Duplicate

RAID에 대해서 알아보자

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
운영체제
Scrap
태그
파티션
9 more properties

서론

클라우드가 이전 보다는 많이 대중에게 보급된 지금, 데이터를 하드디스크에 직접 보관하는 옛날 방식은 이제 생각해보기 힘들어졌습니다. 사람들은 데이터를 클라우드 저장소에 보관하는것이 익숙해지기 시작했습니다. 하지만 이러한 클라우드 기반 저장소는 기본으로 제공되는 용량이 생각보다 적으며, 이 용량을 확장하기 위해서는 적지않은 돈을 지불해야한다는 단점이 있습니다. 그렇기 때문에 사람들은 이 단점을 해소하기 위해서 다른 방안에 눈을 돌리게 되었고, 그중에 하나가 NAS입니다. 이러한 NAS에서 중요하게 사용되는 기술이 바로 RAID입니다. 오늘은 이 RAID라는 기술이 어떤건지 알아보고, 어떤 특징을 가지고 있는지 소개하는 시간을 가져보도록 하겠습니다.

RAID?

RAID는 Redundant Array of Inexpensive Disks의 약자입니다. 말 그대로 여러개의 디스크를 중복해서 사용해서 작동한다는 의미를 가지고 있습니다. 그러면 우리는 왜 이러한 기술을 사용해야 할까요?

RAID의 특성

RAID는 다음 2가지 특성을 만족하기 위해서 개발되었습니다.
1.
신뢰성
RAID는 하드디스크를 대상으로 하는 기술입니다. 이러한 디스크 입출력 저장장치는 데이터를 메모리보다 더욱더 많이 보관할 수 있고, 휘발성이 아니기 때문에 전원이 공급되지 않아도 데이터가 손실될 걱정을 하지 않아도 된다는 특징이 있습니다.
하지만 이러한 물리적 저장장치의 단점은 바로 충격에 약하다는 점입니다. 바닥에 떨어뜨리면 바로 그 디스크는 사용하지 못한다고 생각할 정도로 매우 물리적 충격에 약합니다. 그리고 우리는 데이터를 최대한 손실되서는 안된다는 것이 목표이기 때문에 이것을 어떻게든 보호해야 했습니다.
그래서 RAID는 데이터를 쉽게 복구하기 위해서 패리티 비트나, 미러 디스크와 같은 기술을 사용해서 하나 혹은 2개의 디스크가 망가져도 쉽게 복구가 가능하게 만들었습니다.
2.
효율성
디스크를 비롯한 여러종류의 입력장치가 다른 장치와의 다른 점은 매우 느리다는 것입니다. 메모리가 데이터를 한번 읽을 때와 디스크에 있는 데이터를 한번 읽을 때의 속도차이는 정말 어마어마한 수준입니다. 그렇기 때문에 우리는 이러한 느린 입력 장치를 효율적으로 사용해야 한다는 난관에 봉착했습니다.
RAID는 이러한 문제를 해결하기 위해서 하나의 데이터를 여러개의 Strip이라는 단위로 쪼개서 여러개의 디스크에 분산 저장을 했습니다. 이렇게 한다면 여러 디스크가 동시에 다른 종류의 입출력을 처리를 하기 때문에 하나의 디스크가 모든 데이터를 읽으려고 할때 보다 월등한 속도 향상이 이루어질 수 있습니다.

RAID의 종류

이러한 RAID는 총 RAID level 0부터 RAID level 6까지 총 7개로 이루어져 있습니다. 그리고 각 단계별로 특징을 간단히 소개해보도록 하겠습니다.
1.
RAID 0
RAID 0은 데이터를 중복해서 저장하지 않기 때문에 신뢰성에서는 매우 떨어집니다. 하지만 데이터를 strip이라는 단위로 단순히 분산 저장한다는 특징을 가지고 있습니다. 그렇기 때문에 단일 입출력 하는 것보다는 당연히 속도가 빠르다는 장점을 가지고 있습니다. 하지만 뒤에서 설명할 여러 level과는 신뢰성이 매우 떨어지기 때문에 잘 사용하지는 않습니다.
2.
RAID 1
RAID 1은 하나의 디스크에 완벽하게 대응되는 디스크를 하나 더 생성합니다. 이 디스크는 기존 디스크의 데이터를 완벽히 복사를 합니다. 즉 하나의 데이터가 2개의 미러 디스크에 저장이 된 상태기 때문에 데이터의 신뢰성이 가장 뛰어납니다. 하지만 단점도 있는데, 디스크가 N개 있다면 거기에 2배가 필요하기 때문에 비용이 많이 듭니다.
3.
RAID 2
RAID 2는 데이터 단위인 strip가 비트단위로 매우 작습니다. 그리고 각 데이터 strip들의 집합인 stripe마다 해밍 코드를 계산해서 또 다른 디스크 3개에 저장을 합니다. 이렇게 되면 패리티 디스크를 제외한 디스크가 망가져도 해밍 코드를 통해서 데이터 복구가 가능하지만 일단 3개의 디스크가 추가로 필요하다는 단점과 쓰기과정이 비효율적이라는 단점이 존재합니다.
4.
RAID 3
RAID 3은 RAID 2와 비슷하지만 해밍코드가 아니라 패리티 비트를 계산하고 패리티 정보를 담은 디스크가 1개 존재한다는 점이 차이점입니다.
5.
RAID 4
RAID 4는 RAID 2, 3과 비슷하지만 기존에는 strip의 단위가 비트단위였다면 이제는 strip의 단위가 몇십 바이트 단위로 증가합니다. 그리고 각 strip 디스크별로 패리티 디스크를 계산해서 또 하나의 디스크에 저장합니다. 이 방식도 결국 2와 3처럼 쓰기 효율이 매우 낮다는 단점을 가지고, 쓰기를 거칠 때 하나의 패리티 디스크에 모두 접근을 해아하기 때문에 병목 현상이 일어날 수 있다는 단점을 가지고 있습니다.
6.
RAID 5
RAID 5는 이 패리티 디스크를 따로 디스크를 만들어서 저장하는 것이 아닌 여러개의 디스크에 분산 저장하는 방식입니다. 이는 병목현상을 일으키지도 않으며, 하나의 디스크가 망가져도 복구가 가능하다는 특징을 가지고 있습니다.
7.
RAID 6
RAID 6는 RAID 5와 비슷하지만 패리티를 2번 계산해서 각 디스크에 분산 저장한다는것이 특징입니다. 이는 최대 2개의 디스크가 망가져도 데이터를 복구할 수 있기 때문에 신뢰성이 가장 뛰어나다는 특징을 가지고 있습니다.

결론

RAID는 여러 개의 하드디스크를 하나의 하드디스크처럼 사용하는 방식입니다. 비용을 절감하면서도 더 신뢰성을 높이며, 성능까지 향상시킬 수 있습니다. 이러한 RAID개념이 나온지도 30년이 넘었지만 아직도 현역으로 사용한다는 점은 이 개념이 얼마나 중요한지 짐작할 수 있습니다. 이 RAID개념을 확실히 이해해서 NAS를 구축 할 때 조금이나마 정보를 찾는 시간을 줄일 수 있다면 좋겠습니다. 감사합니다.