Windows Server 2012, 데이터 중복 제거 기술(Data Deduplication)을 활용한 서버 스토리지 최적화

image

스토리지 가격이 많이 내려갔다고 하지만, 서버에서 아직까지도 많은 비용을 차지하고 있는 부분이 바로 스토리지 확장에 대한 비용입니다. 사용자들이 같이 쓰는 파일 서버나, 가상화 파일을 저장하는 스토리지의 경우에 많은 용량이 필요로 해지고 있고, 이에 대한 비용이나 관리적인 측면도 IT 관리자가 신경써야 할 부분입니다.

한국의 경우에는 VDI가 데스크톱의 또하나 선택으로 많이 사용되고 있는데, 잘 생각해보시면, 같은 표준 운영 체제를 사용하기에, 중복된 부분이 많이 있어, 하나만 저장하고, 또다른 부분은 공유할 수 없나? 라는 생각을 할 수 있습니다. 가상화에서 제공하는 차이점(Differencing) 디스크의 경우엔, 물리적으로 파일이 분리되기에(부모 디스크 파일을 관리해야 하죠), 실수등의 관리 이슈가 발생할 수 있습니다.

이에 대한 하드웨어 업계의 접근은 바로 스토리지 가상화(Storage Virtualization)의 기술을 활용하는 것입니다. 실제 사용시마다, 용량을 늘려주는 씬 프로비저닝(Thin Provisioning)과 더불어, 데이터 중복 기술등을 포함하는 스토리지 가상화 기술을 Windows Server 2012가 소프트웨어적으로도 처리할 수 있게 기술을 내장하고 있습니다.

image

Windows Server 2012의 파일 및 저장소 서비스에 보면, 데이터 중복 제거(Data Deduplication) 기술이 있습니다. 이를 설치하고, 간단한 몇가지 설정만 해주면, 중복된 파일에 대한 스토리지 용량 관리를 간편하게 할 수 있게 됩니다.

간단히 Windows Server 2012의 데이터 중복 제거 기술을 살펴보면 아래 그림이 필요합니다.

image

Windows Server 2012는 데이터 중복 제거 기술이 동작하는 볼륨내 파일에 대해서 작은 단위(32~128KB)로 파일을 나눠(이렇게 나눠진 작은 조각을 Chunk라고 합니다), 이를 Chunk Store에 저장합니다. 그리고 동일한 Chunk를 가지고 있는지 파일들을 비교합니다. 동일한 Chunk가 있는 경우, 데이터에 부분에 대해서(속성 등이 저장된 Metadata는 손댈 수 없겠죠), Chunk Store에 있는 Data Chunk로 링크를 걸게 되고, 실제 파일은 시스템 상에서 접근했을 때, 동일한 단일 파일로 있게 보여주는 것입니다. 어떻게 보면, 하드웨어에서 사용하는 데이터 중복 제거 기술과 거의 유사한 형태의 아키텍쳐를 가지고 있고, 이를 운영 체제의 자원으로 처리를 해준다는 것만 다른 형태가 됩니다. 이를 위한 성능 저하도 5% 미만이라고 하니, 거의 하드웨어적인 부분과 큰 차이가 없다고 볼 수 있습니다.

데이터 중복 제거 기술을 사용하기 위해서는 부팅 정보나, 시스템(Windows가 설치된) 파티션이 내장된 디스크의 경우에는 사용할 수 없습니다. 해당 디스크에서 데이터 중복 제거 기술을 사용하겠다고 설정하고, 이 중복 제거를 위한 확인 스케쥴만 설정하면 됩니다.

image

데이터 중복 제거 사용 옵션을 사용하면, 확인 파일이 얼마나 오래되었을 때부터, 적용할 것인지에 대한 부분을 입력하고, 제외 파일 확장자나, 폴더를 등록합니다.

image

데이터 중복 제거를 위한 파일 확인 작업은 시스템에 부하를 유발할 수 있기에, 해당 일정을 언제 진행할 지에 대해서 설정할 수 있습니다.

image

일정 옵션이 2개가 있고, 이에 대한 기간(시간)을 넣을 수 있는 것은, 중복 제거를 위해 파일을 분석할 경우, 디스크 용량 및 저장량에 따라 시간이 소요되게 됩니다. 새벽에 시작된 작업이, 실제 업무가 진행되는 시점까지 진행되는 것을 막기 위해, 최대 처리 시간을 지정할 수 있고, 차후 처리를 위한 보조 일정을 설정할 수 있죠. 한번 제거가 일어난 디스크에 대해서는 차후, 추가분만 확인하는 형태로 진행되며, 전체적인 분석을 다시하고자 할 경우, PowerShell을 통해서 진행할 수 있습니다.

image

자세한 설정 및 제거 작업 바로 시작 등의 세부적인 설정을 하기 위해서는 Windows PowerShell이 등장합니다. 만약 설정을 하자마자, 바로 중복 제거 기술을 돌리기 위해서는 Start-DedupJob Cmdlet을 이용할 수 있습니다.

image

중복 제거 스케쥴을 살펴보면, GUI에서 볼 수 없었던, 2개의 스케쥴이 더 보입니다. GarbargeCollection과 Scrubbing이 여기에 해당됩니다. GarbargeCollection의 경우에는 파일이 삭제된 경우, 이에 대한 Chunk Store(앞서, 데이터 중복 제거를 이용하면, 데이터는 Chunk Store에 링크된다고 언급했습니다.)를 삭제하는 작업을 일주일에 한번씩 돌리는 것을 알 수 있으며, Scrubbing의 경우엔 데이터 중복 기술을 사용하는 디스크에 대한 전체적인 무결성 체크 및 수정 절차라고 생각하면 됩니다.

image

Metadata와 관련된 Cmdlet을 이용하여, Chunk의 평균 크기, 그리고 같은 Chunk Store를 사용하는 숫자등을 확인할 수도 있어, 세부적인 정보 확인도 가능합니다.

image

Windows Server 2012 클래스에서 해당 내용에 대해 진행을 하면, 나오는 몇가지 질문이 있습니다. 과연 효과는 얼마냐? 그리고 백업/복원에 관련된 부분입니다. 중복된 파일이 얼마나 많은지에 따라서 결과는 틀리긴 하지만, 데이터 중복 제거를 사용할 경우, 시나리오별 결과는 대략 아래와 같습니다.

image

가상화 하드 디스크 파일의 경우엔 중복이 특히 많은 파일이기에, 용량 절약이 클 수 밖에 없으며, 첫번째 스크린샷에서 올린 제 서버의 경우엔, 잡다한 파일이 많이 저장된 경우라도 40% 정도의 절약을 보이는 걸로 봐서는, 위의 표내 General File Share 결과와 유사합니다.

두번째로, 데이터 중복 제거가 된 파일에 대한 백업/복원입니다. Windows Server 2012의 데이터 중복 기술은, 기본적으로 내장된 Windows Server Backup(NTBACKUP)에서는 이를 인지하기에, 동일한 파일을 2개 백업할 경우, 쉽게 1개의 용량만큼만 백업되고, 보관됩니다. System Center Data Protection Manager의 경우에 Windows Server 2012를 지원하는 SP1의 경우에 이를 지원할 예정이며, VHD 백업에 용량 이슈가 문제였던 조직은 매우 유용하게 사용될 수 있습니다. (SCDPM 2012 SP1 CTP2 문서 참고) 데이터 중복 제거 기술을 알지 못하는 백업 프로그램의 경우엔, 기존가 동일하게 동작하는 호환성도 가지고 있습니다.

Windows Server 2012는 SMB 3.0을 이용한 파일 서버의 스토리지화(Windows Server 2012 Hyper-V, 고가용성 기술의 향상, 그 두번째 이야기, 스케일 아웃 파일 서버(SMB 3.0)를 통한 Hyper-V 포스팅)와 더불어, 데이터 중복 제거 기술을 통해, 기존 하드웨어적으로 고비용이 필요로 했던 기술을 소프트웨어적으로 쉽게 처리할 수 있게 하고 있으며, 이는 선택권을 넓히는 측면에서 IT 관리자에게 많은 이점을 제공할 것이라 생각합니다.