CS

RAID(Redundant Array of Inexpensive Disks)

kyoulho 2024. 10. 1. 12:46

RAID는 여러 개의 하드디스크를 하나의 논리적 디스크처럼 사용하여 데이터 저장의 비용 절감, 신뢰성 향상, 성능 향상의 효과를 내는 기술이다. 원래는 "저렴한 디스크의 중복 배열(Redundant Array of Inexpensive Disks)"을 의미했지만, 오늘날에는 "독립 디스크의 중복 배열(Redundant Array of Independent Disks)"로도 불린다.

RAID를 사용하면 데이터 손실의 위험을 줄이고, 디스크 입출력 성능을 향상시키며, 저장 공간을 효율적으로 활용할 수 있다.


RAID의 구현 방식


하드웨어 RAID

  • 특징: 전용 하드웨어 컨트롤러를 사용하여 RAID를 구현한다.
  • 장점: 더 안정적이고 성능이 우수하다.
  • 단점: 전용 하드웨어를 필요로 하므로 비용이 높다.

소프트웨어 RAID

  • 특징: 운영체제에서 지원하는 RAID 방식으로, 추가 하드웨어 없이 구현할 수 있다.
  • 장점: 저렴한 비용으로 RAID의 이점을 누릴 수 있다.
  • 단점: 시스템 자원을 사용하기 때문에 성능이 하드웨어 RAID보다 떨어질 수 있다.


패리티


패리티(parity)는 데이터 복구를 위한 오류 검출 및 수정 코드로, RAID 시스템에서 데이터의 무결성을 유지하고 디스크 고장 시 손실된 데이터를 복원하는 데 사용된다. 패리티는 디스크에 저장된 데이터 블록들의 비트 값을 이용하여 계산되며, 주로 XOR(배타적 논리합) 연산을 활용한다.

패리티의 동작 원리

  • XOR 연산: XOR은 두 비트가 서로 다를 때 1을, 같을 때 0을 반환하는 논리 연산이다.
  • 패리티 계산 예시:
    • 데이터 블록 A: 1010
    • 데이터 블록 B: 1100
    • 패리티 블록 P = A XOR B = 0110
  • 데이터 복구:
    • 만약 데이터 블록 A가 손실되었다면, 패리티 블록 P와 데이터 블록 B를 이용하여 A를 복구할 수 있다.
    • 복구 과정: A = P XOR B = 0110 XOR 1100 = 1010

RAID에서의 패리티 활용

  • RAID 5: 패리티 정보를 각 디스크에 분산하여 저장한다. 하나의 디스크가 고장 나도 패리티와 나머지 데이터를 이용해 손실된 데이터를 복구할 수 있다.
  • RAID 6: 두 개의 독립적인 패리티 블록을 사용하여 두 개의 디스크가 동시에 고장 나도 데이터를 복구할 수 있다.


RAID 레벨


단순 볼륨

  • 특징: 하나의 디스크를 하나의 볼륨으로 사용한다.
  • 장점: 설정과 관리가 간단하다.
  • 단점: 데이터 보호나 성능 향상의 이점이 없다.

Linear RAID

  • 특징: 최소 2개의 디스크가 필요하며, 여러 디스크를 하나의 볼륨으로 사용한다.
  • 동작 방식: 앞 디스크부터 차례로 데이터를 저장한다.
  • 장점: 설정이 간단하고 100%의 공간 효율성을 가진다.
  • 단점: 한 디스크가 고장 나면 전체 데이터에 접근할 수 없게 되어 신뢰성이 낮다.

RAID 0 (스트라이핑)

  • 특징: 최소 2개의 디스크가 필요하며, 데이터를 디스크에 스트라이핑(striping)하여 저장한다.
  • 동작 방식: 데이터를 블록 단위로 나누어 여러 디스크에 분산 저장한다.
  • 장점: 성능이 매우 빠르다. 100%의 공간 효율성을 가진다.
  • 단점: 신뢰성이 낮다. 하나의 디스크라도 고장 나면 모든 데이터를 사용할 수 없게 된다.
  • 적용 분야: 빠른 성능이 요구되지만 데이터 손실에 대한 위험을 감수할 수 있는 경우에 적합하다.

RAID 1 (미러링)

  • 특징: 최소 2개의 디스크가 필요하며, 데이터를 미러링(mirroring)하여 저장한다.
  • 동작 방식: 동일한 데이터를 두 개의 디스크에 동시에 저장한다.
  • 장점: 하나의 디스크가 고장 나도 데이터가 유지되어 신뢰성이 높다.
  • 단점: 저장 공간의 효율성이 50%로 떨어진다. 비용이 두 배로 증가한다.
  • 적용 분야: 데이터의 안전성이 최우선인 환경에 적절하다.

RAID 5 (스트라이핑 + 패리티)

  • 특징: 최소 3개의 디스크가 필요하며, 데이터 스트라이핑과 패리티를 결합한 방식이다.
  • 동작 방식:
    • 데이터를 블록 단위로 분산 저장한다.
    • 패리티 블록은 각 디스크에 분산되어 저장되며, 특정 디스크에 집중되지 않는다.
  • 장점:
    • 공간 효율성이 높다: 디스크의 개수에서 1을 뺀 만큼의 저장 공간을 활용한다.
    • 하나의 디스크가 고장 나도 패리티를 이용하여 데이터를 복구할 수 있어 결함 허용이 가능하다.
  • 단점:
    • 두 개 이상의 디스크가 동시에 고장 나면 데이터를 복구할 수 없다.
    • 패리티 계산으로 인해 쓰기 성능이 다소 저하될 수 있다.
  • 적용 분야: 신뢰성과 공간 효율성을 모두 고려해야 하는 서버나 스토리지 시스템에 적합하다.

RAID 6 (이중 패리티)

  • 특징: 최소 4개의 디스크가 필요하며, RAID 5에 추가 패리티 블록을 더한 방식이다.
  • 동작 방식:
    • 데이터를 블록 단위로 분산 저장한다.
    • 두 개의 독립적인 패리티 정보를 사용하여 이중 오류 복구가 가능하다.
  • 장점:
    • 높은 신뢰성을 제공한다: 두 개의 디스크가 동시에 고장 나도 데이터를 복구할 수 있다.
  • 단점:
    • 공간 효율성이 RAID 5보다 약간 떨어진다.
    • 추가 패리티 계산으로 인해 쓰기 성능이 더 낮아질 수 있다.
  • 적용 분야: 매우 높은 데이터 안전성이 필요한 기업 환경에 적합하다.
728x90

'CS' 카테고리의 다른 글

[Linux] 파일 시스템(/etc/fstab)  (0) 2024.08.26
[Linux] 호스트네임 관리와 네트워크 설정  (0) 2024.08.26
[Linux] 스왑 공간  (0) 2024.08.26
[CS] Blocking I/O & Non-Blocking I/O  (0) 2024.08.12
[CS] 스레드의 종류  (0) 2024.08.12