[리눅스설치] RAID와 디스크 RAID 구성 종류
RAID에 대하여
RAID(Redundant Array of Inexpensive Disks)는 물리적으로 서로 다른 여러개의 디스크를 논리적으로 하나의 디스크인것처럼 사용하는 것입니다.
RAID는 크게 하드웨어 RAID와 소프트웨어 RAID가 있는데, 하드웨어 RAID의 경우 서버장비 제조업체에서 RAID용 장비와 DISK를 만들어서 공급받아 사용합니다.
안정성과 성능은 뛰어나지만 고가의 RAID 전용 장비 구매비용이 들어가게 됩니다.
소프트웨어 RAID의 경우 운영체제에서 지원하는 기술을 통해 이루어지기 때문에 하드웨어적인 구매비용이 절감되는 장점이 있지만 하드웨어 RAID 방식에 비해 안정성이나
속도가 떨어지는 단점이 있습니다.
RAID 레벨에 따른 디스크 구성
RAID는 방식에 따라 기본적으로 RAID0 ~ RAID5 까지로 나뉩니다.
단일 디스크인 경우
이경우는 RAID가 아니고 말 그대로 디스크 하나를 하나인것처럼 사용하는 경우입니다.
당연히 데이터는 디스크 하나에 차곡차곡 저장됩니다.
Linear RAID
Linear RAID는 RAID로 구성된 디스크를 차례대로 사용하는 경우입니다.
데이터는 첫번째 디스크부터 차례대로 저장됩니다.
디스크는 2개 이상 필요합니다.
RAID로 구성된 디스크의 공간을 100퍼센트 이용가능합니다.
그러나 신뢰성은 보장할 수 없는데 만약 1번 디스크와 2번디스크에 데이터가 걸쳐있는 경우 둘 중 하나 망가지면 데이터 잃게 됩니다.
무슨 뜻이냐면 만약 파일 하나를 저장하는데 10번화 11번 데이터가 파일 하나를 나눠 저장한 경우라면 둘 중 하나가 망가졌을 경우 해당 파일은 완전하지 못한 파일로 사용하지 못하게 되는 것입니다.
RAID0
RAID0은 동시에 각각의 디스크에 데이터를 저장하는 방식(병렬)입니다.
그렇기 때문에 RAID 레벨중 가장 속도가 빠릅니다.
디스크 1 에는 1,2,3을 저장하면서 동시에 디스크2에 4,5,6을 저장하는 것입니다.
이러한 방식을 Stripping 방식이라고 합니다.
속도는 빠르지만 뭐든 나누어 저장하기 때문에 한개의 디스크라도 고장이 난다면 데이터를 모두 잃게 되어 신뢰성이 떨어지는 방식입니다.
대부분 속도가 필요하나 중요하지 않은 데이터를 저장할 때 구성하는 방식입니다.
또한 디스크가 여러개일 때 디스크의 용량이 각각 다르다면 더 작은쪽에 용량이 맞춰집니다.
왜냐하면 어떤 데이터를 저장할 때 n/1로 나누어 동시에 저장하기 때문에 한쪽 디스크 용량이 작아 데이터가 꽉 찼을 경우 다른 디스크에 용량이 남는다고 해도 나누어 저장할 수 없기 때문입니다.
RAID1
RAID1은 RAID0의 신뢰성이 떨어지는 것과는 반대로 신뢰성을 보장하기 위한 방식입니다.
데이터를 여러개의 디스크에 동시에 저장하는 것은 같지만 같은 데이터를 복사하여 저장(Mirroring이라고 부름) 합니다.
그렇기 때문에 결함을 허용합니다.
* 결함을 허용한다는 뜻은 한쪽이 고장나도 데이터의 안정성을 보장한다는 뜻입니다.
단점으로는 데이터를 복사하여 저장하기 때문에 공간 효율이 2분의 1이라는 점(비용이 높음) 입니다.
RAID5
RAID5의 경우 RAID0처럼 공간 효율성이 좋으면서 RAID1처럼 신뢰성도 어느정도 보장하는 구성입니다.
디스크는 세 개 이상이 필요한데 구성하는 디스크 중 하나는 패리티 비트를 저장하기 위한 용도로 사용합니다.
예를 들어 파일1 ,2 ,3 이 있다고 가정했을 때 각각의 파일을 나누어 2진수로 저장한다고 생각해 보세요.
이때 1번 파일의 데이터는 0 과 1입니다.
그러면 디스크3에는 파일1에 대한 패리티비트로 1을 저장하게 됩니다.
*짝수 패리티(Parity) 비트의 경우 어떤 수의 합이 짝수가 되기 위한 비트로 저장하게 합니다.
파일 2의 경우 실제 데이터는 1과 1인데 1번디스크와 3번디스크에 각각 저장합니다.
그러면 패리티 비트는 2번디스크에 저장하게 되고 이미 1 과 1을 더하면 짝수이므로 0을 패리티비트로 저장하게 됩니다.
이런식으로 저장하게 되면 디스크 2가 고장이 난 경우 파일 1의 경우에는 1번 디스크의 0과 3번 디스크의 1을 합하면 1이므로 자연스럽게 2번 디스크의 원래 데이터는 1이었다는 것을 알 수 있습니다.
물론 디스크 두개가 고장날 경우 복구가 불가능 합니다.
따라서 디스크 구성 개수가 늘어날수록 공간효율은 N-1로 좋으나 디스크가 여러개일 수록 동시에 두개가 고장날 확률이 높아지므로 신뢰성이 떨어집니다.
또한 평소에는 패리티비트는 읽지 않고 실제 데이터만 읽다가 디스크에 문제가 생긴 경우에 패리티 비트를 이용하여 복구하게 됩니다.
RAID6(N-2의 공간 효율)
RAID6의 경우 RAID5를 개선한 것으로 패리티 비트를 두 개 사용하는 중복 패리티 알고리즘을 적용합니다.
따라서 디스크는 최소 4개 이상이 필요합니다.
중복 패리티 사용하기 때문에 저장속도가 조금 더 떨어지지만 RAID5보다 신뢰성이 높습니다.
RAID1을 RAID0으로 묶어 사용하는 경우 또는 RAID0을 RAID1로 묶어 사용하는 경우
RAID는 레벨별 한가지 구성으로만 사용하는 것이 아니고 다음과 같이 RAID1로 구성한 디스크들을 또다시 RAID0으로 구성하여 사용할 수 있습니다.
구성방식 변경에 따라 신뢰성과 공간효율 입출력 속도등을 알맞게 조절할 수 있습니다.
추가 RAID 2, 3, 4도 있지만 단점들을 보완한 방식이 5이므로 잘 사용하지 않습니다.
|
|
'프로그래밍 > 리눅스' 카테고리의 다른 글
vim 에디터 설치방법에 대해 알아본다 (0) | 2018.07.02 |
---|---|
[리눅스 명령어 ] 리눅스 기초 (명령어 위주) (0) | 2018.03.16 |
[Linux] 우분투 리눅스 가상 터미널 (0) | 2018.03.15 |
Linux CentOS] 리눅스 재부팅,리눅스 종료, 리눅스 로그아웃 방법 (0) | 2018.03.15 |
[리눅스] 디스크 RAID 구성 종류 (0) | 2018.03.14 |