Hyper-V를 사용한 가상화된 도메인 컨트롤러
Windows Server 2012 이상에서는 가상 DC의 업데이트 시퀀스 번호(USN) 롤백 및 가상 DC 복제 기능 방지 보호 기능이 포함된 가상화된 DC(도메인 컨트롤러)를 지원합니다. 가상화는 서로 다른 서버 역할들을 하나의 물리 머신에 통합합니다. 자세한 내용은 AD DS(Active Directory Domain Services) 안전한 가상화를 참조하세요.
이 가이드에서는 DC를 32비트 또는 64비트 게스트 운영 체제로 실행하는 방법을 설명합니다.
가상화 계획
다음 섹션에는 하드웨어 요구 사항, 아키텍처, 구성 및 보안 및 성능 관리를 포함하여 DC를 가상화할 때 알아야 할 계획 시 고려 사항이 포함되어 있습니다.
Hyper-V 요구 사항
Hyper-V 역할을 설치하고 사용하려면 하드웨어가 다음 요구 사항을 충족해야 합니다.
x64 프로세서가 있어야 합니다.
프로세서에서 하드웨어 지원 가상화 기능을 활성화해야 합니다.
- 일반적으로 이 설정을 Intel VT(Intel 가상화 기술) 또는 AMD-V(AMD 가상화)라고 합니다.
프로세서는 DEP(하드웨어 데이터 실행 보호)를 지원해야 합니다.
- Intel XD(실행 비활성화) 비트 또는 AMD NX(실행 안 함) 비트를 사용하도록 설정한 경우에만 Hyper-V를 사용할 수 있습니다.
단일 장애 지점 회피
가상 DC 배포를 계획할 때 단일 장애 지점을 만들지 않도록 전략을 준비해야 합니다. 시스템 중복성을 구현하여 잠재적인 단일 장애 지점이나 다운타임이 전체 시스템의 작동을 중단시킬 수 있는 영역을 방지할 수 있습니다.
다음 권장 사항은 단일 장애 지점을 방지하는 데 도움이 될 수 있습니다. 그러나 이러한 권장 사항을 따르면 관리 비용이 증가할 수 있다는 점을 기억해야 합니다.
서로 다른 가상화 호스트에서 도메인당 두 개 이상의 가상화된 DC를 실행합니다. 이 구성은 가상화 호스트가 작동을 중지하는 경우 모든 DC를 잃을 위험을 줄입니다.
DC를 실행하는 하드웨어를 다양화합니다. 예를 들어 다른 CPU, 마더보드, 네트워크 어댑터 등을 사용합니다. 다양한 하드웨어는 디바이스 및 하드웨어 오작동 또는 공급업체의 구성으로 인한 손상을 방지합니다.
가능하면 다른 지역들에 있는 하드웨어에서 DC를 실행합니다. 이 방법은 DC를 호스팅하는 사이트 중 하나에 영향을 주는 재해 피해를 줄입니다.
모든 도메인에 물리 DC를 추가합니다. 물리적 DC를 사용하도록 시스템을 구성하면 호스트 시스템에서 가상화 플랫폼 오작동이 발생하지 않습니다.
보안 고려 사항
컴퓨터가 도메인에 가입된 컴퓨터 또는 작업 그룹 컴퓨터인 경우에도 쓰기 가능한 DC처럼 가상 DC를 실행하는 호스트 컴퓨터를 신중하게 관리해야 합니다. 이 요구 사항은 보안상의 이유로 요구됩니다. 잘못 관리되는 호스트는 권한 상승 공격에 취약하며, 악의적인 사용자는 관리자가 낮은 수준의 역할 할당에 잘못된 수준의 권한을 할당했기 때문에 예상보다 높은 권한에 액세스할 수 있습니다. 이러한 공격은 영향을 받는 컴퓨터에서 호스트하는 모든 VM(가상 머신), 도메인 및 포리스트를 손상시킬 수 있습니다.
DC를 가상화하려는 경우 다음 보안 고려 사항을 염두에 두어야 합니다.:
가상 쓰기 가능 DC를 호스트하는 컴퓨터의 로컬 관리자 자격 증명은 해당 DC가 속한 모든 도메인 및 포리스트의 기본 도메인 관리자와 동일하게 처리되어야 합니다.
Hyper-V 외에 애플리케이션이 없는 Windows Server의 Server Core 설치를 실행하는 호스트가 있도록 시스템을 구성하는 것이 좋습니다. 이 구성은 서버에 설치하는 애플리케이션 및 서버 수를 제한합니다. 이 제한은 시스템 성능을 향상시키고 애플리케이션 및 서비스를 통한 악의적인 공격의 진입 지점이 줄어드는 감소된 공격 표면을 만듭니다.
지사 또는 보안이 어려운 다른 위치의 경우 RODC(읽기 전용 DC)를 사용하는 것이 좋습니다. 별도의 관리 네트워크가 있는 경우 호스트를 관리 네트워크에만 연결하는 것이 좋습니다. RODC를 설치 하는 방법에 대한 자세한 내용은 Windows Server 2012 Active Directory 읽기 전용 도메인 컨트롤러 설치(RODC) (수준 200)를 참조하세요.
BitLocker를 사용하여 DC를 보호할 수 있습니다. Windows Server 2016 이상에서는 시스템 볼륨의 잠금을 해제하는 데 필요한 게스트 키 자료를 제공하는 가상 TPM(신뢰할 수 있는 플랫폼 모듈) 기능을 사용할 수도 있습니다.
보호된 패브릭 및 보호된 VM은 DC를 보호하기 위한 다른 컨트롤을 제공할 수 있습니다.
DC 보안에 대한 자세한 내용은 Active Directory 설치를 보호하기 위한 모범 사례 가이드를 참조하세요.
호스트 및 게스트 구성에 대한 보안 경계
다양한 유형의 DC 구성에서 VM(가상 머신)을 구현할 수 있습니다. 따라서 이러한 VM이 Active Directory 토폴로지의 경계 및 트러스트에 미치는 영향을 신중하게 고려해야 합니다. 다음 목록에서는 Hyper-V 서버의 Active Directory DC 및 호스트 및 Hyper-V 서버에서 실행되는 VM인 게스트 컴퓨터에 대해 설정할 수 있는 두 가지 구성에 대해 설명합니다.
- DC인 게스트가 있는 작업 그룹 또는 구성원 컴퓨터인 호스트입니다.
- 호스트가 작업 그룹 또는 구성원 컴퓨터이고 게스트도 작업 그룹 또는 구성원 컴퓨터인 경우.
다음 다이어그램에서는 Hyper-V 서버에서 호스트되는 3개의 게스트 DC VM 구성을 보여 줍니다.
3개의 VM(가상 머신) 및 Hyper-V 서버를 배포하는 예제의 다이어그램입니다. 세 개의 VM은 "게스트 머신"이라는 레이블이 지정된 파란색 사각형 내부에 있습니다. 세 VM은 모두 도메인 컨트롤러입니다. VM 1은 Corp 도메인 및 Contoso.com 포리스트에 있습니다. VM2는 Fabrikam 도메인 및 Fabrikam.com 포리스트에 있습니다. VM 3은 HQ 도메인 및 Fineartschool.net 포리스트에 있습니다. Hyper-V 서버가 파란색 사각형 외부에 있습니다. Corp 도메인 및 Contoso.com 포리스트에 있는 구성원 서버입니다.
이전 다이어그램의 예제 구성에 따라 다음과 같은 배포를 계획할 때 고려해야 할 몇 가지 중요한 고려 사항은 다음과 같습니다.
관리자 액세스
- 호스트 컴퓨터의 관리자 자격 증명은 쓰기 가능한 DC의 도메인 관리자 자격 증명과 동일하게 처리되어야 합니다. RODC 게스트의 경우 호스트 컴퓨터의 관리자 자격 증명은 게스트 RODC의 로컬 관리자 자격 증명과 동일하게 처리되어야 합니다.
호스트 컴퓨터에 대한 DC 관리 권한
- 호스트를 동일한 도메인에 가입하는 경우 가상화된 DC의 관리자는 호스트에 대한 관리 권한을 갖습니다. 그러나 이 액세스 권한은 악의적인 사용자가 VM 1에 액세스할 수 있는 경우 모든 VM을 손상시킬 수 있는 기회를 제공할 수도 있습니다. 이 시나리오에서는 가능한 공격 벡터를 만듭니다. 이 공격 벡터를 방지하려면 여러 도메인 또는 포리스트에 대해 구성된 모든 DC가 모든 도메인에서 신뢰할 수 있는 중앙 관리 도메인을 가지도록 하고, 가상화 호스트를 높은 권한이 부여된 관리 도메인의 구성원으로 만드세요. 이 방법을 사용하면 개별 도메인 관리자가 호스트 및 다른 도메인을 제어할 수 없습니다.
공격 회피하기
- 악성 사용자는 VM 1을 RODC로 설치하더라도 공격할 수 있습니다. RODC 관리자는 도메인 관리자 권한을 명시적으로 가지고 있지 않지만 여전히 RODC를 사용하여 호스트 컴퓨터에 정책을 적용할 수 있습니다. 예를 들어 이러한 정책에는 예를 들어 시작 스크립트가 포함될 수 있습니다. 악의적인 행위자가 RODC 관리자 권한을 가져오는 방법을 찾고 악의적인 시작 스크립트를 사용하여 정책을 보내는 경우 호스트 컴퓨터를 손상시키고 이를 사용하여 호스트의 다른 VM을 손상시킬 수 있습니다.
VHD(가상 하드 디스크) 파일 보안
- 가상 DC에 대한 VHD 파일은 실제 DC의 실제 하드 드라이브와 같습니다. 하드 드라이브와 마찬가지로 VHD 파일을 보호하는 데 주의를 기울여야 합니다. 신뢰할 수 있고 신뢰할 수 있는 관리자만 이러한 VHD 파일에 액세스할 수 있도록 허용해야 합니다.
RODC
- 지점과 같이 물리적 보안이 보장되지 않는 위치에 RODC를 배치할 수 있습니다. Windows BitLocker 드라이브 암호화를 사용하여 물리적 디스크 도난과 관련된 호스트의 공격으로부터 VHD 파일을 보호할 수 있습니다. 그러나 이러한 보호는 RODC 내의 파일 시스템에는 적용되지 않습니다.
성능 고려 사항
Microkernel 64비트 아키텍처는 이전 가상화 플랫폼보다 Hyper-V 성능이 향상되었습니다.
VM 성능은 사용하는 워크로드에 따라 달라집니다. 특정 VM 토폴로지를 테스트하여 Active Directory 배포 성능에 만족하는지 확인할 것을 권장합니다. 특정 기간 동안의 작업 부하에서 성능을 평가하려면 신뢰성 및 성능 모니터(Perfmon.msc) 또는 Microsoft 평가 및 계획(MAP) 도구 키트와 같은 도구를 사용할 수 있습니다. MAP 도구를 사용하면 네트워크 내에서 현재 모든 서버 및 서버 역할의 인벤토리를 사용할 수도 있습니다.
가상화된 DC 성능 테스트의 작동 방식에 대한 아이디어를 제공하기 위해 ADTest.exe(Active Directory 성능 테스트 도구)를 사용하여 예제 성능 테스트를 만들었습니다.
LDAP(Lightweight Directory Access Protocol) 테스트는 ADTest.exe
를 사용해 물리적 DC에서 수행 되었습니다. 실제 DC와 동일한 서버에서 호스트되는 VM으로 구성된 가상화된 DC에서 동일한 테스트가 실행되었습니다. 이 예제 빌드에서 물리적 컴퓨터용 논리 프로세서는 하나만 사용되었으며 VM용 가상 프로세서도 하나만 사용되었습니다. 이 구성을 통해 배포가 100% CPU 사용률에 쉽게 도달할 수 있습니다.
다음 표에서는 물리적 및 가상 DC에 대한 테스트 결과를 나열합니다. 테스트 이름 옆에 있는 괄호 안에 있는 문자와 숫자는 ADTest.exe 레이블입니다. 이 데이터는 가상화된 DC 성능이 실제 DC 성능의 88~98% 사이임을 보여줍니다.
측정 | 테스트 | 물리적 | 가상 | 델타 |
---|---|---|---|---|
검색/초 | 기본 범위에서 일반 이름 검색(L1) | 11508 | 10276 | -10.71% |
검색/초 | 기본 범위에서 특성 집합 검색(L2) | 10123 | 9005 | -11.04% |
검색/초 | 기본 범위의 모든 특성 검색(L3) | 1284 | 1242 | -3.27% |
검색/초 | 하위 트리 범위에서 일반 이름 검색(L6) | 8613 | 7904 | -8.23% |
성공 바인드/초 | 빠른 바인딩 수행(B1) | 14:38 | 1374 | -4.45% |
성공 바인드/초 | 간단한 바인딩 수행(B2) | 611 | 550 | -9.98% |
성공 바인드/초 | NTLM을 사용하여 바인딩 수행(B5) | 1,068 | 1056 | -1.12% |
쓰기/초 | 여러 특성 작성(W2) | 6467 | 5885 | -9.00% |
테스트 배포에서 성능을 극대화하기 위해 이 테스트 빌드에 통합 구성 요소(IC)를 설치하여 게스트 OS가 하이퍼바이저 인식 가상 드라이버를 사용할 수 있도록 했습니다. IC를 설치할 때 에뮬레이트된 IDE(통합 드라이브 전자 장치) 또는 네트워크 어댑터 드라이버를 사용해야 하는 경우가 있습니다. 프로덕션 환경에서는 성능을 향상시키려면 이러한 에뮬레이트된 드라이버를 가상 드라이버로 교체해야 합니다.
이 테스트에 따라 성능 향상을 위한 다음 권장 사항을 고려합니다.
Perfmon.msc
도구를 사용하여 VM 성능을 모니터링하는 경우 VM에 대한 CPU 정보가 완전히 정확하지 않은 경우가 있습니다. 이 부정확성은 가상 CPU가 실제 프로세서에서 실행되도록 예약된 방식 때문입니다. Hyper-V 서버에서 실행되는 VM에 대한 보다 정확한 CPU 정보를 보려면 호스트 파티션에서 Hyper-V 하이퍼바이저 논리 프로세서 카운터를 대신 사용합니다. AD DS 및 Hyper-V의 성능 튜닝에 대한 자세한 내용은 Windows Server에 대한 성능 튜닝 지침을 참조하세요.차이점 보관 디스크 VHD는 성능을 저하시킬 수 있으므로 DC로 구성된 VM에서 차이점 디스크 VHD 사용을 피할것을 권장합니다. 차이점 보관 디스크를 비롯한 Hyper-V 디스크 유형에 대한 자세한 내용은 새 가상 하드 디스크 마법사를 참조하세요.
또한 가상 호스팅 환경에서 Active Directory DC를 호스트할 때 고려할 항목을 읽어 가상 호스팅 환경에서 AD DS를 사용하는 방법에 대한 정보를 숙지하는 것이 좋습니다.
배포 고려 사항
다음 섹션에서는 DC를 배포할 때 피해야 할 일반적인 VM 관행과 시간 동기화 및 스토리지에 대한 특별 고려 사항을 설명합니다.
배포 권장 사항
Hyper-V와 같은 가상화 플랫폼에는 컴퓨터를 보다 쉽게 관리, 유지 관리, 백업 및 마이그레이션할 수 있는 많은 기능이 있습니다. 그러나 가상 DC에 이러한 기능을 활용하기 위해 따라야 하는 특정 권장 사항이 있습니다.
Active Directory 쓰기가 지속되도록 하려면 NTDS.DIT 가상 IDE 디스크의 Active Directory 데이터베이스, 로그 및 SYSVOL와 같은 가상 DC 데이터베이스 파일을 배포하지 마세요. 대신 가상 소형 컴퓨터 시스템 인터페이스(SCSI) 컨트롤러에 연결된 두 번째 가상 하드 디스크(VHD)를 생성하고 DC를 설치할 때 데이터베이스 파일이 VM SCSI 디스크에 있는지 확인하십시오.
DC로 구성하는 VM에서 차이점 디스크 VHD를 구현하지 마세요. 이 방법을 사용하면 배포를 이전 버전으로 쉽게 되돌릴 수 있지만 성능도 저하됩니다. VHD 유형에 대한 자세한 내용은 새 가상 하드 디스크 마법사를 참조 하세요.
먼저 시스템 준비 도구(sysprep)를 사용하여 배포를 준비하지 않고 Windows Server OS의 복사본에 Active Directory 도메인 및 포리스트를 배포하지 마세요. Sysprep 실행에 대한 자세한 내용은 Sysprep(시스템 준비) 개요를 참조하십시오.
Warning
승격된 DC에서 Sysprep을 실행하는 것은 AD 데이터베이스 및 관련 구성 요소에 부정적인 영향을 미치고 다음 문제를 일으킬 수 있으므로 권장되지 않습니다:
- 데이터 손실
- AD 데이터베이스 손상
- 안정성 및 기능 문제
- 애플리케이션, 서비스 및 드라이버 문제
배포한 DC의 VHD 파일 복사본을 사용하여 다른 DC를 배포하지 마세요. 복사본을 사용하지 않으면 잠재적인 USN 롤백 시나리오가 방지됩니다. USN 롤백에 대한 자세한 내용은 USN 및 USN 롤백을 참조하세요.
- Windows Server 2012 이상에서 관리자는 DC 이미지를 복제하여 더 많은 DC를 배포할 수 있지만 제대로 준비된 이미지를 사용하는 경우에만 배포할 수 있습니다.
Hyper-V 내보내기 기능을 사용하여 DC를 실행하는 VM을 내보내지 마세요.
Windows Server 2012 이상에서는 시스템에서 인증할 수 없는 복원과 같은 DC 가상 게스트 내보내기 및 가져오기를 처리합니다. 이 프로세스는 생성 ID가 변경되었는지, DC가 복제하도록 구성되지 않았는지 검색합니다.
게스트 VM을 내보낼 때 아무도 사용하지 않는지 확인해야 합니다. 작업을 더 쉽게 수행하려면 Hyper-V 복제를 사용하여 DC의 비활성 복사본을 만들 수 있습니다. 복제된 이미지 사용을 시작할 때 DC 게스트 이미지를 내보낸 후 원본 이미지와 마찬가지로 정리를 수행해야 합니다.
물리-가상 변환
System Center VMM(VM 관리자)을 사용하면 물리적 컴퓨터와 VM을 통합된 방식으로 관리할 수 있습니다. VMM을 사용하여 물리적 컴퓨터를 VM으로 마이그레이션할 수도 있습니다. 이 마이그레이션 프로세스를 물리-VM 변환 또는 P2V 변환이라고 합니다. P2V 변환 프로세스를 시작하려면 마이그레이션하는 VM 및 실제 DC가 동시에 실행되지 않는지 확인해야 합니다. USN 및 USN 롤백에 설명된 대로 두 컴퓨터가 동시에 실행되지 않도록 하면 USN 롤백 시나리오가 방지됩니다.
DC를 다시 켤 때 디렉터리 데이터를 일관되게 유지하려면 오프라인 모드에서 P2V 변환을 수행해야 합니다. 물리적 서버 변환 설치 관리자에서 오프라인 모드로 전환할 수 있습니다. 오프라인 모드를 사용하는 방법에 대한 자세한 내용은 P2V: VMM에서 물리적 컴퓨터를 VM으로 변환을 참조하세요.
또한 P2V 변환 중에 네트워크에서 VM의 연결을 끊어야 합니다. 변환 프로세스를 완료하고 모든 것이 작동하는지 확인한 후에만 네트워크 어댑터를 사용하도록 설정해야 합니다. 이때 물리적 원본 컴퓨터를 종료해야 합니다. 하드 디스크를 다시 포맷할 때까지 물리적 원본 컴퓨터를 켜고 네트워크에 다시 연결하지 마세요.
USN 롤백 방지
가상 DC를 만들 때 USN 롤백 시나리오를 만들지 않아야 합니다. 롤백을 방지하려면 정기적으로 승격하거나, Media에서 설치(IfM)에서 승격하거나, 하나 이상의 가상 DC가 이미 있는 경우 DC를 복제하여 새 가상 DC를 설정할 수 있습니다. 또한 이 방법을 사용하면 P2V로 변환된 가상 게스트가 발생할 수 있는 하드웨어 또는 플랫폼 문제를 방지할 수 있습니다.
Warning
Active Directory 복제와 관련된 문제를 방지하려면 지정된 네트워크에 언제든지 하나의 물리적 또는 가상 DC만 존재하는지 확인합니다. 다음 방법 중 하나를 사용하여 이전 복제본이 문제가 될 가능성을 낮출 수 있습니다.
새 가상 DC가 실행 중인 경우 다음 명령을 두 번 실행하여 컴퓨터 계정 암호를 변경합니다.
netdom resetpwd /Server:<domain-controller>
새 가상 게스트를 내보내고 가져와서 강제로 새로운 세대 ID 및 데이터베이스 호출 ID가 되도록 합니다.
테스트 환경 및 P2V 마이그레이션
P2V 마이그레이션을 VMM과 함께 사용하여 테스트 환경을 만들 수 있습니다. 이 방법을 사용하면 프로덕션 DC를 영구적으로 중단하지 않고 프로덕션 DC를 물리적 컴퓨터에서 VM으로 마이그레이션하여 테스트 환경을 만들 수 있습니다. 그러나 동일한 DC의 두 인스턴스가 존재할 수 있도록 프로덕션 환경과 별도의 네트워크에 테스트 환경을 빌드해야 합니다. P2V 마이그레이션을 사용하여 테스트 환경을 만들 때 USN 롤백을 방지하는 것이 중요합니다.
테스트 환경 만들기
P2V를 사용하여 테스트 환경을 만들 때 다음을 수행하는 것이 좋습니다.
물리-가상 변환의 권장 사항에 따라 P2V를 사용하여 각 도메인에서 테스트 VM으로 프로덕션 내 DC 하나를 마이그레이션합니다.
물리적 프로덕션 머신과 테스트 VM을 다시 온라인으로 가져올 때 다른 네트워크에 배치합니다.
테스트 환경에서 USN 롤백을 방지하려면 네트워크에서 마이그레이션하려는 모든 DC의 연결을 끊습니다. NTDS 서비스를 중지하거나 DSRM(Directory Services 복원 모드)에서 컴퓨터를 다시 시작하여 DC의 연결을 끊을 수 있습니다.
네트워크에서 DC의 연결을 끊은 후에는 환경에 새 업데이트를 도입하지 마세요.
P2V 마이그레이션 중에 네트워크에 컴퓨터를 연결하지 마세요. 모든 컴퓨터 마이그레이션을 완료한 후에만 다시 연결할 수 있습니다.
P2V 변환 후에만 테스트 DC를 테스트 환경에서 복제본으로 승격해야 합니다.
시간 서비스 및 동기화
DC로 구성한 VM의 경우 DC 역할을 하는 호스트 시스템과 게스트 OS간 시간 동기화를 사용하지 않도록 설정하는 것이 좋습니다. 게스트 DC가 호스트 시스템과 동기화되지 않고 대신 도메인 계층 구조와 동기화됩니다.
Hyper-V 시간 동기화 공급자를 사용하지 않도록 설정하려면 VM을 해제한 다음, VM 설정으로 이동하여 통합 서비스를 선택하고 시간 동기화 확인란을 선택 취소합니다.
스토리지 및 최적화
이 섹션의 스토리지 권장 사항에 따라 DC VM 성능을 최적화하고 Active Directory 쓰기가 지속성 있는지 확인하는 것이 좋습니다.
게스트 스토리지의 경우 Active Directory 데이터베이스 파일(
Ntds.dit
) 및 로그 및 SYSVOL 파일을 OS 파일과 별도의 가상 디스크에 저장합니다. 이러한 파일을 가상 SCSI 컨트롤러에 연결된 두 번째 VHD의 가상 SCSI 디스크에 저장하는 것이 좋습니다. 가상 SCSI 디스크는 성능을 향상시키고 FUA(강제 단위 액세스)를 지원합니다. FUA를 사용하면 OS는 캐싱 메커니즘을 우회하여 미디어에서 직접 작성하고 읽습니다.BitLocker를 사용하여 가상 DC 게스트를 보호하는 경우 Enable-BitLockerAutoUnlock PowerShell cmdlet을 사용하여 자동 잠금 해제를 위한 추가 볼륨을 구성합니다.
호스트에 VHD 파일을 저장할 때 호스트 OS의 시스템 디스크와 같은 다른 서비스 또는 애플리케이션에서 자주 사용되지 않는 디스크를 사용해야 합니다. 각 VHD 파일을 호스트 OS 및 기타 VHD 파일과 별도의 파티션에 저장하고, 바람직하게는 별도 물리적 드라이브에 저장합니다.
호스트 물리 디스크 시스템이 가상화된 워크로드 데이터 무결성 요구 사항을 충족하려면 다음 조건 중 하나 이상을 충족해야 합니다.
호스트는 SCSI 또는 파이버 채널과 같은 서버 클래스 디스크를 사용합니다.
호스트는 디스크가 배터리 지원 캐싱 HBA에 연결되어 있는지 확인합니다.
호스트는 스토리지 디바이스로 RAID(독립 디스크) 시스템의 중복 배열과 같은 스토리지 컨트롤러를 사용합니다.
호스트는 UPS(무정전 전원 공급 장치)를 사용하여 디스크에 전원을 공급합니다.
호스트는 기본적으로 디스크의 쓰기 캐싱 기능을 사용하지 않도록 설정합니다.
VHD 파일을 사용하는 경우 성능에 최적화되어 있으므로 통과 디스크 또는 고정 크기 VHD를 사용하는 것이 좋습니다. 동적으로 확장되는 디스크와 차이점 디스크는 디스크 활동이 많은 동안 지연과 성능 저하를 일으킬 수 있으며, 이전 스냅샷으로 롤백할 때 데이터 손실이 발생할 수 있으므로 권장하지 않습니다.
가상 SCSI 컨트롤러를 사용하여 Active Directory 데이터가 손상될 가능성을 줄이는 것이 좋습니다.
- 가상 DC를 호스트하는 Hyper-V 서버에서 SCSI 물리적 드라이브를 사용해야 합니다. 시나리오에서 SCSI 드라이브를 사용할 수 없는 경우 대신 사용 중인 ATA(Advanced Technology Attachment) 또는 IDE(통합 드라이브 전자 장치) 드라이브에서 쓰기 캐싱을 사용하지 않도록 설정해야 합니다. 자세한 내용은 이벤트 ID 1539 – 데이터베이스 무결성을 참조 하세요.
VM 도메인 컨트롤러에 대한 운영 제한 사항
VM에서 실행되는 도메인 컨트롤러에는 물리적 컴퓨터에서 실행되는 DC에 적용되지 않는 운영 제한이 있습니다. 가상화된 DC를 사용하는 경우 다음 지침을 따라야 합니다.
DC를 VM에서 일시 중지, 중지 또는 저장된 상태로 포리스트의 삭제 표시 수명보다 오래 보관하지 마십시오. 삭제 표시 수명보다 오래 일시 중지하거나 저장한 저장된 상태를 다시 시작하면 복제가 방해가 될 수 있습니다. 포리스트의 삭제 표시 수명을 확인하는 방법을 알아보려면 포리스트의 삭제 표시 수명 확인을 참조하세요.
VHD를 복사하거나 복제하지 마세요.
가상 DC의 스냅샷을 찍거나 사용하지 마세요. 대신 보다 영구적이고 신뢰할 수 있는 백업 방법을 사용해야 합니다.
DC를 실행하는 VM에서 내보내기 기능을 사용하지 마세요.
지원되지 않는 백업 방법을 사용하여 DC 또는 Active Directory 데이터베이스의 콘텐츠를 복원하거나 롤백하지 마세요.
백업 및 복원 고려 사항
재해 시나리오 또는 관리 오류로 인한 데이터 손실을 방지하려면 DC를 백업해야 합니다. Active Directory에서 지원하는 백업 방법은 백업 애플리케이션을 사용하여 DC의 현재 설치에서 만든 시스템 상태 백업을 복원하는 것입니다. 애플리케이션은 Windows Server 백업과 같은 Active Directory와 호환되는 애플리케이션이어야 합니다. 지원되는 백업 방법에 대한 자세한 내용은 AD DS 백업 및 복구 단계별 가이드를 참조 하세요.
가상화 배포에서는 Active Directory 백업 작업에 대한 특정 요구 사항에 특히 주의해야 합니다. 예를 들어 VHD 파일의 복사본을 사용하여 DC를 복원하고 복원한 후 DC의 데이터베이스 버전을 업데이트하지 않으면 DC 복제본 간의 부정확한 추적 번호로 인해 복제에 문제가 발생할 수 있습니다. 대부분의 경우 복제는 이 문제를 감지하지 않고 오류를 보고하지도 않지만 DC 간의 불일치로 인해 특정 시나리오에서 문제가 발생할 수 있습니다.
가상화 DC 백업 및 복원에 권장되는 방법
가상화 DC를 백업하고 복원하는 데 사용하는 방법은 게스트 OS에서 Windows Server 백업을 실행하는 것입니다. 자세한 내용은 가상 도메인 컨트롤러 복원을 참조하십시오.
기술적으로 VHD 파일의 스냅샷 또는 복사본을 사용하여 백업을 복원할 수 있지만 다음과 같은 이유로 이러한 방법을 사용하지 않는 것이 권장됩니다.
VHD 파일을 복사하거나 복제하는 경우 버전 번호가 자동으로 업데이트되지 않기 때문에 데이터베이스가 부실 상태가 됩니다. 추적 번호의 이러한 불일치는 VHD를 정상 모드로 시작하는 경우 잠재적으로 USN 롤백을 일으킬 수 있음을 의미합니다.
Windows Server 2016 이상은 스냅샷과 호환되지만 스냅샷은 재해 시나리오 중에 시스템을 지속적으로 복원하는 데 필요한 안정적이고 영구적인 백업 기록 유형을 제공하지 않습니다. Windows Server 2016 Hyper-V 이상에서 만들 수 있는 VSS(볼륨 섀도 복사본 서비스) 기반 스냅샷도 BitLocker와 호환되지 않으므로 잠재적인 보안 문제가 발생할 수 있습니다. 이 문제는 Hyper-V가 스냅샷 볼륨을 탑재하려고 할 때 Active Directory 데이터베이스 엔진이 스냅샷이 포함된 데이터베이스에 액세스하지 못하게 합니다.
참고 항목
보호된 패브릭 및 보호된 VM에 설명된 보호된 VM 프로젝트에는 게스트 VM 의 최대 데이터 보호를 위한 비목적 백업으로 Hyper-V 호스트 기반 백업이 있습니다.
USN 및 USN 롤백
이 섹션에서는 이전 버전의 VM을 사용하여 Active Directory 데이터베이스를 잘못 복원한 결과로 발생할 수 있는 복제 문제에 대해 설명합니다. Active Directory 복제 프로세스에 대한 자세한 내용은 Active Directory 복제 개념을 참조하세요.
AD DS 및 DC에서 USN을 사용하는 방법
AD DS는 USN을 사용하여 DC 간의 데이터 복제를 추적합니다. 디렉터리의 데이터를 변경할 때마다 USN이 증가하여 새로운 변경 사항을 나타냅니다.
대상 DC는 USN을 사용하여 저장하는 각 디렉터리 파티션에 대한 업데이트를 추적합니다. 또한 USN은 이러한 디렉터리 파티션의 복제본을 저장하는 모든 DC의 상태를 추적합니다. DC가 서로 변경 사항을 복제할 때, 파트너로부터 받은 마지막 변경 사항보다 큰 USN을 가진 변경 사항을 복제 파트너에게 쿼리합니다.
USN이 포함된 복제 메타데이터 테이블은 최신 벡터 및 상위 워터 마크에서 찾을 수 있습니다. 원본 DC와 대상 DC 모두 이러한 테이블을 사용하여 대상 DC에 필요한 업데이트를 필터링합니다.
대상 DC는 모든 원본 DC에서 수신하는 원래 업데이트를 추적하기 위해 최신 벡터 테이블을 유지 관리합니다. 대상 DC가 디렉터리 파티션에 대한 변경 내용을 요청하는 경우 원본 DC에 최신 벡터를 제공합니다. 그런 다음 원본 DC는 이 값을 사용하여 대상 DC로 보내는 업데이트를 필터링합니다. 원본 DC는 복제 주기가 성공적으로 완료된 후 대상 DC에 최신 벡터를 보냅니다. 원본 DC는 USN을 사용하여 대상 DC가 모든 DC의 원래 업데이트와 동기화되고 대상에 대한 업데이트가 원본과 동일한 수준에 있는지 추적합니다.
대상 DC는 특정 파티션에 대해 특정 원본 DC에서 받은 최신 변경 내용을 추적하기 위해 상위 워터 마크 테이블을 유지 관리합니다. 상위 워터 마크 테이블은 원본 DC가 대상 DC에서 이미 받은 변경 내용을 보내지 못하도록 합니다.
디렉터리 데이터베이스 ID
DC는 USN 외에도 원본 복제 파트너의 디렉터리 데이터베이스를 추적합니다. 시스템은 서버 개체 자체의 ID와 별도로 서버에서 실행되는 디렉터리 데이터베이스의 ID를 유지 관리합니다. 각 DC의 디렉터리 데이터베이스 ID는 Lightweight Directory Access Protocol (LDAP) 경로 cn=NTDS Settings, cn=ServerName, cn=Servers, cn=*SiteName*, cn=Sites, cn=Configuration, dc=*ForestRootDomain*
아래에 있는 NTDS Settings
객체의 invocationID
속성에 저장됩니다.
시스템은 서버 개체 ID를 NTDS Settings
개체의 objectGUID
특성에 저장합니다. 서버 개체의 ID는 절대 변경되지 않습니다. 그러나 디렉터리 데이터베이스의 ID는 다음과 같은 상황에서 변경됩니다.
서버에서 시스템 상태 복원 프로시저가 발생하는 경우
서버에 애플리케이션 디렉터리 파티션을 추가한 다음 제거한 다음 다시 추가합니다.
Hyper-V 인스턴스가 가상 DC의 VHD를 포함하는 파티션에서 해당 VSS 기록기를 트리거하는 경우
이 시나리오에서 게스트는 자체 VSS 기록기를 트리거합니다. 이 작업은 백업 및 복원 프로세스에서 사용하는 것과 동일한 메커니즘입니다. 이 방법은
invocationID
특성을 다시 설정합니다.
invocationID
특성은 특정 버전의 디렉터리 데이터베이스를 사용하는 DC의 원래 업데이트 집합과 관련이 있습니다. 최신 벡터와 상위 워터 마크 테이블은 각각 invocationID
및 DC GUID를 사용 하므로 DC는 복제 정보가 제공되는 Active Directory 데이터베이스의 복사본을 인식합니다.
invocationID
특성은 repadmin /showrepl
명령을 실행한 후 출력 맨 위에 표시되는 GUID(Globally Unique Identifier) 값입니다. 다음 텍스트는 명령의 예제 출력입니다:
Repadmin: running command /showrepl against full DC local host
Default-First-Site-Name\VDC1
DSA Options: IS_GC
DSA object GUID: 966651f3-a544-461f-9f2c-c30c91d17818
DSA invocationID: b0d9208b-8eb6-4205-863d-d50801b325a9
DC에서 AD DS를 복원하면 시스템에서 invocationID
특성을 다시 설정합니다. 이 변경으로 인해 복제 트래픽이 증가하며, 복제하는 파티션의 크기에 따라 지속 시간이 달라집니다.
이 시나리오를 설명하기 위해 다음 다이어그램은 가상 도메인 컨트롤러 VDC1 및 도메인 컨트롤러 DC2가 동일한 도메인의 두 DC인 예제 환경을 보여 줍니다. 이 다이어그램은 지원되는 복원 시나리오에서 다시 설정한 후 DC2가 VDC1에서 invocationID
값을 검색하는 방법을 보여 줍니다.
VDC1의 자체 보기와 DC2의 VDC1 뷰를 보여 주는 흐름도를 보여 주는 다이어그램입니다. VDC1라인에서 VDC1은 USN 1000과 Invocation ID B로 시작합니다. 그런 다음 USN 500과 Invocation ID B를 가진 이전 버전으로 복원됩니다. VDC1에서 변경 사항이 발생하여 USN 600으로 다시 올라가지만 Invocation ID는 동일하게 유지됩니다. "VDC1의 DC2 보기"라는 줄에서 DC2는 VDC1(A)@USN1000 호출 ID로 시작합니다. VDC1이 복원되면 DC2는 예상 USN을 1000에서 500으로 다시 설정하여 호출 ID B VDC1(B)@USN500 값을 만듭니다. 두 호출 ID A와 호출 ID B를 계속 추적합니다. VDC1에서 다음 변경 세트가 발생한 후, DC2는 이제 VDC1의 USN 1000의 호출 ID A와 USN 600의 새로운 호출 ID B를 추적합니다.
USN 롤백
USN 롤백은 시스템이 USN을 정상적으로 업데이트할 수 없거나, 사용자가 USN 업데이트를 우회하거나, DC가 최신 업데이트보다 낮은 USN을 사용하려고 할 때 발생합니다. 시스템에서 USN 롤백을 검색하면 불일치로 인해 포리스트에서 분기가 발생할 수 있기 전에 복제가 중지됩니다.
많은 요인으로 인해 USN 롤백이 발생할 수 있습니다. 예를 들어 이전 VHD 파일을 사용하거나 변환 후 물리적 컴퓨터의 연결을 영구적으로 끊지 않고 P2V 변환을 수행하는 경우 발생할 수 있습니다.
USN 롤백 방지
다음 예방 조치를 취하여 USN 롤백을 방지할 수 있습니다.
Windows Server 2012 이상을 실행하지 않는 경우 DC VM의 스냅샷을 만들거나 사용하지 마세요.
DC VHD 파일을 복사하지 마세요.
Windows Server 2012 이상을 실행하지 않는 경우 DC를 실행하는 VM을 내보내지 마세요.
지원되는 자사 백업 솔루션(예: Windows Server 백업)을 사용하여 DC를 복원하거나 Active Directory 데이터베이스의 콘텐츠만 롤백합니다.
시스템에서 USN 롤백을 감지하지 못하는 경우 복제 오류가 발생할 수 있습니다. 복제 오류가 발생하면 문제의 범위를 식별하고 가능한 한 빨리 해결해야 합니다. USN 롤백의 결과로 발생할 수 있는 잔류 개체를 제거하는 방법에 대한 자세한 내용은 Active Directory 복제 이벤트 ID 1388 또는 1988: 잔류 개체가 검색됨을 참조하세요.
USN 롤백 감지
대부분의 경우 시스템은 특성을 다시 설정하지 않고 DC를 복원하여 발생하는 invocationID
특성의 불일치를 추적하여 USN 롤백을 감지할 수 있습니다. Windows Server 2008은 지원되지 않는 DC 복원 작업 후 복제 오류에 대한 보호를 제공합니다. 이러한 보호는 지원되지 않는 복원이 원래 버전보다 낮은 USN을 만들 때 트리거되며, 이는 복제 파트너가 이미 받은 변경 내용을 나타냅니다.
Windows Server에서 대상 DC가 이전에 사용한 USN을 사용하여 변경 내용을 요청하면 대상 DC는 복제 파트너 응답을 해석하여 복제 메타데이터가 만료되었음을 의미합니다. 만료 메타데이터는 원본 DC의 Active Directory 데이터베이스가 이전 상태로 롤백되어 시스템이 그에 따라 응답한다는 것을 의미합니다.
예를 들어 VM의 VHD 파일이 이전 버전으로 롤백되었다고 가정해 보겠습니다. 이 경우 대상 DC는 지원되지 않는 복원을 거친 것으로 확인된 DC에서 다음 격리 조치를 시작합니다.
AD DS는 사용자 계정 및 컴퓨터 계정이 계정 암호를 변경하지 못하도록 하는 Net Logon 서비스를 일시 중지합니다. 이 작업은 부적절한 복원 후에 발생하는 경우 이러한 변경 내용의 손실을 방지합니다.
AD DS는 인바운드 및 아웃바운드 Active Directory 복제를 사용하지 않도록 설정합니다.
AD DS는 디렉터리 서비스 이벤트 로그에 이벤트 ID 2095를 생성하여 발생한 작업을 기록합니다.
다음 다이어그램은 AD DS가 VM에서 실행되는 대상 DC인 VDC2에서 USN 롤백을 검색할 때 발생하는 이벤트 시퀀스를 보여 줍니다. 이 그림에서 USN 롤백 검색은 복제 파트너가 VDC2가 이전에 대상 DC에서 본 최신 USN 값을 보냈음을 감지할 때 VDC2에서 발생합니다. 이 조건은 VDC2 데이터베이스에 롤백이 발생했음을 나타냅니다.
VDC2 업데이트의 순서도와 VDC2에 대한 DC1 최신 값이 표시된 다이어그램입니다. VDC2는 USN 100 및 호출 ID A로 시작합니다. 그런 다음 DC1에 복제되는 USN을 101에서 200으로 업데이트합니다. 그러나 사용자는 VDC2 USN 200의 VHD 복사본도 만듭니다. 다음으로, VDC2는 USN 201에서 350으로 업데이트하고 이러한 변경 내용을 DC1에 복제합니다. 그러나 VDC2는 실패합니다. 그런 다음 사용자는 USN 200 VHD에서 만든 복사본을 사용하여 VDC2를 복원합니다. 그 후 사용자는 새 버전의 USNs 201-355에 대해 VDC2를 다시 업데이트합니다. DC1은 VDC2에서 USN 350보다 큰 변경 내용을 요청하고 VDC2의 USN이 DC1보다 높기 때문에 복제됩니다. 그러나 새 버전의 USN 201~350은 DC1의 버전과 동일하지 않아 USN 롤백이 발생합니다.
이벤트 ID 2095 문제 해결
디렉터리 서비스 이벤트 로그에 이벤트 ID 2095가 표시되면 즉시 다음 지침을 따릅니다.
네트워크에서 오류를 기록한 VM을 격리합니다.
보고된 변경 내용이 이 DC에서 시작되어 다른 DC로 전파되었는지 확인합니다. 이벤트가 VM의 스냅샷 또는 복사본을 사용한 결과인 경우 USN 롤백이 발생한 시기를 확인합니다. 시간이 확인 되면 해당 DC의 복제 파트너를 확인하여 롤백 후 복제가 발생했는지 여부를 확인할 수 있습니다.
Repadmin 도구를 사용하여 변경 내용의 원본을 확인할 수 있습니다. Repadmin을 사용하는 방법에 대한 자세한 내용은 Repadmin을 사용하여 Active Directory 복제 모니터링 및 문제 해결을 참조하세요. 결정을 내릴 수 없는 경우 Microsoft 지원에 문의하여 도움을 받으세요.
DC를 강제로 강등합니다. 이 작업에는 DC의 메타데이터를 정리하고 유연한 FSMO(단일 마스터 작업) 역할이라고도 하는 작업 마스터 역할을 장악하는 작업이 포함됩니다. 자세한 내용은 USN 롤백에서 복구를 참조하세요.
DC에 대한 이전 VHD 파일을 모두 삭제합니다.
감지되지 않은 USN 롤백
DC는 다음 시나리오에서 USN 롤백을 감지하지 못할 수 있습니다.
VHD 파일이 여러 위치에서 동시에 실행되는 다른 VM에 연결됨.
복원된 DC의 USN은 다른 DC에서 받은 마지막 USN을 지나서 증가했습니다.
VHD 파일 시나리오에서 다른 DC는 VM 중 하나를 사용하여 복제할 수 있으며 다른 DC에 복제하지 않고도 두 VM에서 변경 내용이 발생할 수 있습니다. 포리스트의 이러한 차이는 감지하기 어렵고 예측할 수 없는 디렉터리 응답을 발생합니다. 이 상황은 실제 DC와 VM이 동일한 네트워크에서 실행되는 경우 P2V 마이그레이션 후에 발생할 수 있습니다. 이 상황은 동일한 실제 DC에서 여러 가상 DC를 만든 다음 동일한 네트워크에서 실행되는 경우에도 발생할 수 있습니다.
USN 시나리오에서는 USN 범위가 서로 다른 두 가지 변경 집합에 적용됩니다. 이 시나리오는 검색되지 않고 장기간 지속될 수 있습니다. 이 기간 동안 만든 개체를 수정하면 시스템에서 잔류 개체를 검색하여 이벤트 뷰어 이벤트 ID 1988로 보고합니다. 다음 다이어그램은 DC가 이 시나리오에서 USN 롤백을 검색하지 못하는 이유를 보여줍니다.
예제 빌드의 롤백 검색 프로세스에 대한 흐름 차트를 보여 주는 다이어그램. "VDC1" 및 "DC2"라는 레이블이 지정된 두 개의 도메인 컨트롤러가 있습니다. 흐름도의 초기 단계에서는 USN이 2000일 때 가상 DC VDC1이 스냅샷을 만드는 것을 보여 주었습니다. 스냅샷 후에 VDC1은 100명의 사용자를 만들고 업데이트된 VDC1에는 이제 USN이 2100개입니다. VDC1의 업데이트는 DC2에 복제되며, 이제 2100 USN을 공유합니다. 그러나 VDC1은 USN 2000 버전으로 되돌리기 위해 사용한 스냅샷을 사용합니다. 되돌려진 버전의 VDC1은 150명의 새 사용자를 만들어 USN을 최대 2150명의 사용자로 만듭니다. 업데이트된 VDC1은 DC2에 복제되지만, USN이 DC2의 USN 2100보다 높기 때문에 DC2는 일치하지 않는 변경 내용을 검색하지 않습니다. 아래쪽의 텍스트는 "USN 롤백이 검색되지 않으므로 USN 2001~2100이 두 도메인 컨트롤러 간에 동일하지 않은 감지되지 않은 차이가 발생합니다.
읽기 전용 DC
RODC(읽기 전용 도메인 컨트롤러)는 Active Directory 데이터베이스에서 파티션의 읽기 전용 복사본을 호스트하는 DC입니다. RODC는 변경 내용을 다른 DC에 복제하지 않으므로 대부분의 USN 롤백 문제를 방지합니다. 그러나 RODC가 USN 롤백의 영향을 받는 쓰기 가능한 DC에서 복제되는 경우 롤백은 RODC에도 영향을 줍니다.
스냅샷을 사용하여 RODC를 복원하지 않는 것이 좋습니다. Active Directory 호환 백업 애플리케이션을 사용하여 RODC만 복원해야 합니다. 또한 쓰기 가능한 DC와 마찬가지로 RODC가 삭제 표시 수명보다 더 길게 오프라인 상태가 되도록 허용해서는 안 됩니다. 이 조건으로 인해 RODC에 개체가 남아 있을 수 있습니다.
RODC 구현에 대한 자세한 내용은 읽기 전용 도메인 컨트롤러 단계별 가이드를 참조하세요.
추가 콘텐츠
가상화된 도메인 컨트롤러 복원에서 가상화된 DC를 복원하는 방법을 알아봅니다.