리눅스 시스템의 이해 - RAID란?

2022. 1. 26. 04:03리눅스마스터 1급 - 필기/리눅스 실무의 이해

RAID(Redunant Array of Independent Disks), 독립 디스크들의 복수 배열이란 소용량 저장장치 여러 대를 배열로 묶어서 대용량 저장장치를 만드는 기술입니다. 가격이 저렴하고 장애가 발생해도 복구 기능이 있어서 서버 컴퓨터에서 많이 사용되는 기술 입니다. 

 

디스크들을 묶는 방법에는 하드웨어적인 방법과 소프트웨어적인 방법이 있습니다.

1. 하드웨어적인 방법

RAID로 묶은 디스크들을 운영 체제가 하나의 디스크로 인식하게 하는 방법입니다.

 

2. 소프트웨어적인 방법

주로 운영체제 안에서 구현되며, RAID로 묶은 디스크들을 사용자가 하나의 디스크처럼 보이게 하는 방법입니다.

* 운영체제는 여러개의 디스크로 인식합니다.

 

하드웨어적인 방법으로 묶는 방법이 소프트웨어적인 방법보다 성능, 안정성 면에서 효과가 좋습니다.

 

RAID는 필요에 따라 여러 가지 선택을 할 수 있도록 제어할 수 있는데 이를 레벨로 구분합니다.

레벨은 0에서 6까지 7가지로 구분되며 패리티 비트를 사용하여 장애가 발생한 디스크의 정보를 복구하는데 사용됩니다.

 

RAID 0 (빠른 속도)

RAID 0은 디스크들을 병렬로 묶어서 사용하며 저장 공간을 가장 효율적이게 사용할 수 있는 레벨입니다. 

데이터가 하나의 디스크가 아닌 여러 디스크에 분산되어 저장되고 이를 stripe 기술이라고 합니다.

데이터가 여러 디스크로 분산되어 저장되기 때문에 디스크 1개라도 이상이 생긴다면 모든 데이터가 손상되고 복구할 수 없다는 단점이 있습니다. 

반면에 데이터 저장/읽기 속도가 매우 빠르다는 장점이 있습니다.

데이터 저장 가능 용량은 (디스크 수 * 디스크 용량)

 

RAID 1 (안정성)

RAID 1은 디스크에 저장되는 데이터들을 복제하여 똑같은 데이터를 다른 디스크에도 저장하는 레벨입니다.

A, B 디스크를 RAID 1 레벨로 사용할 경우 데이터 하나를 저장하면 A,B 두 디스크 모두에 저장되는 것입니다. 이를 미러링이라고 부릅니다. 원본 데이터와 똑같은 데이터가 미러링 디스크에 저장되기 때문에 디스크 1개에 이상이 생겨도 데이터 손실을 막을 수 있는 안정성이 매우 뛰어나다는 장점이 있습니다.

반면에 동일한 데이터가 중복으로 저장되기 때문에 총 용량의 절반 밖에 사용하지 못한다는 단점이 있습니다.

이 레벨을 사용하기 위해서는 짝수개의 디스크가 필요합니다. 또한 RAID 0와는 달리 RAID를 하기 전과 속도 면에서는 변화가 없습니다.

데이터 저장 가능 용량은 (디스크 수/2 * 디스크 용량) 입니다.

 

RAID 2 (해밍 코드)

RAID 2는 데이터 저장용 디스크와 데이터 복구용 디스크를 나누어 저장하는 레벨입니다.

데이터 저장용 디스크는 RAID 0 과 같은 stripe 기술을 사용해서 데이터를 저장하고 데이터 복구용 디스크는 비트 단위에 해밍 코드를 사용해서 데이터 복구를 수행합니다.

디스크 1개에 이상이 생겨도 데이터 복구용 디스크를 사용하여 데이터를 복구 할 수 있지만 추가적인 연산 작업이 추가되기 때문에 속도 면에서는 매우 떨어집니다. 

데이터 복구용 디스크의 수명이 다른 디스크에 비해 수명이 짧다는 단점이 있기 때문에 현재에는 사용하지 않습니다.

* 해밍코드 : 컴퓨터 스스로 데이터의 오류를 검출하고 수정하는 오류 수정 코드입니다.

 

RAID 3, 4 (패리티)

RAID 3, 4는 RAID 0, 1의 단점을 보완하기 위해 나온 상위 버전 레벨입니다.

RAID 3, 4는 RAID 0 과 같은 stripe 기술을 사용해서 데이터를 저장하고 패리티 정보를 별도의 디스크에 저장합니다.

RAID 3은 바이트 단위로 데이터를 균등하게 분산 저장하지만 RAID 4는 블록 단위로 분산 저장하여 균등하게 저장되지 않는다는 차이점이 있습니다. 패리티 정보 또한 RAID 3은 바이트 단위로 RAID 4는 워드 단위로 저장됩니다.

 

RAID 4 처럼 BLOCK 단위로 저장하면 작은 파일을 한번의 작업을 데이터를 읽을 수 있다는 장점이 있으나 BLOCK 단위로 저장하여 디스크에 균등하게 분산시켜 저장시키지 못해 병목 현상이 발생할수도 있다는 단점이 있습니다.

데이터 저장 가능 용량은 ((디스크 수 -1) * 디스크 용량)

 

* 패리티 비트 : 일반적으로 정보를 전달하는 과정에서 오류가 발생했는지 검사하는 오류 검출 코드로 사용됩니다.

* 병목 현상 : 시스템의 전체 성능이나 용량이 하나 혹은 소수 개의 구성 요소나 자원에 의해 제한 받는 현상

 

RAID 5 (패리티)

RAID 5는 RAID 3,4의 단점을 보완하기 위해 나왔습니다. RAID 4와 마찬가지로 RAID 0에서 사용한 striping 기술을 사용해서 데이터를 블록 단위로 저장하고 데이터 오류 검출을 위해 패리티를 사용하는 레벨입니다. 패리티를 별도의 디스크에 저장하지 않고 모든 디스크에 분산하여 저장한다는 점이 RAID 3, 4와의 차이입니다. 이러한 방법을 통해 병목 문제를 해결했지만 패리티 정보가 여러 디스크에 흩어져 있어 패리티 정보를 갱신하는데 성능이 저하되는 단점이 있습니다.

성능 면에서는 RAID 0보다는 떨어지지만 앞서 소개한 RAID 레벨들보다는 성능, 안정성, 용량의 세 부분을 모두 고려한 레벨입니다.

데이터 저장 가능 용량은 ((디스크 수 -1) * 디스크 용량)

 

RAID 6 (패리티)

RAID 5에서 패리티 정보를 하나 더 생성해서 안정성을 더욱 강화한 레벨입니다. 

디스크가 두개까지 오류가 발생해도 데이터 손실을 막을 수 있습니다.(RAID 5에서는 불가능) 하지만 데이터 쓰기에서 작업이 너무 복잡해져서 성능이 저하되는 단점이 있습니다. 

데이터 저장 가능 용량은 ((디스크 수 -2) * 디스크 용량)

 

RAID 10

RAID 1과 RAID 0을 합친 기술로 먼저 미러링을 마친 디스크들을 나머지 디스크들과 함께 스트라이핑하여 안정성과 속도를 상승시키는 방식입니다. 최소 4개의 디스크가 필요합니다.