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