WO2017056208A1 - リクエスト実行順序制御方式 - Google Patents
リクエスト実行順序制御方式 Download PDFInfo
- Publication number
- WO2017056208A1 WO2017056208A1 PCT/JP2015/077642 JP2015077642W WO2017056208A1 WO 2017056208 A1 WO2017056208 A1 WO 2017056208A1 JP 2015077642 W JP2015077642 W JP 2015077642W WO 2017056208 A1 WO2017056208 A1 WO 2017056208A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- request
- task
- time
- execution
- executed
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
複数のタスクが多重実行され、タスクの延長で複数のリクエストが実行される情報システムにおいて、リクエストを受け付けるプログラムが、リクエストのタイムアウト要件及び実行時間と、リクエストと、リクエストが発行される元になったタスクとの関連を管理し、プログラムがタスクの延長で多数のリクエストを受け付けた場合に、リクエストのタイムアウト要件と、各リクエストの元になったタスクとの関連を特定し、リクエスト発行もとのプログラムにおけるタスクの実行順序と各リクエストのタイムアウト要件に従って、タイムアウトをできるだけ抑止するようにリクエスト実行順を制御する。
Description
本発明は、複数のプログラムが連携して一つの機能を提供するシステムにおいて、上位プログラムの操作が多重実行されたときに、下位プログラムの処理順序を制御する方法に関する。
クラウドのようなコンピューティングリソースが仮想化されてユーザに提供される環境では、ユーザはクラウド内の物理リソースの状態や制御情報を直接意識せずに、仮想マシンやアプリケーションを利用するのが一般的である。例えば、仮想マシンを作成したときに、バックグラウンドでどのコンピューティングリソースに対して、どのような命令が実行されているかはわからない。
このとき、ユーザが複数の操作を多重実行すると、それらの操作の延長で発行される処理要求が互いに影響しあい、ユーザの意図に反してある操作がタイムアウトして失敗する場合がある。例えば、仮想マシン1を作成中に、さらに追加操作で仮想マシン2を作成したときに、仮想マシン1の作成操作が仮想マシン2の操作に割り込まれて、仮想マシン1の作成に失敗して仮想マシン2の作成に成功するようなケースがある。
以上の状況に関して、特許文献1記載の技術では、個々の仮想マシン毎に行われるアクセスの優先度制御等の処理指定を、仮想マシンにタグ付けして優先度を管理することで、多くの仮想マシンが存在するシステムでも、ストレージの大きな負担、例えばメモリ所要量の増加や処理負荷の増大無しに実現する。
また、特許文献2記載の技術では、仮想マシンの移動順を制御することにより、特定の仮想ホストに一時的に集中して負荷が上昇することを有効に回避する方法について述べられている。
しかしながら、特許文献1や特許文献2に記載されている技術では、仮想マシンに対する操作の優先度は判定できるが、その操作に付随してバックグラウンドで実行されている処理の優先度は考慮されていない。そのため、ある仮想マシンの操作の完了を待ってから次の操作に移るように制御することしかできず、多重時実行可能な処理であっても仮想マシン操作のトータルの実行時間が延びる場合がある。さらに、タイムアウトが短く設定されているような操作の場合には、優先度順に常に実行してしまうと、後半に実行される操作ほどタイムアウトまでの猶予が短くエラーが発生するリスク増大し、ユーザの利便性低下を招く。
また、ユーザはバックグラウンドの処理を直接意識することではできないため、ユーザから見える仮想マシンや仮想マシンに対する操作の情報のみだけでは、内部処理に待たされてタイムアウトが発生するというように、同様の問題が発生する場合がある。
本発明は、上記の課題に鑑みてなされたものであり、複数のプログラムが階層的に呼び出されて一つの機能を提供するシステムにおいて、上位プログラムの操作が大量に多重実行され下位プログラムがバックグラウンドで呼び出される状況において、ユーザが下位レイヤのプログラムの動作を直接意識することなく、上位プログラムの操作性を向上しうる下位プログラムの制御方法を提供することを目的とする。
上記の目的を達成するため、本発明は、複数のタスクが多重実行され、タスクの延長で複数のリクエストが実行される情報システムにおいて、リクエストを受け付けるプログラムが、リクエストのタイムアウト要件及び実行時間と、リクエストと、リクエストが発行される元になったタスクとの関連を管理し、プログラムがタスクの延長で多数のリクエストを受け付けた場合に、リクエストのタイムアウト要件と、各リクエストの元になったタスクとの関連を特定し、リクエスト発行もとのプログラムにおけるタスクの実行順序と各リクエストのタイムアウト要件に従って、タイムアウトをできるだけ抑止するようにリクエスト実行順を制御することで実現する。
本発明によれば、ユーザが直接操作するプログラムとバックグラウンドで処理を実行するプログラムの操作単位が異なる環境において、ユーザは下位プログラムの処理状態を意識することなく、上位プログラムの操作を円滑に行うことが可能になり、ユーザの利便性が向上する。
以下、図面を用いて本発明の実施形態につき詳細に説明する。なお、各図に示す同一の符号は同一の機能または構成を有することを示しているため、重複した説明は省略する。
図1は、本発明の基本動作を示す図である。図1を用いて、リクエストのタイムアウト要件を考慮せず優先制御しないで各タスクを処理した場合(リクエスト優勢制御なし101)と、リクエストのタイムアウト要件を考慮して優先制御した場合(リクエスト優勢制御あり102)の振る舞いの違いと効果を説明する。
プログラム間やプログラム内で実行される処理は、ある処理の延長で複数の処理がさらに呼ばれる階層構造を取る。例えば、仮想化環境を管理している管理者が、仮想マシンの操作を行うとその要求を受け取ったプログラムは、その操作に必要な複数のAPIを順次実行する場合である。本実施例では、このユーザ操作やユーザ操作を提供している機能にあたる上位の処理をタスク、ユーザ操作や機能を実行した延長で実行される下位の処理をリクエストと定義する。各タスクは一つ以上のリクエストから構成され、タスクとリクエストはタイムアウトの要件がある。
プログラム間やプログラム内で実行される処理は、ある処理の延長で複数の処理がさらに呼ばれる階層構造を取る。例えば、仮想化環境を管理している管理者が、仮想マシンの操作を行うとその要求を受け取ったプログラムは、その操作に必要な複数のAPIを順次実行する場合である。本実施例では、このユーザ操作やユーザ操作を提供している機能にあたる上位の処理をタスク、ユーザ操作や機能を実行した延長で実行される下位の処理をリクエストと定義する。各タスクは一つ以上のリクエストから構成され、タスクとリクエストはタイムアウトの要件がある。
図1は、タスク1が実行されると、そのバックグラウンドでは、リクエスト1-1、リクエスト1-2、リクエスト1-3が順に実行されてタスク1が完了する例である。タスク2も同様に、リクエスト2-1、リクエスト2-2が順に実行され、タスク3はリクエスト3-1のみ実行される。図中の実線部分はリクエストがシステム内で実行中であることを示し、図中の点線部分はシステムがリクエストを受け付けているものの、他のリクエストが実行中のためそのリクエストが待たされていることを示す。
リクエスト優勢制御なし101の例では、時刻t0にタスク1が実行され、その延長でリクエスト1-1、リクエスト1-2が順に実行されており、リクエスト1-2実行中にタスク2、タスク3が実行され、リクエスト2-1、リクエスト3-1がリクエスト1-2の実行完了待ちの状態である。その後、リクエスト1-2が完了すると(t2)、待機中のリクエスト2-1が実行され、それが完了すると(t3)、リクエスト3-1が実行される。そしてリクエスト3-1が完了すると待機中のリクエスト1-3が実行される(t4)。このとき、リクエスト1-3は、リクエスト1-2が完了した後に実行開始しているものの、リクエスト2-1とリクエスト3-1の実行完了待ちのため待たされており、実行途中でタイムアウト要件を超えてリクエスト1-3がタイムアウトでエラー終了し(t5)、タスク1が失敗する。その後リクエスト2-2が実行されタスク2は完了する。この結果、タスクを実行したユーザから見ると、最初に投入したタスク1の進捗がある程度あったにもかかわらずタイムアウトが起きて失敗し、その後に投入されたタスクが成功するという現象が生じることになる。
一方、リクエスト優先制御あり102の場合は、リクエスト2-1実行完了(t3)までは同様の動きになるが、リクエスト2-1の実行が完了した時点(t3)で、待機中の各リクエスト、この場合はリクエスト1-3とリクエスト3-1のタイムアウト要件をチェックすることにより、リクエスト3-1を先に実行することでリクエスト1-3がタイムアウトしてしまう場合には、最初に実行されたタスクを優先して、リクエストの実行順序を入れ替えてリクエスト1-3を先に実行する。これにより、先行実行されているタスク1はタイムアウトせずに処理が完了する。
これにより、タスクが並列実行された場合でもタスク間のタイムアウト要件をもとにタスクの実行順序が制御され、タイムアウトの発生を抑止することが可能になり、多数の操作が並列に実行される環境下において、ユーザの利便性が向上される。
(第1の実施形態)
<システム構成>
以下、図2から図10を用いて本発明の第1の実施例を詳細に説明する。なお、各図に示す同一の符号は同一の機能または構成を有するため、重複した符号の説明は省略する。
図2は、本発明の第1の実施例に係る計算機システムのブロック図である。計算機システムは、ホスト計算機1、ストレージシステム2、管理計算機3、管理ネットワーク4、データネットワーク5、管理端末6で構成される。
ホスト計算機1は、メモリ10、ホスト制御プログラム11、入出力装置12、CPU13、ストレージ14、管理インターフェース15、データインタフェース16で構成される。ホスト制御プログラム11は、ホスト計算機を制御するプログラムであり、本実施例では、仮想マシンを制御するハイパーバイザがホスト制御プログラム11に相当する。ホスト制御プログラム11は、ストレージ14に格納されたプログラムをCPU13が読み出し、メモリ10上で実行されることにより実現されるものである。ホスト制御プログラム11はあらかじめホスト計算機1内のストレージ14に格納されていてもよいし、必要なときに入出力装置12やデータインタフェース16を経由してロードさストレージ14に格納されてもよい。管理インターフェース25は、ホスト計算機1を制御するための管理データを送受信するためのインターフェースである。データインタフェース16は、ホスト計算機上で動作するプログラムが他のホスト計算機1やストレージ装置2とデータを送受信するためのインターフェースである。ストレージ装置2、管理計算機3、管理端末6も同様のコンポーネントを有するため差異部分のみ説明する。
ストレージシステム2は、メモリ20、ストレージ制御プログラム21、CPU22、ディスク23、論理ボリューム24、管理インターフェース25、データインタフェース26で構成される。ストレージ制御プログラム21は、ストレージの構成変更やデータのレプリケーション、データの重複排除などのストレージ機能を提供するプログラムであり、CPU22がメモリ20上で実行する。論理ボリューム24は、データインタフェース26を通してホスト計算機1に提供されるデータ格納領域であり、ストレージ制御プログラム21が一つ以上のディスク23から仮想的に切り出して作成される。ディスク23はHDDやSSDのような記憶領域である。それ以外の要素はホスト計算機1と同様のため説明を省略する。
管理計算機3は、ホスト計算機1と同様の構成を取り、ホスト制御プログラム11の変わりホスト管理プログラム31、ストレージ管理プログラム32が動作する。 図では別々の物理計算機にそれぞれのプログラムが搭載されているが、1つの物理計算機に搭載されてもよい。
リクエスト優勢制御なし101の例では、時刻t0にタスク1が実行され、その延長でリクエスト1-1、リクエスト1-2が順に実行されており、リクエスト1-2実行中にタスク2、タスク3が実行され、リクエスト2-1、リクエスト3-1がリクエスト1-2の実行完了待ちの状態である。その後、リクエスト1-2が完了すると(t2)、待機中のリクエスト2-1が実行され、それが完了すると(t3)、リクエスト3-1が実行される。そしてリクエスト3-1が完了すると待機中のリクエスト1-3が実行される(t4)。このとき、リクエスト1-3は、リクエスト1-2が完了した後に実行開始しているものの、リクエスト2-1とリクエスト3-1の実行完了待ちのため待たされており、実行途中でタイムアウト要件を超えてリクエスト1-3がタイムアウトでエラー終了し(t5)、タスク1が失敗する。その後リクエスト2-2が実行されタスク2は完了する。この結果、タスクを実行したユーザから見ると、最初に投入したタスク1の進捗がある程度あったにもかかわらずタイムアウトが起きて失敗し、その後に投入されたタスクが成功するという現象が生じることになる。
一方、リクエスト優先制御あり102の場合は、リクエスト2-1実行完了(t3)までは同様の動きになるが、リクエスト2-1の実行が完了した時点(t3)で、待機中の各リクエスト、この場合はリクエスト1-3とリクエスト3-1のタイムアウト要件をチェックすることにより、リクエスト3-1を先に実行することでリクエスト1-3がタイムアウトしてしまう場合には、最初に実行されたタスクを優先して、リクエストの実行順序を入れ替えてリクエスト1-3を先に実行する。これにより、先行実行されているタスク1はタイムアウトせずに処理が完了する。
これにより、タスクが並列実行された場合でもタスク間のタイムアウト要件をもとにタスクの実行順序が制御され、タイムアウトの発生を抑止することが可能になり、多数の操作が並列に実行される環境下において、ユーザの利便性が向上される。
(第1の実施形態)
<システム構成>
以下、図2から図10を用いて本発明の第1の実施例を詳細に説明する。なお、各図に示す同一の符号は同一の機能または構成を有するため、重複した符号の説明は省略する。
図2は、本発明の第1の実施例に係る計算機システムのブロック図である。計算機システムは、ホスト計算機1、ストレージシステム2、管理計算機3、管理ネットワーク4、データネットワーク5、管理端末6で構成される。
ホスト計算機1は、メモリ10、ホスト制御プログラム11、入出力装置12、CPU13、ストレージ14、管理インターフェース15、データインタフェース16で構成される。ホスト制御プログラム11は、ホスト計算機を制御するプログラムであり、本実施例では、仮想マシンを制御するハイパーバイザがホスト制御プログラム11に相当する。ホスト制御プログラム11は、ストレージ14に格納されたプログラムをCPU13が読み出し、メモリ10上で実行されることにより実現されるものである。ホスト制御プログラム11はあらかじめホスト計算機1内のストレージ14に格納されていてもよいし、必要なときに入出力装置12やデータインタフェース16を経由してロードさストレージ14に格納されてもよい。管理インターフェース25は、ホスト計算機1を制御するための管理データを送受信するためのインターフェースである。データインタフェース16は、ホスト計算機上で動作するプログラムが他のホスト計算機1やストレージ装置2とデータを送受信するためのインターフェースである。ストレージ装置2、管理計算機3、管理端末6も同様のコンポーネントを有するため差異部分のみ説明する。
ストレージシステム2は、メモリ20、ストレージ制御プログラム21、CPU22、ディスク23、論理ボリューム24、管理インターフェース25、データインタフェース26で構成される。ストレージ制御プログラム21は、ストレージの構成変更やデータのレプリケーション、データの重複排除などのストレージ機能を提供するプログラムであり、CPU22がメモリ20上で実行する。論理ボリューム24は、データインタフェース26を通してホスト計算機1に提供されるデータ格納領域であり、ストレージ制御プログラム21が一つ以上のディスク23から仮想的に切り出して作成される。ディスク23はHDDやSSDのような記憶領域である。それ以外の要素はホスト計算機1と同様のため説明を省略する。
管理計算機3は、ホスト計算機1と同様の構成を取り、ホスト制御プログラム11の変わりホスト管理プログラム31、ストレージ管理プログラム32が動作する。 図では別々の物理計算機にそれぞれのプログラムが搭載されているが、1つの物理計算機に搭載されてもよい。
ホスト管理プログラム31は、管理インターフェース61やストレージ管理プログラム32からの要求に伴い、ホスト計算機1で動作するホスト制御プログラム11に対してホストを操作する命令を出す。本実施例では、ホスト管理プログラム31は、仮想化環境のハイパーバイザを管理するプログラムに相当し、ホスト制御プログラム1に対する命令としては、VM作成、VM起動、VM複製、VMのスナップショット作成などがある。
ストレージ管理プログラム32は、管理インターフェース61やホスト管理プログラム31からの要求に伴い、ストレージ装置2で動作するストレージ制御プログラム21に対してストレージを操作する命令を出す。ストレージ制御プログラム21に対する命令としては、論理ボリューム24の作成、論理ボリューム24のホスト計算機1への割り当て、論理ボリューム24の複製、ホスト計算機1からストレージ装置2にデータが転送に関するQoSの設定、データ暗号化の設定切り替え、重複排除の切り替えなどがある。
管理端末6は、ホスト計算機1と同様の構成を取り、管理インターフェース61が動作する。管理インターフェース61は、ホスト管理プログラム31、ストレージ管理プログラム32を通して、ホスト計算機1とストレージ装置2を制御するためのユーザーインタフェースを提供するプログラムである。
管理ネットワーク4は、管理用のネットワークである。ホスト管理プログラム31、ストレージ管理プログラム32、管理インターフェース61、ホスト制御プログラム11、ストレージ制御プログラム21の間でホスト計算機1やストレージ装置2を制御するためのデータやその実行結果に関するデータが流れる。
データネットワーク5は、SANのようなデータ転送用のネットワークである。ホスト計算機1がストレージ装置2の論理ボリューム24に対して、データの読み書きを実行する際のデータが流れる。図2では、管理操作に伴う各プログラム間のデータ送受信が、ホスト計算機とストレージ装置間のデータの読み書き性能に影響を与えるのを防ぐため管理ネットワーク4とは独立しているが、同一のネットワーク構成でもよい。
次に、図3を用いて第1の実施例における管理計算機31上で動作するストレージ管理プログラム32の詳細構成と機能概要について説明する。ストレージ管理プログラム32は、リクエスト処理部33とストレージ制御部39で構成される。リクエスト処理部33は、さらに、タイムアウト管理部34、リクエスト登録部35、リクエスト実行制御部36、性能要件定義テーブルT1、タスク状態管理テーブルT2、タイムアウト管理テーブルT3で構成される。
リクエスト処理部33は、ストレージ管理プログラム32が、ホスト管理プログラム31や管理インターフェース61から受け付けたリクエストを処理するモジュールである。リクエストの受け付け、リクエストの実行、リクエストの実行結果の返却を行い、リクエストの種別に応じた処理を実行する。
タイムアウト管理部34は、リクエストのタイムアウトに関連する情報を管理するモジュールであり、性能要件定義テーブルT1のデータの登録、編集、参照、削除機能を提供する。管理端末上で動作する管理インターフェースを通してデータは操作される。
リクエスト登録部35は、ストレージ管理プログラム32が受け付けたリクエストをタスク状態管理テーブルT2に登録するモジュールである。受け付けたリクエストは一旦タスク状態管理テーブルT2に登録されてリクエスト実行順制御部によって適切なタイミングで実行される。
リクエスト実行制御部36は、性能要件定義テーブルT1に定義されているタイムアウト要件に基づいて、タスク状態管理テーブルT2に登録されているリクエストの実行順を制御し、リクエストを実行するモジュールである。リクエストの種別に応じてストレージ管理プログラム内で処理が完結し、そのままリクエスト処理部からレスポンスを返却する場合と、ストレージ装置2に対してストレージ操作を実行するためにストレージ制御部39を呼び出す場合がある。
性能要件定義テーブルT1は、ストレージ管理プログラム32が扱うリクエストの性能要件を定義するテーブルである。ここで定義されているタイムアウトの値や、各リクエストの実行時間の値をもとに、リクエスト実行順制御部36はリクエストの優先順を制御する。
タスク状態管理テーブルT2は、ストレージ管理プログラム32が受け付けたリクエストの実行状態を定義するテーブルである。このテーブルを参照することで、リクエストが実行中か待機中か、また、リクエストがどのタスクに属するかわかる。
タイムアウト管理テーブルT3は、ストレージ管理プログラム32が受け付けたリクエストがタイムアウトするまでの残り時間を管理するテーブルである。リクエスト実行順制御部36は、このテーブルを使い、各リクエストがタイムアウトするまでの残り時間を管理し、リクエストの実行順を制御する。
ストレージ制御部39は、リクエスト処理部33からの要求を受け、ストレージ装置2で動作するストレージ制御プログラム21に対し、ストレージ操作を実行するモジュールである。
以上が、本実施例の計算機システムの構成と、計算機システム内の管理計算機31上で動作するストレージ管理プログラムの構成概要である。
<データ構成>
図4は、第1の実施例における性能要件定義テーブルT1の例である。性能要件定義テーブルT1は、ストレージ管理プログラムが提供する各リクエストの性能要件と実行時間を定義するテーブルである。性能要件定義テーブルT1は、属性として、リクエスト101、タイムアウト102、実行時間103を持つ。
リクエスト101は、ストレージ管理プログラムが受信したリクエストを一意に識別する属性である。リクエスト101の値は、リクエスト名、または、パラメータを含んだリクエスト名が格納される。リクエスト名は、API名や内部処理の関数名などでもよい。また、同じリクエストでもパラメータによってタイムアウト要件や実行時間が変わるリクエストは、異なるリクエストとして定義される。テーブルT1の例では、ストレージ2に論理ボリューム24を作成するためのcreateVolumeリクエスト、論理ボリューム24をホスト計算機1に割り当てるallocateVolume、論理ボリューム24のスナップショット作成の事前処理を行うためのcreateSnapshotPair、スナップショットペアの作成を完了するためのsplitSnapshotPair、リクエストsplitSnapshotPairのタイムアウト要件が異なるsplitSnapshotPair(10)がそれぞれ定義されている。
タイムアウト102は、リクエストがタイムアウトする時間を示す属性である。タイムアウトの値は各リクエストの要件に応じて決定される。実行時間103は、リクエストの処理にかかる時間を示す属性である。実行時間103は、タイムアウトまでの残り時間を算出するために利用される。本実施例では、ストレージ管理者が定義するが、実際に実行したときにかかった時間を自動的に設定しても良い。
図4の1行目の例では、リクエストcreateVolumeはタイムアウト要件が60秒で処理に10秒かかることを表している。また、2行目の例では、リクエストcreateVolumeにパラメータarg1が指定された場合は、タイムアウトが20秒で実行時間が10秒であることを表している。
図5は、第1の実施例におけるタスク状態管理テーブルT2の例である。タスク状態管理テーブルT2は、ストレージ管理プログラム32が受信した各リクエストの実行状態を管理するテーブルであり、図5では、5個のリクエストを受け付けており、同時に実行可能なリクエストが1リクエストの場合の例である。タスク状態管理テーブルT2は、属性として、実行順201、ID202、リクエスト203、タスク204、対象205、ステータス206、受付時刻207を持つ。
実行順201は、リクエストを実行する順序を示す属性である。値が小さい順に実行されるが、リクエスト実行順制御部43によって実行順は適宜入れ替えられる。ID202は、ストレージ管理プログラム32内でリクエストを一意に識別するためのIDである。リクエスト203は、ストレージ管理プログラム32が受信して、実行中または待機中のリクエストを示す属性である。タスク204は、リクエストの元になったタスクを示す属性である。図6の例では、VMに対する操作を示す“VM操作”がタスクとして登録されている。対象205は、タスクの実行対象を示す属性である。VM操作の対象となるVMがVM1の場合は、“VM1”が登録される。ステータス206は、リクエストの状態を表す属性である。Runningは実行中、Waitingは待機中、Completedは完了を表す。完了になったタスクは一定時間後に削除される。受付時刻207は、リクエストを受け付けた時刻を示す属性である。タイムアウトの算出に使われる。本実施例では秒単位までの表記だが、ミリ秒など他の単位でも良い。
図5の1行目の例は、ストレージ管理プログラム32が、ホスト計算機1上でVM1に対する操作の延長で発行されたallocateVolumeリクエストを1015年6月20日10時00分00秒に受け付け、実行中であることを表している。また、2行目は、VM2の操作の延長で発行されたcreateVolumeリクエストを、その7秒後に受け付けて、実行開始を待機していることを表す。
図6は、第1の実施例におけるタイムアウト管理テーブルT3の例である。タイムアウト管理テーブルT3は、ストレージ管理プログラム32のリクエスト実行順制御部43が、各リクエストのタイムアウト状況を判定し、リクエストの実行順序を入れ替えるために使用するテーブルであり、タイムアウト管理テーブルT3は、属性として、ID301、リクエスト302、残り時間(実行前)303、残り時間(実行完了時)304、残り時間(先行リクエスト完了時)305を持つ。図6は、実行待機中のリクエストが4個あり、ID10001のcreateVolumeが完了した時刻10時00分10秒の時点の状態、つまり、ID10002のリクエストを受け付けてから3秒経過した状態の例である。
ID301は、リクエストを一意に識別するIDでタスク管理テーブルT2のID202に対応する。リクエスト302はリクエストを表す名称で、タスク管理テーブルT2のリクエスト203に対応する。
残り時間(実行前)303は、リクエストがタイムアウトするまでに残されている時間を示す属性である。この値が負の場合、タイムアウト計算時点でそのリクエストが既にタイムアウトしているということを意味する。ID10002のcreateVolumeを例に説明すると、性能要件定義テーブルT1のcreateVolumeのタイムアウトの値が60秒でリクエスト受付から3秒経過しているため57秒が設定される。
残り時間(実行完了時)304は、その行のリクエストが完了した時点でタイムアウトするまでに残されている時間を示す属性である。この値が負の場合、リクエストが実行中にタイムアウトすることを意味する。ID10002のcreateVolumeを例に説明すると、性能要件定義テーブルT1のcreateVolumeの実行時間属性103の値が10秒で、実行前の残り時間303が57秒のため、実行完了時の残り時間は47秒になる。
残り時間(先行リクエスト完了時)305は、待機中のリクエストの中で実行順序が先頭のリクエストを実行した場合の、先頭リクエスト完了時点のタイムアウトするまでに残されている時間を示す属性である。この値がマイナスの場合、実行待機中の先頭のリクエストを実行すると、その実行中にタイムアウトすることを意味する。ID10004のsplitSnapshotPair(10)を例に説明すると、実行前の残り時間が8秒で、待機中の先頭のリクエストのであるID10002のcreateVolumeの実行時間が10秒であるため、ID10002のcreateVolumeを実行すると-2秒になりタイムアウトすることがわかる。
<ユーザーインタフェース>
図7は、第1の実施例におけるストレージ管理プログラム32が処理する各リクエストの性能要件と実行時間を定義するリクエスト性能要件設定画面G1の例である。リクエスト性能要件設定画面G1は、管理インターフェース61の画面の一つである。
リクエスト性能要件設定画面G1のリクエスト701は、ストレージ管理プログラム32がサポートするリクエスト種別の一覧であり、性能要件定義テーブルT1のリクエスト属性101に対応する。同様に、タイムアウト702は、タイムアウト属性102に対応し、実行時間703は、実行時間属性103に対応する。性能要件定義テーブルT1に登録されている値が表示され、同様に、ここで設定した値は、性能要件定義テーブルT1に登録される。
<処理フロー>
図8は、第1の実施例におけるホスト制御プログラムがリクエストを発行するときの、各コンポーネント間の処理の関係を示すシーケンス図である。ホスト管理プログラム31でユーザがVM操作のタスクを実行すると、そのタスクがホスト制御プログラム11に通知され、そのタスクに応じた処理がホスト制御プログラム11で実行される。
ホスト制御プログラム11がストレージ管理プログラム32に対してリクエストを実行すると(S801)、リクエスト処理部35がそのリクエストは受け付けてリクエストをタスク状態管理テーブルT2に登録し(S802)、そのリクエストが実行可能になるまで待機させる(S803)。その後、実行中のリクエストが完了して待機中のリクエストが実行可能になったときに、待機中の全リクエストに対して実行順が制御されてから(S804)、リクエストが実行される(S805)。
リクエスト処理部35から要求を受け付けたストレージ制御部39は、そのリクエストをストレージ装置2上のストレージ制御プログラム21に対して要求し(S806)、実行結果を取得すると(S807)、リクエスト処理部35に結果を返す(S808)。
結果を受け取ったリクエスト処理部35は、ホスト制御プログラム11にリクエストの実行結果を返す。
ホスト制御プログラム11は結果を受け取ると(S809)、タスクを完了するかタスクに応じた次のリクエストを実行する(S810)。
本処理では、ホスト制御プログラム11がリクエストを送信しているが、ホスト管理プログラム31がタスク実行の延長で直接ストレージ管理プログラム32にリクエストを発行する構成を取っても良い。S802の処理の詳細を図9で、S804の処理の詳細を図10で、それぞれ説明する。
ストレージ管理プログラム32は、管理インターフェース61やホスト管理プログラム31からの要求に伴い、ストレージ装置2で動作するストレージ制御プログラム21に対してストレージを操作する命令を出す。ストレージ制御プログラム21に対する命令としては、論理ボリューム24の作成、論理ボリューム24のホスト計算機1への割り当て、論理ボリューム24の複製、ホスト計算機1からストレージ装置2にデータが転送に関するQoSの設定、データ暗号化の設定切り替え、重複排除の切り替えなどがある。
管理端末6は、ホスト計算機1と同様の構成を取り、管理インターフェース61が動作する。管理インターフェース61は、ホスト管理プログラム31、ストレージ管理プログラム32を通して、ホスト計算機1とストレージ装置2を制御するためのユーザーインタフェースを提供するプログラムである。
管理ネットワーク4は、管理用のネットワークである。ホスト管理プログラム31、ストレージ管理プログラム32、管理インターフェース61、ホスト制御プログラム11、ストレージ制御プログラム21の間でホスト計算機1やストレージ装置2を制御するためのデータやその実行結果に関するデータが流れる。
データネットワーク5は、SANのようなデータ転送用のネットワークである。ホスト計算機1がストレージ装置2の論理ボリューム24に対して、データの読み書きを実行する際のデータが流れる。図2では、管理操作に伴う各プログラム間のデータ送受信が、ホスト計算機とストレージ装置間のデータの読み書き性能に影響を与えるのを防ぐため管理ネットワーク4とは独立しているが、同一のネットワーク構成でもよい。
次に、図3を用いて第1の実施例における管理計算機31上で動作するストレージ管理プログラム32の詳細構成と機能概要について説明する。ストレージ管理プログラム32は、リクエスト処理部33とストレージ制御部39で構成される。リクエスト処理部33は、さらに、タイムアウト管理部34、リクエスト登録部35、リクエスト実行制御部36、性能要件定義テーブルT1、タスク状態管理テーブルT2、タイムアウト管理テーブルT3で構成される。
リクエスト処理部33は、ストレージ管理プログラム32が、ホスト管理プログラム31や管理インターフェース61から受け付けたリクエストを処理するモジュールである。リクエストの受け付け、リクエストの実行、リクエストの実行結果の返却を行い、リクエストの種別に応じた処理を実行する。
タイムアウト管理部34は、リクエストのタイムアウトに関連する情報を管理するモジュールであり、性能要件定義テーブルT1のデータの登録、編集、参照、削除機能を提供する。管理端末上で動作する管理インターフェースを通してデータは操作される。
リクエスト登録部35は、ストレージ管理プログラム32が受け付けたリクエストをタスク状態管理テーブルT2に登録するモジュールである。受け付けたリクエストは一旦タスク状態管理テーブルT2に登録されてリクエスト実行順制御部によって適切なタイミングで実行される。
リクエスト実行制御部36は、性能要件定義テーブルT1に定義されているタイムアウト要件に基づいて、タスク状態管理テーブルT2に登録されているリクエストの実行順を制御し、リクエストを実行するモジュールである。リクエストの種別に応じてストレージ管理プログラム内で処理が完結し、そのままリクエスト処理部からレスポンスを返却する場合と、ストレージ装置2に対してストレージ操作を実行するためにストレージ制御部39を呼び出す場合がある。
性能要件定義テーブルT1は、ストレージ管理プログラム32が扱うリクエストの性能要件を定義するテーブルである。ここで定義されているタイムアウトの値や、各リクエストの実行時間の値をもとに、リクエスト実行順制御部36はリクエストの優先順を制御する。
タスク状態管理テーブルT2は、ストレージ管理プログラム32が受け付けたリクエストの実行状態を定義するテーブルである。このテーブルを参照することで、リクエストが実行中か待機中か、また、リクエストがどのタスクに属するかわかる。
タイムアウト管理テーブルT3は、ストレージ管理プログラム32が受け付けたリクエストがタイムアウトするまでの残り時間を管理するテーブルである。リクエスト実行順制御部36は、このテーブルを使い、各リクエストがタイムアウトするまでの残り時間を管理し、リクエストの実行順を制御する。
ストレージ制御部39は、リクエスト処理部33からの要求を受け、ストレージ装置2で動作するストレージ制御プログラム21に対し、ストレージ操作を実行するモジュールである。
以上が、本実施例の計算機システムの構成と、計算機システム内の管理計算機31上で動作するストレージ管理プログラムの構成概要である。
<データ構成>
図4は、第1の実施例における性能要件定義テーブルT1の例である。性能要件定義テーブルT1は、ストレージ管理プログラムが提供する各リクエストの性能要件と実行時間を定義するテーブルである。性能要件定義テーブルT1は、属性として、リクエスト101、タイムアウト102、実行時間103を持つ。
リクエスト101は、ストレージ管理プログラムが受信したリクエストを一意に識別する属性である。リクエスト101の値は、リクエスト名、または、パラメータを含んだリクエスト名が格納される。リクエスト名は、API名や内部処理の関数名などでもよい。また、同じリクエストでもパラメータによってタイムアウト要件や実行時間が変わるリクエストは、異なるリクエストとして定義される。テーブルT1の例では、ストレージ2に論理ボリューム24を作成するためのcreateVolumeリクエスト、論理ボリューム24をホスト計算機1に割り当てるallocateVolume、論理ボリューム24のスナップショット作成の事前処理を行うためのcreateSnapshotPair、スナップショットペアの作成を完了するためのsplitSnapshotPair、リクエストsplitSnapshotPairのタイムアウト要件が異なるsplitSnapshotPair(10)がそれぞれ定義されている。
タイムアウト102は、リクエストがタイムアウトする時間を示す属性である。タイムアウトの値は各リクエストの要件に応じて決定される。実行時間103は、リクエストの処理にかかる時間を示す属性である。実行時間103は、タイムアウトまでの残り時間を算出するために利用される。本実施例では、ストレージ管理者が定義するが、実際に実行したときにかかった時間を自動的に設定しても良い。
図4の1行目の例では、リクエストcreateVolumeはタイムアウト要件が60秒で処理に10秒かかることを表している。また、2行目の例では、リクエストcreateVolumeにパラメータarg1が指定された場合は、タイムアウトが20秒で実行時間が10秒であることを表している。
図5は、第1の実施例におけるタスク状態管理テーブルT2の例である。タスク状態管理テーブルT2は、ストレージ管理プログラム32が受信した各リクエストの実行状態を管理するテーブルであり、図5では、5個のリクエストを受け付けており、同時に実行可能なリクエストが1リクエストの場合の例である。タスク状態管理テーブルT2は、属性として、実行順201、ID202、リクエスト203、タスク204、対象205、ステータス206、受付時刻207を持つ。
実行順201は、リクエストを実行する順序を示す属性である。値が小さい順に実行されるが、リクエスト実行順制御部43によって実行順は適宜入れ替えられる。ID202は、ストレージ管理プログラム32内でリクエストを一意に識別するためのIDである。リクエスト203は、ストレージ管理プログラム32が受信して、実行中または待機中のリクエストを示す属性である。タスク204は、リクエストの元になったタスクを示す属性である。図6の例では、VMに対する操作を示す“VM操作”がタスクとして登録されている。対象205は、タスクの実行対象を示す属性である。VM操作の対象となるVMがVM1の場合は、“VM1”が登録される。ステータス206は、リクエストの状態を表す属性である。Runningは実行中、Waitingは待機中、Completedは完了を表す。完了になったタスクは一定時間後に削除される。受付時刻207は、リクエストを受け付けた時刻を示す属性である。タイムアウトの算出に使われる。本実施例では秒単位までの表記だが、ミリ秒など他の単位でも良い。
図5の1行目の例は、ストレージ管理プログラム32が、ホスト計算機1上でVM1に対する操作の延長で発行されたallocateVolumeリクエストを1015年6月20日10時00分00秒に受け付け、実行中であることを表している。また、2行目は、VM2の操作の延長で発行されたcreateVolumeリクエストを、その7秒後に受け付けて、実行開始を待機していることを表す。
図6は、第1の実施例におけるタイムアウト管理テーブルT3の例である。タイムアウト管理テーブルT3は、ストレージ管理プログラム32のリクエスト実行順制御部43が、各リクエストのタイムアウト状況を判定し、リクエストの実行順序を入れ替えるために使用するテーブルであり、タイムアウト管理テーブルT3は、属性として、ID301、リクエスト302、残り時間(実行前)303、残り時間(実行完了時)304、残り時間(先行リクエスト完了時)305を持つ。図6は、実行待機中のリクエストが4個あり、ID10001のcreateVolumeが完了した時刻10時00分10秒の時点の状態、つまり、ID10002のリクエストを受け付けてから3秒経過した状態の例である。
ID301は、リクエストを一意に識別するIDでタスク管理テーブルT2のID202に対応する。リクエスト302はリクエストを表す名称で、タスク管理テーブルT2のリクエスト203に対応する。
残り時間(実行前)303は、リクエストがタイムアウトするまでに残されている時間を示す属性である。この値が負の場合、タイムアウト計算時点でそのリクエストが既にタイムアウトしているということを意味する。ID10002のcreateVolumeを例に説明すると、性能要件定義テーブルT1のcreateVolumeのタイムアウトの値が60秒でリクエスト受付から3秒経過しているため57秒が設定される。
残り時間(実行完了時)304は、その行のリクエストが完了した時点でタイムアウトするまでに残されている時間を示す属性である。この値が負の場合、リクエストが実行中にタイムアウトすることを意味する。ID10002のcreateVolumeを例に説明すると、性能要件定義テーブルT1のcreateVolumeの実行時間属性103の値が10秒で、実行前の残り時間303が57秒のため、実行完了時の残り時間は47秒になる。
残り時間(先行リクエスト完了時)305は、待機中のリクエストの中で実行順序が先頭のリクエストを実行した場合の、先頭リクエスト完了時点のタイムアウトするまでに残されている時間を示す属性である。この値がマイナスの場合、実行待機中の先頭のリクエストを実行すると、その実行中にタイムアウトすることを意味する。ID10004のsplitSnapshotPair(10)を例に説明すると、実行前の残り時間が8秒で、待機中の先頭のリクエストのであるID10002のcreateVolumeの実行時間が10秒であるため、ID10002のcreateVolumeを実行すると-2秒になりタイムアウトすることがわかる。
<ユーザーインタフェース>
図7は、第1の実施例におけるストレージ管理プログラム32が処理する各リクエストの性能要件と実行時間を定義するリクエスト性能要件設定画面G1の例である。リクエスト性能要件設定画面G1は、管理インターフェース61の画面の一つである。
リクエスト性能要件設定画面G1のリクエスト701は、ストレージ管理プログラム32がサポートするリクエスト種別の一覧であり、性能要件定義テーブルT1のリクエスト属性101に対応する。同様に、タイムアウト702は、タイムアウト属性102に対応し、実行時間703は、実行時間属性103に対応する。性能要件定義テーブルT1に登録されている値が表示され、同様に、ここで設定した値は、性能要件定義テーブルT1に登録される。
<処理フロー>
図8は、第1の実施例におけるホスト制御プログラムがリクエストを発行するときの、各コンポーネント間の処理の関係を示すシーケンス図である。ホスト管理プログラム31でユーザがVM操作のタスクを実行すると、そのタスクがホスト制御プログラム11に通知され、そのタスクに応じた処理がホスト制御プログラム11で実行される。
ホスト制御プログラム11がストレージ管理プログラム32に対してリクエストを実行すると(S801)、リクエスト処理部35がそのリクエストは受け付けてリクエストをタスク状態管理テーブルT2に登録し(S802)、そのリクエストが実行可能になるまで待機させる(S803)。その後、実行中のリクエストが完了して待機中のリクエストが実行可能になったときに、待機中の全リクエストに対して実行順が制御されてから(S804)、リクエストが実行される(S805)。
リクエスト処理部35から要求を受け付けたストレージ制御部39は、そのリクエストをストレージ装置2上のストレージ制御プログラム21に対して要求し(S806)、実行結果を取得すると(S807)、リクエスト処理部35に結果を返す(S808)。
結果を受け取ったリクエスト処理部35は、ホスト制御プログラム11にリクエストの実行結果を返す。
ホスト制御プログラム11は結果を受け取ると(S809)、タスクを完了するかタスクに応じた次のリクエストを実行する(S810)。
本処理では、ホスト制御プログラム11がリクエストを送信しているが、ホスト管理プログラム31がタスク実行の延長で直接ストレージ管理プログラム32にリクエストを発行する構成を取っても良い。S802の処理の詳細を図9で、S804の処理の詳細を図10で、それぞれ説明する。
図9は、第1の実施例におけるリクエスト登録処理の処理フローを示す図である。リクエスト処理部30が、ホスト制御プログラム11からリクエストを受け付けると、リクエストの情報をタスク状態管理テーブルT2に登録する。図9のリクエスト登録処理S902に該当する。本実施例では、リクエストはVM作成、起動などのVMに関連する操作の延長で発行されるリクエストで、リクエストは、そのリクエストの種類を決定するリクエスト名とパラメータを含み、パラメータにはどのVMに関連する操作か特定するための値が含まれるものを例として説明する。その値は、例えば、VM名やVMのUUID(Universally Unique IDentifier) である。
リクエスト処理部30が、ホスト制御プログラム11からリクエストを受け付けると(S901)、リクエスト処理部30はそのリクエストからリクエスト名、リクエストのパラメータを取り出す(S902)。リクエスト名とパラメータをもとに性能要件定義テーブルT1のリクエスト属性に定義されているリクエストを決定する(S903)。また、同じくリクエストのパラメータからリクエストが対象としているVMを特定し、どのVMに関連するタスクか決定する(S904)。本実施例では、タスクが“VM操作”、操作対象が<VM名>である。
対象VMとタスクを決定したら、次はそのタスクがタスク状態管理テーブルT2に登録済みかどうか確認する(S905)。対象属性205にタスクの実行対象と同じVMが含まれる場合に登録済みと判定する。
タスクが登録済みの場合(S905:YES)、その登録されているタスクのステータス属性206の値がRunningまたはWaitingのレコードしか無いならば(S905:No)、そのレコードの中で実行順201が最後のレコードの次に挿入する。このとき挿入した箇所より後のレコードの実行順は1増える。ステータス属性206の値がCompletedのレコードであれば、新しいIDを生成しそのレコードの実行順201以外の各属性を更新する(S906)。例えば、VM1操作に対するcreateVolumeリクエストのステータスがCompletedの場合、次にallocateVolumeリクエストがきた場合は、ID202に新しいIDを生成して設定し、リクエスト203に新しくきたリクエストであるallocatevolumeを設定し、ステータス206にWaitingを設定し、受付時刻207にallocatevolumeを受け付けた時刻を設定する。
リクエスト処理部30が、ホスト制御プログラム11からリクエストを受け付けると(S901)、リクエスト処理部30はそのリクエストからリクエスト名、リクエストのパラメータを取り出す(S902)。リクエスト名とパラメータをもとに性能要件定義テーブルT1のリクエスト属性に定義されているリクエストを決定する(S903)。また、同じくリクエストのパラメータからリクエストが対象としているVMを特定し、どのVMに関連するタスクか決定する(S904)。本実施例では、タスクが“VM操作”、操作対象が<VM名>である。
対象VMとタスクを決定したら、次はそのタスクがタスク状態管理テーブルT2に登録済みかどうか確認する(S905)。対象属性205にタスクの実行対象と同じVMが含まれる場合に登録済みと判定する。
タスクが登録済みの場合(S905:YES)、その登録されているタスクのステータス属性206の値がRunningまたはWaitingのレコードしか無いならば(S905:No)、そのレコードの中で実行順201が最後のレコードの次に挿入する。このとき挿入した箇所より後のレコードの実行順は1増える。ステータス属性206の値がCompletedのレコードであれば、新しいIDを生成しそのレコードの実行順201以外の各属性を更新する(S906)。例えば、VM1操作に対するcreateVolumeリクエストのステータスがCompletedの場合、次にallocateVolumeリクエストがきた場合は、ID202に新しいIDを生成して設定し、リクエスト203に新しくきたリクエストであるallocatevolumeを設定し、ステータス206にWaitingを設定し、受付時刻207にallocatevolumeを受け付けた時刻を設定する。
タスクが登録されていない場合(S905:No)、同様に新しいIDを生成し、タスク状態管理テーブルT2で実行順201の最大値+1の値を設定して新規レコードを追加する(S907)。タスクの有無によってリクエストの実行順を制御することにより、同一VM操作に関するリクエストを優先的に処理することが可能となる。
以上の処理により、リクエスト登録部42がリクエストをタスク状態管理テーブルT2に登録する処理が完了する。
図10は、第1の実施例におけるリクエスト実行順制御処理の処理フローを示す図である。リクエスト実行順制御部43が、リクエストの実行状態を監視しており、実行中のリクエストが完了して待機中の次のリクエストを実行するときに本処理が実行される。完了したリクエストは、リクエスト送信元にリクエストの実行結果が返却された後、タスク状態管理テーブルT2のステータス属性206をCompletedに変更し、Completedのまま一定時間経過すると、タスク状態管理テーブルT2から削除される。
まず、リクエスト実行順制御部43が呼び出されると、待機中の全リクエストに対して、リクエストがタイムアウトするまでの現在時刻からの残り時間t1を計算し、タイムアウト管理テーブルT3の残り時間(実行前)属性303を更新する(S1001)。同じく待機中の全リクエストに対して、現在時刻から待機中のリクエストを実行したと仮定した場合に、待機中のリクエスト自身が完了した時点の残り時間t2を計算し、残り時間(実行完了時)属性304を更新する。残り時間t1とt2がマイナスのリクエストがある場合には(S1003:Yes)、それらのリクエストは実行開始前の時点、または、実行中にタイムアウトすることになるため、タイムアウト管理テーブルT3から該当するリクエストを削除し、そのリクエストは実行せずに、削除したリクエストが属するタスクの要求元にタイムアウトを返却する(S1004)。残り時間t1とt2が0秒以上の場合は、そのまま次の処理に移る(S1006)。
次に、実行するリクエストを決定するため、実行順が先頭の、すなわち実行順201が1のリクエストを実行した場合の各待機中リクエストの残り時間t3を計算し、残り時間(先頭リクエスト完了時)属性305を更新する(S1005)。
以上の処理により、リクエスト登録部42がリクエストをタスク状態管理テーブルT2に登録する処理が完了する。
図10は、第1の実施例におけるリクエスト実行順制御処理の処理フローを示す図である。リクエスト実行順制御部43が、リクエストの実行状態を監視しており、実行中のリクエストが完了して待機中の次のリクエストを実行するときに本処理が実行される。完了したリクエストは、リクエスト送信元にリクエストの実行結果が返却された後、タスク状態管理テーブルT2のステータス属性206をCompletedに変更し、Completedのまま一定時間経過すると、タスク状態管理テーブルT2から削除される。
まず、リクエスト実行順制御部43が呼び出されると、待機中の全リクエストに対して、リクエストがタイムアウトするまでの現在時刻からの残り時間t1を計算し、タイムアウト管理テーブルT3の残り時間(実行前)属性303を更新する(S1001)。同じく待機中の全リクエストに対して、現在時刻から待機中のリクエストを実行したと仮定した場合に、待機中のリクエスト自身が完了した時点の残り時間t2を計算し、残り時間(実行完了時)属性304を更新する。残り時間t1とt2がマイナスのリクエストがある場合には(S1003:Yes)、それらのリクエストは実行開始前の時点、または、実行中にタイムアウトすることになるため、タイムアウト管理テーブルT3から該当するリクエストを削除し、そのリクエストは実行せずに、削除したリクエストが属するタスクの要求元にタイムアウトを返却する(S1004)。残り時間t1とt2が0秒以上の場合は、そのまま次の処理に移る(S1006)。
次に、実行するリクエストを決定するため、実行順が先頭の、すなわち実行順201が1のリクエストを実行した場合の各待機中リクエストの残り時間t3を計算し、残り時間(先頭リクエスト完了時)属性305を更新する(S1005)。
t3がマイナスのリクエストが無い場合(S1006:No)、先頭のリクエストをそのまま実行しても他のリクエストはまだタイムアウトしないため、今の実行順のまま実行する(S1012)。
t3がマイナスのリクエストがある場合(S1006:Yes)、つまり、待機中の先頭のリクエストを実行するとタイムアウトするリクエストがある場合、t3がマイナスのリクエストから実行順が先頭のリクエストを選択し、そのリクエストを先に実行した場合の各リクエストとの残り時間t3’を計算する(S1009)。t3’がマイナスのリクエストがある場合(S1010:No)、リクエストを入れ替えてもタイムアウトが解消されないため、もとの順序のまま、つまり、VM操作順を優先して実行する(S1012)。また、t3がマイナスのリクエストを削除し、削除したリクエストが属するタスクの要求基にタイムアウトを返却する。t3’がマイナスのリクエストが無い場合、順序入れ替えによりタイムアウトが発生しなくなるため、入れ替えたリクエストを先に実行する(S1011)。
以上により、各リクエストのタイムアウト要件と実行時間をもとに、リクエストの実行順序が制御され、タイムアウトの発生を抑止することが可能となる。 なお、各モジュールによる処理は、集積回路化などして、それを行う処理部としてハードウェアで実現する事もできる。これについては以下の実施例についても同様である。
(第2の実施形態)
次に、図11から図14を用いて本発明の第2の実施例を詳細に説明する。第2の実施例は、第1の実施例においてタスクを構成する各リクエストのタイムアウト要件をもとにリクエスト実行順を優先制御していた処理が、タスク自体のタイムアウト要件に基づいてリクエスト実行順を優先制御する場合の例である。システム構成は第1の実施例と共通である。以下、第1の実施例との差分を中心に説明する。
図11は、第2の実施例におけるストレージ管理プログラム32のモジュール構成図である。第1の実施例の図3における各コンポーネントに加え、タスク管理部37とタスク定義テーブルT4を備える。
タスク管理部37は、ホスト管理プログラム31がサポートする各タスクとストレージ管理プログラム32がサポートする各リクエストの対応関係、及び、各タスクのタイムアウト要件を参照するモジュールである。
タスク定義テーブルT4は、各タスクと各リクエストの対応関係を定義し、各タスクのタイムアウト要件を管理するテーブルである。
第2の実施例では、タスクは、ホスト管理プログラム31とホスト制御プログラム11で実行されるVMに関連する操作であり、VM操作には、VM作成、VM起動、VMのスナップショット取得などの操作が該当する。リクエストは、そのVM操作の延長で、ストレージ管理プログラム32で実行されるVMに関連する論理ボリュームの作成やホストへのボリューム割り当てなどの操作が該当する。
図12は、第2の実施例におけるタスク定義テーブルT4の例である。タスク定義テーブルT4は、ホスト管理プログラム11が提供する各タスクの性能要件を定義するテーブルである。タスク定義テーブルT4は、属性として、タスク401、リクエスト402、タイムアウト403を持つ。
タスク401は、ホスト管理プログラム11におけるタスクを一意に識別する属性である。各VM操作を示す名前が設定される。
リクエスト402は、タスク401の延長で実行されるストレージ管理プログラム32における各リクエストを示す属性である。リクエスト402の値は、性能要件定義テーブルT1に定義されるリクエストの値を、タスク実行時に発行される順にカンマ区切りで連結した値が設定される。
タイムアウト403は、タスク401に設定されているタスクのタイムアウト要件を示す属性である。タイムアウトの値はホスト管理プログラム31やホスト制御プログラム11の仕様に基づいて決定される値や、VM操作のユーザビリティや運用面を考慮した値が設定される。
図12の1行目の例では、ホスト管理プログラム31でVM作成タスクが実行されると、ストレージ管理プログラム32に対し、リクエストcreateVolume1、allocateVolumeの順にリクエストが発行され、そのVM作成タスクのタイムアウトが60秒、つまり、リクエストcreateVolume1の受け付けから、allocateVolume完了までの合計時間が60秒以内である必要があることを示している。図12の2行目の例では、ホスト管理プログラム31でVM起動タスクが実行されると、ストレージ管理プログラム32に対し、リクエストcreateVolume2、allocateVolumeの順にリクエストが発行され、そのVM起動タスクのタイムアウトが30秒、つまり、リクエストcreateVolume2の受け付けから、allocateVolume完了までの合計時間が30秒以内である必要があることを示している。createVolume1とcreateVolume2は、createVolumeリクエストに指定されたパラメータの違いにより別のリクエストとして扱われていることを示す。
t3がマイナスのリクエストがある場合(S1006:Yes)、つまり、待機中の先頭のリクエストを実行するとタイムアウトするリクエストがある場合、t3がマイナスのリクエストから実行順が先頭のリクエストを選択し、そのリクエストを先に実行した場合の各リクエストとの残り時間t3’を計算する(S1009)。t3’がマイナスのリクエストがある場合(S1010:No)、リクエストを入れ替えてもタイムアウトが解消されないため、もとの順序のまま、つまり、VM操作順を優先して実行する(S1012)。また、t3がマイナスのリクエストを削除し、削除したリクエストが属するタスクの要求基にタイムアウトを返却する。t3’がマイナスのリクエストが無い場合、順序入れ替えによりタイムアウトが発生しなくなるため、入れ替えたリクエストを先に実行する(S1011)。
以上により、各リクエストのタイムアウト要件と実行時間をもとに、リクエストの実行順序が制御され、タイムアウトの発生を抑止することが可能となる。 なお、各モジュールによる処理は、集積回路化などして、それを行う処理部としてハードウェアで実現する事もできる。これについては以下の実施例についても同様である。
(第2の実施形態)
次に、図11から図14を用いて本発明の第2の実施例を詳細に説明する。第2の実施例は、第1の実施例においてタスクを構成する各リクエストのタイムアウト要件をもとにリクエスト実行順を優先制御していた処理が、タスク自体のタイムアウト要件に基づいてリクエスト実行順を優先制御する場合の例である。システム構成は第1の実施例と共通である。以下、第1の実施例との差分を中心に説明する。
図11は、第2の実施例におけるストレージ管理プログラム32のモジュール構成図である。第1の実施例の図3における各コンポーネントに加え、タスク管理部37とタスク定義テーブルT4を備える。
タスク管理部37は、ホスト管理プログラム31がサポートする各タスクとストレージ管理プログラム32がサポートする各リクエストの対応関係、及び、各タスクのタイムアウト要件を参照するモジュールである。
タスク定義テーブルT4は、各タスクと各リクエストの対応関係を定義し、各タスクのタイムアウト要件を管理するテーブルである。
第2の実施例では、タスクは、ホスト管理プログラム31とホスト制御プログラム11で実行されるVMに関連する操作であり、VM操作には、VM作成、VM起動、VMのスナップショット取得などの操作が該当する。リクエストは、そのVM操作の延長で、ストレージ管理プログラム32で実行されるVMに関連する論理ボリュームの作成やホストへのボリューム割り当てなどの操作が該当する。
図12は、第2の実施例におけるタスク定義テーブルT4の例である。タスク定義テーブルT4は、ホスト管理プログラム11が提供する各タスクの性能要件を定義するテーブルである。タスク定義テーブルT4は、属性として、タスク401、リクエスト402、タイムアウト403を持つ。
タスク401は、ホスト管理プログラム11におけるタスクを一意に識別する属性である。各VM操作を示す名前が設定される。
リクエスト402は、タスク401の延長で実行されるストレージ管理プログラム32における各リクエストを示す属性である。リクエスト402の値は、性能要件定義テーブルT1に定義されるリクエストの値を、タスク実行時に発行される順にカンマ区切りで連結した値が設定される。
タイムアウト403は、タスク401に設定されているタスクのタイムアウト要件を示す属性である。タイムアウトの値はホスト管理プログラム31やホスト制御プログラム11の仕様に基づいて決定される値や、VM操作のユーザビリティや運用面を考慮した値が設定される。
図12の1行目の例では、ホスト管理プログラム31でVM作成タスクが実行されると、ストレージ管理プログラム32に対し、リクエストcreateVolume1、allocateVolumeの順にリクエストが発行され、そのVM作成タスクのタイムアウトが60秒、つまり、リクエストcreateVolume1の受け付けから、allocateVolume完了までの合計時間が60秒以内である必要があることを示している。図12の2行目の例では、ホスト管理プログラム31でVM起動タスクが実行されると、ストレージ管理プログラム32に対し、リクエストcreateVolume2、allocateVolumeの順にリクエストが発行され、そのVM起動タスクのタイムアウトが30秒、つまり、リクエストcreateVolume2の受け付けから、allocateVolume完了までの合計時間が30秒以内である必要があることを示している。createVolume1とcreateVolume2は、createVolumeリクエストに指定されたパラメータの違いにより別のリクエストとして扱われていることを示す。
図15は、第2の実施例におけるタスク状態管理テーブルT2の例である。第1の実施例の図5では、タスク属性204に“VM操作”の固定値が登録されていたが、第2の実施例では、リクエストの実行契機となったVM操作が登録される点で異なる。VM作成に対応するリクエストが実行された場合には、タスク属性204に“VM作成”が登録される。登録処理については、図13で説明する。
図13は、第2の実施例におけるリクエスト登録処理を示す図である。第1の実施例との違いは、第1の実施例では、S904で、リクエストが対象としているVMをもとに「そのVMに対する操作」をタスクとして決定していたが、第2の実施例では、タスク定義テーブルT4の定義に基づいて、受け付けたリクエストがどのVM操作に応じたタスクに関するか決定する点で異なる。
リクエスト処理部30が、ホスト制御プログラム11からリクエストを受け付けると(S1301)、リクエスト処理部30はそのリクエストからリクエスト名、リクエストのパラメータを取り出す(S1302)。リクエスト名とパラメータをもとに性能要件定義テーブルT1のリクエスト属性に定義されているリクエストを決定する(S1303)。例えば、図12に定義されているVM作成タスクが実行された場合、最初に受け付けるリクエストのリクエスト種別はcreateVolume1になり、createVolume1が完了して、次に受け付けるリクエストのリクエスト種別はallocateVolumeになる。
リクエスト処理部30が、ホスト制御プログラム11からリクエストを受け付けると(S1301)、リクエスト処理部30はそのリクエストからリクエスト名、リクエストのパラメータを取り出す(S1302)。リクエスト名とパラメータをもとに性能要件定義テーブルT1のリクエスト属性に定義されているリクエストを決定する(S1303)。例えば、図12に定義されているVM作成タスクが実行された場合、最初に受け付けるリクエストのリクエスト種別はcreateVolume1になり、createVolume1が完了して、次に受け付けるリクエストのリクエスト種別はallocateVolumeになる。
その後、同じくリクエストのパラメータからリクエストが対象としているVMを特定し、どのVMに関連するタスクか決定する(S1304)。VM1を起動するタスクが実行された場合には、対象VMはVM1になる。
受け付けたリクエストのリクエスト種別req1と対象VMを決定したら、次はそのリクエストが対象とするVMに関連するタスクがタスク状態管理テーブルT2に登録済みかどうか確認する(S1305)。対象属性205の値にVM名が設定されており、ステータス属性206の値がCompletedのレコードがある場合に登録済みと判定する。
対象VMのタスクが登録済みでは無い場合(S1305:No)、タスク定義テーブルT4に定義されている各タスクの先頭のリクエストを受け付けたと判断し、のタスク定義テーブルT4のリクエスト属性402を参照し、カンマで連結されているリクエストの先頭の文字列が、S1303で取得したリクエストreq1と一致するレコードを検索してタスクtask1を特定する(S1306)。req1がcreateVolume1の場合、createVolume1をリクエストの先頭に持つVM作成がtask1になる。受け付けたリクエストに対応するタスクを特定したら、新しいIDを生成し、タスク状態管理テーブルT2で実行順201の最大値+1の値を設定して、リクエストreq1、タスクtask1、ステータスWaiting、受け付け時刻に現在時刻を持つ新規レコードを追加する(S1307)。
対象VMのタスクが登録済みの場合(S1305:Yes)、登録されているタスクのレコードのリクエスト属性203の値req0を取得し、タスク定義テーブルT4のリクエスト属性402が、登録済みのリクエストreq0と受け付けたリクエストreq1をカンマで連結した値で定義されているタスク属性401を取得する(S1308)。例えば、VM1に対するVM作成タスクの“createVolume1“リクエストがタスク状態管理テーブルT2に登録されている状態で、新たにVM1に対する”allocateVolume“リクエストを受け付けた場合、“createVolume1,allocateVolume”をリクエスト属性の値に持つタスク“VM作成”をタスク定義テーブルT4から取得する。3つ以上のリクエストで定義されているタスクの場合も同様に、タスク状態管理テーブルT2にリクエスト“req0,req1”が登録されていて、リクエスト“req2”を受け付けた場合には、タスク定義テーブルT4に“req0,req1,req2”で定義されているタスクを取得する。
最後に、S1305で特定したレコードのリクエスト属性に“req0,req1”を設定し、タスク属性にS1308で新たに決定したタスクを設定し、ステータス属性にWaitingを設定する。第1の実施例では受け付け時刻も更新したが、第2の実施例ではタイムアウトをタスク基準で判定するため、新たなリクエストを受け付けてもタスクの開始時刻は変わらないことから、受け付け時刻は更新しない。なお、S1308、S1309の処理でタスク属性の値も更新するのは、S1306で複数のタスクの候補がありタスクが一つに絞れなかったときに、S1308で先頭のリクエストだけではなくその前に受け付けた同一VMに対するリクエストの情報も加えてタスクを判定することができ、タスク判定の精度を高める効果がある。
以上の処理により、リクエスト登録部42がタスク定義テーブルT4の情報に基づいて、リクエストとタスクをタスク状態管理テーブルT2に登録、または、更新する処理が完了する。
図14は、第2の実施例における、リクエスト実行順制御処理の処理フローを示す図である。第1の実施例との違いは、タイムアウトの残り時間の算出に、性能要件定義テーブルT1に定義されているリクエストのタイムアウト時間を使用するのではなく、タスク定義テーブルT4に定義されているタスクのタイムアウト時間を使ってタイムアウトの残り時間を算出する点である。
まず、リクエスト実行順制御部43が呼び出されると、待機中の全リクエストに対して、タスクがタイムアウトするまでの現在時刻からの残り時間t1を計算し、タイムアウト管理テーブルT3の残り時間(実行前)303を更新する(S1401)。t1は、タスクの受け付け開始から現時時刻までの経過時間を、タスクのタイムアウト値から引いて求める。例えば、タスク状態管理テーブルT2において、あるリクエスト1のタスク属性の値が”VM作成”だった場合、タスク定義テーブルT4のタスク属性401が”VM作成”のレコードのタイムアウト属性403を参照してタイムアウト値60秒を取得したのち、リクエスト1の受付時刻から現在時刻までの経過時間を求め、60秒から引いてt1を計算する。
次に、同じく待機中の全リクエストに対して、現在時刻からそのタスクに含まれる未実行の残りの全リクエストを実行したと仮定した場合に、それらのリクエストが全て実行した時点の残り時間t2を計算し、残り時間(実行完了時)304を更新する。例えば、リクエストがcreateVolume1、タスクがVM作成、ステータスがWaitingの場合、タスク定義テーブルT4のVM作成タスクのレコードのリクエスト属性402を参照してallocateVolumeが残っていることを特定し、性能要件定義テーブルT1から、未実行のcreateVolume1とallocateVolumeの実行時間属性を参照し、現時点のタスクの残り時間t1からそれらの未実行リクエストの実行時間の合計値を引いてt2を求める。第1の実施例はリクエスト単体の実行時間だけで完了時点の残り時間を計算したが、本実施例では、未実行のリクエストの実行時間をもとに、タスクの完了時点の残り時間を計算している点が異なる。
以上の処理により、リクエスト登録部42がタスク定義テーブルT4の情報に基づいて、リクエストとタスクをタスク状態管理テーブルT2に登録、または、更新する処理が完了する。
図14は、第2の実施例における、リクエスト実行順制御処理の処理フローを示す図である。第1の実施例との違いは、タイムアウトの残り時間の算出に、性能要件定義テーブルT1に定義されているリクエストのタイムアウト時間を使用するのではなく、タスク定義テーブルT4に定義されているタスクのタイムアウト時間を使ってタイムアウトの残り時間を算出する点である。
まず、リクエスト実行順制御部43が呼び出されると、待機中の全リクエストに対して、タスクがタイムアウトするまでの現在時刻からの残り時間t1を計算し、タイムアウト管理テーブルT3の残り時間(実行前)303を更新する(S1401)。t1は、タスクの受け付け開始から現時時刻までの経過時間を、タスクのタイムアウト値から引いて求める。例えば、タスク状態管理テーブルT2において、あるリクエスト1のタスク属性の値が”VM作成”だった場合、タスク定義テーブルT4のタスク属性401が”VM作成”のレコードのタイムアウト属性403を参照してタイムアウト値60秒を取得したのち、リクエスト1の受付時刻から現在時刻までの経過時間を求め、60秒から引いてt1を計算する。
次に、同じく待機中の全リクエストに対して、現在時刻からそのタスクに含まれる未実行の残りの全リクエストを実行したと仮定した場合に、それらのリクエストが全て実行した時点の残り時間t2を計算し、残り時間(実行完了時)304を更新する。例えば、リクエストがcreateVolume1、タスクがVM作成、ステータスがWaitingの場合、タスク定義テーブルT4のVM作成タスクのレコードのリクエスト属性402を参照してallocateVolumeが残っていることを特定し、性能要件定義テーブルT1から、未実行のcreateVolume1とallocateVolumeの実行時間属性を参照し、現時点のタスクの残り時間t1からそれらの未実行リクエストの実行時間の合計値を引いてt2を求める。第1の実施例はリクエスト単体の実行時間だけで完了時点の残り時間を計算したが、本実施例では、未実行のリクエストの実行時間をもとに、タスクの完了時点の残り時間を計算している点が異なる。
いずれかの値がマイナスの場合(S1403:Yes)、タスクが既にタイムアウトしているか、または、他のリクエストに邪魔されずタスクに含まれる残りの未実行リクエストを実行してもタイムアウトするということなので、この時点でタイムアウトを返却する(S1404)。タスクがタイムアウトしない場合(S1405:Yes)、先頭リクエストを実行した時点でタイムアウトするタスクが無いか、または、他のリクエストを先に実行した時点でタスクがタイムアウトしないかt3、t3’を比較してリクエストの優先度を入れ替える。図11と同様の処理になるため説明を省略する。
以上により、タスクのタイムアウト時間と各リクエストの実行時間をもとに、タスクをタイムアウトさせないようにリクエストの実行順序が制御され、タスクのタイムアウトの発生を抑止することが可能となる。
以上により、タスクのタイムアウト時間と各リクエストの実行時間をもとに、タスクをタイムアウトさせないようにリクエストの実行順序が制御され、タスクのタイムアウトの発生を抑止することが可能となる。
なお、以上に記載した実施例で示したプログラムは、あらかじめ計算機内の記憶装置や外部記憶装置に格納されていても良いし、着脱可能な記憶媒体や通信媒体(有線、無線、光などのネットワーク、又はそのネットワーク上の搬送波やデジタル信号)を介して、必要なときに外部記憶装置に導入されても良い。
1:ホスト計算機
10:メモリ
11:ホスト制御プログラム
12:入出力装置
13:CPU
14:ストレージ
15:管理インターフェース
16:データインタフェース
2:ストレージ装置
20:メモリ
21:ストレージ制御プログラム
22:CPU
23:ディスク
24:論理ボリューム
25:管理インターフェース
26:データインタフェース
3:管理計算機
31:ホスト管理プログラム
32:ストレージ管理プログラム
33:リクエスト処理部
34:タイムアウト管理部
35:リクエスト登録部
36:リクエスト実行順制御部
37:タスク管理部
39:ストレージ制御部
4:管理ネットワーク
5:データネットワーク
6:管理端末
61:管理インターフェース
T1:性能要件定義テーブル
T2:タスク状態管理テーブル
T3:タイムアウト管理テーブル
T4:タスク定義テーブル
10:メモリ
11:ホスト制御プログラム
12:入出力装置
13:CPU
14:ストレージ
15:管理インターフェース
16:データインタフェース
2:ストレージ装置
20:メモリ
21:ストレージ制御プログラム
22:CPU
23:ディスク
24:論理ボリューム
25:管理インターフェース
26:データインタフェース
3:管理計算機
31:ホスト管理プログラム
32:ストレージ管理プログラム
33:リクエスト処理部
34:タイムアウト管理部
35:リクエスト登録部
36:リクエスト実行順制御部
37:タスク管理部
39:ストレージ制御部
4:管理ネットワーク
5:データネットワーク
6:管理端末
61:管理インターフェース
T1:性能要件定義テーブル
T2:タスク状態管理テーブル
T3:タイムアウト管理テーブル
T4:タスク定義テーブル
Claims (14)
- 第1の装置と第2の装置に接続する管理計算機であって、
前記第2の装置で実行されるリクエストの種別、
前記リクエストの受け付け時刻及び
前記リクエストの実行順位
を含むリクエスト実行制御情報並びに
前記リクエストの種別、
前記リクエストがタイムアウトする時間及び
前記リクエストを実行するのに要する時間
を含むリクエスト要件情報
を備え、
前記第1の装置でタスクが実行された結果発行される、前記タスクを構成する複数のリクエストのうち1つのリクエストを受信し、
前記受信したリクエストを前記リクエスト実行制御情報に反映し、
前記リクエスト要件情報を参照して前記リクエスト実行制御情報の前記実行順位を更新し、
前記リクエスト実行制御情報を参照して、前記第2の装置に前記リクエストを送信する
ことを特徴とする管理計算機。 - 請求項1に記載の管理計算機であって、
前記リクエスト実行制御情報は、さらに、前記タスクの種別を含む
ことを特徴とする管理計算機。 - 請求項2記載の管理計算機であって、
前記タスクは、前記第1の装置で動作するVMに対する操作であり、
前記リクエストは、前記第2の装置の備えるストレージ装置に対する操作である
ことを特徴とする管理計算機。 - 請求項3記載の管理計算機であって、
前記リクエスト要件情報は、さらに、前記リクエストについて、前記実行順位の最も早いリクエストを実行した場合に、当該実行したリクエストが完了した時点でのタイムアウトする時間を含む
ことを特徴とする管理計算機。 - 請求項4記載の管理計算機であって、
前記リクエスト要件情報を参照し、前記実行したリクエストが完了した時点でのタイムアウトする時間が負のリクエストがある場合、前記リクエスト実行制御情報の前記実行順位を更新しない
ことを特徴とする管理計算機。 - 請求項5記載の管理計算機であって、
前記リクエスト要件情報を参照し、前記実行したリクエストが完了した時点でのタイムアウトする時間が負のリクエストが場合、当該負のリクエストのタイムアウトを前記第1の装置に対して送信する
ことを特徴とする管理計算機。 - 請求項6記載の管理計算機であって、
前記リクエストがタイムアウトする時間が負のリクエストがある場合、当該負のリクエストのタイムアウトを前記第1の装置に送信する
ことを特徴とする管理計算機。 - 第1の装置と第2の装置に接続し、
前記第2の装置で実行されるリクエストの種別、
前記リクエストの受け付け時刻及び
前記リクエストの実行順位
を含むリクエスト実行制御情報並びに
前記リクエストの種別、
前記リクエストがタイムアウトする時間及び
前記リクエストを実行するのに要する時間
を含むリクエスト要件情報
を備える管理計算機において、前記第2の装置で実行されるリクエストを送信する順番を制御するリクエスト制御方法であって、
前記第1の装置でタスクが実行された結果発行される、前記タスクを構成する複数のリクエストのうち1つのリクエストを受信するステップ、
前記受信したリクエストを前記リクエスト実行制御情報に反映するステップ、
前記リクエスト要件情報を参照して前記リクエスト実行制御情報の前記実行順位を更新するステップ及び
前記リクエスト実行制御情報を参照して、前記第2の装置に前記リクエストを送信するステップ
を含むことを特徴とするリクエスト制御方法。 - 請求項8記載のリクエスト制御方法であって、
前記リクエスト実行制御情報は、さらに、前記タスクの種別を含む
ことを特徴とするリクエスト制御方法。 - 請求項9記載のリクエスト制御方法であって、
前記タスクは、前記第1の装置で動作するVMに対する操作であり、
前記リクエストは、前記第2の装置の備えるストレージ装置に対する操作である
ことを特徴とするリクエスト制御方法。 - 請求項10記載のリクエスト制御方法であって、
前記リクエスト要件情報は、さらに、前記リクエストについて、前記実行順位の最も早いリクエストを実行した場合に、当該実行したリクエストが完了した時点でのタイムアウトする時間を含む
ことを特徴とするリクエスト制御方法。 - 請求項11記載のリクエスト制御方法であって、
前記実行順位を更新するステップは、前記リクエスト要件情報を参照し、前記実行したリクエストが完了した時点でのタイムアウトする時間が負のリクエストがある場合、更新を行わない
ことを特徴とするリクエスト制御方法。 - 請求項12記載のリクエスト制御方法であって、さらに、
前記リクエスト要件情報を参照し、前記実行したリクエストが完了した時点でのタイムアウトする時間が負のリクエストがある場合、当該負のリクエストのタイムアウトを前記第1の装置に対して送信するステップ
を含むことを特徴とするリクエスト制御方法。 - 請求項13記載のリクエスト制御方法であって、さらに、
前記リクエストがタイムアウトする時間が負のリクエストがある場合、当該負のリクエストのタイムアウトを前記第1の装置に送信するステップ
を含むことを特徴とするリクエスト制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/077642 WO2017056208A1 (ja) | 2015-09-30 | 2015-09-30 | リクエスト実行順序制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/077642 WO2017056208A1 (ja) | 2015-09-30 | 2015-09-30 | リクエスト実行順序制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017056208A1 true WO2017056208A1 (ja) | 2017-04-06 |
Family
ID=58423027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/077642 WO2017056208A1 (ja) | 2015-09-30 | 2015-09-30 | リクエスト実行順序制御方式 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017056208A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
US11113003B2 (en) | 2019-01-08 | 2021-09-07 | Fujitsu Limited | Storage apparatus, storage control device, and recording medium with execution command pausing or stopping |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347999A (ja) * | 1999-06-04 | 2000-12-15 | Hitachi Ltd | コンピュータシステム及びディスク制御装置 |
JP2008181288A (ja) * | 2007-01-24 | 2008-08-07 | Hitachi Ltd | リモートコピーシステム |
JP2012038330A (ja) * | 2011-10-05 | 2012-02-23 | Hitachi Global Storage Technologies Netherlands Bv | ハードディスクドライブ |
-
2015
- 2015-09-30 WO PCT/JP2015/077642 patent/WO2017056208A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347999A (ja) * | 1999-06-04 | 2000-12-15 | Hitachi Ltd | コンピュータシステム及びディスク制御装置 |
JP2008181288A (ja) * | 2007-01-24 | 2008-08-07 | Hitachi Ltd | リモートコピーシステム |
JP2012038330A (ja) * | 2011-10-05 | 2012-02-23 | Hitachi Global Storage Technologies Netherlands Bv | ハードディスクドライブ |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113003B2 (en) | 2019-01-08 | 2021-09-07 | Fujitsu Limited | Storage apparatus, storage control device, and recording medium with execution command pausing or stopping |
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
CN112671835B (zh) * | 2020-12-07 | 2022-08-09 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11243707B2 (en) | Method and system for implementing virtual machine images | |
US10222983B2 (en) | Storage management computer and management method of storage apparatus | |
US20190235904A1 (en) | Cloning services in virtualized computing systems | |
US10740133B2 (en) | Automated data migration of services of a virtual machine to containers | |
JP2011076605A (ja) | 仮想マシン・イメージの実行方法及びシステム | |
JP5229486B2 (ja) | 管理計算機及び処理管理方法 | |
JP2016167143A (ja) | 情報処理システムおよび情報処理システムの制御方法 | |
JP2008287631A (ja) | デプロイ対象計算機、デプロイメントシステムおよびデプロイ方法 | |
WO2014075875A1 (en) | Automatic template creation based on new feeds | |
JPWO2012066640A1 (ja) | 計算機システム、マイグレーション方法及び管理サーバ | |
JP5346405B2 (ja) | ネットワークシステム | |
US20230315511A1 (en) | Managing execution of data processing jobs in a virtual computing environment | |
US20150154042A1 (en) | Computer system and control method for virtual machine | |
US11231953B2 (en) | Minimizing downtime when importing virtual machines from other platforms | |
US10990373B2 (en) | Service managers and firmware version selections in distributed computing systems | |
JP2014109900A (ja) | データセンタ,データセンタでのシステムの複写サービスの提供方法及びデータセンタでのシステムの複写プログラム | |
JP5183448B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
US10936330B2 (en) | Instantaneous boot of virtual machine instances via remote direct memory access | |
JP5492731B2 (ja) | 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム | |
WO2017056208A1 (ja) | リクエスト実行順序制御方式 | |
WO2013145434A1 (ja) | ネットワークシステム及びその制御方法 | |
JP2017068480A (ja) | ジョブ管理方法、ジョブ管理装置及びプログラム | |
US9292318B2 (en) | Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system | |
JP5391152B2 (ja) | サーバシステム、及び、仮想サーバの移行方式を選択する方法 | |
JP2011221634A (ja) | 計算機システム、論理区画管理方法及び論理分割処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15905362 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15905362 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |