2013年12月24日
サーバ仮想化機能の代表的な機能としてLive Migration機能があります。
Live Migration機能とは、ご存知の方も多いと思いますが仮想マシン(ゲストドメイン)を稼働したまま、別の物理サーバへ移動させる機能です。PCサーバの仮想化機能では一般的になってきたと思いますが、SPARC M10の仮想化機能であるOracle VM Server for SPARCにもLive Migration機能があります。
そこで今回はOracle VM Server for SPARCのLive Migration機能と設定方法のポイントなどをご紹介したいと思います。
Live Migrationを実施するには、いくつか条件があります。まずはその条件を確認しましょう。
その他、OSやOracle VM Server for SPARCのバージョンにも条件があります。詳しくは、以下のマニュアルをご確認ください。
今回は、以下の図のようなドメインを構築しました。
構築の詳細は、今回は省略していますが、過去の連載やマニュアルのほかに、富士通のUNIXサーバ SPARC Servers 技術情報サイトTechnical Parkもご参照ください。
また、ドメイン構成を簡単に構築できるツールも公開していますので、こちらもご活用ください。
Live Migrationを実行するためには、ドメインの構成にいくつかポイントがあります。
その他、CPUやメモリ構成についても注意する点がありますので、マニュアルも一度ご確認ください。
今回構築した仮想サービスの設定です。M10-1_1/M10-1_2ともに同じ設定です。
# ldm list-services
VCC
NAME LDOM PORT-RANGE
primary-vcc0 primary 5000-5100
VSW
NAME LDOM MAC NET-DEV ID DEVICE LINKPROP DEFAULT-VLAN-ID PVID VID MTU MODE INTER-VNET-LINK
primary-vsw0 primary 00:14:4f:f8:3e:4a net0 0 switch@0 1 1 1500 on
VDS
NAME LDOM VOLUME OPTIONS MPGROUP DEVICE
primary-vds0 primary ldom1-os ro /ISO/sol-11_1-text-install-sparc.iso
ldom1-vol0 /dev/dsk/c0t600144F0B099289A983E528E9C620001d0s2
準備ができましたので、実際にマイグレーションしてみたいと思います。
まずはドメインの状態を確認します。移動対象のドメイン(今回の場合「ldom1」)のSTATUSが「active」でFLAGSに「n」が表示されていることを確認します。
この状態の場合、ゲストドメインはOSが起動していることになります。
M10-1_1# ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv- UART 8 8G 6.3% 9d 15h 1m
ldom1 active -n---- 5000 8 8G 0.0% 2d 23h 46m
次にマイグレーションを実行する前に、ターゲットマシンの準備ができているか確認します。
ldm migrate-domainコマンドに-nオプションをつけて実行します。
そのほか引数として、移動するドメイン名、ターゲットマシンのIPアドレス(またはホスト名)、ターゲットマシンユーザアカウントを指定します。指定するユーザアカウントは、root権限かLDoms Management権限が必要です。
コマンドを実行すると、指定したユーザアカウントのパスワードが聞かれますので、パスワードを入力します。
M10-1_1# ldm migrate-domain -n ldom1 root@
Target Password:
M10-1_1#
問題がない場合、何も表示されずにプロンプトが返ってきます。
もし、ターゲットマシンの準備ができていない場合には、エラーメッセージが表示されます。
M10-1_1# ldm migrate-domain -n ldom1 root@
Target Password:
Failed to find required volume ldom1-os@primary-vds0 on target machine
Domain Migration of LDom ldom1 would fail if attempted
このメッセージは、仮想ディスクサービスの設定に誤りがあることを表しています。
では、ターゲットマシンの確認ができたら、実際にマイグレーションします。
今度はldm migrate-domainコマンドに-nオプションを付けずに実行します。
M10-1_1# ldm migrate-domain ldom1 root@
Target Password:
マイグレーションを実行したら、完了するまで少し時間がかかります。その間の様子をソースマシンとターゲットマシンに分けて見ていきたいと思います。
ターゲットマシン(M10-1_2)のコマンド結果には、オレンジ色の枠をつけています。
マイグレーション実行中にソースマシン/ターゲットマシンにおいて、それぞれのドメインの状態を確認してみます。
M10-1_1# ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv- UART 8 8G 16% 10d 17h 35m
ldom1 active -n---s 5000 8 8G 0.0% 4d 2h 20m
M10-1_2# ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv- UART 8 8G 5.9% 3d 21h 14m
ldom1 bound -----t 5000 8 8G
どちらのサーバでも移動中のドメインが表示されますが、FLAGSにはそれぞれ異なる値、「s」と「t」が表示されます。
「s」はsourceであり、ソースマシンであることを表します。「t」はtargetであり、ターゲットマシンであることを表します。
また、マイグレーション中の進捗状況を確認することができます。
M10-1_1# ldm ls -o status ldom1
NAME
ldom1
STATUS
OPERATION PROGRESS TARGET
migration 22%
M10-1_2# ldm ls -o status ldom1
NAME
ldom1
STATUS
OPERATION PROGRESS SOURCE
migration 22% M10-1_2
マイグレーションが完了すると、ソースマシンで実行したldm migrate-domainコマンドのプロンプトが返ってきます。メッセージが何も表示されなければ、マイグレーションが完了しています。
M10-1_1# ldm migrate-domain ldom1 root@
Target Password:
M10-1_1#
では、ソースマシン/ターゲットマシンでドメインの状態を確認しましょう。ソースマシンにあったldom1がターゲットマシンに移動したことが確認できます。
M10-1_1# ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv- UART 8 8G 6.3% 10d 17h 36m
M10-1_2# ldm ls
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
primary active -n-cv- UART 8 8G 0.6% 3d 21h 15m
ldom1 active -n---- 5000 8 8G 0.4% 4d 2h 21m
また、ゲストドメイン上でも、今どの物理サーバ上にいるのか確認することができます。
ゲストドメインにログイン後、virtinfoコマンドに-cオプションをつけて、制御ドメイン(Control domain)の情報を確認します。
<移動前>
ldom1# virtinfo -c
Control domain: M10-1_1
<移動後>
ldom1# virtinfo -c
Control domain: M10-1_2
Live Migrationはこれで完了ですが、これだけでは本当にゲストドメインが稼働した状態でマイグレーションしたことがお伝えしきれないのが残念です。そこで、次は本当にゲストドメインのOSが稼働した状態でマイグレーションしたのか確認してみたいと思います。
マイグレーション実行時に、以下の図のようにゲストドメインから同一サブネット上のクライアントに対して、FTPでファイルを転送します。
その際、各制御ドメインの物理NICの送信バイト数を1秒間隔で測定し、マイグレーションの様子を確認します。
切り替わりの前後を拡大したグラフがこちらです。
Live Migration実行中もFTPの転送は継続して行われていますが、ソースマシンからターゲットマシンに切り替わるタイミングで一瞬ですがFTPの転送(ゲストドメイン)が停止します。これらの動きはどの仮想化機能でも同様です。
グラフを見ますと、停止時間は1~2秒程度です。もちろん、この間FTPのセッションは切れることはありません。停止時間はほかの仮想化機能と比べてもほぼ同じ時間で、実際の業務への影響はほとんどないことがわかります。
このように、今では一般的となったLive Migration機能ですが、Oracle VM Server for SPARCでも有効性が確認できたと思います。
業務を物理サーバ上ではなく、ゲストドメイン上に構築することで、サーバ保守時に業務を止めることなく保守ができたり、業務負荷が高くなったときに簡単に複数の物理サーバにドメインを分散したりできます。
SPARC M10をお使いの際には、Live Migration機能もぜひご活用ください。
応援メッセージはtwitterにて、ハッシュタグ #fjsparc までお願いします。