[CS] RAID

김경훈·2024년 5월 10일

Computer Science

목록 보기
15/16

RAID란?

RAID란 복수 배열 독립 디스크라는 뜻으로 여러개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술을 말합니다. 디스크 어레이(disk array)라고도 합니다. 정의만 봐서는 이해하기가 쉽지 않으니 쉽게 설명하면 여러 개의 저장장치인 디스크를 하나로 묶어서 하나의 디스크처럼 사용하는 것이라고 할 수 있습니다.

그럼 RAID를 왜 사용해야할까요? 다시말해 왜 디스크를 하나로 묶어서 사용하는 걸까요? 이유는 다음과 같습니다.

  • 저렴한 저성능 저용량 디스크들을 가지고 고성능 고용량 디스크처럼 사용하고 싶다.
  • 디스크가 고장 났을 때를 대비하여 데이터를 보호하고 시스템을 중단 없이 운영하고 싶다.

가용성

여기서 알아야하는 용어가 가용성(Availability)입니다.
가용성이란 "시스템이 장애 없이 정상적으로 운영되는 능력"을 말합니다. 예를들어 고가용성(High Availability)는 Five 9s(파이브 나인스), 99.999%의 가용성을 보장하며 연간 5분 25초 이하의 장애를 허용한다는 의미 입니다.

가용성이 중요하는 이유는 군사, 항공, 금융처럼 중단되어서는 안되는 시스템들을 들 수 있습니다.
이러한 시스템에 사용되는 서버와 스토리지 같은 인프라는 보통 24시간 내내 중단없이 가동됩니다.

서버나 스토리지에 들어가는 하드 디스크뿐 아니라 SSD 역시 내구성이 존재하며 무한히 사용할 수는 없습니다. 이러한 디스크의 장애가 시스템 중단으로 이어질 수 있어서 RAID를 사용하여 가용성을 확보하는 것 입니다.

RAID의 종류

1. RAID 0

RAID 0은 데이터를 디스크에 분할하여 저장하는 방식입니다.

데이터를 분할해야 하기 때문에 디스크는 최소 2개 이상이 필요하고, 2개의 디스크를 사용한다면 성능도 2배가 됩니다.
하지만 디스크가 고장이나면 해당 데이터를 잃어버리게 됩니다. 즉, 가용성이 나쁘다는 것이 RAID 0의 단점이라고 할 수 있습니다. 따라서 RAID 0은 중요하지 않은 데이터를 저장할 때 사용합니다만 안정성이 떨어져 권장하는 방식은 아닙니다. 실제로도 서버나 스토리지 환경에서 RAID 0만 사용하는 경우는 거의 없습니다.

2. RAID 1


RAID 1은 각각의 디스크에 중복하여 똑같이 저장하는 방식입니다. 미러링(Mirroring)이라고도 부르는 것이 거울에 비추는 것처럼 똑같이 복제한다 라는 것 입니다.

똑같이 복제한다는 건 디스크를 여러 개 사용해도 디스크 1개의 용량만큼만 사용할 수 있다는 뜻 입니다. 또한 복제하는 시간이 추가되어 저장하는 성능이 낮아집니다. 그래도 RAID 1의 가장 큰 장점은 가용성이 높다는 것 입니다. 디스크 4개중 3개가 고장 나도 문제 없이 작동하고 데이터도 안전합니다.
장점 : 읽기 속도가 빨라짐 / 가용성이 높음
단점 : 용량 낭비가 심함 / 속도가 느려짐
으로 정리할 수 있습니다.

3. RAID 5

striping with parity

RAID 5는 RAID 0처럼 데이터를 스트라이핑,즉 분할하여 디스크에 저장합니다. 하지만 그냥 저장하는 것이 아니라 parity를 함께 저장합니다. 그리고 그 parity는 하나의 디스크에 저장되는 것이 아니고 매번 다른 디스크에 저장합니다.

parity

parity란 정보의 전달과정에서 오류가 생겼는지 검사하기 위해 추가된 비트입니다. 쉽게 복구 정보라고 할 수 있습니다.
짝수 패리티는 전체 비트에서 1의 개수가 짝수가 되도록 맞추는 것이고,
홀수 패리티는 비트의 1의 개수가 홀수가 되도록 맞추는 것 입니다.
RAID 5는 디스크 1개까지 고장나도 복구가 가능하기 때문에 가용성은 보통이라고 할 수 있고 데이터를 분산 저장하여 읽기 성능은 좋아도 패리티 정보를 매번 다른 디스크에 저장하고 장애 시 분산된 패리티를 읽어야 하기 때문에 성능이 약간 저하될 수 있습니다. 물론 컨트롤러에 캐시를 달아 속도 저하를 최소화하기는 합니다. 용량은 디스크 개수에 따라 67% ~ 94% 까지 사용 가능하여 비교적 용량 낭비가 적다고 할 수 있습니다.

4. RAID 6

RAID 6은 RAID 5와 비슷하지만 패리티를 하나 더 추가하여 2차 패리키 정보까지 넣었습니다.

때문에 안정성이 더 높아져서 2개의 하드에 문제가 생겨도 복구 할 수 있습니다.

패리티 정보가 많아졌기 때문에 성능은 RAID 5보다 조금 낮아졌지만 보통 수준이라고 할 수 있습니다. 용량은 디스크 개수에 따라 50~88%까지 사용 가능하여 용량 낭비가 낮은 편에 속하지만 그림처럼 디스크가 4개일 때는 용량을 50%만 사용 가능하므로 낭비가 심하다고 볼 수 있습니다.

Nested RAID

지금까지 표준 RAID 구성들을 다시 RAID로 묶어서 구현하는 방식을 말합니다.

RAID 10

먼저 RAID 10은 RAID 1과 RAID 0을 합친 것 입니다. 미러링으로 복제하는 RAID 1방식을 스트라이핑으로 분할하여 저장하는 방식의 RAID 0으로 묶어서 구성하는 것 입니다. 이렇게 되면 RAID 1의 높은 가용성과 RAID 0의 높은 성능을 모두 사용할 수 있습니다. 하지만 용량을 50%까지 사용한다는 것과 비용이 많이 든다는 단점도 있습니다.

RAID 50 & RAID 60


마찬가지로 RAID 5를 RAID 0으로 묶는 RAID 50구성도 있고 RAID 6을 RAID 0으로 묶는 RAID 60 구성도 있습니다. 이렇게 RAID의 장점을 섞어 가용성과 성능을 높일 수 있습니다.

정리

profile
Cloud & DevOps

0개의 댓글