RAID(Redundant Array of Independent Disk)

여러개의 Disk를 묶어 하나의 디스크 처럼 사용하는 기술이다.

(뭔가 가상 메모리 느낌이 난다. 부족한 디스크를 다른 디스크와 결합하여 하나의 디스크로 사용한다는 점이..)

 

RAID를 사용했을 때 효과는 다음과 같다.

  • 데이터 무결성 유지: 추후에 언급될 RAID는 여러 레벨이 존재하고 RAID 1, RAID 5, RAID 6, RAID 10은 데이터 보호를 제공한다. 하나 이상의 디스크가 고장 나더라도 데이터를 복구할 수 있는 기능을 갖추었다.
  • 고가용성: RAID 배열에서 디스크가 실패하더라도 시스템은 계속 작동할 수 있다. 즉, 서비스 중단 최소화
  • 병렬작업: 여러 디스크에 데이터를 분산하여 동시에 읽고 쓸 수 있어 성능이 향상된다.
  • 스토리지 용량 증가: 여러 디스크를 결합했기 때문에 하나의 큰 논리적 드라이브로 사용할 수 있다.

이 외에도 여러가지 메리트가 존재하지만, 아직 이해를 못했기 때문에 여기까지 적었다.

 

앞서 말한 RAID는 여러 레벨이 존재하는데 이는 구성방식에 따라 다르다.

 

RAID 구성 방식

 

RAID 0

RAID 0

 

Striping 방식이라고 불리며, RAID 0을 구성하기 위해서는 최소 2개의 디스크가 필요하고 RAID를 구성하는 모든 디스크에 데이터를 분산 저장한다.

 

전체 디스크를 모두 동시에 사용하기 때문에 성능은 단일 디스크의 N배 이며 용량 역시 N배이다.

하지만 하나의 디스크라도 문제가 발생할 경우 전체 RAID가 깨지는 일이 발생

(Disk 1에 문제가 생길경우 A2, A4, A6, A8 또한 문제생겨 온전한 A를 얻지 못함, SPOF 문제랑 비슷하네..)

 

RAID 1

RAID 1

 

Mirroring 방식이라고 불리며, RAID 1을 구성하기 위해서는 최소 2개의 디스크가 필요로 한다.

모든 디스크에 데이터를 복제하여 기록한다. 즉, 동일한 데이터를 N개로 복제하여 각 디스크로 저장하는 방식이다.

(데이터가 손상되더라도 복구하는데는 복사본이 존재하니까 크게 문제가 없음을 생각할 수 있다.)

 

문제는 단일 디스크 용량과 동일하고, 안정성이 높음에도 불구하고 비용문제로 거의 사용하지 않는다.

 

 

RAID 4

RAID 4

 

Block 단위로 Striping을 하고 Error collection을 위해 패리티 디스크를 1개 사용한다.

용량 및 성능이 단일 디스크 대비 N-1배 증가하며 최소 3개의 디스크로 구성이 가능하다.

에러 검출과 복구를 패리티 비트 계산을 통해 이루어진다. (나중에 찾아봐야징)

1개의 디스크가 에러시 복구가 가능하고, 2개 이상의 디스크 에러시에는 GG쳐야한다.

패리티 비트가 저장된 Disk 역시 고장날 경우, 복구할 수 있는 정보가 없으므로 GG쳐야한다.(SPOF)

 

RAID 5

RAID 5

 

RAID 4 와 비슷하지만 다른점은 패리티 비트를 고정된 디스크에 저장하는 것이 아닌 여러 Disk에 분산 저장한다.

패리티 비트 디스크가 고장나는 경우를 생각하여 고안된 구조이다. 

하지만 2개이상 디스크가 고장날 경우 복구가 어려운 것은 여전하다.

 

RAID 6 

RAID 6

 

RAID 5에서 성능과 용량을 좀 더 줄이고 안정성을 좀 더 높인 방식이다.

Block 단위로 Striping하고 Error Collection을 위해 패리티 비트 블록 2개를 디스크에 분산 저장한다.

2개의 디스크가 고장나더라도 복구할 수 있는 기능을 제공한다.

아, 물론 3개이상 고장나면 GG쳐야한다. (ㅋㅋ)

 

Nested RAID(RAID 1+0, RAID 0+1)

 

Nested RAID는 Standard RAID를 여러개 중첩하여 사용하는 방식이다.

예를 들어 2개의 RAID 0 RAID 1으로 묶는 방식을 RAID 0+1, 반대를 1+1이라고 한다.

 

RAID 0+1

RAID 0+1

 

Mirroring 전에 Striping을 진행하여 Disk가 불량이 나면 그룹핑된 (RAID 0) 데이터 전체를 복구한다.

 

RAID 1+0 

RAID 1+0

 

Mirroring 후에 Striping을 진행하므로 미러링으로 묶인 하드를 통하여 손실된 데이터만을 복원할 수 있다.

 

RAID 구조를 살펴봤는데 Mirroring과 Striping 어느것을 선택하지만 메리트가 존재하고 디메리트가 존재하는 Trade-Off 구조인듯.

둘다 적용하려면 좋겠지만 돈이 너무 많이들기 때문에 시스템 환경을 생각해서 손해가 최소인 방법을 결정해야 할 것 같다.

 

결론: 돈이 체고시다

 

Reference

https://velog.io/@zxcvbnm5288/RAID-%EB%9E%80-RAID-%EA%B5%AC%EC%84%B1%EB%B0%A9%EC%8B%9DRAID-0-1-4-5-6-10-01