SlideShare a Scribd company logo
1 of 39
Download to read offline
ドメインコントローラーの仮想化




                  1
DC 仮想化のメリット
 • スケーラビリティ
   • 物理 PC がなくても展開可能
 • サーバーのロールバック(スナップショット)
 • 自動展開のしやすさ
 • パブリックウラウドへの移行
   • 仮想 DC を IaaS に展開




                           2
仮想 DC の展開

 • サーバーマネージャーを使用して
 • Windows PowerShell を使用して
 • VHDファイルを所定の手続きでクローン

        いずれの処理もリモートから行える




                              3
DCクローンの動作イメージ

  ①クローン先情
   報を埋め込む




    DC01      ②エクスポート
                        VHD   ③インポート         DC02




           Hyper-V                 Hyper-V


                                                    4
仮想 DC のクローン手順

1. ソース DC で FSMO が起動していないことを確認。起動してい
   る場合には他の DC に移動。
2. ソース DC をクローン可能な DC として認可する
3. 非互換アプリを調査し CustomDCCloneAllowList.xml を生成
4. 複製先情報を記載した DcCloneConfig.xml ファイルを作成
5. ソース DC をシャットダウン
6. ソース DC を Export
7. ソースを起動
8. Exportしたイメージを新しい仮想マシンとして Import
9. 複製先マシンを起動( DC 間複製が開始される)



                                               5
$SourceDC = "ITCAMP-DC02"
        $DistDC = "ITCAMP-DC03"
                                                                     DCクローンを自動化するスクリプト例
        $distPDCEmu = "ITCAMP-DC01"
        $SourceHyperVHost = "ITCAMP-FS"                                       DC01         DC02           複製           DC03
        $DistHyperVHost = "ITCAMP-FS"
                                                       ここから
        $VMStore = "¥¥$DistHyperVHost¥VMStore"
                                                       コマンドを実行                                ITCAMP-FS
step1   $ConfirmPreference = "none"
        Move-ADDirectoryServerOperationMasterRole -Identity $distPDCEmu -OperationMasterRole PDCEmulator
step2   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 $DistDC

step5   Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDC
step6   Get-VM -ComputerName $SourceHyperVHost -Name $SourceDC | %{ Export-VM $_ -Path $VMStore}
step7   Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC

        $CFG = (Dir "$VMStore¥$SourceDC¥Virtual Machines¥*.xml").FullName
step8   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 $DistDC
step9   Start-VM -ComputerName $DistHyperVHost -Name $DistDC
                                                                                                                               6
Step 1: ソースDCでPDCエミュレーターが動作していないことを確認

PDCエミュレーターがインストールされているDCはクローンできない
$ConfirmPreference = "none"
Move-ADDirectoryServerOperationMasterRole -Identity $distPDCEmu `
-OperationMasterRole PDCEmulator




                                                                    7
Step 2: ソースDCをクローン可能なDCに設定する
Get-ADComputer $SourceDC | %{Add-ADGroupMember `
-Identity "Cloneable Domain Controllers" -Members $_.samAccountName}




                                              複製元となるドメインコン
                                              トローラーを Cloneable
                                              Domain Controllers のメ
                                                  ンバーにする




                                                                       8
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
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
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
Step 5:ソース DC をシャットダウン


 Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDC




                                                           12
Step 6:ソース DC を Export


 Get-VM -ComputerName $SourceHyperVHost `
 -Name $SourceDC | %{ Export-VM $_ -Path $VMStore}




                                                     13
Step7. ソースDCを起動


Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC


 複製先のDCは複製元DCと複製を開始するので、事前に起動しておく必要がある。




                                                           14
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
Step9.複製先マシンを起動




                  16
仮想 DC 展開の留意点

 • 単一障害点にならないこと
     少なくとも2台のHyper-V サーバーに1台づつ展開

     V-DC   V-DC   V-DC        V-DC

       Hyper-V       Hyper-V     Hyper-V



    1つのハードウェアの障害が複数のDCに影響を与えないようにすること
    できるだけ物理的に異なるリージョンに配置すること
    可能であれば、少なくとも1台は物理 DC を構築しておくこと



                                           17
• セキュリティ上の考慮点
   • できるだけ DC のみの単一機能のサーバーとし、ホスト、ゲストともに
     Server Core を採用すること
        V-DC
    (Server Core)
             Hyper-V
           (Server Core)


  • 必要に応じて RODC を検討すること
  • VHDファイルの安全性に考慮すること
     • VHDファイルが含まれるドライブごと暗号化することをお勧め


                                          18
19
20
21
22
• セキュリティ上の考慮点(つづき)
   • ホストコンピューターは死守すること
      • 可能であればホストコンピューターは管理用ネットワークのみと通
        信を行うように設定されていること
      • ホストコンピューターはゲストであるDCのドメインに所属させない

      Sysvol 共有に   1   V-DC   V-DC    3
      アタック

                            Hyper-V
                        (domain member)
      DC からスタート
      アップスクリプトを
      送り込む             2
                                          23
• パフォーマンスの考慮点
   • 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
• 展開に関する考慮点(続き)
  • 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
重要な 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
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
複製の基本動作:
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
USN ロールバック問題
     My USN=250             USN_DC1 = 250


            DIT              DIT
    DC1                               DC2

           なんらかの原因でロールバック

     My USN=200   複製リクエスト   USN_DC1 = 250

                   複製無し
            DIT              DIT
    DC1                               DC2

                                            30
ユーザー
 追加
 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
USN ロールバックの検知
• 「USN がロールバック」だけが発生すると、複製は停止する
   • Windows Server Backup から古い DIT をリストアした場合
   • 古い VHD ファイルをリストアした場合
   • 古い Export ファイルをインポートした場合

  Event ID 2103:Active Directory データベースがサポートされていな
  い方法で復元されました。Active Directory はこの状態が継続している間、
  ユーザーのログオンを処理できません。




                                                    32
Invocation ID
 • Invocation ID:ディレクトリデータベース(NTDS.DIT)のID
     • DITのバージョン識別子として扱われる


                                         DIT
                                      Invocation ID




                                                      33
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
旧バージョンでのスナップショットによる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
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
仮想 Domain Controller


       DIT
      Invocation ID

       VM-Gen ID


          比
          較

      VM-Gen ID


              Hyper-V ホスト

                            37
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
結局のところ...
  以下の用途には使えないので注意
  「作成したユーザーを削除したい」
  「変更したユーザーの属性を元に戻したい」

       • Authoritative Restore を使用しましょう
       • または Forefront Identity Manager を使用し、メタデータで管
         理しましょう


  消してしまったユーザーを復元するには「ゴミ箱」を使いましょう




                                                       39

More Related Content

What's hot

Oracle forms and reports 11g installation on linux
Oracle forms and reports 11g installation on linuxOracle forms and reports 11g installation on linux
Oracle forms and reports 11g installation on linuxVenu Palakolanu
 
How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505IT Tech
 
Data Center Networks:Virtual Bridging
Data Center Networks:Virtual BridgingData Center Networks:Virtual Bridging
Data Center Networks:Virtual Bridgingrjain51
 
Cisco Certified CyberOps Associate
Cisco Certified CyberOps AssociateCisco Certified CyberOps Associate
Cisco Certified CyberOps AssociateRobert Gabos
 

What's hot (7)

Mapa Conceptual TCP IP
Mapa Conceptual TCP IPMapa Conceptual TCP IP
Mapa Conceptual TCP IP
 
Curl Tutorial
Curl Tutorial Curl Tutorial
Curl Tutorial
 
Proxmox 5.0
Proxmox 5.0Proxmox 5.0
Proxmox 5.0
 
Oracle forms and reports 11g installation on linux
Oracle forms and reports 11g installation on linuxOracle forms and reports 11g installation on linux
Oracle forms and reports 11g installation on linux
 
How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505How to configure dhcp on a cisco asa 5505
How to configure dhcp on a cisco asa 5505
 
Data Center Networks:Virtual Bridging
Data Center Networks:Virtual BridgingData Center Networks:Virtual Bridging
Data Center Networks:Virtual Bridging
 
Cisco Certified CyberOps Associate
Cisco Certified CyberOps AssociateCisco Certified CyberOps Associate
Cisco Certified CyberOps Associate
 

Viewers also liked

バックアップとリストアの基礎
バックアップとリストアの基礎バックアップとリストアの基礎
バックアップとリストアの基礎Kazuki Takai
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術shigeya
 
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPS
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPSUltimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPS
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPSMichael Noel
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identityjunichi anno
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版junichi anno
 
Dynamic Access Control 演習編
Dynamic Access Control 演習編Dynamic Access Control 演習編
Dynamic Access Control 演習編junichi anno
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編junichi anno
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計junichi anno
 
カジュアルにセキュリティテストはじめよう
カジュアルにセキュリティテストはじめようカジュアルにセキュリティテストはじめよう
カジュアルにセキュリティテストはじめようMasahiro NAKAYAMA
 
Shared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてShared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてjunichi anno
 
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.13/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1junichi anno
 
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjpSORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjpMasahiro NAKAYAMA
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門junichi anno
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版junichi anno
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaSjunichi anno
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...junichi anno
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するjunichi anno
 

Viewers also liked (20)

バックアップとリストアの基礎
バックアップとリストアの基礎バックアップとリストアの基礎
バックアップとリストアの基礎
 
Microsoft の ID 連携技術
Microsoft の ID 連携技術Microsoft の ID 連携技術
Microsoft の ID 連携技術
 
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPS
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPSUltimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPS
Ultimate SharePoint Infrastructure Best Practices - Japanese Version - #JPSPS
 
Microsoft と Digital Identity
Microsoft と Digital IdentityMicrosoft と Digital Identity
Microsoft と Digital Identity
 
Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版Active Directory 最新情報 2012.8.31 暫定版
Active Directory 最新情報 2012.8.31 暫定版
 
Dynamic Access Control 演習編
Dynamic Access Control 演習編Dynamic Access Control 演習編
Dynamic Access Control 演習編
 
Dynamic Access Control 解説編
Dynamic Access Control 解説編Dynamic Access Control 解説編
Dynamic Access Control 解説編
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計
 
カジュアルにセキュリティテストはじめよう
カジュアルにセキュリティテストはじめようカジュアルにセキュリティテストはじめよう
カジュアルにセキュリティテストはじめよう
 
Shared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」についてShared Nothing Live Migration で重要な「委任」について
Shared Nothing Live Migration で重要な「委任」について
 
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.13/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
3/5 ADFS 2.0 を使用して Windows Azure との SSO を実現しよう V1.1
 
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjpSORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
SORACOM Funnelで手抜きIoTプラットフォーム #ssmjp
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
Windows PowerShell によるWindows Server 管理の自動化 v4.0 2014.03.13 更新版
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaS
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理する
 

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

Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Tech Summit 2016
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理junichi anno
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)Iwana Chan
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践Yoshifumi Kawai
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangTakeru INOUE
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境yut148atgmaildotcom
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックkumo2010
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~de:code 2017
 
(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry(続) はじめてのCloud Foundry
(続) はじめてのCloud FoundryTomohiro Ichimura
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングMasatomo Ito
 

Similar to 仮想化した DC を PowerShell で複製する (20)

Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Kai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / ErlangKai = (Dynamo + memcache API) / Erlang
Kai = (Dynamo + memcache API) / Erlang
 
20061125
2006112520061125
20061125
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 
配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境配布用Beginnerならきっと役立つmaster slave環境
配布用Beginnerならきっと役立つmaster slave環境
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
 
(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry(続) はじめてのCloud Foundry
(続) はじめてのCloud Foundry
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
ConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキングConsulとNomadで簡単クッキング
ConsulとNomadで簡単クッキング
 

More from junichi anno

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...junichi anno
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティjunichi anno
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~junichi anno
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)junichi anno
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azurejunichi anno
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計junichi anno
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について junichi anno
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版junichi anno
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版junichi anno
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版junichi anno
 
Windows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化するWindows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化するjunichi anno
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514junichi anno
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiajunichi anno
 

More from junichi anno (16)

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
 
Azure Key Vault
Azure Key VaultAzure Key Vault
Azure Key Vault
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azure
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Windows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化するWindows Server 2012 で管理をもっと自動化する
Windows Server 2012 で管理をもっと自動化する
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
 

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

  • 2. DC 仮想化のメリット • スケーラビリティ • 物理 PC がなくても展開可能 • サーバーのロールバック(スナップショット) • 自動展開のしやすさ • パブリックウラウドへの移行 • 仮想 DC を IaaS に展開 2
  • 3. 仮想 DC の展開 • サーバーマネージャーを使用して • Windows PowerShell を使用して • VHDファイルを所定の手続きでクローン いずれの処理もリモートから行える 3
  • 4. DCクローンの動作イメージ ①クローン先情 報を埋め込む DC01 ②エクスポート VHD ③インポート DC02 Hyper-V Hyper-V 4
  • 5. 仮想 DC のクローン手順 1. ソース DC で FSMO が起動していないことを確認。起動してい る場合には他の DC に移動。 2. ソース DC をクローン可能な DC として認可する 3. 非互換アプリを調査し CustomDCCloneAllowList.xml を生成 4. 複製先情報を記載した DcCloneConfig.xml ファイルを作成 5. ソース DC をシャットダウン 6. ソース DC を Export 7. ソースを起動 8. Exportしたイメージを新しい仮想マシンとして Import 9. 複製先マシンを起動( DC 間複製が開始される) 5
  • 6. $SourceDC = "ITCAMP-DC02" $DistDC = "ITCAMP-DC03" DCクローンを自動化するスクリプト例 $distPDCEmu = "ITCAMP-DC01" $SourceHyperVHost = "ITCAMP-FS" DC01 DC02 複製 DC03 $DistHyperVHost = "ITCAMP-FS" ここから $VMStore = "¥¥$DistHyperVHost¥VMStore" コマンドを実行 ITCAMP-FS step1 $ConfirmPreference = "none" Move-ADDirectoryServerOperationMasterRole -Identity $distPDCEmu -OperationMasterRole PDCEmulator step2 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 $DistDC step5 Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDC step6 Get-VM -ComputerName $SourceHyperVHost -Name $SourceDC | %{ Export-VM $_ -Path $VMStore} step7 Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC $CFG = (Dir "$VMStore¥$SourceDC¥Virtual Machines¥*.xml").FullName step8 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 $DistDC step9 Start-VM -ComputerName $DistHyperVHost -Name $DistDC 6
  • 8. Step 2: ソースDCをクローン可能なDCに設定する Get-ADComputer $SourceDC | %{Add-ADGroupMember ` -Identity "Cloneable Domain Controllers" -Members $_.samAccountName} 複製元となるドメインコン トローラーを Cloneable Domain Controllers のメ ンバーにする 8
  • 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. 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. 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. Step 5:ソース DC をシャットダウン Stop-VM -ComputerName $SourceHyperVHost -Name $SourceDC 12
  • 13. Step 6:ソース DC を Export Get-VM -ComputerName $SourceHyperVHost ` -Name $SourceDC | %{ Export-VM $_ -Path $VMStore} 13
  • 14. Step7. ソースDCを起動 Start-VM -ComputerName $SourceHyperVHost -Name $SourceDC 複製先のDCは複製元DCと複製を開始するので、事前に起動しておく必要がある。 14
  • 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
  • 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. • セキュリティ上の考慮点 • できるだけ DC のみの単一機能のサーバーとし、ホスト、ゲストともに Server Core を採用すること V-DC (Server Core) Hyper-V (Server Core) • 必要に応じて RODC を検討すること • VHDファイルの安全性に考慮すること • VHDファイルが含まれるドライブごと暗号化することをお勧め 18
  • 19. 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. • セキュリティ上の考慮点(つづき) • ホストコンピューターは死守すること • 可能であればホストコンピューターは管理用ネットワークのみと通 信を行うように設定されていること • ホストコンピューターはゲストであるDCのドメインに所属させない Sysvol 共有に 1 V-DC V-DC 3 アタック Hyper-V (domain member) DC からスタート アップスクリプトを 送り込む 2 23
  • 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
  • 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. 重要な 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. 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. 複製の基本動作: 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. USN ロールバック問題 My USN=250 USN_DC1 = 250 DIT DIT DC1 DC2 なんらかの原因でロールバック My USN=200 複製リクエスト USN_DC1 = 250 複製無し DIT DIT DC1 DC2 30
  • 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. USN ロールバックの検知 • 「USN がロールバック」だけが発生すると、複製は停止する • Windows Server Backup から古い DIT をリストアした場合 • 古い VHD ファイルをリストアした場合 • 古い Export ファイルをインポートした場合 Event ID 2103:Active Directory データベースがサポートされていな い方法で復元されました。Active Directory はこの状態が継続している間、 ユーザーのログオンを処理できません。 32
  • 33. Invocation ID • Invocation ID:ディレクトリデータベース(NTDS.DIT)のID • DITのバージョン識別子として扱われる DIT Invocation ID 33
  • 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. 旧バージョンでのスナップショットによる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. 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. 仮想 Domain Controller DIT Invocation ID VM-Gen ID 比 較 VM-Gen ID Hyper-V ホスト 37
  • 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. 結局のところ... 以下の用途には使えないので注意 「作成したユーザーを削除したい」 「変更したユーザーの属性を元に戻したい」 • Authoritative Restore を使用しましょう • または Forefront Identity Manager を使用し、メタデータで管 理しましょう 消してしまったユーザーを復元するには「ゴミ箱」を使いましょう 39