Erasure code

 

 

 

스토리지 데이터 보호 방식은 크게 스냅샷(Snapshot), 클론(Clone), **복제(Replication)**로 나뉩니다. 각 방식은 데이터의 복사 및 복구 시점에 따라 용도와 특성이 다릅니다.

1. 스냅샷 (Snapshot) 📸

스냅샷은 특정 시점의 데이터 상태를 기록하는 방식입니다. 원본 데이터는 변경되지 않으며, 스냅샷 생성 이후 변경된 데이터만 별도로 저장합니다.

  • 동작 방식: 스냅샷은 데이터 자체를 통째로 복사하는 것이 아니라, 메타데이터(metadata) 또는 **포인터(pointer)**를 기록합니다.
    • CoW(Copy-on-Write): 원본 데이터 블록에 변경이 발생하면, 변경 전의 원본 블록을 다른 공간에 복사한 뒤 변경 사항을 기록합니다.
    • RoW(Redirect-on-Write): 변경된 데이터를 처음부터 다른 공간에 기록하고, 원본 데이터의 포인터만 변경합니다.
  • 특징:
    • 공간 효율적: 변경된 데이터만 저장하므로 저장 공간을 적게 사용합니다.
    • 즉시 생성: 생성 시간이 매우 짧아 실시간 백업에 가깝습니다.
    • 주요 용도: 짧은 주기의 백업, 테스트 및 개발 환경에서 특정 시점으로의 빠른 복구에 적합합니다.

<br>

2. 클론 (Clone) 👯

클론은 스냅샷을 기반으로 원본과 동일한 물리적 데이터 복사본을 생성하는 방식입니다. 클론은 원본과 완전히 독립적이며, 클론에 대한 변경은 원본에 영향을 주지 않습니다.

  • 동작 방식: 스냅샷 생성 후, 스냅샷이 참조하는 데이터 블록들을 실제 물리적 공간에 복사하여 새로운 볼륨을 만듭니다.
  • 특징:
    • 독립성: 원본 데이터와 완전히 분리된 상태로, 클론 볼륨은 독자적으로 사용될 수 있습니다.
    • 초기 공간 소모: 클론 생성 시 원본 데이터의 모든 블록을 복사하므로 상당한 저장 공간이 필요합니다.
  • 주요 용도: 개발/테스트 환경 구축, 데이터 마이그레이션, 오프라인 데이터 분석 등.

<br>

3. 복제 (Replication) 🔄

복제는 네트워크를 통해 한 스토리지의 데이터를 다른 스토리지로 복사하여 동기화하는 방식입니다.

  • 동작 방식:
    • 동기식(Synchronous): 원본에 쓰기 작업이 완료됨과 동시에 복제본에도 데이터가 기록됩니다. 데이터 무결성이 매우 높지만, 네트워크 지연에 민감하여 원거리 복제에 부적합합니다.
    • 비동기식(Asynchronous): 원본에 쓰기 작업이 완료되면 즉시 응답을 보낸 후, 일정 시간 뒤에 복제본에 데이터를 전송합니다. 장거리 복제가 가능하지만, 데이터 손실의 위험이 있습니다.
  • 특징:
    • 고가용성: 재해 발생 시 복제본을 활용해 신속하게 서비스를 복구할 수 있습니다.
    • 거리 제약: 동기식 복제는 거리가 짧아야 하지만, 비동기식은 거리 제약이 적습니다.
  • 주요 용도: 재해 복구(Disaster Recovery), 원격지 백업, 비즈니스 연속성 확보.

 


Erasure Code (소거 부호)

Erasure Code는 데이터를 여러 조각으로 나누고, 추가적인 패리티 조각을 생성하여 저장하는 데이터 보호 기술입니다. 이 기술은 RAID와 유사하지만, 더 높은 효율성과 확장성을 제공하여 대규모 분산 스토리지 시스템에서 널리 사용됩니다.

작동 방식

Erasure Code의 핵심은 k + m 방식입니다.

  • k는 원본 데이터 조각의 개수입니다.
  • m은 복구를 위한 패리티(Parity) 조각의 개수입니다.

데이터가 손실되었을 때, m개의 패리티 조각을 포함한 총 k개의 조각만 있으면 원본 데이터를 복구할 수 있습니다. 예를 들어, EC(4, 2) 구성은 원본 데이터 조각 4개와 패리티 조각 2개를 생성하여 총 6개의 조각을 저장합니다. 이 중 2개의 조각까지 손실되어도 나머지 4개의 조각만으로 전체 데이터를 복구할 수 있습니다.


RAID와 비교

특징 Erasure Code RAID 5/6
저장 효율 매우 높음<br>(예: EC(10, 2)는 20% 오버헤드) 상대적으로 낮음<br>(RAID 5는 1개, RAID 6는 2개 디스크 용량 사용)
복구 성능 상대적으로 느림<br>복구 시 복잡한 연산 필요 빠름<br>XOR 연산으로 단순 복구
확장성 매우 유연함<br>새로운 노드나 디스크를 쉽게 추가 가능 제한적<br>새로운 디스크를 추가하려면 전체를 재구성해야 함
주요 사용처 클라우드 스토리지, 빅데이터 시스템 온프레미스 서버, 소규모 SAN/NAS
Sheets로 내보내기

장단점 요약

  • 장점: 뛰어난 저장 효율성 덕분에 대규모 스토리지 환경에서 디스크 비용을 절감할 수 있습니다. 데이터 손실에 대한 내결함성이 높아 여러 개의 노드나 디스크 장애에도 데이터를 안전하게 보호할 수 있습니다.
  • 단점: 복잡한 연산으로 인해 데이터 복구 및 재구축 시간이 상대적으로 오래 걸립니다. 소규모 환경에서는 RAID에 비해 복잡하고 비효율적일 수 있습니다.

 


다음  리눅스 환경에서 **데이터 복제(Replication)** **소거 코드(Erasure Code)** 대한 설명으로 가장 적절하지 않은 것은 무엇일까요?

A.데이터 복제는 데이터의 동일한 복사본을 여러 곳에 저장하여  곳의 데이터 손실 시에도 복구가 가능하게 하는 기술입니다.

B.소거 코드는 데이터를 여러 조각으로 나누고, 추가적인 패리티(Parity) 조각을 생성하여 원본 데이터 조각의 일부가 손실되더라도 복구할  있게 합니다.

C.데이터 복제는 소거 코드에 비해  많은 저장 공간을 필요로 하지만, 복구 과정이  빠르고 간단할  있습니다.

D.소거 코드는 데이터 복제에 비해 일반적으로  높은 수준의 성능을 보장하며, 복구  CPU 자원을  사용합니다.

(D, 소거 코드는 데이터 복구  복잡한 계산(패리티 조각을 이용한 재구성) 필요하므로 데이터 복제에 비해 일반적으로  많은 CPU 자원을 사용하며, 복구 과정이 느릴  있습니다. 이로 인해 소거 코드는 복제에 비해 성능이 낮을  있습니다.)

'기타' 카테고리의 다른 글

24. SAN 스위치(Port /wwn zoning)  (1) 2025.08.29
23. Storage (thin/thick provisioning)  (0) 2025.08.29
21. Storage (솔루션 특징)  (0) 2025.08.28
12. Disk (실시간) 복제  (0) 2025.08.28
11. RAID 구성  (1) 2025.08.28

+ Recent posts