핵심 인사이트 (3줄 요약)
- 앞 장의 HDFS(하둡)나 Ceph 등은 고장을 대비해 데이터를 무조건 3배(3x Replication)로 뻥튀기하여 저장했다. 이는 10PB를 저장하려면 물리 디스크를 30PB나 사야 하는 **엄청난 비용 낭비(Overhead 200%)**를 유발한다.
- **Erasure Coding (삭제 코딩)**은 데이터를 $K$개의 조각으로 나누고, 수학 방정식을 돌려 $M$개의 복구용 조각(패리티)을 생성하는 방식이다. (예: 4+2 방식이면, 조각 6개 중 아무거나 4개만 살아있으면 원본 100% 복구 가능)
- 이를 쓰면 용량 낭비를 200%에서 50% 수준으로 획기적으로 줄일 수 있지만, 복구용 조각을 만들 때 드는 행렬 곱셈(갈루아 체 연산)이 CPU를 파괴할 정도로 무거워 **인텔 ISA-L 이나 전용 하드웨어 가속기(Offload)**가 필수적이다.
Ⅰ. 3중 복제의 비용 지옥과 대안
디스크 1대가 죽어도 데이터를 살리려면 보통 **RAID 1(미러링)**이나 분산 시스템의 3x 복제를 씁니다.
- 1GB짜리 영상을 저장하면, 1GB짜리 원본 3개가 디스크 3대에 저장됩니다.
- 디스크 구매 비용이 정확히 3배가 듭니다. 아마존 S3 같은 곳에서 수백 엑사바이트(EB)를 다 3배로 복사해두면 아마존은 파산할 것입니다.
이 비용 지옥에서 탈출하기 위해 수학자들의 **리드-솔로몬 알고리즘(Reed-Solomon, Erasure Coding의 일종)**이 도입되었습니다. 옛날 CD나 DVD 기스 났을 때 복구해주던 그 수학 공식의 확장판입니다.
📢 섹션 요약 비유: 문서 1장을 잃어버릴까 봐 똑같은 복사본을 3장 인쇄해서 각기 다른 서랍에 넣는 것(3x 복제)은 너무 종이가 아깝습니다.
Ⅱ. Erasure Coding의 마법: 조각과 공식 (K+M)
Erasure Coding은 보통 K (원본 조각 수) + M (패리티 조각 수) 구조로 표현합니다.
가장 흔한 4+2 (K=4, M=2) 환경을 보겠습니다.
- 분할: 4GB짜리 영화를 1GB짜리 조각 4개(K)로 예쁘게 자릅니다. ($D1, D2, D3, D4$)
- 수학적 인코딩: 이 4개의 데이터를 거대한 행렬 공식(갈루아 유한체 수학)에 넣고 막 비틀어서, 1GB짜리 '복구용 힌트 덩어리(M)' 2개를 만들어냅니다. ($P1, P2$)
- 분산 저장: 총 6개의 조각(1GB $\times$ 6개 = 총 6GB)을 서버 6대에 하나씩 흩뿌립니다.
- 마법의 복구: 이 중 아무 서버나 2대(M)가 불타 없어져서 조각이 날아가도, 살아남은 아무 조각 4개만 긁어모아서 연립방정식을 역으로 풀면 무조건 원본 4GB가 100% 튀어나옵니다!
결과 비교:
- 3x 복제: 4GB 원본 $\rightarrow$ 12GB 저장 (낭비율 200%)
- EC 4+2: 4GB 원본 $\rightarrow$ 6GB 저장 (낭비율 50%) (디스크 비용 1/2로 감소!)
📢 섹션 요약 비유: 문서를 4조각으로 찢은 뒤, 이 4조각을 엮어 만든 '특수 수학 퍼즐' 2조각을 추가로 만듭니다. 이제 이 6조각 중 어떤 것이든 4조각만 내 손에 들어오면, 남은 2조각의 생김새를 수학적으로 완벽하게 유추해 내서 원본 문서를 붙일 수 있는 마법의 퍼즐입니다.
Ⅲ. 치명적 약점: CPU 발열과 하드웨어 가속기 (ISA-L)
왜 이렇게 좋은 걸 처음부터 안 썼을까요? 바로 **복구용 조각(패리티)을 구워내는 수학 연산이 CPU에게는 끔찍한 지옥(Overhead)**이었기 때문입니다. 단순한 더하기(XOR)로 만드는 RAID 5와 달리, EC는 복잡한 행렬 곱셈을 무한히 반복합니다. 클라우드 서버에서 패킷이 들어올 때마다 이걸 소프트웨어로 계산하면 서버가 멈춰버립니다.
해결책 (하드웨어 오프로딩):
- Intel ISA-L (Intelligent Storage Acceleration Library): 인텔은 CPU 안에 박혀있는 거대한 벡터 연산기(AVX-512)를 이용해 이 갈루아 체(Galois Field) 수학 곱셈을 하드웨어 레벨에서 한 방에 끝내버리는 명령어 셋을 추가했습니다. CPU 점유율을 1/10로 줄입니다.
- SmartNIC / DPU: 최신 데이터센터는 아예 CPU에게 이 계산을 시키지 않고, 랜카드(DPU)나 스위치 칩 내부에 Erasure Coding 전용 ASIC 블록을 박아 넣어서, 데이터가 선을 타고 지나가면서 자동으로 쪼개지고 패리티가 구워지도록 하드웨어적으로 떠넘겼습니다(Offload).