본문 바로가기 주메뉴 바로가기

최신IT소식

중복 제거 기술의 다양한 방법론

관리자 2018-10-12 조회수 80

Quest_thumb_20191012.jpg

 



 

중복 제거 기술의 다양한 방법론


데이터 증가는 우리 모두가 감당해야 할 문제입니다. 비즈니스 또는 규정 요구사항을 충족하기 위해 점점 더 많은 데이터를 점점 더 오래 저장해야 합니다. 
글로벌 데이터스피어는 2025년이면 163제타바이트에 이르고 그 중에서 거의 절반은 기업에 존재하게 될 것으로 전망됩니다.

데이터 보호는 비즈니스를 위한 가장 중요한 요소입니다. 데이터 보호 자체적인 과제도 있지만 끊임없이 증가하고 이동하는 데이터 집합까지 더해지면 이내 리소스 부족에 처하게 됩니다.

물론 데이터 보호는 필요하지만 그것이 부담이 되는 것은 바람직하지 않습니다. 우리는 모두 A 지점에서 B 지점까지, 물리법칙이 허용하는 한 최대한 빠르게 데이터를 옮겨줄 솔루션을 찾습니다. 더 쾌적한 환경에서, 더 빠르게, 더 많은 데이터를 저장하고 비용은 영원히 낮춰줄 기술을 물색합니다. 매우 까다로운 조건입니다.

백업과 복구를 위한 리소스 부담을 덜기 위해 2차 데이터 스토리지 최적화를 개선하는 여러 가지 기술이 등장했습니다. 그러한 기술 중 하나가 중복 제거입니다. 중복 제거는 꽤 오래 전부터 존재한 기술이지만 솔루션의 특징은 저마다 다릅니다. 각 솔루션이 가용 리소스와 예산에 미치는 영향을 정확히 이해하면 도움이 되는 경우가 많습니다.

중복 제거 기술도 마찬가지입니다. 중복 제거는 데이터 절감의 대명사로 부상했지만 중복 제거라는 하나의 용어로 여러 가지 방법론 표현한다는 면에서 오해의 소지가 있습니다.

몇 가지 서로 다른 데이터 절감 기술에 대해 살펴봅시다.

중복 제거 기술 1 : 압축
좋은 예는 무손실 데이터 압축입니다. 이 기술은 데이터 손실 없는 통계학적 중복에 착안한 기술입니다. 따라서 압축은 ‘실행 취소’가 가능하며 이를 통해 데이터를 원래대로 되돌릴 수 있습니다. 이러한 기술은 오래 전부터 사용됐으며 지금도 여러 기술에서 기본으로 적용됩니다. 예를 들어 GIF 이미지는 LZW(Lempel-Ziv-Welch) 압축을 사용해서 정보 손실 없이 이미지 파일의 크기를 줄입니다.

중복 제거 기술 2 : 단일 인스턴스
단일 인스턴스는 명확한 스토리지 방법론입니다. 만일 같은 파일을 두 번 저장한다면 하나를 보관하고 다른 하나는 보관한 파일에서 참조합니다. 그러나 이는 두 파일이 동일한 경우에만 해당됩니다. 파일에서 작은 부분이라도 변경되면 전체 파일이 다시 저장됩니다. 이 기술은 구조상 동일한 콘텐츠가 많은 시스템에 유용하므로 프로덕션 스토리지에는 적합할지 몰라도 일반적인 데이터 보호용으로는 그다지 좋지 않습니다.

중복 제거 기술 3 : 고정 블록 중복 제거
이제부터 제대로 된 기술이라고 말할 수 있는 중복 제거 방법입니다. 고정 블록 중복 제거는 데이터 스트림을 가져와서 고정 크기의 블록으로 자릅니다. 이렇게 자른 조각을 데이터 청크라고 표현합니다. 
이러한 청크는 여러 가지 방법을 통해 면밀하게 상호 비교되며 비교 결과 같은 것으로 판단되면 하나의 ‘청크’만 저장되고 그 이후의 일치하는 청크를 가리키는 참조가 보관됩니다. 이미 들어본 이야기인가요? 단일 인스턴스와 비슷합니다. 다만 파일보다 아래 수준에서 작동하며 파일을 구성하는 블록을 단위로 한다는 차이점이 있습니다.

이 방법론은 듣기에는 그럴듯하지만 제약이 있습니다. 바이트 정렬 방식이고 예를 들어 가상 머신과 같이 4k, 8k, 32k 청크로 파일 시스템을 쓰므로 파일 시스템에 직접 저장되는 일부 데이터 유형에는 잘 맞습니다. 이 경우 고정 블록 솔루션은 상당히 효과적일 수 있습니다. 

그러나 경계가 일정하지 않은 데이터의 혼합체를 대상으로 하는 경우, 또는 다양한 유형의 소프트웨어를 통해 백업되어 정렬이 변경되는 경우에는 효과가 떨어집니다. 누구나 알지만 데이터는 일관성과는 거리가 한참 멀고, 데이터 유형에 따라 구성과 블록 크기, 바이트 정렬, 내용이 모두 다릅니다.

pasted image 0.png
                                                   그림1 : 고정 블록 중복 제거의 제약




중복 제거 기술 4 : 가변 블록 중복 제거
이번에는 고정 블록 중복 제거의 문제점을 해결하고 다양한 데이터 유형을 처리하면서도 우리가 원하는 데이터 절감을 실현하는 기술을 살펴보겠습니다. 이것은 수학입니다!

모든 비트를 일일이 검사하지 않고도 파일에서 이미 저장된 데이터와 일치하는 데이터를 어떻게 확인할 수 있을까요?  변화하는 데이터 블록 크기를 새 ‘청크’로 대조하는 것은(이 청크는 다시 다른 데이터 유형의 대조에 사용될 수 있음) 상당히 까다로운 과제입니다. 이를 극복하기 위해 라빈(Rabin) 지문과 함께 슬라이딩 윈도우 방식의 가변 청크 중복 제거가 사용됩니다.

중복을 찾기 위해 데이터는 라빈 지문 채취 알고리즘을 거치며 고유한 바이트 집합이 발견되는 경우 청크가 생성됩니다. 데이터는 가변이고 슬라이딩 윈도우에 걸쳐 계산되므로 데이터 스트림에서의 위치와 관계없이 이 동일한 데이터 바이트 집합을(데이터의 가변 청크) 반복해서 식별할 수 있습니다. 따라서 중복을 찾기 위해 고정 블록 중복 제거 시스템과 같이 데이터를 깔끔히 정렬해야 할 필요가 없습니다.

데이터 스트림에서 데이터가 추가된 지점이 앞인지 뒤인지는 관계 없습니다. 일단 청크가 식별되면 SHA 1 해시가 생성되어 중복 제거 사전에 저장됩니다. 이후에는 동일한 청크가 식별되므로 같은 데이터를 찾을 수 있게 됩니다. SHA 1 해시가 대조되고 데이터 중복이 제거됩니다.

이후 해시는 bloom2 필터에서 확인을 거쳐 이 해시가 이미 알려졌는지, ‘청크’를 저장해야 할지 참조해야 할지를 신속하게 파악할 수 있도록 합니다. 지속적으로 해시 대조가 수행되면서 일치 항목이 발견되지 않을 때 ‘청크’ 및 참조가 생성되도록 합니다.

전체적으로 슬라이딩 윈도우는 더 많은 일치 항목을 제공하고 따라서 저장해야 하는 고유한 데이터를 더 줄여 다른 중복 제거 기술에 비해 상당히 많은 스토리지 공간을 절약합니다.

pasted image 0 (1).png
                           그림2 : 가변 블록주복 제거는 디스크 및 비용 절감 효가가 가장 큼



중복 제거 기술 5 : 콘텐츠 인식 가변 블록 중복 제거
다음 단계의 기술은 스트림 자체의 콘텐츠를 인식해서 절감 효과를 더 높일 수 있습니다. 예를 들어 퀘스트의 코어스토어(QoreStor)는 가변 크기 청크에 콘텐츠 인식 알고리즘을 추가합니다. 이 알고리즘은 데이터 스트림에서의 추가와 삭제로 인한 변동에도 불구하고 데이터에서 패턴을 인식한 다음 블록 시작 및 끝점을 중복 청크에 정렬하면서 변경된 청크만 유일한 요소로 식별합니다.

  • 등록된 댓글이 없습니다.