본문 바로가기
컴퓨터 과학/정보보안

[정보보안] RAID와 관련 개념 (스트라이핑 & 패리티)

by webcodur 2024. 3. 19.
728x90
반응형

목차

     

    1. RAID ?

     

    RAID(Redundant Array of Independent Disks, 독립 디스크의 중복 배열)는 여러 개의 하드 드라이브를 조합하여 단일 논리적 유닛으로 구성하고, 데이터를 여러 디스크에 분산 저장함으로써 데이터 보호, 성능 향상, 혹은 둘 다를 달성하기 위한 기술이다. RAID는 데이터를 여러 드라이브에 분산하여 저장함으로써 하드웨어 오류로 인한 데이터 손실 위험을 줄이고, 여러 드라이브에서 동시에 데이터를 읽거나 쓰기를 통해 시스템의 성능을 개선할 수 있다. RAID는 다양한 "레벨"로 구성되며, 각각은 데이터를 저장하는 방식이 다르다. 여기 일반적인 RAID 레벨에 대한 간략한 설명이다

     

     

     

    2. RAID 단계

    RAID 0

    데이터를 여러 디스크에 스트라이핑하여 성능을 극대화한다. 하지만 어느 한 디스크라도 실패하면 모든 데이터를 잃을 수 있다는 단점이 있다.

    • 목적: 성능 향상
    • 특징: 스트라이핑(striping)을 사용해 데이터를 여러 디스크에 분산시킨다.
    • 장점: 높은 읽기/쓰기 속도
    • 단점: 하나의 드라이브라도 실패하면 모든 데이터가 손실된다.

    RAID 1

    데이터 미러링을 제공한다. 즉, 데이터가 두 개 이상의 디스크에 동일하게 복사된다. 이로 인해 하나의 디스크가 실패해도 데이터는 안전하다.

    • 목적: 데이터 미러링을 통한 내구성 강화
    • 특징: 모든 데이터를 두 개 이상의 드라이브에 복사한다.
    • 장점: 하나의 드라이브가 실패해도 데이터 손실 없음
    • 단점: 드라이브 용량이 반으로 줄어든다.

    RAID 5

    스트라이핑과 패리티(오류 검출 및 복구 정보)를 사용해 데이터와 패리티 정보를 디스크 세트 전체에 분산시킨다. 이 방식은 하나의 디스크가 실패해도 데이터를 복구할 수 있도록 한다.

    • 목적: 성능과 내구성 균형
    • 특징: 스트라이핑과 함께 패리티(오류 검출 및 수정 정보)를 사용한다. 최소 3개의 드라이브가 필요하다.
    • 장점: 한 드라이브가 실패해도 데이터 복구 가능
    • 단점: 쓰기 작업 시 패리티 계산으로 인한 성능 저하

    RAID 6

    RAID 5와 유사하지만, 두 개의 독립적인 패리티 정보를 사용하여 두 개의 디스크가 동시에 실패해도 데이터를 보호할 수 있다.

    • 목적: 높은 내구성
    • 특징: RAID 5와 유사하지만 두 개의 패리티 블록을 사용한다. 최소 4개의 드라이브가 필요하다.
    • 장점: 두 개의 드라이브가 동시에 실패해도 데이터 복구 가능
    • 단점: RAID 5보다 더 높은 용량 손실

    RAID 10 (1+0)

    RAID 1의 미러링과 RAID 0의 스트라이핑을 결합하여, 데이터의 안정성과 성능 향상을 동시에 추구한다.

    • 목적: 성능과 내구성의 최적화
    • 특징: RAID 1의 미러링과 RAID 0의 스트라이핑을 결합한다. 최소 4개의 드라이브가 필요하다.
    • 장점: 높은 읽기/쓰기 성능과 우수한 내구성
    • 단점: 전체 저장 용량의 50%만 사용 가능

    RAID 레벨 선택

    RAID 레벨을 선택할 때는 성능, 데이터 보호 수준, 비용, 사용 가능한 드라이브 수 등 여러 요소를 고려해야 한다. 일부 시스템은 두 가지 이상의 RAID 레벨을 결합하여 사용하기도 한다 (예: RAID 01, RAID 50 등).

     

     

     

    3. 관련 용어

    3-1. 스트라이핑

    • 데이터를 여러 디스크에 분산 저장하는 방식
    • 성능 향상과 데이터 보호 기능(일부 RAID 레벨) 제공을 목적으로 한다

    작동 원리

    스트라이핑에서는 데이터를 일정 크기의 블록(스트라이프)으로 나누고, 이 블록들을 순서대로 여러 디스크에 분산하여 저장한다. 예를 들어, 4개의 디스크가 있는 RAID 0 배열에서는 첫 번째 블록이 첫 번째 디스크에, 두 번째 블록이 두 번째 디스크에, 세 번째 블록이 세 번째 디스크에, 그리고 네 번째 블록이 네 번째 디스크에 저장된다. 다음 블록은 다시 첫 번째 디스크에서 시작하여 이 과정이 반복된다.

    장점

    • 성능 향상: 데이터가 여러 디스크에 분산되어 있기 때문에, 여러 디스크가 동시에 데이터를 읽거나 쓸 수 있어 입출력 성능이 크게 향상된다.
    • 대용량 데이터 처리: 큰 파일이나 데이터베이스가 여러 디스크에 분산 저장되므로, 한계가 있는 단일 디스크보다 더 큰 데이터를 효율적으로 처리할 수 있다.

    단점

    • 데이터 보호 부재(특히 RAID 0): 스트라이핑만 사용하는 RAID 0의 경우, 어느 하나의 디스크라도 실패하면, 그 디스크에 저장되어 있던 데이터의 일부가 손실되므로 전체 데이터 세트를 복구할 수 없게 된다.
    • 복잡성 증가: 데이터가 여러 디스크에 분산되어 있기 때문에, 데이터 관리와 오류 시 복구 절차가 더 복잡해질 수 있다.

    스트라이핑은 데이터를 빠르게 처리하고 대용량의 데이터를 효율적으로 관리할 수 있게 해주지만, 데이터 보호를 위해서는 추가적인 RAID 레벨이나 백업 솔루션과 함께 사용되어야 한다.

    스트라이프의 구성

    • 스트라이프 크기(Stripe Size): 스트라이프 크기는 단일 스트라이프에 저장되는 데이터의 양을 나타낸다. 예를 들어, 스트라이프 크기가 64KB라면, 64KB의 데이터가 각 디스크에 순차적으로 분산 저장된다.
    • 스트라이프 너비(Stripe Width): 스트라이프 너비는 RAID 어레이를 구성하는 디스크의 수를 의미한다. 예를 들어, 4개의 디스크로 구성된 RAID에서는 스트라이프 너비가 4가 된다.

    스트라이프의 작동 방식

    스트라이핑 방식에서 데이터는 작은 조각(스트라이프 단위)으로 나뉘어 여러 디스크에 순차적으로 저장된다. 이러한 방식은 디스크가 동시에 다른 스트라이프에 대해 읽기/쓰기 작업을 수행할 수 있게 하여, I/O 작업을 병렬로 처리할 수 있게 한다. 이는 특히 대용량 파일이나 고성능을 요구하는 애플리케이션에서 성능 향상을 가져온다.

    사용되는 RAID 레벨

    • RAID 0: 순수한 스트라이핑 방식을 사용하며, 최대의 성능 향상을 제공하지만, 디스크 중 하나라도 실패하면 모든 데이터를 잃을 위험이 있다.
    • RAID 5 및 RAID 6: 스트라이핑에 패리티(오류 정정 정보)를 추가하여, 하나 또는 두 개의 디스크가 실패해도 데이터를 복구할 수 있는 안정성을 제공한다.
    • RAID 10 (1+0): 미러링과 스트라이핑을 결합하여, 데이터의 안정성과 성능 향상을 동시에 제공한다.

    스트라이프는 RAID 시스템에서 데이터를 효율적으로 저장하고 처리하는 데 필수적인 개념이며, RAID 레벨에 따라 성능과 안정성 사이에서 다양한 균형을 제공한다.

     

     

     

    3-2. 패리티(Parity)

    패리티(Parity)는 컴퓨터 과학과 통신 분야에서 데이터의 정확성을 확인하기 위해 사용되는 기법 중 하나이다. 이는 데이터 비트 내에서 1의 개수가 짝수인지 홀수인지를 나타내는 추가 비트를 통해 이루어진다.

     

    전체 비트 수는 데이터를 전송하거나 저장할 때 정해진 통신 프로토콜이나 데이터 포맷에 의해 결정된다. 데이터의 전체 비트 수는 사용되는 시스템이나 애플리케이션의 요구 사항에 따라 다를 수 있으며, 이에 따라 데이터 비트와 패리티 비트를 포함한 전체 구조가 정해진다.

     

    패리티 비트는 데이터 전송이나 저장 과정에서의 단일 비트 오류를 감지하는 데 유용하다. 패리티는 주로 두 가지 종류로 나뉘는데, 짝수 패리티와 홀수 패리티가 그것이다.

    패리티의 종류

    • 짝수 패리티(Even Parity):
      • 데이터 비트 중 1의 개수가 짝수가 되도록 패리티 비트를 설정한다.
      • 데이터 비트가 1011이라면, 1의 개수(3개)가 홀수이므로
      • 짝수 패리티를 만족시키기 위해 패리티 비트를 1로 설정한다.
    • 홀수 패리티(Odd Parity):
      • 데이터 비트 중 1의 개수가 홀수가 되도록 패리티 비트를 설정한다.
      • 데이터 비트가 1011이라면, 1의 개수가 이미 홀수이므로
      • 홀수 패리티를 만족시키기 위해 패리티 비트를 0으로 설정한다.

    패리티의 사용

    패리티는 주로 두 가지 상황에서 사용된다:

    • 오류 감지: 데이터 비트와 패리티 비트를 함께 검사하여 오류를 감지한다. 데이터 전송이나 저장 과정에서 비트 하나가 변경되면, 패리티 검사시 불일치가 발생하여 오류를 감지할 수 있다. 단, 짝수 개의 비트 오류는 감지할 수 없다.
    • 오류 복구(일부 RAID 레벨에서 사용): RAID 5와 RAID 6 같은 시스템에서는 패리티 정보를 사용하여 한 개(또는 두 개)의 디스크가 실패했을 때 원본 데이터를 복구할 수 있다. 이 경우, 패리티 정보는 여러 디스크에 걸쳐 저장되며, 어느 하나의 디스크가 실패해도 나머지 디스크의 데이터와 패리티 정보를 결합하여 손실된 데이터를 복구한다.

    패리티의 한계

    1. 짝수 개의 비트 오류 감지 불가: 패리티 비트는 단일 비트 오류는 잘 감지할 수 있지만, 짝수 개의 비트 오류는 감지할 수 없다. (짝수 패리티와 홀수 패리티를 말하는 것이 아님 주의) 이는 패리티 비트가 전체 데이터 내에서 1의 개수가 짝수인지 홀수인지만을 확인하기 때문이다. 따라서 두 개 이상의 비트가 오류를 일으킬 경우, 전체 1의 개수가 여전히 원래의 패리티 조건(짝수 또는 홀수)을 만족할 수 있어 오류를 감지하지 못한다.
    2. 오류 수정 능력 부재: 패리티 비트는 오류를 감지할 수는 있지만, 어떤 비트에서 오류가 발생했는지를 특정할 수 없으므로 오류를 수정할 수는 없다. 오류의 정정은 더 복잡한 오류 정정 코드(ECC)를 통해 가능하다.
    3. 다중 비트 오류에 취약: 단일 비트 오류에 대해서는 유효하지만, 다중 비트 오류(특히 짝수 개의 비트 오류)에 대해서는 감지 능력이 없기 때문에, 높은 오류 발생률을 가진 환경에서는 제한적인 보호만을 제공한다.
    4. 데이터 오버헤드: 패리티 비트를 추가함으로써 전송하거나 저장해야 하는 데이터의 양이 증가한다. 비록 패리티 비트 자체가 큰 오버헤드를 추가하지는 않지만, 매우 큰 데이터를 다루는 시스템에서는 이런 추가 비트가 부담이 될 수 있다.

    RAID에서의 패리티

    RAID에서 패리티는 주로 데이터의 안정성을 높이기 위해 사용된다. 스트라이핑으로 데이터를 분산 저장할 때, 패리티 블록을 추가함으로써 디스크 중 하나가 실패해도 전체 데이터 세트를 복구할 수 있는 능력을 제공한다. 이는 데이터 보호와 시스템의 가용성을 크게 향상시킨다.

     

    반응형