ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示
ラベル Hyper-V の投稿を表示しています。 すべての投稿を表示

2015-12-09

Hyper-V VMを使用しFileMakerスタンバイサーバーのテスト環境を構築する


 FileMaker Server 14 でスタンバイサーバーが導入されたことにより、システムメンテナンス時や障害時にもすみやかに FileMaker データベース作業を再開できるようになりました。


 スタンバイサーバー - 概要


 プログレッシブバックアップを利用した現用系(プライマリ)と予備系(スタンバイ)のサーバ切替が可能になった分、突然のデータロスの可能性を低減できることは大きいと思います。

 しかしながら、切替制御が自動でないため、人為作業がどうしても発生してしまう点や、緊急時に FileMaker Server 管理者が対応不能の場合に作業が一時中断してしまう点などの問題は残りますので、緊急時の作業規則をあらかじめ社内で決めておくことが大切です。

 今回は、Windows OS で FileMaker Server 14 のスタンバイサーバー機能の動作検証を行いたい方のために、スタンバイサーバーのテスト環境を Hyper-V の仮想マシンを使って手っ取り早く構築する方法をご紹介します。

Hyper-V 上の仮想マシン(VM)のイメージ ― 1台のホストOS上で複数のVMを運用する

準備するもの

1. Hyper-V サービスがインストールされたコンピュータ 1 台
 今回は Windows Server 12 を使用しています。

2. FileMaker Server 14 が動作する Windows Server ライセンス 2 つ
 今回は Windows Server 2008 R2 を使用しています。

3. FileMaker Server 14 ライセンス 1 つ
 スタンバイサーバーを構成する場合、必要な FileMaker Server 14 のライセンスは1つのみです。

Hyper-V 環境の構築方法


1. 一台めの仮想マシンを作成してから仮想ハードディスクを接続します。
 その後、Windows Server OS と FileMaker Server 14 をインストールし、必要なデータベースファイルを Data/Databases ディレクトリの中に入れておきます。

新規仮想マシンと Windows Server OS および FileMaker Server 14 のインストール

ポイント:
 ― Windows Server の IP アドレスを正しく設定し、Windows 認証を済ませておきます。
 ― FileMaker Server 14 をインストールしたら、すぐにプログレッシブバックアップ設定をしておきます。



 このとき、プログレッシブバックアップ先のパス名の指定を忘れないようにしてください。
 上図では便宜的に filewin:/C/FMSProgBkup/ を指定してあります。

2. 一台めの仮想マシンをシャットダウンします。
そして、仮想マシンから仮想ハードディスクを削除(切断)します。

仮想マシンから仮想ハードディスクを切り離す

3. 仮想ハードディスク1 (VHD1) を複製して仮想ハードディスク2(VHD2=スタンバイサーバー用VHD)を作成します。
 Windows Server OS と FileMaker Server 14 がインストールされた状態の仮想ハードディスクを複製するため、インストール作業の二度手間を大幅に省くことができます

仮想ハードディスクを複製する

4. 一台めの仮想マシンに仮想ハードディスク1(VHD1)を再接続し、無事に起動してきたら、二台めの仮想マシンを新規作成し、仮想ハードディスク2(VHD2)を接続し、同様に起動します。

仮想マシンを新規作成して、二台の仮想マシンを稼働させる
ポイント:
 ― Active Directory に参加しているサーバを複製した場合は、二台めのサーバはドメインに参加できなくなります。
 このため、一旦ローカルログインし、IP アドレスの変更、コンピュータ名の変更、ワークグループへの切り替えを行ったあとで仮想マシンを再起動し、再度 ActiveDirectory に参加するようにする必要があります。

参考記事:ドメインにログインできなくなって泣かされる

 ― Windows OS は新たに仮想ハードディスクを接続すると、Windows 認証作業が必要になります。
  ボリュームライセンス利用者の場合は、「自動ライセンス認証が始まるまで XX 日です。今すぐ行う場合はここをクリックしてください」をクリックし、指示どおりに操作します。



 シングルライセンス利用者の場合は、「プロダクトキーの変更」をクリックして、二台めの Windows ライセンスを入力します。

 ― FileMaker Server 14 のプログレッシブバックアップの設定はプライマリサーバと共通になるので作業は不要です。FileMaker Server に付ける名前だけ変更すれば OK です。

FileMaker Server 14 スタンバイサーバーの設定方法


1. プライマリサーバの公開済データベースを全部閉じます。



 コマンドプロンプトから以下のコマンドを入力します。

fmsadmin standby connect スタンバイサーバーの名前または IP アドレス

 接続およびログインに成功すると、8桁のセットアップコードが表示され、待ち状態となります。
 このセットアップコードをメモしておきます。


2. スタンバイサーバー側でコマンドプロンプトを開き、以下のようにセットアップコードを入力します。

fmsadmin standby accept XXXXXXXX

ログイン成功後、スタンバイサーバー切替のメッセージが出るので y を選択後、ログインします。

3. プライマリサーバに戻り、待ち状態のコマンドプロンプトで Enter キーを押すとスタンバイサーバーへの接続が完了します。

ポイント:
 ― スタンバイサーバーでセットアップコードを入力して受理されたものの、セットアップコードが不正だった場合は Enter キーを押すとエラー終了になります。この場合は、手順 1. のコマンド入力からやり直してください。


4. プライマリサーバのコマンドプロンプトで、以下のコマンドを入力します。

fmsadmin standby update

 ログイン成功後、プライマリサーバのデータベースがスタンバイサーバーの公開データベース環境にコピーされます。


5. プライマリサーバのデータベースを再度公開します。


 すると、プライマリサーバとスタンバイサーバーのデータベース同期が行われるようになります。
 このとき、スタンバイサーバーの FileMaker Server Admin Console を開こうとすると、以下のように待機状態であることが確認できます。



 スタンバイサーバーのさらに詳しい設定方法および、スタンバイサーバーの動作確認方法(メンテナンス時、障害発生時のサーバ切替)は、FileMaker 社の公式動画がおすすめですので、ご覧になってみてください。



おまけ: FileMaker Server 14 プライマリサーバとスタンバイサーバの同期関係を解除する方法


 これまで、FileMaker Server 14 でプライマリサーバとスタンバイサーバーで同期が取れるように設定しましたが、逆に同期を解除したいという要望も出てくることでしょう。

 そのようなときは、プライマリサーバ側でコマンドプロンプトより以下のように切断コマンドを入力します。


fmsadmin standby disconnect

 本当にスタンバイサーバーを切断してよいかと聞いてきますので、y を選択し、ログインすると、スタンバイサーバーとの接続が切断されます。

 これにより、今までスタンバイサーバーだった FileMaker Server 14 はスタンドアロンサーバとして動作するようになります。

以上

(亀)

FileMaker バックアップ関連記事:

データベースのバックアップ方法
FileMaker Server のプログレッシブバックアップ機能の考え方と使い方


Hyper-V 関連記事:

Hyper-V の仮想マシンの移行方法(エクスポート&インポート)
Hyper-V の仮想マシンのエクスポート時の注意点
物理マシンを Hyper-V 仮想マシンに移行する(P2V)
Hyper-V のゲスト OS を起動しようとすると、「一般のアクセスが拒否されました」というメッセージが表示される
計画停電対策(1) --- ノートPCサーバとHyper-Vで乗り切る


2012-03-21

Hyper-V のゲスト OS の BIOS 不良で泣かされる

Hyper-V てはゲスト OS を複数運用できるため、今となっては弊社の業務に欠かせない存在ですが、当方のブログでもたびたび記事を書いているとおり、過去にも色々とトラブルに泣かされていることも確かです。

 さて、今回も月曜日の朝からゲスト OS が起動して来ないというトラブルに見舞われました。
 Hyper-V マネージャ画面を見ると、「仮想マシンの構成記憶域に接続できません」というエラーメッセージが表示されています。しかも状況は「重大」のようです。



 試しに起動してみると、以下のようなエラーメッセージが返されました。



 
 ゲスト OS の設定を確認してみると、BIOS の読み込みに失敗したとあります。
 BIOS 設定に何らかの障害が発生し、起動不能になった模様です。



 ネットを調べ回ったところ、仮想マシンを削除(仮想ディスクはそのまま残すこと)し、再度追加することで解決するとあったので試したところ、復活しました。

 ただし、システムの状態によっては Windows ライセンス認証がもう一度必要になったり、IP アドレス設定が丸々飛んだりしたりするので、その辺の微調整は必要になるかもしれません。

 ただ、今回のように突然ゲスト OS が起動しなくなる可能性がありますので、同じように BIOS による起動トラブルが発生した場合は、今回の方法をダメ元で試してみるのも一つの方法かもしれません(ただし、自己責任ということでお願いします)

2011-06-01

Hyper-V のゲスト OS からサウンドを出す方法(裏技的な使い方)

 Hyper-V のゲスト OS は、サーバ機能に特化した機能以外はほとんど使えないようになっているようです。
 USB ポートやサウンドカード等のサポートがこれに該当するため、Hyper-V のゲスト OS にはサウンドボードのエミュレータは組み込まれていません。

 32-bit のサポートを謳っていない Skype や AIM などの通信アプリケーションでは、64-bit であるホストでは正常に動作しないため、32-bit のゲスト OS 環境にそれらをインストールして使用する必要があります。

 しかし、上記の説明どおりゲスト OS からはサウンドを出すことができないため、リモートデスクトップを使うことによってこれを解決できます。

 リモートデスクトップ接続ウィンドウから“オプション”ボタンをクリックし、「ローカルリソース」タブの「リモートオーディオ」というセクションから“設定(S)...”というボタンをクリックすると、以下のようなダイアログが表示されます。



 上図のように設定して“OK”を選択してからゲスト OS にリモートデスクトップ接続を行い、接続先のゲスト OS で正しくサウンドデバイスを設定すると、サウンドが有効になります。

 今まで Hyper-V ゲスト OS からサウンドデバイスが有効にならないため諦めていた方は、駄目元で試してみると良いでしょう。


参考:Sound Card Emulation in Hyper-V?(英文)
http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/a060720c-833e-4855-921b-6d5c79dc98d9/

2011-05-20

P2V 変換した Windows Server 2003 の仮想マシンに統合サービスセットアップディスクをインストールできずに泣かされる

 前々回の記事で、本ブログで物理マシンを仮想マシンに変換して Hyper-V で運用する方法について説明しましたが、disk2vhd で変換された仮想ディスクを使って起動した仮想マシン(Windows Server 2003)に統合サービスセットアップディスクを入れようとすると、「HAL をアップグレードしています」というダイアログが表示され、その後にマシンを再起動すると、このメッセージが再び表示される(つまりループ状態となる)現象が発生しました。


 二日間ほど悩んでネットを探し回った結果、以下の方法にたどり着きました。

disk2vhd で作成されたディスクはデュアルブートになっている

 仮想マシンを起動した直後は、以下のようなデュアルブート選択画面が表示されます。
 待ち時間はデフォルトで 3 秒間なので、素早く Disk2vhd でない方(下)を選択して起動します。



 この手順で起動した方のシステムに統合サービスセットアップディスクをインストールすると成功します。


デュアルブートのブート順を入れ替える

 上記で統合サービスセットアップディスクのインストールに成功したら、今度のためにもブート順を入れ替えておいた方が良いでしょう。

 上記の要領でシステムを起動してから、コンピュータのプロパティを表示させ、「詳細設定」タブの「起動と回復」セクションに表示されている“設定”ボタンをクリックします。



 表示されるダイアログの「起動システム」セクションで、Disk2vhd という表記がない方のシステムを選択し、“OK” をクリックします。 



 これによって、次回の起動時より Disk2vhd でない方のシステムがデフォルトとして選択されるようになります。
 今後も起動するシステムを選択したい場合は、上記の画面で待ち時間を 10 秒くらいにしておくと選択するときに慌てなくてよいでしょう。


参考:Integration services cannot upgrade HAL(英文ページ)

サイズ可変の仮想ディスクを固定にしてサイズを縮小する方法

 サイズ可変の仮想ディスクが異様に膨れ上がったことにより、物理ディスク領域を圧迫したために起動しなくなるというトラブルを以前経験したことがあり(詳細はこちら)、当方では固定ディスクの使用を推奨しておりますが、最初にサイズ可変の仮想ディスクを作成してしまった場合、固定ディスクに変換すると、そのサイズが 5 倍~ 6 倍にも膨れ上がることがあります。

 たとえば、10G だったはずのサイズ可変仮想ディスクを固定ディスクに変換したとたん、サイズが 50G に膨れ上がってしまい、物理ディスク領域を圧迫してしまう可能性があります。

 この場合、以下の手順を踏むことで固定仮想ディスクのサイズを縮小することが可能です。
 (縮小率は使用済み領域によって左右されますのでご注意ください。)

1. サイズ可変ディスクのサイズを縮小する。

 ホストマシン(Windows Server 2008)から「スタート」→「管理ツール」→「コンピュータの管理」の順に選択し、左ペインに表示される項目より「記憶域」→「ディスクの管理」の順に選択して右クリックし、サブメニューより「VHD の接続」を選択します。



 サイズを縮小したい可変仮想ディスクを選択すると、そのディスクが接続されますので、接続後にパーティションを右クリックすることによって、サイズを縮小することができます。
 サイズは可能な限り小さくしてください。
 ディスク領域が縮小されると、残りのパーティションは未使用領域として表示されます。



 処理が終わったらディスク名(上図ではディスク 6)を右クリックし、「VHD の切断」を選択してください。

2. 仮想ディスクを固定にする。

 Hyper-V マネージャを開き、右ペインに表示されるメニュー項目から「ディスクの編集」を選択し、ウィザードに従ってディスクを固定に変換します。


 
 この時点でディスクサイズが数倍に膨れ上がります。

3. 専用のツールを使って固定ディスクのサイズを縮小する。

 vmToolkit で配布されている無償のツール vhdresizer をダウンロードします。

 vhdresizer をインストールしてから起動すると、ディスク指定画面が表示されますので、上記 2. で固定化した仮想ディスクを指定します。



以下を指定してから“Resize” をクリックすると、ディスクサイズが縮小されます。

[Destination Vhd] に変換後のディスクの名前を入力。
[Type]が Fixed (固定)になっていることを確認。
[New Size]に可能な限り小さな値を指定。上図では、指定可能最小サイズが 17gb となっているが、17 では Resize ボタンがアクティブにならないため、18 を指定。

“Resize” ボタンをクリックすると、指定したサイズにが縮小されます。


参考:この操作によって、手順 1. の可変ディスクの縮小時にできた「未使用領域」がなくなるため、ディスクの中は一つのパーティションとなります。

ディスクのパーティションを削除、移動するためのツール

 ディスクのパーティションを削除して縮小したり、ディスクパーティションの位置を移動するには、専用のツールを使用する必要があります。

 今回使用したのは、MiniTool Partition Wizard です。

 Windows 7、Windows Server 2008 を使ってディスクマネージャから仮想ディスクを繋ぎ、MiniTool Partition Wizard を使うことによって、パーティションの編集ができます。



 パーティションの削除と移動が簡単に行えるので、あると便利なツールです。

 その他のパーティションツールとしては、EASEUS Partition Master も有力候補かと思います。
 EASEUS Partition Master のサイト(日本語) (2017/10/14 更新)



おまけ:
利用を検討したが、断念したツール群

Gnome Partition Editor
ブート CD を使ってパーティションを操作できるツールだが、vhd を USB 経由で参照するのに対応していなかったため使用を断念。

Cute Partition Manager
64 bit 環境で動作しないため、使用を断念。

2011-05-17

物理マシンを Hyper-V 仮想マシンに移行する(P2V)

 本ブログでは、Hyper-V の仮想マシンに OS をインストールしたり、仮想マシンを別のコンピュータの仮想マシンとして移行したりする方法を紹介してまいりましたが、今回は、運用中の物理マシン(タワー型マシン)の環境をごっそり仮想マシンに変換(P2V)して、Hyper-V で運用する方法について紹介します。

 手順は次の 3 ステップとなります。

1. 物理マシンのドライブをそれぞれ仮想ハードディスク(.vhd)に変換する。

MicroSoft 社の Windows SysInternals で提供されている disk2vhd というツールを使うことによって、物理ドライブを仮想ディスクに変換する。



注意:Hyper-V で運用可能な仮想ディスクを作成する場合は、ダイアログボックス右上の [Prepare for use in virtual PC]というチェックボックスに必ずチェックを入れてください。

 私が使っているマシンのディスクドライブは、C、E、F に分かれているため、C、E、F 個別に変換を行い、計 3 つの仮想ディスクを作成しました。

 外付けデバイス、CD/DVD-RW ドライブは変換しないようにしてください。

注意: C、E、F を一度に変換すると、場合によっては作成される仮想ディスクファイルが 1 つになったり、2 つになったりする可能性がありますが、この内部基準に関することは今のところはっきりとわかっておりません(調査不足ですみません)。
ドライブを複数に分けている場合は、個別に変換されることを強くお勧めします。

2. Hyper-V マネージャを開き、新しい仮想マシンを作成し、仮想ディスク接続先を 1. で作成した 3 つのドライブにする。
(参考:今回は仮想環境の C、E、F ドライブにするディスク領域を iSCSI で構築しています。)

 移行先のホストマシンに、1. で作成した 3 つの vhd を格納するディスクドライブを用意します。
 一度に全部の環境を一度にバックアップを取るようにスケジュールするのであれば、3 つの vhd を一つのドライブに入れても良いですが、データドライブのみ、アプリケーションドライブのみ、といったようなバックアップスケジュールを組みたい場合は、vhd を格納するドライブをそれぞれ分けた方が良いでしょう。


 以下の例は、ホストOS から見た H ドライブにゲスト OS の変換済みのドライブ E の vhd ファイルを配置したところです。
 このように、1 ドライブに 1 つの vhd ファイルを配置しても良いですし、一度に仮想マシン全体をバックアップする予定であれば、1 ドライブに 3 つの vhd ファイルを配置してもかまいません。



 ここまで終わったら、Hyper-V マネージャを開き、仮想マシンを新規作成した後で、それぞれの vhd ファイルを関連付けます。

 当方で動作検証したところ、SCSI コントローラで vhd を関連付けたところ E/F ドライブが認識されなかったため、IDE コントローラーで関連付けを行いました。

 IDE コントローラを使って C、E、F ドライブの関連付けを行うと、以下の図のようになります。



3. 仮想マシンを起動して、E、F ドライブを認識させる。

 上記のとおり設定を行ったところで、仮想マシンを起動します。
 disk2vhd でうまく vhd 変換できていれば、OS は正常に起動できると思います。

 起動直後は、以下のようなライセンス認証ダイアログが表示されることがありますので、期間内にライセンス認証を行ってください。



 「スタート」→「管理ツール」→「コンピュータの管理」の順に選択し、左ペインに表示される「ディスクの管理」を開きます。E および F ドライブのディスクがオフライン状態となっていることがありますが、ディスク名を右クリックし、「オンライン」を選択することによってディスクをオンライン状態にできます。

 すべてのディスクをオンライン状態にすると、ディスク構成は次のようになります。



 上記でおかしな点は、ディスク 1 に E と F というドライブ名がついていますが、ディスク 2 のドライブ名は設定されていないことです。
 ディスク 1 に E、ディスク 2 に F というドライブ名が設定されることを想定しているにもかかわらず、ディスク構成が上記のようになってしまうことがあります。

 disk2vhd の変換機能の仕様によるものなのかもしれませんが、ドライブ名を正しく指定するには、ディスク 1 の二番目のパーティションを空欄にし、ディスク 2 の二番目のパーティションに F を指定すると、想定しているディスク構成で元のファイル群を参照できるようになります。


 しかし、この方法ですと、ディスク 1 の二番目のパーティション、ディスク 2 の先頭のパーティションがゴミとして残ってしまいますので、専用のツールを使ってパーティションの削除、移動をする必要があります。

2011-05-09

Hyper-V のゲスト OS を起動しようとすると、「一般のアクセスが拒否されました」というメッセージが表示される (ID: )

今まで稼動させていた Hyper-V の仮想マシンの仮想ハードディスク (.vhd) の可変→固定 変換を行った直後に、変換後の .vhd を起動すると、以下のメッセージが表示されるようになりました。


権限が足りないために起動できなくなったようですが、.vhd に Authenticated Users というユーザをフルアクセスで割り当てることで事なきを得ました。

参考:
SQL Server をメインにしたいと思いつつ Microsoft 製品の勉強内容を日々投稿
SCVMM で共有ディレクトリの ISO イメージがマウントできない場合の対応



しかし、このような現象が発生した場合は、Hyper-V マネージャのゲスト OS 設定から一度当該のディスクを削除し、再度割り当てることによって、起動のために必要な権限が割り当てられるようになる模様ですので、こちらの方がやり方としてはお勧めです。(2011/09/28追記)


1. 起動時に問題を引き起こしている仮想ディスクを削除します(下図参照)。

2. 1. で削除した仮想ディスクを追加するために、ディスクコントローラーを追加しなおします。
下図は、SCSI コントローラを追加しなおしているところですが、元々 IDE コントローラを使用していた場合は、IDE コントローラを追加してください。

3. 1. で削除した仮想ディスクを追加し、適用させます。


4. ゲスト OS の電源を入れ、無事起動すれば成功です。



参考:
仮想マシンの起動時に「IDE/ATAPIアカウントには、アタッチメント(VHDファイル名)を開くのに十分な特権がありません。」のエラーが表示される

2011-04-21

Hyper-V の仮想マシンのエクスポート時の注意点

 前回の記事に関連した内容となりますが、Hyper-V の仮想マシンをエクスポートする際に注意しておきたい点がいくつかありますので、紹介いたします。

仮想マシン全体をエクスポートするか、スナップショットをエクスポートするか

 Windows Server 2008 R2 では、仮想マシンのエクスポートを行う際に、仮想マシン全体をエクスポートするか、スナップショットをエクスポートするか選択できます。

 Hyper-V マネージャーで仮想マシン名を右クリックしてエクスポートすると、仮想マシン全体をエクスポートできます。



 特定のスナップショットのみをエクスポートする場合は、下ペインでスナップショットツリーを展開してから、当該のスナップショットを右クリックしてエクスポートします。



 この柔軟性が意外と問題で、誤ったスナップショットをエクスポートしてしまうと、移行先が最新版の仮想マシン環境にならない可能性があるため、注意が必要です。

 そのため、仮想マシン全体をエクスポートして、移行先で仮想マシンを復元してから、スナップショットを削除してディスク結合を行う方が操作上無難ではないかと思います。


不要なスナップショットを削除して、仮想ハードディスク結合を行う
 スナップショットの削除の仕方によって、スナップショットディスク (.avhd) そのものが削除される場合と、スナップショットディスクが親仮想ディスク (.vhd) に結合される場合があります。

 スナップショットディスクが親仮想ディスクに結合されるようにスナップショットを削除するには、下図の番号の順番にスナップショットを削除します。



参考:スナップショットの削除とインポート/エクスポート(3.スナップショットの削除とインポート/エクスポート)


【仮想マシンインポート時の注意点】

 仮想マシンをインポートする際に、仮想 NIC 名および CD/DVD デバイス名が元の名前と一致していない場合は、以下のようなエラーがイベントビューアに記録されます。




 これらのエラーは、イベントビューアより「アプリケーションとサービスログ」→「Microsoft Windows」→「Hyper-V-VMMS」→「Admin」で確認できます。

ID: 14140
'仮想マシン名' は、デバイス 'Microsoft Virtual CD/DVD Disk' を追加できませんでした。(仮想マシン ID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)

ID: 18130
'仮想マシン名' (仮想マシン ID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) にデバイス '{ResourceType=21, OtherResourceType="", ResourceSubType="Microsoft Virtual CD/DVD Disk"}' を正しくインポートできませんでした。エラー: 無効なパラメーターです (0x80041008)。

ID: 18510
インポート タスクで、エラー '指定されたネットワーク リソースまたはデバイスは利用できません。' (0x80070037) により、ファイル 'C:\ProgramData\Microsoft\Windows\Hyper-V\Windows Server 2000\HV Windows Sever 2000 x86 SP4.vhd' の ACL を修復できませんでした。

ID: 18060
インポートできませんでした。場所 'C:\ProgramData\Microsoft\Windows\Hyper-V\Windows Server 2000\' に仮想マシンを保存できません。エラー: 指定されたネットワーク リソースまたはデバイスは利用できません。 (0x80070037)


 当方で仮想マシンのインポート、仮想 NIC 名が元の環境とインポート先の環境と一致していない場合に仮想マシンのインポートを実行すると、ホストの NIC が動作停止し、コンピュータをシャットダウンできなくなるという不具合が発生したため、仮想 NIC 名は旧環境と新環境で統一しておいた方が良いかもしれません。

2011-04-06

Hyper-V の仮想マシンの移行方法(エクスポート&インポート)

 さて、当ブログで以前から Hyper-V の設定方法や仮想ディスクの編集方法について述べてきましたが、今回はあるコンピュータの Hyper-V 環境にインストールされている仮想マシンを別のコンピュータに移行する方法について紹介します。

 ここでは、Hyper-V マネージャに用意されている仮想マシンのエクスポート、および仮想マシンのインポート機能を使います。

【仮想マシンのエクスポート】

1. 移行対象の仮想マシンをシャットダウンして停止させます。
2. Hyper-V マネージャより、1. の仮想マシンをマウスで右クリックしてサブメニューを表示させ、その中から「エクスポート(X)...」を選択します。


3. エクスポート先の指定を促すダイアログが表示されますので、任意の場所を指定します。


注:
 現在割り当てている仮想マシンの環境がそのままエクスポートされますので、エクスポート先のディスク空き容量が十分あることを事前に確認しておいてください。

 また、ユーザが任意に名称変更した仮想ハードディスク (.vhd) をエクスポートしようとすると、以下のようなメッセージが表示され、エクスポートに失敗してしまいますので、ご注意ください。イベント ID:18350

「仮想マシン 'Windows Sever 2000 x86' (E07BACD0-A9A4-4FC2-85F0-D9A9357943AA) をエクスポートできませんでした: エラー '指定されたファイルが見つかりません。' (0x80070002)。


 このエラーメッセージは、管理ツールのイベントビューアより、「アプリケーションとサービス ログ」→「Microsoft」→「Windows」→「Hyper-V-VMMS」→「Admin」で確認できます。


【仮想マシンのインポート】

0. 仮想マシンのインポートは一旦処理が始まってしまうと、後でユーザがインポート先を任意指定できないため、事前にインポート先を決めておく必要があります。
 Hyper-V マネージャを開き、右ペインに表示されるメニュー項目の中から「Hyper-V の設定...」を選択します。



 Hyper-V の基本設定をするためのウィンドウが表示されますので、必要に応じて「サーバー」項目の[仮想ハードディスク] および [仮想マシン]へのパスを変更しておきます。
 仮想マシンのインポート処理が実行されると、これらのパスを使用して仮想マシンが構成されます。



 
注:
 デフォルトでは、これらのパスは以下のようになっているため、仮想マシンをインポートすると、以下のディレクトリ配下に仮想マシン環境が展開されることになります。

[仮想ハードディスク]
<%systemdrive%>:\Users\Public\Documents\Hyper-V\Virtual Hard Disks

[仮想マシン]
<%systemdrive%>:\ProgramData\Microsoft\Windows\Hyper-V


1. 移行先のコンピュータの Hyper-V マネージャを開き、右ペインに表示されるメニュー項目の中から「仮想マシンのインポート」を選択します。



2. 仮想マシンのインポートダイアログが表示されますので、下図のようにエクスポート済の仮想マシンを指定してから、オプションを設定して“インポート”ボタンを押すと、仮想マシンがインポートされます。




○オプション解説

仮想マシンを移動または復元する(既存の一意な ID を使用する)(M) --- エクスポート元の ID と全く同一の仮想マシンが復元される。
インポート先にすでに同じ ID の仮想マシンが存在する場合は、インポートは失敗する。

仮想マシンをコピーする(新しい一意な ID を作成する)(O) --- エクスポート元のマシンに新しい ID を振り、仮想マシンをコピー。

すべてのファイルを複製し、同じ仮想マシンを再度インポートできるようにする(D) --- エクスポートされた仮想マシンを元に、何回でもインポート操作ができる。

注:このチェックボックスを外してインポートを実行すると、エクスポート済の仮想マシンが使えなくなるため、一度しか操作を実行できなくなります。


3. インポートが完了したら、仮想マシンを起動します。
システムの構成によっては CD/DVD ドライブや NIC が正常に動作しないことがあるため、設定画面で調整を行ってください。


参考リンク:
Hyper-V 関連ドキュメント
http://technet.microsoft.com/ja-jp/virtualization/dd297510
Windows Server 2008 R2 Hyper-V バックアップ/リストアガイド
http://primeserver.fujitsu.com/primergy/technical/construct/pdf/win2008r2-hyperv-backup.pdf

2011-03-30

計画停電対策(1) --- ノートPCサーバとHyper-Vで乗り切る

震災発生が3/11。 計画停電(輪番停電)なるものがその後発生し、その間、サーバを停止させなければならないと判明したのが3/13(日)。 当事務所がある調布が第2グループに含まれており、15日に計画停電があると判ったのが14日夜。

当社では客先のデータベースを運用している関係上、至急、以下のような対策を検討した。

1.発電機導入
探してみるとヤマハのEF1600iS(13万円~、1.6kVA、燃料はガソリン)なるものが良いらしい。ルータ、ONU、最小限のサーバなら、停電時も運用できそうだ。 さっそく販売店に問い合わせてみると、「政府・メーカーから在庫分はすべえて被災地に送るようにと指示されていて、当面入荷の見込みはない」とのこと。 あっさり頓挫。


2.客先へのサーバ移動
客先の所在地が計画停電の範囲外にある場合に検討の余地がある。 サーバを新設する場合はすべて一から再構築になり、DNSやSSLも再申請・再設定になる可能性あり。また、夏場は千代田、港、中央以外の東京23区も停電の対象地域となるらしいので、この場合は解決策にはならない。


3.データセンター
データセンターであれば電源は保障される筈なので、上記2前段の問題は残るものの、停電対策には一番良い解決策と思われる。 が、コストが高い。


4.ノートPCサーバへの移行とUPS増設
現サーバ環境をノートPC(Windows Server 2008 R2 + Hyper-V)に移行し、停電時は増設したUPS で乗り切る。 結局、これを採用した。 開発用のノートPC(CORE I5/8GB)に Windows 2008 と Hyper-V をインストールしてあったので、ここに必要最低限の現サーバ(複数)の環境を移行。Hyper-Vのお陰で1台の物理マシンに複数のサーバOSをインストールして運用できる。 このノートPCの内蔵バッテリは最大6時間持つ仕様だが、テストしてみると3時間弱で切れてしまう。そこで、UPS(APC Smart-UPS 1500)も2台増設した。
1台はノートPC専用、もう1台はONUとルータに接続。この構成で3時間程度の停電であればUPSバッテリも余裕をもって乗り切ることができる。 また、停電後2時間程度でバッテリは満タン状態に戻るので、1日6時間停電がある場合でも、停電と停電の間に3時間の余裕があればどうにかなりそうである。


かくして、上記4の方法で行くことを14日午前に決定、14日午後一でUPSを発注、サーバ環境をノートPCサーバに移行作業開始、17日午後より運用を開始した。 Smart 1500が発注から中2日で到着したのは幸運だった。(その後、Webのショップを覗いてみたが、軒並み売り切れになっていた。3/30現在、在庫があるショップも僅かにあるが、14日時点に比べると、割高になっている。)

以上 


2011-01-20

Hyper-V ゲスト OS 用仮想ハードディスクが膨れ上がって大慌て (イベントID 16060)

Hyper-V のゲスト OS が一斉に一時停止になってさあ大変

 Hyper-V のゲスト OS から共有しているフォルダにアクセスしようとすると、ネットワークリソースにアクセスできないという旨のメッセージが出ました。



 そこで、Hyper-V マネージャーを見てみると、すべてのゲスト OS が一時停止状態となっていたため、イベントビューアを調べてみると、以下のエラーが記録されていました。
 このエラーは、イベントビューアより、「アプリケーションとサービスログ」→「Microsoft」→「Windows」→「Hyper-V-VMMS」から参照することができます(イベントID 16060)。




 どうやら、ゲスト OS 用に割り当てた仮想ハードディスク (.vhd) が膨れ上がってしまい、ハードディスクの空き容量が少なくなってしまったたために、登録されているすべてのゲスト OS が Hyper-V の 仮想マシン管理サービスプロセス(VMMS)によって一時停止状態となったようです。

 仮想ハードディスクが膨れ上がった原因を調べてみると、次のことがわかりました。

  1. 仮想ハードディスクの形式が可変になっていた。

  2. スナップショットが複数存在していた


 上記のために、いつの間にか膨れ上がった仮想ハードディスクが実際のハードディスク領域を圧迫していた模様です。

こうなったら仮想ハードディスクを固定にするしかない

 限りあるコンピュータ資源であるハードディスクの空きがあまりないということで、今回のような現象が発生すると、これ以上仮想ハードディスクが膨らまないように対応するしかありません。

 仮想ハードディスクの形式を可変から固定に変換すれば、ディスク容量はそれ以上は大きくなりません。
 仮想ハードディスクの形式を可変から固定に変換する作業自体はそれほど難しくはないのですが、スナップショットが存在する場合は、先にスナップショットを親仮想ディスクに結合しなければなりません。

 以下のような仮想ハードディスク構成になっているとします。

Windows Server 2000 x86.vhd <--- 親仮想ディスク
  Windows Server 2000 x86[ユニークID].avhd <--- 差分仮想ディスク1
  Windows Server 2000 x86[ユニークID].avhd <--- 差分仮想ディスク2
  Windows Server 2000 x86[ユニークID].avhd <--- 差分仮想ディスク3(最新)

 上記で.avhd がスナップショットで作成される差分仮想ハードディスクとなります。
 このように、一つでも差分仮想ハードディスクが存在する場合は、ディスク形式を変換する前に親ディスクにディスクを結合しなければならなくなりますので、注意が必要です。

 上記の例では 3 の差分仮想ハードディスクが最新となっていますので、3、2、1 の順に計 3 回の結合作業が必要となります(3 回結合が完了すると、Windows Server 2000 x86.vhd だけになる)。


差分仮想ハードディスクの結合方法

 差分仮想ハードディスクを親仮想ディスクに結合するには、ゲスト OS をシャットダウンしてから、ディスクを解除します。

1. Hyper-V マネージャより、当該のゲスト OS を選択して設定画面を開き、下図のように IDE コントローラーから仮想ディスクを削除し、“適用”ボタンをクリックします。



 「削除」という表現が紛らわしいですが、Hyper-V の管理下から解除されるという意味ですので、仮想ハードディスク自体はそのまま残ります。

2. 下図のように、Hyper-V のマシン名をマウスで右クリックするとサブメニューが開きますので、その中から「ディスクの編集(E)...」というメニュー項目を選択します。



 仮想ハードディスクの編集ウィザードが開きますので、以下のように最新の差分仮想ディスク(.avhd)を指定します。



3. 仮想ハードディスクに対するアクションを選択するための画面に移りますので、下図のように「結合(M)」を選択し、“次へ”をクリックします。



4. 差分ディスク変更の結合をするための画面に映りますので、下図のように「親仮想ハードディスクに結合する(P)」を選択し、“次へ”をクリックします。



5. 以下のような確認画面が表示されますので、この内容でよければ“完了(F)”をクリックします。
差分仮想ハードディスクが親仮想ハードディスクに結合されます。



注意)この手順を繰り返し、すべての差分仮想ハードディスクを親仮想ハードディスクに結合する必要がありますので、ディスク領域に余裕のあるハードディスク上でこの操作を行ってください。


仮想ハードディスクを最適化する

 上記で差分仮想ハードディスクがすべて結合されると、ディスクの中は下図のように仮想ハードディスクのみになります。



 仮想ハードディスクのサイズ形式を可変から固定に変換する前に、以下の手順で仮想ハードディスクを最適化することによって、不使用の領域を取り除いておくことをお勧めします。


1. 下図のように、Hyper-V のマシン名をマウスで右クリックするとサブメニューが開きますので、その中から「ディスクの編集(E)...」というメニュー項目を選択します。



2. 仮想ハードディスクの編集ウィザードが開きますので、先ほど結合した仮想ハードディスクを指定し、“次へ”をクリックします。



3. 仮想ハードディスクに対する操作のメニュー項目が表示されますので、その中から一番上の「最適化(C)」を選択し、“次へ”をクリックします。



4. 確認画面が表示されますので、操作内容が最適化になっていることと、指定した仮想ハードディスクが正しいことを確認してから、“完了”をクリックすると、仮想ハードディスクが最適化されます。



仮想ハードディスクのサイズ形式を可変から固定に変換する

 仮想ハードディスクを最適化した後は、サイズ形式を可変から固定に変換します。

1. 下図のように、Hyper-V のマシン名をマウスで右クリックするとサブメニューが開きますので、その中から「ディスクの編集(E)...」というメニュー項目を選択します。



2. 仮想ハードディスクの編集ウィザードが開きますので、先ほど結合した仮想ハードディスクを指定し、“次へ”をクリックします。



3. 仮想ハードディスクに対する操作のメニュー項目が表示されますので、その中から真ん中の「変換(V)」を選択し、“次へ”をクリックします。



4. 変換対象の仮想ハードディスクを選択するための画面に移りますので、先ほど最適化した仮想ハードディスクを選択してから、“次へ”をクリックします。



5. 確認画面が表示されますので、操作内容が「容量固定に変換」になっていることと、指定した仮想ハードディスクが正しいことを確認してから、“完了”をクリックすると、仮想ハードディスクのサイズ形式が固定に変換されます。




変換済みの仮想ハードディスクを Hyper-V のIDE コントローラに繋ぎ直す

 これで仮想ハードディスクのサイズ形式が固定になりましたので、Hyper-V の IDE コントローラに繋ぎ直して起動できれば操作は完了です。


1. Hyper-V マネージャより、当該のゲスト OS を選択して設定画面を開き、下図のように IDE コントローラーを左ペインで選択し、右ペインで「ハードドライブ」を選択してから“追加(D)”ボタンをクリックします。




2. 仮想ハードディスクファイルを選択する画面に移りますので、“参照(B)...”をクリックして先ほどサイズ形式を固定に変換した仮想ハードディスクを選択してから、“適用(A)”をクリックします。




3. IDE コントローラに仮想ハードディスクが適用されると、“適用(A)”ボタンが灰色反転しますので、“OK”をクリックします。



4. 今回適用したハードディスクを使ったゲスト OS を起動し、問題なく操作できれば完了です。


 今回の障害で得られた教訓は次のとおりです。

1) 最初に仮想ハードディスクを割り当てる際は、予想されるディスク容量の形式を固定にする。
2) スナップショットはある時点のシステム状態を再現するには便利な機能だが、仮想ハードディスク絡みのトラブルが発生して最適化や変換が必要になった場合に、すべてのスナップショットを一旦親ディスクに結合しなければならなくなるので、スナップショットを多用するのは得策とは言えない。