(57)【要約】    【課題】一部未割当ての実ディスクを含めてユーザ指定容量の仮想ディスクに対し最適な実ディスクを割当てる。    【解決手段】  容量指定部２８は、ディスクプール２４に設けた仮想ディスクのユーザが希望する容量を指定する。第１選出部３２は、実ディスクを登録したディスクプールから実ディスク数を最小とするように指定容量を満たす１又は複数の実ディスクを選出して仮想ディスクに割り当てる。第２選出部３４は、第１選出部３２で選出できなかった場合、実ディスク内に分散する未割当領域の数であるエクステント数を最小とするように指定容量を満たす１又は複数の実ディスクを選出して割り当てる。    【選択図】      図１
2006127143.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出ステップと、
前記第１選出ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を実行させることを特徴とする仮想ストレージ管理プログラム。
【請求項２】
請求項１記載の仮想ストレージ管理プログラムに於いて、更に、前記第１及び第２選出ステップに先立って、物理ボリューム群をグループ分けし、各グループを順番に選択して前記第１及び第２選出ステップを実行させる対象グループ選出ステップを備えたことを特徴とする仮想ストレージ管理プログラム。
【請求項３】
請求項１記載の仮想ストレージ管理プログラムに於いて、前記対象グループ選出ステップは、
仮想化スイッチ機能を備えたコントローラに接続する接続パス単位に複数の実ディスク群をグループ化し、各グループを順番に選択して前記第１及び第２選出ステップを実行させる第１対象グループ選出ステップと、
前記第１対象グループ選出ステップで選出できなかった場合に、前記複数のコントローラと接続しているＲＡＩＤ装置単位の複数の物理ボリューム群をグループ化し、各グループを順番に選択して前記第１及び第２選出ステップを実行させる第２対象グループ選出ステップと、
前記第２対象グループ選出ステップで選出できなかった場合に、前記コントローラと接続している全てのＲＡＩＤ装置を１グループとして物理ボリューム群を選択して前記第１及び第２選出ステップを実行させる第３対象グループ選出ステップと、
を備えたことを特徴とする仮想ボリューム管理プログラム。
【請求項４】
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出ステップと、
前記第１選出ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を備えたことを特徴とする仮想ストレージ管理方法。
【請求項５】
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定部と、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出部と、
前記第１選出部で選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出部と、
を備えたことを特徴とする仮想ストレージ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プールで管理される物理ボリュームをユーザが指定した容量の仮想ボリュームに割り当てる仮想ストレージ管理プログラム、方法及び装置に関し、特に、信頼性、保守性及び性能を満たすように論理ボリュームを選出して仮想ボリュームに割り当てる仮想ストレージ管理プログラム、方法及び装置に関する。
【背景技術】
【０００２】
従来、複数のディスクストレージを仮想化して一括管理し、サーバに仮想ボリュームを割り当てる仮想ストレージシステムが知られている。このような仮想ストレージシステムにあっては、仮想化されたディスクストレージがサーバと物理ディスクとの間に配置され、サーバからは仮想化されて管理されている仮想ディスクにアクセスする。これにより物理的なストレージの運用管理をサーバから完全に切り離すことができ、ハードウェアに依存しないオープンなストレージエリアネットワーク（ＳＡＮ）環境が構築できる。
【０００３】
仮想ストレージシステムは、サーバと物理ストレージの間に配置された仮想ストレージ管理プログラムを実行する制御装置により実現される。この制御装置は、物理ディスクを登録したストレージプールと仮想化スイッチで構成される仮想ストレージ環境をサーバに対し構築し、仮想ディスクに対しサーバのアプリケーションに対応したユーザが希望する容量の物理ディスクをストレージブールから割り当てている。
【０００４】
従来の仮想ディスクを構成する物理ディスクの割当は、システム構成設計においてユーザ指定容量に対し適切なサイジングを行って物理ディスクを割当てている。
【０００５】
また論理ボリュームとして、磁気ディスク装置、光ディスク装置、半導体メモリ装置といった複数種類のデバイスが混在する場合には、装置の種類毎にグループ分けし、グループ単位に仮想ディスクに物理デバイスを割り当てるシステムも知られているが、仮想ディスクに対する物理デバイスの割当は、同様にシステム構成設計において適切なサイジングを行って物理デバイスを割当てている。
【特許文献１】特開平７−８４８４０号公報
【特許文献２】特開平６−１０３１２号公報
【特許文献３】特許第２９２４１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来のシステム構成設計において適切なサイジングを行って仮想ディスクに物理ディスクを割り当てる方法にあっては、物理ディスクを仮想ディスクを割り当てる際に、物理ディスクが未割当が否か判別し、未割当の物理ディスクを選択して割り当てており、ユーザの指定容量が物理ディスクの容量の整数倍に制約され、ユーザ指定容量が必要な容量より多めとなり、その分、無駄な割当てとなっている。
【０００７】
またユーザ指定容量に見合った物理ディスクの割当をするためには、未割当て物理ディスクの一部の領域を割り当てる必要があり、このため割当対象となるディスクは、未割当ディスクと一部未割当ディスクが混在することになる。その結果、未割当のディスクのみならず、一部未割当のディスクも考慮した仮想ディスクに対する割当てが必要となるが、一部未割当のディスクについて、どのような割当て方法を構築すべきか課題として残されている。
【０００８】
更に、物理ディスクを構成するＲＡＩＤ装置やそのコントローラの構成や性能といった仕様から、ユーザアプリケーションに最適な仮想ディスクを構成できる物理ディスクの割当てをどのようにするかも、大きな課題として残されている。
【０００９】
本発明は、一部未割当ての物理ディスクを含めて仮想ディスクを構成する最適な物理ディクスを割り当てる仮想ストレージ管理プログラム、方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
図１は本発明の原理説明図である。本発明は、ＲＡＩＤ装置等の物理ボリューム群とサーバ等の上位装置との間に配置された装置のコンピュータにより実行される仮想ストレージ管理プログラムを提供する。なお、仮想ボリュームは仮想ディスクの上位概念であり、また物理ボリュームは実ディスク或いは物理ディスクの上位概念である。
【００１１】
本発明の仮想ストレージ管理プログラムは、コンピュータに、
仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したストレージプールから物理ボリューム数を最小とするように指定容量を満たす１又は複数の物理ボリュームを選出して仮想ボリュームに割り当てる第１選出ステップと、
第１選出ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を実行させることを特徴とする。
【００１２】
ここで第１選出ステップは、
空き容量が指定容量以上で且つ最小容量のエクステントを選択する第１優先選出ステップと、
第１優先選出ステップで選出できなかった場合、空き容量が指定容量以上で且つ最小容量の物理ボリュームを選択する第２優先選出ステップと、
第２優先選出ステップで選出できなかった場合、空き容量が指定容量未満で且つ最大容量の物理ボリュームを選択する第３優先選出ステップと、
を備える。
【００１３】
この第１優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出し、
また第２又は第３優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、エクステント数の少ない順番に選出し、
第２に、エクステント数で選出できない場合は、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第３に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第４に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする。
【００１４】
第２選出ステップは、
空き容量が指定容量未満で且つ最大容量のエクステントを選択する第４優先選出ステップと、
第４優先選出ステップで選出できなかった場合、空きエクステント容量が指定容量以上で且つ最小容量のエクステントを選択する第５優先選出ステップと、
を備えたことを特徴とする。
【００１５】
この第４及び第５優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする。
【００１６】
本発明の仮想ストレージ管理プログラムは、更に、第１選出ステップ及び第２選出ステップに先立って、物理ボリューム群をグループ分けし、各グループを順番に選択して第１及び第２選択ステップを実行させる対象グループ選出ステップを備える。
【００１７】
この対象グループ選出ステップは、
仮想化スイッチ機能を備えたコントローラに接続する接続パス単位に複数の実ディスク群をグループ化し、各グループを順番に選択して第１及び第２選択ステップを実行させる第１対象グループ選出ステップと、
第１対象グループ選出ステップで選出できなかった場合に、複数のコントローラと接続しているＲＡＩＤ装置単位の複数の物理ボリューム群をグループ化し、各グループを順番に選択して第１及び第２選択ステップを実行させる第２対象グループ選出ステップと、
第２対象グループ選出ステップで選出できなかった場合に、コントローラと接続している全てのＲＡＩＤ装置を１グループとして物理ボリューム群を選択して第１及び第２選出ステップを実行させる第３対象グループ選出ステップと、
を備えたことを特徴とする。
【００１８】
ここで、記第１対象グループ選出ステップは、複数の物理ボリューム群との接続パスを、物理ボリューム群のコントローラを意識しない第１接続パスとコントローラを意識してプライマリ接続した第２接続パスに分類し、第１接続パス毎の物理ボリューム群と第２接続パス毎の物理ボリューム群とにグループ化して順番に選出することを特徴とする。
【００１９】
第１対象範囲選出ステップは、仮想ボリュームを構成する物理ボリュームの属する接続パスが偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きい物理ボリューム群の順番に各グループを選出する。
【００２０】
第２対象グループ選出ステップは、仮想ボリュームを構成する実ボリュームの属するＲＡＩＤ装置が偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きいＲＡＩＤ装置の順番に各グループを選出する。
【００２１】
本発明は、仮想ストレージ管理方法を提供する。本発明の仮想ストレージ管理方法は、
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して仮想ボリュームに割り当てる第１選出ステップと、
第１ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を備えたことを特徴とする。
【００２２】
本発明は、仮想ストレージ管理装置を提供する。本発明の仮想ストレージ管理装置は、
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定部と、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように指定容量を満たす１又は複数の物理ボリュームを選出して仮想ボリュームに割り当てる第１選出部と、
第１選出部で選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出部と、
を備えたことを特徴とする。
【００２３】
なお、本発明の仮想ストレージ管理方法及び装置の詳細は、本発明の仮想ストレージ管理プログラムの場合と基本的に同じになる。
【発明の効果】
【００２４】
本発明によれば、サーバとＲＡＩＤ装置の間に配置された装置の仮想モジュール管理プログラムに対しユーザの希望する仮想ボリュームの容量を指定するだけで、まず物理ボリューム数が最小となるようにストレージプール内の物理ボリュームが選出されて仮想ボリュームに割り当てられ、仮想ボリュームに割り当てられた物理ボリュームの数は最小であることから、故障発生要因となる箇所が最小となり、信頼性と保守性を高めることができる。
【００２５】
また物理ボリューム数を最小とする選出ができなかった場合には、物理ボリューム内の一部未使用領域であるエクステントの数が最小となるようにストレージプール内の物理ボリュームが選出されて仮想ボリュームに割り当てられ、フラグメンテーション（断片化）を最小限に抑えることで、アクセス性能の低下を防ぐことができる。
【００２６】
一方、仮想ボリュームに物理ボリュームを割り当てる際に、ストレージプール内の物理ボリューム群を、パス単位、物理ボリュームのＲＡＩＤ装置単位、全てのＲＡＩＤ装置というように性能順のグループに分類し、各グループを性能順に選出して仮想ボリュームを構成する物理ボリュームを割当てることで、性能を考慮した最適な物理ボリュームの割当てができる。
【発明を実施するための最良の形態】
【００２７】
図２は本発明の仮想ストレージ管理処理が適用されるシステム構成のブロック図である。
なお、以下の実施形態の説明において、仮想ボリュームを仮想ディスクとし、物理ボリュームを実ディスクとした場合を例に取っている。
【００２８】
図２において、サーバ１８−１、１８−２とＲＡＩＤ装置１２−１、１２−２との間には、本発明の仮想ストレージ管理処理を実行するコントローラ１０−１、１０−２が配置されている。
【００２９】
コントローラ１０−１、１０−２を遠隔管理する管理サーバ１５には本発明による仮想ストレージ管理プログラムがインストールされており、仮想ストレージ管理プログラムの実行により、ＲＡＩＤ装置１２−１、１２−２としての物理モジュール群を登録したディスクプール（ストレージプール）を作成し、サーバ１８−１、１８−２からのアクセスに対し、物理的なＲＡＩＤ装置１２−１、１２−２の種別、配置、容量を隠蔽し、サーバ１８−１、１８−２で必要とする容量の仮想ディスクを割り当てた仮想ストレージ環境を実現している。
【００３０】
ＲＡＩＤ装置１２−１、１２−２には、それぞれ論理ボリュームとして実ディスク装置１４−１〜１４−４、１６−１〜１６−４が設けられている。
【００３１】
ＲＡＩＤ装置１２−１、１２−２は、コントローラ１０−１、１０−２に対しチャンネルアダプタＣＡを介して接続され、実ディスク装置１４−１〜１４−４、１６−１〜１６−４に対してはデバイスアダプタＤＡを介して接続され、チャンネルアダプタＣＡとデバイスアダプタＤＡの間にコントローラＣＭを設けており、それぞれのＲＡＩＤ装置１２−１、１２−２が上位装置に対し外部記憶のサブシステムを構成している。
【００３２】
図３は図２のシステムにつき、仮想ストレージ環境の機能構成のブロック図である。図３において、サーバ１８−１、１８−２のそれぞれにはユーザのアプリケーション２０−１、２０−２が設けられており、このサーバ１８−１、１８−２はクラスタ構成をとっていることから、アプリケーション２０−１、２０−２は同じものであり、例えばサーバ１８−１をメインとして運用しており、サーバ１８−１がダウンした場合にはサーバ１８−２に切替え（テイクオーバー）が行われる。
【００３３】
サーバ１８−１、１８−２に対し仮想ストレージ環境を提供するコントローラ１０−１、１０−２も二重化されており、それぞれＲＡＩＤ装置１２−１、１２−２の実ディスク装置１４−１〜１４−４、１６−１〜１６−４の割当てにより、仮想ストレージ環境に設けている仮想ディスクを構成している。
【００３４】
このためコントローラ１０−１と１０−２には、いずれか一方の運用状態にあっても常に同じ内容を持った仮想ストレージ環境が実現されており、例えばサーバ１８−１がダウンしてサーバ１８−２に切り替えた際に、仮想ストレージ環境の切替えを必要とすることなく、切替先のサーバ１８−２による同じ仮想ストレージ環境を利用した運用が実現できる。
【００３５】
コントローラ１０−１、１０−２には、仮想化スイッチ２２−１、２２−２、ディスクプール２４−１、２４−２が設けられている。ディスクプール２４にはＲＡＩＤ装置１２−１、１２−２側に設けている実ディスク装置１４−１〜１４−４、１６−１〜１６−４が登録されている。
【００３６】
コントローラ１０−１、１０−２に対しては管理サーバ１５が接続され、管理サーバ１６に仮想ストレージ管理部２６を設けている。仮想ストレージ管理部２６は、仮想ディスク装置に対し希望する容量指定を行うと、指定容量を満たすようにＲＡＩＤ装置１２−１、１２−２側に設けている実ディスク装置１４−１〜１４−４、１６−１〜１６−４の選出を行い、指定容量を満たす仮想ディスクを構成する実ディスク装置の割当てを行う。
【００３７】
仮想化スイッチ２２−１、２２−２は、仮想ディスク群２３−１，２３−２に設けた仮想ディスクとディスクプール２４−１、２４−２から割り当てた実ディスク装置との接続関係を構築する。
【００３８】
仮想ストレージ管理部２６は、コントローラ１０−１、１０−２を遠隔管理する管理サーバ１５上のＣＰＵで本発明の仮想ストレージ管理プログラムを実行することにより実現される機能であり、容量指定部２８、対象グループ選出部３０、第１選出部３２、第２選出部３４の機能を備えている。
【００３９】
容量指定部２８は、サーバ１８−１、１８−２のアプリケーション２０−１、２０−２の運用に必要なユーザが希望する容量の指定を受けて、仮想ディスクに対し実ディスク装置を割り当てるための容量を指定する。
【００４０】
対象グループ選出部３０は、ユーザによる容量指定を受けた仮想ディスクに対し実ディスク装置をディスクプール２４−１，２４−２から選出して割り当てる際に、選出対象グループとする実ディスク群をグループ化し、予め定めた優先順位に従って各グループを選出して実ディスク装置の割当を行う。本発明にあっては、後の説明で明らかにするように、実ディスク群の対象グループ選出は
（１）コントローラ１０−１、１０−２に接続している接続パス単位
（２）コントローラ１０−１、１０−２に接続しているＲＡＩＤ装置単位
（３）コントローラ１０−１、１０−２に接続している全てのＲＡＩＤ装置
にグループ分けして行う。
【００４１】
第１選出部３２は、対象グループ選出部３０で選出されたグループの実ディスク群を対象に、実ディスク数を最小とするように、指定容量を満たす１または複数の実ディスクを選出して仮想ディスクに割り当てる。
【００４２】
第２選出部３４は、第１選出部３２で選出できなかった場合に、実ディスク装置内に分散する未割当領域の数であるエクステント数を最小とするように、指定容量を満たす１又は複数の実ディスクを選出して、仮想ディスクに割り当てる。このようなコントローラ１０−１の機能構成は、コントローラ１０−２についても同じである。
【００４３】
図４は図３のシステムにおける物理ストレージ環境と仮想ストレージ環境の説明図である。
【００４４】
クラスタ１８を構成するサーバ１８−１、１８−２には、ホスト論理ユニットアドレスＨＬとして＃０００、＃００１持つ論理ディスク（論理ボリューム）３８−１、３８−２が設けられ、アプリケーション２０−１、２０−２に対しマルチパスドライブｍｐｈｄを介して接続される。
【００４５】
サーバ１８−１、１８−２の論理ディスク３８−１、３８−２は、図３のコントローラ１０−１、１０−２の機能を統合して実現される仮想ストレージ環境１０に設けた仮想筐体３６の仮想論理ユニットアドレスＶＴＬＵＮとして＃０００１、＃０００１を持つ仮想筐体３６−１、３６−２に対応する。なお、アドレス仮想ホスト論理ユニットＶＨＬのアドレスとして＃０００、＃００１を持つ部分は、サーバ１８−１、１８−２と接続するポート（ｐｏｒｔ）に対する経路情報パス４２−１、４２−２である。
【００４６】
一方、図３のＲＡＩＤ装置１２−１、１２−２により、これを統合して物理モジュール群としてのＲＡＩＤシステム１２が構築されている。ＲＡＩＤシステム１２には、論理ユニットアドレスＬＵＮとして＃００００〜＃０００３をもつ４台の磁気ディスク装置４５−０〜４５−３を備えたＲＡＩＤ装置１２−１と、＃０００４〜＃０００７をもつ４台の磁気ディスク装置４５−４〜４５−７を備えたＲＡＩＤ装置１２−２が設けられてる。なお、チャネルアダプタＣＡ側に示す２系統のアドレスＨＬ＃００００〜＃０００７を持つユニットは、仮想ストレージ環境１０側のポートｐｏｒｔに対する経路情報である。
【００４７】
仮想ストレージ環境１０のディスクプール２４には、ＲＡＩＤシステム１２の磁気ディスク装置４５−０〜４５−７に対応してホスト論理ユニットアドレスＨＬとして＃０００〜＃００３をもつ実ディスク群４０−１、４０−２が登録されている。
【００４８】
仮想ストレージ環境１０の仮想スイッチ２２−１、２２−２は、仮想筐体３６の仮想ディスク３６−１、３６−２に対しディスクプール２４の実ディスク群４０−１、４０−２の中の指定容量を満たすように割当られた実ディスクとの間の接続パスを構築する。
【００４９】
なおＲＡＩＤシステム１２は、チャンネルアダプタＣＡの配下にＲＡＩＤ装置１２−１、１２−２を構成する磁気ディスク装置４５−０〜４５−７を示しているが、実際にはチャンネルアダプタＣＡに続いてコントローラＣＭが設けられ、このコントローラＣＭの配下に設けたデバイスアダプタＤＡを介して磁気ディスク装置４５−０〜４５−７が接続されている。
【００５０】
図５は本発明の仮想ストレージ管理処理を実行する担当コントローラが、コントローラＣＭを意識する必要のないＲＡＩＤ装置と、意識する必要のあるＲＡＩＤ装置とを実ディスク群として接続して、仮想ストレージ環境を構築したシステム構成のブロック図である。
【００５１】
図５におけるＲＡＩＤ装置１２−１１は、コントローラ１０−１１、１０−１２を遠隔管理する管理サーバ１５の仮想ストレージ管理プログラム（仮想ストレージ制御マネージャ）が担当コントローラＣＭを意識する必要のない装置であり、例えば富士通株式会社製のＥＴＥＲＮＵＳ６０００、ＧＲ７４０、ＧＲ８２０、ＧＲ８４０等の機種が対応する。
【００５２】
これに対しＲＡＩＤ装置１２−１２は、コントローラ１０−１１、１０−１２を遠隔管理する管理サーバ１５の仮想ストレージ管理プログラム（仮想ストレージ制御マネージャ）が担当コントローラＣＭを意識する必要のある装置であり、例えば富士通株式会社製のＥＴＥＲＮＵＳ３０００、ＧＲ７１０、ＧＲ７２０、ＧＲ７３０といった機種が、これに該当する。
【００５３】
コントローラ１０−１１、１０−１２から見て担当コントローラＣＭを意識する必要のないＲＡＩＤ装置１２−１１については、コントローラ１０−１１、１０−１２の仮想化スイッチに対し接続パス５０−１、５０−２による接続が行われる。
【００５４】
これに対しコントローラ１０−１１、１０−１２から見て担当コントローラＣＭを意識する必要のあるＲＡＩＤ装置１２−１２にあっては、プライマリ接続パス５２−１、５２−２と点線で示すセカンダリ接続パス５４−１〜５４−３による接続が行われている。
【００５５】
そこで図５のようなＲＡＩＤ装置１２−１１、１２−１２を実ディスク群とした場合に仮想モジュールを構成する実ディスク装置を選択するための選出対象グループのグループ化として、図６に示す優先順位に従って選出対象グループをグループ化する。
【００５６】
図６において、優先順位１位の選出対象グループは、コントローラの仮想化スイッチと接続しているパス単位の実ディスク群を順番に選択する。図５の場合における仮想化スイッチと接続しているパス単位の実ディスク群の選択は、例えば担当コントローラＣＭを意識する必要のないＲＡＩＤ装置１２−１１の接続パス５０−１、５０−２と、例えば担当コントローラＣＭを意識する必要のあるＲＡＩＤ装置１２−１２でプライマリ接続しているプライマリ接続パス５２−１、５２−２の２つの接続パスに限定する。
【００５７】
このようなパス単位の実ディスク群のグループは、次の順番で選択する。
（１）接続パス５０−１の実ディスク装置１４−１１
（２）接続パス５０−２の実ディスク装置１４−１１
（３）接続パス５２−１の実ディスク装置１６−１１、１６−１２、１６−１３
（４）接続パス５２−２の実ディスク装置１６−１４
【００５８】
更に図６の選出対象グループの右側に示すように、選出対象となったディスク群の中に複数の実ディスク装置が存在する場合には、仮想ディスクを構成する実ディスク装置の属する接続パスが偏らないように、仮想未割当率が大きい実ディスク群の順番に実ディスク装置を選出する。ここで仮想未割当率は次式で定義される。
【００５９】
仮想未割当率＝全未割当実ディスク容量÷全実ディスク容量      （１）
なお全未割当実ディスク容量は、一部割当済みの実ディスク装置における空き容量及び未割当ての実ディスク装置の空き容量の合計である。
【００６０】
このようにして図６の優先順位が第１の選出対象としてコントローラの仮想化スイッチと接続しているパス単位の実ディスク群の選出を行ったならば、選出された実ディスク群を対象に、図３の仮想ストレージ管理部２６に示した第１選出部３２により実ディスク数を最小とするように、指定容量を満たす実ディスク装置の選出を行って、仮想ディスクに割り当てる。
【００６１】
また第１選出部３２による割当てが失敗した場合には、第２選出部３４により実ディスク装置内に分散する未割当領域の数であるエクステント数を最小とするように、指定容量を満たす実ディスク装置を選出して、仮想ディスクに割り当てることになる。
【００６２】
図７は図５のシステム構成を対象とした仮想ストレージ管理処理の手順を示しており、選出対象グループとして接続パス単位の実ディスク群の選出Ａ１を行った後に、実ディスク選出として実ディスク数を最小とする選出Ｂ１を行い、これに失敗した場合には、次のエクステント数を最小とする選出Ｂ２を行うことになる。
【００６３】
更に、接続パス単位の選出Ａ１についてエクステント数を最小とする選出Ｂ２に失敗した場合には、次に選出対象グループとしてＲＡＩＤ装置単位の選出Ａ２を行った後、同様に実ディスク数を最小とする選出Ｂ１を行い、失敗した場合には、エクステント数を最小とする選出Ｂ２を行う。
【００６４】
更に、ＲＡＩＤ装置単位Ａ２を対象グループとしてエクステント数を最小とする選出Ｂ２に失敗した場合には、対象グループ選出として全ＲＡＩＤ装置を対象グループＡ３として選出し、この場合には実ディスク装置を最小とする選出Ｂ１のみを行う。
【００６５】
図７における第２位の対象グループＡ２及び第３位の対象グループＡ３については、図６の表の優先順位の２位、３位に示している。優先順位２位の選出対象グループは、コントローラの仮想化スイッチと接続しているＲＡＩＤ装置単位の実ディスク群を対象グループとして選出する。
【００６６】
図５のシステム構成について、これを具体的に見ると、ＲＡＩＤ装置１２−１１、ＲＡＩＤ装置１２−１２の順番に実ディスク群を選出する。このＲＡＩＤ装置１２−１１、１２−１２を選択する順番は、仮想ディスクを構成する実ディスク装置の属するＲＡＩＤ装置が偏らないように、（１）式で与えられる仮想未割当率の大きいＲＡＩＤ装置の順番に実ディスク群を選出する。
【００６７】
更に図６の優先順位３位となる選出対象グループは、コントローラの仮想化スイッチと接続している全てのＲＡＩＤ装置を対象とする。例えば図５のシステム構成の場合には、コントローラ１０−１１、１０−１２に接続しているＲＡＩＤ装置１２−１１、１２−１２を１つの実ディスク群として選択する。
【００６８】
次に図６により対象グループとする実ディスク群を選出された後の仮想ディスクに指定容量の実ディスク装置を割り当てる選出処理を説明する。
【００６９】
本発明の仮想ディスクを構成する実ディスク装置の選出は、図７の実ディスク選出の手順に示したように、まず実ディスク数を最小とする選出Ｂ１を実行し、これで選出ができなかった場合には、エクステント数を最小とする選出Ｂ２を実行するようにしている。
【００７０】
実ディスク数を最小とする選出は、故障発生要因箇所が最小となるように実ディスク装置を仮想ディスクに割り当てることから、仮想ストレージの信頼性と保守性が向上する。
【００７１】
本発明の実施形態にあっては、仮想ディスクを構成する実ディスク数を最小とするように選出しているが、これは障害発生要因を最小にすることから、他の選出基準として
（１）パス数を最小とするように選出する。
（２）ＲＡＩＤ装置数を最小とするように選出する。
といった選出条件を適用することもできる。
【００７２】
一方、エクステント数を最小とする選出は、１つの実ディスク装置における割当領域のフラグメンテーション（断片化）を最小とすることを意味し、これによって、仮想ストレージ環境における仮想モジュールに対するアクセス性能を向上することができる。
【００７３】
図８は本発明の実ディスク選出処理で使用する選出条件を示している。図８（Ａ）は実ディスク装置の選出条件の優先順位に従った一覧であり、選出優先順位１位から３位が図７のＢ１に示した実ディスク数を最小とする選出、即ち図３の第１選出部３２による選出処理である。
【００７４】
これに対し選出優先順位４位、５位は、図７のエクステント数を最小とする選出Ｂ２を実現する選出条件であり、図３の第２選出部３４による選出処理となる。
【００７５】
図８（Ａ）の実ディスク数を最小とするための選出条件は次のようになる。まず選出優先順位第１位にあっては「空きエクステント容量が指定容量以上」の実ディスクを選出する。この条件で選出した実ディスクが複数存在した場合には、その右側に示すように「最小容量のエクステントを持つ実ディスクを選出」となる。
【００７６】
選出優先順位第２位の容量選出条件は、「空き実ディスク容量が指定容量以上」の実ディスクを選出する。この条件により選出された実ディスクが複数存在する場合には、その右側に示すように「最小容量の実ディスクを選出」となる。
【００７７】
選出優先順位第３位にあっては「空き実ディスク容量が指定容量より小さい」となる実ディスクを選出する。この条件で選出された実ディスクが複数存在する場合には、その右側に示すように「最大容量の実ディスクを選出」となる。
【００７８】
次に選出優先順位第４位及び５位のエクステント数を最小とする実ディスクの選出を説明する。
【００７９】
選出優先順位第４位の容量選出条件は「空きエクステント容量が指定容量より小さい」となる実ディスクを選出する。この条件で選出されたエクステントが複数存在する場合には、最大容量のエクステントを選出する。
【００８０】
選出優先順位第５位については、容量選出条件として「空きエクステント容量が指定容量以上」となるエクステントを選出する。この選出条件を満足するエクステントが複数存在する場合には、その右側に示すように「最小容量のエクステントを選出」となる。
【００８１】
図８（Ｂ）は、図８（Ａ）の選出条件により、選出優先条件１位〜５位のそれぞれで複数の実ディスク装置のエクステントが選出された場合の選出優先条件を示している。
【００８２】
図８（Ｂ）において、選出優先順位として図８（Ａ）の１位、４位、５位について同じ条件が設定され、選出優先順位２位、３位について、別の同じ選出条件が設定されている。選出優先順位１位、４位、５位について、複数実ディスクのエクステントが選出された場合の選出優先順位は、
（１）ＲＡＩＤレベルの順番
（２）実ディスクのＩＤの順番
（３）実ディスクの論理ブロックアドレスＬＢＡの順番
となる。このうちＲＡＩＤレベルの順番は、右側の選出優先順位の内容に示すように、ＲＡＩＤレベル（０＋１）、レベル１、レベル５、レベル０の順番とする。
【００８３】
ここでＲＡＩＤレベル（０＋１）は、図８（Ｃ）のように、ＲＡＩＤレベル０をミラー化してＲＡＩＤレベル１としたものである。また実ディスクのＩＤの順番は、ＲＡＩＤレベルで複数実ディスクがあった場合である。更に、実ディスクのＬＢＡの順番は、実ディスク内に複数のエクステントがあった場合である。
【００８４】
図８（Ｂ）の選出優先順位２位、３位については、複数、実ディスクのエクステントが選出された場合の選出優先順位として、次のものが設定される。
（１）エクステント数の少ない順番
（２）ＲＡＩＤレベルの順番
（３）実ディスクのＩＤの順番
となる。
【００８５】
この図８（Ａ）（Ｂ）に示す選出条件により、指定容量を満たす仮想ディスクを構成する実ディスク装置の構成エクステントが決まったならば、構成エクステントを実ディスク装置の内部保持のＩＤの順番、及び実ディスク装置内のＬＢＡの順番に並び替えるソート処理を行って、選出処理を終了する。
【００８６】
図９及び図１０は本発明による仮想ストレージ管理処理のフローチャートであり、このフローチャートの手順が、本発明により提供される仮想ストレージ管理プログラムの内容となる。
【００８７】
図９の仮想ストレージ管理処理にあっては、ステップＳ１でサーバ側のアプリケーションに対応したユーザが希望する仮想ディスクの指定容量を取り込み、ステップＳ２で仮想スイッチを備えたコントローラと接続しているパス単位の実ディスク群にグループ化した後、ステップＳ３で仮想未割当率の大きい順番に実ディスク群を選出し、ステップＳ４で、選出した実ディスク群を対象に実ディスク群を最小とするように第１実ディスク選出処理を実行する。
【００８８】
ステップＳ４で選出処理に成功すれば、選出された仮想ディスクを構成するエクステントを、実ディスク装置のＩＤと実ディスク装置内のＬＢＡをキーに並び替えるソート処理を行って、処理を終了する。
【００８９】
ステップＳ５で選出できなかった場合には、ステップＳ６に進み、エクステント数を最小とするように第２実ディスク選出処理を実行する。この選出処理につき、ステップＳ７で選出成功が判別されると、仮想ディスクの構成エクステントのソート処理を行って、一連の処理を終了する。
【００９０】
ステップＳ７で選出できなかった場合には、ステップＳ８に進み、仮想化スイッチを備えたコントローラと接続しているＲＡＩＤ装置単位の実ディスク群に分類し、ステップＳ９で仮想未割当率の大きい順番にＲＡＩＤ装置を選出し、ステップＳ１０で、まず実ディスク装置を最小とするように第１実ディスク選出処理を実行する。
【００９１】
続いて図１０のステップＳ１１で選出成功を判別すると、構成エクステント数をソートして、処理を終了する。選出できなかった場合にはステップＳ１２に進み、エクステント数を最小とするように第２実ディスク選出処理を実行する。ステップＳ１３で選出に成功すると、構成エクステント数のソート処理を行って、一連の処理を終了する。
【００９２】
ステップＳ１３で選出できなかった場合にはステップＳ１４に進み、仮想化スイッチを備えたコントローラに接続している全てのＲＡＩＤ装置を選出し、ステップＳ１５で実ディスク装置を最小とするように第１実ディスク選出処理を実行する。ステップＳ１６で選出に成功すれば、構成エクステントをソートして、処理を終了する。
【００９３】
選出できなかった場合にはステップＳ１７に進み、エクステント数を最小とするように第２実ディスク選出処理を実行する。ステップＳ１８で選出に成功すると、構成エクステント数のソート処理を行って、一連の処理を終了する。
【００９４】
選出できなかった場合にはステップＳ１９に進み、プール容量不足エラーまたはエクステント数オーバーエラーを通知して、処理を終了する。
【００９５】
このエラー通知による終了の際には、再度、仮想ディスクの容量指定をやり直すことで、例えば指定容量を減らすことで、再度、選出処理を行えばよい。なおステップＳ１９におけるエクステント数オーバーエラーは、後の説明で明らかにするように、本発明にあっては、１つの実ディスク装置から選出するエクステント数を例えば１６未満に制限しており、このエクステント数の制限値を超えた場合には、選出できなかったものとしており、選出できない原因がエクステント数オーバーである場合に、これを示すエラー通知を行うことになる。
【００９６】
図１１及び図１２は図９及び図１０のステップＳ４、Ｓ１０、Ｓ１５で実行する第１実ディスク選出処理のフローチャートであり、これは図３における第１選出部３２の処理機能となる。
【００９７】
図１１において、第１実ディスク選出処理はステップＳ１〜Ｓ７で図８（Ａ）の選出優先順位第１位の選出条件に従った選出処理を実行する。まずステップＳ１で未選出の実ディスクの有無をチェックし、未選出の実ディスクがあればステップＳ２に進み、空きエクステントの容量が指定容量以上で且つ最小容量のエクステントを選出する。
【００９８】
ステップＳ３で選出に成功すると、ステップＳ５に進み、複数の実ディスクのエクステントを選出したか否かをチェックする。もし複数の実ディスクのエクステントを選出していた場合にはステップＳ６に進み、図８（Ｂ）の選出優先順位第１位、４位、５位の項目に示した優先順位で実ディスクを選出する。
【００９９】
ステップＳ５で単一の実ディスクのエクステントの選出であった場合にはステップＳ６の処理はスキップする。ステップＳ７で選出した実ディスクのエクステント数が所定の閾値、例えば１６以上か否かチェックし、１６を超えていなければ正常な選出処理が行なわれたものとして図９及び図１０のメインルーチンにリターンする。
【０１００】
もしステップＳ１で未選出の実ディスクがなかった場合にはステップＳ４で選出不可としてメインルーチンにリターンする。一方、ステップＳ７で選出された実ディスクのエクステント数が閾値である例えば１６以上であった場合には、選出不成功としてステップＳ１４に進む。
【０１０１】
図１１のステップＳ８〜Ｓ１３は図８（Ａ）の選出優先順位第２位の選出条件に従った実ディスク選出処理である。ステップＳ８にあっては空き容量が指定容量以上で且つ最小容量の実ディスクを選択する。ステップＳ９で実ディスクの選択に成功するとステップＳ１０に進み、複数の実ディスクのエクステントを選出したか否かチェックする。
【０１０２】
複数の実ディスクのエクステントを選出した場合にはステップＳ１１に進み、図８（Ｂ）の選出優先順位第２位、３位の欄に示す優先順位の順番でひとつの実ディスクのエクステントの選出に絞り込む。尚、ステップＳ１１の（１）「エクステント数の少ない順番」に実ディスクを選出し、この場合、２つの実ディスクが選択された場合には、空きエクステントの容量の大きい実ディスクを選出する。
【０１０３】
ステップＳ１０で単一の実ディスクのエクステントの選出であった場合には、ステップＳ１１の処理はスキップする。次にステップＳ１２でエクステント数が閾値以上か否かチェックし、閾値以上であった場合にはステップＳ１３に進み、ステップＳ１１に示している優先順位のうちの次の優先順位に従った実ディスクを選択したステップＳ１２でエクステント数が閾値以上か否かチェックし、エクステント数が閾値未満となるまでステップＳ１３の次の優先順位の実ディスクの選出を繰り返し、エクステント数が閾値未満となった場合には選出成功として図９及び図１０のメインルーチンにリターンする。
【０１０４】
ステップＳ１３でステップＳ１１における全ての優先順位において実ディスクの選出を行なっても、エクステント数が閾値以上であった場合にはステップＳ１４に進んで選出は不成功となる。
【０１０５】
ステップＳ９で選出できなかった場合には、図１２のステップＳ１６〜Ｓ２０により図８（Ａ）の選出優先順位第３位の選出条件に従った実ディスクの選出処理を行なう。即ち、ステップＳ１６で空き容量が指定容量より小さい最大容量の実ディスクを選出し、ステップＳ１７で選出した成功すれば図９及び図１０のメインルーチンにリターンする。
【０１０６】
選出できなかった場合にはステップＳ１８に進み、複数の実ディスクのエクステントを選出しているか否かチェックし、選出されている場合にはステップＳ１９で図８（Ｂ）の選出優先順位第1位、４位、５位に示した複数の実ディスクのエクステントが選出された場合の選出優先順位に従って実ディスクを選択する。
【０１０７】
ステップＳ１８で単一の実ディスクのエクステントの選出であった場合にはステップＳ１９はスキップする。次のステップＳ２０で指定容量の更新を行なう。即ち、現在の指定容量から選出した実ディスクの容量を差し引いて新たな指定容量を算出し、図１１のステップＳ１に戻り、残りの指定容量を対象にステップＳ２以降から同様の処理を繰り返す。
【０１０８】
一方、図１１のステップＳ７またはステップＳ１２、Ｓ１３の処理で選出した実ディスクのエクステント数が閾値以上であった場合には実ディスク数を最小とする選出処理が不成功となったことから、ステップＳ１４で
（１）選出された実ディスクを破棄
（２）要求容量を初期値に戻す
という初期化処理を行なった後、ステップＳ１５に進み、図１２に示す第２実ディスク選出処理に移行する。
【０１０９】
尚、図９及び図１０のメインルーチンに示すように、ステップＳ１４で選出対象グループを、仮想化スイッチを備えたコントローラに接続している全てのＩＤ装置とした場合については、ステップＳ１５のように第１実ディスク選出処理のみの実行となることから、この場合には図１３の第２実ディスク選出処理には移行しない。
【０１１０】
図１３は図９及び図１０のステップＳ６、Ｓ１２、Ｓ１７で実行する第２実ディスク選出処理のフローチャートであり、この処理は図３の第２選出部３４の処理機能に対応する。図１３において、第２実ディスク選出処理は、ステップＳ1〜Ｓ５で図８（Ａ）の選出優先順位４位の選出条件に従った選出処理を実行する。
【０１１１】
まずステップＳ１で空きエクステント容量が指定容量より小さい最大容量のエクステントを選出する。ステップＳ２で選出に成功すればステップＳ３に進み、複数の実ディスクのエクステントを選択したか否かチェックし、選択していた場合にはステップＳ４で図８（Ｂ）の選出条件優先順位第１位、４位、５位に示した複数実ディスクのエクステントが選択された場合の優先順位に従った実ディスクの選出を行なう。
【０１１２】
単一のエクステントの選択であった場合にはステップＳ４はスキップする。次にステップＳ５で指定容量の更新を行なう。即ち、現在の指定容量から選出した実ディスク容量を差し引いて残りの指定容量を新たな指定容量とする。尚、ステップＳ２で選出できなかった場合にはステップＳ１１に進んで選出不可として図９及び図１０のメインルーチンにリターンする。
【０１１３】
次のステップＳ６〜Ｓ１０は図８（Ａ）の選出優先順位５位の選出条件による実ディスクの選出処理を実行する。まずステップＳ６で空きエクステント容量が指定容量以上で且つ最小容量のエクステントを選出する。ステップＳ７で選出できなかった場合にはステップＳ１に戻り、空きエクステント容量が指定容量より小さい最大容量のエクステントの選出処理を繰り返す。
【０１１４】
ステップＳ７で選出に成功した場合にはステップＳ８で複数の実ディスクのエクステントを選出したか否かチェックし、選択した場合にはステップＳ９で図８（Ｂ）の選出優先順位１位、４位、５位の欄に示した選出優先順位に従って実ディスクを選出する。ステップＳ８で単一の実ディスクのエクステントの選出であった場合にはステップＳ９はスキップする。
【０１１５】
続いてステップＳ１０で選出した実ディスクのエクステント数が閾値以上か否かチェックし、閾値未満であれば選択に成功したものとして図９及び図１０のメインルーチンにリターンする。エクステント数が閾値以上であった場合にはステップＳ１１で選出不可として図９及び図１０のメインルーチンにリターンする。
【０１１６】
次に図１４及び図１５を参照して本発明による指定容量に対応する仮想ディスクを構成する実ディスク選出の具体例を説明する。
【０１１７】
図１４（Ａ）は実ディスク６０、６２、６４を対象に図１４（Ｂ）に示すように指定容量を１〜１１０ＭＢの範囲で変化させた場合の選出結果とソート結果を示している。図１４（Ａ）において実ディスク６０は未割当の実ディスクであり、エクステントａは３０ＭＢである。尚、以下の説明にあっては容量はＭＢは省略して数字のみで示す。実ディスク６２は一部未割当の実ディスクであり、エクステントｂは２０、エクステントｃは３０である。
【０１１８】
ここで図１４（Ａ）の実ディスク群を対象として図１４（Ｂ）で指定容量を１０、２０、３０、４０、５０、６０、７０、８０、９０、１００、１１０とした場合のエクステント選出を説明すると次のようになる。尚、括弧内は適用する図８の選出条件であり、図８（Ａ）は「Ａ−１〜Ａ−５」で示し、図８（Ｂ）は「Ｂ−１−１〜Ｂ−５−３」で示す。
【０１１９】
まず指定容量＝１０の場合は次の手順となる。
（１）指定容量１０以上の空き容量をもつエクステントｂ、ｃ、ｄ、ｅ、ｆを選出する（Ａ−１）。
（２）最小容量１０のエクステントｄ、ｅ、ｆを選出する（Ａ−１）。
（３）ＬＢＡの順番からエクステントｄを選出する（Ｂ−１−３）。
【０１２０】
指定容量＝２０の場合は次の手順となる。
（１）指定容量２０以上の空き容量をもつエクステントｂ、ｃを選出する（Ａ−１）。
（２）最小容量２０のエクステントｂを選出する（Ａ−４）。
【０１２１】
指定容量＝３０の場合は次の手順となる。
（１）指定容量３０以上の空き容量をもつ実ディスク６０のエクステントａを選出する（Ａ−２）。
【０１２２】
指定容量＝４０の場合は次の手順となる。
（１）指定容量４０以上の空き容量をもつエクステントが存在しない。
（２）最大容量４０以上の実ディスク６２を選出する（Ａ−２）。
（３）実ディスク６２内で最大エクステントｃを選出する（Ａ−４）。
（４）選出後の指定容量＝４０−３０＝１０とする。
（５）実ディスク６２内で指定容量１０以上の空き容量をもつ最小容量のエクステントｂを選出する（Ａ−５）。
（６）選出したエクステントｃ、ｂをソートしてｂ、ｃとする。
【０１２３】
指定容量＝５０の場合は指定容量＝４０の場合と同じである。
【０１２４】
指定容量＝６０の場合は次の手順となる。
（１）指定容量６０以上の空き容量をもつエクステントが存在しない。
（２）指定容量６０以上の空き容量をもつ実ディスクが存在しない。
（３）最大容量６０以下の空き容量をもつ最大容量の実ディスク６２を選出（エクステントｃ、ｂの選出）する（Ａ−３）。
（４）選出後の指定容量＝６０−５０＝１０とする。
（５）指定容量１０以上の空き容量をもつ最小容量のエクステントｄ、ｅ、ｆを選出する（Ａ−１）。
（６）ＬＢＡの順番からエクステントｄを選出する。
（７）選出したエクステントｃ、ｂ、ｄをソートしてｂ、ｃ、ｄとする。
【０１２５】
指定容量＝７０の場合は次の手順となる。
（１）指定容量７０以上の空き容量をもつエクステントが存在しない。
（２）指定容量７０以上の空き容量をもつ実ディスクが存在しない。
（３）最大容量７０以下の空き容量をもつ最大容量の実ディスク６２を選出（エクステントｃ、ｂの選出）する（Ａ−３）。
（４）選出後の指定容量＝７０−５０＝２０とする。
（５）指定容量２０以上の空き容量をもつ最小容量のエクステントａを選出する（Ａ−１）。
（６）ＬＢＡの順番からエクステントｄを選出する。
（７）選出したエクステントｃ、ｂ、ａをソートしてａ、ｂ、ｃとする。
【０１２６】
更に指定容量８０では指定容量７０と同じであり、指定容量９０では指定容量８０のエクステントａ、ｂ、ｃにエクステントｄが追加され、指定容量１００では指定容量９０のエクステントａ、ｂ、ｃ、ｄにエクステントｅが追加され、指定容量１１０では指定容量１００のエクステントａ、ｂ、ｃ、ｄ、ｅにエクステントｆが追加されることになる。
【０１２７】
図１５は選出したエクステント数が制限値となる閾値１６を超えて最初からエクステントの選出をやり直す場合の具体例である。図１５（Ａ）において、実ディスクが６６はエクステントａ〜ｊの１０個を未割当領域としてもっており、それぞれ容量は１０である。実ディスク６８はエクステントｋ、ｌの未割当領域を持っている。実ディスク７０はエクステントｍａ〜ｖの１０個の未割当領域を持っている。それぞれ容量は１０である。さらに実ディスク７２はエクステントｗ、ｘを未割当領域として持っている。
【０１２８】
ここで図１５（Ｂ）のように指定容量が２００あったとすると、次の処理手順により選出が行なわれる。
（１）指定容量２００に対し空き容量が１００と一番大きな実ディスク６６のエクステントａ〜ｊを選択し、この場合、残りの指定容量は１００となる。
（２）指定容量１００に対し、空き容量が１００と等しい実ディスク７０のエクステントｍａ〜ｖを選出する。
（３）エクステント数が２０で制限値１６を越えているため最初からエクステントの選出をやり直す。
（４）指定容量２００に対し、一番大きなエクステントｋを選出する。残りの指定容量は１７０となる。
（５）指定容量１７０に対し、一番大きなエクステントｗを選出する。残り指定容量は１４０となる。
（６）以下同様に指定容量に対する一番大きなエクステントの選出を繰り返し、エクステントｌ、ｘ、ａ〜ｊを選出する。
（７）エクステント数が１４で制限値以内であることからエクステントの選出を成功とする。
（８）実ディスクのＩＤを第１キー、論理ブロックアドレスを第２キーとして選出したエクステントをソートする。
【０１２９】
本発明は仮想ストレージ管理プログラムを提供するものであり、この仮想ストレージ管理プログラムは、図３に示したようにントローラ１０−１、１０−２に対し設けている管理サーバ１５を構成するコンピュータにより実行される。
【０１３０】
このコンピュータはＣＰＵ、ＲＭ、ＲＯＭ、ハードディスクドライブなどを備え、ハードディスクドライブに本発明の仮想ストレージ管理プログラムをローディングしており、コンピュータの起動時にハードディスクドライムから必要なプログラムを読み出して、ＲＯＭ上に展開し、ＣＰＵにより実行する。
【０１３１】
尚、上記の実施形態は物理ボリュームとして磁気ディスク装置を使用したＲＡＩＤ装置を例にとっているが、物理ボリュームとしては磁気ディスク装置以外に光ディスク装置や磁気テープ装置など適宜の記憶装置を含む。
【０１３２】
また本発明はその目的と利点を損なわない適宜の変形を含み、さらに上記の実施形態に示した数値による限定は受けない。
【０１３３】
ここで本発明の特徴を列挙すると次の付記のようになる。
（付記）
（付記１）
コンピュータに、
仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出ステップと、
前記第１選出ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を実行させることを特徴とする仮想ストレージ管理プログラム。（１）
【０１３４】
（付記２）
付記１記載の仮想ストレージ管理プログラムに於いて、前記第１選出ステップは、
空き容量が前記指定容量以上で且つ最小容量のエクステントを選択する第１優先選出ステップと、
前記第１優先選出ステップで選出できなかった場合、空き容量が前記指定容量以上で且つ最小容量の物理ボリュームを選択する第２優先選出ステップと、
前記第２優先選出ステップで選出できなかった場合、空き容量が前記指定容量未満で且つ最大容量の物理ボリュームを選択する第３優先選出ステップと、
を備えたことを特徴とする仮想ストレージ管理プログラム。
【０１３５】
（付記３）
付記２記載の仮想ストレージ管理プログラムに於いて、
前記第１優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出し、
前記第２又は第３優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、エクステント数の少ない順番に選出し、
第２に、エクステント数で選出できない場合は、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第３に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第４に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理プログラム。
【０１３６】
（付記４）
付記１記載の仮想ストレージ管理プログラムに於いて、前記第２選出ステップは、
空き容量が前記指定容量未満で且つ最大容量のエクステントを選択する第４優先選出ステップと、
前記第４優先選出ステップで選出できなかった場合、空きエクステント容量が前記指定容量以上で且つ最小容量のエクステントを選択する第５優先選出ステップと、
を備えたことを特徴とする仮想ストレージ管理プログラム。
【０１３７】
（付記５）
付記４記載の仮想ストレージ管理プログラムに於いて、
前記第４及び第５優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理プログラム。
【０１３８】
（付記６）
付記１記載の仮想ストレージ管理プログラムに於いて、更に、前記第１及び第２選出ステップに先立って、物理ボリューム群をグループ分けし、各グループを順番に選択して前記第１及び第２選出ステップを実行させる対象グループ選出ステップを備えたことを特徴とする仮想ストレージ管理プログラム。（２）
【０１３９】
（付記７）
付記１記載の仮想ストレージ管理プログラムに於いて、前記対象グループ選出ステップは、
仮想化スイッチ機能を備えたコントローラに接続する接続パス単位に複数の実ディスク群をグループ化し、各グループを順番に選択して前記第１及び第２選出ステップを実行させる第１対象グループ選出ステップと、
前記第１対象グループ選出ステップで選出できなかった場合に、前記複数のコントローラと接続しているＲＡＩＤ装置単位の複数の物理ボリューム群をグループ化し、各グループを順番に選択して前記第１及び第２選出ステップを実行させる第２対象グループ選出ステップと、
前記第２対象グループ選出ステップで選出できなかった場合に、前記コントローラと接続している全てのＲＡＩＤ装置を１グループとして物理ボリューム群を選択して前記第１及び第２選出ステップを実行させる第３対象グループ選出ステップと、
を備えたことを特徴とする仮想ボリューム管理プログラム。（３）
【０１４０】
（付記８）
付記７記載の仮想ストレージ管理プログラムに於いて、前記第１対象グループ選出ステップは、前記複数の物理ボリューム群との接続パスを、前記物理ボリューム群のコントローラを意識しない第１接続パスと前記コントローラを意識してプライマリ接続した第２接続パスに分類し、前記第１接続パス毎の物理ボリューム群と前記第２接続パス毎の物理ボリューム群とにグループ化して順番に選出することを特徴とする仮想ボリューム管理プログラム。
【０１４１】
（付記９）
付記７記載の仮想ストレージ管理プログラムに於いて、前記第１対象グループ選出ステップは、仮想ボリュームを構成する物理ボリュームの属する接続パスが偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きい物理ボリューム群の順番に各グループを選出することを特徴とする仮想ボリューム管理プログラム。
【０１４２】
（付記１０）
付記７記載の仮想ストレージ管理プログラムに於いて、前記第２対象グループ選出ステップは、仮想ボリュームを構成する実ボリュームの属するＲＡＩＤ装置が偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きいＲＡＩＤ装置の順番に各グループを選出することを特徴とする仮想ボリューム管理プログラム。
【０１４３】
（付記１１）
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定ステップと、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出ステップと、
前記第１選出ステップで選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出ステップと、
を備えたことを特徴とする仮想ストレージ管理方法。（４）
【０１４４】
（付記１２）
付記１１記載の仮想ストレージ管理方法に於いて、前記第１選出ステップは、
空き容量が前記指定容量以上で且つ最小容量のエクステントを選択する第１優先選出ステップと、
前記第１優先選出ステップで選出できなかった場合、空き容量が前記指定容量以上で且つ最小容量の物理ボリュームを選択する第２優先選出ステップと、
前記第２優先選出ステップで選出できなかった場合、空き容量が前記指定容量未満で且つ最大容量の物理ボリュームを選択する第３優先選出ステップと、
を備えたことを特徴とする仮想ストレージ管理方法。
【０１４５】
（付記１３）
付記１２記載の仮想ストレージ管理方法に於いて、
前記第１優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出し、
前記第２又は第３優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、エクステント数の少ない順番に選出し、
第２に、エクステント数で選出できない場合は、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第３に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第４に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理方法。
【０１４６】
（付記１４）
付記１１記載の仮想ストレージ管理方法に於いて、前記第２選出ステップは、
空き容量が前記指定容量未満で且つ最大容量のエクステントを選択する第４優先選出ステップと、
前記第４優先選出ステップで選出できなかった場合、空きエクステント容量が前記指定容量以上で且つ最小容量のエクステントを選択する第５優先選出ステップと、
を備えたことを特徴とする仮想ストレージ管理方法。
【０１４７】
（付記１５）
付記１４記載の仮想ストレージ管理方法に於いて、
前記第４及び第５優先選出ステップは、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理方法。
【０１４８】
（付記１６）
付記１１記載の仮想ストレージ管理方法に於いて、更に、前記第１及び第２選出ステップに先立って、物理ボリューム群をグループ分けし、各グループを順番に選択して前記第１及び第２選出ステップを実行させる対象グループ選出ステップを備えたことを特徴とする仮想ストレージ管理方法。
【０１４９】
（付記１７）
付記１１記載の仮想ストレージ管理方法に於いて、前記対象グループ選出ステップは、
仮想化スイッチ機能を備えたコントローラに接続する接続パス単位に複数の実ディスク群をグループ化し、各グループを順番に選択して前記第１及び第２選択ステップを実行させる第１対象グループ選出ステップと、
前記第１対象グループ選出ステップで選出できなかった場合に、前記複数のコントローラと接続しているＲＡＩＤ装置単位の複数の物理ボリューム群をグループ化し、各グループを順番に選択して前記第１及び第２選択ステップを実行させる第２対象グループ選出ステップと、
前記第２対象グループ選出ステップで選出できなかった場合に、前記コントローラと接続している全てのＲＡＩＤ装置を１グループとして物理ボリューム群を選択して前記第１及び第２選出ステップを実行させる第３対象グループ選出ステップと、
を備えたことを特徴とする仮想ストレージ管理方法。
【０１５０】
（付記１８）
付記１７記載の仮想ストレージ管理方法に於いて、前記第１対象グループ選出ステップは、前記複数の物理ボリューム群との接続パスを、前記物理ボリューム群のコントローラを意識しない第１接続パスと前記コントローラを意識してプライマリ接続した第２接続パスに分類し、前記第１接続パス毎の物理ボリューム群と前記第２接続パス毎の物理ボリューム群とにグループ化して順番に選出することを特徴とする仮想ストレージ管理方法。
【０１５１】
（付記１９）
付記１７記載の仮想ストレージ管理方法に於いて、前記第１対象グループ選出ステップは、仮想ボリュームを構成する物理ボリュームの属する接続パスが偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きい物理ボリューム群の順番に各グループを選出することを特徴とする仮想ストレージ管理方法。
【０１５２】
（付記２０）
付記１７記載の仮想ストレージ管理方法に於いて、前記第２対象グループ選出ステップは、仮想ボリュームを構成する実ボリュームの属するＲＡＩＤ装置が偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きいＲＡＩＤ装置の順番に各グループを選出することを特徴とする仮想ストレージ管理方法。
【０１５３】
（付記２１）
仮想ストレージプールに設けた仮想ボリュームの容量を指定する容量指定部と、
物理ボリュームを登録したプールから物理ボリューム数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して前記仮想ボリュームに割り当てる第１選出部と、
前記第１選出部で選出できなかった場合、物理ボリューム内に分散する未割当領域の数であるエクステント数を最小とするように前記指定容量を満たす１又は複数の物理ボリュームを選出して割り当てる第２選出部と、
を備えたことを特徴とする仮想ストレージ管理装置。（５）
【０１５４】
（付記２２）
付記２１記載の仮想ストレージ管理装置に於いて、前記第１選出部は、
空き容量が前記指定容量以上で且つ最小容量のエクステントを選択する第１優先選出部と、
前記第１優先選出部で選出できなかった場合、空き容量が前記指定容量以上で且つ最小容量の物理ボリュームを選択する第２優先選出部と、
前記第２優先選出部で選出できなかった場合、空き容量が前記指定容量未満で且つ最大容量の物理ボリュームを選択する第３優先選出部と、
を備えたことを特徴とする仮想ストレージ管理装置。
【０１５５】
（付記２３）
付記２２記載の仮想ストレージ管理装置に於いて、
前記第１優先選出部は、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出し、
前記第２又は第３優先選出部は、複数の物理ボリュームについてエクステントが選出された場合、
第１に、エクステント数の少ない順番に選出し、
第２に、エクステント数で選出できない場合は、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第３に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第４に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理装置。
【０１５６】
（付記２４）
付記２１記載の仮想ストレージ管理装置に於いて、前記第２選出部は、
空き容量が前記指定容量未満で且つ最大容量のエクステントを選択する第４優先選出部と、
前記第４優先選出部で選出できなかった場合、空きエクステント容量が前記指定容量以上で且つ最小容量のエクステントを選択する第５優先選出部と、
を備えたことを特徴とする仮想ストレージ管理装置。
【０１５７】
（付記２５）
付記２４記載の仮想ストレージ管理装置に於いて、
前記第４及び第５優先選出部は、複数の物理ボリュームについてエクステントが選出された場合、
第１に、ＲＡＩＤレベルでレベル（０＋１）、レベル１、レベル５及びレベル０の順番に選出し、
第２に、ＲＡＩＤレベルで選出できない場合は、物理ボリュームのＩＤの順番に選出し、
第３に、前記ＩＤで選出できない場合は、物理ボリュームの論理ブロックアドレスＬＢＡの順番に選出する、
ことを特徴とする仮想ストレージ管理装置。
【０１５８】
（付記２６）
付記２１記載の仮想ストレージ管理装置に於いて、更に、前記第１選出部及び第２選出部の処理に先立って、物理ボリューム群をグループ分けし、各グループを順番に選択して前記第１及び第２選択ステップを実行させる対象グループ選出部を備えたことを特徴とする仮想ストレージ管理装置。
【０１５９】
（付記２７）
付記２１記載の仮想ストレージ管理装置に於いて、前記対象グループ選出部は、
仮想化スイッチ機能を備えたコントローラに接続する接続パス単位に複数の実ディスク群をグループ化し、各グループを順番に選択して前記第１及び第２選択ステップを実行させる第１対象グループ選出部と、
前記第１対象グループ選出部で選出できなかった場合に、前記複数のコントローラと接続しているＲＡＩＤ装置単位の複数の物理ボリューム群をグループ化し、各グループを順番に選択して前記第１及び第２選出ステップを実行させる第２対象グループ選出部と、
前記第２対象グループ選出部で選出できなかった場合に、前記コントローラと接続している全てのＲＡＩＤ装置を１グループとして物理ボリューム群を選択して前記第１及び第２選出ステップを実行させる第３対象グループ選出部と、
を備えたことを特徴とする仮想ストレージ管理装置。
【０１６０】
（付記２８）
付記２７記載の仮想ストレージ管理装置に於いて、前記第１対象グループ選出部は、前記複数の物理ボリューム群との接続パスを、前記物理ボリューム群のコントローラを意識しない第１接続パスと前記コントローラを意識してプライマリ接続した第２接続パスに分類し、前記第１接続パス毎の物理ボリューム群と前記第２接続パス毎の物理ボリューム群とにグループ化して順番に選出することを特徴とする仮想ストレージ管理装置。
【０１６１】
（付記２９）
付記２７記載の仮想ストレージ管理装置に於いて、前記第１対象グループ選出部は、仮想ボリュームを構成する物理ボリュームの属する接続パスが偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きい物理ボリューム群の順番に各グループを選出することを特徴とする仮想ストレージ管理装置。
【０１６２】
（付記３０）
付記２７記載の仮想ストレージ管理装置に於いて、前記第２対象グループ選出部は、仮想ボリュームを構成する実ボリュームの属するＲＡＩＤ装置が偏らないように、全容量に対する全未割当容量の割合となる仮想未割当率の大きいＲＡＩＤ装置の順番に各グループを選出することを特徴とする仮想ストレージ管理装置。
【図面の簡単な説明】
【０１６３】
【図１】本発明の原理説明図
【図２】本発明の仮想ストレージ管理処理が適用されるシステム構成のブロック図
【図３】図２のシステムにつきコントローラに設けた仮想ストレージ環境の機能構成のブロック図
【図４】図２のシステムにおける物理ストレージ環境と仮想ストレージ環境の説明図
【図５】ＲＡＩＤ装置のコントローラＣＭを意識しないコントローラと意識するコントローラを使用して仮想ストレージ環境を構築したシステム構成のブロック図
【図６】本発明の仮想ストレージ管理で使用する実ディスク装置の選出手順の説明図
【図７】本発明の仮想ストレージ管理で使用する対象グループ選出の説明図
【図８】本発明の実ディスク選出で使用する優先選択モードの説明図
【図９】本発明による仮想ストレージ管理処理のフローチャート
【図１０】図９に続くフローチャート
【図１１】図９及び図１０のステップＳ４、Ｓ１０、Ｓ１５で実行する第１実ディスク選出処理のフローチャート
【図１２】図１１に続くフローチャート
【図１３】図９及び図１０のステップＳ６、Ｓ１２で実行する第２実ディスク選出処理のフローチャート
【図１４】本発明による実ディスク選出の具体例の説明図
【図１５】本発明による実ディスク選出の他の具体例の説明図
【符号の説明】
【０１６４】
１０：仮想ストレージ環境
１０−１、１０−２、１０−１１、１０−１２：コントローラ
１２：ＲＡＩＤシステム
１２−１、１２−２、１２−１１、１２−１２：ＲＡＩＤ装置
１４−１〜１４−４、１６−１〜１６−４：実ディスク装置
１５：管理サーバ
１８：クラスタ
１８−１、１８−２：サーバ
２０−１、２０−２：アプリケーション
２２−１、２２−２：仮想化スイッチ
２３−１、２３−２：仮想ディスク群
２４、２４−１、２４−２：ディスクプール
２６：仮想ストレージ管理部
２８：容量指定部
３０：対象グループ選出部
３２：第１選出部
３４：第２選出部
３６：仮想筐体
５０−１、５０−２：接続パス
５２−１、５２−２：プライマリ接続パス
５４−１〜５４−３：セカンダリ接続パス
【図１】
2006127143.tif 000003
【図２】
2006127143.tif 000004
【図３】
2006127143.tif 000005
【図４】
2006127143.tif 000006
【図５】
2006127143.tif 000007
【図６】
2006127143.tif 000008
【図７】
2006127143.tif 000009
【図８】
2006127143.tif 000010
【図９】
2006127143.tif 000011
【図１０】
2006127143.tif 000012
【図１１】
2006127143.tif 000013
【図１２】
2006127143.tif 000014
【図１３】
2006127143.tif 000015
【図１４】
2006127143.tif 000016
【図１５】
2006127143.tif 000017