CLONEDDC

어제 포스팅에서 Windows Server 2012 Hyper-V에서 동작하는 도메인 컨트롤러(DC)는 가상화 환경을 인지하기에, 스냅숏(Snapshot)을 활용하여, 이전 시간으로 원복이 가능하다는 이야기를 전해드렸습니다. 오늘은 DC를 가상 머신으로 만들고, 추가적인 DC를 가상 머신의 복사를 통해 또다른 DC를 만드는 이야기를 해볼까 합니다.

Windows의 경우에는 머신을 그대로 복사할 경우(Ghost로 동일하게 구워내던, 가상화 환경내에서 VHD를 복사하던), 시스템의 SID가 충돌하여, 동일한 시스템으로 내부적에선 인식하게 됩니다. 이러한 시스템의 SID나 고유 정보들을 리셋하기 위해서, Sysprep를 이용하여 시스템을 초기화하였죠. 클라우드 서비스에서 중요한 포인트중 하나가 바로 비즈니스에 대한 빠른 대응(Agility)입니다. 액티브 디렉터리(AD)에 부하가 걸릴 경우, 추가적인 DC를 구축하기 위해, 새 시스템을 구성하고, 업데이트하고, AD 모듈을 설치하고, 추가 DC까지 프로모션하는 시간은 생각보다 길 수 있다는 것입니다. 이것이 가상화 환경일지더라도..

이전 포스팅에서 Hyper-V가 DC VM에 대한 VM-Generation ID를 가지고 있다고 말씀드렸습니다. 이 ID 값이 틀릴 경우, 스냅숏이 적용되었다고 인지한다 하였는데, 이 플로우차트에는 한가지 요소가 더 들어있습니다. 바로 오늘 이야기인 DC의 복제(Clone)인지 여부이죠. DC를 복제해야 한다는 로직에 들어가려면 몇가지 중요한 포인트가 있습니다.

image

AD의 데이터베이스(NTDS)가 저장된 곳이 바로 Windows\NTDS 폴더입니다. 이 폴더안에 2개의 파일을 확인하게 됩니다. 첫번째가 추가 구성될 복제 DC의 정보입니다. 이를 담은 것이 바로 DCCloneConfig.xml입니다.

image

해당 파일 안에는 추가 DC의 이름, 소속 사이트명, IP, DNS 주소등이 담겨있습니다. 해당 파일을 기반으로 추가적인 DC를 구성하게 됩니다. 뿐만 아니라, DC에 설치된 추가적인 프로그램에 대한 호환성을 확인하여, 복제 DC내에서도 동작해야 할 서비스나 응용 프로그램에 대한 정보를 담은 파일이 하나 더 있습니다. 해당 파일이 CustomDCCloneAllowList.xml입니다.

image

XML 파일만 달랑 2개가 있다고, 현재 구성된 도메인의 추가 DC를 마음껏 찍어낼 수 있다면, 이는 보안상 문제가 될 수 있습니다. 이러한 이유로 도메인 관리자가 복제 가능한 DC에 대한 정보를 지정하기 위해, AD내 복제 가능한 DC를 구성원으로 가진 Cloneable Domain Controllers 그룹이 존재합니다. 여기에 복제 가능한 DC의 컴퓨터 계정을 포함시켜야 합니다.

image

마지막 조건이 있습니다. 바로 FSMO(Flexible Single Master Operation) 역할중 PDC Emulator입니다. Windows Server 2012 AD내 DC 복제를 위해서는 복제를 할 DC가 아닌 곳에 PDC Emulator 역할이 배치되어야 합니다. 복제를 할 원본 DC를 만들 경우, 전체 AD의 정보를 가진 서버가 한대 필요하다는 의미이며, 해당 서버에서 PDC Emulator를 해야 한다는 것입니다.

정리하면 다음과 같습니다.

  1. Hyper-V가 VM을 부팅합니다. 부팅시 DC의 msDS-GenerationID와 Hyper-V가 가진 ID를 비교합니다.
  2. 같은 경우엔 정상 부팅, 다를 경우엔 XML 파일이 있고, Cloneable Domain Controllers 그룹에 소속원인지 확인합니다. 있는 경우엔 DC 가상 머신 복제로 판단, 없는 경우엔 스냅숏 반영으로 판단합니다.
  3. DCCloneConfig.xml, CustomDCCloneAllowLIst.xml을 이용하여, 새로운 시스템 ID를 가진 DC를 구성합니다. 이 경우 AD내 도메인 컨트롤러 항목에 새 컴퓨터 계정이 생성됩니다.
  4. 네트워크를 통해 현재 AD의 최신 정보를 받습니다.

간단하게 보이지만, 내부적으론 많은 일이 일어나고 있죠?

한가지 팁을 더하면, 앞서 언급한 2개의 XML 파일을 정확하게 만들기 위해, Windows Server 2012 AD는 PowerShell cmdlet을 제공합니다. DCCloneConfig.xml을 만들기 위한, New-ADDCCloneConfigFile, CustomDCCloneAllowList를 만들기 위한 Get-ADDCCloningExcludedApplicationList입니다. 전자의 경우엔 바로 XML을 Windows의 NTDS 폴더에 만들어주지만, 후자의 경우엔 -GenerateXML 옵션을 이용하시면 쉽게 XML을 만들 수 있습니다. (관련 Cmdlet 정보 페이지)

image

필요한 모든 파일이나 구성을 마쳤다면, 복제 원본이 될 DC를 종료하고, 해당 DC를 내보내기(Export)해 놓습니다. 말 그대로 복제 원본 템플릿을 만들어 놓는 것이죠. SCVMM 2012를 살펴보신 분이시라면, 웹, DB, 미들티어 이외 이제 DC도 하나의 템플릿 형태로 제공할 수 있겠구나라는 생각을 하실 수 있을 것입니다. 내보내기 완료 후, 다시 부팅을 시켜, 원��� DC로의 복제 역할을 할 수 있게 해놓아야 합니다.

추가적으로 DC가 필요한 경우, 해당 DC를 신규 ID로 가져오기(Import)하면, DC 구성 완료입니다. Windows PowerShell에서 Import-VM Cmdlet과 -copy, -GenerateNewId 옵션을 이용하면 빠르게 작업을 완료할 수 있습니다.

image

Windows Server 2012는 앞선 포스팅인 스냅숏, 그리고 오늘 이야기한 가상화 환경내 복제(Clone) 구성을 통해 완벽하게 가상화 환경을 인지, 그리고 이를 활용하는 Virtualized DC(VDC) 형태가 되었습니다. 유연한 구성 시나리오는 다양한 형태로 활용할 수 있는 좋은 포인트를 IT 엔지니어에게 제공합니다.

관련 문서 및 링크