(57)【要約】      （修正有）【課題】仮想化前後のデータの整合を保ちつつ、仮想化処理実行中のシステムのダウンタイムを短縮すること。【解決手段】仮想化装置１００の仮想化制御部１３０は、第１のプロセッサ１１０がストレージ１５０と接続され、かつ、ストレージにアクセスしてＯＳ１５１（Operating System）を実行中である場合に、第１のプロセッサへの電源供給を停止し、電源供給の停止後に、接続制御部１４０に対して、ストレージと第２のプロセッサ１２０との接続をさせる第１の接続制御を指示し、第１の接続制御後に、第２のプロセッサに対して、ＯＳに対する仮想化処理の開始を指示し、仮想化処理の終了後、接続制御部に対して、ストレージと第２のプロセッサとの接続を切断させる第２の接続制御を指示し、第２の接続制御後に、第１のプロセッサへの電源供給を再開する。【選択図】図１
2020135719.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
前記ストレージと前記第１のプロセッサ及び前記第２のプロセッサとの接続を制御する接続制御部と、
仮想化制御部と、
を備え、
前記仮想化制御部は、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続をさせる第１の接続制御を指示し、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続を切断させる第２の接続制御を指示し、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する
仮想化装置。
【請求項２】
前記接続制御部は、前記ストレージの接続先を、前記第１のプロセッサ又は前記第２のプロセッサのいずれかに切り換えを行うものであり、
前記仮想化制御部は、
前記電源供給の停止後に、前記接続制御部に対して、前記ストレージの接続先を前記第１のプロセッサから前記第２のプロセッサへ切り換えさせる前記第１の接続制御を指示し、
前記仮想化処理の終了後、前記接続制御部に対して、前記ストレージの接続先を前記第２のプロセッサから前記第１のプロセッサへ切り換えさせる前記第２の接続制御を指示する
請求項１に記載の仮想化装置。
【請求項３】
前記第２のプロセッサは、前記第１のプロセッサとは異なる電源で動作するシステム管理プロセッサである
請求項１又は２に記載の仮想化装置。
【請求項４】
前記仮想化制御部は、
前記電源供給の停止に際し、前記第１のプロセッサに対して、前記ＯＳのメモリキャッシュを前記ストレージに出力させた後、スリープを指示し、
前記電源供給の再開に際し、前記第１のプロセッサに対して、前記スリープの解除を指示する
請求項１乃至３のいずれか１項に記載の仮想化装置。
【請求項５】
前記仮想化制御部は、
前記電源供給の停止に際し、前記第１のプロセッサに対して、ハイバネーションを指示し、
前記電源供給の再開に際し、前記第１のプロセッサに対して、前記ハイバネーションからの復帰を指示する
請求項１乃至３のいずれか１項に記載の仮想化装置。
【請求項６】
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータが、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行い、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行い、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する
仮想化方法。
【請求項７】
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータに、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止する処理と、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行う処理と、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示する処理と、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行う処理と、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する処理と、
を実行させる仮想化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化装置、仮想化方法及び仮想化プログラムに関し、特に、実行中のＯＳ（Operating System）を仮想化するための仮想化装置、仮想化方法及び仮想化プログラムに関する。
【背景技術】
【０００２】
近年、クラウドサービスが普及してきており、オンプレミス環境をクラウドシステム上に移行する需要が増えてきている。クラウドシステムでは特定の仮想イメージファイルでの移行手段を提供しているため、物理サーバに直接インストールされた環境の仮想化が求められている。
【０００３】
物理サーバに直接ＯＳがインストールされたシステムを仮想化するための手段は幾つかある。ここで、仮想化対象のサーバの稼働中に仮想化したイメージファイルを取得した場合、仮想化中にデータの書き込みが発生するとタイミングによってはデータの不整合が発生する恐れがある。そこで、データの不整合なく安全に仮想化するために、コールドクローンと呼ばれる技術を用いることが一般的である。
【０００４】
コールドクローンでは、仮想化対象のサーバを一度シャットダウンした後、仮想化ツールが入ったＬｉｖｅＣＤを物理サーバに接続して起動する。そして、ＬｉｖｅＣＤのＯＳが仮想化対象のサーバのストレージデバイス（ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive））にアクセスし、別のストレージ上にシステムを仮想化したイメージファイルを出力する、といった手段が用いられる。例えば、特許文献１には、ＬｉｖｅＣＤを用いて計算機環境を移行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−４１３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、コールドクローンにより仮想化を行う場合、仮想化対象のサーバのシャットダウンと起動が必要となりダウンタイムが長いといった課題がある。
【０００７】
本開示は、このような問題点を解決するためになされたものであり、仮想化前後のデータの整合を保ちつつ、仮想化処理実行中のシステムのダウンタイムを短縮するための仮想化装置、仮想化方法及び仮想化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の第１の態様にかかる仮想化装置は、
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
前記ストレージと前記第１のプロセッサ及び前記第２のプロセッサとの接続を制御する接続制御部と、
仮想化制御部と、
を備え、
前記仮想化制御部は、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続をさせる第１の接続制御を指示し、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続を切断させる第２の接続制御を指示し、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する。
【０００９】
本開示の第２の態様にかかる仮想化方法は、
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータが、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行い、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行い、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する。
【００１０】
本開示の第３の態様にかかる仮想化プログラムは、
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータに、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止する処理と、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行う処理と、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示する処理と、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行う処理と、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する処理と、
を実行させる。
【発明の効果】
【００１１】
本開示により、仮想化前後のデータの整合を保ちつつ、仮想化処理実行中のシステムのダウンタイムを短縮するための仮想化装置、仮想化方法及び仮想化プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態１にかかる仮想化装置の構成を示すブロック図である。
【図２】本実施形態１にかかる仮想化方法の流れを示すシーケンス図である。
【図３】本実施形態２にかかるサーバの構成を示すブロック図である。
【図４】本実施形態２にかかる仮想化方法の流れを示すシーケンス図である。
【図５】本実施形態２にかかるストレージデバイスとサーバプロセッサとが接続中の概念を示す図である。
【図６】本実施形態２にかかるストレージデバイスとサブプロセッサとが接続中の概念を示す図である。
【発明を実施するための形態】
【００１３】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１４】
＜実施形態１＞
図１は、本実施形態１にかかる仮想化装置１００の構成を示すブロック図である。仮想化装置１００は、コンピュータであり、例えば、サーバ装置である。仮想化装置１００は、第１のプロセッサ１１０と、第２のプロセッサ１２０と、仮想化制御部１３０と、接続制御部１４０と、ストレージ１５０とを備える。
【００１５】
ストレージ１５０は、主記憶装置（メモリ、不図示）よりも長期間固定的にデータやプログラムを保存する不揮発性記憶装置である。ストレージ１５０は、少なくともＯＳ（Operating System）１５１を格納する。尚、仮想化装置１００にはＯＳ１５１がインストールされているものとする。
【００１６】
第１のプロセッサ１１０は、ＣＰＵ（（Central Processing Unit））、プロセッサコアといった制御回路である。第１のプロセッサ１１０は、接続制御部１４０を介してストレージ１５０と接続されている場合に、ストレージ１５０へアクセスしてＯＳ１５１をメモリに読み出して実行する。また、第１のプロセッサ１１０は、ＯＳ１５１の実行状態もメモリに格納するものとする。
【００１７】
第２のプロセッサ１２０は、第１のプロセッサ１１０とは別の制御回路である。第２のプロセッサ１２０は、外部又は仮想化制御部１３０からの指示に応じて接続制御部１４０を介してストレージ１５０と接続されている場合に、ストレージ１５０へアクセスしてＯＳ１５１に対して仮想化処理を実行することができる。ここで、仮想化処理は、公知の技術を適用可能である。例えば、第２のプロセッサ１２０は、ＬｉｖｅＣＤを読み込み実行することにより仮想化処理を実現してもよい。
【００１８】
接続制御部１４０は、ストレージ１５０と第１のプロセッサ１１０及び第２のプロセッサ１２０との接続を制御する制御回路である。つまり、接続制御部１４０は、ストレージ１５０と第１のプロセッサ１１０との間のバス等の通信経路を接続するか否かを制御する。同様に、接続制御部１４０は、ストレージ１５０と第２のプロセッサ１２０との間のバス等の通信経路を接続するか否かを制御する。尚、接続制御部１４０は、通常、ストレージ１５０と第１のプロセッサ１１０との間の通信経路を少なくとも接続しているものとする。また、接続制御部１４０は、仮想化制御部１３０からの指示に応じて上記接続の制御を行う。
【００１９】
仮想化制御部１３０は、第１のプロセッサ１１０、第２のプロセッサ１２０及び接続制御部１４０と接続され、これらを制御する。例えば、仮想化制御部１３０は、第１のプロセッサ１１０への電源供給を停止及び再開を行う。また、仮想化制御部１３０は、接続制御部１４０に対して、ストレージ１５０と第２のプロセッサ１２０との接続をさせる第１の接続制御を指示する。また、仮想化制御部１３０は、第２のプロセッサ１２０によるＯＳ１５１に対する仮想化処理を制御する。また、仮想化制御部１３０は、接続制御部１４０に対して、ストレージ１５０と第２のプロセッサ１２０との接続を切断させる第２の接続制御を指示する。
【００２０】
ここで、ストレージ１５０又は他の内蔵記憶装置（不図示）には、本実施形態にかかる仮想化方法の処理が実装されたコンピュータプログラム（仮想化プログラム）が記憶されている。そして、第２のプロセッサ１２０は、ストレージ１５０等からコンピュータプログラムをメモリへ読み込み、当該コンピュータプログラムを実行する。これにより、第２のプロセッサ１２０は、仮想化制御部１３０の機能を実現するようにしてもよい。
【００２１】
尚、接続制御部１４０及び仮想化制御部１３０のそれぞれは、専用のハードウェアで実現されていてもよい。また、各構成は、汎用または専用の回路（circuitry）、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。また、プロセッサとして、ＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（field-programmable gate array）等を用いることができる。
【００２２】
図２は、本実施形態１にかかる仮想化方法の流れを示すシーケンス図である。まず、前提として、第１のプロセッサ１１０は、ストレージ１５０と接続済み、かつ、ＯＳ１５１を実行中であるものとする（Ｓ１０１）。このとき、仮想化制御部１３０は、第１のプロセッサ１１０への電源供給を停止する（Ｓ１０２）。これにより、第１のプロセッサ１１０によるＯＳ１５１の実行も停止され、第１のプロセッサ１１０からストレージ１５０へのアクセスも発生しないこととなる。
【００２３】
仮想化制御部１３０は、第１のプロセッサ１１０への電源供給の停止後に、接続制御部１４０に対して、ストレージ１５０と第２のプロセッサ１２０との接続をさせる第１の接続制御を指示する（Ｓ１０３）。接続制御部１４０は、第１の接続制御の指示に応じて、ストレージ１５０と第２のプロセッサ１２０との接続を行う（Ｓ１０４）。言い換えると、ステップＳ１０３及びＳ１０４により、仮想化装置１００は、第１のプロセッサ１１０への電源供給の停止後に、ストレージ１５０と第２のプロセッサ１２０との接続を行う第１の接続制御を行う。これにより、第２のプロセッサ１２０は、ストレージ１５０と接続済み（Ｓ１０５）となり、ストレージ１５０へアクセスが可能となる。
【００２４】
仮想化制御部１３０は、第１の接続制御後に、第２のプロセッサ１２０に対して、ＯＳ１５１に対する仮想化処理の開始を指示する（Ｓ１０６）。第２のプロセッサ１２０は、仮想化処理の開始指示に応じて、ＯＳの仮想化処理を行う（Ｓ１０７）。すなわち、第２のプロセッサ１２０は、ストレージ１５０へアクセスしてＯＳ１５１を読み出し、ＯＳ１５１に対する仮想化イメージファイルを生成する。尚、第２のプロセッサ１２０は、生成した仮想化イメージファイルをストレージ１５０、他の内蔵記憶装置又は外部の記憶装置へ格納する。
【００２５】
仮想化制御部１３０は、仮想化処理の終了後、接続制御部１４０に対して、ストレージ１５０と第２のプロセッサ１２０との接続を切断させる第２の接続制御を指示する（Ｓ１０９）。接続制御部１４０は、第２の接続制御の指示に応じて、ストレージ１５０と第２のプロセッサ１２０との接続を切断する（Ｓ１１０）。言い換えると、ステップＳ１０９及びＳ１１０により、仮想化装置１００は、仮想化処理の終了後、ストレージ１５０と第２のプロセッサ１２０との接続を切断する第２の接続制御を行う。これにより、第２のプロセッサ１２０は、ストレージ１５０との接続が切断され（Ｓ１１１）となり、ストレージ１５０へアクセスができなくなる。
【００２６】
仮想化制御部１３０は、第２の接続制御後に、第１のプロセッサ１１０への電源供給を再開する（Ｓ１１２）。これにより、第１のプロセッサ１１０によるＯＳ１５１の実行も再開され、第１のプロセッサ１１０からストレージ１５０へのアクセスも発生し得ることとなる。
【００２７】
このように、本実施形態１により、ＯＳ１５１の実行が停止中に仮想化処理が行われ、ＯＳ１５１に対応する仮想化イメージファイルが作成される。そのため、ＯＳ１５１と仮想化イメージファイルの間でデータの整合性が保たれる。その理由は、第１のプロセッサ１１０への電源供給が停止されるためストレージ１５０へのアクセスが発生せず、ＯＳ１５１の実行状態も変更されないためである。
【００２８】
また、本実施形態１は、仮想化処理の開始前に第１のプロセッサ１１０への電源供給を停止し、仮想化処理の終了後に第１のプロセッサ１１０への電源供給を再開するものである。そのため、コールドクーロン技術のように、仮想化処理の前後に、仮想化装置１００をシャットダウン及び再起動を行うことに要する時間と比べて、本実施形態１の方が、ＯＳ１５１の実行が停止する時間を短くすることができる。よって、仮想化前後のデータの整合を保ちつつ、仮想化処理実行中のシステムのダウンタイムを短縮することができる。
【００２９】
＜実施形態２＞
本実施形態２は、上述した実施形態１の具体的な一実施例である。図３は、本実施形態２にかかるサーバ２００の構成を示すブロック図である。サーバ２００は、上述した仮想化装置１００の一例である。サーバ２００は、サーバプロセッサ２１０と、ＩＣＨ（Intelligent Platform Management Interface）２２０と、メモリ２３０と、ＩＣＨ２４０と、サブプロセッサ２５０と、仮想化制御部２６０と、ストレージデバイス２７０と、ストレージデバイス２８０とを備える。
【００３０】
サーバプロセッサ２１０は、上述した第１のプロセッサ１１０の一例であり、内部に２以上のプロセッサコアを備えていても良い。サーバプロセッサ２１０は、ＩＣＨ２２０及び仮想化制御部２６０と接続されている。サーバプロセッサ２１０は、メモリ２３０のキャッシュデータ（メモリキャッシュ）の全てをストレージデバイス２７０又は２８０に書き出す処理であるｓｙｎｃを実行可能である。また、サーバプロセッサ２１０は、仮想化制御部２６０からのスリープ指示に応じて、スリープ状態に遷移する。スリープ状態とは、メモリ２３０への給電は維持されるが、サーバプロセッサ２１０への給電が停止された状態であり、例えば、ＡＣＰＩ（Advanced Configuration and Power Interface）のＳ３の状態である。また、サーバプロセッサ２１０は、仮想化制御部２６０からのスリープ解除指示に応じて、スリープ状態から通常の運用状態に復帰する。つまり、サーバプロセッサ２１０への電源供給が再開される。尚、サーバ２００は、サーバプロセッサ２１０以外のサーバプロセッサを備えていても良い。
【００３１】
ＩＣＨ２２０は、いわゆるＮｏｒｔｈ  Ｂｒｉｄｇｅであり、サーバプロセッサ２１０、メモリ２３０及びＩＣＨ２４０と接続されている。ＩＣＨ２２０は、メモリ２３０を制御するメモリコントローラ２２１を備える。
【００３２】
メモリ２３０は、ＲＡＭ（Random Access Memory））等の一次記憶装置、主記憶装置である。メモリ２３０は、サーバプロセッサ２１０がＯＳ２７１を実行する際に、ＯＳ２７１やＯＳの実行状態等を一時的に保持する。
【００３３】
ＩＣＨ２４０は、いわゆるＳｏｕｔｈ  Ｂｒｉｄｇｅであり、少なくとも仮想化制御部２６０、ストレージデバイス２７０及び２８０と接続されている。また、ＩＣＨ２４０は、ＩＣＨ２２０と第１の通信経路２９１により接続可能であり、サブプロセッサ２５０と第２の通信経路２９２により接続可能である。ＩＣＨ２４０は、ＳＡＴＡ（Serial AT Attachment）コントローラ２４１を備え、ＳＡＴＡコントローラ２４１は、経路切換制御部２４２を備える。
【００３４】
経路切換制御部２４２は、上述した接続制御部１４０の一例であり、仮想化制御部２６０からの経路切換指示に応じてストレージデバイス２７０及び２８０と接続する通信経路を、第１の通信経路２９１又は第２の通信経路２９２のいずれかに切り換える。つまり、経路切換制御部２４２は、仮想化制御部２６０からの経路切換指示に応じてストレージデバイス２７０及び２８０との接続先を、サーバプロセッサ２１０又はサブプロセッサ２５０のいずれかに切り換えを行う。ここで、通常、接続される通信バスは、第１の通信経路２９１であるものとする。
【００３５】
サブプロセッサ２５０は、上述した第２のプロセッサ１２０の一例であり、サーバプロセッサ２１０とは異なる電源で動作するシステム管理プロセッサである。サブプロセッサ２５０は、少なくともサーバ２００に内蔵されたものであり、サーバ２００の状態監視及び電源制御等を行うための管理チップである。サブプロセッサ２５０は、例えば、サーバプロセッサ２１０に供給される電源とは独立したスタンバイ電源で動作するＢＭＣ（Baseboard management Controller）である。
【００３６】
サブプロセッサ２５０は、外部から受け付けた仮想化実行指示を仮想化制御部２６０へ出力する。また、サブプロセッサ２５０は、仮想化制御部２６０からの指示に応じて、第２の通信経路２９２がストレージデバイス２７０及び２８０と接続されている場合に、ストレージデバイス２７０及び２８０にアクセスして、ＯＳ２７１の仮想化処理を行う。そして、サブプロセッサ２５０は、仮想化したイメージファイルをストレージデバイス２７０、２８０又は外部へ出力する。このとき、サブプロセッサ２５０は、ストレージデバイス２７０のうち空いているストレージ領域に仮想化したイメージファイルを格納してもよい。または、サブプロセッサ２５０は、空き領域のあるストレージデバイス２８０又は外部の記憶装置に仮想化したイメージファイルを格納してもよい。その場合、サブプロセッサ２５０は、第２の通信経路２９２を介したストレージデバイス２７０へのアクセスでは、少なくもデータの読み出しができればよい。
【００３７】
ストレージデバイス２７０及び２８０は、上述したストレージ１５０の一例であり、例えば、ストレージデバイス２７０は、ＯＳ２７１を格納する。尚、サーバプロセッサ２１０への電源供給が停止した場合であっても、ＳＡＴＡコントローラ２４１、サブプロセッサ２５０、仮想化制御部２６０、ストレージデバイス２７０及び２８０への電源供給は停止されないものとする。例えば、サーバプロセッサ２１０がスリープ状態であっても、ＳＡＴＡコントローラ２４１、サブプロセッサ２５０、仮想化制御部２６０、ストレージデバイス２７０及び２８０は動作する。
【００３８】
仮想化制御部２６０は、上述した仮想化制御部１３０の一例であり、ユーザからサブプロセッサ２５０を介して受け付けた仮想化実行指示に応じて、本実施形態２にかかる仮想化処理を開始する。仮想化制御部２６０は、サーバプロセッサ２１０に対して、ｓｙｎｃを指示する。また、仮想化制御部２６０は、サーバプロセッサ２１０に対して、スリープ指示及びスリープ解除指示を行う。また、仮想化制御部２６０は、経路切換制御部２４２に対して、ストレージデバイス２７０及び２８０との接続を、第１の通信経路２９１と第２の通信経路２９２の間で切り換えるための経路切換指示を行う。
【００３９】
図４は、本実施形態２にかかる仮想化方法の流れを示すシーケンス図である。前提として、経路切換制御部２４２は、第１の通信経路２９１によりストレージデバイス２７０及び２８０とサーバプロセッサ２１０及びＩＣＨ２２０と接続済みとする。つまり、経路切換制御部２４２は、第２の通信経路２９２によりストレージデバイス２７０及び２８０とサブプロセッサ２５０とを接続していないものとする。
【００４０】
まず、サブプロセッサ２５０は、ユーザから受け付けた仮想化実行指示を仮想化制御部２６０へ出力する（Ｓ２０１）。そして、仮想化制御部２６０は、サーバプロセッサ２１０に対して、ｓｙｎｃを指示する（Ｓ２０２）。サーバプロセッサ２１０は、ｓｙｎｃを実行し、メモリ２３０のキャッシュをストレージデバイス２７０又は２８０に書き出す（Ｓ２０３）。
【００４１】
ここで、図５は、本実施形態２にかかるストレージデバイスとサーバプロセッサとが接続中の概念を示す図である。ここでは、第１の通信経路２９１が接続され、第２の通信経路２９２が切断されており、メモリ２３０には、ＯＳ実行状態２３１が格納されていることを示す。そして、ステップＳ２０２に応じて、サーバプロセッサ２１０は、メモリ２３０からＯＳ実行状態２３１を読み出し、第１の通信経路２９１を介してストレージデバイス２７０にＯＳ実行状態２７２として格納する。
【００４２】
その後、仮想化制御部２６０は、サーバプロセッサ２１０に対して、スリープを指示する（Ｓ２０４）。すなわち、仮想化制御部２６０は、サーバプロセッサ２１０への電源供給の停止に際し、サーバプロセッサ２１０に対して、ＯＳ２７１のメモリキャッシュをストレージデバイス２７０又は２８０に出力させた後、スリープを指示する。これにより、サーバプロセッサ２１０は、スリープ状態に遷移し、ＯＳ２７１の実行も停止する。よって、サーバプロセッサ２１０から第１の通信経路２９１を介したストレージデバイス２７０及び２８０へのアクセスが発生しない。
【００４３】
続いて、仮想化制御部２６０は、経路切換制御部２４２に対して経路切換指示を行う（Ｓ２０５）。すなわち、仮想化制御部２６０は、サーバプロセッサ２１０への電源供給の停止後に、経路切換制御部２４２に対して、ストレージデバイス２７０及び２８０の接続先をサーバプロセッサ２１０からサブプロセッサ２５０へ切り換えさせる第１の接続制御を指示する。そして、経路切換制御部２４２は、サーバプロセッサ２１０からサブプロセッサ２５０へＳＡＴＡ接続を切り換える（Ｓ２０６）。つまり、経路切換制御部２４２は、ストレージデバイス２７０及び２８０との通信経路を第１の通信経路２９１から第２の通信経路２９２へ切り換える。これにより、ストレージデバイス２７０及び２８０とサブプロセッサ２５０とは第２の通信経路２９２により接続される。
【００４４】
その後、仮想化制御部２６０は、サブプロセッサ２５０に対して、仮想化実行許可を行う（Ｓ２０７）。これに応じて、サブプロセッサ２５０は、ストレージデバイス２７０にアクセスし、ＯＳ２７１の仮想化イメージファイルを生成する。そして、サブプロセッサ２５０は、生成した仮想化イメージファイルをストレージデバイス２８０に出力する（Ｓ２０８）。
【００４５】
ここで、図６は、本実施形態２にかかるストレージデバイスとサブプロセッサとが接続中の概念を示す図である。ここでは、第１の通信経路２９１が切断され、第２の通信経路２９２が接続されていることを示す。そして、ステップＳ２０７に応じて、サブプロセッサ２５０は、第２の通信経路２９２を介してストレージデバイス２７０からＯＳ２７１及びＯＳ実行状態２７２を読み出し、ＯＳ２７１及びＯＳ実行状態２７２を用いて仮想化イメージファイルを生成する。そして、サブプロセッサ２５０は、生成した仮想化イメージファイルをストレージデバイス２８０に仮想化イメージファイル２８１として格納する。その後、サブプロセッサ２５０は、仮想化制御部２６０に対して、復旧指示を行う（Ｓ２０９）。
【００４６】
そして、仮想化制御部２６０は、経路切換制御部２４２に対して経路切換指示を行う（Ｓ２１０）。すなわち、仮想化制御部２６０は、仮想化処理の終了後、経路切換制御部２４２に対して、ストレージデバイス２７０及び２８０の接続先をサブプロセッサ２５０からサーバプロセッサ２１０へ切り換えさせる第２の接続制御を指示する。そして、経路切換制御部２４２は、サブプロセッサ２５０からサーバプロセッサ２１０へＳＡＴＡ接続を戻す（切り換える）（Ｓ２１１）。つまり、経路切換制御部２４２は、ストレージデバイス２７０及び２８０との通信経路を第２の通信経路２９２から第１の通信経路２９１へ切り換える。これにより、ストレージデバイス２７０及び２８０とサブプロセッサ２５０とは第２の通信経路２９２による接続が切断され、ストレージデバイス２７０及び２８０とサーバプロセッサ２１０とは第１の通信経路２９１により再び、接続される。
【００４７】
その後、仮想化制御部２６０は、サーバプロセッサ２１０に対して、スリープの解除を指示する（Ｓ２１２）。すなわち、仮想化制御部２６０サーバプロセッサ２１０の電源供給の再開に際し、サーバプロセッサ２１０に対して、スリープの解除を指示する。
【００４８】
このように、本実施形態では、物理サーバのプロセッサを一時的にスリープ状態にしている間に、当該物理サーバに直接ＯＳがインストールされたシステムを仮想化することで、データの不整合なく、短いダウンタイムで仮想化できる。つまり、サーバ２００は、シャットダウンと再起動を伴わずに、サーバプロセッサ２１０を一時的にスリープするだけで、システム（ＯＳ２７１）の仮想化イメージを取得することができる。物理サーバの長いシャットダウン処理時間と起動処理時間が、スリープ状態への移行と復旧に置き換わるため、短いダウンタイムでかつデータの不整合なく安全に行うことができる。
【００４９】
さらに、コールドクローン技術では、仮想化対象の物理サーバの一台ごとにＬｉｖｅＣＤを接続し、起動及び仮想化を実行するため、多数台のときは多くの工数が掛かっていた。しかし、本開示では実行指示を出すだけでよいため多数台であっても容易に仮想化することができる。
【００５０】
＜その他の実施形態＞
尚、本開示は、サーバプロセッサへの電源供給の停止を、スリープ状態（ACPIのＳ３状態）ではなく休止状態（ＡＣＰＩのＳ４状態）でも実施が可能である。ここで、休止状態は、ハイバネーションとも呼ばれ、メモリの状態をストレージデバイスに書き込み、メモリも電力供給を停止するものである。そのためサブプロセッサは仮想化を実施する際にはストレージデバイスに書き込まれたメモリの状態を無視して仮想化イメージを作成する。
【００５１】
すなわち、前記仮想化制御部は、第１のプロセッサへの前記電源供給の停止に際し、前記第１のプロセッサに対して、ハイバネーションを指示し、前記電源供給の再開に際し、前記第１のプロセッサに対して、前記ハイバネーションからの復帰を指示してもよい。
【００５２】
また、本開示はスリープ処理実施後に第１の通信経路２９１を第２の通信経路２９２の切り換えを行う代わりに、第２の通信経路２９２の有効無効を切り換えてもよい。
【００５３】
また、本開示は、電源制御と連動した物理マシンの仮想化方法ということもできる。
【００５４】
尚、上述の実施形態では、ハードウェアの構成として説明したが、これに限定されるものではない。本開示は、任意の処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００５５】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５６】
なお、本開示は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、本開示は、それぞれの実施形態を適宜組み合わせて実施されてもよい。
【００５７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記Ａ１）
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
前記ストレージと前記第１のプロセッサ及び前記第２のプロセッサとの接続を制御する接続制御部と、
仮想化制御部と、
を備え、
前記仮想化制御部は、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続をさせる第１の接続制御を指示し、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記接続制御部に対して、前記ストレージと前記第２のプロセッサとの接続を切断させる第２の接続制御を指示し、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する
仮想化装置。
（付記Ａ２）
前記接続制御部は、前記ストレージの接続先を、前記第１のプロセッサ又は前記第２のプロセッサのいずれかに切り換えを行うものであり、
前記仮想化制御部は、
前記電源供給の停止後に、前記接続制御部に対して、前記ストレージの接続先を前記第１のプロセッサから前記第２のプロセッサへ切り換えさせる前記第１の接続制御を指示し、
前記仮想化処理の終了後、前記接続制御部に対して、前記ストレージの接続先を前記第２のプロセッサから前記第１のプロセッサへ切り換えさせる前記第２の接続制御を指示する
付記Ａ１に記載の仮想化装置。
（付記Ａ３）
前記第２のプロセッサは、前記第１のプロセッサとは異なる電源で動作するシステム管理プロセッサである
付記Ａ１又はＡ２に記載の仮想化装置。
（付記Ａ４）
前記仮想化制御部は、
前記電源供給の停止に際し、前記第１のプロセッサに対して、前記ＯＳのメモリキャッシュを前記ストレージに出力させた後、スリープを指示し、
前記電源供給の再開に際し、前記第１のプロセッサに対して、前記スリープの解除を指示する
付記Ａ１乃至Ａ３のいずれか１項に記載の仮想化装置。
（付記Ａ５）
前記仮想化制御部は、
前記電源供給の停止に際し、前記第１のプロセッサに対して、ハイバネーションを指示し、
前記電源供給の再開に際し、前記第１のプロセッサに対して、前記ハイバネーションからの復帰を指示する
付記Ａ１乃至Ａ３のいずれか１項に記載の仮想化装置。
（付記Ｂ１）
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータが、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止し、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行い、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示し、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行い、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する
仮想化方法。
（付記Ｃ１）
ＯＳ（Operating System）が格納されたストレージと、
第１のプロセッサと、
第２のプロセッサと、
を備えるコンピュータに、
前記第１のプロセッサが前記ストレージと接続され、かつ、当該ストレージにアクセスして前記ＯＳを実行中である場合に、前記第１のプロセッサへの電源供給を停止する処理と、
前記電源供給の停止後に、前記ストレージと前記第２のプロセッサとの接続を行う第１の接続制御を行う処理と、
前記第１の接続制御後に、前記第２のプロセッサに対して、前記ＯＳに対する仮想化処理の開始を指示する処理と、
前記仮想化処理の終了後、前記ストレージと前記第２のプロセッサとの接続を切断する第２の接続制御を行う処理と、
前記第２の接続制御後に、前記第１のプロセッサへの前記電源供給を再開する処理と、
を実行させる仮想化プログラム。
【００５８】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００５９】
１００  仮想化装置
１１０  第１のプロセッサ
１２０  第２のプロセッサ
１３０  仮想化制御部
１４０  接続制御部
１５０  ストレージ
１５１  ＯＳ
２００  サーバ
２１０  サーバプロセッサ
２２０  ＩＣＨ
２２１  メモリコントローラ
２３０  メモリ
２３１  ＯＳ実行状態
２４０  ＩＣＨ
２４１  ＳＡＴＡコントローラ
２４２  経路切換制御部
２５０  サブプロセッサ
２６０  仮想化制御部
２７０  ストレージデバイス
２７１  ＯＳ
２７２  ＯＳ実行状態
２８０  ストレージデバイス
２８１  仮想化イメージファイル
２９１  第１の通信経路
２９２  第２の通信経路
【図１】
2020135719.tif 000003
【図２】
2020135719.tif 000004
【図３】
2020135719.tif 000005
【図４】
2020135719.tif 000006
【図５】
2020135719.tif 000007
【図６】
2020135719.tif 000008