RAID?

  • Redundant Array of Independent Disks.
  • 직역하면 독립된 디스크들의 중복된 배열
  • 여러 개의 디스크를 사용해서 하나의 큰 디스크로 씀 + 안정성/성능 확보 하려는 것

RAID 레벨

정보 출처 : https://velog.io/@zxcvbnm5288/RAID-란-RAID-구성방식RAID-0-1-4-5-6-10-01

RAID 0

  • 최소 두 개의 디스크를 사용함
  • 데이터를 N개의 디스크에 분할해서 저장함 (= 스트리핑 기법)
  • 디스크 하나라도 깨지면 전체 RAID가 깨짐…
// 두 개의 디스크로 RAID 0을 구성한 예시
디스크 1 : 1, 3, 5, 7, 9
디스크 2 : 2, 4, 6, 8, 10

RAID 1

  • 마찬가지로 최소 두 개의 디스크를 사용함
  • 데이터를 N개의 디스크에 완전하게 복사해서 저장함 (= 미러링 기법)
  • 디스크 하나 깨져도 괜찮긴 한데, 이렇게 구성하면 너무 비싸서 잘 안씀
// 두 개의 디스크로 RAID 1을 구성한 예시
디스크 1 : 1, 2, 3, 4, 5
디스크 2 : 1, 2, 3, 4, 5

RAID 2

  • 최소 세 개의 디스크가 필요함
  • 데이터 디스크들과 ECC (Error Correcting Code) 정보를 담는 디스크들로 나눠짐
  • 스트리핑 기법을 사용함 (비트 단위)
  • ECC는 해밍 코드 기법을 사용함
  • 디스크 하나 깨져도 패리티 덕분에 복구할 수 있는데, 여러 개 깨지거나 ECC 담긴게 고장나면 복구 안됨
// 네 개의 디스크로 RAID 2를 구성한 예시
디스크 1 : 1, 3, 5, 7, 9
디스크 2 : 2, 4, 6, 8, 10
디스크 3 : ECC1
디스크 4 : ECC2

RAID 3

  • 최소 세 개의 디스크가 필요함
  • 데이터 디스크들과 하나의 패리티 디스크로 나눠짐
  • 스트리핑 기법을 사용함 (블록 단위)
  • 디스크 하나 깨져도 패리티 덕분에 복구할 수 있는데, 여러 개 깨지거나 패리티 디스크 깨지면 복구 안됨
// 세 개의 디스크로 RAID 3을 구성한 예시
디스크 1 : (블록) 1, 3, 5, 7, 9
디스크 2 : (블록) 2, 4, 6, 8, 10
디스크 3 : 패리티들

RAID 4

  • 최소 세 개의 디스크가 필요함
  • 데이터 디스크들과 하나의 패리티 디스크
  • 스트리핑 기법을 사용함 (블록 단위)
  • 패리티도 블록 단위 (RAID 3이랑 다른 점)
  • 디스크 하나 깨져도 패리티 덕분에 복구할 수 있는데, 여러 개 깨지거나 패리티 디스크 깨지면 복구 안됨
// 세 개의 디스크로 RAID 4을 구성한 예시
디스크 1 : (블록) 1, 3, 5, 7, 9
디스크 2 : (블록) 2, 4, 6, 8, 10
디스크 3 : (블록) 패리티들

RAID 5

  • 디스크 개수가 상관 없음 (그래도 두 개는 둬야될 듯?)
  • 스트리핑 기법을 사용함
  • 패리티를 위한 디스크를 따로 사용하지 않고, 분할해서 둠
// 세 개의 디스크로 RAID 5를 구성한 예시
디스크 1 : A1, B1, C 패리티
디스크 2 : A2, B 패리티, C1
디스크 3 : A 패리티,B2, C2

RAID 6

  • 최소 네 개의 디스크가 필요함
  • RAID 5와의 차이점은 패리티가 두 개라는 점 + 패리티를 고정된 디스크에 두지 않는다는 점
  • RAID 5에서 성능을 조금 떨군 대신 안정성을 높힘
// 네 개의 디스크로 RAID 6을 구성한 예시
디스크 1 : A1, B 패리티 1, C1
디스크 2 : A2, B1, C 패리티 1
디스크 3 : A 패리티 1, B 패리티 2, C2
디스크 4 : A 패리티 2, B2, C 패리티 2

실사용

  • 권장되는 RAID 레벨은 6임. 그러나 구축 비용이 너무 비쌈…
  • 자주 쓰이는건 RAID 0과 5임