Exchange 백업에 대한 상세 정보* - 1부

최초 문서 게시일: 2012년 6월 5일 화요일

*대다수 관리자의 공통적인 질문

VSS(볼륨 섀도 복사본)를 사용하는 Exchange 데이터베이스 백업의 내부 작동 방식을 파악할 때는 공통적인 질문이 다수 제기됩니다. 즉, 관리자는 "이벤트 로그에 나와 있는 freeze와 thaw는 어떤 의미입니까?" "Exchange VSS 기록기란 무엇이며 데이터베이스에 대해 어떤 작업을 수행합니까?" "VSS 기록기는 어떻게 해서 135GB나 되는 데이터베이스의 스냅숏을 60초 이내에 만들 수 있습니까?" 등의 질문을 할 수 있습니다.

이러한 질문에 대해 만족할 만한 답변을 얻지 못한 분들을 위해 이 게시물에서 몇 가지 답변을 제시합니다. Exchange의 VSS 백업이 작동하는 방식을 이해하려면 VSS 자체의 기본 사항에 대해 먼저 파악해야 합니다. 여기에 대한 설명이 포함된 유용한 설명서가 TechNet과 MSDN, 그리고 Windows Server Core 팀 블로그 "Ask the Core Team(영문일 수 있음)"에서 제공되고 있습니다. 이 게시물의 앞부분에서는 저의 우수한 동료인 Randy Monteleone이 VSS의 기본 사항을 요약 제시하며 VSS와 관련된 아래와 같은 몇 가지 유용한 TechNet 문서의 링크도 제공합니다.

방법: VSS 추적 – Randy Monteleone
https://blogs.technet.com/b/askcore/archive/2012/04/29/how-to-vss-tracing.aspx(영문일 수 있음)

볼륨 섀도 복사본 서비스의 작동 방식
https://technet.microsoft.com/ko-kr/library/cc785914(WS.10).aspx(영문일 수 있음)

볼륨 섀도 복사본 서비스
https://technet.microsoft.com/ko-kr/library/ee923636(WS.10).aspx(영문일 수 있음)

VSS의 기본 사항에 대해 이미 잘 알고 있다면 이 시리즈의 2부를 바로 확인하셔도 됩니다. 2부에서는 VSS Exchange 백업에서 발생하는 이벤트 및 Exchange에서 응용 프로그램 이벤트 로그에 이러한 이벤트를 기록하는 방법에 대해 자세히 설명합니다.

VSS 관련 기본 사항과 Exchange 기록기에 대한 정보를 다시 확인해야 하는 분들을 위해, 위의 참조를 보완할 수 있도록 아래에서 몇 가지 사항을 그림과 함께 설명하겠습니다.

스냅숏

Exchange 및 모든 응용 프로그램용 VSS 솔루션은 각 하드웨어 및 소프트웨어 구성에 따라 크게 다릅니다. 복제본, COW 스냅숏, 하드웨어/소프트웨어 솔루션 등 핵심 VSS 하위 시스템을 기반으로 하는 매우 다양한 기술이 존재합니다. 여기서는 Exchange 백업을 파악할 수 있도록 이러한 여러 솔루션 중 한 가지 특정 유형에 대해서만 설명합니다. 아래에는 "COW(기록 중 복사)" 스냅숏이 나와 있습니다.

COW 스냅숏을 기반으로 하는 Exchange의 VSS 백업에서는 Exchange 데이터가 호스팅되는 디스크의 스냅숏이 만들어집니다. 백업되는 내용(예: 단일 데이터베이스 파일과 몇 개의 로그)에 관계없이 VSS는 데이터가 저장되어 있는 전체 디스크의 스냅숏을 만듭니다. 데이터가 여러 디스크에 있는 경우(예: Exchange 데이터베이스와 로그가 각각 다른 디스크에 있는 경우) VSS는 모든 디스크의 스냅숏을 만듭니다.

그러면 "스냅숏"이란 무엇일까요? 볼륨 스냅숏은 "섀도 저장소" 내의 공간 영역이며, 그 자체로는 보통 시스템 볼륨 정보 폴더에 있는 디스크의 작은 공간 영역입니다.

디스크 스냅숏이 만들어지고 나면 해당 시점부터의 데이터 블록에 대한 변경 내용을 쓸 수 없습니다. 변경 내용을 쓰려면 변경 이전(스냅숏이 만들어질 당시)의 블록 데이터 복사본을 섀도 저장소의 차이점 보관용 영역에 기록해야 합니다. 이러한 방식으로 스냅숏이 만들어질 당시 디스크에 있던 데이터가 블록 단위로 섀도 저장소 영역에 보존됩니다. 그런 다음 스냅숏 데이터를 원본 디스크(요청된 데이터 블록이 변경되지 않은 경우) 또는 차이점 보관용 영역(있는 경우)에서 사용할 수 있습니다. 이 방식의 기본 개념이 아래 그림에 나와 있습니다.

디스크 E:에는 오후 1시에 만들어진 스냅숏이 있습니다.

이미지

1분 후에 블록 중 하나가 기록되는데, 이 시점에서는 오후 1시의 데이터가 차이점 보관용 영역에 이미 보존된 상태입니다.

이미지

실제 디스크가 변경되면 오후 1시의 데이터가 섀도 저장소에 기록되어 해당 시점의 디스크 레코드가 보존됩니다.

이미지

그 이후의 단계는 다음과 같습니다.

이미지

위의 그림에서는 백업 서버가 블록 2 및 53의 스냅숏에서 데이터를 요청합니다. 오후 1시의 블록 53은 스냅숏에 보존되어 있으므로 섀도 저장소에서 직접 복사됩니다. 블록 2는 오후 1시 이후 변경되지 않았으므로 VSS 드라이버 VOLSNAP.SYS를 통해 복사됩니다. 이 드라이버는 NTFS.SYS 파일 시스템 드라이버 아래의 필터 드라이버와 비슷하게 작동합니다. 즉, 파일 시스템 아래의 IRP 스택(디스크 I/O를 관리하는 커널 메모리 부분)에서 작동함으로써 데이터 블록을 읽을 수 있으며 이때 NTFS에서 파일이 사용 중이라는 차단 메시지를 표시하지 않습니다. 또한 VOLSNAP.SYS는 블록에 대한 쓰기가 요청되는 경우 블록을 섀도 저장소로 복사하는 작업도 수행합니다. 따라서 해당 이름이 "기록 중 복사"인 것입니다. VOLSNAP.SYS에 대한 자세한 내용은 Tim McMichael의 아래 게시물에서 확인할 수 있습니다.

Exchange, VSS 및 차등 블록 크기
https://blogs.technet.com/b/timmcmic/archive/2011/07/12/exchange-vss-and-differential-block-size.aspx(영문일 수 있음)

지금까지 COW 스냅숏의 기본 사항에 대해 살펴보았습니다. 다음으로는 이 스냅숏이 Exchange에서 작동하는 방식과, 기타 몇 가지 주요 개념에 대해 알아보겠습니다.

Microsoft Exchange 기록기

위에서 설명한 것처럼, Exchange 데이터가 저장되는 모든 디스크에 대해 VSS는 해당 스냅숏을 만듭니다. 그러면 백업 응용 프로그램은 데이터가 저장되어 있는 디스크를 정확히 어떤 방법으로 찾는 것일까요? 관리자는 데이터 파일이 저장된 디스크에 대한 옵션을 지정하지 않고 백업용 데이터베이스를 직접 선택하는 경우가 많습니다. 따라서 데이터 파일이 있는 위치와 VSS가 스냅숏을 만들어야 하는 디스크에 대한 정보를 제공하는 방법이 필요합니다. 이 정보는 백업 미디어에 보존하기 위해 스냅숏에서 복사할 특정 데이터 파일도 백업 응용 프로그램(VSS 요청자라고도 함)에 알려 줍니다. 디스크에서 필요 없는 데이터까지 모두 복사할 필요는 없으니까요.

여기서 사용되는 메커니즘이 Microsoft Exchange VSS 기록기입니다. 모든 응용 프로그램의 VSS 기록기와 마찬가지로(다양한 기록기가 있으며, VSSADMIN LIST WRITERS를 실행하면 확인할 수 있습니다.) Exchange VSS 기록기가 가장 먼저 수행하는 작업 역시 백업에 필요한 데이터에 대한 정보(특히 요청된 각 데이터베이스에 대한 검사점 파일, 로그 및 EDB 파일)를 백업 응용 프로그램에 알리는 것입니다. 이러한 특정 Exchange 데이터 파일에 대한 정보를 기록기 메타데이터 라고 합니다.

이미지

(축소판 그림을 클릭하면 전체 크기 버전을 볼 수 있음)

위의 그림에는 Exchange 백업의 초기 단계가 나와 있습니다. Exchange 기록기는 데이터베이스가 볼륨 E:의 폴더에 있고 해당 데이터베이스의 트랜잭션 로그는 D:의 폴더에 있음을 백업 서버(요청자)에 알립니다. 백업 응용 프로그램은 해당 정보를 기반으로 작업 진행 시 D: 및 E: 볼륨의 스냅숏을 요청합니다.

Exchange VSS 기록기는 VSS 요청자에 메타데이터를 제공하는 것 외에 또 다른 중요한 역할을 수행합니다. 즉, 필요한 스냅숏을 만드는 데 소요되는 시간 동안 디스크의 데이터베이스 및 로그에 대한 쓰기를 중지(" 동결(freeze) ")합니다. 일반적으로 COW 스냅숏은 초기에는 실제 디스크에서 블록이 변경될 때 해당 블록을 보존할 섀도 저장소 내 영역 지정만으로 구성되므로 짧은 시간 내에 만들어집니다. 그러나 이처럼 작업이 비교적 빠르게 수행됨에도 불구하고 실제로는 최대 1분이 소요될 수 있으며, 1분은 스냅숏 만들기 프로세스 시작과 종료 간에 디스크에서 데이터 블록이 변경되기에 충분히 긴 시간입니다. 데이터 블록이 변경되었는데 스냅숏 만들기가 시작되는 정확한 시간 이후 원본이 보존되지 않으면 해당 블록이 다른 스냅숏 데이터와 일치하지 않을 수 있습니다(특히 로그, 데이터베이스 및 검사점 파일 간에). 따라서 Exchange 기록기는 정보 저장소 서비스 또는 MS Exchange 복제 서비스가 RAM의 내용을 동결된 데이터베이스 파일에 쓰지 못하도록 차단합니다. 정보 저장소 서비스의 경우에는 Exchange 기록기가 VSS의 스냅숏 만들기를 허용하기 전에 현재 트랜잭션 로그 파일(Exx.log)이 종료되어 닫힙니다. 따라서 스냅숏 시작과 완료 사이에 파일 데이터가 변경되지 않으며, 스냅숏이 완료되면 데이터베이스는 " 재개(thaw) "됩니다. 데이터베이스가 재개되면 RAM에 보관된 쓰기 I/O가 다시 디스크로 이동할 수 있습니다.

동결, 재개 및 스냅숏을 완료하는 데 필요한 시간과 관련하여 응용 프로그램의 VSS 기록기가 VSS와 상호 작용하는 방식에 대한 자세한 내용은 아래 문서를 참조하십시오.

CVssWriter::OnFreeze 메서드
https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa381563(v=vs.85).aspx(영문일 수 있음)

Exchange 기록기가 마지막으로 수행하는 중요한 작업은 백업이 완료되었음을 정보 저장소 서비스(수동 복사본 백업의 경우에는 MS Exchange 복제 서비스)에 알리고, 해당하는 경우 로그 자르기 등의 백업 후 작업을 진행해 더 이상 백업이 진행 중이지 않은 것으로 데이터베이스를 표시하는 것입니다.

이 게시물 시리즈의 2부와 3부에서는 위에서 설명한 요소들이 Exchange 백업에서 함께 작동하는 방식과 그 과정에서 생성되는 응용 프로그램 로그 이벤트에 대해 자세히 살펴보고, 탑재된 데이터베이스에 대한 프로세스를 수동 데이터베이스 복사본에 대한 프로세스와 비교합니다.

이 게시물의 내용을 함께 작성해 준 Michael Blanton, Tim McMichael, Randy Monteleone, Dave Vespa, Tom Kern에게 감사의 인사를 전합니다.

Jesse Tedoff

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Everything You Need to Know About Exchange Backups* - Part 1을 참조하십시오.