(57)【要約】【課題】ここで説明される実施例は、サーバに接続されるストレージシステムの潜在的な低下に対応することを対象とする。【解決手段】実施例１において、システム及び方法は、ストレージ階層化及びストレージＩ／Ｏ制御に対する潜在的な性能上の問題に対応することを対象とする。実施例２において、システム及び方法は、ストレージ階層化及び重複排除に対する潜在的な性能上の問題に対応することを対象とする。【選択図】図５
2016511474.tif 000002
【特許請求の範囲】
【請求項１】
サーバに接続されるシステムであって、
ストレージシステムと、管理サーバとを含み、
前記ストレージシステムは、
第１記憶デバイスと、前記第１記憶デバイスより高性能の第２記憶デバイスと、を含む複数の記憶デバイスと、
複数の仮想記憶領域を有する仮想ボリュームを管理する、コントローラと、を含み、
前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が、前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って、前記複数の仮想記憶領域に割り当てられており、
前記管理サーバは、プロセッサを含み、
前記プロセッサは、
前記サーバ上で実行されるアクセス制限についての通知を受信し、
前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示する、システム。
【請求項２】
請求項１に記載のシステムであって、
前記ストレージシステムの前記コントローラが、前記サーバが前記仮想ボリュームを使用する場合の前記サーバに対するアクセス制限についての情報を、前記管理サーバから受信すると、前記ストレージシステムにおける前記コントローラは、
前記アクセス頻度情報及び前記仮想マシンに対するアクセス制限についての情報に基づきアクセス頻度を推定し、
前記第１記憶デバイスにおける前記第１記憶領域又は前記第２記憶デバイスにおける前記第２記憶領域を、前記複数の仮想記憶領域における一つの仮想領域に、当該一つの仮想記憶領域に対して推定されたアクセス頻度に基づき、割り当てる、システム。
【請求項３】
請求項１に記載のシステムであって、
複数の仮想マシンが前記サーバ上で動作しており、
前記アクセス制限が、前記サーバ上の前記複数の仮想マシンにおける第１仮想マシンにおいて実行されており、
前記複数の仮想マシンにおける第２仮想マシンが、前記第１仮想マシンよりもアクセス頻度に対する低い優先度を有し、かつ、アクセス制限を実行しない場合、前記管理サーバは、前記第１仮想マシンで実行されている前記アクセス制限のキャンセルを指示する、システム。
【請求項４】
請求項１に記載のシステムであって、
前記仮想マシンは、前記サーバと前記ストレージシステムとの間のアクセス頻度を制御する、システム。
【請求項５】
請求項１に記載のシステムであって、
前記コントローラは、前記複数の仮想記憶領域のそれぞれに対するアクセス頻度、及び、前記アクセス制限前の前記サーバの第１アクセス頻度値と前記アクセス制限後の前記サーバの第２アクセス頻度値との比率、を使用することによって、前記アクセス頻度を推定する、システム。
【請求項６】
請求項１に記載のシステムであって、
前記コントローラは、前記複数の仮想記憶領域における一つの仮想記憶領域に対して、当該一つの仮想記憶領域に対する前記推定されたアクセス頻度が前記第２記憶領域の割り当てられる他の仮想記憶領域に対するアクセス頻度よりも大きい場合、前記第２記憶デバイスにおける前記第２記憶領域を割り当てる、システム。
【請求項７】
請求項１に記載のシステムであって、
前記サーバに対するアクセス制限についての情報は、前記サーバと前記ストレージシステムとの間の前記サーバによるアクセス頻度制御が、有効又は無効であることを示す情報を含む、システム。
【請求項８】
サーバに接続されたシステムによる方法であって、
第１記憶デバイスと前記第１記憶デバイスより高性能の第２記憶デバイスとを含む複数の記憶デバイスを含むストレージシステムが、複数の仮想記憶領域を有し前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って前記複数の仮想記憶領域に割り当てられる仮想ボリュームを、管理し、
管理サーバにおいて、前記サーバ上で実行されるアクセス制限についての通知を受信し、前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示する、方法。
【請求項９】
請求項８に記載の方法であって、
前記ストレージシステムが、前記サーバが前記仮想ボリュームを使用する場合の前記サーバに対するアクセス制限についての情報を、前記管理サーバから受信すると、
前記アクセス頻度情報及び前記仮想マシンに対するアクセス制限についての情報に基づきアクセス頻度を推定し、
前記第１記憶デバイスにおける前記第１記憶領域又は前記第２記憶デバイスにおける前記第２記憶領域を、前記複数の仮想記憶領域における一つの仮想領域に、当該一つの仮想記憶領域に対する推定されたアクセス頻度に基づき、割り当てる、方法。
【請求項１０】
請求項８に記載の方法であって、
複数の仮想マシンが前記サーバ上で動作しており、
前記アクセス制限が、前記サーバ上の前記複数の仮想マシンにおける第１仮想マシンにおいて実行されており、
前記方法は、
前記複数の仮想マシンにおける第２仮想マシンが、前記第１仮想マシンよりもアクセス頻度に対する低い優先度を有し、かつ、アクセス制限を実行しない場合、前記管理サーバにおいて、前記第１仮想マシンで実行されている前記アクセス制限のキャンセルを指示する、方法。
【請求項１１】
請求項８に記載の方法であって、
前記仮想マシンは、前記サーバと前記ストレージシステムとの間のアクセス頻度を制御する、方法。
【請求項１２】
請求項８に記載の方法であって、
前記複数の仮想記憶領域のそれぞれに対するアクセス頻度、及び、前記アクセス制限前の前記サーバの第１アクセス頻度値と前記アクセス制限後の前記サーバの第２アクセス頻度値との比率、を使用することによって、前記アクセス頻度を推定する、方法。
【請求項１３】
請求項８に記載の方法であって、
前記複数の仮想記憶領域における一つの仮想記憶領域に対して、当該一つの仮想記憶領域に対する前記推定されたアクセス頻度が前記第２記憶領域の割り当てられる他の仮想記憶領域に対するアクセス頻度よりも大きい場合、前記第２記憶デバイスにおける前記第２記憶領域を割り当てる、方法。
【請求項１４】
請求項８に記載の方法であって、
前記サーバに対するアクセス制限についての情報は、前記サーバと前記ストレージシステムとの間の前記サーバによるアクセス頻度制御が、有効又は無効であることを示す情報を含む、方法。
【請求項１５】
サーバに接続されたシステムのための計算機プログラムであって、
第１記憶デバイスと前記第１記憶デバイスより高性能の第２記憶デバイスとを含む複数の記憶デバイスを含むストレージシステムが、複数の仮想記憶領域を有し前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って前記複数の仮想記憶領域に割り当てられる仮想ボリュームを、管理するためのコードと、
管理サーバにおいて、前記サーバ上で実行されるアクセス制限についての通知を受信し、前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示するためのコードと、を含む計算機プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施例は、計算機システム及びストレージシステムに関し、特に、重複排除、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）、記憶媒体階層化といった機能に関する。
【背景技術】
【０００２】
関連技術において、プールグループを使用したページベースでのデータ格納階層管理を行う方法および装置が存在する。そのような関連技術のシステムは、階層ストレージシステムを含むことが可能である。階層ストレージシステム内において、関連技術は、ブロックレベルのデータの重複排除のために重複排除技術も利用することができる。システムは、ストレージシステムへのＩＯの数をストレージ性能に基づいて制御する、ストレージＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）制御機能を含むことができる。ストレージシステムは、ストレージ階層化機能を、ストレージシステム内で自動化することができる。
【０００３】
異なるタイプの記憶媒体を、ストレージシステムに実装することが可能である。例えば、ストレージシステムは、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、高性能ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、及び大容量低性能ＨＤＤを実装し得る。例えば、高性能ＨＤＤは、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ＨＤＤを含み、大容量低性能ＨＤＤはＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ＨＤＤを含む。
【０００４】
ストレージシステムのストレージ階層化機能は、ワークロードに基づいて自動的にデータを最適な記憶媒体に移動し、コストパフォーマンスを改善し得る。高頻度でアクセスされる「ホット」データは、ＳＳＤのような高性能な記憶媒体に格納される。低頻度アクセスの「コールド」データは、ＳＡＴＡに格納される。
【０００５】
ストレージシステムは、リモートコピー、圧縮、重複排除等の機能を有することが可能である。重複排除機能は、同一データの複数回の発生を検出し、同一のデータをポインタに置き換え、格納されるデータ量を削減する。
【０００６】
ストレージシステムは、サーバで実行されるＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）機能である、ストレージＩ／Ｏ制御機能を含むことができる。当該機能は、Ｉ／Ｏ（入力及び出力）コマンドの応答時間を監視する。応答時間が増加した場合（つまり性能が低下した場合）、当該機能はＨＤＤ性能のボトルネックが発生したと仮定して、Ｉ／Ｏの数を減少させることで応答時間の低下を避ける。
【０００７】
ストレージシステムにおけるストレージ階層化機能は、他の機能と共にはうまく動作しない場合がある。例えば、双方の機能が同一データに適用された場合に、それら機能の効果が得られない場合がある。
【発明の概要】
【０００８】
本開示の態様は、サーバに接続されるシステムを含んでよく、当該システムは、ストレージシステムと、管理サーバとを含んでもよい。前記ストレージシステムは、第１記憶デバイスと、前記第１記憶デバイスより高性能の第２記憶デバイスと、を含む複数の記憶デバイスと、複数の仮想記憶領域を有する仮想ボリュームを管理する、コントローラと、を含んでよい。前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が、前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って、前記複数の仮想記憶領域に割り当てられる。前記管理サーバは、プロセッサを含んでよく、前記プロセッサは、前記サーバ上で実行されるアクセス制限についての通知を受信し、前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示する。
【０００９】
本開示の態様は、サーバに接続されたシステムによる方法をさらに含んでよい。前記方法は、第１記憶デバイスと前記第１記憶デバイスより高性能の第２記憶デバイスとを含む複数の記憶デバイスを含むストレージシステムが、複数の仮想記憶領域を有し前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って前記複数の仮想記憶領域に割り当てられる仮想ボリュームを、管理し、管理サーバにおいて、前記サーバ上で実行されるアクセス制限についての通知を受信し、前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示してよい。
【００１０】
本開示の態様は、サーバに接続されたシステムのための計算機プログラムさらに含んでよい。前記計算機プログラムは、第１記憶デバイスと前記第１記憶デバイスより高性能の第２記憶デバイスとを含む複数の記憶デバイスを含むストレージシステムが、複数の仮想記憶領域を有し前記第１記憶デバイスにおける第１記憶領域又は前記第２記憶デバイスにおける第２記憶領域が前記複数の仮想記憶領域それぞれに対するアクセス頻度情報に従って前記複数の仮想記憶領域に割り当てられる仮想ボリュームを、管理するためのコードと、管理サーバにおいて、前記サーバ上で実行されるアクセス制限についての通知を受信し、前記サーバが前記仮想ボリュームを使用する場合に、前記サーバ上で実行される前記アクセス制限のキャンセルを指示するためのコードと、を含んでよい。コードは、下記のように、計算機読み取り可能な記憶媒体又は計算機読み取り可能な信号媒体に格納された実行可能な命令の形式であってもよい。
【図面の簡単な説明】
【００１１】
【図１】サーバから見た実施例１に係る計算機システムの図を示す。
【図２】ストレージシステムから見た実施例１に係る計算機システムの図である。
【図３】ストレージシステムにおいて実行されるストレージ階層化機能及びサーバにおいて実行されるストレージＩ／Ｏ制御機能を示す図面例である。
【図４】ストレージ階層化及びストレージＩ／Ｏ制御によって引き起こされる問題の一例を示している。
【図５】実施例１を示す図を示す。
【図６】実施例１に係るサーバプログラム及びサーバ制御情報を示す図である。
【図７】実施例１に係る、サーバ制御情報におけるＩ／Ｏ制御テーブルの一例を示す。
【図８】実施例１に係る、ストレージプログラム及びストレージ制御情報を示す図である。
【図９】実施例１に係る、ストレージ制御情報におけるボリュームテーブルの一例である。
【図１０】実施例１に係る、ストレージ制御情報におけるページテーブルの一例である。
【図１１】実施例１に係る、制御確認プログラム及びキャンセルプログラムのフロー図例を示す。
【図１２（ａ）】実施例１に係る他の方法を示す。
【図１２（ｂ）】実施例１に係る、ページの現在のＩＯＰＳ並びに通知された設定値及び制御されたＩＯＰＳに基づいて、適切なページＩＯＰＳを推定する例を示す。
【図１３】ストレージ階層化と重複排除とによって引き起こされる問題の例を示す図である。
【図１４】実施例２に係る、ピン止めされたデータの重複排除の実行を避ける重複排除プログラムの例である。
【図１５】実施例２に係る、重複排除ドメインテーブルの例を示す。
【図１６】実施例２に係るデステージ重複排除プログラムの例を示し、デステージ重複排除プログラムは、重複排除ドメインテーブルを使用し、データが重複排除可能であるか否か確認する。
【図１７】実施例２に係る、サーバライトプログラム及びストレージライトプログラムの例を示す。
【発明を実施するための形態】
【００１２】
以下の詳細な説明において、図面及び本願の実施例の詳細を説明する。図面において重複する要素の符号及び説明は説明の明確化のために省略される。以下の説明において使用される用語は一例であって、何の限定も意図するものではない。例えば、「自動的」との用語の使用は、本願の実際の実装における当業者の所望の実装に依存して、完全自動の実装、又は、実装のいくつかの点に対して実行されるユーザ又は管理者の制御を含む半自動の実装を含むことができる。
【００１３】
ストレージ階層化とストレージＩ／Ｏ制御が同一データに適用される場合、問題が発生し得る。ストレージ階層化は、コールドデータをＳＡＴＡに移動する。ＳＡＴＡに格納されているデータに対するＩ／Ｏの数が増加すると、ＳＡＴＡは、ボトルネックになり得る。そのため、ストレージＩ／Ｏ制御は、サーバによって発行されるＩ／Ｏの数を減少させる。しかし、ストレージシステムは、サーバがストレージに対するＩ／Ｏの数を制御していることを認識しない場合がある。そのため、ストレージシステムは、サーバが発行しようとするＩ／Ｏの数が実際には多いということを認識できず、データに対してわずかなＩ／Ｏしか存在しないと判定し、データをＳＡＳ又はＳＳＤに移動することなく、むしろ、ＳＡＴＡにデータを残したままにしてしまう。この問題については、図４においてさらに詳細に説明する。
【００１４】
ストレージ階層化と重複排除が同一データに適用される場合、他の問題が発生し得る。当該構成において、重複排除はＳＳＤとＳＡＴＡとに格納されているデータの重複排除する場合がある。重複排除処理の時に、ＳＡＴＡのデータが維持され、ＳＳＤのデータが削除される場合、これまでより高い性能のＳＳＤにアクセスしていたワークロードのアクセス先は、突然、より低い性能のＳＡＴＡに変更される。そのため、サーバは、予期しない性能低下を検出し得る。
【００１５】
さらに、ストレージ階層化は、特定の記憶媒体におけるデータをピン止めしてデータを移動しないようにする、ピン止めオプションを実装している場合がある。例えば、他のアクセスが阻害されないように、ＳＡＴＡにおいてデータがピン止めされ得る。他のユースケースとして、Ｉ／Ｏの数が多いが、Ｉ／Ｏの優先度が低い場合がある。例えば、ログの書き込みである。そのような場合、ワークロードはシーケンシャルアクセスでありＳＡＴＡの性能は十分であり、ピン止め状態を維持することができる。
【００１６】
データがＳＳＤに格納されているデータと重複排除され、ＳＳＤのデータが維持される場合、ＳＳＤへのアクセスはＳＡＴＡに格納されていたデータに対するアクセスによって阻害され得る。この問題については、図１３においてさらに詳細に説明する。
【００１７】
いくつかの実施例が図面を参照して説明される。以下に説明するいずれの実施例も請求範囲に記載された本願を限定するものではなく、実施例において説明される全ての要素及び要素の組み合わせが、本願発明の課題を解決ための手段として必ずしも必須であるというわけではない。
【００１８】
以下の説明において、処理は、いくつかの場合において、動作する「プログラム」を主語として説明される。プログラムがプロセッサによって実行される場合、所定の処理が実行される。したがって、処理の主語はプロセッサである。動作するプログラムが主語として開示されている処理は、プログラムを実行するプロセッサ又はプロセッサを含む装置（例えば、制御デバイス、コントローラ又はストレージシステム）によって実行される処理でもある。さらに、プロセッサがプログラムを実行するときに実行される処理は、プロセッサに代えて又は加えて、ハードウェア回路によって実行することが可能である。
【実施例１】
【００１９】
実施例１において、ストレージ階層化及びストレージＩ／Ｏ制御から起こり得る問題を解決する方法が、以下に説明される。
【００２０】
図１は、サーバから見た実施例１に係る計算機システムの図を示す。計算機システムは、サーバ１００及びストレージシステム２００を含むことができる。サーバは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１０１、プロセッサ１０２、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、サーバ制御情報１０４、アプリケーション１０５、サーバプログラム１０６、及びストレージＩ／Ｆ（ＩｎｔｅｒＦａｃｅ）１０８を含むことができる。サーバ１００は、ＯＳ及びデータベースのようなアプリケーションを実行することによってサービスを提供する。ストレージシステム２００は、ストレージＩ／Ｆ２０２を有する。データベースシステムによって処理されるデータは、ストレージシステム２００に格納される。サーバ１００はストレージシステム２００にネットワーク１１０を介して接続される。ＯＳ１０１、サーバプログラム１０６及びアプリケーション１０５は、メモリに格納され、ＤＲＡＭ１０３にロードされることができる。ＤＲＡＭ１０３及びプロセッサ１０２は、協働してサーバコントローラとして機能することができ、サーバ１００の機能の制御を容易化する。メモリは、計算機読み取り可能な記憶媒体の形態であってもよく、下記のような計算機読み取り可能な信号媒体に代えられてもよい。
【００２１】
実施例における計算機プログラムは、計算機読み取り可能な記憶媒体又は計算機読み取り可能な信号媒体のような、計算機読み取り可能な媒体に格納することができる。計算機読み取り可能な記憶媒体は、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、半導体記憶デバイス若しくはドライブ、又は電子情報を格納するのに適した他のタイプの非一時的媒体のような、有体の媒体を含むことができ、また、これらに限定されない。計算機読み取り可能な信号媒体は、搬送波のような媒体を含むことができる。
【００２２】
図２は、ストレージシステムから見た実施例１に係る計算機システムの図を示す。ストレージシステム２００は、キャッシュユニット２０１、ストレージＩ／Ｆ２０２、プロセッサ２０３、ディスクＩ／Ｆ２０４、ボリューム２０５、ＨＤＤ２０６、ストレージ制御情報２０７、及びストレージプログラム２０８を有する。ストレージＩ／Ｆ２０２は、サーバ１００にネットワーク１１０を介して接続され、サーバ１００との通信を媒介する。プロセッサ２０３は、ストレージプログラム２０８に格納済みの多くの種類のプログラムを実行することによって、多くの種類の処理を実行する。さらに、プロセッサ２０３は、ストレージ制御情報２０７に格納済みの多くの種類の情報を使用することによって、多くの種類の処理を実行する。ディスクＩ／Ｆ２０４は、物理記憶デバイスの一例である少なくとも一つのＨＤＤ２０６と、バスを介して接続されている。一例において、データを管理するように構成されたボリューム２０５は、ＨＤＤ２０６の少なくとも一つの記憶領域によって構成することが可能である。物理記憶デバイスは、ＨＤＤ２０６に限定されず、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）であってもよい。さらに、少なくとも一つのＨＤＤ２０６は、パリティグループの単位でまとめられ、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）のような高信頼性技術を使用することも可能である。ストレージ制御情報２０７は、多くの種類のプログラムに使用される多くの種類の情報を含む。ストレージプログラム２０８は、多くの種類のプログラムを含む。例えば、リード処理プログラムやライト処理プログラム等である。キャッシュユニット２０１は、性能向上のため、ＨＤＤ２０６に格納されるデータをキャッシュする。
【００２３】
ストレージ制御情報２０７及びストレージプログラム２０８は、プロセッサ２０３による実行のためにメモリに格納されてもよい。プロセッサ２０３及びメモリは協働してストレージシステムコントローラとして機能することができ、ストレージシステム２００の機能の制御を容易化する。メモリは、計算機読み取り可能な記憶媒体の形態であってもよく、上記のような計算機読み取り可能な信号媒体に代えられてもよい。
【００２４】
図３は、ストレージシステム２００において実行されるストレージ階層化機能及びサーバ１００において実行されるストレージＩ／Ｏ制御機能を示す図面例である。これら機能は、当該技術分野において知られた技術によって実行が可能である。サーバ１００は、仮想マシン５００〜５０２を有し、それらは、ＩＯＰＳ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）で示されているストレージＩ／Ｏ制御機能の設定値であるアクセス数有する。
【００２５】
まず、ストレージ階層化機能を説明する。ストレージシステム２００において、ＳＳＤ、ＳＡＳ、ＳＡＴＡのような物理記憶デバイスは、容量プールを形成する。ＶＯＬ（ボリューム）は、ページ４００と呼ばれる細粒セグメントを含む。データを格納する領域のみが、物理領域に対応する。データがサーバ１００から書き込まれる場合、物理領域が割り当てられる。ストレージシステムは、各ページへのＩ／Ｏの数を監視し、監視されているデータに基づいてデータを移動する。
【００２６】
仮想マシンは、サーバ１００において生成される。記憶領域３００は、仮想マシンイメージを格納する。一つのボリュームは、図３に示すように、複数の仮想マシンイメージを格納することが可能である。仮想マシンに使用されるデータは、仮想マシンイメージと同様に、格納されることが可能である。
【００２７】
ストレージＩ／Ｏ制御機能は、ＩＯＰＳ（ＩＯ秒毎）において最大アクセス数を設定する。本例において、仮想マシン５００の設定値は２５０ＩＯＰＳであり、仮想マシン５０１の設定値は８００ＩＯＰＳであり、仮想マシン５０２の設定値は４００ＩＯＰＳである。
【００２８】
図４は、ストレージ階層化及びストレージＩ／Ｏ制御によって引き起こされる問題の一例を示している。図４の例において、仮想マシン５０１及び５０２に対応する記憶領域の性能は、３００ＩＯＰＳである。記憶領域がボトルネックである場合、ストレージＩ／Ｏ制御は、設定値の比率に従って、仮想マシン５０１及び５０２によって発行されるＩＯＰＳを制御する。本例において、仮想マシン５０１の設定値は８００ＩＯＰＳであり、仮想マシン５０２の設定値は４００ＩＯＰＳであり、記憶領域の性能は３００ＩＯＰＳである。したがって、仮想マシン５０１のＩＯＰＳは、２００ＩＯＰＳに制限され、仮想マシン５０２のＩＯＰＳは、１００ＩＯＰＳに制限される。
【００２９】
ストレージシステムが仮想マシン５０１から受信する最大ＩＯＰＳは２００であるが、ストレージシステムが仮想マシン５００から受信する最大ＩＯＰＳは２５０である。仮想マシン５００よりも仮想マシン５０１が優先される場合であっても、仮想マシン５００のＩＯＰＳは、仮想マシン５０１のＩＯＰＳよりも大きくなる。したがって、仮想マシン５０１に対応するページはＳＳＤに移動されない。一旦低性能ＨＤＤにデータが格納されると、当該データはＳＳＤ又は高性能ＨＤＤに移動されない。
【００３０】
サーバ１００は、ストレージシステム２００がストレージ階層をサーバ１００から受信したＩＯＰＳに基づいて制御していることを認識していない。さらに、ストレージシステム２００は、サーバ１００がＩＯＰＳを制御していることを認識していない。
【００３１】
図５は、実施例１を示す図を示す。
【００３２】
実施例１において、管理サーバ６００が利用され、機能状態の認識を容易なものとする。
【００３３】
管理サーバ６００で実行される処理は、サーバ１００又はストレージシステム２００で実行することも可能である。サーバ１００及びストレージシステム２００についての情報を取得できる任意の装置が、処理を実行することが可能である。本例において、これら処理は、管理サーバ６００によって実行される。
【００３４】
管理サーバ６００は、サーバ１００及びストレージシステムに物理的に接続されている。まず、管理サーバ６００は、各仮想マシンがＩＯの数を制御しているか問い合わせる。その後、管理サーバ６００は、仮想マシンを格納しているボリュームが階層化ボリュームであるか問い合わせる。最後に、管理サーバ６００は、必要であれば、ＩＯＰＳ制御の停止を指示する。
【００３５】
この停止により、仮想マシン５０１は、例えば、最大８００ＩＯＰＳを発行することが可能である。この構成により、仮想マシン５０１の最大ＩＯＰＳを仮想マシン５００の最大ＩＯＰＳより大きくすることができる。従って、仮想マシン５００と５０１のデータが置換され、仮想マシン５０１のデータがＳＳＤに格納され得る。
【００３６】
上記例において、ＩＯＰＳの制限のみが停止される。ストレージＩ／Ｏ制御機能を解除することでＩＯＰＳの制限を停止することも可能である（最大ＩＯＰＳ８００および４００を削除）。その場合、問題が解決した後にストレージＩ／Ｏ制御機能を再度設定することが必要となる。
【００３７】
実施例１を実現するためのプログラムやテーブル構造が、図６〜１０を参照して下記で説明される。図６〜１０は、サーバ１００、ストレージシステム２００及び管理サーバ６００におけるプログラム及び制御情報を示す図である。
【００３８】
図６は、実施例１に係るサーバプログラム１０６及びサーバ制御情報１０４を示す図である。サーバプログラム１０６は、サーバライトプログラム及びキャンセルプログラムを含み、これらは下記で詳細に説明される。サーバ制御情報１０４は、Ｉ／Ｏ制御テーブルを含む。このテーブルは、ストレージＩ／Ｏ制御機能によって使用される。このテーブルの詳細は、図７を参照して説明する。
【００３９】
図７は、実施例１に係る、サーバ制御情報におけるＩ／Ｏ制御テーブルの一例を示す。このテーブルは、仮想マシンＩＤ、設定値、制御フラグ、ボリュームＩＤ及びアドレス等の情報を含む。仮想マシンＩＤは、仮想マシンを一致に識別する識別子である。設定値は、仮想マシンＩＤにより特定される仮想マシンによって発行される最大ＩＯＰＳである。制御フラグは、仮想マシンがＩＯＰＳの数を制御しているか否かを管理する。「ＯＦＦ」は、仮想マシンがＩＯＰＳの数を制御していないことを示し、「ＯＮ」は、仮想マシンがＩＯＰＳの数を制御していることを示す。ボリュームＩＤは、仮想マシンＩＤで特定される仮想マシンイメージを格納するボリュームの識別子である。アドレスは、仮想マシンイメージを格納するボリュームにおけるアドレスである。
【００４０】
図８は、実施例１に係る、ストレージプログラム２０８及びストレージ制御情報２０７を示す図である。ストレージプログラム２０８は、ストレージライトプログラム、Ｉ／Ｏカウント変更プログラム、重複排除プログラム、及びデステージ重複排除プログラムを含む。これらプログラムは、下記でさらに詳細に説明される。ストレージ制御情報は、例えば、ボリュームテーブル、ページテーブル、及び重複排除ドメインテーブルを含む情報を含む。
【００４１】
図９は、実施例１に係る、ストレージ制御情報におけるボリュームテーブルの一例である。このテーブルは、ボリュームＩＤ、階層フラグ、アドレス、プールＩＤ、ページＩＤ、ＩＯＰＳ及びピン止め等の情報を含むことができる。ボリュームＩＤは、ボリュームを一意に識別する識別子である。階層フラグは、ストレージ階層化機能がボリュームＩＤで特定されるボリュームに対して適用されているか否かを管理する。「ＯＮ」は当該機能が適用されていることを示し、「ＯＦＦ」は、当該機能が適用されていないことを示す。アドレス、プールＩＤ及びページＩＤは、ボリュームにおけるアドレス、プール、及びページ情報間の関係の管理に寄与する。プールＩＤ及びページＩＤにおける「−」は、物理領域がボリュームＩＤ及びアドレスで指定される記憶領域に対して割り当てられていないことを示す。ＩＯＰＳは、サーバから受信されるＩ／Ｏの数を示す。ストレージ階層化機能は、ＩＯＰＳに基づいて、各データに対してより適切な記憶媒体を判定する。ピン止めは、ページが固定された記憶媒体を管理する。「ＯＦＦ」は、当該ページに対してピン止めオプションが使用されていないことを示す。「ＳＡＴＡ」は、ＳＡＴＡにおいてデータが固定されていることを示す。ＳＳＤ、ＳＡＳ等が、ピン止めの値として格納される。
【００４２】
図１０は、実施例１に係る、ストレージ制御情報におけるページテーブルの一例である。このテーブルは、プールＩＤ、ページＩＤ、フリーフラグのような情報を含むことができる。プールＩＤは、容量プールを識別する識別子である。ページＩＤは、プールにおけるページを識別する識別子である。フリーフラグは、ページがフリーであるか否かを示す。「ＹＥＳ」は、プールＩＤ及びページＩＤで特定される領域がフリーであることを示し、「ＮＯ」は、プールＩＤ及びページＩＤで特定される領域がフリーではないことを示す。
【００４３】
図１１は、実施例１に係る、制御確認プログラム及びキャンセルプログラムのフロー図例を示す。制御確認プログラムは、管理サーバにおいて実行され、キャンセルプログラムはサーバにおいて実行される。まず、制御確認プログラムは、サーバに要求を送信することによって、ストレージＩ／Ｏ制御によりＩ／Ｏ数が制限されている仮想マシンを特定する（Ｓ１００）。制御確認プログラムから要求を受信したキャンセルプログラムは、ＶＭ情報を管理サーバに報告する（Ｓ１０２）。この処理は、Ｉ／Ｏ制御テーブルにアクセスすることによって達成される。制御確認プログラムは、Ｓ１０２で報告された仮想マシンに対応するストレージボリュームを検出する（Ｓ１０３）。その後、当該プログラムは、検出されたボリュームが階層化ボリュームか確認し、階層化ボリュームをリスト化する（Ｓ１０４）。これは、要求を、ボリュームテーブルを管理しているストレージシステムに送信することによって実装できる。
【００４４】
制御確認プログラムは、ＶＭのためのストレージＩ／Ｏ制御のキャンセルを指示する（Ｓ１０５）。キャンセル指示を受信したキャンセルプログラムは、Ｉ／Ｏ制御テーブルにおいて制御フラグをＯＦＦに変化させ、管理サーバに変更を報告する（Ｓ１０６）。その後、キャンセルプログラムは、処理を終了する（Ｓ１０７）。最後に、制御確認プログラムは、処理を終了する（Ｓ１０８）。
【００４５】
Ｓ１０５及びＳ１０６におけるフローは、ＩＯＰＳが制御されておらず、検出された仮想マシンの設定値よりも小さい設定値を有する１以上の仮想マシンが存在する場合のみ、実行することが可能である。本例において、仮想マシン５００のＩＯＰＳは制御されておらず、仮想マシン５００の設定値は仮想マシン５０１の設定値よりも小さい。従って、キャンセルプログラムは、仮想マシン５０１の制御フラグをＯＦＦに変更する。
【００４６】
ストレージＩ／Ｏ制御は、制御フラグがＯＦＦに変更されても、データがＳＳＤ又は高性能ＨＤＤに移動される前に、フラグをＯＮに再び変更し得る。従って、所定期間の間ＯＦＦ状態を維持する方法を実装することも可能である。
【００４７】
ＶＭの一部に対応するフラグを変更する方法を、実装することも可能である。例えば、最大設定値を有するＶＭのフラグのみが変更される。これにより、高優先度ＶＭのデータ移動の可能性を、高めることができる。
【００４８】
上記の方法において、ＶＭに対するＩＯＰＳ制御はキャンセルされる。ＩＯＰＳが制御されていないＶＭに対するＩＯＰＳ制御を開始する方法も、実装することが可能である。例えば、ＶＭ５００のＩＯＰＳを制御することによって、ＶＭ５０１のデータはＳＳＤ又は高性能ＨＤＤに移動され易くなる。ＶＭ５０１の設定値よりも小さい設定値を持つ低優先度ＶＭが候補となる。ＶＭ５００に発行されるＩＯの数は、設定値とＶＭ５０１の制御されたＩＯＰＳの比率に従って、制御することも考え得る。本例において、ＶＭ５０１の設定値は８００ＩＯＰＳであり、制御されたＩＯＰＳは２００ＩＯＰＳである。ＶＭ５００の設定値は２５０ＩＯＰＳである。従って、ＶＭ５００のＩＯＰＳは、６２．５ＩＯＰＳに制限することが可能である。
【００４９】
図１２（ａ）は、実施例１に係る他の方法を示す。具体的には、図１２は、制御確認プログラム及びキャンセルプログラムの他の例、並びに、Ｉ／Ｏカウント変更プログラムの一例を示す。制御確認プログラムは、管理サーバにおいて実行され、キャンセルプログラムはサーバにおいて実行され、Ｉ／Ｏカウント変更プログラムはストレージシステムにおいて実行される。
【００５０】
本制御方法は、ＩＯＰＳの制限がない場合のＩＯＰＳを推定し、推定されたＩＯＰＳに基づいてデータを移動する。図の例においては、仮想マシン５０１の推定ＩＯＰＳは、仮想マシン５００の推定ＩＯＰＳよりも大きくなり得る。
【００５１】
まず、制御確認プログラムは、ストレージＩ／Ｏ制御によりＩ／Ｏ数が制限されている仮想マシンとその設定値を、サーバに要求する（Ｓ２００）。要求を受信したキャンセルプログラムは、仮想マシンＩＤ、設定値、制御されたＩＯＰＳ、ボリュームＩＤ及びアドレスを管理サーバに報告する（Ｓ２０１）。この処理は、Ｉ／Ｏ制御テーブルにアクセスすることで実現される。
【００５２】
続いて、制御確認プログラムは、各ページの適切なＩＯＰＳを推定し、推定されたＩＯＰＳに基づいて階層化を制御する（Ｓ２０２）。このとき、ストレージシステムのＩ／Ｏカウント変更プログラムは、Ｉ／Ｏ制御により制御されたＩＯＰＳを、ボリュームＩＤ、仮想マシンによって使用されているアドレス及びストレージＩ／Ｏ制御機能の設定値と共に、通知される。通知を受けたＩ／Ｏカウント変更プログラムは、制御確認プログラムからのボリュームＩＤ及びアドレスに対応するページを検出する（Ｓ２０３）。この処理は、ボリュームテーブルを使用することによって実現される。
【００５３】
次に、Ｉ／Ｏカウント変更プログラムは、ページの現在のＩＯＰＳと、通知された制御されたＩＯＰＳと設定値との比率と、に基づいて適切なページＩＯＰＳを推定する（Ｓ２０４）。例えば、当該プログラムは、通知された設定値と制御されたＩＯＰＳとの比率を計算する。さらに、当該プログラムは、ページＩＯＰＳの現在の値と計算された比率との積を計算し、ページＩＯＰＳを計算された値で置換する。これは一例であって、他の計算を使用することが可能である。Ｉ／Ｏカウント変更プログラムは、ページテーブルにおけるＩＯＰＳを更新する（Ｓ２０５）。最後に、Ｉ／Ｏカウント変更プログラムは、処理を終了する（Ｓ２０６）。Ｓ２０２のフローの後、制御確認プログラムは、ＶＭのためのストレージＩ／Ｏ制御のキャンセルを指示する（Ｓ２０７）。キャンセル指示を受信したキャンセルプログラムは、Ｉ／Ｏ制御テーブルにおいて制御フラグをＯＦＦに変更する（Ｓ２０８）。最後に、制御確認プログラムは、処理を終了する（Ｓ２０９）。
【００５４】
図１２（ｂ）は、実施例１に係る、ページの現在のＩＯＰＳ並びに通知された設定値及び制御されたＩＯＰＳに基づいて、適切なページＩＯＰＳを推定する例を示す。図１２（ｂ）の例において、仮想マシン５１２は、ページ４１２、４１３及び４１４に対するＩ／Ｏを実行する。ページ４１２は、３０ＩＯＰＳのレートで現在アクセスされており、ページ４１３は、２０ＩＯＰＳのレートで現在アクセスされており、ページ４１４は、３０ＩＯＰＳのレートで現在アクセスされている。図１２（ａ）のフローから、ストレージシステムは、仮想マシン５１２の設定値と制御されたＩＯＰＳを通知される。本例において、設定値は８００ＩＯＰＳであり、制御されたＩＯＰＳは、８０ＩＯＰＳである。通知されたＩＯＰＳから、ストレージシステムは、仮想マシン５１２に関連づけられたページに、現在ＩＯＰＳと通知されたＩＯＰＳとに基づいてアクセスレートを比例的に割り当てることによって、ページＩＯＰＳを推定する。本例において、各ページに対する現在ＩＯＰＳと制御ＩＯＰＳ（８０ＩＯＰＳ）との比率が考慮される。制御されたＩＯＰＳは、ページ４１２、４１３及び４１４のＩＯＰＳの総和として計算される。ページ４１２の比率は３０ＩＯＰＳ／８０総ＩＯＰＳであり、ページ４１３の比率は２０ＩＯＰＳ／８０総ＩＯＰＳであり、ページ４１４の比率は３０ＩＯＰＳ／８０総ＩＯＰＳである。従って、ページ４１２の推定アクセスレートは、８００ＩＯＰＳ＊３０ＩＯＰＳ／８０ＩＯＰＳ、つまり、３００ＩＯＰＳである。同様に、ページ４１３の推定アクセスレートは、２００ＩＯＰＳであり、ページ４１４の推定アクセスレートは、３００ＩＯＰＳである。
【００５５】
実施例１において、説明された例は仮想マシンについてものであるが、物理マシンに対しても使用することが可能である。ストレージＩ／Ｏ制御機能は、物理サーバ間又は物理サーバと物理サーバに接続された管理サーバ間の通信によって、実現される。
【実施例２】
【００５６】
実施例２において、ストレージ階層化及び重複排除により引き起こされる可能性がある問題を解決する方法を下記に説明する。実施例２のハードウェア構成は、上記実施例１と同様とすることが可能である。さらに、実施例１において示された図面、テーブル、プログラムは、所望の実装に拠って、実施例２のために利用することが可能である。
【００５７】
図１３は、ストレージ階層化と重複排除とによって引き起こされる問題の例を示す図である。
【００５８】
ストレージシステム２００は、重複排除機能を有する。重複排除機能が階層化ストレージシステムにおいて実行される場合、異なる記憶媒体に格納されているデータが重複排除され得る。図１３の例は、ＳＳＤのデータとＳＡＴＡの他のデータとが重複排除されている。二つの場合がある。一つには、ＳＡＴＡのデータが削除されて、ＳＳＤのデータを指すポインタと置換される。他の一つには、ＳＳＤのデータが削除されて、ＳＡＴＡのデータを指すポインタと置換される。一般に、最初のケースが適用されるが、二つ目のケースも様々な理由から利用され得る。例えば、キャッシュメモリ（ＤＲＡＭ）上にキャッシュされているデータがデステージされる場合、ストレージシステムは、同一データの存在検出を実行し、重複排除を実行する。物理記憶デバイスへの転送は省略され、ストレージシステムにおける内部帯域の効率性を改善することが可能である。
【００５９】
ＳＡＴＡのデータが削除される場合、ＳＡＴＡへのアクセスがＳＳＤに移される。そのため、ＳＳＤにもともと格納されていたデータに対するアクセスが、もともとＳＡＴＡに格納されていたデータに対するアクセスによって阻害され得る。ＳＡＴＡのデータが削除されない場合、ＳＳＤへのアクセスはＳＡＴＡに移される。従って、ＳＳＤを介してデータにアクセスしていたアプリケーションは、性能の低下を受け得る。
【００６０】
実施例２は、上記の可能性に対応することが可能である。実施例２において、あるアプリケーションのワークロードがＳＳＤの他のワークロードを阻害し得る場合、ストレージ階層化機能のピン止めオプションが使用される。従って、実施例２は、ピン止めされたデータに対して重複排除を実行しない。
【００６１】
図１４は、実施例２に係る、ピン止めされたデータの重複排除の実行を避ける重複排除プログラムの例である。重複排除プログラムは、ストレージシステムにおいて実行される。
【００６２】
まず、重複排除プログラムは、重複排除対象領域を検出する（Ｓ３００）。当該プログラムは、検出された領域を含むページを検出する（Ｓ３０１）。当該プログラムは、ページがピン止めされているか否かを確認する（Ｓ３０２）。ページがピン止めされている場合（ＹＥＳ）、当該プログラムは重複排除ステップをスキップし、処理を終了する（Ｓ３０４）。ページがピン止めされていない場合（ＮＯ）、当該プログラムは、Ｓ３０３に進み、重複排除処理を実行する。この処理は、当業者にとって知られた重複排除処理によって実装可能である。重複したデータの一つは、削除されないデータに対するポインタと置換される。Ｓ３０３の後、当該プログラムは処理を終了する（Ｓ３０４）。
【００６３】
ＳＳＤのデータが削除される場合の方法を、以下に説明する。高性能記憶媒体のデータが削除対象となると、重複排除の実行は、他方のデータを格納する記憶媒体のタイプによって判定される。例えば、同一データがＳＳＤとＳＡＳに格納されている場合、ＳＳＤのデータを削除可能である。しかし、同一データがＳＳＤとＳＡＴＡに格納されている場合、ＳＳＤのデータを削除すべきではない。従って、重複排除処理は実行されない。この方法は、対象データで重複排除が可能なデータを格納している記憶媒体のタイプを管理する。
【００６４】
図１５は、実施例２に係る、重複排除ドメインテーブルの例を示す。本例の最初の行（「ＳＳＤ」）は、ＳＳＤのデータがＳＳＤのデータを削除することにより重複排除される場合、維持されるデータはＳＳＤ又はＳＡＳに格納されていなければならない、ことを示す。残されるデータがＳＡＴＡ又は外部ストレージに格納されている場合、ＳＳＤのデータは、重複排除されない。本例の２番目の行（「ＳＡＳ」）は、ＳＡＳのデータがＳＡＳのデータを削除することにより重複排除される場合、維持されるデータはＳＳＤ、ＳＡＳ又はＳＡＴＡに格納されていなければならない、ことを示す。残されるデータが外部ストレージに格納されている場合、ＳＡＳのデータは、重複排除されない。
【００６５】
図１６は、実施例２に係るデステージ重複排除プログラムの例を示し、デステージ重複排除プログラムは、重複排除ドメインテーブルを使用し、データが重複排除可能であるか否か確認する。まず、デステージ重複排除プログラムは、デステージ対象記憶媒体を検出する（Ｓ４００）。当該プログラムは、データのハッシュ値を計算し（Ｓ４０１）、同一のハッシュ値を有するデータが存在するか確認する（Ｓ４０２）。確認結果が「ＮＯ」である場合、当該プログラムはＳ４０６に進み、データをオリジナルアドレスにデステージする。確認結果が「ＹＥＳ」の場合、当該プログラムは、検出されたデータを格納する記憶媒体がデステージデータについて重複排除可能であるか確認する（Ｓ４０３）。
【００６６】
確認結果が「ＮＯ」である場合、当該プログラムはＳ４０６に進む。従って、重複排除ステップはスキップされる。確認結果が「ＹＥＳ」である場合、当該プログラムはデータを比較する（Ｓ４０４）。データの内容が同一である場合、当該プログラムは、Ｓ４０２で検出されたデータのアドレスを有するポインタに置換し（Ｓ４０７）、処理を終了する（Ｓ４０８）。
【００６７】
比較結果が「ＮＯ」である場合、当該プログラムはＳ４０６に進む。Ｓ４０６において、当該プログラムはデータをオリジナルアドレスにデステージし（Ｓ４０６）、処理を終了する（Ｓ４０８）。
【００６８】
データがキャッシュから記憶媒体にデステージされる場合を、図１７を参照して説明している。この方法は、データがサーバからストレージに書き込まれる場合にも適用される。
【００６９】
図１７は、実施例２に係る、サーバライトプログラム及びストレージライトプログラムの例を示す。
【００７０】
まず、サーバライトプログラムは、ライトデータのハッシュ値を計算し、当該ハッシュ値を含むライトコマンドを発行する（Ｓ５００）。ライトコマンドを受信した（Ｓ５０１０）ストレージライトプログラムは、同一ハッシュ値のデータが存在するか確認する（Ｓ５０２）。確認結果が「ＮＯ」の場合、当該プログラムはステップＳ５０４に進み、サーバライトプログラムにライトデータ転送が必要であることを通知する（Ｓ５０４）。確認結果が「ＹＥＳ」である場合、当該プログラムは、検出データを格納している記憶媒体がライトデータについて重複排除可能であるか確認する（Ｓ５０３）。
【００７１】
確認結果が「ＮＯ」である場合、当該プログラムはＳ５０４に進み、サーバに対してライトデータの転送が必要であることを示す。確認結果が「ＹＥＳ」である場合、当該プログラムはＳ５０５に進む。当該プログラムは、サーバライトプログラムにライトデータの転送が不要であることを通知し、Ｓ５０６において、検出されたデータのアドレスを有するポインタに置換する。当該プログラムはＳ５１０に進み、処理を終了する。
【００７２】
ストレージライトプログラムから応答を受信したサーバライトプログラムは、ライトデータの転送が必要であるか確認する（Ｓ５０７）。確認結果が「ＮＯ」である場合、当該プログラムはＳ５１１に進む。確認結果が「ＹＥＳ」である場合、当該プログラムはライトデータをストレージシステムに転送し（Ｓ５０８）、Ｓ５１１に進む。Ｓ５１１において、当該プログラムは処理を終了する。ライトデータをサーバから受信したストレージライトプログラムは、ライトデータをオリジナル領域に格納し（Ｓ５０９）、Ｓ５１０に進んで処理を終了する。
【００７３】
上記詳細な説明の一部は、計算機内の動作のアルゴリズム又は記号表現の観点から示されている。これらアルゴリズムの記述及び記号表現は、データ処理の分野の当業者によって使用される手段であり、他の当業者に対して最も効果的に技術革新のエッセンスを伝えるものである。アルゴリズムは、所望の終了状態又は結果につながる、定義された一例のステップである。実施例において、実行されるステップは、具体的な結果を得るための具体的な量の物理的な操作を必要とする。
【００７４】
さらに、本願の他の実施例は、本願の明細書及び教示を考慮することによって、当業者にとって明らかであろう。上記実施例の様々な態様及び／又は構成要素は、単一で又は任意の組み合わせにおいて使用することができる。明細書の記載及び実施例は単に例として考慮されることが意図されており、本願の真の範囲及び精神は、以下の請求範囲の記載により示されている。
【図１】
2016511474.tif 000003
【図２】
2016511474.tif 000004
【図３】
2016511474.tif 000005
【図４】
2016511474.tif 000006
【図５】
2016511474.tif 000007
【図６】
2016511474.tif 000008
【図７】
2016511474.tif 000009
【図８】
2016511474.tif 000010
【図９】
2016511474.tif 000011
【図１０】
2016511474.tif 000012
【図１１】
2016511474.tif 000013
【図１２（ａ）】
2016511474.tif 000014
【図１２（ｂ）】
2016511474.tif 000015
【図１３】
2016511474.tif 000016
【図１４】
2016511474.tif 000017
【図１５】
2016511474.tif 000018
【図１６】
2016511474.tif 000019
【図１７】
2016511474.tif 000020
【国際調査報告】
2016511474.tif 000021