説明

仮想計算機の端末切替え方式

【課題】 業務仮想計算機管理者が使用する業務端末を,ゲストOSを操作するシリアル端末として利用できるようになる。
【解決手段】ゲストOSのシリアルポート入出力が業務ネットワーク上を行き来できるように,業務仮想計算機に具備される仮想NICを再利用し,仮想計算機ファームウェア内部のシリアル情報通信経路を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は仮想計算機システムに関し,特に仮想計算機上で実行されるゲストOS障害によりビデオ端末表示ができない場合に,シリアル端末によるゲストOS操作手段の提供に関するものである。
【背景技術】
【0002】
OSの操作にはGUIによるグラフィカル画面の操作と,文字列によるテキスト画面の操作がある。ここで前者を表示する端末をビデオ端末,後者を表示する端末をシリアル端末と呼ぶ。サーバ向け商用OSでは通常業務にビデオ端末を,OS障害回復などの緊急業務にシリアル端末を使用することが一般的である。
【0003】
OS障害を想定していない仮想計算機システムでは,業務ネットワーク経由のビデオ端末によるゲストOS操作のみを提供している。しかし,業務仮想計算機で稼動するゲストOSの障害によりビデオ端末ができない場合,業務仮想計算機管理者がゲストOSを操作する手段がないという欠点があった。
【0004】
この改善策として管理ネットワークを経由した,管理端末に具備されたシリアル端末エミュレータによるゲストOS操作手段を提供していたが,業務仮想計算機管理者には管理ネットワークを使用する権限がないため,物理計算機管理者に依頼してゲストOSの操作を代行させなければならなかった。この方法は物理計算機管理者の管理範囲を超えるため,操作の間違いを起こす危険性や緊急の操作が困難といった問題があった。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Hitachi BladeSymphony BS2000 ユーザーズ ガイド
【発明の概要】
【発明が解決しようとする課題】
【0006】
解決しようとする課題は,仮想計算機上で稼動するゲストOSを操作する業務仮想計算機管理者が使用できる業務端末がビデオ端末しかないため,ゲストOSの障害によりビデオ端末による操作ができない場合に,業務仮想計算機管理者がゲストOSを操作する手段がないことである。
【課題を解決するための手段】
【0007】
本発明は,ゲストOSのシリアルポート入出力情報が業務ネットワーク上を行き来できるように,業務仮想計算機に具備される,仮想計算機システムがエミュレーションするネットワークインタフェースカードである仮想NICを再利用し,仮想計算機ファームウェア内部のシリアル情報通信経路を変更することを特徴とする。該通信経路にはシリアルポートの入出力情報をネットワークの入出力情報に変換する処理の追加と業務ネットワークへ接続するための既存経路への迂回により従来経路よりも理論的な線長が伸びるが,シリアルポートの通信速度はネットワークの通信速度に比べて十分に低いので,理論的な線長の伸びによる情報伝達の遅延は無視することができる。
【発明の効果】
【0008】
業務仮想計算機管理者が使用する業務端末を,ゲストOSを操作するシリアル端末として利用できるようになる。
【図面の簡単な説明】
【0009】
【図1】本発明を実施する計算機の構成図
【図2】業務仮想計算機の構成図
【図3】管理仮想計算機の構成図
【図4】本発明を実施する前のハイパバイザ300の構成図
【図5】端末に提供する本発明実施前後の機能比較図
【図6(a)】本発明を実施した後のハイパバイザ300の構成図
【図6(b)】本発明で追加するSOLエミュレータ342の構成図
【図7(a)】本発明の実施手順を示した説明図である。
【図7(b)】本発明の実施手順402を詳細化した説明図
【図8(a)】経路切替え前のNICエミュレータ312ほかの構成図
【図8(b)】経路切替え後のNICエミュレータ312ほかの構成図
【図9(a)】SW332の切替え処理前半の説明図
【図9(b)】SW332の切替え処理後半の説明図
【発明を実施するための形態】
【0010】
業務端末をシリアル端末として利用するという目的をハイパバイザの変更のみで実現した。ただし,業務端末には管理端末と同様に,シリアル端末エミュレータが具備されていることを前提とする。
【0011】
図1は本発明を適用する計算機10の構成図であって,CPU14はハイパバイザ300と協働しゲストOS110および管理OS210の実行を支援する。業務仮想計算機管理者22は仮想化された計算機の管理者であり,業務端末21を使用し,業務ネットワーク20に接続されたNIC15を介し業務仮想計算機上で稼動するゲストOS110を操作する。物理計算機管理者32は計算機10の物理資源およびハイパバイザ300,管理OS210の管理者であり,管理端末31を使用し,管理ネットワーク30に接続されたNIC16およびBMC17を介し計算機10で稼動するハイパバイザ300および管理OS210を操作する。
【0012】
図2は本発明を適用する業務仮想計算機100の構成図であって,ゲストOS110が具備するリモートデスクトップサービス112によりNICドライバ114,115のいずれかを介して,ハイパバイザ300によって仮想化された仮想NIC104,105にグラフィカルなゲストOS操作画面を送信し,また該NICに接続されたネットワークからのOS操作を受信する。シリアルコンソールサービス113はシリアルポートドライバ116を介して,ハイパバイザ300によって仮想化された仮想シリアルポート106にテキストベースのゲストOS操作画面を送信し,また該シリアルポートからOS操作を受信する。
【0013】
図3は本発明を適用する管理仮想計算機200の構成図であって, 仮想NIC204に接続されたネットワークからゲストOS110が送信したグラフィカルなゲストOS操作画面情報を受け取り,管理OS210が具備するブリッジサービス213を介して該OS操作画面情報をNIC15に転送する。
【0014】
仮想シリアルポート206に接続された機器からゲストOS110が送信したテキストベースのゲストOS操作画面情報を受け取り,管理OS210が具備するSOLサービス212を介して該OS操作画面情報をネットワークインタフェースに変換しNIC16に転送する。
【0015】
図4は本発明を適用する前のハイパバイザ300の構成図であって,MMIO制御部310は業務仮想計算機100が具備する仮想MMIO102の実体であり,NICエミュレータ311,312は該業務仮想計算機が具備する仮想NIC104,105の実体である。MMIO制御部320は管理仮想計算機200が具備する仮想MMIO202の実体であり,NICエミュレータ321は該管理仮想計算機が具備する仮想NIC204の実体である。NICエミュレータ311,312は,仮想NICブリッジ301を介してNICエミュレータ321と接続し,業務仮想計算機と管理仮想計算機間のネットワーク通信を行う。I/Oポート制御部313は業務仮想計算機100が具備する仮想I/Oポート103の実体であり,シリアルポートエミュレータ314は該業務仮想計算機が具備する仮想シリアルポート106の実体である。I/Oポート制御部323は管理仮想計算機200が具備する仮想I/Oポート203の実体であり,シリアルポートエミュレータ324は該管理仮想計算機が具備する仮想シリアルポート206の実体である。シリアルポートエミュレータ314とシリアルポートエミュレータ324を接続し,業務仮想計算機と管理仮想計算機間のシリアル通信を行う。
【0016】
図5は各端末に提供する本発明実施前後の機能比較図であって,本発明実施前の図5(a)では業務端末21にてゲストOSシリアル画面によるゲストOS110の操作ができないことを示し,本発明実施後の図5(b)では業務端末21もしくは管理端末31のいずれかにおいてゲストOSシリアル画面によるゲストOS110の操作ができることを示す。
【0017】
図6(a)は本発明を適用したハイパバイザ300の構成図であって,SW330,331は,MMIO制御部310を無効NICエミュレータ340と接続する経路を追加する。SW332はNICエミュレータ311,312のいずれかをNICドライバ341に接続する経路を追加し,SW333はシリアルポートエミュレータ324をシリアルポートドライバ343に接続する経路を追加する。SOLエミュレータ342はNICドライバ341からのネットワークインタフェース出力情報およびシリアルポートドライバ343からのシリアルインタフェース出力情報を他方のインタフェース入力情報に変換する。
【0018】
図4においてI/Oポート制御部313およびシリアルポートエミュレータ314,シリアルポートエミュレータ324,I/Oポート制御部323を行き来していたシリアルインタフェースの入出力情報は,図3の仮想シリアルポート206,仮想I/Oポート203,シリアルポートドライバ217,SOLサービス212,NICドライバ214,MMIO13,NIC16を経由して,図1の管理ネットワーク30に転送され管理端末31にゲストOSシリアル画面として表示していた。ここでリモートデスクトップサービス112に障害が発生した場合,業務仮想計算機管理者22がゲストOS110を操作する手段がないという問題があった。
【0019】
該シリアルインタフェースの入出力情報の経路を,例えば図6(a)のI/Oポート制御部313およびシリアルポートエミュレータ314,シリアルポートエミュレータ324,SW333,シリアルポートドライバ343,SOLエミュレータ342,NICドライバ341,SW332,NICエミュレータ312,仮想NICブリッジ301,NICエミュレータ321,MMIO制御部320に切り替え,図3の仮想NIC204,仮想MMIO202,NICドライバ216,ブリッジサービス213,NICドライバ215,MMIO13,NIC15を経由して,図1の業務ネットワーク20に該情報を転送することにより業務端末21にゲストOSシリアル画面を表示することができるようになる。
【0020】
業務仮想計算機100で稼動するNICドライバ115が仮想NIC105にアクセスした場合は,無効NICエミュレータ340により該仮想NICがリンク切れ状態に見え,OS障害を起こすことなく該仮想NICの実体であったNICエミュレータ312を切替えた経路形成に再利用することができる。
【0021】
無効NICエミュレータ340は,MMIO制御部310からのリンク状態レジスタ値の問い合わせに対してリンク切れ状態を応答する。MMIO制御部310が取得した該リンク切れ状態は,NICドライバ115による仮想MMIO102へのアクセスによってゲストOS110に認識される。
【0022】
NICドライバ341は,一般的にOSに組み込まれるデバイス ドライバと同等の機能を具備するソフトウェア部位であり,NICエミュレータ311,312を制御するための専用処理を実装する。該処理は該NICエミュレータの仕様に依存するため,本書では詳細は割愛した。
【0023】
同様にシリアルポートドライバ343はシリアルポートエミュレータ324を制御するための専用処理を実装する。該エミュレータはPC/AT(R)互換機に採用されたUARTチップである16550(R)が実装する機能を具備することを想定しており,該ドライバは該チップの仕様に従い実装する。
【0024】
図6(b)はSOLエミュレータ342を構成するプロトコルスタックであり,RFC(Request For Comment)2217が提案するシリアルポートの入出力情報をTELNET プロトコルに変換するTelnet COMポート制御プロトコル処理部350と,TELNETプロトコルの下位層であるTCP/IPプロトコル処理部351で構成する。該プロトコル群は一般に公開されている仕様にもとづいて実装し,それぞれシリアルポートドライバ343およびNICドライバ341を使用して変換結果の入出力処理を行う。
【0025】
図7に上記の経路切り替え実施例の手順を示す。図7(b)は図7(a)の手順402を詳細化したハイパバイザ300の処理フローである。
【0026】
図8(a)は上記実施例のSW332切替え前のNICエミュレータ312およびNICドライバ341の構成図であり,図8(b)は該SW切替え後の該NICエミュレータおよび該NICドライバの構造図である。図6(a)に示したSW330,331,332,333はハイパバイザ300の内部モジュール間の接続接路を模式的に表したイメージであり,例えば関数ポインタすなわち関数コールのエントリアドレスを格納するテーブルへのポインタを再設定することで,その機能を実現する。
【0027】
図9にSW332切り替えを実現する処理フローの例を示す。これは図7(b)の処理411を詳細に示したものである。この例では関数ポインタの再設定はNICエミュレータ312およびNICドライバ341の初期化処理の一環として実行することを想定している。これらの初期化処理は,ソフトウェアを実行するための一般的な初期化を意図しており,それらは実装依存であるため本書では説明を割愛した。
【符号の説明】
【0028】
10 計算機、13 MMIO、14 CPU、15,16 NIC、17 BMC、 20 業務ネットワーク、21 業務端末、22 業務仮想計算機管理者、30 管理ネットワーク、31 管理端末、32 物理計算機管理者、100 業務仮想計算機、102 仮想MMIO、103 仮想I/Oポート、104,105 仮想NIC、106 仮想シリアルポート、110 ゲストOS、112 リモートデスクトップサービス、113 シリアルコンソールサービス、114,115 NICドライバ、116 シリアルポートドライバ、200 管理仮想計算機、202 仮想MMIO、203 仮想I/Oポート、204 仮想NIC、206 仮想シリアルポート、210 管理OS、212 SOLサービス、213 ブリッジサービス、214,215,216 NICドライバ、217 シリアルポートドライバ、300 ハイパバイザ、301 仮想NICブリッジ、310,320 MMIO制御部、311,312,321 NICエミュレータ、313,323 I/Oポート制御部、314,324 シリアルポートエミュレータ、330,331,332,333 SW、340 無効NICエミュレータ、341 NICドライバ、342 SOLエミュレータ、343 シリアルポートドライバ、350 Telnet COMポート制御プロトコル、351 TCP/IPプロトコル、402 経路切替え手順の一部、411 ハイパバイザ処理の一部

【特許請求の範囲】
【請求項1】
物理計算機を論理的に分割して複数の仮想計算機として使用する仮想計算機システムにおいて,該仮想計算機に割り当てられた,仮想計算機システムがエミュレーションするネットワークインタフェースカードである仮想NICを再利用することを特徴とする端末切り替え方式。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6(a)】
image rotate

【図6(b)】
image rotate

【図7(a)】
image rotate

【図7(b)】
image rotate

【図8(a)】
image rotate

【図8(b)】
image rotate

【図9(a)】
image rotate

【図9(b)】
image rotate


【公開番号】特開2011−221831(P2011−221831A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−91053(P2010−91053)
【出願日】平成22年4月12日(2010.4.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】