(57)【要約】【課題】上位部にストレージシステムの所定種類の論理リソースを利用できるようにするための論理リソース情報設定の必要性をなるべく無くす。【解決手段】ストレージシステムの論理リソースを制御する制御装置に、仮想的な論理リソースである仮想リソースを用意する仮想リソース用意部と、実体としての論理リソースである実リソースを上記用意された仮想リソースに割当てる実リソース割当て部とを備える。仮想リソース用意部により、制御装置よりも上位にある上位部によって未だ使用されていない仮想リソースである予備リソースが、一以上の前記上位部の各々に対して一つ以上用意される。【選択図】図３
2008186137.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムの論理リソースを制御する制御装置であって、
仮想的な論理リソースである仮想リソースを用意する仮想リソース用意部と、
実体としての論理リソースである実リソースを前記用意された仮想リソースに割当てる実リソース割当て部と
を備え、
前記仮想リソース用意部により、前記制御装置よりも上位にある上位部によって未だ使用されていない仮想リソースである予備リソースが一以上の前記上位部の各々に対して一つ以上用意される、
制御装置。
【請求項２】
前記仮想リソース用意部が、前記上位部に対して用意されている前記予備リソースが前記上位部によって初めて使用されることを契機に、新たな予備リソースを前記上位部に対して用意する、
請求項１記載の制御装置。
【請求項３】
前記予備リソースが、実リソースが割当てられていない仮想リソースであり、
前記実リソース割当て部が、前記上位部によって前記予備リソースが初めて使用されることを契機に、複数の実リソースの中からどの仮想リソースにも割当てられていない実リソースを選択し、該選択した実リソースを、前記初めて使用される予備リソースに割当てる、
請求項２記載の制御装置。
【請求項４】
前記新たな予備リソースが前記上位部に用意された契機で、該上位部との接続を切断することを該上位部に要求する切断要求部を更に備える、
請求項１記載の制御装置。
【請求項５】
前記仮想リソースが、仮想的な論理記憶装置である仮想記憶装置であり、
前記実リソースが、前記ストレージシステムに備えられている複数の物理記憶装置のうちの一以上の物理記憶装置を基に形成された、実体としての論理記憶装置である実記憶装置であり、
前記予備リソースが、前記上位部から送信されるライトコマンドで未だ指定されたことがない前記仮想的な論理記憶装置である予備記憶装置である、
請求項１記載の制御装置。
【請求項６】
前記仮想リソース用意部が、前記予備記憶装置を指定したライトコマンドを初めて前記上位部から受信したことを契機に、新たな予備記憶装置を前記上位部に対して用意する、
請求項５記載の制御装置。
【請求項７】
前記予備記憶装置が、実記憶装置が割当てられていない仮想記憶装置であり、
前記実リソース割当て部が、前記予備記憶装置を指定したライトコマンドを初めて前記上位部から受信したことを契機に、複数の実記憶装置の中からどの仮想記憶装置にも割当てられていない実記憶装置を選択し、該選択した実記憶装置を、該予備記憶装置に割当てる、
請求項６記載の制御装置。
【請求項８】
前記受信したライトコマンドに従うライト対象データを、該ライトコマンドで指定されている前記予備記憶装置に割当てられた実記憶装置に書込むコマンド制御部と、
前記新たな予備記憶装置が前記上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信する切断要求部と
を更に備え、
前記コマンド制御部が、前記切断要求に応答して前記接続が切断された後に前記上位部により接続されて受信した所定種類のコマンドに応答して、該上位部に対して用意された前記新たな予備記憶装置に関する情報を前記上位部に提供する、
請求項５記載の制御装置。
【請求項９】
どのような種類の上位部に対してどれだけの数及び／又はだれだけの容量の仮想記憶装置を用意するかが定義されたポリシー情報を記憶する記憶領域を更に備え、
前記仮想リソース用意部が、前記ライトコマンドの送信元の前記上位部の種類と、前記ポリシー情報とに基づいて、該上位部に対して用意する予備記憶装置の数及び／又は容量を制御する、
請求項５記載の制御装置。
【請求項１０】
コマンド制御部と、
切断要求部と
を更に備え、
前記仮想リソースが、仮想的な論理ユニット（ＬＵ）である仮想ＬＵであり、
前記実リソースが、前記ストレージシステムに備えられている複数の物理記憶装置のうちの一以上の物理記憶装置を基に形成された、実体としてのＬＵである実ＬＵであり、
前記予備リソースが、実ＬＵが割当てられていない仮想ＬＵである予備ＬＵであり、
前記仮想リソース用意部が、所定種類の契機で、前記上位部に初めて予備ＬＵを用意し、その後は、予備ＬＵを指定したライトコマンドを初めて前記上位部から受信したことを契機に、新たな予備ＬＵを該上位部に対して用意し、
前記実リソース割当て部が、予備ＬＵを指定したライトコマンドを初めて前記上位部から受信したことを契機に、複数の実ＬＵの中からどの仮想ＬＵにも割当てられていない実ＬＵを選択し、該選択した実ＬＵを、該予備ＬＵに割当て、
前記切断要求部が、新たな予備ＬＵが前記上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信し、
前記コマンド制御部が、前記受信したライトコマンドに従うライト対象データを、該ライトコマンドで指定されている前記予備ＬＵに割当てられた実ＬＵに書込むよう構成されており、前記切断要求に応答して前記接続が切断された後に前記上位部による再ログインに応答して、該上位部に対して用意された前記新たな予備ＬＵに関する情報を前記上位部に提供する、
請求項１記載の制御装置。
【請求項１１】
前記仮想リソースが、仮想的な論理パスである仮想パスであり、
前記実リソースが、実体としての論理パスである実パスであり、
前記予備リソースが、前記上位部から送信されるＩ／Ｏコマンドの送信で未だ使用されたことがない仮想パスである予備パスである、
請求項１記載の制御装置。
【請求項１２】
前記仮想リソース用意部が、前記予備パスを経由したＩ／Ｏコマンドを初めて前記上位部から受信したことを契機に、新たな予備パスを前記上位部に対して用意する、
請求項１１記載の制御装置。
【請求項１３】
前記予備パスが、実パスが割当てられていない仮想パスであり、
前記実リソース割当て部が、前記予備パスを経由したＩ／Ｏコマンドを初めて前記上位部から受信したことを契機に、複数の実パスの中からどの仮想パスにも割当てられていない実パスを選択し、該選択した実パスを、該予備パスに割当てる、
請求項１２記載の制御装置。
【請求項１４】
前記受信したＩ／Ｏコマンドを処理するコマンド制御部と、
前記新たな予備パスが前記上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信する切断要求部と
を更に備え、
前記コマンド制御部が、前記切断要求に応答して前記接続が切断された後に前記上位部により接続されて受信した所定種類のコマンドに応答して、該上位部に対して用意された前記新たな予備パスに関する情報を前記上位部に提供する、
請求項１１記載の制御装置。
【請求項１５】
前記一以上の上位部の各々から送信されたコマンドを受信する複数のポートを更に備え、
前記論理パスが、ポートＩＤを含み、
前記実リソース割当て部が、どの仮想パスにも割当てられていない二以上の実パスの各々のポートＩＤに対応した各ポートの負荷に応じて、該二以上の実パスの中から選択する実パスを制御する、
請求項１１記載の制御装置。
【請求項１６】
コマンド制御部と、
切断要求部と、
複数のポートと
を更に備え、
前記仮想リソースが、仮想的な論理パスである仮想パスであり、
前記実リソースが、実体としての論理パスである実パスであり、
前記予備リソースが、実パスが割当てられていない仮想パスである予備パスであり、
前記論理パスが、ポートＩＤを含み、
前記仮想リソース用意部が、所定種類の契機で、前記上位部に初めて予備パスを用意し、その後は、予備パスを経由したＩ／Ｏコマンドを初めて前記上位部から受信したことを契機に、新たな予備パスを該上位部に対して用意し、
前記実リソース割当て部が、前記予備パスを経由したＩ／Ｏコマンドを初めて前記上位部から受信したことを契機に、複数の実パスの中からどの仮想パスにも割当てられていない実パスを選択し、該選択した実パスを、該予備パスに割当て、
前記切断要求部が、新たな予備パスが前記上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信し、
前記コマンド制御部が、前記受信したＩ／Ｏコマンドを処理するよう構成されており、前記切断要求に応答して前記接続が切断された後に前記上位部により接続されて受信したディスカバリ要求に応答して、前記新たな予備パスに関わるポートＩＤを前記上位部に送信し、該上位部からの再ログインにより、該送信したポートＩＤに対応したポートと前記上位部との接続を確立する、
請求項１記載の制御装置。
【請求項１７】
前記仮想リソースが、仮想的な論理記憶装置である仮想記憶装置と、仮想的な論理パスである仮想パスとの両方であり、
前記実リソースが、前記ストレージシステムに備えられている複数の物理記憶装置のうちの一以上の物理記憶装置を基に形成された、実体としての論理記憶装置である実記憶装置と、実体としての論理パスである実パスとの両方であり、
前記予備リソースが、前記上位部から送信されるライトコマンドで未だ指定されたことがない前記仮想的な論理記憶装置である予備記憶装置と、前記上位部から送信されるＩ／Ｏコマンドの送信で未だ使用されたことがない仮想パスである予備パスとの両方である、
請求項１記載の制御装置。
【請求項１８】
仮想的な論理リソースである仮想リソースを用意する仮想リソース用意部と、
実体としての論理リソースである実リソースを前記用意された仮想リソースに割当てる実リソース割当て部と
を備え、
前記仮想リソース用意部が、前記制御装置よりも上位にある上位部によって未だ使用されていない仮想リソースである予備リソースを一以上の前記上位部の各々に対して一つ以上用意している、
ストレージシステム。
【請求項１９】
ストレージシステムの論理リソースを制御する方法であって、
上位部によって未だ使用されていない仮想リソースである予備リソースが一以上の前記上位部の各々に対して一つ以上用意されているように、仮想リソースを上位部に対して用意し、
実体としての論理リソースである実リソースを前記用意された仮想リソースに割当てる、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムの複数の論理リソースの制御に関する。
【背景技術】
【０００２】
ストレージシステムには、複数種類の論理リソースがあり、それら複数種類の論理リソースの一つとして、例えば、論理的な記憶装置であるＬＵ（Logical Unit）がある。ＬＵの種類として、例えば、実ＬＵと仮想ＬＵがある。実ＬＵは、ストレージシステムに備えられる複数の物理的な記憶装置のうちの少なくとも一つの記憶空間を基に用意されたＬＵである。仮想ＬＵは、ストレージシステムの上位部（例えばホスト計算機）に提供される仮想的なＬＵである。実ＬＵの全部或いは一部は仮想ＬＵに割当てられる。ストレージシステムが、上位部から仮想ＬＵを指定したＩ／Ｏコマンド（ライトコマンド／リードコマンド）を受信した場合、仮想ＬＵに割当てられた、実ＬＵ又はその一部に対して、データのＩ／Ｏを行うことができる。仮想ＬＵとしては、例えば、Thin Provisioningの技術により提供されるＬＵ、言い換えれば、記憶容量が自動的に拡張されるＬＵを採用することができる。Thin Provisioningに関する技術は、例えば特許文献１に開示されている。
【０００３】
【特許文献１】特開２００３−１５９１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
一般に、ストレージシステムの各所定種類の論理リソースを上位部に利用できるようにするためには、各所定種類の論理リソースに関する情報の設定（以下、「論理リソース情報設定」と言う）を、論理リソースの使用を制御する記憶制御装置に対して、管理者が手動で行う必要がある。所定種類の論理リソースがＬＵである場合には、ＬＵの論理リソース情報設定として、例えば、ＬＵの数と、ＬＵのサイズと、どのホストに対してどのＬＵを割当てるかとのうちの少なくとも一つを、管理者が手動で入力する必要がある。
【０００５】
ストレージシステムは、一般に、種々の企業や官公庁等に導入され運用される。論理リソース情報設定を行うためには、ストレージシステムに関する専門的な知識が必要になることが多い。それ故、導入先において、そのような知識を有した人間が管理者となって、論理リソース情報設定を行うことになる。論理リソース情報設定の必要性をなるべくなくすことができれば、ストレージシステムを導入したり運用したりしやすくなると考えられる。ストレージシステムの導入先によっては、ストレージシステムに関する専門的な知識を持った人間、つまり管理者になり得る人間がおらず、特に、そのような導入先には、論理リソース情報設定の必要性がなるべく無いことが望まれると考えられる。
【０００６】
従って、本発明の目的は、上位部にストレージシステムの所定種類の論理リソースを利用できるようにするための論理リソース情報設定の必要性をなるべく無くすことにある。
【０００７】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００８】
ストレージシステムの論理リソースを制御する制御装置に、仮想的な論理リソースである仮想リソースを用意する仮想リソース用意部と、実体としての論理リソースである実リソースを上記用意された仮想リソースに割当てる実リソース割当て部とを備える。仮想リソース用意部により、制御装置よりも上位にある上位部によって未だ使用されていない仮想リソースである予備リソースが、一以上の前記上位部の各々に対して一つ以上用意される。
【発明を実施するための最良の形態】
【０００９】
本発明の一実施の形態の概要を説明する。
【００１０】
ストレージシステムの論理リソースを制御する制御装置に、仮想的な論理リソースである仮想リソースを用意する仮想リソース用意部と、実体としての論理リソースである実リソースを上記用意された仮想リソースに割当てる実リソース割当て部とが備えられる。仮想リソース用意部により、制御装置よりも上位にある上位部によって未だ使用されていない仮想リソースである予備リソースが一以上の前記上位部の各々に対して一つ以上用意される。
【００１１】
制御装置は、ストレージシステムに内蔵されても良いし、ストレージシステムの外に存在しても良い（例えば、ストレージシステムに接続されるスイッチ装置であっても良い）。この制御装置と該制御装置に接続した複数の物理記憶装置とにより、ストレージシステムを構築することができる。
【００１２】
上位部としては、例えば、ホスト計算機、ホスト計算機で実行されるコンピュータプログラム（例えばアプリケーションプログラム）、或いは、一以上のホスト計算機及び／又は一以上のコンピュータプログラムを用いて定義することができる業務、など、種々の単位とすることができる。
【００１３】
一つの実施形態では、仮想リソース用意部が、上位部に対して用意されている予備リソースがその上位部によって初めて使用されることを契機に、新たな予備リソースをその上位部に対して用意することができる。また、予備リソースが、実リソースが割当てられていない仮想リソースであるとすることができる。この場合、実リソース割当て部が、上位部によって予備リソースが初めて使用されることを契機に、複数の実リソースの中からどの仮想リソースにも割当てられていない実リソースを選択し、該選択した実リソースを、前記初めて使用される予備リソースに割当てることができる。
【００１４】
一つの実施形態では、新たな予備リソースが上位部に用意された契機で、該上位部との接続を切断することを該上位部に要求する切断要求部が更に備えられてよい。
【００１５】
一つの実施形態では、仮想リソースが、仮想的な論理記憶装置（例えばＬＵ）である仮想記憶装置とすることができる。実リソースが、ストレージシステムに備えられている複数の物理記憶装置のうちの一以上の物理記憶装置を基に形成された、実体としての論理記憶装置である実記憶装置とすることができる。予備リソースが、上位部から送信されるライトコマンドで未だ指定されたことがない仮想論理記憶装置である予備記憶装置とすることができる。
【００１６】
仮想リソース用意部が、予備記憶装置を指定したライトコマンドを初めて前記上位部から受信したことを契機に、新たな予備記憶装置を上位部に対して用意することができる。予備記憶装置が、実記憶装置が割当てられていない仮想記憶装置であってもよい。この場合、実リソース割当て部が、予備記憶装置を指定したライトコマンドを初めて上位部から受信したことを契機に、複数の実記憶装置の中からどの仮想記憶装置にも割当てられていない実記憶装置を選択し、該選択した実記憶装置を、該予備記憶装置に割当てることができる。
【００１７】
受信したライトコマンドに従うライト対象データを、該ライトコマンドで指定されている予備記憶装置に割当てられた実記憶装置に書込むコマンド制御部と、新たな予備記憶装置が上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信する切断要求部とが備えられても良い。この場合、コマンド制御部が、切断要求に応答して上記接続が切断された後に、上位部と制御装置とが接続されて、該上位部から受信した所定種類のコマンドに応答して、該上位部に対して用意された新たな予備記憶装置に関する情報（例えば、仮想ＬＵＮ）を上位部に提供することができる。
【００１８】
どのような種類の上位部に対してどれだけの数及び／又はだれだけの容量の仮想記憶装置を用意するかが定義されたポリシー情報を記憶する記憶領域が更に制御装置に備えられても良い。この場合、仮想リソース用意部が、ライトコマンドの送信元の上位部の種類と、ポリシー情報とに基づいて、該上位部に対して用意する予備記憶装置の数及び／又は容量を制御することができる。
【００１９】
一つの実施形態では、仮想リソースが、仮想的な論理パスである仮想パスとすることができる。実リソースが、実体としての論理パスである実パスとすることができる。予備リソースが、上位部から送信されるＩ／Ｏコマンドの送信で未だ使用されたことがない仮想パスである予備パスとすることができる。
【００２０】
仮想リソース用意部が、予備パスを経由したＩ／Ｏコマンドを初めて上位部から受信したことを契機に、新たな予備パスを上位部に対して用意することができる。予備パスが、実パスが割当てられていない仮想パスであってもよい。この場合、実リソース割当て部が、予備パスを経由したＩ／Ｏコマンドを初めて上位部から受信したことを契機に、複数の実パスの中からどの仮想パスにも割当てられていない実パスを選択し、該選択した実パスを、該予備パスに割当てることができる。なお、Ｉ／Ｏコマンドが初めて予備パスを経由したことは、例えば、該予備パスに実パスが割当てられていないことにより、検出することができる。
【００２１】
受信したＩ／Ｏコマンドを処理するコマンド制御部と、新たな予備パスが上位部に用意された契機で、該上位部との接続を切断することの要求である切断要求を該上位部に送信する切断要求部とが更に制御装置に備えられても良い。コマンド制御部が、切断要求に応答して上記接続が切断された後に、上位部と制御装置とが接続されて、該上位部から受信した所定種類のコマンドに応答して、該上位部に対して用意された新たな予備パスに関する情報（例えば、ポートＩＤ）を、上位部に提供することができる。
【００２２】
一以上の上位部の各々から送信されたコマンドを受信する複数のポートが更に制御装置に備えられ、論理パスに、ポートＩＤが含まれてもよい。この場合、実リソース割当て部が、どの仮想パスにも割当てられていない二以上の実パスの各々のポートＩＤに対応した各ポートの負荷に応じて、該二以上の実パスの中から選択する実パスを制御することができる。
【００２３】
一つの実施形態では、仮想リソースが、仮想記憶装置と仮想パスとの両方であってもよい。同様に、実リソースが、実記憶装置と実パスとの両方であって、予備リソースが、予備記憶装置と予備パスとの両方であっても良い。
【００２４】
上述した各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００２５】
以下、図面を参照して、詳細に、本発明の幾つかの実施形態を説明する。なお、その際、所定種類の論理リソースとして、ＬＵを例に採った実施形態を「第一の実施形態」とし、論理パスを例に採った実施形態を「第二の実施形態」とする。
【００２６】
＜第一の実施形態＞。
【００２７】
図１は、本発明の第一実施形態に係る計算機システムの構成例を示す。
【００２８】
ＳＡＮ（Storage Area Network）１０に、ホスト計算機３及びストレージシステム１が接続されている。ＳＡＮ１０に代えて、他種のネットワーク、例えば、インターネット、或いはＬＡＮ（Local Area Network）などが採用されても良い。言い換えれば、例えば、ホスト計算機３とストレージシステム１との間の通信のプロトコルは、ファイバチャネルであっても良いし、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）であっても良いし、iSCSI（internet Small Computer System Interface）であっても良い。また、図１には、ホスト計算機３は一つだけ示しているが、実際には、複数台存在する。ホスト計算機３の数は一つであっても良い。
【００２９】
ホスト計算機３には、ＣＰＵや記憶資源が備えられる。記憶資源には、例えば、図２２に示すように、ＯＳ（オペレーティングシステム）１１や、ボリューム管理マネージャ１２や、アプリケーションプログラム（以下、ＡＰ）１３が記憶され、それらがＣＰＵにより実行される。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。ボリューム管理マネージャ１２は、ホスト計算機３に提供される仮想ＬＵを認識（例えばマウント）し管理することができる。ＡＰ１３は、ボリューム管理マネージャ１２やＯＳ１１を通じて、Ｉ／Ｏコマンド（ライトコマンド／リードコマンド）を送信することができる。
【００３０】
ストレージシステム１には、制御装置１０７と、複数のディスク装置１０３とが備えられている。
【００３１】
複数のディスク装置１０３の各々は、物理的なディスク型記憶装置であり、具体的には、例えば、ハードディスクドライブである。勿論、それに代えて、ＤＶＤ（Digital Versatile Disk）ドライブ等の他種の物理的なディスク型記憶装置が採用されても良いし、フラッシュメモリデバイス等の他種の物理的な記憶装置が採用されても良い。複数のディスク装置１０３の記憶空間を基に、複数の実ＬＵが形成される。各実ＬＵは、例えば、複数のディスク装置１０３のうちの二以上のディスク装置１０３によりＲＡＩＤ構成されたＲＡＩＤグループの記憶空間を基に形成されて良い。
【００３２】
制御装置１０７は、ストレージシステム１の動作を制御する装置である。制御装置１０７は、一以上のポート１０８と、管理ポート１０９と、主メモリ１０１と、キャッシュメモリ１１０と、不揮発性メモリ１００と、一以上のＩＯ
Ｉ／Ｆ１０５と、それらが接続されるバス１０２とを備える。バス１０２に代えて、他種の転送制御部（例えばＬＳＩ（Large Scale Integration）で構成されたスイッチ）が採用されても良い。
【００３３】
一以上のＩＯ Ｉ／Ｆ１０５の各々は、複数のディスク装置１０３の各々と通信する（例えばデータの入出力をする）ためのインタフェース装置である。各ＩＯ
Ｉ／Ｆ１０５及び各ディスク装置１０３は、バス１０６に接続される。
【００３４】
一以上のポート１０８の各々は、ＳＡＮ１０に接続されるポートであり、例えば、ＳＡＮ１０を介してホスト計算機３からＩ／Ｏコマンドを受信する。
【００３５】
管理ポート１０９は、管理端末２と通信するためのポートである。管理ポート１０９と管理端末２との間では、通信ネットワーク或いは専用線を経由して通信が行われる。
【００３６】
主メモリ１０１は、例えば揮発性（或いは不揮発性）のメモリであり、例えば、ＣＰＵ１０４のワーク領域として利用される。
【００３７】
キャッシュメモリ１１０は、ホスト計算機３から受信したライトコマンドに従って仮想ＬＵに書込まれるライト対象データや、ホスト計算機３から受信したリードコマンドに従って仮想ＬＵから読み出されたリード対象データを、一時的に記憶する。なお、本実施形態において、ライトコマンドに従ってライト対象データが仮想ＬＵに書込まれるとは、該ライトコマンドから特定された仮想領域に対応する物理領域にライト対象データが書きこまれることを意味する。「仮想領域に対応する物理領域」とは、仮想領域に対応する実領域に対応した物理領域のことである。仮想領域とは、仮想ＬＵにおける記憶領域（例えば、Ｉ／Ｏコマンドから特定されたアドレスに対応する領域）を意味し、実領域とは、実ＬＵにおける記憶領域を意味し、物理領域とは、ディスク装置１０３における記憶領域を意味する。リードコマンドに従ってリード対象データが読み出されるとは、該リードコマンドから特定された仮想領域に対応する物理領域からリード対象データが読み出されることを意味する。
【００３８】
不揮発性メモリ１００には、ＣＰＵ１０４で実行される複数のコンピュータプログラムや、ＣＰＵ１０４により参照される情報が記憶される。複数のコンピュータプログラムには、例えば、ホスト登録処理を実行するホスト登録プログラム１１１、コマンド制御処理を実行するコマンド制御プログラム１１２、実ＬＵ割当て処理を実行する仮想ＬＵ制御プログラム１１３、及び、セッション切断処理を実行するセッション制御プログラム１１４が含まれる。ＣＰＵ１０４により参照される情報として、例えば、ホストテーブル１２１及びＬＵテーブル１２２がある。
【００３９】
図２（ａ）は、ホストテーブル１２１の構成例を示す。
【００４０】
ホストテーブル１２１には、ホストＩＤが書かれるカラム１２１１と、仮想ＬＵＮが書かれるカラム１２１２と、実ＬＵＮが書かれるカラム１２１３とがある。ホストテーブル１２１を構成する各レコードにおいて、カラム１２１１と交差するフィールドには、ホストＩＤが書かれ、カラム１２１２と交差するフィールドには、仮想ＬＵＮが書かれ、カラム１２１３と交差するフィールドには、実ＬＵＮが書かれる。ホストＩＤとは、ホスト計算機３の識別子である。仮想ＬＵＮとは、仮想ＬＵのＬＵＮ（Logical Unit Number）である。実ＬＵＮとは、実ＬＵのＬＵＮである。なお、実ＬＵＮの値として、未割当てを意味する値“unassigned”があるが、これは、仮想ＬＵ（例えば、仮想ＬＵＮ１に対応した仮想ＬＵ）に実ＬＵが割当てられていないことを意味する。
【００４１】
本実施形態の説明において、「レコード」とは、テーブルの行を意味する。従って、例えば、一番目のレコードによれば、ホストＩＤ“Ｈ０１”に対応するホスト（以下、ホストＨ０１）に、仮想ＬＵＮ“０”に対応する仮想ＬＵ（以下、仮想ＬＵ０）が見えており、該仮想ＬＵ０に、実ＬＵＮ“０”に対応する実ＬＵ（以下、実ＬＵ０）が割当てられていることがわかる。また、二番目のレコードによれば、ホストＨ０１に、仮想ＬＵ１が見えているが、実ＬＵが割当てられていないことがわかる。
【００４２】
なお、この実施形態の説明では、説明を分かり易くするために、一つの仮想ＬＵに割当てられる実ＬＵの数は一つであるとする。つまり、仮想ＬＵと実ＬＵとが一対一で対応するとする。また、図２（ａ）によれば、異なるホストＨ０１，Ｈ０２に同一の仮想ＬＵ０，１が提供されているが、ホストＨ０１に提供される仮想ＬＵ０，１と、ホストＨ０２に提供される仮想ＬＵ０，１は、異なる。言い換えれば、本実施形態では、仮想ＬＵの識別は、仮想ＬＵＮとホストＩＤとの組み合わせで行われ、故に、同一の仮想ＬＵＮを有する複数の仮想ＬＵが一つのホストに提供されることは無い。
【００４３】
図２（ｂ）は、ＬＵテーブル１２２の構成例を示す。
【００４４】
ＬＵテーブル１２２には、実ＬＵＮが書かれるカラム１２２１と、実ＬＵに関するステータスが書かれるカラム１２２２とがある。ＬＵテーブル１２２を構成する各レコードにおいて、カラム１２２１と交差するフィールドには、実ＬＵＮが書かれ、カラム１２２２と交差するフィールドには、実ＬＵに関するステータスが書かれる。実ＬＵに関するステータスとしては、例えば、割当て済み（assigned）と未割当て（unassigned）の２種類があるが、それより多くの種類があってもよい。
【００４５】
ちなみに、本実施形態では、ストレージシステム１の導入時（言い換えれば、製品出荷時）には、予め、複数の実ＬＵが用意されている。実ＬＵの数や、実ＬＵのサイズ等は、管理者（管理端末２のオペレータ）によって変更する必要が無い。ストレージシステム１の導入時には、ホストテーブル１２１及びＬＵテーブル１２２のうち、少なくともＬＵテーブル１２２が用意されていてよい。そして、そのＬＵテーブル１２２のカラム１２２１の全てのフィールドには、予め用意されている全ての実ＬＵの実ＬＵＮが記録されていて、カラム１２２２にはおける全てのフィールドには未割当てが記録されていてよい。
【００４６】
以上が、本実施形態に係る計算機システムについての説明である。
【００４７】
この実施形態では、ホストに対して、常に、実ＬＵが割当てられていない一以上の仮想ＬＵが予備リソースとして用意される。言い換えれば、ホストに対しては、常に、一つ以上の仮想ＬＵを見せることができる。ホストからは、それら一以上の仮想ＬＵのうちのどれに実ＬＵが割当てられていてどれに実ＬＵが割当てられていないかはわからないが、それら一以上の仮想ＬＵの少なくとも一つに、実ＬＵが未割当ての仮想ＬＵが含まれている。以下、図３（ａ）、図３（ｂ）及び図３（ｃ）を参照して、本実施形態で行われる処理の流れの一例の概要を説明する。なお、図３（ａ）、図３（ｂ）及び図３（ｃ）の各々では、仮想ＬＵを点線で示し、仮想ＬＵに割当てられた実ＬＵを実線で示し、仮想ＬＵに割当てられていない実ＬＵの図示を省略している。
【００４８】
図３（ａ）に示すように、ストレージシステム１が導入された後、ホストＨ０１に対して仮想ＬＵ０が提供される。仮想ＬＵ０は、ホストＨ０１を制御装置１０７が検出した場合に、制御装置１０７により用意されても良い。また、初めの仮想ＬＵである仮想ＬＵ０をホストＨ０１に対して用意する場合に限り、制御装置１０７が、管理端末２からＬＵ作成指示を受けて、該ＬＵ作成指示に応答して、ホストＨ０１に対して仮想ＬＵ０を用意しても良い。なお、仮想ＬＵ０をホストＨ０１に対して用意するとは、具体的には、例えば、図２０（ａ）に示すように、ホストテーブル１２１に、以下のレコード、すなわち、ホストＩＤとして“Ｈ０１”が記録され、仮想ＬＵＮとして“０”が記録され、実ＬＵＮとして“unassigned”が記録されたレコードを、追加することである。このため、ホストテーブル１２１のレコードの数は、或るホストに新たに仮想ＬＵが用意されると一つ増えることになるので、ホストテーブル１２１のサイズは、ホストに用意される仮想ＬＵが増えると、増えることになる。
【００４９】
制御装置１０７は、ホストＨ０１から仮想ＬＵ０を指定したライトコマンドを初めて受信した場合に、図３（ｂ）に示すように、複数の実ＬＵの中から未割当ての実ＬＵ（例えば実ＬＵ０）を選択して仮想ＬＵ０に割り当て、且つ、ホストＨ０１に対して新たな仮想ＬＵ１を用意する。この段階において、ホストテーブル１２１は、図２（ａ）に示す通りになり、ＬＵテーブル１２２は、図２（ｂ）に示す通りになる。制御装置１０７は、ホストＨ０１にセッション切断要求を送信する。ホストＨ０１がセッション切断要求に応答して、当該セッションを切断した後、ホストH01がストレージシステム１に再ログインしたならば、ホストＨ０１に仮想LUN1が提供されるので、新たに仮想ＬＵ１が見えるようになる。
【００５０】
この処理において、例えば、未割当ての実ＬＵは、ＬＵテーブル１２２からステータスが“unassigned”の実ＬＵＮを探し出すことで、特定することができる。また、制御装置１０７は、ライトコマンドに従うライト対象データを、仮想ＬＵ０に実ＬＵ０を割当てて以降、任意のタイミングで、実ＬＵ０に書込むことができる。また、セッション切断要求に代えて、ホストから再ログインがなされることになる要求であれば何でも良い。再ログインとは、ストレージシステム１に対して行う２回目以降のログインのことであり、再ログインに対する言葉として初回ログインがある。再ログインでも初回ログインでも、ログイン要求がホストからストレージシステム１に対して送信される。セッション切断要求を送信するとは、例えば、iSCSIの場合には、Asynchronous Message又はＴＣＰコネクション切断要求を送信することである。また、ホストから仮想ＬＵが見えるとは、ホストから仮想ＬＵを認識すること、具体的には、例えば、ホストに仮想ＬＵがマウントされること、より具体的には、例えば、ホストにおける特定のコンピュータプログラム（例えばボリューム管理マネージャ１２）が仮想ＬＵを認識することを意味する。
【００５１】
以後、制御装置１０７は、ライトコマンドを受信した場合、受信したライトコマンドが、仮想ＬＵ０を指定したライトコマンドである場合には、該ライトコマンドに従うライト対象データを、仮想ＬＵ０に割当てられている実ＬＵ０に書込む。また、制御装置１０７は、受信したライトコマンドが、実ＬＵが未割当ての仮想ＬＵ１を指定したライトコマンドである場合には、言い換えれば、仮想ＬＵ１を指定したライトコマンドを初めて受信した場合には、以下の処理を行う。すなわち、制御装置１０７は、図３（ｃ）に示すように、複数の実ＬＵの中から未割当ての実ＬＵ（例えば実ＬＵ３）を選択して仮想ＬＵ１に割り当て、且つ、ホストＨ０１に対して新たな仮想ＬＵ２を用意する。この段階において、ホストテーブル１２１は、図２１（ａ）に示す通りになり、ＬＵテーブル１２２は、図２１（ｂ）に示す通りになる。制御装置１０７は、ホストＨ０１にセッション切断要求を送信する。ホストＨ０１がセッション切断要求に応答してストレージシステム１に再ログインしたならば、ホストＨ０１に仮想LUN2が提供されるので、ホストＨ０１からは、新たに仮想ＬＵ２が見えるようになる。
【００５２】
ちなみに、図３（ｃ）において、再ログインがされる前であれば、例えば、ボリューム管理マネージャ１２が、ホストＨ０１のユーザ、或いは、ホストＨ０１に接続されているホスト管理端末（詳細は後述する）等からの要求に応答して、現在認識されている仮想ＬＵ０、１に関する情報（例えば、仮想ＬＵＮ及び仮想ＬＵサイズ）を表示した管理画面４００（図４（ａ）参照）を提供する。一方、再ログインがなされた後であれば、例えば、例えば、ボリューム管理マネージャ１２が、ホストＨ０１のユーザ、或いは、ホストＨ０１に接続されているホスト管理端末等からの要求に応答して、現在認識されている仮想ＬＵ０、１及び２に関する情報（例えば、仮想ＬＵＮ及び仮想ＬＵサイズ）を表示した管理画面４００（図４（ｂ）参照）を提供する。図４（ａ）と図４（ｂ）とを比較すれば、再ログインにより、仮想ＬＵ２が新たに用意されたことがわかる。なお、仮想ＬＵサイズは、本実施形態では、一律に３０ＭＢ（メガバイト）という固定値としており、仮想ＬＵと実ＬＵは一対一で対応するため、実ＬＵサイズも３０ＭＢである。仮想ＬＵサイズや実ＬＵサイズは他の値であっても良い。
【００５３】
以上のように、本実施形態では、実ＬＵが割当てられていない仮想ＬＵ（以下、「予備仮想ＬＵ」と言うことがある）を指定したライトコマンドを初めて受信した場合、未割当ての実ＬＵが選択されて仮想ＬＵに割り当てられるが、そのようなライトコマンドを受信したことを契機として、制御装置１０７が、該ライトコマンドの送信元のホストに対して、新たに予備仮想ＬＵを用意する。その際、その新たに用意された予備仮想ＬＵの仮想ＬＵＮは、そのホストに対して既に用意されている一以上の仮想ＬＵの仮想ＬＵＮに重複しない番号、例えば、それら一以上の仮想ＬＵＮのうち番号が最も大きい仮想ＬＵＮに１を加算したＬＵＮとすることができる。また、新たに予備仮想ＬＵを用意する契機としては、予備仮想ＬＵを指定したライトコマンドを初めて受信した契機、言い換えれば、予備仮想ＬＵが枯渇する契機に代えて、他の契機が採用されてもよい。例えば、予備仮想ＬＵが常に複数個用意されているならば、或る予備仮想ＬＵに割当てられている実ＬＵの空き容量が少なくなったことを契機として、新たに一又は二以上の予備仮想ＬＵが用意されても良い。
【００５４】
また、上述した説明において、ホストＨ０１にとっての初期状態は、図３（ａ）に示す状態としたが、それに限らず、例えば、図３（ｂ）に示す状態が初期状態であっても良い。すなわち、ホストＨ０１には、初めは、一以上の予備仮想ＬＵに加えて、実ＬＵが割当てられている少なくとも一つの仮想ＬＵが用意されても良い。
【００５５】
また、前述の説明では、予備仮想ＬＵの定義として、実ＬＵが割当てられていない仮想ＬＵとしたが、それに代えて、より広い概念として、ライトコマンドで未だ一度も指定されていない仮想ＬＵとしても良い。すなわち、本実施形態では、仮想ＬＵに実ＬＵが割当てられる契機としては、該仮想ＬＵを指定したライトコマンドを初めて受信したことであるが、それに代えて、ホストＨ０１に新たに仮想ＬＵが用意された契機としても良い。この場合であれば、ライトコマンドを受信する前に前もって仮想ＬＵに実ＬＵが割当てられることになる。また、この場合であれば、例えば、ホストＨ０１にとっての初期状態としては、実ＬＵが割当てられている仮想ＬＵ（但し、該仮想ＬＵを指定したライトコマンドを未だ受信していない状態の仮想ＬＵ）のみが用意された状態であっても良い。その際、該仮想ＬＵを指定したライトコマンドを初めて受信したことを契機として、新たに仮想ＬＵが用意されても良い。新たに用意された仮想ＬＵには、その仮想ＬＵの用意を契機に実ＬＵが割り当てられても良いし、その仮想ＬＵを指定したライトコマンドを初めて受信した契機で実ＬＵが割り当てられても良い。
【００５６】
以下の説明では、予備仮想ＬＵの定義としては、ライトコマンドで未だ一度も指定されていない仮想ＬＵとし、実ＬＵが割当て済みであるか否かはどちらでも良いことにする。
【００５７】
さて、図３（ａ）、図３（ｂ）及び図３（ｃ）を参照した説明において、ホストＨ０１に対して初めて予備仮想ＬＵを用意する方法（以下、初回準備方法）としては、幾つかの方法、例えば以下の３つの方法が考えられる。
【００５８】
第一の初回準備方法は、制御装置１０７が、ホストＨ０１を初めて検出したことを契機に、ホストＨ０１に対して仮想ＬＵ０を用意する方法である。第一の初回準備方法で行われる処理の流れの一例を、図１６に示す。すなわち、ホストＨ０１が、所定の種類の情報（例えば、ストレージシステム１のＩＰアドレス）を含んだディスカバリ要求を、ストレージシステム１に送信する（Ｓ１０１）。制御装置１０７が、そのディスカバリ要求に応答して、ホストＨ０１に仮想ＬＵ０を用意し、ホストＨ０１と仮想ＬＵ０とを対応付け（Ｓ１０２）、用意した仮想ＬＵ０の仮想ＬＵＮ０をホストＨ０１に送信する（Ｓ１０３）。ホストＨ０１のボリューム管理マネージャ１２が、ＯＳ１１を通じて、ストレージシステム１からの仮想ＬＵＮ０を含んだ初回ログインをストレージシステム１に行う（ログイン要求をストレージシステム１に送信する）ことにより（Ｓ１０４）、仮想ＬＵ０を認識することができる。
【００５９】
第二の初回準備方法は、管理端末２からＬＵ作成指示を受信したことを契機に、ホストＨ０１に対して仮想ＬＵ０を用意する方法である。第二の初回準備方法で行われる処理の流れの一例を、図１７に示す。すなわち、管理端末２が、ホストＨ０１のホストＩＤ“Ｈ０１”を含んだＬＵ作成指示を送信する（Ｓ１１１）。制御装置１０７が、そのＬＵ作成指示に応答して、ホストＨ０１に仮想ＬＵ０を用意し、ホストＨ０１と仮想ＬＵ０とを対応付け（Ｓ１１２）、応答を管理端末２に返す（Ｓ１１３）。ホストＨ０１のボリューム管理マネージャ１２が、ＯＳ１１を通じて、仮想ＬＵＮ０を含んだログイン要求をストレージシステム１に送信する（初回ログインする）ことにより（Ｓ１１４）、仮想ＬＵ０を認識することができる。なお、この第二の初回準備方法では、ボリューム管理マネージャ１２は、ユーザからの入力等により、仮想ＬＵ０の仮想ＬＵＮ０を知ることができる。
【００６０】
なお、この第二の初回準備方法では、管理端末２を、ホストＨ０１のエージェントプログラム１４に代えることができる。例えば、図１９（ａ）に示すように、ホストＨ０１の記憶資源にエージェントプログラム１４が記憶されていて、エージェントプログラム１４が、図１９（ｂ）に例示するように、ホスト管理端末４からの指示に応答して、ＬＵ作成指示をストレージシステム１に送信しても良い。この場合であれば、例えば、図１の構成において、管理端末２及び管理ポート１０９は無くても良い。なお、ホスト管理端末４のオペレータを「ホスト管理者」と言い、それに対し、管理端末２のオペレータを「ストレージ管理者」と言うこともできる。
【００６１】
第三の初回準備方法は、特定のサーバ、例えば名前管理サーバ（iSNS（internet Storage name service）サーバ）を利用する方法である。第三の初回準備方法で行われる処理の流れの一例を、図１８に示す。すなわち、ホストＨ０１が、自分のＩＤ“Ｈ０１”を名前管理サーバに登録し（Ｓ１２１）、名前管理サーバから、登録の完了の通知を受ける（Ｓ１２２）。名前管理サーバが、新規に登録されたＩＤ“Ｈ０１”をストレージシステム１に通知する（Ｓ１２３）。制御装置１０７が、その通知に応答して、ホストＨ０１に仮想ＬＵ０を用意し、ホストＨ０１と仮想ＬＵ０とを対応付け（Ｓ１２４）、ホストＨ０１に対応する仮想ＬＵＮ０を名前管理サーバに登録し（Ｓ１２５）、応答を名前管理サーバから受ける（Ｓ１２６）。名前管理サーバでは、ホストＩＤ“０１”と仮想ＬＵＮ“０”とが対応付けられている。ホストＨ０１が、所定の種類の情報（例えば、名前管理サーバのＩＰアドレス）を含んだディスカバリ要求を、名前管理サーバに送信する（Ｓ１２７）。名前管理サーバが、そのディスカバリ要求に応答して、ホストＨ０１に対応した仮想ＬＵＮ０をホストＨ０１に送信する（Ｓ１２８）。ホストＨ０１のボリューム管理マネージャ１２が、ＯＳ１１を通じて、ストレージシステム１からの仮想ＬＵＮ０を含んだログイン要求をストレージシステム１に送信する（初回ログインする）ことにより（Ｓ１２９）、仮想ＬＵ０を認識することができる。なお、名前管理サーバに登録する情報は、仮想LUNの代わりに、iSCSIネームであってもよい。
【００６２】
上述した第一乃至第三の初回準備方法において、ステップ１０２、ステップ１１２及びステップ１２４で、ホスト登録プログラム１１１が、図５に例示するホスト登録処理を実行することができる。以下の説明では、初回準備方法が完結した場合のホストＨ０１にとっての初期状態として、図３（ｂ）の状態であるとする。
【００６３】
ステップ５００１で、ホスト登録プログラム１１１は、ホストＩＤを決定する。決定されるホストＩＤとしては、ステップ１０２では、ディスカバリ要求から特定されるＩＤとすることができる。ステップ１１２では、ＬＵ作成指示に応答して任意に決めたＩＤ、或いは、ＬＵ作成指示から特定されるＩＤとすることができる。ステップ１２４では、名前管理サーバからの通知から特定されるＩＤとすることができる。
【００６４】
ステップ５００２で、ホスト登録プログラム１１１は、ＬＵテーブル１２２から、一以上の未割当ての実LUを検索し、検索した一以上の未割当ての実LUから未割当ての実ＬＵ（例えば実ＬＵ０）を選択し、該選択した実ＬＵに対応したステータスを“assigned”に変更する。
【００６５】
ステップ５００３で、ホスト登録プログラム１１１は、ホストテーブル１２１に、ホストＩＤ“Ｈ０１”と、任意の仮想ＬＵＮ（例えば仮想ＬＵＮ“０”）と、ステップ５００２で選択された実ＬＵに対応した実ＬＵＮ（例えば実ＬＵＮ“０”）とを記録したレコードを追加する。
【００６６】
ステップ５００４で、ホスト登録プログラム１１１は、ホストテーブル１２１に、ホストＩＤ“Ｈ０１”と、任意の仮想ＬＵＮ（例えば仮想ＬＵＮ“１”）と、実ＬＵＮとして“unassigned”とを記録したレコードを追加する。すなわち、ホスト登録プログラム１１１は、ホストＨ０１に対して、実ＬＵが割当てられていない仮想ＬＵを用意する。
【００６７】
以上が、ホスト登録処理の一例である。なお、例えば、ホストＨ０１の初期状態が例えば図３（ａ）に示した状態であれば、ステップ５００２及び５００３は不要であり、ステップ５００４で、実ＬＵが割当てられていない仮想ＬＵを用意すれば良い。また、例えば、ステップ５００４は、必ずしもホスト登録処理において行わなくても良い（この場合は、例えば、ステップ５００３で用意した仮想ＬＵに初めてライトが生じることを契機に、別のコンピュータプログラムによって、ステップ５００４に相当する処理が実行されても良い）。
【００６８】
図６と図７との組み合わせにより、コマンド制御プログラム１１１が実行するコマンド制御処理の流れの一例を示す。
【００６９】
コマンド制御プログラム１１１は、ホストから制御装置１０７が受信したコマンドを解析し、該コマンドがReport LUNである場合（ステップ６００１でＹｅｓ）、ステップ６００２を実行する。すなわち、コマンド制御プログラム１１１は、ホストテーブル１２１から、コマンド（Report LUN）の送信元ホストのＩＤを含んだレコードを検索する。そして、ステップ６００３で、コマンド制御プログラム１１１は、見つかった各レコードにある仮想ＬＵＮを、該送信元ホストに送信する。
【００７０】
ホストから制御装置１０７が受信したコマンドがReport LUNではない場合（ステップ６００１でＮｏ）、コマンド制御プログラム１１１は、受信したコマンドで指定されている仮想ＬＵＮが記録されているレコードをホストテーブル１２１から探す（ステップ６００４）。その結果、見つかったレコードに記録されている実ＬＵＮの値が“unassigned”であれば（ステップ６００５でＹｅｓ）、図７のステップ７００１に進む。一方、見つかったレコードに記録されている実ＬＵＮの値が“assigned”であれば（ステップ６００５でＮｏ）、コマンド制御プログラム１１１は、受信したコマンドに従う処理（通常のコマンド処理）を実行する（ステップ６００６）。例えば、該コマンドがライトコマンドであれば、コマンド制御プログラム１１１は、該ライトコマンドに従うライト対象データをキャッシュメモリ１１０に一時格納し、該ライトコマンドで指定されている仮想ＬＵに、該キャッシュメモリ１１０に一時格納したライト対象データを書く。また、例えば、該コマンドがリードコマンドであれば、コマンド制御プログラム１１１は、該リードコマンドに従うリード対象データを、該リードコマンドで指定されている仮想ＬＵから読出してキャッシュメモリ１１０に一時格納し、該キャッシュメモリ１１０に一時格納したリード対象データを、リードコマンドの送信元ホストに送信する。
【００７１】
図７のステップ７００１において、コマンド制御プログラム１１１は、受信したコマンドがライトコマンドであれば（ステップ７００１でＹｅｓ）、ステップ７００２にて、仮想ＬＵ制御プログラム１１３を呼び出して実ＬＵ割当て処理（詳細は図８（ａ）に示す）を実行させる。一方、受信したコマンドがライトコマンドでなければ（ステップ７００１でＮｏ）、ステップ７００３に進む。
【００７２】
ステップ７００３において、コマンド制御プログラム１１１は、受信したコマンドがリードコマンドであれば（ステップ７００３でＹｅｓ）、ステップ７００４にて、リードコマンドの送信元ホストに、読み出したデータとして０を返す。それに代えて、他種の方法で、エラーを送信元ホストに通知しても良い。一方、受信したコマンドがリードコマンドでなければ（ステップ７００３でＮｏ）、ステップ７００５に進む。
【００７３】
ステップ７００５において、コマンド制御プログラム１１１は、受信したコマンドがRead Capacity又はInquiryであれば（ステップ７００５でＹｅｓ）、ステップ７００６にて、コマンドの送信元ホストに、固定値を送信する。固定値としては、例えば、コマンドがRead Capacityであれば、仮想ＬＵサイズ（例えば上記の３０ＭＢ）であり、コマンドがInquiryであれば、ストレージシステム１のメーカ名や製造番号等である。受信したコマンドがRead Capacity及びInquiryでなければ（ステップ７００５でＮｏ）、ステップ７００７にて、コマンド制御プログラム１１１は、受信したコマンドに従う処理（通常のコマンド処理）を実行する。
【００７４】
図８（ａ）は、仮想ＬＵ制御プログラム１１３により実行される実ＬＵ割り当て処理の流れの一例を示す。
【００７５】
ステップ８００１で、仮想ＬＵ制御プログラム１１３は、ＬＵテーブル１２２から、未割当ての実ＬＵを選択し（つまり、“unassigned”となっている実ＬＵＮを選択し）、選択した実ＬＵのステータスを“assigned”に変更する。
【００７６】
ステップ８００２で、仮想ＬＵ制御プログラム１１３は、ホストテーブル１２１の、実ＬＵが未割当ての仮想ＬＵを表すレコードを、実ＬＵが仮想ＬＵに割当て済みであることを表すレコードに変更する。具体的には、例えば、仮想ＬＵ制御プログラム１１３は、ホストテーブル１２１の、実ＬＵＮが“unassigned”になっているレコード（ライトコマンドの送信元ホストのホストＩＤが記録されているレコード）において、“unassigned”を、ステップ８００１でステータスが“assigned”になった実ＬＵＮに変更する。
【００７７】
ステップ８００３で、仮想ＬＵ制御プログラム１１３は、ホストテーブル１２１に、実ＬＵが未割当ての仮想ＬＵを表すレコード（ライトコマンドの送信元ホストのホストＩＤが記録されているレコード）を追加する。
【００７８】
ステップ８００４で、仮想ＬＵ制御プログラム１１３は、セッション制御プログラム１１４を呼び出す（つまり、セッション切断処理を実行させる）。
【００７９】
図８（ｂ）は、セッション制御プログラム１１４により実行されるセッション切断処理の流れの一例を示す。
【００８０】
ステップ８００５で、セッション制御プログラム１１４は、ライトコマンドの送信元ホストに、セッション切断要求を送信する。これにより、送信元ホストが、そのセッション切断要求に応答して、ストレージシステム１に再ログインすることで、図８（ａ）のステップ８００３で用意された仮想ＬＵを新たに認識することができる。また、送信元ホストは、例えば、仮想LU1を指定したライトコマンドを送信した場合に、再ログインすることになった場合には、該ライトコマンドをストレージシステム１に再送すれば、該ライトコマンドに従うライト対象データが、仮想LU1に割当てられた実LUに書かれることになる。
【００８１】
以上が、第一の実施形態についての説明である。
【００８２】
上述した第一の実施形態によれば、ホストには常に一以上の予備仮想ＬＵが用意される。具体的には、例えば、新規にホストを導入する場合（言い換えれば、ホストに対して初めて仮想ＬＵを用意する場合）、ホスト或いは管理端末等から、ＬＵの数やサイズ等の指定を含まない所定の要求を送信すれば、該ホストに予備仮想ＬＵが用意される。その後、ホストから予備仮想ＬＵへの初めてのライトを契機に、そのホストに対して新たに予備仮想ＬＵが用意され、このような処理が、予備仮想ＬＵに対して初めてのライトが生じる都度に実行される。つまり、ホストが新規に導入されるときでも、導入した後でも、ホストにＬＵを提供するためにＬＵの数やサイズ等の論理リソース情報設定を行わなくても済む。このため、ストレージシステムに関する専門的な知識を持った管理者が不在の企業等にも、ストレージシステムを導入し易くなる。
【００８３】
また、上述した第一の実施形態によれば、ホストには常に一以上の予備仮想ＬＵが用意される。言い換えれば、予備仮想ＬＵが枯渇しそうな場合には新たに予備仮想ＬＵが自動的に用意されてホストに提供される。このため、ホストに対してＬＵを追加するといった論理リソース情報設定を行わなくても、ホストにとって仮想ＬＵが枯渇してしまう（空き容量のある仮想ＬＵが無くなってしまう）可能性を軽減することができる。
【００８４】
論理リソース情報設定をなるべく行わせないための別法としては、仮想ＬＵを、Thin Provisioningの技術により提供される仮想ＬＵとし、予め、ストレージシステム１に接続可能な最大数のホストの各々に対して、一つのホストに割当てることが可能な最大数の仮想ＬＵを割当てておく方法が考えられる。しかし、この別法を採用すると、十分に大きな容量を持ったメモリ、具体的には、例えば、ホスト最大数×仮想ＬＵ最大数分の領域割り当てを管理するためのテーブルを記憶することができる容量以上のメモリが必要になる。本実施形態によれば、そのような別法より少ない容量のメモリで、ＬＵの管理（例えば、ホストテーブル１２１やＬＵテーブル１２２の記憶）が可能である。
【００８５】
ところで、この第一の実施形態については、例えば以下のような種々の変形例が考えられる。
【００８６】
（第一の変形例）仮想ＬＵは、Thin Provisioningの技術により提供される仮想ＬＵであっても良い。割り当て単位としては、実ＬＵ単位であっても良いし、実ＬＵを構成する複数の記憶領域（実領域）の単位であっても良い。実ＬＵ単位とした場合には、一つの仮想ＬＵに、複数の実ＬＵを割り当てることが可能となる。この場合には、例えば、ホストテーブル１２１には、仮想ＬＵの記憶領域（アドレス範囲）が記録されるカラムが用意されて良い。こうすることで、ホストテーブル１２１には、どのホストにどの仮想ＬＵのどの記憶領域にどの実ＬＵが割り当てられているかを記録することができる。Thin Provisioningの技術としては、例えば、特開２００３−１５９１５号公報（ＵＳ特許番号６７２５３２８号、ＵＳ特許番号６８３６８１９号、ＵＳ出願番号１０／９９１４２１号）に開示の技術を援用することができる。
【００８７】
（第二の変形例）仮想ＬＵは、いわゆる外部接続技術に従う仮想ＬＵであってもよい。具体的には、例えば、実ＬＵは、ストレージシステム１に接続された外部のストレージシステムに存在しても良い。この場合、仮想ＬＵに対するライトコマンドに従うライト対象データは、該仮想ＬＵに対応している外部の実ＬＵに書込まれる。外部接続技術としては、例えば、特開２００５−１０７６４５号公報（ＵＳ出願番号１０／７６９８０５号、ＵＳ出願番号１１／４７１５５６号）に開示の技術を援用することができる。なお、変形例では、ストレージシステム１には、ディスク装置３は無くても良い。また、制御装置１０７は、ファイバチャネルスイッチなどのスイッチ装置であっても良い。
【００８８】
（第三の変形例）仮想ＬＵはホストに対して用意されることに代えて、業務、アプリケーションなど他の上位部に用意されても良い。上位部を業務とした場合、例えば、一つの業務は、一以上のアプリケーションプログラムにより実行することができ、そのため、業務ＩＤと一以上のアプリケーションプログラムにそれぞれ対応した一以上のアプリケーションＩＤとの対応や、どのアプリケーションがどのホストに存在するかを表すアプリケーションＩＤとホストＩＤとの対応がテーブル等に記録されてよい。この場合、制御装置１０７は、或る仮想ＬＵを指定したライトコマンドを受けた場合、該ライトコマンドの送信元アプリケーションが属する業務を特定し、その業務について上記或る仮想ＬＵについて初めてのライトであれば、業務に対して新たに仮想ＬＵを用意しても良い。
【００８９】
（第四の変形例）ストレージシステム１は、予め搭載されている複数のディスク装置１０３の各々がストレージシステム１の導入先では取り外し不可能（言い換えれば交換不可能）に構成されていても良い。取り外し不可能な構成としては、例えば、複数のディスク装置１０３がカバーで覆われていて、ストレージシステム１の導入先にいる人間が手作業でディスク装置１０３を交換することができないようになっていても良い。ストレージシステム１には、所定個数（例えば２個）の拡張スロット（例えばディスク装置１０３が着脱可能なスロット）が用意されていて、所定個数分、ディスク装置１０３が増やせる構成になっていても良い。
【００９０】
（第五の変形例）上述した計算機システムは、メインフレームに係る計算機システムであっても良い。また、ストレージシステム１は、ＮＡＳ（Network Attached Storage）装置であっても良く、この場合、制御装置１０７は、ＮＡＳヘッドであってもよい。
【００９１】
（第六の変形例）仮想ＬＵの用意に関するポリシーを記録した情報であるポリシー情報が不揮発性メモリ１００に記憶されても良い。該ポリシーとしては、例えば、どのような種類の上位部（例えば、ホスト、アプリケーション及び業務のうちのどれであって、ホスト、アプリケーション或いは業務として更にどのような種類であるか）に対してどれだけの数及び／又はどれだけの容量の仮想ＬＵを用意するかを定義したものである。この場合、仮想ＬＵ制御プログラム１１３は、或る仮想ＬＵに対する初回のライトコマンドがどのような上位部であるかと、ポリシー情報とに基づいて、上位部（例えばホスト）に対して用意する仮想ＬＵの数及び／又は容量を制御しても良い（決定しても良い）。
【００９２】
＜第二の実施形態＞。
【００９３】
以下、本発明の第二の実施形態について、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する。
【００９４】
図９は、本発明の第二実施形態に係る計算機システムの構成例を示す。
【００９５】
第二の実施形態は、前述したように、論理リソースがパスである場合の一実施形態である。第二の実施形態では、制御装置１０７´が、ホスト計算機３に対して、必ず、実パスが割り当てられていない仮想パスを一つ以上見せる。ホスト３がその仮想パスを経由したI/Oコマンドを発行する時に、制御装置１０７´が、その仮想パスに実パスを割り当てると共に、実パスが割り当てられていない仮想パスを追加作成する。これにより、例えば、ホスト管理者がI/Oのスループットを増やすためにパスを追加したい場合、ホスト管理者は、ホスト側のパス設定を変えるだけで済み、ストレージシステム１に対する論理リソース情報設定を不要にすることができる。
【００９６】
第二の実施形態では、第一の実施形態におけるホスト登録プログラム１１１、コマンド制御プログラム１１２、仮想ＬＵ制御プログラム１１３、ホストテーブル１２１及びＬＵテーブル１２２に代えて、ホスト登録プログラム１１５、コマンド制御プログラム１１６、仮想パス制御プログラム１１７、ホストテーブル１２３及びＬＵテーブル１２４が、不揮発性メモリ１００に記憶される。
【００９７】
図１０（ａ）は、ホストテーブル１２３の構成例を示す。
【００９８】
ホストテーブル１２３には、ホストＩＤが記録されるカラム１２３１と、仮想パスのＩＤが記録されるカラム１２３２と、実パスのＩＤが記録されるカラム１２３３とがある。このテーブル１２３の各レコード（行）には、ホストＩＤ、仮想パスのＩＤ、及び実パスのＩＤが記録される。このテーブル１２３から、どのホストに対してどの仮想パスが割当てられており、その仮想パスにどの実パスが割当てられているか或いはその仮想パスに実パスが未割当て（“unassigned”）であるかがわかる。
【００９９】
図１０（ｂ）は、パステーブル１２４の構成例を示す。
【０１００】
パステーブル１２４には、実パスのＩＤが記録されるカラム１２４１と、ポートＩＤが記録されるカラム１２４２と、ＬＵＮが記録される１２４３と、パスに関するステータスが記録されるカラム１２４４とがある。このテーブル１２４の各レコード（行）には、実パスのＩＤ、ポートＩＤ、ＬＵＮ及びステータスが記録される。このテーブル１２４から、各実パスについて、どのポートとどのＬＵとの組み合わせで構成されていて、その実パスが割当て済み（“assigned”）であるか未割当て（“unassigned”）であるかがわかる。このテーブル１２４によれば、例えば、ＩＤが“０”の実パス（以下、実パス０）が或る仮想パスに割当てられた場合、該仮想パスを使用するホストからのＩ／Ｏコマンドに従うＩ／Ｏは、該実パス０を構成するＬＵＮ０に対応した実ＬＵに対して発生することになる。本実施形態において、実パスとは、ポートＩＤとＬＵＮとの組み合わせで表されるパスであり、それに対し、仮想パスとは、仮想的なパスであり、ポートＩＤとＬＵＮとの組み合わせが不要なパスである。上述したＬＵＮは、本実施形態では、実ＬＵのＬＵＮとする。すなわち、本実施形態に係る仕組みは、主に、ＬＵに関する論理リソース情報設定をなるべく不要とするための仕組みではなく、パスに関する論理リソース情報設定をなるべく不要にするための仕組みである。勿論、この第二の実施形態を第一の実施形態と組み合わせても良い。この場合であれば、パステーブル１２４に記録されるＬＵＮを、仮想ＬＵＮとすることができる。
【０１０１】
この図１０（ｂ）に示したパステーブル１２４は、ストレージ管理者が実ＬＵを作成すると、制御装置１０７´が、その実ＬＵと全てのポート１０８との間のパスを表すレコードを追加することを意味している。例えば、ポート１０８がP00、P01、P02、P03の４個ある場合、ストレージ管理者によりLU0が作成されると、制御装置１０７´が、P00-LU0、P01-LU0、P02-LU0、P03-LU0の四つの実パスを表すレコードをパステーブル１２４に追加する。また、格別図示しないが、ストレージ管理者により新たにLU1が作成されると、制御装置１０７´が、P00-LU1、P01-LU1、P02-LU1、P03-LU1の四つの新たな実パスを表すレコードをパステーブル１２４に更に追加する。すなわち、実ＬＵが新たに作成される都度に、ポート１０８の数分の実パスが新たに作成されることになる。なお、それに代えて、例えば、ストレージシステム１には、製品出荷時に、複数の実ＬＵが用意されていて、故に、それら複数の実ＬＵにそれぞれ対応する複数の実ＬＵＮが予めあって、その製品出荷時では、更に、［（ポート１０８の数）×（実ＬＵＮの数）］分の実パス、すなわち、全てのポートＩＤの各々と全ての実ＬＵＮの各々とを含んだ各実パスが予め用意されていても良い。
【０１０２】
以下、図１１（ａ）及び図１１（ｂ）を参照して、本実施形態で行われる処理の流れの一例の概要を説明する。なお、図１１（ａ）及び図１１（ｂ）の各々では、仮想パスを点線で示し、仮想パスに割当てられた実パスを実線で示し、仮想パスに割当てられていない実パスの図示を省略している。
【０１０３】
図１１（ａ）に示すように、ホストＨ０１の導入時では、ホストＨ０１には、実ＬＵ０が認識されており、且つ、実パス０が割当てられた仮想パス０と、実パスが割当てられていない仮想パス１とも認識されているとする。ホストＨ０１には、自分が認識しているパスが仮想パスであるか否かであることまでは認識されない。ホストＨ０１の記憶資源には、例えば、パス管理マネージャというコンピュータプログラムが記憶されていて、それが、ホストＨ０１のＣＰＵで実行される。パス管理マネージャは、認識しているパスを管理しており、図１１（ａ）の状態において、図１２（ａ）に例示する管理画面１２００を表示することができる。管理画面１２００には、ホストＨ０１のパス管理マネージャが認識しているパスに関する情報、例えば、LUN“0”と、LUN“0”が構成要素である仮想パス０を構成するポートのID“P00”と、LUN“0”が構成要素である仮想パス１を構成するポートのID“P01”とが表示される。例えば、SCSI（iSCSIを含む）のプロトコルに従ってＩ／Ｏコマンドを発行する場合には、ポートＩＤ（例えば番号）、ＬＵＮ及びＬＢＡ（論理ブロックアドレス）をパラメータとして含んだコマンドを発行することができるが、そうなると、ポートＩＤ及びＬＵＮの組み合わせにより、パスを指定することになる。この実施形態では、一つのLUNに全てのポートIDが関連付けられて実パスが構成されるので、一つのホストにおいて、一つのＬＵＮにつき認識可能なパスの最大数は、制御装置１０７´に備えられているポートの数である。
【０１０４】
図１１（ａ）の状態において、制御装置１０７´が、ＬＵＮ“０”及びポートＩＤ“P01”を含んだコマンドを受信した場合、言い換えれば、仮想パス１経由でコマンドを受信した場合、図１１（ｂ）に示すような処理を実行する。すなわち、制御装置１０７´は、LUN0を含んだ複数の実パスのうちの未割当ての実パス（例えば実パス１）を選択し、選択した実パス１を仮想パス１に割当てる。また、制御装置１０７´は、新たな仮想パス２を用意し、ホストＨ０１にその新たな仮想パス２を割当てる。そして、制御装置１０７´は、セッション切断要求を、コマンドの送信元であるホストＨ０１に送信する。ホストＨ０１は、制御装置１０７´からセッション切断要求を受信し、そのセッション切断要求に応答して、当該セッションを切断した後、再ディスカバリ要求をストレージシステム１に送信し、その後、再ログインを実行する。これにより、ホストＨ０１のパス管理マネージャで、仮想パス２を新たに認識することができる。パス管理マネージャは、例えば、図１２（ｂ）に示すように、管理画面１２１０に、ＬＵＮ０について、ポートＩＤ“P02”を新たに表示することができる。
【０１０５】
再ディスカバリ要求とは、２回目にストレージシステム１に送信したディスカバリ要求であり、再ディスカバリ要求に対して、１回目にストレージシステム１に送信したディスカバリ要求である初回ディスカバリ要求がある。図１１（ｂ）において、ホストＨ０１がＬＵＮ０について認識できているポートはP00及びP01なので、ホストＨ０１は、セッション切断要求に応答して、セッションを切断した後、ＬＵＮ０を含んだディスカバリ要求を、ポートP00あるいはP01（つまり、自分が現在認識しているポートＩＤのうちの少なくとも一つ）を指定して送信する。制御装置１０７´は、ＬＵＮ０を含んだディスカバリ要求を、ポートP00あるいはP01で受信する。制御装置１０７´は、そのディスカバリ要求に応答して、ホストテーブル１２３及びパステーブル１２４を参照すれば、ホストＨ０１に用意された仮想パス０，１にそれぞれ実パス０，１が割当てられており、且つ、仮想パス２に実パスが割当てられていないことが分かる。そこで、制御装置１０７´は、自分が有する他のポート（P00及びP01以外のポート）から任意の一つのポート（例えばP02）を選択し、LUN0を含んだディスカバリ要求に対するディスカバリ応答として、割当て済みの実パス０，１をそれぞれ構成するポートID“P00”及び“P01”と、上記選択したポートのＩＤ“P02”とを含む応答を、ホストH01に返す。その後、ホストH01が、その応答に含まれている全てのポートID“P00”、“P01”及び“P02”に対して、ログイン要求を送信することにより、各ポートP00、P01及びP02との間でセッション（例えばiSCSIセッション）を確立することができる。
【０１０６】
以上が、第二の実施形態で行われる処理の流れの一例の概要である。なお、この第二の実施形態において、ホストH01の導入時では、必ずしも、実パスが割当てられていない仮想パス１がホストH01に用意されている必要は無く、例えば、仮想パス０が用意されているのみであっても良いし、実パス１が割当てられた仮想パス０が用意されているのみであっても良い。言い換えれば、この第二の実施形態において、予備リソースとしては、一度も指定されたことの無い仮想パスとすることができ、該仮想パスに実パスが割当てられているか否かはどちらでも良いとすることができる。また、ポートは、ポートIDに代わりにIPアドレスで識別されてもよい。また、LUは、LUNの代わりに、iSCSIネームで識別されても良い。
【０１０７】
図１３は、ホスト登録プログラム１１５により実行されるホスト登録処理の流れの一例を示す。
【０１０８】
この第二の実施形態では、ホスト登録処理よりも前に、ストレージ管理者が、管理端末２を操作して、ストレージシステム１にLUを作成しておくことができる。それに代えて、ストレージシステム１の出荷時に既に複数のLUが用意されていても良い。また、この第二の実施形態では、ストレージ管理者が、管理端末２を操作して、ホストIDとLUNとを指定したホスト登録コマンドを送信することができる。ホスト登録処理は、そのコマンドに応答して開始されて良い。或いは、例えば、第一実施形態との組み合わせとするならば、ホスト登録処理の開始の契機は、第一実施形態と同様であっても良い。図５のステップ５００１と同様の方法で決定されても良い。
【０１０９】
ステップ１３０１で、ホスト登録プログラム１１５は、ホストＩＤを決定する。決定されるホストＩＤとしては、管理端末２から受信したホスト登録コマンドに指定されているホストIDとすることができる。或いは、図５のステップ５００１と同様の方法で決定されても良い。
【０１１０】
ステップ１３０２で、ホスト登録プログラム１１５は、パステーブル１２４から、一以上の未割当ての実パスを検索し、検索した一以上の未割当ての実パスから未割当ての実パス（例えば実パス０）を選択し、該選択した実パスに対応したステータスを“assigned”に変更する。
【０１１１】
ステップ１３０３で、ホスト登録プログラム１１５は、ホストテーブル１２３に、ホストＩＤ“Ｈ０１”と、任意の仮想パスID（例えば仮想パスID“０”）と、ステップ１３０２で選択された実パスに対応した実パスID（例えば実パスID“０”）とを記録したレコードを追加する。
【０１１２】
ステップ１３０４で、ホスト登録プログラム１１５は、ホストテーブル１２１に、ホストＩＤ“Ｈ０１”と、任意の仮想パスID（例えば仮想パスID“１”）と、実パスIDとして“unassigned”とを記録したレコードを追加する。すなわち、ホスト登録プログラム１１１は、ホストＨ０１に対して、実パスが割当てられていない仮想パスを用意する。
【０１１３】
以上が、ホスト登録プログラム１１５により行われるホスト登録処理の一例である。なお、例えば、ホストＨ０１の初期状態が、例えば、実パスが割当てられていない仮想パス０のみでよければ、ステップ１３０２及び１３０３は不要であり、ステップ１３０４で、実パスが割当てられていない仮想パス０を用意すれば良い。また、例えば、ステップ１３０４は、必ずしもホスト登録処理において行わなくても良い（この場合は、例えば、ステップ１３０３で用意した仮想パスが初めて使用された（その仮想パスを経由して初めてコマンドを受信した）ことを契機に、別のコンピュータプログラムによって、ステップ１３０４に相当する処理が実行されても良い）。また、ステップ１３０２では、ホスト登録プログラム１１５は、未割り当ての実パスのうち、ポート１０８の負荷（例えば、過去１日のトラフィック量、及び／又は、そのポート１０８を含んだ実パスのうち割当て済みの実パスの数等）に基づいて、最も負荷が低いと推定される実パスを選択しても良い。
【０１１４】
図１４は、コマンド制御プログラム１１６により行われるコマンド制御処理の流れの一例を示す。
【０１１５】
ステップ１４０１で、コマンド制御プログラム１１６は、ホストによってコマンドの送信に使用された、該ホストに対して用意された仮想パスが、該ホストによって初めて使用された仮想パス（以下、初回使用仮想パス）であるか否かと、受信したコマンドがＩ／Ｏコマンド（つまりライトコマンド又はリードコマンド）であるか否かを判断する。初回使用パスでありＩ／Ｏコマンドであると判断すれば（ステップ１４０１でＹｅｓ）、コマンド制御プログラム１１６は、ステップ１４０２で、仮想パス制御プログラム１１７を呼び出して実パス割り当て処理を実行させる。一方、初回使用パスではない、或いは、Ｉ／Ｏコマンドではないと判断すれば（ステップ１４０１でＮｏ）、コマンド制御プログラム１１６は、ステップ１４０３で、受信したコマンドの処理（通常のコマンド処理）を実行する。
【０１１６】
図１５は、仮想パス制御プログラム１１７により実行される実パス割り当て処理の流れの一例を示す。
【０１１７】
ステップ１５０１で、仮想パス制御プログラム１１７は、パステーブル１２４から、未割当ての実パスを選択し（つまり、“unassigned”となっている実パスＩＤを選択し）、選択した実パスのステータスを“assigned”に変更する。
【０１１８】
ステップ１５０２で、仮想パス制御プログラム１１７は、ホストテーブル１２３の、実パスが未割当ての仮想パスを表すレコードを、実パスが仮想ＬＵに割当て済みであることを表すレコードに変更する。具体的には、例えば、仮想パス制御プログラム１１７は、ホストテーブル１２２の、実パスＩＤが“unassigned”になっているレコード（Ｉ／Ｏコマンドの送信元ホストのホストＩＤが記録されているレコード）において、“unassigned”を、ステップ１５０１でステータスが“assigned”になった実パスＩＤに変更する。
【０１１９】
ステップ１５０３で、仮想パス制御プログラム１１７は、ホストテーブル１２３に、実パスが未割当ての仮想パスを表すレコード（Ｉ／Ｏコマンドの送信元ホストのホストＩＤが記録されているレコード）を追加する。
【０１２０】
ステップ１５０４で、仮想パス制御プログラム１１７は、セッション制御プログラム１１４を呼び出す（つまり、セッション切断処理を実行させる）。
【０１２１】
以上が、仮想パス制御プログラム１１７により実行される実ＬＵ割り当て処理についての説明である。なお、例えば、ステップ１５０１では、仮想パス制御プログラム１１７は、未割り当ての実パスのうち、ポート１０８の負荷（例えば、過去１日のトラフィック量、及び／又は、そのポート１０８を含んだ実パスのうち割当て済みの実パスの数等）に基づいて、最も負荷が低いと推定される実パスを選択しても良い。例えば、未割当ての実パスとして、第一の実パスと第二の実パスとがあり、第一の実パスを構成するポートＩＤに対応したポートに比して、第二の実パスを構成するポートＩＤに対応したポートの方が、負荷が低ければ、第二の実パスが選択されても良い。
【０１２２】
以上が、第二の実施形態についての説明である。第二の実施形態では、第一の実施形態で説明した幾つかの変形例のうちの少なくとも一つを適用することができる。また、ホスト導入時についていえば、例えば、図１６を参照して説明した方法を採用する場合、ホストＨ０１が、ストレージシステム１にLUN0を含んだディスカバリ要求を送信した場合に、ストレージシステム１の制御装置１０７´が、仮想パス０をホストＨ０１に用意し、ポートＩＤ（例えば、ディスカバリ要求を受信したポートのポートＩＤ、或いは、LUN0を構成要素とする未割当ての一以上の実パスの中から任意に選択した実パスを構成するポートID）をホストＨ０１に返しても良い。また、例えば、図１７を参照して説明した方法を採用する場合、ストレージシステム１の制御装置１０７´が、管理端末２或いはホストH01等から、LUN0パス作成指示を受信し、そのパス作成指示に応答して、仮想パス０をホストＨ０１に用意し、ポートＩＤ（LUN0を構成要素とする未割当ての一以上の実パスの中から任意に選択した実パスを構成するポートID）をホストＨ０１に返しても良い。また、例えば、図１８を参照して説明した方法を採用する場合、ストレージシステム１の制御装置１０７´が、名前管理サーバから変更通知を受信したことに応答して、仮想パス０をホストＨ０１に用意し、ポートＩＤ（LUN0を構成要素とする未割当ての一以上の実パスの中から任意に選択した実パスを構成するポートID）をホストＨ０１に返しても良い。
【０１２３】
この第二の実施形態によれば、ホストに、常に、一以上の仮想パスが予備的に用意される。具体的には、例えば、実パスが割当てられていない仮想パスが初めて使用された契機、言い換えれば、実パスの割当てられていないポート１０８で初めてＩ／Ｏコマンドを受信した契機で、自動的に仮想パスに実パスが割当てられて、該Ｉ／Ｏコマンドが処理され、且つ、新たに仮想パスがホストに用意され、該ホストに、ディスカバリ要求及び再ログインを実行させることで、該新たに用意された仮想パスを使用可能にさせる。このため、ホストに対して新たにパスを用意するための論理リソース情報設定を不要にすることができる。
【０１２４】
以上、本発明の好適な幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、図４（ａ）、図４（ｂ）、図１２（ａ）、図１２（ｂ）に例示した管理画面は、ホストに備えられている表示装置に表示されても良いし、各ホストを管理するためのホスト管理端末の表示画面に表示されても良い。また、管理画面を表示する主体は、ホストに備えられているボリューム管理マネージャ或いはパス管理マネージャに代えて、ホスト管理端末で実行されるコンピュータプログラムとすることもできる。
【図面の簡単な説明】
【０１２５】
【図１】図１は、本発明の第一実施形態に係る計算機システムの構成例を示す。
【図２】図２（ａ）は、本発明の第一実施形態におけるホストテーブルの構成例であり、且つ、図３（ｂ）においてのホストテーブルを示す。図２（ｂ）は、本発明の第一実施形態におけるＬＵテーブルの構成例であり、且つ、図３（ｂ）においてのＬＵテーブルを示す。
【図３】図３（ａ）は、本発明の第一の実施形態におけるホスト導入時の状態の一例を示す。図３（ｂ）は、図３（ａ）において仮想ＬＵ０に初めてライトが生じた場合に実行される処理の一例の説明図である。図３（ｃ）は、図３（ｂ）において、仮想ＬＵ１に初めてライトが生じた場合に実行される処理の説明図である。
【図４】図４（ａ）は、図３（ｂ）において再ログインが行われる前の、ホストの管理画面の一例である。図４（ｂ）は、図３（ｂ）において再ログインが行われた後の、ホストの管理画面の一例である。
【図５】図５は、本発明の第一実施形態におけるホスト登録プログラムによって実行されるホスト登録処理の流れの一例を示す。
【図６】図６は、本発明の第一実施形態におけるコマンド制御プログラムによって実行されるコマンド制御処理の流れの一例の一部を示す。
【図７】図７は、本発明の第一実施形態におけるコマンド制御プログラムによって実行されるコマンド制御処理の流れの一例の残りの一部を示す。
【図８】図８（ａ）は、本発明の第一実施形態における仮想ＬＵ制御プログラムにより実行される実ＬＵ割り当て処理の流れの一例を示す。図８（ｂ）は、本発明の第一実施形態におけるセッション制御プログラムにより実行されるセッション切断処理の流れの一例を示す。
【図９】図９は、本発明の第二実施形態に係る計算機システムの構成例を示す。
【図１０】図１０（ａ）は、本発明の第二実施形態におけるホストテーブルの構成例を示す。図１０（ｂ）は、本発明の第二実施形態におけるパステーブルの構成例を示す。
【図１１】図１１（ａ）は、本発明の第二の実施形態におけるホスト導入時の状態の一例を示す。図１１（ｂ）は、図１１（ａ）において仮想パス１が初めて使用された場合に実行される処理の一例の説明図である。
【図１２】図１２（ａ）は、図１１（ｂ）において再ログインが行われる前の、ホストの管理画面の一例である。図１２（ｂ）は、図１１（ｂ）において再ログインが行われた後の、ホストの管理画面の一例である。
【図１３】図１３は、本発明の第二実施形態におけるホスト登録プログラムにより実行されるホスト登録処理の流れの一例を示す。
【図１４】図１４は、本発明の第二実施形態におけるコマンド制御プログラムにより行われるコマンド制御処理の流れの一例を示す。
【図１５】図１５は、本発明の第二実施形態における仮想パス制御プログラムにより実行される実パス割り当て処理の流れの一例を示す。
【図１６】図１６は、本発明の第一実施形態において第一の初回準備方法が実行された場合に行われる処理の流れの一例である。
【図１７】図１７は、本発明の第一実施形態において第二の初回準備方法が実行された場合に行われる処理の流れの一例である。
【図１８】図１８は、本発明の第一実施形態において第三の初回準備方法が実行された場合に行われる処理の流れの一例である。
【図１９】図１９（ａ）は、本発明の第一の実施形態においてホストに備えられる複数のコンピュータプログラムの別の一例を示す。図１９（ｂ）は、本発明の第一の実施形態においてホスト管理端末がありホストに接続されていることを示す図である。
【図２０】図２０（ａ）は、図３（ａ）においてのホストテーブルを示す。図２０（ｂ）は、図３（ａ）においてのＬＵテーブルを示す。
【図２１】図２１（ａ）は、図３（ｃ）においてのホストテーブルを示す。図２１（ｂ）は、図３（ｃ）においてのＬＵテーブルを示す。
【図２２】図２２は、本発明の第一の実施形態においてホストに備えられる複数のコンピュータプログラムの一例を示す。
【符号の説明】
【０１２６】
１…ストレージシステム、３…ホスト計算機、１０７…制御装置
【図１】
2008186137.tif 000003
【図２】
2008186137.tif 000004
【図３】
2008186137.tif 000005
【図４】
2008186137.tif 000006
【図５】
2008186137.tif 000007
【図６】
2008186137.tif 000008
【図７】
2008186137.tif 000009
【図８】
2008186137.tif 000010
【図９】
2008186137.tif 000011
【図１０】
2008186137.tif 000012
【図１１】
2008186137.tif 000013
【図１２】
2008186137.tif 000014
【図１３】
2008186137.tif 000015
【図１４】
2008186137.tif 000016
【図１５】
2008186137.tif 000017
【図１６】
2008186137.tif 000018
【図１７】
2008186137.tif 000019
【図１８】
2008186137.tif 000020
【図１９】
2008186137.tif 000021
【図２０】
2008186137.tif 000022
【図２１】
2008186137.tif 000023
【図２２】
2008186137.tif 000024