(57)【特許請求の範囲】
【請求項１】
仮想計算機の制御を行うホストＯＳから，該仮想計算機と記憶装置との間の論理的な接続関係の解除を求める要求を受け付ける受付部と，
前記要求を受け付けた際に，前記仮想計算機から前記記憶装置への占有の開始を指示するコマンドと，前記仮想計算機から前記記憶装置への占有の終了を指示するコマンドとの発行状況をもとに，前記仮想計算機と前記記憶装置との間の入出力処理の終了を待って前記論理的な接続関係の解除を実行するか否かを判断する判断部と，
前記判断部により前記仮想計算機と前記記憶装置との間の入出力処理の終了を待って前記論理的な接続関係の解除を実行すると判断された場合に，前記仮想計算機と前記記憶装置との間における過去の入出力処理の実行時間に基づいて，前記仮想計算機と前記記憶装置との間の入出力処理が終了するまでの時間を予測する予測部と，
前記予測された時間の情報を前記ホストＯＳに通知する通知部とを備える
ことを特徴とする仮想計算機制御装置。
【請求項２】
前記予測部は，入出力処理を実行中の前記仮想計算機から前記記憶装置への占有の終了を指示するコマンドの発行からの経過時間が，前記仮想計算機と前記記憶装置との間における過去の入出力処理の実行時間から予測される実行時間を，所定時間以上超えた場合に，異常の可能性ありと判断し，
前記通知部は，前記予測部により異常の可能性ありと判断された場合に，異常を通知する
ことを特徴とする請求項１に記載の仮想計算機制御装置。
【請求項３】
コンピュータに，
仮想計算機の制御を行うホストＯＳから，該仮想計算機と記憶装置との間の論理的な接続関係の解除を求める要求を受け付け，
前記要求を受け付けた際に，前記仮想計算機から前記記憶装置への占有の開始を指示するコマンドと，前記仮想計算機から前記記憶装置への占有の終了を指示するコマンドとの発行状況をもとに，前記仮想計算機と前記記憶装置との間の入出力処理の終了を待って前記論理的な接続関係の解除を実行するか否かを判断し，
前記仮想計算機と前記記憶装置との間の入出力処理の終了を待って前記論理的な接続関係の解除を実行すると判断された場合に，前記仮想計算機と前記記憶装置との間における過去の入出力処理の実行時間に基づいて，前記仮想計算機と前記記憶装置との間の入出力処理が終了するまでの時間を予測し，
前記予測された時間の情報を前記ホストＯＳに通知する
処理を実行させるための仮想計算機制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，仮想計算機システムにおいて，仮想計算機と記憶装置との取り外しを制御する仮想計算機制御装置および仮想計算機制御プログラムに関するものである。
【背景技術】
【０００２】
仮想計算機システムにおいて，各仮想計算機と記憶装置等の各物理資源との間の論理的な取り付け，取り外しを行う技術がある。
【０００３】
仮想計算機システムにおいて，ホストＯＳ（Operating System）の操作者は，ホストＯＳが持つ取り付け機能，取り外し機能を利用して，仮想計算機からの物理資源に対するアクセスを管理する。取り付け機能は，仮想計算機から物理資源へのアクセスを可能にする機能である。取り外し機能は，仮想計算機から物理資源へのアクセスを不可能にする機能である。取り付け機能や取り外し機能では，ホストＯＳの要求を受けた仮想計算機システムのチャネル制御機構が制御表を更新することにより，仮想計算機と物理資源との論理的な取り付け，取り外しが行われる。取り付け機能や取り外し機能は，仮想計算機の動作中でも実行できる。
【０００４】
例えば，仮想計算機システムにおいて，ある仮想計算機Ａがアクセスできる記憶装置Ｃを取り外し，取り外した記憶装置Ｃを他の仮想計算機Ｂに取り付けることにより，１つの記憶装置Ｃを２つの仮想計算機Ａ，Ｂで排他して利用できる。仮想計算機から記憶装置への実際のアクセスは，仮想計算機がＩＯ（Input Output）命令を発行することにより行われる。
【０００５】
なお，ホスト計算機と論理ディスクとの取り外しが選択された際に，該ホスト計算機によるジョブの実行終了を確認後に，論理ディスクの取り外しを行う技術が知られている。また，ゲストオペレーティングシステムへのデバイス割当情報を，コンソール等により更新することで，仮想計算機システムの構成を動的に変更する技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１４１６６８号公報
【特許文献２】特公平７−５８４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ホストＯＳ側では，仮想計算機と記憶装置との間での入出力処理の開始・終了を把握できないため，ホストＯＳの操作者は，仮想計算機が記憶装置を利用しているときには意図的に取り外しをやめる，といったことができない。
【０００８】
上述のホスト計算機と論理ディスクとの取り外しを行う技術を適用すれば，入出力処理の終了を待って，仮想計算機と記憶装置との取り外しを行うことができる。しかし，この場合でも，ホストＯＳの操作者は，取り外しを要求してからどの程度待てば，仮想計算機と記憶装置との取り外しが完了するのかわからないという問題がある。
【０００９】
例えば，ある仮想計算機Ａに取り付けられた記憶装置Ｃを，他の仮想計算機Ｂで利用するために，仮想計算機Ａと記憶装置Ｃとの取り外し要求を行った場合でも，ホストＯＳの操作者は，どの程度待てば取り外しが完了するかがわからない。そのため，ホストＯＳの操作者は，仮想計算機Ｂで記憶装置Ｃが必要となる時間までに，仮想計算機Ａと記憶装置Ｃとの取り外しが間に合うかを判断できない。ホストＯＳの操作者としては，仮想計算機Ｂで記憶装置Ｃが必要となる時間までに，仮想計算機Ａから記憶装置Ｃが取り外せないとわかれば，入出力処理の終了を待たずに，仮想計算機Ａと記憶装置Ｃとを強制的に取り外したいという要望もある。
【００１０】
一側面では，本発明は，仮想計算機システムにおいて，ホストＯＳの操作者が，要求した仮想計算機と記憶装置との取り外し完了までのおおよその時間を把握することが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
１態様では，仮想計算機制御装置は，仮想計算機の制御を行うホストＯＳから，該仮想計算機と記憶装置との間の論理的な接続関係の解除を求める要求を受け付ける受付部と，要求を受け付けた際に，仮想計算機から記憶装置への占有の開始を指示するコマンドと，仮想計算機から記憶装置への占有の終了を指示するコマンドとの発行状況をもとに，仮想計算機と記憶装置との間の入出力処理の終了を待って論理的な接続関係の解除を実行するか否かを判断する判断部と，判断部により仮想計算機と記憶装置との間の入出力処理の終了を待って論理的な接続関係の解除を実行すると判断された場合に，仮想計算機と記憶装置との間における過去の入出力処理の実行時間に基づいて，仮想計算機と記憶装置との間の入出力処理が終了するまでの時間を予測する予測部と，予測された時間の情報をホストＯＳに通知する通知部とを備える。
【発明の効果】
【００１２】
１態様では，仮想計算機システムにおいて，ホストＯＳの操作者が，要求した仮想計算機と記憶装置との取り外し完了までのおおよその時間を把握できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態による仮想計算機システムの構成例を示す図である。
【図２】本実施の形態による取り外し制御部の構成例を示す図である。
【図３】本実施の形態の仮想計算機システムを実現するコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態によるゲスト−記憶装置間の一連の入出力処理の例を説明する図である。
【図５】本実施の形態による取り外し抑止制御情報の例を示す図である。
【図６】本実施の形態による取り外し状況管理情報の例を示す図である。
【図７】本実施の形態による取り外し予測情報の例を示す図である。
【図８】本実施の形態による通知画面の例を示す図である。
【図９】本実施の形態のホスト側制御部による取り外し要求受け付け時の処理フローチャートである。
【図１０】本実施の形態のホスト側制御部による取り外し要求受け付け時の処理フローチャートである。
【図１１】本実施の形態のホスト側制御部による取り外し抑止開始通知受け付け時の処理フローチャートである。
【図１２】本実施の形態のホスト側制御部による取り外し抑止終了通知受け付け時の処理フローチャートである。
【図１３】本実施の形態のホスト側制御部による取り外し抑止終了通知・取り外し通知受け付け時の処理フローチャートである。
【図１４】本実施の形態のゲスト側制御部によるＩＯ命令受け付け時の処理フローチャートである。
【図１５】本実施の形態のゲスト側制御部によるＩＯ命令受け付け時の処理フローチャートである。
【図１６】本実施の形態のゲスト側制御部による取り外し予約通知受け付け時の処理フローチャートである。
【図１７】本実施の形態の予測制御部による取り外し抑止開始通知受け付け時の処理フローチャートである。
【図１８】本実施の形態の予測制御部による取り外し抑止終了通知受け付け時の処理フローチャートである。
【図１９】本実施の形態の予測制御部による取り外し予測時間問い合わせ受け付け時の処理フローチャートである。
【図２０】本実施の形態による取り外し予測情報の例（２）を示す図である。
【図２１】本実施の形態のゲスト側制御部によるＩＯ命令受け付け時の処理フローチャート（２）である。
【図２２】本実施の形態の予測制御部によるＲｅａｄ系／Ｗｒｉｔｅ系コマンドの通知受け付け時の処理フローチャートである。
【図２３】本実施の形態の予測制御部による取り外し抑止終了通知受け付け時の処理フローチャート（２）である。
【図２４】本実施の形態の予測制御部による取り外し予測時間問い合わせ受け付け時の処理フローチャート（２）である。
【発明を実施するための形態】
【００１４】
以下，本実施の形態について，図を用いて説明する。
【００１５】
〔実施の形態１〕
図１は，本実施の形態による仮想計算機システムの構成例を示す図である。
【００１６】
図１に示す仮想計算機システム１０は，ホストＯＳ（Operating System）１１，ゲストＯＳ１２，チャネル制御部１３，チャネル１４，記憶装置１５を備える。
【００１７】
ホストＯＳ１１は，仮想計算機システム１０において，ゲストＯＳ１２の管理や制御を行うＯＳである。ゲストＯＳ１２と記憶装置１５との取り付け／取り外しを行う際には，ホストＯＳ１１から，取り付け要求／取り外し要求等の要求が発行される。
【００１８】
ゲストＯＳ１２と記憶装置１５との取り付けは，ゲストＯＳ１２と記憶装置１５との間の論理的な接続を行うことである。ゲストＯＳ１２と記憶装置１５との取り外しは，ゲストＯＳ１２と記憶装置１５との間の論理的な接続関係を解除することである。取り付け要求は，ゲストＯＳ１２と記憶装置１５との間の論理的な接続を求める要求である。取り外し要求は，ゲストＯＳ１２と記憶装置１５との間の論理的な接続関係の解除を求める要求である。
【００１９】
ゲストＯＳ１２は，ホストＯＳ１１上で動作する仮想計算機である。ゲストＯＳ１２は，取り付けられた記憶装置１５に対する入出力処理を行う際に，ＩＯ（Input Output）命令を発行する。
【００２０】
チャネル制御部１３は，仮想計算機システム１０において，ゲストＯＳ１２と記憶装置１５との接続関係を制御する。具体的には，チャネル制御部１３は，ゲストＯＳ１２から発行されたＩＯ命令をもとに，各チャネル１４を制御する。また，ホストＯＳ１１から発行された要求に基づいて，ゲストＯＳ１２と記憶装置１５との論理的な取り付け／取り外しを実行する。チャネル１４は，記憶装置１５を接続するインタフェースである。記憶装置１５は，例えば磁気テープやハードディスクなどの外部記憶装置である。本実施の形態では，記憶装置１５は，論理的な単位で，ゲストＯＳ１２との取り付け／取り外しが行われる。
【００２１】
本実施の形態による仮想計算機システム１０のチャネル制御部１３は，取り外し実行制御部１６，ＩＯ命令制御部１７，取り外し制御部１００を備える。取り外し実行制御部１６は，チャネル制御部１３内で，指定されたゲストＯＳ１２と記憶装置１５との取り外しを実行する。ＩＯ命令制御部１７は，チャネル制御部１３内で，ゲストＯＳ１２からのＩＯ命令を実行する。
【００２２】
チャネル制御部１３の取り外し制御部１００は，ゲストＯＳ１２と記憶装置１５との取り外しを制御する。例えば，取り外し制御部１００は，ホストＯＳ１１からの取り外し要求があった場合に，取り外しの対象となったゲストＯＳ１２と記憶装置１５との間で入出力処理が実行されている間は，当該ゲストＯＳ１２からの当該記憶装置１５の取り外しを抑止する。取り外し制御部１００は，ホスト側制御部１１０，ゲスト側制御部１２０，予測制御部１３０を備える。
【００２３】
ホスト側制御部１１０は，チャネル制御部１３内で，主にホストＯＳ１１とのやり取りを司る。ゲスト側制御部１２０は，チャネル制御部１３内で，主にゲストＯＳ１２とのやり取りを司る。予測制御部１３０は，取り外しが指定されたゲストＯＳ１２と記憶装置１５との取り外しが完了する時間を予測する。
【００２４】
図２は，本実施の形態による取り外し制御部の構成例を示す図である。
【００２５】
チャネル制御部１３の取り外し制御部１００において，ホスト側制御部１１０は，受付部１１１，判断部１１２，通知部１１３，取り外し抑止制御部１１４，取り外し抑止情報記憶部１１５を備える。
【００２６】
受付部１１１は，ホストＯＳ１１から発行された取り外し要求を受け付ける。本実施の形態では，取り外し要求は，ホストＯＳ１１から，取り外し実行制御部１６を経由して，ホスト側制御部１１０に送られる。取り外し要求では，取り外し対象のゲストＯＳ１２と記憶装置１５とが指定されている。
【００２７】
判断部１１２は，受付部１１１が取り外し要求を受け付けた際に，速やかに取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しを実行するか，取り外し対象のゲストＯＳ１２と記憶装置１５との間の入出力処理の終了を待って取り外しを実行するかを判断する。このとき，判断部１１２は，ゲストＯＳ１２からのリザーブコマンドやリリースコマンドの発行状況をもとに，判断を行う。
【００２８】
通知部１１３は，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しが実行された際に，その取り外しの実行をホストＯＳ１１に通知する。また，通知部１１３は，判断部１１２により入出力処理の終了を待って取り外しを実行すると判断された際に，取り外し対象のゲストＯＳ１２と記憶装置１５との間の入出力処理が終了するまでの予測時間の情報や，入出力処理の異常などを，ホストＯＳ１１に通知する。なお，取り外し対象のゲストＯＳ１２と記憶装置１５との間の入出力処理が終了するまでの時間の予測や，入出力処理の異常可能性の判断は，予測制御部１３０の予測部１３１により行われる。
【００２９】
取り外し抑止制御部１１４は，取り外し抑止情報記憶部１１５に記憶された取り外し抑止制御情報を更新することで，各ゲストＯＳ１２と各記憶装置１５との間の取り外しの抑止の状態を制御する。
【００３０】
取り外し抑止情報記憶部１１５は，取り外し抑止制御情報を記憶する記憶部である。取り外し抑止制御情報は，各ゲストＯＳ１２と各記憶装置１５との間の取り外し抑止制御の状態が記録された情報である。
【００３１】
チャネル制御部１３の取り外し制御部１００において，ゲスト側制御部１２０は，ＩＯ命令受付部１２１，ＩＯ命令解析制御部１２２，取り外し状況管理部１２３，取り外し状況情報記憶部１２４を備える。
【００３２】
ＩＯ命令受付部１２１は，ゲストＯＳ１２から発行されるＩＯ命令を受け付ける。本実施の形態では，ＩＯ命令は，ゲストＯＳ１２から，ＩＯ命令制御部１７を経由して，ゲスト側制御部１２０に送られる。
【００３３】
ＩＯ命令解析制御部１２２は，ＩＯ命令受け付け部１２１が受け付けたＩＯ命令の解析を行う。ＩＯ命令の解析によって，リザーブコマンドやリリースコマンドなどが検出される。
【００３４】
取り外し状況管理部１２３は，取り外し状況情報記憶部１２４に記憶された取り外し状況管理情報を更新することで，各ゲストＯＳ１２と各記憶装置１５との間の取り外しの状況を管理する。
【００３５】
取り外し状況情報記憶部１２４は，取り外し状況管理情報を記憶する記憶部である。取り外し状況管理情報は，各ゲストＯＳ１２と各記憶装置１５との間の取り外しの状況が記録された情報である。
【００３６】
チャネル制御部１３の取り外し制御部１００において，予測制御部１３０は，予測部１３１，予測情報記憶部１３２を備える。
【００３７】
予測部１３１は，判断部１１２により入出力処理の終了を待って取り外しを実行すると判断された場合に，過去の入出力処理の実行時間に基づいて，取り外し対象のゲストＯＳ１２と記憶装置１５との間の入出力処理が終了するまでの時間を予測する。このとき，予測部１３１は，取り外し対象のゲストＯＳ１２から記憶装置１５へのリザーブコマンドの発行からの経過時間が，過去の入出力処理の実行時間から予測される実行時間を所定時間以上超えた場合に，入出力処理に異常が発生した可能性があると判断する。
【００３８】
予測情報記憶部１３２は，取り外し予測情報を記憶する記憶部である。取り外し予測情報は，取り外し要求されたゲストＯＳ１２と記憶装置１５との間の入出力処理が終了するまでの時間の予測に用いる情報である。
【００３９】
図３は，本実施の形態の仮想計算機システムを実現するコンピュータのハードウェア構成例を示す図である。
【００４０】
本実施の形態の仮想計算機システム１０を実現するコンピュータ１は，例えば，ＣＰＵ（Central Processing Unit ）２，主記憶となるメモリ３，記憶装置４，通信装置５，媒体読取・書込装置６，入力装置７，出力装置８等を備える。記憶装置４は，例えば磁気テープ装置やＨＤＤ（Hard Disk Drive ）などである。仮想計算機システム１０における記憶装置１５は，例えば，コンピュータ１の記憶装置４により実現される。媒体読取・書込装置６は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置７は，例えばキーボード・マウスなどである。出力装置８は，例えばディスプレイ等の表示装置などである。
【００４１】
仮想計算機システム１０のホストＯＳ１１，ゲストＯＳ１２，チャネル制御部１３，およびそれらが備える各機能部は，コンピュータ１が備えるＣＰＵ２，メモリ３等のハードウェアと，ソフトウェアプログラムとによって実現することが可能である。コンピュータ１が実行可能なプログラムは，記憶装置４に記憶され，その実行時にメモリ３に読み出され，ＣＰＵ２により実行される。
【００４２】
コンピュータ１は，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータ１は，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータ１で読み取り可能な記録媒体に記録しておくことができる。
【００４３】
図４は，本実施の形態によるゲスト−記憶装置間の一連の入出力処理の例を説明する図である。
【００４４】
ゲストＯＳ１２側から記憶装置１５側に発行されるＩＯ命令には，他のゲストＯＳ１２と共用する記憶装置１５の排他制御に使用するリザーブコマンドとリリースコマンドがある。リザーブコマンドは，ゲストＯＳ１２が記憶装置１５に一時的な占有の開始を指示するコマンドである。リリースコマンドは，ゲストＯＳ１２が記憶装置１５に一時的な占有の終了を指示するコマンドである。
【００４５】
図４に示すように，一連の入出力処理は，複数のＩＯ命令の組み合わせから成り立っている。あるＩＯ命令に対するＩＯ命令終了通知から，次のＩＯ命令の発行までに，若干の時間の隙間があり，このタイミングでは，入出力処理中であってもゲストＯＳ１２と記憶装置１５との取り外しが可能である。しかし，このタイミングでゲストＯＳ１２と記憶装置１５との取り外しを行うと，ゲストＯＳ１２の入出力処理が異常終了することになり，記憶装置１５のデータベースが破壊される可能性がある。
【００４６】
本実施の形態によるチャネル制御部１３の取り外し制御部１００では，リザーブコマンドの発行からリリースコマンドの発行までを一連の入出力処理の単位として，原則的にその間のゲストＯＳ１２と記憶装置１５との取り外しを抑止する制御を行う。このような取り外し抑止の制御により，ゲストＯＳ１２と記憶装置１５との安全な取り外しが可能となる。
【００４７】
ＩＯ命令の解析により，リザーブコマンドやリリースコマンドの発行が検出されると，ゲスト側制御部１２０は，その旨をホスト側制御部１１０と予測制御部１３０とに通知する。本実施の形態では，ゲストＯＳ１２からのリザーブコマンドの発行が検出された際に送られる通知を，取り外し抑止開始通知と呼ぶ。また，ゲストＯＳ１２からのリリースコマンドの発行が検出された際に送られる通知を，取り外し抑止終了通知と呼ぶ。
【００４８】
ホスト側制御部１１０では，ゲスト側制御部１２０からの通知に基づいて，入出力処理の実行中であると判断されるゲストＯＳ１２と記憶装置１５との取り外しを抑止する制御が行われる。すなわち，ホスト側制御部１１０では，リザーブコマンドが発行されてからリリースコマンドが発行されるまでは，リザーブコマンドを発行したゲストＯＳ１２とその相手先の記憶装置１５との間で入出力処理が実行中であると判断される。このとき，ホスト側制御部１１０では，取り外し要求があっても，原則として，入出力処理が終了するまで，該当ゲストＯＳ１２と該当記憶装置１５との取り外しが抑止される。
【００４９】
予測制御部１３０では，ゲスト側制御部１２０からの通知に基づいて，各ゲストＯＳ１２と各記憶装置１５との間の入出力処理の実行時間の実績を蓄積保持する。入出力処理が実行中であるゲストＯＳ１２と記憶装置１５とに対して取り外し要求があった場合には，予測制御部１３０では，保持された入出力処理の実行時間の実績に基づいて，該当ゲストＯＳ１２と該当記憶装置１５との間での入出力処理が終了までの時間の予測が行われる。
【００５０】
図５は，本実施の形態による取り外し抑止制御情報の例を示す図である。
【００５１】
図５に示す取り外し抑止制御情報１１６は，取り外し抑止情報記憶部１１５に記憶される取り外し抑止制御情報１１６の一例である。図５に示す例では，ゲストＩＤが“＃０１”であるゲストＯＳ１２についての取り外し抑止制御情報１１６の例が示されている。ゲストＩＤは，ゲストＯＳ１２を一意に識別する識別情報である。
【００５２】
図５に示す取り外し抑止制御情報１１６は，装置番号，取り外し抑止の情報を持つ。装置番号は，記憶装置１５を一意に識別する識別情報である。取り外し抑止は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しについて，抑止制御の状態を示す。
【００５３】
本実施の形態による取り外し抑止制御情報１１６において，取り外し抑止が示す状態には，“なし”，“有り”，“予約”の３つの状態がある。取り外し抑止“なし”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しが抑止されていない状態を示す。取り外し抑止“有り”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しが抑止されている状態を示す。取り外し抑止“予約”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しが抑止されている状態で取り外し要求があり，該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理の終了を待っている状態を示す。
【００５４】
なお，ゲストＩＤ“＃０１”のゲストＯＳ１２以外のゲストＯＳ１２についての取り外し抑止制御情報１１６の構成も，図５に示すゲストＩＤ“＃０１”のゲストＯＳ１２のものと同様の構成である。
【００５５】
ホスト側制御部１１０において，ゲスト側制御部１２０から取り外し抑止開始通知を受けると，取り外し抑止制御部１１４は，取り外し抑止制御情報１１６における指定されたゲストＯＳ１２と記憶装置１５との取り外し抑止の情報を，“有り”に更新する。取り外し抑止制御情報１１６において取り外し抑止が“有り”であるということは，該当ゲストＯＳ１２と該当記憶装置１５との間で，入出力処理が実行中であることを意味する。
【００５６】
ホスト側制御部１１０において，ゲスト側制御部１２０から取り外し抑止終了通知を受けると，取り外し抑止制御部１１４は，取り外し抑止制御情報１１６における指定されたゲストＯＳ１２と記憶装置１５との取り外し抑止の情報を，“なし”に更新する。取り外し抑止制御情報１１６において取り外し抑止が“なし”であるということは，該当ゲストＯＳ１２と該当記憶装置１５との間では，入出力処理が実行されていないことを意味する。
【００５７】
判断部１１２は，受付部１１１により取り外し要求が受け付けられると，取り外し抑止制御情報１１６から，取り外し要求で指定された取り外し対象のゲストＯＳ１２と記憶装置１５とについての取り外し抑止の情報を取得する。
【００５８】
取り外し抑止が“なし”である場合には，該当ゲストＯＳ１２と該当記憶装置１５との間で入出力処理が実行中ではないので，判断部１１２は，取り外し対象のゲストＯＳ１２と記憶装置１５との安全な取り外しが可能であると判断する。
【００５９】
取り外し抑止が“有り”である場合には，該当ゲストＯＳ１２と該当記憶装置１５との間で入出力処理が実行中であるので，判断部１１２は，取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理の終了を待って，取り外しを実行すると判断する。なお，取り外し抑止制御情報１１６における取り外し抑止の情報は，リザーブコマンドやリリースコマンドの発行状況をもとに，更新される情報である。すなわち，判断部１１２は，リザーブコマンドやリリースコマンドの発行状況をもとに，取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理の終了を待って取り外しを実行するかを判断していることになる。
【００６０】
判断部１１２が入出力処理の終了を待って取り外しを実行すると判断した場合，取り外し抑止制御部１１４は，取り外し抑止制御情報１１６における該当ゲストＯＳ１２と該当記憶装置１５との取り外し抑止の情報を，“予約”に更新する。また，ホスト側制御部１１０は，取り外し対象のゲストＯＳ１２と記憶装置１５とについて，入出力処理の終了を待って，取り外しを実行する旨を示す取り外し予約通知を，ゲスト側制御部１２０に送る。また，ホスト側制御部１１０は，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しが行われる予測時間，すなわち取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理が終了するまでの予測時間を，予測制御部１３０に問い合わせる。以下では，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しが行われる予測時間，すなわち取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理が終了するまでの予測時間を，取り外し予測時間と呼ぶ。
【００６１】
取り外し抑止制御情報１１６の取り外し抑止が“予約”であるゲストＯＳ１２と記憶装置１５との対応について，再度取り外し要求があった場合には，判断部１１２は，取り外し対象のゲストＯＳ１２と記憶装置１５との強制的な取り外しを行うと判断する。
【００６２】
図６は，本実施の形態による取り外し状況管理情報の例を示す図である。
【００６３】
図６に示す取り外し状況管理情報１２５は，取り外し状況情報記憶部１２４に記憶される取り外し状況管理情報１２５の一例である。図６に示す例では，ゲストＩＤが“＃０１”であるゲストＯＳ１２についての取り外し状況管理情報１２５の例が示されている。ゲストＩＤは，ゲストＯＳ１２を一意に識別する識別情報である。
【００６４】
図６に示す取り外し状況管理情報１２５は，装置番号，取り外し状況の情報を持つ。装置番号は，記憶装置１５を一意に識別する識別情報である。取り外し状況は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しの状況を示す。
【００６５】
本実施の形態による取り外し状況管理情報１２５において，取り外し状況が示す状況には，“なし”，“予約”，“実行”の３つの状況がある。取り外し状況“なし”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外し要求がない状況を示す。取り外し状況“予約”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外し要求があり，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の入出力処理の終了を待っている状況を示す。取り外し状況“実行”は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しを実行している状況を示す。
【００６６】
なお，ゲストＩＤ“＃０１”のゲストＯＳ１２以外のゲストＯＳ１２についての取り外し状況管理情報１２５の構成も，図６に示すゲストＩＤ“＃０１”のゲストＯＳ１２のものと同様の構成である。
【００６７】
ゲスト側制御部１２０において，ホスト側制御部１１０から取り外し予約通知を受けると，取り外し状況管理部１２３は，取り外し状況管理情報１２５における指定されたゲストＯＳ１２と記憶装置１５との取り外し状況の情報を，“予約”に更新する。取り外し状況管理情報１２５において取り外し状況が“予約”であるということは，ホスト側制御部１１０で，安全な取り外しのために該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理の終了を待っていることを意味する。
【００６８】
取り外し状況管理情報１２５の取り外し状況が“予約”であるゲストＯＳ１２と記憶装置１５との対応について，リリースコマンドの発行が検出された場合には，取り外し状況管理部１２３は，当該取り外し状況の情報を，“実行”に更新する。取り外し状況管理情報１２５において取り外し状況が“実行”であるということは，ホスト側制御部１１０で，該当ゲストＯＳ１２と該当記憶装置１５との取り外しが実行されていることを意味する。
【００６９】
取り外し状況管理情報１２５の取り外し状況が“実行”であるゲストＯＳ１２と記憶装置１５との対応について，リザーブコマンドの発行が検出された場合には，ゲスト側制御部１２０は，リザーブコマンドを発行したゲストＯＳ１２に対して，ビジー応答する。
【００７０】
図７は，本実施の形態による取り外し予測情報の例を示す図である。
【００７１】
図７に示す取り外し予測情報１３３は，予測情報記憶部１３２に記憶される取り外し予測情報１３３の一例である。図７に示す例では，ゲストＩＤが“＃０１”であるゲストＯＳ１２についての取り外し予測情報１３３の例が示されている。ゲストＩＤは，ゲストＯＳ１２を一意に識別する識別情報である。
【００７２】
図７に示す取り外し予測情報１３３は，装置番号，最大時間，平均時間，開始時刻の情報を持つ。装置番号は，記憶装置１５を一意に識別する識別情報である。最大時間は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の過去の入出力処理において，最も長かった処理時間を示す。平均時間は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の過去の入出力処理における，実行時間の近似平均を示す。開始時刻は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間で入出力処理が実行中である場合に，その入出力処理の開始時刻を示す。
【００７３】
なお，ゲストＩＤ“＃０１”のゲストＯＳ１２以外のゲストＯＳ１２についての取り外し予測情報１３３の構成も，図７に示すゲストＩＤ“＃０１”のゲストＯＳ１２のものと同様の構成である。
【００７４】
予測制御部１３０において，ゲスト側制御部１２０から取り外し抑止開始通知を受けると，予測部１３１は，取り外し予測情報１３３における指定されたゲストＯＳ１２と記憶装置１５との開始時刻に，現在の時刻を設定する。取り外し予測情報１３３における開始時刻は，取り外し抑止開始通知を受けた時刻であるので，実行中の入出力処理の開始時刻となる。
【００７５】
予測制御部１３０において，ゲスト側制御部１２０から取り外し抑止終了通知を受けると，予測部１３１は，現在の時刻から，取り外し予測情報１３３における指定されたゲストＯＳ１２と記憶装置１５との開始時刻を差し引いて，経過時間を求める。取り外し抑止終了通知を受けた時刻は入出力処理の終了時刻となるので，求められた経過時間は，終了したばかりの入出力処理の実行時間である。
【００７６】
求められた経過時間が，取り外し予測情報１３３における該当ゲストＯＳ１２と該当記憶装置１５との最大時間を超えている場合には，予測部１３１は，その最大時間を経過時間で更新する。また，予測部１３１は，取り外し予測情報１３３における該当ゲストＯＳ１２と該当記憶装置１５との平均時間を，その平均時間に経過時間を加えて２で割って得られる時間で更新する。このように求められた平均時間は，過去の入出力処理の実行時間の近似平均となる。
【００７７】
このように，該当ゲストＯＳ１２と該当記憶装置１５との過去の入出力処理の実行時間の実績が，取り外し予測情報１３３における最大時間，平均時間の項目に蓄積される。なお，図７に示す取り外し予測情報１３３において，最大時間，平均時間の項目が“不明”となっているゲストＯＳ１２と記憶装置１５との組み合わせについては，過去に入出力処理の実績がないことを示している。
【００７８】
予測制御部１３０において，ホスト側制御部１１０から取り外し予測時間の問い合わせを受けると，予測部１３１は，現在の時刻から，取り外し予測情報１３３における指定されたゲストＯＳ１２と記憶装置１５との開始時刻を差し引いて，経過時間を求める。このとき，指定されたゲストＯＳ１２と記憶装置１５との間の入出力処理は，実行中である。求められた経過時間は，入出力処理の開始時刻から取り外し要求が発行された時刻までの経過時間となる。
【００７９】
予測部１３１は，取り外し予測情報１３３における該当ゲストＯＳ１２と該当記憶装置１５との平均時間から経過時間を差し引いた時間を求める。ここでは，取り外し予測情報１３３における平均時間から経過時間を差し引いて得られる時間を，予測平均時間と呼ぶ。予測平均時間は，該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理が終了するまでの時間として，過去の実績から最も期待される予測時間の一例である。
【００８０】
予測部１３１は，取り外し予測情報１３３における該当ゲストＯＳ１２と該当記憶装置１５との最大時間から経過時間を差し引いた時間を求める。ここでは，取り外し予測情報１３３における最大時間から経過時間を差し引いて得られる時間を，予測最大時間と呼ぶ。予測最大時間は，該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理が終了するまでの時間として，過去の実績から想定される最大の予測時間の一例である。
【００８１】
予測制御部１３０は，ホスト側制御部１１０の問い合わせに対する応答として，予測部１３１により求められた取り外し予測時間の情報を通知する。本実施の形態では，取り外し予測時間の情報として，予測平均時間と予測最大時間とが通知される。なお，過去の入出力処理の実績がなく，取り外し予測情報１３３における最大時間や平均時間が不明となっている場合には，取り外し予測時間の情報として，不明が通知される。
【００８２】
また，予測部１３１は，求められた経過時間が，過去の入出力処理の実行時間から予測される実行時間を所定時間以上超えた場合に，入出力処理に異常が発生した可能性があると判断する。例えば，予測部１３１は，経過時間と，取り外し予測情報１３３における該当ゲストＯＳ１２と該当記憶装置１５との最大時間とを比較して，経過時間が最大時間の２倍以上である場合に，入出力処理に異常が発生した可能性があると判断する。このとき，予測制御部１３０は，ホスト側制御部１１０の問い合わせに対する応答として，取り外し予測時間の情報の代わりに，異常を通知する。
【００８３】
同じゲストＯＳ１２と同じ記憶装置１５との間での入出力処理では，同じパターンの処理が繰り返し実行されるケースも多く，その場合，入出力処理の実行時間も，毎回同じぐらいの時間となる。そのため，本実施の形態の予測部１３１では，ゲストＯＳ１２と記憶装置１５との組み合わせごとに，過去の入出力処理の実行時間の実績から，実行中の入出力処理が終了するまでの時間の予測を行う。
【００８４】
図８は，本実施の形態による通知画面の例を示す図である。
【００８５】
ホスト側制御部１１０が予測制御部１３０から問い合わせに対する応答を受けると，通知部１１３は，その応答の内容に応じた通知を，ホストＯＳ１１に送る。ホストＯＳ１１では，ホストＯＳ１１の操作者に対する，ホスト側制御部１１０から通知された内容の提示が行われる。例えば，ホストＯＳ１１での制御によって，ホストＯＳ１１の操作者が使用しているディスプレイに，ホスト側制御部１１０からの通知の内容を提示した画面が表示される。
【００８６】
問い合わせに対する予測制御部１３０からの応答が取り外し予測時間の情報の通知であれば，通知部１１３は，予測制御部１３０から得られた取り外し予測時間の情報を，ホストＯＳ１１に通知する。取り外し予測時間の情報の通知を受けたホストＯＳ１１では，操作者のディスプレイに，取り外し予測時間の情報を表示する制御が行われる。
【００８７】
図８（Ａ）は，取り外し予測時間として，予測平均時間と予測最大時間とが表示された通知画面の例を示す。取り外し予測時間として，予測平均時間と予測最大時間とが得られた場合には，図８（Ａ）に示すように，それらの予測時間の情報が，取り外し完了予測時間として，操作者のディスプレイに表示される通知画面に提示される。図８（Ａ）に示す通知画面において，“通常６０ｓ後”とあるのが提示された予測平均時間であり，“最大９０ｓ後”とあるのが提示された予測最大時間である。
【００８８】
図８（Ｂ）は，取り外し予測時間が不明である場合の通知画面の例を示す。取り外し予測時間が不明である場合には，図８（Ｂ）に示すように，取り外し完了予測時間として，操作者のディスプレイに表示される通知画面に，不明である旨が提示される。
【００８９】
問い合わせに対する予測制御部１３０からの応答が異常の通知であれば，通知部１１３は，ホストＯＳ１１に異常を通知する。異常の通知を受けたホストＯＳ１１では，操作者のディスプレイに，異常が発生している可能性がある旨を表示する制御が行われる。
【００９０】
図８（Ｃ）は，異常の可能性が提示された通知画面の例を示す。取り外し対象の入出力処理に異常の可能性がある場合には，図８（Ｃ）に示すように，操作者のディスプレイに表示される通知画面に，異常が発生している可能性がある旨が提示される。
【００９１】
なお，図８の通知画面では，再度の取り外しの指示により，強制的にゲストＯＳ１２と記憶装置１５との取り外しができる旨が，説明されている。
【００９２】
以下チャネル制御部１３の取り外し制御部１００により，ゲストＯＳ１２と記憶装置１５との取り外しを制御する例を，フローチャートを用いて具体的に説明する。
【００９３】
図９，図１０は，本実施の形態のホスト側制御部による取り外し要求受け付け時の処理フローチャートである。
【００９４】
受付部１１１は，ホストＯＳ１１から発行された取り外し要求を受け付ける（ステップＳ１０）。取り外し要求では，取り外し対象となるゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。判断部１１２は，取り外し対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し抑止制御情報１１６にアクセスする（ステップＳ１１）。判断部１１２は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止が“有り”であるかを判定する（ステップＳ１２）。
【００９５】
取り外し抑止が“有り”であれば（ステップＳ１２のＹＥＳ），ホスト側制御部１１０は，予測制御部１３０に対して，ゲストＩＤと装置番号とを指定して，取り外し予測時間を問い合わせる（ステップＳ１３）。取り外し抑止が“有り”である場合には，取り外し対象のゲストＯＳ１２と記憶装置１５との間で入出力処理が実行中であると判断できる。この場合には，安全な取り外しができないため，判断部１１２は，入出力処理の終了を待ってから，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しを実行すると判断する。
【００９６】
ホスト側制御部１１０は，予測制御部１３０から，取り外し予測時間の問い合わせに対する応答を受け付ける（ステップＳ１４）。通知部１１３は，予測制御部１３０からの応答が，異常の通知であるかを判定する（ステップＳ１５）。
【００９７】
応答が異常の通知であれば（ステップＳ１５のＹＥＳ），通知部１１３は，ホストＯＳ１１に異常を通知する（ステップＳ１６）。このとき，ホストＯＳ１１での制御により，ホストＯＳ１１の操作者に対して，異常を通知する画面が提示される。
【００９８】
応答が異常の通知でなければ（ステップＳ１５のＮＯ），すなわち応答が取り外し予測時間の情報の通知であれば，通知部１１３は，ホストＯＳ１１に取り外し予測時間の情報を通知する（ステップＳ１７）。このとき，ホストＯＳ１１での制御により，ホストＯＳ１１の操作者に対して，取り外し予測時間の情報を通知する画面が提示される。
【００９９】
取り外し抑止制御部１１４は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止を“予約”に更新する（ステップＳ１８）。ホスト側制御部１１０は，ゲスト側制御部１２０に対して，ゲストＩＤと装置番号とを指定した取り外し予約を通知する（ステップＳ１９）。これにより，取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理の終了を待ってから取り外しを実行する状態となる。
【０１００】
取り外し抑止が“有り”でなければ（ステップＳ１２のＮＯ），判断部１１２は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止が“予約”であるかを判定する（ステップＳ２０）。
【０１０１】
取り外し抑止が“予約”であれば（ステップＳ２０のＹＥＳ），ホスト側制御部１１０は，取り外し実行制御部１６に取り外しの実行を通知する。取り外し実行制御部１６は，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しを実行する（ステップＳ２１）。この取り外しは，強制的な取り外しとなる。取り外し抑止が“予約”である状態は，取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理の終了を待っている状態である。この状態で，入出力処理の終了を待たずに再度取り外し要求があった場合，判断部１１２は，ホストＯＳ１１の操作者が強制的な取り外しを指示したものと判断する。通知部１１３は，ホストＯＳ１１に強制取り外しを通知する（ステップＳ２２）。
【０１０２】
取り外し抑止が“予約”でなければ（ステップＳ２０のＮＯ），すなわち取り外し抑止が“なし”であれば，ホスト側制御部１１０は，取り外し実行制御部１６に取り外しの実行を通知する。取り外し実行制御部１６は，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しを実行する（ステップＳ２３）。この取り外しは，安全な取り外しとなる。取り外し抑止が“なし”である状態は，取り外し対象のゲストＯＳ１２と記憶装置１５との間での入出力処理が行われていない状態である。このとき，判断部１１２は，取り外し対象のゲストＯＳ１２と記憶装置１５との安全な取り外しが実行できると判断する。通知部１１３は，ホストＯＳ１１に取り外しを通知する（ステップＳ２４）。
【０１０３】
図１１は，本実施の形態のホスト側制御部による取り外し抑止開始通知受け付け時の処理フローチャートである。
【０１０４】
ホスト側制御部１１０は，ゲスト側制御部１２０から，取り外し抑止開始通知を受け付ける（ステップＳ３０）。取り外し抑止開始通知では，取り外し抑止の制御を開始する対象となるゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。
【０１０５】
取り外し抑止制御部１１４は，取り外し抑止の制御を開始する対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し抑止制御情報１１６にアクセスする（ステップＳ３１）。取り外し抑止制御部１１４は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止を，“有り”に更新する（ステップＳ３２）。
【０１０６】
取り外し抑止開始通知は，ゲスト側制御部１２０がゲストＯＳ１２から発行された記憶装置１５に対するリザーブコマンドを検知したときに送られる通知である。このことは，リザーブコマンドを発行したゲストＯＳ１２と，相手先の記憶装置１５との間での一連の入出力処理が開始されたことを意味している。取り外し抑止制御情報１１６において，取り外し抑止を“有り”に更新するということは，入出力処理が終了するまで，対象のゲストＯＳ１２と記憶装置１５との取り外しを抑制する制御を行うということである。
【０１０７】
図１２は，本実施の形態のホスト側制御部による取り外し抑止終了通知受け付け時の処理フローチャートである。
【０１０８】
ホスト側制御部１１０は，ゲスト側制御部１２０から，取り外し抑止終了通知を受け付ける（ステップＳ４０）。取り外し抑止終了通知では，取り外し抑止の制御を終了する対象となるゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。
【０１０９】
取り外し抑止制御部１１４は，取り外し抑止の制御を終了する対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し抑止制御情報１１６にアクセスする（ステップＳ４１）。取り外し抑止制御部１１４は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止を，“なし”に更新する（ステップＳ４２）。
【０１１０】
取り外し抑止終了通知は，ゲスト側制御部１２０がゲストＯＳ１２から発行された記憶装置１５に対するリリースコマンドを検知したときに送られる通知である。このことは，リリースコマンドを発行したゲストＯＳ１２と，相手先の記憶装置１５との間での一連の入出力処理が終了したことを意味している。取り外し抑止制御情報１１６において，取り外し抑止を“なし”に更新するということは，対象のゲストＯＳ１２と記憶装置１５との取り外しの抑制を解除したということである。
【０１１１】
図１３は，本実施の形態のホスト側制御部による取り外し抑止終了通知・取り外し通知受け付け時の処理フローチャートである。
【０１１２】
ホスト側制御部１１０は，ゲスト側制御部１２０から，取り外し抑止終了通知と取り外し通知とを受け付ける（ステップＳ５０）。取り外し抑止終了通知や取り外し通知では，対象となるゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。
【０１１３】
取り外し抑止制御部１１４は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し抑止制御情報１１６にアクセスする（ステップＳ５１）。取り外し抑止制御部１１４は，取り外し抑止制御情報１１６の該当ゲストＩＤ，該当装置番号における取り外し抑止を，“なし”に更新する（ステップＳ５２）。ホスト側制御部１１０は，取り外し実行制御部１６に取り外しの実行を通知する。取り外し実行制御部１６は，取り外し対象のゲストＯＳ１２と記憶装置１５との取り外しを実行する（ステップＳ５３）。この取り外しは，安全な取り外しとなる。
【０１１４】
取り外しが予約された状況で，ゲスト側制御部１２０がゲストＯＳ１２から発行された記憶装置１５に対するリリースコマンドを検知した場合には，ゲスト側制御部１２０から取り外し抑止終了通知と取り外し通知とが同時に送られる。このとき，リリースコマンドを発行したゲストＯＳ１２と相手先の記憶装置１５との間では，一連の入出力処理が終了しているので，安全な取り外しが可能となる。
【０１１５】
図１４，図１５は，本実施の形態のゲスト側制御部によるＩＯ命令受け付け時の処理フローチャートである。
【０１１６】
ＩＯ命令受付部１２１は，ゲストＯＳ１２から発行されたＩＯ命令を受け付ける（ステップＳ６０）。ＩＯ命令解析制御部１２２は，受け付けたＩＯ命令を解析する（ステップＳ６１）。ＩＯ命令解析制御部１２２は，ＩＯ命令の解析の結果，リリースコマンドが検出されたかを判定する（ステップＳ６２）。
【０１１７】
リリースコマンドが検出されなければ（ステップＳ６２のＮＯ），ＩＯ命令解析制御部１２２は，ＩＯ命令の解析の結果，リザーブコマンドが検出されたかを判定する（ステップＳ６３）。リザーブコマンドが検出されなければ（ステップＳ６３のＮＯ），ゲスト側制御部１２０は，ＩＯ命令制御部１７に入出力処理の実行を通知する。ＩＯ命令制御部１７は，ＩＯ命令に従った入出力処理を実行する（ステップＳ６８）。
【０１１８】
リザーブコマンドが検出されれば（ステップＳ６３のＹＥＳ），ＩＯ命令解析制御部１２２は，リザーブコマンドを発行したゲストＯＳ１２のゲストＩＤと相手先の記憶装置１５の装置番号とで，取り外し状況管理情報１２５にアクセスする（ステップＳ６４）。ＩＯ命令解析制御部１２２は，取り外し状況管理情報１２５の該当ゲストＩＤ，該当装置番号における取り外し状況が“実行”であるかを判定する（ステップＳ６５）。
【０１１９】
取り外し状況が“実行”であれば（ステップＳ６５のＹＥＳ），ゲスト側制御部１２０は，リザーブコマンドを発行したゲストＯＳ１２に対して，ビジー応答する（ステップＳ６６）。取り外し状況管理情報１２５の取り外し状況が“実行”である場合には，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との取り外しが行われているので，該当ゲストＯＳ１２から該当記憶装置１５へのアクセスが行われないように制御される。
【０１２０】
取り外し状況が“実行”でなければ（ステップＳ６５のＮＯ），ゲスト側制御部１２０は，ホスト側制御部１１０と予測制御部１３０とに，それぞれゲストＩＤと装置番号とを指定した取り外し抑止開始を通知する（ステップＳ６７）。取り外し抑止開始の通知によって，リザーブコマンドの発行で該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理が開始されたことが，ホスト側制御部１１０や予測制御部１３０に通知される。
【０１２１】
ゲスト側制御部１２０は，ＩＯ命令制御部１７に入出力処理の実行を通知する。ＩＯ命令制御部１７は，ＩＯ命令に従った入出力処理を実行する（ステップＳ６８）。ゲストＯＳ１２が発行したリザーブコマンドによって，そのゲストＯＳ１２と相手先の記憶装置１５との間で入出力処理が開始される。
【０１２２】
リリースコマンドが検出されれば（ステップＳ６２のＹＥＳ），ＩＯ命令解析制御部１２２は，リリースコマンドを発行したゲストＯＳ１２のゲストＩＤと相手先の記憶装置１５の装置番号とで，取り外し状況管理情報１２５にアクセスする（ステップＳ６９）。ＩＯ命令解析制御部１２２は，取り外し状況管理情報１２５の該当ゲストＩＤ，該当装置番号における取り外し状況が“予約”であるかを判定する（ステップＳ７０）。
【０１２３】
取り外し状況が“予約”でなければ（ステップＳ７０のＮＯ），すなわち取り外し状況が“なし”であれば，ゲスト側制御部１２０は，ホスト側制御部１１０に，ゲストＩＤと装置番号とを指定した取り外し抑止終了を通知する（ステップＳ７１）。また，ゲスト側制御部１２０は，予測制御部１３０に，ゲストＩＤと装置番号とを指定した取り外し抑止終了を通知する（ステップＳ７２）。取り外し抑止終了の通知によって，リリースコマンドの発行で該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理が終了したことが，ホスト側制御部１１０や予測制御部１３０に通知される。
【０１２４】
取り外し状況が“予約”であれば（ステップＳ７０のＹＥＳ），ゲスト側制御部１２０は，ホスト側制御部１１０に，ゲストＩＤと装置番号とを指定した，取り外し抑止終了と取り外しとを通知する（ステップＳ７３）。取り外し状況管理部１２３は，取り外し状況管理情報１２５の該当ゲストＩＤ，該当装置番号における取り外し状況を“実行”に更新する（ステップＳ７４）。また，ゲスト側制御部１２０は，予測制御部１３０に，ゲストＩＤと装置番号とを指定した取り外し抑止終了を通知する（ステップＳ７２）。取り外し抑止終了の通知によって，リリースコマンドの発行で該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理が終了したことが，ホスト側制御部１１０や予測制御部１３０に通知される。また，取り外し状況が“予約”である状態は，安全な取り外しのために，該当ゲストＯＳ１２と該当記憶装置１５との間の入出力処理の終了を待っている状態であるので，ホスト側制御部１１０に取り外しが通知される。
【０１２５】
ゲスト側制御部１２０は，ＩＯ命令制御部１７に入出力処理の実行を通知する。ＩＯ命令制御部１７は，ＩＯ命令に従った入出力処理を実行する（ステップＳ６８）。ゲストＯＳ１２が発行したリリースコマンドによって，そのゲストＯＳ１２と相手先の記憶装置１５との間で入出力処理が終了される。
【０１２６】
図１６は，本実施の形態のゲスト側制御部による取り外し予約通知受け付け時の処理フローチャートである。
【０１２７】
ゲスト側制御部１２０は，ホスト側制御部１１０から，取り外し予約通知を受け付ける（ステップＳ８０）。取り外し予約通知では，取り外しの対象となるゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。
【０１２８】
取り外し状況管理部１２３は，取り外し対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し状況管理情報１２５にアクセスする（ステップＳ８１）。取り外し状況管理部１２３は，取り外し状況管理情報１２５の該当ゲストＩＤ，該当装置番号における取り外し状況を，“予約”に更新する（ステップＳ８２）。
【０１２９】
図１７は，本実施の形態の予測制御部による取り外し抑止開始通知受け付け時の処理フローチャートである。
【０１３０】
予測制御部１３０は，ゲスト側制御部１２０から，取り外し抑止開始通知を受け付ける（ステップＳ９０）。取り外し抑止開始通知では，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。
【０１３１】
予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３にアクセスする（ステップＳ９１）。予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における開始時刻に，現在の時刻を設定する（ステップＳ９２）。
【０１３２】
取り外し抑止開始通知は，ゲスト側制御部１２０がゲストＯＳ１２から発行された記憶装置１５に対するリザーブコマンドを検知したときに送られる通知である。このことは，リザーブコマンドを発行したゲストＯＳ１２と，相手先の記憶装置１５との間での一連の入出力処理が開始されたことを意味している。予測制御部１３０にとって，取り外し抑止開始通知は，入出力処理の実行時間の実績の記録と，入出力処理の終了までの時間の予測とに必要な，ゲストＯＳ１２と記憶装置１５との間での入出力処理の開始時刻を得るための通知となる。
【０１３３】
図１８は，本実施の形態の予測制御部による取り外し抑止終了通知受け付け時の処理フローチャートである。
【０１３４】
予測制御部１３０は，ゲスト側制御部１２０から，取り外し抑止終了通知を受け付ける（ステップＳ１００）。取り外し抑止終了通知では，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３にアクセスする（ステップＳ１０１）。
【０１３５】
予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における開始時刻と，現在の時刻とから，経過時間を算出する（ステップＳ１０２）。経過時間は，現在の時刻から開始時刻を差し引くことにより求められる。取り外し予測情報１３３の開始時刻は，ゲストＯＳ１２からリザーブコマンドが発行された時刻，すなわちゲストＯＳ１２と記憶装置１５との間での入出力処理が開始された時刻である。取り外し抑止終了通知を受け付けた時点における現在の時刻は，ゲストＯＳ１２からリリースコマンドが発行された時刻，すなわちゲストＯＳ１２と記憶装置１５との間での入出力処理が終了した時刻である。ここで求められる経過時間は，ゲストＯＳ１２と記憶装置１５との間での入出力処理の実行時間となる。
【０１３６】
予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における平均時間に経過時間を足して２で割った値で，該当ゲストＩＤ，該当装置番号における平均時間を更新する（ステップＳ１０３）。ここでは，平均時間として，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間での入出力処理について，過去の実行時間の近似平均が求められている。なお，予測時間として，過去の実行時間のログを蓄積して平均時間を求める，統計的手法を用いて期待値を求めるなどの設計は，任意である。
【０１３７】
予測部１３１は，経過時間が，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における最大時間より大きいかを判定する（ステップＳ１０４）。経過時間が最大時間より大きい場合には（ステップＳ１０４のＹＥＳ），予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における最大時間を，経過時間で更新する（ステップＳ１０５）。
【０１３８】
取り外し抑止終了通知は，ゲスト側制御部１２０がゲストＯＳ１２から発行された記憶装置１５に対するリリースコマンドを検知したときに送られる通知である。このことは，リリースコマンドを発行したゲストＯＳ１２と，相手先の記憶装置１５との間での一連の入出力処理が終了したことを意味している。予測制御部１３０にとって，取り外し抑止終了通知は，入出力処理の実行時間の実績の記録に必要な，ゲストＯＳ１２と記憶装置１５との間での入出力処理の終了時刻と得るための通知となる。ゲストＯＳ１２と記憶装置１５との間での入出力処理の開始時刻と終了時刻とから，入出力処理の実行時間の実績が得られる。
【０１３９】
図１９は，本実施の形態の予測制御部による取り外し予測時間問い合わせ受け付け時の処理フローチャートである。
【０１４０】
予測制御部１３０は，ホスト側制御部１１０から，取り外し予測時間の問い合わせを受け付ける（ステップＳ１１０）。取り外し予測時間の問い合わせでは，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３にアクセスする（ステップＳ１１１）。
【０１４１】
予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における開始時刻と，現在の時刻とから，経過時間を算出する（ステップＳ１１２）。経過時間は，現在の時刻から開始時刻を差し引くことにより求められる。ここで求められる経過時間は，実行中であるゲストＯＳ１２と記憶装置１５との間での入出力処理の開始時刻から，ホストＯＳ１１から取り外し要求を受けた時刻までの経過時間である。
【０１４２】
予測部１３１は，経過時間が，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における最大時間の２倍以上かを判定する（ステップＳ１１３）。
【０１４３】
経過時間が最大時間の２倍以上であれば（ステップＳ１１３のＹＥＳ），予測部１３１は，異常と判断し，取り外し予測時間の問い合わせに対する応答として，ホスト側制御部１１０に異常を通知する（ステップＳ１１４）。入出力処理が開始されてからの経過時間が，過去の入出力処理の実行時間の実績から予測される範囲の時間を大きく超えている場合には，入出力処理に何らかの異常が発生している可能性がある。なお，ここでは，最大時間を基準として，その２倍以上の時間が入出力処理の開始から経過していることを条件に，異常の判断を行っているが，異常を判断する基準の時間や，その基準時間に基づいた異常判定の条件などは，任意の設計が可能である。
【０１４４】
経過時間が最大時間の２倍以上でなければ（ステップＳ１１３のＮＯ），予測部１３１は，取り外し予測情報１３３の該当ゲストＩＤ，該当装置番号における平均時間と，最大時間とから，それぞれ経過時間を差し引いた時間を求める（ステップＳ１１５）。平均時間から経過時間を差し引いて得られる予測平均時間は，実行中の入出力処理が終了までの平均的な時間の予測を示す。最大時間から経過時間を差し引いて得られる予測最大時間は，実行中の入出力処理が終了までの過去の最大時間を示す。ここでは，求めた２つの時間を取り外し予測時間とする。
【０１４５】
予測部１３１は，問い合わせに対する応答として，ホスト側制御部１１０に，取り外し予測時間の情報を通知する（ステップＳ１１６）。
【０１４６】
以上説明したように，本実施の形態による仮想計算機システム１０では，入出力処理の終了を待ってゲストＯＳ１２と記憶装置１５との取り外しを実行する場合に，取り外しの実行時間，すなわち入出力処理の終了時間を予測して，ホストＯＳ１１の操作者に提示することが可能となる。これにより，ホストＯＳ１１の操作者は，取り外しを要求したゲストＯＳ１２と記憶装置１５との取り外し完了までのおおよその時間を把握することが可能となり，強制的に取り外しを実行するか否かを容易に判断できるようになる。
【０１４７】
また，取り外しを要求したゲストＯＳ１２と記憶装置１５とについて，予測時間を大きく経過しているのに入出力処理が終了していない場合に，異常の可能性をホストＯＳ１１の操作者に提示することが可能となる。これにより，ホストＯＳ１１の操作者は，取り外しを要求したゲストＯＳ１２と記憶装置１５との間における入出力処理の異常を速やかに知ることが可能となり，強制的に取り外しを実行するか否かを容易に判断できるようになる。
【０１４８】
〔実施の形態２〕
前述の実施の形態１では，予測制御部１３０において，各ゲストＯＳ１２と各記憶装置１５とを組み合わせた単位で，過去の入出力処理の実行時間の実績から，入出力処理の終了までの予測時間を求める例を説明した。予測制御部１３０において，各ゲストＯＳ１２と各記憶装置１５とを組み合わせた単位をさらに詳細にした，入出力処理時のコマンドの実行パターンごとの単位で，過去の入出力処理の実行時間の実績から，入出力処理の終了までの予測時間を求めることもできる。
【０１４９】
図２０は，本実施の形態による取り外し予測情報の例（２）を示す図である。
【０１５０】
図２０に示す取り外し予測情報１３３’は，図７に示す取り外し予測情報１３３と同様に，予測情報記憶部１３２に記憶される取り外し予測情報の一例である。ただし，図７に示す取り外し予測情報１３３と異なり，図２０に示す取り外し予測情報１３３’では，各ゲストＯＳ１２と各記憶装置１５とを組み合わせた単位をさらに詳細にした，入出力処理時のコマンドの実行パターンごとの単位で，情報が管理されている。
【０１５１】
図２０に示す例では，ゲストＩＤが“＃０１”であるゲストＯＳ１２についての取り外し予測情報１３３’の例が示されている。ゲストＩＤは，ゲストＯＳ１２を一意に識別する識別情報である。
【０１５２】
図２０に示す取り外し予測情報１３３’は，装置番号，コマンド列，最大コマンド数，平均コマンド数，平均時間，現在のコマンド数，開始時刻の情報を持つ。装置番号は，記憶装置１５を一意に識別する識別情報である。
【０１５３】
コマンド列は，リザーブコマンドから始まる一連の入出力処理において，リザーブコマンド後のコマンドの実行パターンごとの分類を示す。本実施の形態では，Ｒｅａｄ系コマンドとＷｒｉｔｅ系コマンドとの実行パターンで分類を行うものとする。図２０に示すコマンド列において，ＲＤはＲｅａｄ系コマンドを示し，ＷＴはＷｒｉｔｅ系コマンドを示す。例えば，ＲＤ−ＷＴは，一連の入出力処理において，最初に発行されたＲｅａｄ系／Ｗｒｉｔｅ系コマンドがＲｅａｄ系コマンドであり，２番目に発行されたＲｅａｄ系／Ｗｒｉｔｅ系コマンドがＷｒｉｔｅ系コマンドであることを示している。なお，図２０に示す取り外し予測情報１３３’では，２番目までのＲｅａｄ系／Ｗｒｉｔｅ系コマンドのコマンド列で，コマンドの実行パターンを分類しているが，３番目までのコマンド列で分類するなどの設計は任意である。
【０１５４】
最大コマンド数は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の過去の入出力処理において，最大のＲｅａｄ系／Ｗｒｉｔｅ系コマンドの出現数である。平均コマンド数は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の過去の入出力処理における，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドの出現数の近似平均を示す。平均時間は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間の過去の入出力処理における，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドの１コマンド当たりの実行時間の近似平均を示す。
【０１５５】
図２０に示す取り外し予測情報１３３’において，最大コマンド数，平均コマンド数，平均時間の項目が，各ゲストＯＳ１２と各記憶装置１５との，各コマンド列のコマンドパターンにおける，過去の入出力処理の実行時間の実績が蓄積される項目である。なお，図２０に示す取り外し予測情報１３３’において，最大コマンド数，平均コマンド数，平均時間の項目が“不明”となっているゲストＯＳ１２と記憶装置１５との組み合わせについては，過去に入出力処理の実績がないことを示している。
【０１５６】
現在のコマンド数は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間で入出力処理が実行中である場合に，その時点までに検出されているＲｅａｄ系／Ｗｒｉｔｅ系コマンドの数を示す。開始時刻は，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間で入出力処理が実行中である場合に，その入出力処理の開始時刻を示す。
【０１５７】
なお，ゲストＩＤ“＃０１”のゲストＯＳ１２以外のゲストＯＳ１２についての取り外し予測情報１３３’の構成も，図５に示すゲストＩＤ“＃０１”のゲストＯＳ１２のものと同様の構成である。
【０１５８】
本実施の形態２において，ホスト側制御部１１０の動作は，上述の実施の形態１における動作と同様である。例えば，本実施の形態２において，ホスト側制御部１１０による処理の例は，上述の実施の形態１と同様に，図９〜図１３のフローチャートに示すものとなる。
【０１５９】
本実施の形態２において，ゲスト側制御部１２０の動作は，一部Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドに対する処理の部分以外は，上述の実施の形態１における動作と同様である。例えば，本実施の形態２において，ゲスト側制御部１２０による処理の例は，図１４に示すフローチャート以外については，上述の実施の形態１と同様に，図１５，図１６のフローチャートに示すものとなる。
【０１６０】
図２１は，本実施の形態のゲスト側制御部によるＩＯ命令受け付け時の処理フローチャート（２）である。
【０１６１】
図２１に示すように，本実施の形態２のゲスト側制御部１２０によるＩＯ命令受け付け時の処理では，リザーブコマンド／リリースコマンド検出時の処理（ステップＳ６０〜６８）については，図１４に示すフローチャートと同様である。図１４に示すフローチャートと異なる部分のみを説明する。
【０１６２】
リザーブコマンドが検出されなければ（ステップＳ６３のＮＯ），ＩＯ命令解析制御部１２２は，ＩＯ命令の解析の結果，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドが検出されたかを判定する（ステップＳ１２０）。Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドが検出されれば（ステップＳ１２０のＹＥＳ），ゲスト側制御部１２０は，予測制御部１３０に，ゲストＩＤと装置番号とを指定して，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドを通知する（ステップＳ１２１）。ゲスト側制御部１２０は，ＩＯ命令制御部１７に入出力処理の実行を通知する。ＩＯ命令制御部１７は，ＩＯ命令に従った入出力処理を実行する（ステップＳ６８）。
【０１６３】
本実施の形態２において，予測制御部１３０の動作は，取り外し抑止開始通知受け付け時の動作以外は，上述の実施の形態１における動作と異なる。例えば，本実施の形態２において，予測制御部１３０による処理の例は，図１７に示すフローチャートのみが，上述の実施の形態１と同様になる。
【０１６４】
図２２は，本実施の形態の予測制御部によるＲｅａｄ系／Ｗｒｉｔｅ系コマンドの通知受け付け時の処理フローチャートである。
【０１６５】
予測制御部１３０は，ゲスト側制御部１２０から，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドの通知を受け付ける（ステップＳ１３０）。Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドの通知では，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３’にアクセスする（ステップＳ１３１）。
【０１６６】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における現在のコマンド数が２以上のコマンド列があるかを判定する（ステップＳ１３２）。
【０１６７】
現在のコマンド数が２以上のコマンド列があれば（ステップＳ１３２のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，現在のコマンド数が２以上のコマンド列にアクセスする（ステップＳ１３３）。予測部１３１は，該当コマンド列の現在のコマンド数を＋１する（ステップＳ１３４）。
【０１６８】
現在のコマンド数が２以上のコマンド列がなければ（ステップＳ１３２のＮＯ），予測部１３１は，現在のコマンド数が１であるコマンド列があるかを判定する（ステップＳ１３５）。
【０１６９】
現在のコマンド数が１のコマンド列がなければ（ステップＳ１３５のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号において，１つ目のコマンドが今回の通知で受け付けたＲｅａｄ系／Ｗｒｉｔｅ系コマンドと一致するコマンド列の，現在のコマンド数を１にする（ステップＳ１３６）。リザーブコマンド後の最初のＲｅａｄ系／Ｗｒｉｔｅ系コマンドだけでは，コマンド列を限定することができない。この段階では，予測部１３１は，１つ目のコマンドが一致する２つのコマンド列の現在のコマンド数を，両方１にしておく。
【０１７０】
現在のコマンド数が１のコマンド列があれば（ステップＳ１３５のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，現在のコマンド数が１のコマンド列にアクセスする（ステップＳ１３７）。予測部１３１は，２つ目のコマンドが今回の通知で受け付けたＲｅａｄ系／Ｗｒｉｔｅ系コマンドと一致する方のコマンド列の，現在のコマンド数を＋１する（ステップＳ１３８）。予測部１３１は，２つ目のコマンドが今回の通知で受け付けたＲｅａｄ系／Ｗｒｉｔｅ系コマンドと一致しなかった方のコマンド列の，現在のコマンド数を０にする（ステップＳ１３９）。リザーブコマンド後の２つ目のＲｅａｄ系／Ｗｒｉｔｅ系コマンドで，コマンド列を限定することができる。
【０１７１】
本実施の形態２では，一連の入出力処理の実行中にＲｅａｄ系／Ｗｒｉｔｅ系コマンドが検出されるたびに，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号，該当コマンド列における現在のコマンド数が加算されていく。
【０１７２】
図２３は，本実施の形態の予測制御部による取り外し抑止終了通知受け付け時の処理フローチャート（２）である。
【０１７３】
予測制御部１３０は，ゲスト側制御部１２０から，取り外し抑止終了通知を受け付ける（ステップＳ１４０）。取り外し抑止終了通知では，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３’にアクセスする（ステップＳ１４１）。
【０１７４】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における現在のコマンド数が２以上のコマンド列があるかを判定する（ステップＳ１４２）。現在のコマンド数が２以上のコマンド列があれば（ステップＳ１４２のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，現在のコマンド数が２以上のコマンド列にアクセスする（ステップＳ１４３）。
【０１７５】
現在のコマンド数が２以上のコマンド列がなければ（ステップＳ１４２のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における現在のコマンド数が１のコマンド列があるかを判定する（ステップＳ１４４）。現在のコマンド数が１のコマンド列があれば（ステップＳ１４４のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，平均コマンド数×平均時間が最大の，現在のコマンド数が１のコマンド列にアクセスする（ステップＳ１４５）。
【０１７６】
現在のコマンド数が１のコマンド列がなければ（ステップＳ１４４のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号において，すべてのコマンド列のうち，平均コマンド数×平均時間が最大のコマンド列にアクセスする（ステップＳ１４６）。
【０１７７】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における開始時刻と，現在の時刻とから，経過時間を算出する（ステップＳ１４７）。経過時間は，現在の時刻から開始時刻を差し引くことにより求められる。取り外し予測情報１３３’の開始時刻は，ゲストＯＳ１２からリザーブコマンドが発行された時刻，すなわちゲストＯＳ１２と記憶装置１５との間での入出力処理が開始された時刻である。取り外し抑止終了通知を受け付けた時点における現在の時刻は，ゲストＯＳ１２からリリースコマンドが発行された時刻，すなわちゲストＯＳ１２と記憶装置１５との間での入出力処理が終了した時刻である。ここで求められる経過時間は，ゲストＯＳ１２と記憶装置１５との間での入出力処理の実行時間となる。
【０１７８】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における平均時間に経過時間を現在のコマンド数で割ったものを足して２で割った値で，該当ゲストＩＤ，該当装置番号における平均時間を更新する（ステップＳ１４８）。ここでは，平均時間として，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間での入出力処理について，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンド１コマンド当たりの過去の実行時間の近似平均が求められている。
【０１７９】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における平均コマンド数に現在のコマンド数を足して２で割った値で，該当ゲストＩＤ，該当装置番号における平均コマンド数を更新する（ステップＳ１４９）。ここでは，平均コマンド数として，該当ゲストＩＤのゲストＯＳ１２と該当装置番号の記憶装置１５との間での入出力処理について，Ｒｅａｄ系／Ｗｒｉｔｅ系コマンドの数の近似平均が求められている。
【０１８０】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における最大コマンド数より，現在のコマンド数が大きいかを判定する（ステップＳ１５０）。最大コマンド数より現在のコマンド数の方が大きい場合には（ステップＳ１５０のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における最大コマンド数を，現在のコマンド数で更新する（ステップＳ１５１）。
【０１８１】
このように，本実施の形態２では，取り外し予測情報１３３’に，各ゲストＯＳ１２と各記憶装置１５との間での入出力処理における，コマンドの実行パターンごとの最大コマンド数，平均コマンド数，平均時間等の実績が蓄積される。
【０１８２】
図２４は，本実施の形態の予測制御部による取り外し予測時間問い合わせ受け付け時の処理フローチャート（２）である。
【０１８３】
予測制御部１３０は，ホスト側制御部１１０から，取り外し予測時間の問い合わせを受け付ける（ステップＳ１６０）。取り外し予測時間の問い合わせでは，対象のゲストＯＳ１２と記憶装置１５とが，それぞれゲストＩＤと装置番号とで指定されている。予測部１３１は，対象のゲストＯＳ１２のゲストＩＤと記憶装置１５の装置番号とで，取り外し予測情報１３３’にアクセスする（ステップＳ１６１）。
【０１８４】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における現在のコマンド数が２以上のコマンド列があるかを判定する（ステップＳ１６２）。現在のコマンド数が２以上のコマンド列があれば（ステップＳ１６２のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，現在のコマンド数が２以上のコマンド列にアクセスする（ステップＳ１６３）。
【０１８５】
現在のコマンド数が２以上のコマンド列がなければ（ステップＳ１６２のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における現在のコマンド数が１のコマンド列があるかを判定する（ステップＳ１６４）。現在のコマンド数が１のコマンド列があれば（ステップＳ１６４のＹＥＳ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，平均コマンド数×平均時間が最大の，現在のコマンド数が１のコマンド列にアクセスする（ステップＳ１６５）。
【０１８６】
現在のコマンド数が１のコマンド列がなければ（ステップＳ１６４のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号において，すべてのコマンド列のうち，平均コマンド数×平均時間が最大のコマンド列にアクセスする（ステップＳ１６６）。
【０１８７】
予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における開始時刻と，現在の時刻とから，経過時間を算出する（ステップＳ１６７）。経過時間は，現在の時刻から開始時刻を差し引くことにより求められる。ここで求められる経過時間は，実行中であるゲストＯＳ１２と記憶装置１５との間での入出力処理の開始時刻から，ホストＯＳ１１から取り外し要求を受けた時刻までの経過時間である。
【０１８８】
予測部１３１は，経過時間が，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における，最大コマンド数×平均時間の２倍以上かを判定する（ステップＳ１６８）。
【０１８９】
経過時間が最大コマンド数×平均時間の２倍以上であれば（ステップＳ１６８のＹＥＳ），予測部１３１は，異常と判断し，取り外し予測時間の問い合わせに対する応答として，ホスト側制御部１１０に異常を通知する（ステップＳ１６９）。入出力処理が開始されてからの経過時間が，過去の入出力処理の実行時間の実績から予測される範囲の時間を大きく超えている場合には，入出力処理に何らかの異常が発生している可能性がある。なお，ここでは，最大コマンド数×平均時間を基準として，その２倍以上の時間が入出力処理の開始から経過していることを条件に，異常の判断を行っているが，異常を判断する基準の時間や，その基準時間に基づいた異常判定の条件などは，任意の設計が可能である。
【０１９０】
経過時間が最大コマンド数×平均時間の２倍以上でなければ（ステップＳ１６８のＮＯ），予測部１３１は，取り外し予測情報１３３’の該当ゲストＩＤ，該当装置番号における平均コマンド数×平均時間と，最大コマンド数×平均時間とから，それぞれ経過時間を差し引いた時間を求める（ステップＳ１７０）。平均コマンド数×平均時間から経過時間を差し引いて得られる予測平均時間は，実行中の入出力処理が終了するまでの平均的な時間の予測を示す。最大コマンド数×平均時間から経過時間を差し引いて得られる予測最大時間は，実行中の入出力処理が終了するまでの過去の最大時間を示す。ここでは，求めた２つの時間を取り外し予測時間とする。
【０１９１】
予測部１３１は，問い合わせに対する応答として，ホスト側制御部１１０に，取り外し予測時間の情報を通知する（ステップＳ１７１）。
【０１９２】
同じゲストＯＳ１２と同じ記憶装置１５との間での入出力処理では，いくつかの決まったコマンドの実行パターンの処理が繰り返し実行されるケースも多い。本実施の形態２で説明したように，予測制御部１３０において，さらにコマンドの実行パターンで分類した単位で蓄積した過去の入出力処理の実行時間の実績から，入出力処理の終了までの時間の予測を行うことで，より精度が高い予測が可能となる。これにより，ホストＯＳ１１の操作者は，より正確な取り外し完了までの予測時間の情報に基づいて，強制的な取り外しを指示するか否かの判断が可能となる。
【０１９３】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【符号の説明】
【０１９４】
１０  仮想計算機システム
１１  ホストＯＳ
１２  ゲストＯＳ
１３  チャネル制御部
１４  チャネル
１５  記憶装置
１６  取り外し実行制御部
１７  ＩＯ命令制御部
１００  取り外し制御部
１１０  ホスト側制御部
１１１  受付部
１１２  判断部
１１３  通知部
１１４  取り外し抑止制御部
１１５  取り外し抑止情報記憶部
１２０  ゲスト側制御部
１２１  ＩＯ命令受付部
１２２  ＩＯ命令解析制御部
１２３  取り外し状況管理部
１２４  取り外し状況情報記憶部
１３０  予測制御部
１３１  予測部
１３２  予測情報記憶部
【図１】
0005699886.tif 000002
【図２】
0005699886.tif 000003
【図３】
0005699886.tif 000004
【図４】
0005699886.tif 000005
【図５】
0005699886.tif 000006
【図６】
0005699886.tif 000007
【図７】
0005699886.tif 000008
【図８】
0005699886.tif 000009
【図９】
0005699886.tif 000010
【図１０】
0005699886.tif 000011
【図１１】
0005699886.tif 000012
【図１２】
0005699886.tif 000013
【図１３】
0005699886.tif 000014
【図１４】
0005699886.tif 000015
【図１５】
0005699886.tif 000016
【図１６】
0005699886.tif 000017
【図１７】
0005699886.tif 000018
【図１８】
0005699886.tif 000019
【図１９】
0005699886.tif 000020
【図２０】
0005699886.tif 000021
【図２１】
0005699886.tif 000022
【図２２】
0005699886.tif 000023
【図２３】
0005699886.tif 000024
【図２４】
0005699886.tif 000025