Storage Migrationが不完全な形で終わってしまい、復旧に時間がかかった(AVHDXファイルのチェーンの修復方法)

先日、Hyper-VのStorage Migrationが不完全な形で終わってしまい何故か2台の仮想サーバーになってしまう、しかも1台は起動が不可能、もう一台は相当過去の状態に戻ってしまう…というかなりクリティカルな問題が発生しました。テスト用の環境でかなり乱雑に扱われていたのが原因だろうとは思うのですが…。 詳しく説明すると以下のような状況でした。 - もともとのVMは4つのスナップショットが存在していた。 - Storage Migrationに関連したトラブル発生後、VMは2つになってしまった。それぞれVM1とVM2とします。 - VM1には設定上スナップショットが4つ存在することになっていました。 - VM2には設定上スナップショットが存在しないことになっていました。 - VHDXファイルおよびAVHDXファイル群はまとめてVM2が存在してる方のディレクトリに存在していました。 - VM1はもともとのVMの最新のAVHDXファイルがHDDとして設定されていました。ただしそのパスにはもうAVHDXファイルは存在していません。このためVM1は起動不可能でした。 - VM2はもともとのVMの一番大元のVHDファイルがHDDとして設定されていました。起動するとテンプレートから展開直後の状態のようでした。(もともとテンプレートから展開直後にスナップショットを取得していたものと思われる。) 結果的にAVHDXファイル群は存在しているものの、VM1は起動しないし、VM2は過去の状態だし…で事実上すべてのデータが失われている状態でした。 この状態からなんとか最新の状態で仮想マシンを起動しようと頑張ったのですが結構苦労してしまいました。 あまりAVHDXファイルのことを知らなかったのですが、今回調べる中で以下のことを確認しました。 - AVHDXファイルの「親ファイル」の情報は、ファイルのパスとIDをAVHDXファイル自体が保持している。別途XMLファイル等にかかれているわけではない。 - 仮想マシンのディスクのパスとしてAVHDXファイルが指定されると、AVHDXファイルの親、更にその親…という形で「チェーン」をたどって、きちんと一番の親までチェーンをたどりきれればマウント可能となり、起動できる。チェーンが途中で破損していると以下のメッセージが出て起動できない。 - このチェーンの破損の修復はHyper-Vマネージャーで仮想ハードディスクの編集を行うことで可能。親ディスクを指定し直すことや、その際にIDの不一致を無視させることも可能。 今回のケースではこの方法でチェーンの破損を修復した上で、最新のAVHDXファイルをマウントすることで最新の状態でVMを起動させることが出来ました。 ちなみに、スナップショットの情報はXMLにかかれていてうまくXMLを編集してあげればVM2側でスナップショットまで復旧できるだろうと思ったのですが、単純にVM1のスナップショットの記述をVM2のXMLファイルにコピペするだけではダメでした。復旧優先だったので深追いしていませんが、スナップショット情報の記述方法はもうちょっと研究しないとダメそうです。 また、調べている最中で知りましたが、AVHDXファイルは単純に拡張子をVHDXファイルに変更してしまった上でマウントなどの操作もできてしまうのですね。大味でちょっとびっくりしました。 あまり有効活用する機会に巡りあいたくない知識ですが、どんな場合でもVHDX, AVHDXファイルさえ確保できていればデータの復旧に関しては大丈夫そうな印象を受けました。

June 28, 2014 · 1 min · 胡田昌彦

パススルーディスクはWindows Server 2012のライブマイグレーションをサポートしません

Hyper-Vにおいて、ディスクのパフォーマンスがシビアなアプリケーションを動かす場合にはパススルーディスクを…という流れが以前はありました。また、VHDファイルの最大容量である2TBの壁からもパススルーディスクを使うケースがありました。しかし、Windows Server 2012では状況が変化しているようです。 Windows Hyper-V Server 2012 Live Migration does not support pass-thorough disks 上記はパススルーディスクではライブマイグレーションがサポートされないというKBです。パフォーマンスの観点からもVHD, VHDXファイルを容量固定にしてにしてしまえばさほど違いはなく、容量面からもVHDXフォーマットなら64TBまでOKです。そして何よりもパススルーディスクにしない方が圧倒的に可搬性が高くなります。 パススルーディスクを使う時代はそろそろ終わりなのかもしれないですね。

April 9, 2013 · 1 min · 胡田昌彦

Windows Server 2012 Hyper-Vで任意のホスト間を移動(Live Migration)させるための委任設定

Windows Server 2012ではShared-Nothing Live Migration(何も共有していなくてもできる移行)ができるようになったのでちょっとしたサーバーの移動が非常に楽にできるようになりました。ですがちょっとやろうとするとすぐに詰まるのが以下のエラーです。 これは認証プロトコルとしてKerberosを選択しているにもかからず、きちんと委任できていない場合に発生します。 ※CredSSPを利用すると、ログオンしているホストから他への移動が実行できます。が…、いちいちログオンするのは面倒なのでやはりここはKerberosで任意のサーバーから任意のサーバーに自由に移動できるように構成したいところです。 このエラーを回避するには以下の技術情報にしたがってコンピューターアカウントに対して2つのサービスに関して委任を設定してあげればOKです。移行元コンピューターに移行先コンピュターのサービスを委任してあげる感じです…が、私は面倒なので、全部のHyper-Vホストに全部のHyper-Vホストのサービスを委任してしまってます。 - [クラスター化されていない仮想マシンでのライブ マイグレーションの構成と使用](http://technet.microsoft.com/ja-jp/library/jj134199.aspx) きちんと委任してあげれば以下のように移動することができます。

September 7, 2012 · 1 min · 胡田昌彦