RAID란?
Redundant Array of Inexpensive Disks가 RAID의 의미입니다. 직역하면 디스크의 중복 집합체?이런 뜻입니다.
리눅스는 서버로 많이 사용됩니다. 서버를 운영하다가 디스크의 문제로 인데 데이터 손실이 일어나면 어떨까요?
생각만 해도 아찔한 상황이 벌어질 것입니다. 이런 현상을 막기 위해서 RAID를 사용할 수 있습니다.
RAID는 여러 개의 하드 디스크에 데이터를 나눠서 저장하는 기술입니다.
여러 개의 디스크를 마치 하나의 디스크처럼 사용할 수 있습니다.
RAID는 데이터 보존에 있어 안정적이고, 성능이 향상될 수 있습니다.
+ RAID에는 하드웨어 RAID와 소프트웨어 RAID가 있습니다. 하드웨어 RAID는 성능이 좋은 반면 비쌉니다.
그렇기에 개인적으로 공부할 때는 소프트웨어 RAID를 사용할 수 밖에 없습니다.
Linear RAID
Linear RAID는 가장 일반적인 방법으로 데이터가 순차적으로 차곡차곡 저장됩니다.
2개 이상의 하드 디스크가 필요합니다.
장점 : 공간효율성이 100%입니다. (각 하드 디스크의 용량이 다르더라도 순차적으로 저장하기에 모든 용량 사용 가능)
단점 : 시간 효율이 떨어집니다, 성능 면에서 장점이 없습니다.
RAID0
RAID0은 Stripe방식을 사용합니다.
2개 이상의 하드 디스크를 병렬로 연결하여 번갈아가며 저장하는 방식입니다.
장점 : 저장 속도가 빠릅니다.
단점 : 데이터 안정성이 부족합니다. (하나의 하드 디스크에 문제가 생기면 관련 데이터는 사용할 수 없게 됨)
공간 효율성이 부족합니다. (Stripe방식이기에 가장 용량이 적은 하드 디스크에 맞춰야 합니다)
RAID1
RAID1은 Mirror방식입니다. 그림에서도 알 수 있다시피 같은 데이터를 동시에 저장하는 것입니다.
데이터 보존에 집중한 방식입니다. 2개 이상의 하드 디스크가 필요합니다.
장점 : 데이터 안정성이 높습니다. 2개 이상의 하드 디스크에 백업된 것과 같은 효과입니다. (결함 허용)
단점 : 공간효율성이 50%입니다. (실제 데이터 용량의 2배를 차지하기 때문)
RAID5
RAID2, RAID3, RAID4 모두 있습니다.
하지만 RAID5가 2, 3, 4의 부족한 점을 보완한 것이기에 RAID5만 소개하겠습니다.
RAID5는 parity를 사용합니다. (parity에 대한 설명은 아래로 ↓)
데이터를 분산하여 저장하며 parity정보도 분산하여 데이터 보존성을 높였습니다.
3개 이상의 하드 디스크가 필요합니다. parity정보를 1개 사용합니다.
장점 : RAID0 다음으로 성능이 좋습니다, 하드 디스크 1개에 문제가 생겨도 복구가 가능합니다. (일부 결함 허용)
단점 : 2개 이상의 하드 디스크가 동시에 고장나면 데이터를 복구할 수 없습니다.
+ parity란?
parity란 하나의 정보가 유실되어도 그 정보를 알아낼 수 있도록 하는 것입니다.
무슨 말인지 감이 안 오실겁니다. 아래의 그림으로 설명해보겠습니다.
주황색으로 표시된 부분이 parity정보입니다. 여러 개의 디스크에 분산되어 있는 걸 보실 수 있습니다.
그림에 색이 다른 4개의 사각형이 보이시나요? 이 사각형 안에 든 수를 더했을 때 짝수가 되어야합니다.
예를 들어 1번째 민트색 사각형에는 순서대로 0, 1, 0이 들어있습니다. 모두 더하면 1입니다.
1은 홀수이기 때문에 빈 parity정보는 1이란 걸 알 수 있습니다.
2번째 초록색 사각형에는 순서대로 1, 1, 1이 들어있습니다. 모두 더하면 3입니다.
3은 홀수이기 때문에 빈 parity정보는 1이란 걸 알 수 있습니다.
3번째 분홍색 사각형에는 순서대로 0, 0, 0이 들어있습니다. 모두 더하면 0입니다.
0은 짝수이기 때문에 빈 parity정보는 0이란 걸 알 수 있습니다.
4번째 검정색 사각형에는 순서대로 0, 1, 0이 들어있습니다. 모두 더하면 1입니다.
1은 홀수이기 때문에 빈 parity정보는 1이란 걸 알 수 있습니다.
아래 사진은 parity정보가 채워진 RAID5의 예시 사진입니다.