GUIによるライブ・マイグレーションの実行方法は第3回で説明したとおりである。しかし、実際の運用ではタスク・スケジューラでタイマ実行したり、使い慣れているサード・パーティの統合管理ソフトウェアを利用したりしたいということもあるだろう。こういった場合に必要となるコマンドライン・インターフェース(CLI)ベースでの実行方法を最後に紹介していこう。
■PowerShellによる実行
ライブ・マイグレーションは、WSFCのclusterコマンドのようにコマンド・プロンプトから直接発行することはできない。CLIでの実行はPowerShellを経由して間接的に発行することになる。
ライブ・マイグレーションを実行するためのPowerShellモジュール「FailoverClusters」は、Windows Server 2008 R2の「WSFC」もしくは「リモート サーバー管理ツール(RSAT)」に含まれている。ローカルホストはもちろんリモート越しからでも実行できるため、さまざまな運用管理ポリシーに対応できるだろう。
Import-Module FailoverClusters
Move-ClusterVirtualMachineRole -Cluster <クラスタ名> -Name <仮想マシンのリソースグループ名> -Node <移動先ホスト名>
Import-Module FailoverClusters
Get-ClusterResource <仮想マシンのリソース名> | Set-ClusterParameter OfflineAction 1
Move-ClusterGroup -Cluster <クラスタ名> -Name <仮想マシンのリソースグループ名> -Node <移動先ホスト名>
■仮想マシンがどのホスト上にいるかを判別する
バックアップや夜間バッチなど、仮想マシンに対してスケジューリング処理を行う場合、ライブ・マイグレーション環境では仮想マシンがホストを自由に行き来できるため、実行するホスト名をスクリプト内にあらかじめセットしておくことができない。つまり、スクリプト上で「仮想マシンがいまどのホスト上で動作しているのか」の判別を入れる必要があるが、この場合もPowerShellを利用すればWSFCから調べることが可能だ。
Import-Module FailoverClusters
(Get-ClusterGroup <仮想マシンのリソースグループ名> -Cluster <クラスタ名>).OwnerNode.Name
実際の使用例を下記に紹介しよう。この例では、仮想マシンの所有ホストを判別し、そのホストに対してpingコマンドを実行している。
CLIベースでより細かなHyper-Vの管理を行いたい場合、標準で用意されているWMIプロバイダをWSHやPowerShellなどで利用するとよい。また、マイクロソフトの運営する開発コミュニティ「CodePlex」では、CLIでHyper-Vのさまざまな管理が行えるPowerShellコマンドレットも公開されている。
全4回にわたって連載した「Hyper-V 2.0実践ライブ・マイグレーション術」は今回で終了となる。ライブ・マイグレーションはHyper-V 2.0の最大の目玉であるにもかかわらず技術的に詳細な情報が少ないため、それをうまく補完できるように解説してきたつもりだ。連載の中で紹介したさまざまなノウハウをベースに、この魅力的なテクノロジーをぜひ導入してみてほしい。まずは第3回の記事を基に、テスト環境を構築してみよう。
Copyright© Digital Advantage Corp. All Rights Reserved.