데이터베이스/데이터베이스

[데이터베이스] RAID 정리

benjykim 2021. 5. 14. 08:00
반응형

RAID

RAID란?

RAID(Redundant Array of Independent Disk 또는 Redundant Array of Inexpensive Disk) : 여러 개의 디스크를 묶어 하나의 디스크처럼 사용하는 기술

RAID 사용 시 기대 효과

  • 대용량의 단일 볼륨을 사용하는 효과
  • 디스크 I/O 병렬화로 인한 성능 향상(RAID 0, 5, 6 등)
  • 데이터 복제로 인한 안정성 향상(RAID 1 등)

RAID는 컴퓨터를 구성하는 여러 부품 중 기계적인 특성 때문에 상대적으로 속도가 많이 느린 하드디스크를 보완하기 위해 만든 기술이다.

RAID를 구성하는 디스크의 개수가 같아도 구성 방식에 따라 성능 및 용량이 바뀐다. 이러한 구성 방식을 RAID Level 이라고 부른다. 각각의 RAID Level에 대해 알아보자.


Standard RAID Level

  • RAID를 구성하는 디스크의 종류와 크기는 같다고 가정(실제로도 같은 크기, 종류의 디스크를 사용하는 것을 권장함)
  • 성능의 경우 RAID 컨트롤러의 연산으로 인한 성능 저하는 제외하고, Sequential I/O 시만 가정
  • RAID를 구성하는 디스크의 개수는 N으로 표현

    1) RAID 0

  • Striping (스트라이핑)이라고도 부르는 방식
  • RAID 0을 구성하기 위해서는 최소 2개의 디스크가 필요(min(N) == 2)
  • RAID를 구성하는 모든 디스크에 데이터를 분할하여 저장
  • 전체 디스크를 모두 동시에 사용하기 때문에 성능은 단일 디스크 성능의 N배. 마찬가지로 용량 역시 단일 디스크 용량의 N배
  • 하지만 하나의 디스크라도 문제가 발생할 경우 전체 RAID가 깨짐. 즉, 안정성은 1/N으로 줄어듦

정리해보면, RAID 0은 성능 및 용량은 최대한으로 사용하는 대신 안정성은 좋지 않다. (실제 서버 환경에서는 거의 사용하지 않음)

2) RAID 1

  • Mirroring(미러링) 이라고도 부르는 방식
  • RAID 1을 구성하기 위해서는 최소 2개의 디스크 필요(min(N) == 2)
  • RAID 컨트롤러에 따라서 2개의 디스크로만 구성 가능할 수도, 혹은 그 이상의 개수를 사용하여 구성할 수도 있음
  • RAID 1은 모든 디스크에 데이터를 복제하여 기록함. 즉, 동일한 데이터를 N개로 복제하여 각 디스크에 저장함
    • 따라서, 여러 개의 디스크로 RAID를 구성해도, 실제 사용 가능한 용량은 단일 디스크의 용량과 동일
    • Write 시, 데이터를 복제하여 기록하기 때문에 RAID 컨트롤러가 복제, 연산하는 시간을 감안하면 단일 디스크의 Write 성능보다 낮게 나올 수 있음
    • 하지만 Read 시엔 전체 디스크에서 읽어오기 때문에 단일 디스크의 N배의 성능이 나옴
  • RAID 1의 최대 강점은 안정성이 높은 것. N-1개의 디스크가 고장나도 데이터 사용 가능
  • 안정성이 중요한 시스템에서 사용할 수 있겠으나, 비용 문제로 인해 거의 사용하지 않음

    3) RAID 2

  • 현재는 사용하지 않는 RAID Level
  • Bit 단위로 striping을 하고, error correction을 위해 Hamming code를 사용함
    • m+1 개의 데이터 디스크와 m 개의 패리티 디스크로 구성 (N == (m+1) + m)
    • 최소 3개의 디스크로 구성 가능
  • 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)

    4) RAID 3

  • 현재는 사용하지 않는 RAID Level
  • Byte 단위로 스트라이핑을하고, error correction을 위해 패리티 디스크를 1개 사용함
  • 용량 및 성능이 단일 디스크 대비 (N-1)배 증가함
  • Byte 단위로 스트라이핑하기 때문에 너무 작게 쪼개져 현재는 사용하지 않는다고 함
  • 최소 3개의 디스크로 구성 가능
  • 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)

    5) RAID 4

  • 현재는 거의 사용하지 않는 RAID Level
  • Block 단위로 striping을 하고, error correction을 위해패리티 디스크 1개 사용
  • 용량 및 성능이 단일 디스크 대비 (N-1)배 증가
  • 최소 3개의 디스크로 구성 가능
  • 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)
  • Block 단위로 striping 하는 것은 RAID 5, 6과 동일하지만, 패리티 코드를 동일한 디스크에 저장하기 때문에, 패리티 디스크의 사용량이 높아 해당 디스크의 수명이 줄어듦
  • RAID 4의 단점을 개선시킨 것이 RAID 5

6) RAID 5

  • 제일 사용 빈도가 높은 RAID Level
  • Block 단위로 striping을 하고, error correction을 위해 패리티를 1개의 디스크에 저장함.
    • 패리티 저장 디스크를 고정하지 않고, 매 번 다른 디스크에 저장
    • 용량 및 성능이 단일 디스크 대비 (N-1)배 증가
    • 최소 3개의 디스크로 구성 가능
    • 1개의 디스크 에러 시 복구 가능(2개 이상의 디스크 에러 시 복구 불가능)

RAID 0에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 볼 수 있다.

7) RAID 6

  • RAID 5에서 성능, 용량을 좀 더 줄이고, 안정성을 좀 더 높인 RAID Level
  • Block 단위로 striping을 하고, error correction을 위해 패리티를 2개의 디스크에 저장함
    • 패리티 저장 디스크를 고정하지 않고, 매 번 다른 디스크에 저장
  • 용량 및 성능이 단일 디스크 대비 (N-2)배 증가
  • 최소 4개의 디스크로 구성 가능
  • 2개의 디스크 에러 시 복구 가능(3개 이상의 디스크 에러 시 복구 불가능)

RAID 5에서 성능, 용량을 조금 줄이는 대신 안정성을 높인 RAID Level이라 보면 되고, 조금 더 안정성을 높여야 하는 서버 환경에서 주로 사용함


반응형