Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

仮想化した DC を PowerShell で複製する

3.510 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

仮想化した DC を PowerShell で複製する

  1. 1. ドメインコントローラーの仮想化 1
  2. 2. DC 仮想化のメリット • スケーラビリティ • 物理 PC がなくても展開可能 • サーバーのロールバック(スナップショット) • 自動展開のしやすさ • パブリックウラウドへの移行 • 仮想 DC を IaaS に展開 2
  3. 3. 仮想 DC の展開 • サーバーマネージャーを使用して • Windows PowerShell を使用して • VHDファイルを所定の手続きでクローン いずれの処理もリモートから行える 3
  4. 4. DCクローンの動作イメージ ①クローン先情 報を埋め込む DC01 ②エクスポート VHD ③インポート DC02 Hyper-V Hyper-V 4
  5. 5. 仮想 DC のクローン手順1. ソース DC で FSMO が起動していないことを確認。起動してい る場合には他の DC に移動。2. ソース DC をクローン可能な DC として認可する3. 非互換アプリを調査し CustomDCCloneAllowList.xml を生成4. 複製先情報を記載した DcCloneConfig.xml ファイルを作成5. ソース DC をシャットダウン6. ソース DC を Export7. ソースを起動8. Exportしたイメージを新しい仮想マシンとして Import9. 複製先マシンを起動( DC 間複製が開始される) 5
  6. 6. $SourceDC = "ITCAMP-DC02" $DistDC = "ITCAMP-DC03" DCクローンを自動化するスクリプト例 $distPDCEmu = "ITCAMP-DC01" $SourceHyperVHost = "ITCAMP-FS" DC01 DC02 複製 DC03 $DistHyperVHost = "ITCAMP-FS" ここから $VMStore = "¥¥$DistHyperVHost¥VMStore" コマンドを実行 ITCAMP-FSstep1 $ConfirmPreference = "none" Move-ADDirectoryServerOperationMasterRole -Identity $distPDCEmu -OperationMasterRole PDCEmulatorstep2 Get-ADComputer $SourceDC | %{Add-ADGroupMember -Identity "Cloneable Domain Controllers" -Members $_.samAccountName}step3 Invoke-Command -ComputerName $SourceDC -ScriptBlock { Get-ADDCCloningExcludedApplicationList -GenerateXml -Force } Invoke-Command -ComputerName $SourceDC -ScriptBlock { ` New-ADDCCloneConfigFile -Static -IPv4Address "192.168.210.52" ` -IPv4DNSResolver "192.168.210.50" ` -IPv4SubnetMask "255.255.255.0" `step4 -IPv4DefaultGateway "192.168.210.254" ` -CloneComputerName "$Args" ` -SiteName "Default-First-Site-Name" } ` -ArgumentList $DistDCstep5 Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDCstep6 Get-VM -ComputerName $SourceHyperVHost -Name $SourceDC | %{ Export-VM $_ -Path $VMStore}step7 Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC $CFG = (Dir "$VMStore¥$SourceDC¥Virtual Machines¥*.xml").FullNamestep8 MD ¥¥$DistHyperVHost¥F$¥$DistDC Import-VM -ComputerName $DistHyperVHost -Path $CFG -GenerateNewId -Copy-VhdDestinationPath F:¥$DistDC Get-VM -ComputerName $DistHyperVHost -Name $SourceDC |Where-Object {$_.State -EQ "Off"} | Rename-VM -NewName $DistDCstep9 Start-VM -ComputerName $DistHyperVHost -Name $DistDC 6
  7. 7. Step 1: ソースDCでPDCエミュレーターが動作していないことを確認PDCエミュレーターがインストールされているDCはクローンできない$ConfirmPreference = "none"Move-ADDirectoryServerOperationMasterRole -Identity $distPDCEmu `-OperationMasterRole PDCEmulator 7
  8. 8. Step 2: ソースDCをクローン可能なDCに設定するGet-ADComputer $SourceDC | %{Add-ADGroupMember `-Identity "Cloneable Domain Controllers" -Members $_.samAccountName} 複製元となるドメインコン トローラーを Cloneable Domain Controllers のメ ンバーにする 8
  9. 9. Step3.非互換アプリを調査し CustomDCCloneAllowList.xml を生成 Invoke-Command -ComputerName $SourceDC -ScriptBlock { Get- ADDCCloningExcludedApplicationList -GenerateXml -Force } コマンドレットを実行することで、 C:¥Windows¥NTDS¥CustomDCCloneAllowList.xml ファイルが作成される <AllowList> </Allow> <Allow> <Allow> <Name>Active Directory Management Pack Helper <Name>HealthService</Name> Object</Name> <Type>Service</Type> <Type>Program</Type> </Allow> </Allow> <Allow> <Allow> <Name>QWAVE</Name> <Name>System Center Operations Manager 2012 <Type>Service</Type> Agent</Name> </Allow> <Type>Program</Type> <Allow> </Allow> <Name>System Center Management APM</Name> <Allow> <Type>Service</Type> <Name>Microsoft Silverlight</Name> </Allow> <Type>WoW64Program</Type> <Allow> </Allow> <Name>wlidsvc</Name> <Allow> <Type>Service</Type> <Name>AdtAgent</Name> </Allow> <Type>Service</Type> </AllowList> 9
  10. 10. Step4.複製先情報を記載した DcCloneConfig.xml ファイルを作成Invoke-Command -ComputerName $SourceDC -ScriptBlock { ` New-ADDCCloneConfigFile -Static -IPv4Address "192.168.210.52" ` -IPv4DNSResolver "192.168.210.50" ` -IPv4SubnetMask "255.255.255.0" ` -IPv4DefaultGateway "192.168.210.254" ` -CloneComputerName "$Args" ` -SiteName "Default-First-Site-Name" } ` -ArgumentList $DistDCすでに作成されていると上書きでいないので注意 10
  11. 11. DcCloneConfig.xml の例<?xml version="1.0"?> <DNSResolver></DNSResolver><d3c:DCCloneConfig <DNSResolver></DNSResolver>xmlns:d3c="uri:microsoft.com:schemas:DCCloneConfig"> <DNSResolver></DNSResolver> <ComputerName>ITCAMP-DC03</ComputerName> </StaticSettings> <SiteName>Default-First-Site-Name</SiteName> </IPv6Settings> <IPSettings> </IPSettings> <IPv4Settings> </d3c:DCCloneConfig <StaticSettings> <Address>192.168.210.52</Address> <SubnetMask>255.255.255.0</SubnetMask> <DefaultGateway></DefaultGateway> <DNSResolver>192.168.210.50</DNSResolver> <DNSResolver>192.168.210.51</DNSResolver> <DNSResolver></DNSResolver> <DNSResolver></DNSResolver> <PreferredWINSServer></PreferredWINSServer> <AlternateWINSServer></AlternateWINSServer> </StaticSettings> </IPv4Settings> <IPv6Settings> <StaticSettings> <DNSResolver></DNSResolver> 11
  12. 12. Step 5:ソース DC をシャットダウン Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDC 12
  13. 13. Step 6:ソース DC を Export Get-VM -ComputerName $SourceHyperVHost ` -Name $SourceDC | %{ Export-VM $_ -Path $VMStore} 13
  14. 14. Step7. ソースDCを起動Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC 複製先のDCは複製元DCと複製を開始するので、事前に起動しておく必要がある。 14
  15. 15. Step 8: Exportしたイメージを新しい仮想マシンとして Import $CFG = (Dir "$VMStore¥$SourceDC¥Virtual Machines¥*.xml").FullName MD ¥¥$DistHyperVHost¥F$¥$DistDC Import-VM -ComputerName $DistHyperVHost ` -Path $CFG -GenerateNewId -Copy -VhdDestinationPath F:¥$DistDC 重要!!インプレースインポート はできない! 15
  16. 16. Step9.複製先マシンを起動 16
  17. 17. 仮想 DC 展開の留意点 • 単一障害点にならないこと  少なくとも2台のHyper-V サーバーに1台づつ展開 V-DC V-DC V-DC V-DC Hyper-V Hyper-V Hyper-V  1つのハードウェアの障害が複数のDCに影響を与えないようにすること  できるだけ物理的に異なるリージョンに配置すること  可能であれば、少なくとも1台は物理 DC を構築しておくこと 17
  18. 18. • セキュリティ上の考慮点 • できるだけ DC のみの単一機能のサーバーとし、ホスト、ゲストともに Server Core を採用すること V-DC (Server Core) Hyper-V (Server Core) • 必要に応じて RODC を検討すること • VHDファイルの安全性に考慮すること • VHDファイルが含まれるドライブごと暗号化することをお勧め 18
  19. 19. 19
  20. 20. 20
  21. 21. 21
  22. 22. 22
  23. 23. • セキュリティ上の考慮点(つづき) • ホストコンピューターは死守すること • 可能であればホストコンピューターは管理用ネットワークのみと通 信を行うように設定されていること • ホストコンピューターはゲストであるDCのドメインに所属させない Sysvol 共有に 1 V-DC V-DC 3 アタック Hyper-V (domain member) DC からスタート アップスクリプトを 送り込む 2 23
  24. 24. • パフォーマンスの考慮点 • Windows Server 2008 の場合約10%の性能減 Measurement Test Physical Virtual Delta Searches/sec Search for common name in base scope (L1) 11508 10276 -10.71% Searches/sec Search for a set of attributes in base scope (L2) 10123 9005 -11.04% Searches/sec Search for all attributes in base scope (L3) 1284 1242 -3.27% Searches/sec Search for common name in subtree scope (L6) 8613 7904 -8.23% Successful binds/sec Perform fast binds (B1) 1438 1374 -4.45% Successful binds/sec Perform simple binds (B2) 611 550 -9.98% Successful binds/sec Use NTLM to perform binds (B5) 1068 1056 -1.12% Writes/sec Write multiple attributes (W2) 6467 5885 -9.00% Adtest.exe 使用 http://www.microsoft.com/en-us/download/details.aspx?id=15275 24
  25. 25. • 展開に関する考慮点 • 差分ディスクは使わないこと 固定 実使用 指定領域に達す 可変 未使用領域 領域 るまで自動拡張 差 差 差 差分 元の領域 分 分 分 25
  26. 26. • 展開に関する考慮点(続き) • VHDファイルを”単純複製”しないこと • SID の重複 (..かといって ドメインコントローラーでの Sysprep は未サポート) • USN(Update Sequence Number)ロールバック問題 • 起動しているドメインコントローラーを Export しないこと 詳細:http://technet.microsoft.com/en-us/library/ virtual_active_directory_domain_controller_virtualization_hyperv(v=ws.10).aspx 26
  27. 27. 重要な 4 つの ID• USN(Update Sequence Number) • オブジェクトが追加、変更、削除されるたびに+1 • ドメインコントローラー個々に管理されている• RID (Relative Identifier) • DC 内オブジェクトの通番. • SID の構成要素 • RID Master の RID Pool によって集中管理されている• Invocation(発動,召喚) ID • DIT のバージョン管理に使用される • Get-ADDomainController で参照可能• GUID(Globally Unique IDentifier) • サーバー内オブジェクトのID • 恒久的 27
  28. 28. USN とは• Update Sequence Number• オブジェクトを変更、作成、するごとに +1• ドメインコントローラーごとに管理されている• ドメインコントローラー間でどこまで複製が完了したかを確認するための番号• ドメインコントローラーに変更が加えられるたびに加算される My USN=200 複製 My USN=100 USN_DC2 = 100 USN_DC1 = 200 High Watermark DIT DC1からは DIT DC1 USN=200まで DC2 複製完了したと いうこと 28
  29. 29. 複製の基本動作:High Watermark をベースにした差分複製 HWM My USN=200 複製リクエスト USN_DC1 = 200 複製無し DIT DIT DC1 DC2 ユーザー 追加 50人 My USN=250 複製リクエスト USN_DC1 = 200 USN=201~250 250 DIT DIT DC1 DC2 29
  30. 30. USN ロールバック問題 My USN=250 USN_DC1 = 250 DIT DIT DC1 DC2 なんらかの原因でロールバック My USN=200 複製リクエスト USN_DC1 = 250 複製無し DIT DIT DC1 DC2 30
  31. 31. ユーザー 追加 50人 My USN=250 複製リクエスト USN_DC1 = 250 複製無し DIT DIT DC1 DC2ユーザー 追加 10人 My USN=260 複製リクエスト USN_DC1 = 250 USN=251~260 260 DIT DIT DC1 DC2 31
  32. 32. USN ロールバックの検知• 「USN がロールバック」だけが発生すると、複製は停止する • Windows Server Backup から古い DIT をリストアした場合 • 古い VHD ファイルをリストアした場合 • 古い Export ファイルをインポートした場合 Event ID 2103:Active Directory データベースがサポートされていな い方法で復元されました。Active Directory はこの状態が継続している間、 ユーザーのログオンを処理できません。 32
  33. 33. Invocation ID • Invocation ID:ディレクトリデータベース(NTDS.DIT)のID • DITのバージョン識別子として扱われる DIT Invocation ID 33
  34. 34. USN ロールバック問題を回避するにはInvocation ID をリセット(変更)する必要がある DC1 が把握している DC1 DC2 が把握している (自分自身)の状態 DC1 の状態 USN = 1000 DC1(A)@USN1000 InvocationID = A USNロールバック USN = 500 DC1(A)@USN1000 頭から複製 InvocationID = B DC1(B)@USN500 DIT変更(USN変更) USN = 600 DC1(A)@USN1000 差分複製 InvocationID = B DC1(B)@USN600 34
  35. 35. 旧バージョンでのスナップショットによるUSNロールバック スナップショットをリストアした場合にはロールバックが検知されない Create Snapshot • +100 users rollback USN added はDC2に反映されない→50ユーザーが複製されてしまう TIME: T2 • All others are either on one or the other DC USN: 200 • 100 ユーザー(RID =600- 1000 ID: A RID Pool: 500 - 599)は SID 競合 USNs >100 DC2 receives updates: T1 Snapshot USN: 100 Applied! +150 more users created TIME: T4 DC2 receives updates: USNs >200 35
  36. 36. Windows Server 2012 では Hyper-V ホストで VM-Generation ID を管理している • ユニークな 128 ビットの ID • 専用ドライバーによりゲストOSに通知できるようになっている WS 2012 仮想 DC は VM-Generation ID をトラックする • Active Directory database (DIT) に保存 • DIT への変更をコミットする前に、 • “DIT 内部の VM-Generation ID” と “ホストが認識している VM-Generation ID” を比較 • 異なれば DC の invocation ID と RID pool をリセットしてから、コミット 同じ操作を、起動時に実行する 36
  37. 37. 仮想 Domain Controller DIT Invocation ID VM-Gen ID 比 較 VM-Gen ID Hyper-V ホスト 37
  38. 38. Windows Server 2012 ではこうなっている DC2 DC1 Timeline of events Create USN: 100 TIME: T1 Snapshot ID: A savedVMGID: G1 VMGID: G1 +100 users added TIME: T2 USN: 200 ID: A savedVMGID: G1 VMGID: G1 DC1(A)@USN = 200 DC2 receives updates: USNs >100 T1 Snapshot USN: 100 TIME: T3 Applied! ID: A savedVMGID: G1 VMGID: G2 … missing users replicate DC2 again accepts updates: USNs >100 +150 users created: VM generation ID の差異が発生 back to DC1 USN: 101-250 TIME: T4 ID: B savedVMGID: G2 VMGID: G2 DC1(A)@USN = 200 DC1(B)@USN = 250 USN re-use avoided and USN rollback PREVENTED : all 250 users converge correctly across both DCs 38
  39. 39. 結局のところ... 以下の用途には使えないので注意 「作成したユーザーを削除したい」 「変更したユーザーの属性を元に戻したい」 • Authoritative Restore を使用しましょう • または Forefront Identity Manager を使用し、メタデータで管 理しましょう 消してしまったユーザーを復元するには「ゴミ箱」を使いましょう 39

×