Exchange 2013 페이지 비우기 이해

적용 대상: Exchange Server 2013

Exchange 2013의 페이지 비우기

비우기는 삭제된 데이터 위에 0 또는 바이너리 패턴을 써서 삭제된 데이터를 더 복구하기 어렵게 만드는 보안 메커니즘입니다. Exchange 2013의 ESE 데이터베이스는 페이지를 스토리지 단위로 사용하므로 페이지 0을 구현합니다. 페이지 0은 기본적으로 사용하도록 설정되며 사용하지 않도록 설정할 수 없습니다. 페이지 비우기 작업은 트랜잭션 로그 파일에 기록되므로 모든 데이터베이스 복사본에서 유사한 방식으로 페이지 비우기가 수행됩니다. 활성 데이터베이스에서 페이지를 비우면 데이터베이스의 수동 복사본에서 해당 페이지가 비워집니다.

참고

ESE(확장 가능한 스토리지 엔진)가 새 공간 할당보다 0 페이지 다시 사용 우선 순위를 지정하는 메커니즘은 없습니다. 순차적 공간 할당이 지정된 테이블은 새로운 또는 빈 순차적 페이지를 사용할 수 있도록 조각난 페이지 또는 비워진 페이지를 의도적으로 건너뜁니다. 이 방법을 사용하면 데이터베이스 IOP가 줄어듭니다.

Exchange 2013에서 페이지 비우기는 비우기 기능 수행 시 서버의 성능 저하를 줄여줍니다. 여기에는 다음이 포함됩니다.

  • 최적화된 스토리지 및 네트워크 용량: ESE는 전체 페이지 이미지를 로깅하는 대신 트랜잭션 로그 파일에 페이지 제로 레코드를 씁니다. 이 방법을 사용하면 로그 쓰기 I/O가 줄어들고 로그 파일 전달에 필요한 대역폭 요구 사항이 줄어듭니다.
  • 최적화된 데이터베이스 디스크 I/O: Exchange 2010 RTM 및 이전 버전에서는 백업 중 또는 예약된 유지 관리 중에만 페이지 0이 발생하여 상당한 데이터베이스 디스크 I/O가 발생했습니다. Exchange 2010 SP1 이상(Exchange 2013 포함)에서 페이지 0은 기본적으로 발생하며 트랜잭션 시간에 발생합니다. 대부분의 경우 0은 하드 삭제 직후에 발생합니다. 이 디자인을 통해 데이터베이스는 엔진의 검사점 깊이 기능을 활용할 수 있습니다. 이 기능을 사용하면 더티 페이지가 일정 기간 동안 데이터베이스 캐시에 유지됩니다. 근접한 시간에 발생하는 다른 페이지 업데이트로 인해 추가 데이터베이스 쓰기 I/Os가 발생하지 않습니다. 이 디자인으로 인해 페이지 0은 데이터베이스 I/O에 큰 영향을 주지 않으므로 기본적으로 사용하도록 설정됩니다.

ESE 데이터베이스에서 페이지 비우기 구현

페이지 비우기는 영구 삭제 레코드를 바이너리 패턴으로 덮어씁니다. 페이지 0 패턴은 ESE 엔진 작업과 관련이 있으며 런타임 작업과 유지 관리 작업에는 다릅니다. 다음 표에는 특정 런타임 작업에 해당하는 채우기 패턴이 나와 있습니다.

ESE 런타임 동안 페이지 비우기의 채우기 패턴

ESE 런타임 작업 채우기 패턴
바꾸기 R
긴 값 삭제 기록 D
비운 페이지 공간 H

다음 표에는 ESE 백그라운드 데이터베이스 유지 관리 중에 발생하는 특정 작업에 해당하는 채우기 패턴이 나와 있습니다.

ESE 백그라운드 데이터베이스 유지 관리 동안 페이지 비우기의 채우기 패턴

ESE 백그라운드 데이터베이스 유지 관리 작업 채우기 패턴
레코드 삭제 D
Long 값 삭제 L
부분적으로 사용된 페이지의 비운 페이지 공간 Z
사용되지 않은 페이지의 비운 페이지 공간 U

백그라운드 데이터베이스 유지 관리

백그라운드 데이터베이스 유지 관리는 계속해서 각 데이터베이스를 체크섬하고 검색하는 프로세스입니다. 기본 기능은 데이터베이스 페이지를 체크섬하는 것이지만, 저장소 크래시로 인해 0이 되지 않은 레코드와 페이지를 정리하고 공간을 정리하는 작업도 처리합니다. 백그라운드 데이터베이스 유지 관리는 데이터베이스별로 초당 약 1MB를 처리합니다. 시기 적절한 페이지 0이 우선 순위인 경우 데이터베이스 크기를 줄여 더 짧은 기간(예: 24시간)의 크래시 복구 사례에 대해 페이지 0이 발생하도록 할 수 있습니다.

백그라운드 데이터베이스 유지 관리는 지속적인 프로세스이므로 시작 및 완료와 관련된 이벤트가 없습니다. 다음 성능 카운터 값을 읽어 백그라운드 데이터베이스 유지 관리 진행 상태를 추적할 수 있습니다.

  • MSExchange Database -> 인스턴스 -> 데이터베이스 유지 관리 기간

이 카운터는 지정된 데이터베이스에 대한 유지 관리가 마지막으로 완료된 이후 지난 시간(초)을 나타냅니다.

ESE 데이터베이스 페이지 비우기의 프로세스

다음 표에서는 데이터베이스 삭제 시나리오 및 페이지 비우기 기능이 수행되는 시기에 대해 설명합니다.

데이터베이스 삭제 시나리오 데이터베이스 데이터를 비우기 위한 ESE 프로세스 및 시간대
  • 시나리오 1: 단일 항목 복구가 사용되지 않으며, 사용자가 복구할 수 있는 항목 폴더에서 항목을 제거합니다.
  • 시나리오 2: 단일 항목 복구를 사용할 수 없으며 복구 가능한 항목 보존 기간이 0으로 설정됩니다.
  • 시나리오 3: 단일 항목 복구가 사용되며, 삭제된 항목 보존 기간에 따라 항목이 만료됩니다.
비동기 스레드는 삭제된 데이터를 바이너리 패턴으로 덮어씁니다. 이 작업은 레코드 삭제 후 몇 밀리초 이내에 발생합니다. 다음 시나리오에서 Store 프로세스가 충돌하는 경우:
  • 비동기 제로 작업은 여전히 미해결입니다.
  • 버전 저장소 증가로 인해 버전 저장소 정리가 취소됨

0은 백그라운드 데이터베이스 유지 관리가 데이터베이스의 해당 섹션을 처리할 때 완료됩니다.

보기 시나리오: Outlook/Outlook Web App 폴더 보기(예: 대화 보기)에서 항목의 만료 백그라운드 데이터베이스 유지 관리가 데이터베이스의 해당 섹션을 처리할 때 데이터 비우기가 발생합니다.
사서함 이동/사서함 삭제 시나리오: 원본 사서함 삭제(휴지통의 삭제된 사서함 만료) 백그라운드 데이터베이스 유지 관리가 데이터베이스의 해당 섹션을 처리할 때 데이터 비우기가 발생합니다.

페이지 비우기 동작 모니터링

다음 두 ESE 카운터를 확인하여 페이지 비우기 기능을 측정하고 모니터링할 수 있습니다.

  • MSExchange Database -> 데이터베이스 유지 관리 페이지 0: 성능 카운터가 호출된 이후 데이터베이스 엔진에서 0으로 설정한 페이지 수를 나타냅니다.
  • MSExchange Database -> 데이터베이스 유지 관리 페이지 0/초: 페이지가 0인 속도를 나타냅니다.

참고

이러한 카운터를 사용하도록 설정하는 방법에 대한 자세한 내용은 Extended ESE 성능 카운터 사용 설정 방법을 참조하세요.

페이지 0은 데이터베이스 유지 관리 함수이므로 성능 정보는 다음 카운터에 포함됩니다.

  • 런타임 트랜잭션에 대한 페이지 0
  • 백그라운드 데이터베이스 유지 관리로 인해 페이지가 0이 됩니다.

페이지 비우기 없는 사서함 데이터 형식

다음 사서함 데이터 유형에는 페이지 비우기에 대한 프로비전이 없습니다.

  • 사서함 데이터베이스 트랜잭션 로그(.log)

    트랜잭션 로그가 삭제되는 경우(백업 또는 순환 로깅을 통한 잘림으로 인해) 삭제된 로그 파일을 저장한 NTFS 파일 시스템에서 블록을 0으로 만드는 프로세스는 없습니다. NTFS는 새로 만든 로그에 대한 사용 가능한 공간을 신속하게 재사용할 가능성이 높지만 이런 일이 발생할 것이라는 보장은 없습니다.

  • 콘텐츠 인덱스 카탈로그 파일

    Exchange 2013은 검색 인덱싱 기능에 Search Foundation을 사용합니다. 검색 인덱스 카탈로그는 사서함 데이터베이스 파일로서 동일한 볼륨에 저장된 수십 개의 파일로 구성되어 있습니다. 메시지가 사서함 데이터베이스에서 영구 삭제될 때 검색 카탈로그의 연결된 콘텐츠는 즉시 삭제되지 않습니다. 콘텐츠 삭제는 Search Foundation에서 여러 작은 카탈로그 파일을 큰 단일 파일로 섀도 또는 마스터 병합 처리할 때 발생합니다. 마스터 병합이 완료된 후 작은 카탈로그 파일은 삭제됩니다. 삭제된 카탈로그 파일을 저장한 블록을 0으로 만드는 프로세스는 없습니다.