SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

コマンドでライブ / クイックマイグレーションを実行

leave a comment

今日はコマンドで Live Migration / Quick Migration を実行する方法について。

[Quick Migration の実行]

まずは Quick Migration の実行から。
ゲスト OS のクラスターグループを移動することで QuickMigration を実行することができます。
Hyper-V のコマンドではなく、クラスターのコマンドを使ってグループを移動させることで実行することが可能です。

  • PowerShell (Windows Server 2008 R2)
    Import-Module FailoverClusters
    Move-ClusterGroup “<クラスターグループ名>” –Node “<ノード名>”

    例)
    Import-Module FailoverClusters
    Move-ClusterGroup "SCVMM 2008R2-OWA-01 Resources" -Node "T60-01"

  • Cluster コマンド
    Cluster Group “<グループ名>” /MOVETO:”<ノード名>”

    例)
    Cluster Group "SCVMM 2008R2-OWA-01 Resources" /MOVETO:"T60-01"

  • SCVMM 2008 R2
    Move-VM -VM "<ゲスト OS 名>" -VMHost "<ノード名>" -UseCluster

    例)
    Move-VM -VM "2008R2-OWA-01" -VMHost "T60-01" –UseCluster

 

[Live Migration の実行]

続いて Live Migration の実行です。
Live Migration ですが Cluster コマンドでは実行できないようです。
PowerShell と SCVMM 2008 R2 からは実行可能です。

  • PowerShell (Windows Server 2008 R2)
    Import-Module FailoverClusters
    Move-ClusterVirtualMachineRole "<クラスターグループ名>" -Node "<ノード名>"

    例)
    Import-Module FailoverClusters
    Move-ClusterVirtualMachineRole "SCVMM 2008R2-OWA-01 Resources" -Node "T60-01"

  • SCVMM 2008 R2
    Move-VM -VM "<ゲスト OS 名>" -VMHost "<ノード名>"

    例)
    Move-VM -VM "2008R2-OWA-01" -VMHost "T60-01"

 

今回は単純なコマンドベースで実行してみたのですが、WMI を使っても実行できるようですね。

[関連情報]
I want to know the wmi function for live migration as moveToNode perfrom quick migration
CLUSCTL_RESOURCE_VM_START_MIGRATION Control Code
ClusterResourceControl Function
ExecuteResourceControl Method of the MSCluster_Resource Class
CLUSCTL_RESOURCE_VM_START_MIGRATION Control Code
External Resource Control Codes
Internal Resource Control Codes

param
(
    $Name = $(throw New-Object ArgumentNullException -Args "Name"),
    $Target = $(throw New-Object ArgumentNullException -Args "Target")
)

# Get the desired virtual machine resource from the Failover Cluster WMI Provider
$Query = @"
    Select * From MSCluster_Resource Where Type=’Virtual Machine’ And Name=’$Name’
"@

$Vm = Get-WmiObject -Namespace rootmscluster -Query $Query

# Tell the virtual machine resource to move.
try
{
    $vm.ExecuteResourceControl(`
        23068676, [System.Text.Encoding]::UNICODE.GetBytes($Target))
}
catch [System.Management.ManagementException]
{

Written by masayuki.ozawa

5月 27th, 2010 at 1:53 pm

Posted in Hyper-V

Leave a Reply

*