핵심 인사이트 (3줄 요약)
- 기업의 스토리지(NAS/SAN) 안에는 직원 100명이 똑같은 첨부파일(PDF)을 다운받아 각자 폴더에 저장하거나, 수백 대의 윈도우 가상 머신(VM)이 동일한 C드라이브 OS 파일들을 각자 품고 있는 등 **엄청난 량의 '똑같은(중복된) 데이터'**가 낭비되고 있다.
- 데이터 중복 제거(Deduplication, 디둡) 기술은 데이터가 디스크에 써지기 전(Inline)이나 써진 후(Post-process)에 데이터 덩어리의 해시(SHA 지문)를 떠서, "어? 이거 아까 저장한 거랑 똑같은 덩어리네?"라고 판단되면 새로 저장하지 않고 기존 원본의 주소(Link)만 연결해 주는 마법이다.
- 이를 통해 VDI(가상 데스크톱) 환경에서는 스토리지 용량을 최대 90% 이상 획기적으로 줄여주지만, 저장할 때마다 해시를 계산하고 장부(Hash Table)를 뒤져야 하므로 CPU와 메모리(RAM)를 끔찍하게 잡아먹는 트레이드오프가 있다.
Ⅰ. 저장 공간의 숨겨진 거품 (중복 데이터)
회사 이메일로 10MB짜리 사장님 신년사 영상이 전체 직원 1,000명에게 뿌려졌습니다. 직원 1,000명이 이걸 각자의 가상 데스크톱(VDI) 바탕화면에 저장합니다.
- 실제 차지하는 용량: $10MB \times 1000 = 10GB$
- 사실 완벽하게 똑같은 0과 1의 덩어리인데, 스토리지 박스는 무식하게 이걸 1,000번이나 디스크에 쓰고 소중한 10GB 용량을 날려 먹습니다. (압축 기술로는 이 똑같은 파일 1,000개를 막을 수 없습니다.)
📢 섹션 요약 비유: 도서관에 '해리포터 1권'을 보겠다는 사람이 1,000명 생기자, 도서관장이 진짜로 똑같은 내용의 해리포터 1권 책을 1,000권이나 사서 서가를 가득 채워버린 멍청한 공간 낭비입니다.
Ⅱ. 디둡(Deduplication)의 동작 메커니즘 (지문 채취)
중복 제거(디둡)는 이 거품을 쫙 빼서, 위 사례의 용량을 **단 10MB(원본 1개)**로 억제해 버립니다.
동작 과정 (Inline Deduplication):
- 직원 A가 10MB 영상을 저장하려고 스토리지에 던집니다. 스토리지는 이 영상을 4KB 크기의 네모난 블록(Block) 단위로 쪼갭니다.
- 스토리지 컨트롤러(CPU)는 각 4KB 블록을 암호학 믹서기(SHA-256 등 해시 함수)에 넣고 돌려서 고유한 **'지문(Hash/Fingerprint)'**을 뽑아냅니다.
- 지문 장부(Hash Table)를 뒤져서 똑같은 지문이 있는지 확인합니다. 없으므로 10MB 원본을 디스크에 정직하게 쓰고 장부에 지문을 등록합니다.
- 1분 뒤 직원 B가 똑같은 10MB 영상을 저장하려고 던집니다.
- 스토리지가 블록 쪼개서 지문을 떠보니, "어? 이거 아까 직원 A가 저장한 지문이랑 똑같네?" (중복 발견!)
- 스토리지는 직원 B의 영상을 디스크에 쓰지 않고 바로 쓰레기통에 버립니다. 대신 직원 B의 파일 주소표(포인터)에 "넌 그냥 직원 A가 아까 저장한 그 물리 주소를 같이 쳐다봐라"라며 링크(Reference)만 걸어주고 0.001초 만에 저장을 완료합니다.
구조 다이어그램 (ASCII)
[ 직원 A 폴더 ] ───────▶ (포인터 1) ─────┐
▼
┌─────────┐
│ 원본 블록 │ (디스크에는 딱 1개만 저장됨!)
└─────────┘
▲
[ 직원 B 폴더 ] ───────▶ (포인터 2) ─────┘
(B가 쓰려고 가져온 데이터는 검사 후 버려지고, 가짜 화살표만 남김)
📢 섹션 요약 비유: 도서관장은 해리포터 1권 책을 딱 1권만 삽니다. 그리고 1,000명의 사람들에게 '해리포터 1권이 있는 3번 서가 주소표'만 나눠줍니다. 사람들은 각자 책을 가진 줄 알지만, 사실 1권의 책을 다 같이 돌려 보는 셈입니다.
Ⅲ. 디둡의 치명적 딜레마 (RAM과 CPU의 희생)
중복 제거는 스토리지 용량 장사에서 궁극의 사기 기술이지만, 성능의 대가를 치릅니다.
- 어마어마한 RAM 소모: 데이터가 100TB, 1PB로 늘어나면, 이 블록들의 지문(Hash)을 기록해둔 장부(Table)의 크기도 수십 GB로 비대해집니다. 데이터가 들어올 때마다 1초 만에 이 장부를 뒤지려면 장부를 하드디스크가 아닌 비싼 컨트롤러 메인 메모리(RAM)에 전부 띄워놔야 하므로 돈이 많이 듭니다.
- CPU 발열 (Hash 연산): 1초에 수기가바이트씩 쏟아지는 데이터 블록에 일일이 SHA-256 해시 지문을 찍어내는 작업은 CPU 파이프라인을 찢어놓을 만큼 무겁습니다.
- 해결책: 이를 막기 위해 최신 플래시 스토리지(All-Flash Array)는 이 해시 지문 추출만 전담하는 **하드웨어 암호화 칩(QAT 가속기 등)**을 탑재하여 CPU의 부담(세금)을 0으로 덜어내고 있습니다.