Raid 구성 알아보기 R0, R1, R5 등
raid란? raid 구성 및 종류
복수 배열 독립 디스크는 여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술인데요. 디스크 어레이라고도 합니다.
서버 저장소에서 표준 RAID 수준은 Stripng, Mirroring 또는 Parity 기술을 사용하여 여러 범용 컴퓨터 하드 디스크 드라이브에서 신뢰할 수 있는 대용량 데이터 저장소를 만드는 기본 RAID 구성 세트로 구성됩니다.
좀 쉽게 설명하자면 다수의 디스크를 통해서 빠른 속도를 내기 위해서 사용되거나 디스크 복사를 위해 혹은 용량을 합쳐서 사용하며 안전하게 사용하기 위해 사용 됩니다.
Raid의 종류는 굉장히 다양하게 있는데요. 하지만 이 포스팅에서는 잘 사용하지 않는 Raid Level이 아닌 일반적으로 많이 사용하는 Raid 종류에 대해서만 작성하도록 하겠습니다.
목차
1. Raid 0
2. Raid 1
3. Raid 5
4. Raid 6
5. Raid 1+0
6. Hotspare
RAID 0 - Striping
여러 개의 멤버 하드디스크를 병렬로 배치하여 거대한 하나의 디스크처럼 사용하는데요. 데이터 입출력이 각 멤버 디스크에 공평하게 분배되며, 디스크의 수가 N 개라면 입출력 속도 및 저장 공간은 이론상 N배가 되는 효과가 있습니다.
하지만 멤버 디스크 중 하나만 손상 또는 분실되어도 전체 데이터가 파손되며, 오류검출 기능이 없어 멤버 디스크를 늘릴수록 안정성이 떨어지는 문제가 있는 엄청난 단점이 존재합니다.
장점으로는 속도면에서 굉장히 빠른데요. parity가 없기 때문에 그에 의한 오버헤드가 없기 때문입니다. 하지만 장점만 생각하여 중요한 데이터를 두었다가 Raid가 깨지게 되면 모든 데이터의 손실에 생깁니다.
Raid 0 (Striping)은 os나 scratch영역으로 사용하는 것을 추천합니다.
RAID 1 - mirroring
각 멤버 디스크에 같은 데이터를 중복 기록하게 되는데요. 멤버 디스크 중 하나만 정상 운영이 되고 있다면 데이터는 보존되며 복원도 1:1 복사로 매우 간단하기 때문에, 서버에서 끊김 없이 서비스를 제공하기 위해 사용됩니다.
Raid1은 안정성 때문에 많은 고객사에서 사용을 하는데요. A디스크와 B디스크가 같은 block이 생성되기 때문에 하나의 Disk Fail에서도 안정적으로 서버를 운영할 수 있습니다. 하지만 하나의 용량으로 두개의 디스크 값을 지불해야 하는 단점이 있습니다.
RAID 5 (Fault Tolerance using Distributed Parity Bit.)
parity를 한 디스크에 모두 밀어 넣지 않고 각 멤버 디스크에 돌아가면서 순환적으로 저장하여 입출력 병목 현상을 해결하는데요.
N개의 디스크를 사용하면 (N-1) 배의 저장 공간을 사용할 수 있습니다. 하나의 멤버 디스크 고장에는 견딜 수 있지만 디스크가 두 개 이상 고장 나면 데이터가 모두 손실이 되는데요.
데이터베이스 서버 등 큰 용량과 무정지 복구 기능을 동시에 필요로 하는 환경에서 주로 쓰이게 됩니다. 읽기 속도는 빠르지만 쓰기는 parity인해 조금 느린편입니다.
그리고 디스크 한 개의 불량으로는 볼륨상에 데이터에는 문제가 발생하지 않습니다. 디스크 두 개가 불량이 나면 볼륨에 있는 데이터는 모두 소실되므로 주의하셔야 합니다.
또한 디스크 Fault시 교체를 하게 되면 cache가 있는 raid contorller에서는 backgroud initialize가 걸리게 됩니다. 백그라운드는 용량에 따라 6시간에서 많게는 하루정도 걸릴 수 있으며, 백그라운드 작업 시에도 서버 운용에는 큰 문제가 없습니다.
RAID 6 - Fault Tolerance using Distributed Double Parity Bit
Raid 6는 RAID 5와 원리는 같으며, 서로 다른 방식의 패리티 2개를 동시에 사용한다는 차이점만 있습니다. 성능과 용량을 희생하여 가용성을 높인 방법입니다.
N개의 디스크를 사용하면 (N-2) 배의 저장 공간을 사용할 수 있습니다. Raid 5보다 안전하지만 2개의 패리티로 인하여 디스크 두 개의 용량이 빠진만큼 사용이 가능합니다.
비용적으로 약간의 여유가 있으며 중요한 데이터에는 사용해야 합니다.
RAID 1 + 0
Raid 10의 하위 배열은 RAID 1, 상위 배열은 RAID 0 인데요. RAID 1로 미러링 된 볼륨을 RAID 0으로 스트라이핑 하는 방법입니다.
퍼포먼스 및 용량 위주로 구성한다면, 1TB 디스크 2개를 RAID 1로 묶은 미러 볼륨 3개를 RAID 0으로 스트라이핑 합니다. 이 경우 사용 가능한 총용량은 3TB가 됩니다.
HOTSPARE
RAID 1, 5, 6 등 소수의 하드디스크가 고장 나더라도 운영에 지장이 없는 RAID Level을 위해 존재하게 되는데요.
전체 멤버 디스크에서 1개 이상의 디스크를 Spare로 지정해서, 평소에는 데이터를 읽고 쓰는 행위를 하지 않고 그냥 대기(stand-by) 시키다가 디스크가 고장 났을 때 자동으로 해당 디스크에 리빌딩하여 원래 RAID 볼륨을 복구합니다.
디스크 볼륨에 속하지 않고 있다가 볼륨 내에 디스크가 fail 나는 순간 바로 rebuilding작업이 시작 되는데요. 그리고 그 볼륨에 속하게 됩니다.
Fail난 디스크 위치에 디스크를 교체하면 Raid controller에 따라 다르지만, copy back기능으로 원래 디스크 위치들로 다시 볼륨 구성 및 hotspare가 위치하게 됩니다.
이외에도 여러 가지 기능 및 raid 종류가 있는데요. ZFS filesystem을 통한 RaidZ의 종류도 있습니다. 하지만 이건 나중에 전문가가 된 다음에 알아도 늦지 않을 것 같습니다.
'linux' 카테고리의 다른 글
cuda 11.0 및 cudnn 설치 방법 - 리눅스(ubuntu18.04) (382) | 2021.02.17 |
---|---|
nvidia nvswitch install - 설치 과정 오류 해결 (415) | 2021.01.13 |
linux 하드웨어 정보 확인 방법 (CPU, MEM, DISK 등) (468) | 2021.01.05 |
nvidia-docker GPU 할당하여 사용 하는 방법 3가지 (7891) | 2021.01.04 |
Docker 설치 및 컨테이너 실행 옵션 사용방법 (444) | 2020.12.30 |
최근댓글