데이터 중복 배제

Data deduplication

컴퓨팅에서 데이터 중복 제거는 반복 데이터의 중복 복사본을 제거하는 기술입니다.이 기술을 성공적으로 구현하면 스토리지 사용률이 개선되고, 스토리지 용량 요구를 충족하는 데 필요한 스토리지 미디어의 전체 양이 줄어들어 자본 지출이 감소할 수 있습니다.또한 네트워크 데이터 전송에도 적용되어 전송해야 하는 바이트 수를 줄일 수 있습니다.

중복 제거 프로세스에서는 고유한 연속된 데이터 블록인 '청크'('바이트 패턴'이라고도 함)를 비교해야 합니다.이러한 청크는 분석 프로세스 중에 식별 및 저장되며 기존 데이터 내의 다른 청크와 비교됩니다.일치할 때마다 중복 청크는 저장된 청크를 가리키는 작은 참조로 대체됩니다.같은 바이트 패턴이 수십 번, 수백 번, 수천 번 발생할 수 있기 때문에(일치 빈도는 청크기에 따라 다름), 저장 또는 전송해야 하는 데이터의 양을 크게 [1][2]줄일 수 있습니다.

관련 기술은 전체 파일 수준에서 여러 의 컨텐츠 복사본을 단일 공유 복사본으로 대체하는 단일 인스턴스(데이터) 스토리지입니다.이를 다른 형태의 데이터 압축 및 중복제거와 결합할 수 있지만, 데이터 중복 제거에 대한 새로운 접근 방식(세그먼트 또는 하위 블록 수준에서 작동 가능)과는 다릅니다.

중복 배제는 LZ77LZ78과 같은 데이터 압축 알고리즘과는 다릅니다.압축 알고리즘은 개별 파일 내의 용장 데이터를 식별하고 이 용장 데이터를 보다 효율적으로 인코딩하는 반면, 중복 제거의 목적은 대량의 데이터를 검사하여 파일 전체 또는 파일의 큰 섹션 등 동일한 큰 섹션을 식별하여 공유 복사본으로 대체하는 것입니다.

기능 원리

예를 들어, 일반적인 전자 메일 시스템에는 동일한 1MB(메가바이트) 첨부 파일의 인스턴스 100개가 포함될 수 있습니다.이메일 플랫폼이 백업될 때마다 첨부 파일의 100개 인스턴스가 모두 저장되므로 100MB의 저장 공간이 필요합니다.데이터 중복 제거 기능을 사용하면 첨부 파일의 인스턴스가 실제로 하나만 저장됩니다. 이후 인스턴스는 약 100:1의 중복 제거 비율을 위해 저장된 복사본으로 다시 참조됩니다.데이터 중복 제거는 종종 추가 스토리지 절약을 위해 데이터 압축과 조합됩니다.중복 배제는 먼저 대량의 반복 데이터 청크를 제거하기 위해 사용되며, 압축은 저장된 각 [3]청크를 효율적으로 인코딩하기 위해 사용됩니다.

컴퓨터 코드에서 중복 배제는 예를 들어 정보를 변수에 저장하여 개별적으로 쓸 필요가 없지만 중앙 참조 위치에서 한꺼번에 변경할 수 있도록 합니다.를 들어 MediaWikiCSS 클래스나 이름 있는 참조가 있습니다.

혜택들

스토리지 기반 데이터 중복 제거는 주어진 파일 세트에 필요한 스토리지 양을 줄입니다.매우 유사하거나 동일한 데이터의 복사본이 단일 디스크에 많이 저장되어 있는 애플리케이션에서 가장 효과적입니다.데이터 손실을 방지하기 위해 정기적으로 수행되는 데이터 백업의 경우 특정 백업의 대부분의 데이터는 이전 백업과 변경되지 않습니다.일반적인 백업 시스템에서는 변경되지 않은 파일을 생략(또는 하드 링크)하거나 파일 간의 차이를 저장함으로써 이 취약성을 이용하려고 합니다.다만, 어느 어프로치에서도, 모든 용장성을 캡쳐 하는 것은 아닙니다.하드링크는 이메일 데이터베이스와 같이 작은 방식으로만 변경된 대용량 파일에는 도움이 되지 않습니다. 차이는 단일 파일의 인접 버전에서만 용장성을 찾을 수 있습니다(삭제되었다가 나중에 다시 추가된 섹션이나 많은 문서에 포함된 로고 이미지를 고려합니다).

인라인 네트워크 데이터 중복 제거는 엔드포인트 간에 전송해야 하는 바이트 수를 줄이기 위해 사용되므로 필요한 대역폭 양을 줄일 수 있습니다.상세한 것에 대하여는, 「WAN 최적화」를 참조해 주세요.가상 서버와 가상 데스크톱은 중복제거 기능을 통해 각 가상 시스템에 대해 명목상 개별 시스템 파일을 단일 스토리지 공간으로 병합할 수 있기 때문에 이점을 누릴 수 있습니다.동시에 특정 가상 머신이 파일을 커스터마이즈하는 경우 중복 배제는 다른 가상 머신의 파일을 변경하지 않습니다.하드링크나 공유 디스크와 같은 다른 가상 머신에서는 이 파일을 사용할 수 없습니다.가상 환경의 백업 또는 복제 복사본 생성도 이와 유사하게 개선되었습니다.

분류

사후 처리와 인라인 중복 배제

중복 배제는 데이터 흐름에 따라 "인라인"으로 수행되거나 데이터가 작성된 후 "사후 처리"될 수 있습니다.

사후 프로세스 중복 제거 기능을 사용하면 새 데이터가 먼저 스토리지 장치에 저장되고 나중에 프로세스가 중복을 찾는 데이터를 분석합니다.데이터를 저장하기 전에 해시 계산 및 조회가 완료될 때까지 기다릴 필요가 없으므로 저장소의 성능이 저하되지 않습니다.정책 베이스의 조작을 제공하는 실장에서는, 유저는 「액티브」파일의 최적화를 연기하거나, 타입과 장소에 근거해 파일을 처리할 수 있습니다.잠재적인 단점 중 하나는 중복 데이터가 단시간에 불필요하게 저장될 수 있다는 것입니다.이는 시스템이 최대 용량에 가까워지면 문제가 발생할 수 있습니다.

또는 데이터 중복 제거 해시 계산을 인라인 방식으로 수행할 수 있습니다. 즉, 데이터가 타깃 장치에 들어갈 때 동기화됩니다.스토리지 시스템이 이미 기억된 블록을 식별하면 새로운 블록 전체가 아니라 기존 블록에 대한 참조만 기억된다.

사후 프로세스 중복 제거에 비해 인라인 중복 제거의 장점은 중복 데이터가 저장되거나 전송되지 않기 때문에 스토리지 및 네트워크 트래픽이 적게 필요하다는 것입니다.부정적인 측면은 해시 계산 비용이 많이 들기 때문에 스토리지 처리량이 감소할 수 있습니다.그러나 인라인 중복 배제를 제공하는 일부 벤더는 인라인 중복 배제를 고속으로 실행할 수 있는 장비를 시연했습니다.

사후 프로세스 및 인라인 중복 제거 방법은 자주 [4][5]논의됩니다.

data 형식

SNIA 딕셔너리에는 다음 두 [2]가지 방법이 있습니다.

  • 콘텐츠에 구애받지 않는 데이터 중복 제거 - 특정 애플리케이션 데이터 형식을 인식할 필요가 없는 데이터 중복 제거 방법입니다.
  • 콘텐츠 인식 데이터 중복 제거 - 특정 응용 프로그램 데이터 형식에 대한 지식을 활용하는 데이터 중복 제거 방법입니다.

소스 중복 배제와 타깃 중복 배제

데이터 중복 제거 방법을 분류하는 또 다른 방법은 발생하는 위치에 따라 다릅니다.데이터 생성 장소 근처에서 중복 배제가 발생하는 것을 "소스 중복 배제"라고 합니다.데이터가 저장되는 곳 근처에서 발생하는 경우 이를 "대상 중복 제거"라고 합니다.

원본 중복 제거를 통해 데이터 원본의 데이터가 중복 제거됩니다.일반적으로 이 작업은 파일 시스템 내에서 직접 수행됩니다.파일 시스템은 해시를 생성하는 새 파일을 정기적으로 검색하여 기존 파일의 해시와 비교합니다.동일한 해시를 가진 파일이 발견되면 파일 복사본이 제거되고 새 파일이 이전 파일을 가리킵니다., 하드링크와 달리 중복된 파일은 개별 엔티티로 간주되며 중복된 파일 중 하나가 나중에 수정될 경우 변경된 파일 또는 블록의 복사본이 copy-on-write라는 시스템을 사용하여 생성됩니다.중복 제거 프로세스는 사용자와 백업 애플리케이션에 대해 투명합니다.중복 배제된 파일 시스템을 백업하면 중복이 발생하여 백업 용량이 [6][7]원본 데이터보다 커집니다.

복사된 데이터에 중복 제거가 필요한지 확인하기 위해 계산이 필요하지 않으므로 복사 작업에 대해 소스 중복 제거를 명시적으로 선언할 수 있습니다.이것에 의해, reflink(Linux) 또는 clonefile(MacOS)이라고 불리는 파일 시스템에 새로운 형식의 「링크」가 생깁니다.여기서 1개 이상의 inode(파일 정보 엔트리)가 데이터의 일부 또는 전부를 공유합니다.inode 레벨에서 동작하는 하드링크 및 파일명 [8]레벨에서 동작하는 심볼릭링크와 유사하게 이름이 지정됩니다.개개의 엔트리는 에일리어싱이 아닌 Copy-on-Write 동작을 가집니다.즉, 나중에 1개의 복사본을 변경해도 다른 [9]복사본에는 영향을 주지 않습니다.마이크로소프트의 ReFS도 이 [10]작업을 지원합니다.

대상 중복 제거는 해당 위치에서 데이터가 생성되지 않았을 때 중복을 제거하는 프로세스입니다.예를 들어 SAN/NAS에 접속되어 있는 서버를 예로 들 수 있습니다.SAN/NAS는 서버의 타겟이 됩니다(타깃 중복 배제).서버는 중복 배제를 인식하지 않으며 데이터 생성 지점이기도 합니다.두 번째 예는 백업입니다.일반적으로 이 저장소는 데이터 저장소나 가상 테이프 라이브러리 등의 백업 저장소가 됩니다.

중복 배제 방법

데이터 중복 제거 구현의 가장 일반적인 형태 중 하나는 데이터 청크를 비교하여 중복을 탐지하는 것입니다.이를 위해 각 데이터 청크에는 일반적으로 암호화 해시 함수를 사용하여 소프트웨어에 의해 계산된 식별 정보가 할당됩니다.많은 구현에서 식별이 동일하면 데이터가 동일하다고 가정합니다.비록 비둘기홀 원리에 의해 모든 경우에 해당될 수는 없습니다.다른 구현에서는 동일한 식별자를 가진 2개의 데이터 블록이 동일하다고 가정하지 않고 동일한 식별자를 가진 데이터가 실제로 확인됩니다.동일합니다.[11]소프트웨어는 특정 ID가 이미 중복 제거 네임스페이스에 존재한다고 가정하거나 구현에 따라 두 데이터 블록의 ID를 실제로 검증하는 경우 중복 청크를 링크로 대체합니다.

데이터 중복 제거가 완료되면 파일을 다시 읽을 때 링크가 발견되면 시스템은 해당 링크를 참조된 데이터 청크로 교체합니다.중복 제거 프로세스는 최종 사용자와 애플리케이션에 대해 투명하게 수행되도록 설계되었습니다.

상용 중복 배제 실장은 청킹 방법 및 아키텍처에 따라 다릅니다.

  • 청킹.일부 시스템에서는 청크가 물리적 계층 제약(WAFL의 경우 4KB 블록 크기)에 의해 정의됩니다.일부 시스템에서는 전체 파일만 비교됩니다. 이를 단일 인스턴스 저장소(SIS)라고 합니다.청킹에 대한 가장 인텔리전트한(단, CPU 부하가 높은) 방법은 일반적으로 슬라이딩 블록으로 간주됩니다.슬라이딩 블록에서는 보다 자연스럽게 발생하는 내부 파일 경계를 찾기 위해 파일 스트림을 따라 창이 통과된다.
  • 클라이언트 백업 중복 제거.이 프로세스는 소스(클라이언트) 시스템에서 중복 제거 해시 계산이 처음 생성되는 프로세스입니다.타깃 디바이스에 이미 있는 파일과 동일한 해시를 가진 파일은 전송되지 않으며 타깃 디바이스는 복제된 데이터를 참조하기 위한 적절한 내부 링크를 생성할 뿐입니다.이것에 의해, 네트워크상에서 불필요하게 데이터가 송신되지 않게 되어, 트래픽 부하가 경감됩니다.
  • primary 스토리지와 secondary 스토리지.Primary 스토리지 시스템은 정의상 최저 비용이 아닌 최적의 성능을 제공하도록 설계되었습니다.이러한 시스템의 설계 기준은 성능을 향상시키는 것이지만 다른 고려사항을 희생하는 것입니다.또한 Primary 스토리지 시스템은 성능에 부정적인 영향을 미칠 수 있는 모든 작업에 대해 훨씬 덜 내성이 있습니다.또한 정의상 secondary 스토리지 시스템에는 주로 중복 또는 secondary 데이터의 복사본이 포함됩니다.이러한 데이터 복사본은 일반적으로 실제 운영 작업에는 사용되지 않으므로 효율성을 높이는 대신 일부 성능 저하에도 내성이 있습니다.

지금까지 데이터 중복 제거는 보조 스토리지 시스템에서 주로 사용되어 왔습니다.그 이유는 두 가지다.첫째, 데이터 중복 제거는 중복된 데이터를 검색하고 제거하는 데 오버헤드가 필요합니다.Primary 스토리지 시스템에서는 이러한 오버헤드가 성능에 영향을 미칠 수 있습니다.중복 배제가 보조 데이터에 적용되는 두 번째 이유는 보조 데이터가 중복되는 데이터가 더 많은 경향이 있기 때문입니다.특히 백업 애플리케이션은 시간이 지남에 따라 중복 데이터의 상당 부분을 생성합니다.

데이터 중복 제거는 시스템 설계에 큰 오버헤드가 필요하지 않거나 성능에 영향을 주지 않는 경우에 primary 스토리지와 함께 성공적으로 구현되었습니다.

단일 인스턴스 스토리지

싱글 인스턴스 스토리지(SIS)는 콘텐츠 객체의 여러 복사본을 가져와 단일 공유 복사본으로 대체하는 시스템 기능입니다.데이터 중복을 제거하고 효율성을 높이기 위한 수단입니다.SIS는 파일 시스템, 이메일 서버 소프트웨어, 데이터 백업 및 기타 스토리지 관련 컴퓨터 소프트웨어에 자주 구현됩니다.단일 인스턴스 스토리지는 데이터 중복 제거의 단순한 변형입니다.데이터 중복 제거는 세그먼트 또는 하위 블록 수준에서 작동하지만 단일 인스턴스 스토리지는 개체 수준에서 작동하므로 전체 파일이나 이메일 [12]메시지와 같은 개체의 중복된 복사본을 제거할 수 있습니다.

단일 인스턴스 스토리지는 다른 데이터 복제 또는 데이터 압축 방법과 함께 사용할 수 있으며, 복잡성이 증가하고 스토리지 공간 요구사항이 약간 증가하는 대신(경우에 따라) 성능을 향상시킬 수 있습니다.

결점 및 우려 사항

데이터 중복 제거를 위한 한 가지 방법은 암호화 해시 함수를 사용하여 중복된 데이터 세그먼트를 식별하는 것입니다.두 개의 다른 정보가 동일한 해시 값을 생성하는 경우 이를 충돌이라고 합니다.충돌 확률은 주로 해시 길이에 따라 달라집니다(생일 공격 참조).따라서 해시 충돌 발생 시 데이터 파손이 발생할 수 있으며 데이터의 차이 여부를 검증하기 위해 추가적인 검증 수단을 사용하지 않는 것이 우려됩니다.인라인 아키텍처와 사후 프로세스 아키텍처 모두 데이터 무결성을 보장하기 위해 원본 데이터의 비트 간 검증을 제공할 수 있습니다.사용되는 해시 함수에는 SHA-1, SHA-256 등의 표준이 포함됩니다.

프로세스의 계산 리소스 강도는 데이터 중복 제거의 단점이 될 수 있습니다.성능을 향상시키기 위해 일부 시스템에서는 약한 해시와 강한 해시를 모두 사용합니다.약한 해시는 계산 속도가 훨씬 빠르지만 해시 충돌 위험이 더 높습니다.약한 해시를 사용하는 시스템은 이후 강력한 해시를 계산하여 실제로 동일한 데이터인지 여부를 결정하는 요소로 사용합니다.해시 값 계산 및 조회와 관련된 시스템 오버헤드는 주로 중복 제거 워크플로우의 함수입니다.파일 재구성에는 이 처리가 필요하지 않으며 데이터 청크의 재조립과 관련된 증분 성능 저하가 애플리케이션 성능에 영향을 미칠 가능성은 거의 없습니다.

또 다른 우려 사항은 압축과 암호화의 상호작용입니다.암호화의 목적은 데이터에서 식별 가능한 패턴을 제거하는 것입니다.따라서 기본 데이터가 중복될 수 있더라도 암호화된 데이터를 중복 제거할 수 없습니다.

데이터 중복 제거의 단점은 아니지만 중복 제거된 데이터의 대규모 저장소에서 불충분한 보안 및 액세스 검증 절차를 사용하면 데이터 위반이 발생합니다.일부 시스템에서는 클라우드 [citation needed]스토리지와 마찬가지로 공격자가 원하는 [13]데이터의 해시 값을 파악하거나 추측하여 다른 사용자가 소유한 데이터를 검색할 수 있습니다.

실장

중복 배제는 ZFS[14] 또는 Write Anywhere File Layout과 같은 일부 파일 시스템과 다양한 디스크 어레이 모델에서 구현됩니다.Windows 서버의 NTFS와 ReFS 모두에서 사용할 수 있는 서비스입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Understanding Data Deduplication". Druva. 2009-01-09. Archived from the original on 2019-08-06. Retrieved 2019-08-06.
  2. ^ a b "SNIA Dictionary » Dictionary D". Archived from the original on 2018-12-24. Retrieved 2018-12-23.
  3. ^ 압축, 중복 배제 및 암호화: 뭐가 다른데?2018-12-23 Wayback Machine에서 보관, Stephen Bigelow 및 Paul Crocetti
  4. ^ "In-line or post-process de-duplication? (updated 6-08)". Backup Central. Archived from the original on 2009-12-06. Retrieved 2009-10-16.
  5. ^ "Inline vs. post-processing deduplication appliances". Searchdatabackup.techtarget.com. Archived from the original on 2009-06-09. Retrieved 2009-10-16.
  6. ^ "Windows Server 2008: Windows Storage Server 2008". Microsoft.com. Archived from the original on 2009-10-04. Retrieved 2009-10-16.
  7. ^ "Products - Platform OS". NetApp. Archived from the original on 2010-02-06. Retrieved 2009-10-16.
  8. ^ "The reflink(2) system call v5". lwn.net. Archived from the original on 2015-10-02. Retrieved 2019-10-04.
  9. ^ "ioctl_ficlonerange(2)". Linux Manual Page. Archived from the original on 2019-10-07. Retrieved 2019-10-04.
  10. ^ Kazuki MATSUDA. "Add clonefile on Windows over ReFS support". GitHub. Archived from the original on 2021-01-13. Retrieved 2020-02-23.
  11. ^ "미국 특허출원 #20090307251" Archived 2017-01-15 at the Wayback Machine"에 기술되어 있다고 가정하지 않고 신원을 확인하는 구현의 예.
  12. ^ Wayback Machine에서 Archived 2018-12-23 고객에게 중복제거율 및 단일 인스턴스 스토리지 설명George Crump, 스토리지 스위스
  13. ^ CHRISTIAN CACHIN; MATTHIAS SCHUNTER (December 2011). "A Cloud You Can Trust". IEEE Spectrum. IEEE. Archived from the original on 2012-01-02. Retrieved 2011-12-21.
  14. ^ Author, Guest. "ZFS Deduplication". blogs.oracle.com. Archived from the original on 24 December 2019. Retrieved 25 November 2019. {{cite web}}: last=범용명(도움말)이 있습니다.

외부 링크