(57)【要約】【課題】管理者の作業負担を軽減したＬＵ設定技術を提供する。【解決手段】ストレージシステムが、管理者に最低限の情報のみを入力してもらい、その情報を含んだＬＵ設定コマンドを受け付けたら、そのＬＵ設定コマンドに応答して、ＬＵと物理記憶装置に関する構成管理情報を用いて内部的に処理を完了し、処理結果を返す。構成管理情報は、ＬＵと物理記憶装置に関する情報であって、複数の物理記憶装置の記憶空間における空き範囲及び空き容量を表す情報と、その記憶空間に基づくＬＵに関する情報とを含んだ情報である。空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲である。空き容量とは、空き空間の容量である。【選択図】図５
2010086393.tif 000002
【特許請求の範囲】
【請求項１】
ＬＵ（Logical Unit）に対するＩ／Ｏ（Input/Output）のためのＩ／Ｏコマンドを計算機から受け付けるストレージシステムであって、
ＬＵの基になる複数の物理記憶装置と、
コントローラと
を備え、
前記コントローラが、ＬＵと物理記憶装置に関する構成管理情報を記憶する記憶資源を有し、
前記構成管理情報が、前記複数の物理記憶装置の記憶空間における空き範囲及び空き容量を表す情報と、前記記憶空間に基づくＬＵ（Logical Unit）に関する情報とを含み、
前記空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲であり、
前記空き容量とは、前記空き空間の容量であり、
前記コントローラが、
（１−１）管理者がコンソールを用いて入力した情報を受け付けたり前記コンソールに情報を表示したりする管理インタフェース部から、前記管理者から入力された容量情報を含んだＬＵ設定コマンドを受け付け、
（１−２）前記ＬＵ設定コマンドに応答して、前記ＬＵ設定コマンドに従うＬＵ設定処理を行い、そのＬＵ設定処理では、前記容量情報を基に前記構成管理情報を更新し、
（１−３）前記ＬＵ設定処理の結果に関する結果情報を前記管理インタフェース部に送信する、
ストレージシステム。
【請求項２】
前記複数の物理記憶装置によって複数のＲＡＩＤグループが構成されており、
前記空き範囲及び空き容量を表す情報は、前記複数のＲＡＩＤグループの記憶空間における空き範囲及び空き容量を表す情報であり、
前記構成管理情報は、ＬＵに関する情報として、ＬＵ毎に、どのＲＡＩＤグループのどこの空間部分を占めているのかを表す情報と、前記ホスト計算機に提供されるＬＵＮ（Logical Unit Number）である外部ＬＵＮと、前記ホスト計算機に非提供のＬＵＮである内部ＬＵＮと、開始アドレスを表す情報とを含み、
前記コントローラが、
（２−１）前記（１−１）で、前記ＬＵ設定コマンドとして、ＬＵ拡張コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵのＬＵＮである第一種のＬＵＮと、拡張後の容量に関する拡張容量情報とを含んでおり、
（２−２）前記（１−２）で、前記ＬＵ拡張コマンドに応答して、前記構成管理情報を参照し、下記（２−２−１）乃至（２−２−３）の処理を、前記第一種のＬＵと前記第一種のＬＵに関連付けられたＬＵである第二種のＬＵとの集合体である統合ＬＵの容量が、前記拡張容量情報から特定される拡張後の容量になるように実行し、
（２−２−１）空き空間を有するいずれかのＲＡＩＤグループの記憶空間内の空き空間から、前記拡張容量情報から特定される容量以下の空き空間部分を特定する；
（２−２−２）特定された空き空間部分を第二種のＬＵとするＬＵ定義処理を実行し、そのＬＵ定義処理では、その第二種のＬＵに関する情報として、内部ＬＵＮと、その第二種のＬＵが占める空き空間部分のアドレス範囲を表す情報とを前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、その第二種のＬＵが占める空間部分の容量が前記空き容量から減じられた容量を表す情報に更新する；
（２−２−３）その第二種のＬＵを第一種のＬＵに関連付けるＬＵ統合処理を実行し、そのＬＵ統合処理では、その第二種のＬＵの開始アドレスを、第一種のＬＵ又は直前の第二種のＬＵの末端アドレスの次のアドレスとし、且つ、前記定義された第二種のＬＵの外部ＬＵＮとして、前記第一種のＬＵの外部ＬＵＮと同一の外部ＬＵＮを関連付ける、
（２−３）前記（１−３）で、前記ＬＵ拡張コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信する、
請求項１記載のストレージシステム。
【請求項３】
前記コントローラが、
（３−１）前記（１−１）で、前記ＬＵ設定コマンドとして、ＬＵ縮小コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵＮと、縮小後の容量に関する縮小容量情報とを含んでおり、
（３−２）前記（１−２）で、前記ＬＵ縮小コマンドに応答して、前記構成管理情報を参照し、下記（３−２−１）及び（３−２−２）の処理を、前記統合ＬＵの容量が、前記縮小容量情報から特定される縮小後の容量になるように実行し、
（３−２−１）前記第一種のＬＵＮから特定される第一種のＬＵを含んだ統合ＬＵである対象統合ＬＵから、前記縮小容量情報から特定される容量以下の空間部分を特定する；
（３−２−２）特定された空間部分を前記統合ＬＵから取り除く解除処理を実行し、その解除処理では、取り除く空間部分のアドレス範囲を表す情報を、その取り除く空間部分を有するＲＧの空き範囲を表す情報として前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、取り外す空間部分の容量が前記空き容量に加算された容量を表す情報に更新する、
（３−３）前記（１−３）で、前記ＬＵ縮小コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信し、
前記（３−３）後では、前記（３−１）の前と比べて、前記対象統合ＬＵに関して、（Ａ）及び／（Ｂ）の結果が生じており、
（Ａ）前記対象統合ＬＵを構成する一つのＬＵの容量が少なくなっている、
（Ｂ）前記対象統合ＬＵを構成する第二種のＬＵの数が減っている、
前記（Ｂ）としては、前記対象統合ＬＵから全ての第二種のＬＵが取り外されており故に前記対象統合ＬＵが解除されて第一種のＬＵのみになっていることがある、
請求項２記載のストレージシステム。
【請求項４】
前記（３−２）では、前記対象統合ＬＵの後端を含んだ部分が優先的に前記取り除く空間部分とされる、
請求項３記載のストレージシステム。
【請求項５】
前記（２−２−１）では、容量の大きい空き空間部分が優先的に特定される、
請求項４記載のストレージシステム。
【請求項６】
前記コントローラが、前記（２−１）の前に、全ての空き空間部分のトータル容量である空きトータル容量を表す情報を前記管理インタフェース部に送信し、
前記拡張容量情報から特定される追加分の容量は、前記空きトータル容量以下の容量である、
請求項５記載のストレージシステム。
【請求項７】
前記コントローラが、キャッシュメモリ領域を有しており、前記（２−２）の完了前から、前記第一種のＬＵの外部ＬＵＮを指定したライトコマンドを前記計算機から受け付け、前記ライトコマンドで指定されているアドレスが、第二種のＬＵ内の記憶領域を表すアドレスであれば、ライト対象のデータを、前記キャッシュメモリ領域に一時保持しておき、前記（２−２）の完了後に、前記（２−２）で作成された統合ＬＵ内の第二種のＬＵに書き込む、
請求項６記載のストレージシステム。
【請求項８】
前記第二種のＬＵ内のライト先の記憶領域が、前記統合ＬＵの完成後に初めてデータが書き込まれる記憶領域である場合、前記コントローラがは、そのライト先の記憶領域をフォーマットした後に、ライト対象のデータをかきこむ、
請求項７記載のストレージシステム。
【請求項９】
前記コントローラが、
（９−１）前記（１−１）で、前記ＬＵ設定コマンドとして、ＬＵ拡張コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵのＬＵＮである第一種のＬＵＮと、拡張後の容量に関する拡張容量情報とを含んでおり、
（９−２）前記（１−２）で、前記ＬＵ拡張コマンドに応答して、前記構成管理情報を参照し、前記第一種のＬＵと前記第一種のＬＵに関連付けられた一以上のＬＵである一以上の第二種のＬＵとの集合体である統合ＬＵを定義し、
前記第二種のＬＵは、前記構成管理情報を基に特定された空き空間部分を基に定義されたＬＵであり、前記第一種のＬＵの内部ＬＵＮと非重複の内部ＬＵＮが割り当てられており、
前記一以上の第二種のＬＵの総容量は、前記拡張容量情報から特定される容量であり、
前記統合ＬＵのＬＵＮは、前記第一種のＬＵの外部ＬＵＮと同一である、
請求項１記載のストレージシステム。
【請求項１０】
前記コントローラが、
（１０−１）前記（１−１）で、前記ＬＵ設定コマンドとして、ＬＵ縮小コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵのＬＵＮである第一種のＬＵＮと、縮小後の容量に関する縮小容量情報とを含んでおり、
（１０−２）前記（１−２）で、前記ＬＵ縮小コマンドに応答して、前記構成管理情報を参照し、前記第一種のＬＵと第二種のＬＵとの集合体である統合ＬＵの容量を、前記縮小容量情報から特定される縮小後の容量に減らし、
容量縮小後の統合ＬＵは、容量縮小前の統合ＬＵと比べて、（Ａ）及び／（Ｂ）の結果が生じており、
（Ａ）統合ＬＵを構成する一つのＬＵの容量が少なくなっている、
（Ｂ）統合ＬＵを構成する第二種のＬＵの数が減っている、
前記（Ｂ）としては、前記統合ＬＵから全ての第二種のＬＵが取り外されており故に前記統合ＬＵが解除されて第一種のＬＵのみになっていることがある、
請求項１又は９記載のストレージシステム。
【請求項１１】
前記（１０−２）では、前記統合ＬＵの後端を含んだ部分が優先的に前記取り除く空間部分とされる、
請求項１０記載のストレージシステム。
【請求項１２】
前記コントローラが、前記縮小容量情報から特定される容量を有する、前記統合ＬＵの後端を含んだ部分に、前記計算機から書き込まれたデータがあるか否かを判断する、
請求項１１記載のストレージシステム。
【請求項１３】
前記コントローラが、前記統合ＬＵについて縮小可能な容量を計算し、算出された容量を表す情報を前記管理インタフェース部に送信し、
前記ＬＵ縮小コマンドに含まれる縮小容量情報から特定される容量は、前記算出された縮小可能な容量以下であり、
前記縮小可能な容量とは、前記統合ＬＵの後端を含んだ連続した部分であって、前記計算機から書き込まれたデータが存在しない部分に関する容量である、
請求項１１又は１２記載のストレージシステム。
【請求項１４】
複数の物理記憶装置を備えたストレージシステムにＬＵに関する設定を行う方法であって、
管理者がコンソールを用いて入力した情報を受け付けたり前記コンソールに情報を表示したりする管理インタフェース部から、前記管理者から入力された容量情報を含んだＬＵ設定コマンドを受け付け、
前記ＬＵ設定コマンドに応答して、前記ＬＵ設定コマンドに従うＬＵ設定処理を行い、そのＬＵ設定処理では、前記容量情報を基に構成管理情報を更新し、
前記ＬＵ設定処理の結果に関する結果情報を前記管理インタフェース部に送信し、
前記構成管理情報は、ＬＵと物理記憶装置に関する情報であって、前記複数の物理記憶装置の記憶空間における空き範囲及び空き容量を表す情報と、前記記憶空間に基づくＬＵに関する情報とを含んだ情報であり、
前記空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲であり、
前記空き容量とは、前記空き空間の容量である、
ＬＵ設定方法。
【請求項１５】
ＬＵ（Logical Unit）に対するＩ／Ｏ（Input/Output）のためのＩ／Ｏコマンドを計算機から受け付けるストレージシステムであって、
ＬＵの基になる複数の物理記憶装置と、
コントローラと
を備え、
前記複数の物理記憶装置によって複数のＲＡＩＤグループが構成されており、
前記コントローラが、ＬＵと物理記憶装置に関する構成管理情報を記憶する記憶資源を有し、
前記構成管理情報が、前記複数のＲＡＩＤグループの記憶空間における空き範囲及び空き容量を表す情報と、ＬＵ毎に、どのＲＡＩＤグループのどこの空間部分を占めているのかを表す情報と、前記ホスト計算機に提供されるＬＵＮ（Logical Unit Number）である外部ＬＵＮと、前記ホスト計算機に非提供のＬＵＮである内部ＬＵＮと、開始アドレスを表す情報とを含み、
前記空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲であり、
前記空き容量とは、前記空き空間の容量であり、
前記コントローラが、
（１５−Ａ）管理者がコンソールを用いて入力した情報を受け付けたり前記コンソールに情報を表示したりする管理インタフェース部から、ＬＵ拡張コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵのＬＵＮである第一種のＬＵＮと、拡張後の容量に関する拡張容量情報とを含んでおり、
（１５−Ｂ）前記ＬＵ拡張コマンドに応答して、前記構成管理情報を参照し、下記（１５−Ｂ−１）乃至（１５−Ｂ−３）の処理を、前記第一種のＬＵと前記第一種のＬＵに関連付けられたＬＵである第二種のＬＵとの集合体である統合ＬＵの容量が、前記拡張容量情報から特定される拡張後の容量になるように実行し、
（１５−Ｂ−１）空き空間を有するいずれかのＲＡＩＤグループの記憶空間内の空き空間から、前記拡張容量情報から特定される容量以下の空き空間部分を特定する；
（１５−Ｂ−２）特定された空き空間部分を第二種のＬＵとするＬＵ定義処理を実行し、そのＬＵ定義処理では、その第二種のＬＵに関する情報として、内部ＬＵＮと、その第二種のＬＵが占める空き空間部分のアドレス範囲を表す情報とを前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、その第二種のＬＵが占める空間部分の容量が前記空き容量から減じられた容量を表す情報に更新する；
（１５−Ｂ−３）その第二種のＬＵを第一種のＬＵに関連付けるＬＵ統合処理を実行し、そのＬＵ統合処理では、その第二種のＬＵの開始アドレスを、第一種のＬＵ又は直前の第二種のＬＵの末端アドレスの次のアドレスとし、且つ、前記定義された第二種のＬＵの外部ＬＵＮとして、前記第一種のＬＵの外部ＬＵＮと同一の外部ＬＵＮを関連付ける、
（１５−Ｃ）前記ＬＵ拡張コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信し、
（１５−ａ）前記管理インタフェース部からＬＵ縮小コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵＮと、縮小後の容量に関する縮小容量情報とを含んでおり、
（１５−ｂ）前記ＬＵ縮小コマンドに応答して、前記構成管理情報を参照し、下記（１５−ｂ−１）及び（１５−ｂ−２）の処理を、前記統合ＬＵの容量が、前記縮小容量情報から特定される縮小後の容量になるように実行し、
（１５−ｂ−１）前記第一種のＬＵＮから特定される第一種のＬＵを含んだ統合ＬＵである対象統合ＬＵから、前記縮小容量情報から特定される容量以下の空間部分を特定する；
（１５−ｂ−２）特定された空間部分を前記統合ＬＵから取り除く解除処理を実行し、その解除処理では、取り除く空間部分のアドレス範囲を表す情報を、その取り除く空間部分を有するＲＧの空き範囲を表す情報として前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、取り外す空間部分の容量が前記空き容量に加算された容量を表す情報に更新する、
（１５−ｃ）前記ＬＵ縮小コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信し、
前記（１５−ｃ）後では、前記（１５−ａ）の前と比べて、前記対象統合ＬＵに関して、（Ａ）及び／（Ｂ）の結果が生じており、
（Ａ）前記対象統合ＬＵを構成する一つのＬＵの容量が少なくなっている、
（Ｂ）前記対象統合ＬＵを構成する第二種のＬＵの数が減っている、
前記（Ｂ）としては、前記対象統合ＬＵから全ての第二種のＬＵが取り外されており故に前記対象統合ＬＵが解除されて第一種のＬＵのみになっていることがある、
ストレージシステム。
【請求項１６】
複数の物理記憶装置を備えたストレージシステムにＬＵに関する設定を行う方法であって、
（１６−Ａ）管理者がコンソールを用いて入力した情報を受け付けたり前記コンソールに情報を表示したりする管理インタフェース部から、ＬＵ拡張コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵのＬＵＮである第一種のＬＵＮと、拡張後の容量に関する拡張容量情報とを含んでおり、
（１６−Ｂ）前記ＬＵ拡張コマンドに応答して、前記構成管理情報を参照し、下記（１６−Ｂ−１）乃至（１６−Ｂ−３）の処理を、前記第一種のＬＵと前記第一種のＬＵに関連付けられたＬＵである第二種のＬＵとの集合体である統合ＬＵの容量が、前記拡張容量情報から特定される拡張後の容量になるように実行し、
（１６−Ｂ−１）空き空間を有するいずれかのＲＡＩＤグループの記憶空間内の空き空間から、前記拡張容量情報から特定される容量以下の空き空間部分を特定する；
（１６−Ｂ−２）特定された空き空間部分を第二種のＬＵとするＬＵ定義処理を実行し、そのＬＵ定義処理では、その第二種のＬＵに関する情報として、内部ＬＵＮと、その第二種のＬＵが占める空き空間部分のアドレス範囲を表す情報とを前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、その第二種のＬＵが占める空間部分の容量が前記空き容量から減じられた容量を表す情報に更新する；
（１６−Ｂ−３）その第二種のＬＵを第一種のＬＵに関連付けるＬＵ統合処理を実行し、そのＬＵ統合処理では、その第二種のＬＵの開始アドレスを、第一種のＬＵ又は直前の第二種のＬＵの末端アドレスの次のアドレスとし、且つ、前記定義された第二種のＬＵの外部ＬＵＮとして、前記第一種のＬＵの外部ＬＵＮと同一の外部ＬＵＮを関連付ける、
（１６−Ｃ）前記ＬＵ拡張コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信し、
（１６−ａ）前記管理インタフェース部からＬＵ縮小コマンドを受け付け、前記ＬＵ拡張コマンドは、第一種のＬＵＮと、縮小後の容量に関する縮小容量情報とを含んでおり、
（１６−ｂ）前記ＬＵ縮小コマンドに応答して、前記構成管理情報を参照し、下記（１６−ｂ−１）及び（１６−ｂ−２）の処理を、前記統合ＬＵの容量が、前記縮小容量情報から特定される縮小後の容量になるように実行し、
（１６−ｂ−１）前記第一種のＬＵＮから特定される第一種のＬＵを含んだ統合ＬＵである対象統合ＬＵから、前記縮小容量情報から特定される容量以下の空間部分を特定する；
（１６−ｂ−２）特定された空間部分を前記統合ＬＵから取り除く解除処理を実行し、その解除処理では、取り除く空間部分のアドレス範囲を表す情報を、その取り除く空間部分を有するＲＧの空き範囲を表す情報として前記構成管理情報に追加し、且つ、前記空き容量を表す情報を、取り外す空間部分の容量が前記空き容量に加算された容量を表す情報に更新する、
（１６−ｃ）前記ＬＵ縮小コマンドに応答して実行された処理の結果に関する結果情報を、前記管理インタフェース部に送信し、
前記（１６−ｃ）後では、前記（１６−ａ）の前と比べて、前記対象統合ＬＵに関して、（Ａ）及び／（Ｂ）の結果が生じており、
（Ａ）前記対象統合ＬＵを構成する一つのＬＵの容量が少なくなっている、
（Ｂ）前記対象統合ＬＵを構成する第二種のＬＵの数が減っている、
前記（Ｂ）としては、前記対象統合ＬＵから全ての第二種のＬＵが取り外されており故に前記対象統合ＬＵが解除されて第一種のＬＵのみになっていることがあり、
前記複数の物理記憶装置によって複数のＲＡＩＤグループが構成されており、
前記構成管理情報が、ＬＵと物理記憶装置に関する情報であって、前記複数のＲＡＩＤグループの記憶空間における空き範囲及び空き容量を表す情報と、ＬＵ毎に、どのＲＡＩＤグループのどこの空間部分を占めているのかを表す情報と、前記ホスト計算機に提供されるＬＵＮ（Logical Unit Number）である外部ＬＵＮと、前記ホスト計算機に非提供のＬＵＮである内部ＬＵＮと、開始アドレスを表す情報とを含み、
前記空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲であり、
前記空き容量とは、前記空き空間の容量である、
ＬＵ設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理記憶装置を備えたストレージシステムについてのＬＵ（Logical Unit）の設定に関する。
【背景技術】
【０００２】
ＬＵの設定の一例として、ＬＵの容量の拡張がある。ＬＵの容量拡張の方法としては、複数のＬＵを統合する方法がある（例えば特許文献１）。
【０００３】
ＬＵの統合のためには、一般に、管理者が、コンソールを操作して、事前に、統合するＬＵを作成するための処理を行っておき、その後で、拡張したいＬＵのＬＵＮ（Logical Unit Number）と、そのＬＵに統合するＬＵ（作成済みのＬＵ）のＬＵＮとを入力する。Ｕの作成では、例えば、管理者が、コンソールを利用して、ストレージシステムにおける空きの記憶空間部分に関する情報を参照し、その空きの記憶空間部分における所望の空間部分を指定する。これにより、その指定された空間部分がＬＵとして定義される。
【０００４】
【特許文献１】特開２００２−２３６５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述した作業は、管理者にとって煩わしい作業である。特に、統合するＬＵの数が２以上である等の場合には、上述の作業は一層煩わしい。ＬＵ作成処理において２以上のＬＵに関する情報を入力する必要があるためである。
【０００６】
以上の問題点は、ＬＵの容量拡張以外の他のＬＵ設定についても有り得る問題である。
【０００７】
そこで、本発明の目的は、管理者の作業負担を軽減したＬＵ設定技術を提供することにある。
【課題を解決するための手段】
【０００８】
ストレージシステムが、管理者に最低限の情報のみを入力してもらい、その情報を含んだＬＵ設定コマンドを受け付けたら、そのＬＵ設定コマンドに応答して、ＬＵと物理記憶装置に関する構成管理情報を用いて内部的に処理を完了し、処理結果を返す。構成管理情報は、ＬＵと物理記憶装置に関する情報であって、複数の物理記憶装置の記憶空間における空き範囲及び空き容量を表す情報と、その記憶空間に基づくＬＵに関する情報とを含んだ情報である。空き範囲とは、ＬＵとして使用されていない空間である空き空間が占めるアドレス範囲である。空き容量とは、空き空間の容量である。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の幾つかの一実施形態を説明する。なお、以下の説明では、説明が冗長になることを防ぐために、適宜、コンピュータプログラムを主語にして処理を説明するが、実際には、その処理は、コンピュータプログラムを実行するプロセッサによって行われる。
【実施例１】
【００１０】
図１は、本発明の一実施形態に係る計算機システムの構成例を示す。
【００１１】
ＳＡＮ（Storage Area Network）１０２に、ホスト計算機１０１及びストレージシステム１０５が接続されている。ＬＡＮ（Local Area Network）１０４に、管理計算機１０３及びストレージシステム１０５が接続されている。ＳＡＮ１０２及びＬＡＮ１０４のうちの少なくとも一方として、他種のネットワークが採用されても良い。
【００１２】
ホスト計算機１０１及び管理計算機１０３は、例えば、ＣＰＵ（Central Processing Network）やメモリ等の情報処理資源を備えた計算機であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等である。本実施形態では、ホスト計算機１０１は、１つのみ記載したが、それより多くても差し支えない。
【００１３】
ホスト計算機１０１は、ポートＩＤやＬＵＮを指定したＩ／Ｏ（Input/Output）コマンドをストレージシステム１０５に送信する。
【００１４】
管理計算機１０３は、コンソール１０６（入力装置及び表示装置）や、ストレージシステム１０５に対するＬＵ設定などに利用される管理ソフトウェア１０７を有する。管理ソフトウェア１０７は、管理計算機１０３のＣＰＵで実行されるコンピュータプログラムであり、管理者がコンソール１０６に入力した情報を受け付けたり、コンソール１０６に情報を表示したりする。管理ソフトウェア１０６は、管理計算機１０３に代えてホスト計算機１０１に備えられても良い。
【００１５】
ストレージシステム１０５は、コントローラ１１１とＨＤＤ群１１２とを備える。
【００１６】
ＨＤＤ群１１２は、複数のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループ１５１を有する。ＲＡＩＤグループ（以下、ＲＧ）１５１は、複数のＨＤＤ１６１で構成されており、所定のＲＡＩＤレベルに応じてデータを記憶する。ＲＡＩＤグループ１５１の記憶空間を基に、論理記憶装置としてのＬＵ（Logical Unit）１７１が形成される。ＨＤＤ１６１に代えて、フラッシュメモリなど他種の物理記憶装置が採用されても良い。
【００１７】
コントローラ１１１は、ホストＩ／Ｆ１２１と、メモリ１２５と、転送ＬＳＩ（Large Scale Integration）１２２と、ＣＰＵ１２４と、ディスクＩ／Ｆ１２３と、ＬＡＮ  Ｉ／Ｆ１２６とを有する。
【００１８】
ホストＩ／Ｆ１２５は、ホスト１０１との通信インタフェース装置であり、例えば複数のポートを有する。ホストＩ／Ｆ１２５は、ホスト計算機１０１からＩ／Ｏコマンドを受け付ける。Ｉ／Ｏコマンドがライトコマンドの場合、ライト対象のデータが、ホストＩ／Ｆ１２５を通じて、メモリ１２５のキャッシュ領域１３３に格納される。一方、Ｉ／Ｏコマンドがリードコマンドの場合、リード対象のデータが、キャッシュ領域１３３から読み出され、ホストＩ／Ｆ１２５を通じて、ホスト計算機１０１に送信される。
【００１９】
メモリ１２５は、ホスト計算機１０１とＬＵ１７１との間でやり取りされるデータを一時的に記憶する前述のキャッシュ領域１３３を有する。また、メモリ１２５は、ＣＰＵ１２４に実行されるコンピュータプログラムや、ＣＰＵ１２４に参照されるテーブルを記憶する。テーブルとしては、例えば、ＲＧテーブル１３１と、ＬＵテーブル１３２とがある。また、コンピュータプログラムとしては、例えば、コマンド診断部１４１と、構成制御部１４２とがある。コマンド診断部１４１は、管理ソフトウェア１０７に対するインタフェースとしての機能を有し、管理ソフトウェア１０７からコマンドを受け付けたり、そのコマンドに応答して構成制御部１４２に指示を出したりする。構成制御部１４２は、コマンド診断部１４１からの指示に応答した処理を実行し、処理の結果をコマンド診断部１４１に返す。これらのコンピュータプログラム及びテーブルについては後に詳細に説明する。
【００２０】
転送ＬＳＩ１０３は、コントローラ１１１内での各要素間のやり取りを制御する。
【００２１】
ディスクＩ／Ｆ１２３は、ＨＤＤ１６１に対する通信インタフェース装置である。ホストＩ／Ｆ１２５で受けたＩ／Ｏコマンドがライトコマンドの場合、ライト対象のデータが、キャッシュ領域１３３から読み出され、ディスクＩ／Ｆ１２５を通じて、そのコマンドで指定されているＬＵ（そのＬＵの基になっているＨＤＤ１６１）に書き込まれる。一方、ホストＩ／Ｆ１２５で受けたＩ／Ｏコマンドがリードコマンドの場合、リード対象のデータが、そのコマンドで指定されているＬＵ（そのＬＵの基になっているＨＤＤ１６１）から読み出され、読み出されたデータがキャッシュ領域１３３に書き込まれる。
【００２２】
図２は、ＲＧテーブル１３１の構成例を示す。
【００２３】
ＲＧテーブル１３１には、各ＲＧ１５１に関する情報が記録される。具体的には、例えば、ＲＧテーブル１３１には、ＲＧ１５１毎に、ＲＧ＃、ＨＤＤ＃、アドレス範囲情報、空き範囲情報及び空き容量情報が記録される。以下、一つのＲＧ（図２の説明で「対象ＲＧ」と言う）を例に採り、各種の情報を説明する。
【００２４】
ＲＧ＃は、対象ＲＧの識別番号である。
【００２５】
ＨＤＤ＃は、対象ＲＧを構成するＨＤＤ１６１の識別番号である。
【００２６】
アドレス範囲情報は、対象ＲＧの記憶空間のアドレス範囲（先頭ＬＢＡ（Logical Block Address）から終端ＬＢＡ）を表す情報である。
【００２７】
空き範囲情報は、対象ＲＧのアドレス範囲における各空き空間部分のアドレス範囲を表す情報である。「空き空間部分」とは、対象ＲＧの記憶空間における、ＬＵとして使用されていない記憶空間部分である。
【００２８】
空き容量情報は、対象ＲＧの空き容量を表す情報である。「空き容量」とは、対象ＲＧにおける一以上の空き空間部分のトータル容量である。
【００２９】
図３は、ＬＵテーブル１３２の構成例を示す。
【００３０】
ＬＵテーブル１３２には、各ＬＵ１７１に関する情報が記録される。具体的には、例えば、ＬＵテーブル１３２には、ＬＵ１７１毎に、ポートＩＤ、外部ＬＵＮ、内部ＬＵＮ、構成ＬＵ数、ステータス情報、容量情報、種別情報、親ＬＵＮ、開始ＬＢＡ、更新ブロック情報、ＲＧ＃、ＲＧアドレス情報が記録される。以下、一つのＬＵ（図３の説明で「対象ＬＵ」と言う）を例に採り、各種の情報を説明する。
【００３１】
ポートＩＤは、対象ＬＵが関連付けられているポート（ホストＩ／Ｆが備えるポート）の識別子である。
【００３２】
外部ＬＵＮは、対象ＬＵに割り当てられているＬＵＮであって、ホスト計算機１０１に提供されるＬＵＮである。外部ＬＵＮとしては、例えば、統合ＬＵＮとホストＬＵＮとの２種類がある。統合ＬＵＮは、統合ＬＵに割り当てられた外部ＬＵＮである（統合ＬＵとは、複数のＬＵの集合体である）。一方、ホストＬＵＮは、ＬＵに割り当てられた外部ＬＵＮである。複数のＬＵで統合ＬＵが形成された場合、統合ＬＵＮが外部ＬＵＮとして採用され、一方、ＬＵについては、ホストＬＵＮが外部ＬＵＮとして採用される。ホスト計算機１０１からのＩ／Ｏコマンドで指定されているＬＵＮは、外部ＬＵＮである。
【００３３】
内部ＬＵＮは、対象ＬＵに割り当てられているＬＵＮであって、ホスト計算機１０１に非提供のＬＵＮである。
【００３４】
構成ＬＵ数は、対象ＬＵが統合ＬＵの構成要素の場合に設定される情報であって、その統合ＬＵを構成するＬＵの数を表す情報である。
【００３５】
ステータス情報は、対象ＬＵに関するステータスを表す情報である。ステータス情報としては、例えば、下記（１）乃至（５）のうちの少なくとも一つ、
（１）使用中：対象ＬＵがホスト計算機１０１からアクセスされ得ることを意味するステータス、
（２）未使用：対象ＬＵがホスト計算機１０１からアクセスされ得えないことを意味するステータス、
（３）作成中：対象ＬＵの作成中を意味するステータス、
（４）拡張中：対象ＬＵを有する統合ＬＵの作成中であることを意味するステータス、及び、
（５）縮小中：対象ＬＵを有する統合ＬＵの縮小中であることを意味するステータス
がある。
【００３６】
容量情報は、対象ＬＵの記憶容量を表す情報である。ちなみに、統合ＬＵの記憶容量は、統合ＬＵを構成する複数のＬＵの記憶容量の合計である。
【００３７】
種別情報は、対象ＬＵの種別を表す情報である。種別情報としては、例えば、“通常”（対象ＬＵが統合ＬＵの非構成要素であることを意味する種別）、“親”（統合ＬＵにおいて対象ＬＵがメインの要素であることを意味する種別）、及び“子”（統合ＬＵにおいて対象ＬＵが非メインの要素であることを意味する種別）がある。以下、種別情報“親”のＬＵを「親ＬＵ」と言い、種別情報“子”のＬＵを「子ＬＵ」と言うことがある。
【００３８】
親ＬＵＮは、対象ＬＵを含んだ統合ＬＵにおける親ＬＵのＬＵＮである。もし、対象ＬＵが親ＬＵであれば、親ＬＵＮとして有意な値は設定されない。
【００３９】
開始ＬＢＡは、対象ＬＵの先頭ＬＢＡであって、ホスト計算機１０１からのＩ／Ｏコマンドで指定され得るＬＢＡである。
【００４０】
更新ブロック情報は、ステータス情報が“未使用”ではない対象ＬＵにおける更新ブロック（ホスト計算機１０１からライトされたデータを記憶しているブロック）のアドレスを表す情報である。
【００４１】
ＲＧ＃は、対象ＬＵの基になっているＲＧの識別番号である。
【００４２】
ＲＧアドレス情報は、対象ＬＵの基になっているＲＧの記憶空間における、対象ＬＵが占める空間部分のＬＢＡを表す情報である。この情報は、前述した開始ＬＢＡと必ずしも一致しない。具体的には、例えば、対象ＬＵが、ホスト計算機１０１から認識される統合ＬＵの構成要素である場合、先頭ＬＢＡは、統合ＬＵにおけるアドレスであるのに対し、ＲＧアドレス情報は、ＲＧの記憶空間でのアドレスを表す情報である。
【００４３】
本実施形態で行われるＬＵ設定として、ＬＵ作成、ＬＵ拡張及びＬＵ縮小の３種類がある。以下、各種のＬＵ設定を説明する。
【００４４】
図４は、ＬＵ作成の処理フローを示す。
【００４５】
管理者が、コンソール１０６を操作して、新たに作成されるＬＵに割り当てたい外部ＬＵＮと、そのＬＵの容量（以下、図４の説明において「指定容量」と言う）を表す情報とを入力する。
【００４６】
管理ソフトウェア１０７が、その入力された外部ＬＵＮと指定容量を表す情報とを含んだＬＵ作成コマンドを作成し、作成したＬＵ作成コマンドをストレージシステム１０５に送信する（Ｓ４０１）。そのＬＵ作成コマンドに応答して、ストレージシステム１０５において、下記Ｓ４０２〜Ｓ４０８の処理が行われる。
【００４７】
Ｓ４０２で、コマンド診断部１４１は、空き範囲の検索指示を構成制御部１４２に出す。その検索指示には、パラメータ値として、例えば、指定容量を表す値が含まれる。
【００４８】
Ｓ４０３で、構成制御部１４２は、検索指示に応答して、空き範囲の検索を行い、検索の結果をコマンド診断部４０３に回答する。空き範囲の検索では、その検索指示で指定されている指定容量分の空き範囲（一以上の空き空間部分）が、ＲＧテーブル１３１から検索される。検索の結果としての情報には、検索された空き範囲のアドレス情報が含まれる。
【００４９】
Ｓ４０４で、コマンド診断部１４１は、検索結果情報を参照し、指定容量分の空き範囲があるか否かを判断する。Ｓ４０４の判断の結果が否定的の場合（Ｓ４０４：ＮＯ）、コマンド診断部１４１は、ＮＧを管理ソフトウェア１０７に返す。管路ソフトウェア１０７は、ＮＧを表す情報をコンソール１０６に表示する。
【００５０】
Ｓ４０４の判断の結果が肯定的の場合（Ｓ４０４：ＹＥＳ）、Ｓ４０５で、コマンド診断部１４１は、ＬＵ定義指示を構成制御部１４２に送信する。そのＬＵ定義指示には、パラメータ値として、指定する空き範囲を表す情報（検索結果情報に含まれていた、空き範囲のアドレス情報）と、コンソール１０６から受けた外部ＬＵＮとが含まれる。
【００５１】
Ｓ４０６で、構成制御部１４２は、ＬＵ定義指示に応答して、ＬＵ定義処理を行う。ＬＵ定義処理では、構成制御部１４２は、指定空き範囲を新規にＬＵとして定義する。そのＬＵには、管理者から入力された外部ＬＵＮが割り当てられている。この処理については、後に図５乃至図１１Ｂを参照して説明するＬＵ拡張処理の説明で詳細に述べる。
【００５２】
Ｓ４０７で、構成制御部１４２は、ＬＵ定義処理の完了をコマンド診断部１４１に通知する。
【００５３】
Ｓ４０８で、コマンド診断部１４１は、ＬＵ作成コマンドに応答した処理の完了を管理ソフトウェア１０７に通知する。管理ソフトウェア１０７は、その処理の完了を表す情報をコンソール１０６に表示する。
【００５４】
以上のＬＵ作成の処理フローによれば、管理者が外部ＬＵＮ及び指定容量を入力しさえすれば、管理者が空き範囲を選択しなくても、指定容量を有しその外部ＬＵＮが割り当てられたＬＵが新たに作成される。
【００５５】
図５は、ＬＵ拡張の処理フローを示す。
【００５６】
管理者が、コンソール１０６を操作して、拡張対象ＬＵ（親ＬＵとしたいＬＵ）に割り当てられているＬＵＮと、拡張後のＬＵに関する容量を表す情報とを入力する。以下、図５乃至図１１Ｂの説明において、入力されたＬＵＮを、「指定ＬＵＮ」と言い、入力された情報が表す容量を「指定拡張容量」と言う。指定ＬＵＮは、外部ＬＵＮと内部ＬＵＮのどちらであっても良い。指定拡張容量は、拡張後の記憶容量（つまり、この処理フローの完了後における統合ＬＵの記憶容量）であっても良いし、拡張対象ＬＵの容量（つまり拡張前の容量）に追加される容量であっても良い。本実施形態では、指定拡張容量は、追加される容量とする。
【００５７】
管理ソフトウェア１０７が、指定ＬＵＮと指定拡張容量を表す情報とを含んだＬＵ拡張コマンドを作成し、作成したＬＵ拡張コマンドをストレージシステム１０５に送信する（Ｓ５０１）。そのＬＵ拡張コマンドに応答して、ストレージシステム１０５において、下記Ｓ５０２〜Ｓ５１２の処理が行われる。
【００５８】
Ｓ５０２で、コマンド診断部１４１は、空き範囲の検索指示を構成制御部１４２に出す。その検索指示には、パラメータ値として、例えば、指定拡張容量を表す値が含まれる。
【００５９】
Ｓ５０３で、構成制御部１４２は、検索指示に応答して、空き範囲の検索を行い、検索の結果をコマンド診断部４０３に回答する。空き範囲の検索では、その検索指示で指定されている指定拡張容量分の空き範囲が、ＲＧテーブル１３１から検索される。空き範囲は、一又は複数の空き空間部分（以下、図５乃至図１１Ｂの説明において「対象空き部分」と言う）で構成されている。検索の結果としての情報には、検索された空き範囲のアドレス情報が含まれる。空き範囲が複数の対象空き部分で構成されている場合には、各対象空き部分に対応したアドレス情報が、検索結果情報に含まれている。
【００６０】
Ｓ５０４で、コマンド診断部１４１は、検索結果情報を参照し、指定拡張容量分の空き範囲があるか否かを判断する。Ｓ５０４の判断の結果が否定的の場合（Ｓ５０４：ＮＯ）、コマンド診断部１４１は、ＮＧを管理ソフトウェア１０７に返す。管路ソフトウェア１０７は、ＮＧを表す情報をコンソール１０６に表示する。
【００６１】
Ｓ５０４の判断の結果が肯定的の場合（Ｓ５０４：ＹＥＳ）、Ｓ５０５で、コマンド診断部１４１は、ＬＵ定義指示を構成制御部１４２に送信する。そのＬＵ定義指示には、パラメータ値として、指定する空き空間部分を表す情報（検索結果情報に含まれていた、空き空間部分のアドレス情報）が含まれる。
【００６２】
Ｓ５０６で、構成制御部１４２は、ＬＵ定義指示に応答して、ＬＵ定義処理を行う。ＬＵ定義処理では、構成制御部１４２は、指定空き空間部分を新規に子ＬＵとして定義する。この処理については、後に図６Ａ乃至図１１Ｂを参照して説明する。
【００６３】
Ｓ５０７で、構成制御部１４２は、ＬＵ定義処理の完了をコマンド診断部１４１に通知する。完了の通知の際、Ｓ５０６のＬＵ定義処理で付与されたＬＵＮ（定義されたＬＵに割り当てられた内部ＬＵＮ）が、コマンド診断部１４１に渡される。コマンド診断部１４１は、メモリ１２５に、渡されたＬＵＮを蓄積する。
【００６４】
以上のＳ５０５乃至Ｓ５０７の処理は、全ての対象空き部分について行われるまで、繰り返される。全ての対象空き部分についてＳ５０５乃至Ｓ５０７が実行された後に（すなわち、全ての対象空き部分がそれぞれＬＵとして定義された後に）、Ｓ５０８が実行される。
【００６５】
Ｓ５０８で、コマンド診断部１４１は、ＬＵ拡張指示を構成制御部１４２に送信する。そのＬＵ拡張指示には、パラメータ値として、指定ＬＵＮと、メモリ１２５に蓄積されている一以上の未処理のＬＵＮのうちの一つのＬＵＮ（以下、図５乃至図１１Ｂの説明において「追加ＬＵＮ」と言う）とが含まれる。
【００６６】
Ｓ５０９で、構成制御部１４２は、ＬＵ拡張指示に応答して、ＬＵ拡張処理を行う。ＬＵ拡張処理では、構成制御部１４２は、指定ＬＵＮに対応した親ＬＵに、追加ＬＵＮに対応したＬＵを統合する処理を行う。この処理については、後に６Ａ乃至図１１Ｂを参照して説明する。
【００６７】
Ｓ５１０で、構成制御部１４２は、ＬＵ拡張処理の完了をコマンド診断部１４１に通知する。
【００６８】
以上のＳ５０８乃至Ｓ５１０の処理は、親ＬＵに統合される全ての対象ＬＵについて行われるまで、繰り返される。
【００６９】
全ての対象ＬＵについてＳ５０８乃至Ｓ５１０が実行された後に（すなわち、全ての対象ＬＵが、指定ＬＵＮに対応した親ＬＵに統合された後）、Ｓ５１１で、コマンド診断部１４１が、フォーマット処理を実行する。フォーマット処理では、全ての子ＬＵにフォーマットが施される。
【００７０】
フォーマット処理の完了後、Ｓ５１２で、コマンド診断部１４１が、ＬＵ拡張コマンドに応答して実行された処理の完了を、管理ソフトウェア１０７に通知する。管理ソフトウェア１０７は、その処理の完了を表す情報をコンソール１０６に表示する。
【００７１】
以上のＬＵ拡張の処理フローによれば、管理者が、指定ＬＵＮと指定拡張容量とを入力しさえすれば、管理者が、事前に子ＬＵを作成する作業や、複数のＬＵの中から子ＬＵとするＬＵを選択する作業等の特段の作業を行わなくても、指定拡張容量分の容量が拡張されたＬＵ（統合ＬＵ）が新たに作成される。
【００７２】
以下、ＬＵ拡張の処理フローにおけるＬＵ定義処理及びＬＵ拡張処理を詳細に説明する。なお、以下の説明では、ＲＧ番号がｎであるＲＡＩＤグループを「ＲＧ＃ｎ」と表す（ｎは、００、０１、…のいずれか）。
【００７３】
ＬＵ定義処理の開始前では、例えば、図６Ａに示すように、指定ＬＵＮに対応したＬＵ（指定ＬＵ）が、ＲＧ＃０３に定義されている。ＲＧ＃０３には、３０Ｇ（ギガバイト）の空き空間（空き範囲４０００−６９９９）６０１ある。また、図６Ｂに示すように、ＲＧ＃０４に、５０Ｇの空き空間（空き範囲２０００−６９９９）６０３がある。このため、ＬＧ定義処理の開始前では、ＲＧテーブル１３１は、図７Ａに示す通りであり、ＬＵテーブル１３２は、図７Ｂに示す通りである。
【００７４】
ここで、指定拡張容量（親ＬＵの容量２０Ｇに追加される容量）が、５０Ｇであるとする。
【００７５】
ＬＵ定義処理が開始されると、図８Ｂに示すように、親ＬＵ（内部ＬＵＮ：０１）に対応したレコード（ＬＵテーブル１３２におけるレコード）１３２１のステータス情報が、“拡張中”に更新される。
【００７６】
本実施形態では、ＬＵ定義処理では、アドレスの若い空き空間が優先的に探し出される。従って、この例では、まず、図７Ａに示したＲＧテーブル１３１の空き範囲情報を基に、ＲＧ＃０３の連続した空き空間６０１（図６Ａ参照）が探し出される。図８Ｂに示すように、その空き空間６０１をＬＵとした新規のレコード１３２が追加される。レコード１３２には、図８Ｂに太字且つアンダーラインで示す複数の情報要素が記載される。それら複数の情報要素のうち、ポートＩＤ及びステータス情報は、親ＬＵに対応したポートＩＤ及びステータス情報と同じポートＩＤ（ポートＩＤ：００）及びステータス情報（“拡張中”）が設定される。ホストＬＵＮ及び内部ＬＵＮは、所定の規則で設定される（内部ＬＵＮは、いずれの既存のＬＵの内部ＬＵＮと非重複の値とされる）。容量情報としては、空き空間６０１の容量３０Ｇを表す情報が設定される。ＲＧ範囲情報としては、空き空間６０１のＲＧアドレスの範囲４０００−６９９９を表す情報が設定される。以上の処理に伴い、図８Ａに太字且つアンダーラインで示すように、ＲＧテーブル１３１内の、ＲＧ＃０３に対応したレコード１３１１において、空き範囲情報が無効値に更新され、空き容量情報が、３０Ｇから０Ｇを表す情報に更新される。すなわち、複数のＲＧにおけるトータルの空き容量から、空き空間６０１の容量３０Ｇが減らされたこととなる。
【００７７】
以上のＬＵ定義処理によって、ＲＧ＃０３内の空き空間６０１が一つのＬＵとされる。この処理の結果として、そのＬＵの内部ＬＵＮ：０２が、構成制御部１４２からコマンド診断部１４１に返され、コマンド診断部１４１によって、その内部ＬＵＮ：０２がメモリ１２５に蓄積される。
【００７８】
この段階では、定義されたＬＵの容量は３０Ｇであり、指定拡張容量５０Ｇに足りない。そこで、不足分の容量２０Ｇについて、再度、ＬＵ定義処理が実行される。
【００７９】
次のＬＵ定義処理では、図７Ａに示したＲＧテーブル１３１の空き範囲情報を基に、ＲＧ＃０４の連続した空き空間６０３（図６Ａ参照）が探し出される。しかし、その空き空間（アドレス範囲２０００−６９９９）６０３の容量は５０Ｇであり、２０Ｇを超えている。そこで、その空き空間６０３のうちの２０Ｇ分の空き部分（空き範囲２０００−３９９９）６０５が特定される。そして、図９Ｂに示すように、その空き部分６０５をＬＵとした新規のレコード１３３が追加される。レコード１３３には、図９Ｂに太字且つアンダーラインで示す複数の情報要素が記載される。それら複数の情報要素のうち、ポートＩＤ及びステータス情報は、親ＬＵに対応したポートＩＤ及びステータス情報と同じポートＩＤ（ポートＩＤ：００）及びステータス情報（“拡張中”）が設定される。ホストＬＵＮ及び内部ＬＵＮは、所定の規則で設定される。容量情報としては、空き部分６０５の容量２０Ｇを表す情報が設定される。ＲＧ範囲情報としては、空き部分６０５のＲＧアドレスの範囲２０００−３９９９を表す情報が設定される。以上の処理に伴い、図９Ａに太字且つアンダーラインで示すように、ＲＧテーブル１３１内の、ＲＧ＃０４に対応したレコード１３１２において、空き範囲情報が、２０００−６９９９から４０００−６９９９を表す情報に更新され、空き容量情報が５０Ｇから３０Ｇを表す情報に更新される。すなわち、複数のＲＧにおけるトータルの空き容量から、さらに、空き部分６０５の容量２０Ｇが減らされたこととなる。
【００８０】
この段階で、指定拡張容量５０Ｇ分の空き範囲にＬＵが定義されたので、図５に示したＳ５０５乃至Ｓ５０７のループから処理が抜けて、Ｓ５０８乃至Ｓ５１０のループが開始される。すなわち、２度のＬＵ定義処理で定義された２つのＬＵ（ＬＵテーブル１３２内のレコード１３２２及び１３２３に対応したＬＵ）について、ＬＵ拡張処理が実行される。
【００８１】
まず、コマンド診断部１４１から、指定ＬＵＮ：０１及び追加ＬＵＮ：０２（空き空間６０１（図６Ａ参照）に定義されたＬＵの内部ＬＵＮ）が、構成制御部１４２に渡される。構成制御部１４２が、ＬＵテーブル１３２における、指定ＬＵＮに対応したレコード１３１１や、追加ＬＵＮ：０２に対応したレコード１３２２を更新する。具体的には、図１０Ａに示すように、レコード１３１１において、統合ＬＵＮとして、指定ＬＵＮに対応したホストＬＵＮが設定され、種別情報として、“親”が設定される。つまり、指定ＬＵＮに対応したＬＵが親ＬＵとして定義される。また、レコード１３２２において、統合ＬＵＮとして、指定ＬＵＮに対応したホストＬＵＮが設定され、種別情報として、“子”が設定され、親ＬＵＮとして、指定ＬＵＮに対応した内部ＬＵＮ：０１が設定され、開始ＬＢＡとして、指定ＬＵ（親ＬＵ）の終端ＬＵアドレス１９９９に連続した次のアドレス２０００が設定される。つまり、追加ＬＵＮ：０２に対応したＬＵが、親ＬＵに統合される。なお、ＬＵアドレスとは、ホスト計算機１０１から指定され得るアドレスであって、ＲＧアドレスとは異なる。
【００８２】
次に、コマンド診断部１４１から、指定ＬＵＮ：０１及び追加ＬＵＮ：０３（空き部分６０５（図６Ｂ参照）に定義されたＬＵの内部ＬＵＮ）が、構成制御部１４２に渡される。構成制御部１４２が、ＬＵテーブル１３２における、追加ＬＵＮ：０３に対応したレコード１３２２を更新する。具体的には、図１０Ａに示すように、レコード１３２３において、統合ＬＵＮとして、指定ＬＵＮに対応したホストＬＵＮが設定され、種別情報として、“子”が設定され、親ＬＵＮとして、指定ＬＵＮに対応した内部ＬＵＮ：０１が設定され、開始ＬＢＡとして、直前の子ＬＵ（内部ＬＵＮ：０２に対応したＬＵ）の終端ＬＵアドレス４９９９に連続した次のアドレス５０００が設定される。つまり、追加ＬＵＮ：０３に対応したＬＵが、親ＬＵに統合される。なお、そのＬＵは、親ＬＵに統合された子ＬＵ（内部ＬＵＮ：０２に対応したＬＵ）の次に統合される。
【００８３】
以上の一連の処理により、図１０Ｂに示す指定ＬＵに、２つのＬＵが連結されることで、図１０Ｃに示す統合ＬＵに拡張される。ＬＵアドレスは、連続したアドレスとなり、ホスト計算機１０１からは、統合ＬＵは一つのＬＵとして認識される。なお、ＲＧ＃０３及び＃０４での空き範囲は、以上の一連の処理の結果、それぞれ、図１１Ａ及び図１１Ｂに示す通りとなる。
【００８４】
次に、図１２を参照して、ＬＵ縮小の処理フローを説明する。
【００８５】
管理者が、コンソール１０６を操作して、縮小対象ＬＵ（典型的には統合ＬＵ）に割り当てられているＬＵＮと、縮小後のＬＵに関する容量を表す情報とを入力する。以下、図１２乃至図１７Ｂの説明において、入力されたＬＵＮを、「指定ＬＵＮ」と言い、入力された情報が表す容量を「指定縮小容量」と言う。指定ＬＵＮは、統合ＬＵＮであっても良いし、統合ＬＵ内の親ＬＵに対応した外部ＬＵＮ又は内部ＬＵＮであっても良い。指定縮小容量は、縮小後の記憶容量（つまり、この処理フローの完了後における縮小対象ＬＵの記憶容量）であっても良いし、縮小対象ＬＵの容量（つまり縮小前の容量）から減らされる容量であっても良い。本実施形態では、指定縮小容量は、減らされる容量とする。
【００８６】
管理ソフトウェア１０７が、指定ＬＵＮと指定縮小容量を表す情報とを含んだＬＵ縮小コマンドを作成し、作成したＬＵ縮小コマンドをストレージシステム１０５に送信する（Ｓ９０１）。そのＬＵ縮小コマンドに応答して、ストレージシステム１０５において、下記Ｓ９０２〜Ｓ９０８の処理が行われる。
【００８７】
Ｓ９０２で、コマンド診断部１４１は、縮小範囲の検索指示を構成制御部１４２に出す。その検索指示には、パラメータ値として、例えば、指定ＬＵＮ及び指定縮小容量が含まれる。
【００８８】
Ｓ９０３で、構成制御部１４２は、検索指示に応答して、指定縮小容量分の縮小範囲に更新ブロックが存在するか否かの検索を行い、検索の結果をコマンド診断部４０３に回答する。
【００８９】
Ｓ９０４で、コマンド診断部１４１は、検索結果情報を参照し、縮小範囲に更新ブロックがあるか否かを判断する。Ｓ９０４の判断の結果が否定的の場合（Ｓ９０４：ＮＯ）、コマンド診断部１４１は、ＮＧを管理ソフトウェア１０７に返す。管路ソフトウェア１０７は、ＮＧを表す情報をコンソール１０６に表示する。
【００９０】
Ｓ９０４の判断の結果が肯定的の場合（Ｓ９０４：ＹＥＳ）、Ｓ９０５で、コマンド診断部１４１は、ＬＵ縮小指示を構成制御部１４２に送信する。そのＬＵ縮小指示には、パラメータ値として、指定ＬＵＮ及び指定縮小容量が含まれる。
【００９１】
Ｓ９０６で、構成制御部１４２は、ＬＵ縮小指示に応答して、ＬＵ縮小処理を行う。ＬＵ縮小処理では、構成制御部１４２は、指定ＬＵＮに対応した縮小対象ＬＵから、指定縮小容量分の範囲を除去する処理を行う。この処理については、後に図１３Ａ乃至図１７Ｂを参照して説明する。
【００９２】
Ｓ９０７で、構成制御部１４２は、ＬＵ縮小処理の完了をコマンド診断部１４１に通知する。
【００９３】
Ｓ９０８で、コマンド診断部１４１が、ＬＵ縮小コマンドに応答して実行された処理の完了を、管理ソフトウェア１０７に通知する。管理ソフトウェア１０７は、その処理の完了を表す情報をコンソール１０６に表示する。
【００９４】
以上のＬＵ縮小の処理フローによれば、管理者が、指定ＬＵＮと指定縮小容量とを入力しさえすれば、管理者が、縮小対象ＬＵから取り外すＬＵを選択する作業等の特段の作業を行わなくても、指定縮小容量分の容量が縮小されたＬＵ（統合ＬＵ又は単一のＬＵ）が新たに作成される。
【００９５】
以下、ＬＵ縮小の処理フローにおけるＬＵ縮小処理を詳細に説明する。なお、以下の説明では、縮小対象ＬＵは、親ＬＵと２つの子ＬＵとで構成されている統合ＬＵであるとする。また、指定縮小容量が４０Ｇであるとする。
【００９６】
ＬＵ縮小処理の開始前では、例えば、縮小対象の統合ＬＵ内の親ＬＵ及び一つの子ＬＵがＲＧ＃０３を基に形成されており（図１３Ａ参照）、残りの一つの子ＬＵがＲＧ＃０４を基に形成されている（図１３Ｂ参照）。ＬＧ縮小処理の開始前では、ＲＧテーブル１３１は、図１４Ａに示す通りであり、ＬＵテーブル１３２は、図１４Ｂに示す通りである。
【００９７】
縮小対象の統合ＬＵは、例えば図１６Ｂに示す通りであるため、指定縮小容量４０Ｇ分の縮小が行われるためには、統合ＬＵの末端アドレスを含んだ２０Ｇの子ＬＵ（２番目の子ＬＵ）が統合ＬＵから除去され、且つ、１番目の３０Ｇの子ＬＵから２０Ｇの容量が減らされる必要がある（図１３Ａ及び図１３Ｂ参照）。２番目の子ＬＵには更新ブロックが存在しておらず、また、１番目の子ＬＵの終端から２０Ｇ分の範囲にも更新ブロックが存在していないとする。このため、図１２のＳ９０４の判断結果が肯定的であるとする。
【００９８】
このため、ＬＵ縮小処理が開始されると、図１５Ｂに示すように、親ＬＵ及び１番目の子ＬＵについてのステータス情報が“縮小中”に更新される。また、１番目の子ＬＵ２番目の子ＬＵに対応したレコードが、ＬＵテーブル１３２から除去される。それに伴い、親ＬＵ及び１番目の子ＬＵについての構成ＬＵ数が“３”から“２”に更新される。また、図１５Ａに示すように、ＲＧ＃０４に対応したレコードにおいて、空き容量情報が、３０Ｇから、統合ＬＵから除去された２番目の子ＬＵの容量２０Ｇを加算した５０Ｇを表す情報に更新され、空き範囲を表す情報が、４０００−６９９９から、２番目のＬＵが占めていたＲＧアドレス２０００−３９９９が追加された２０００−６９９９に更新される。
【００９９】
また、図１５Ｂに示すように、１番目の子ＬＵに対応したレコード１３２２において、容量情報が、３０Ｇから１０Ｇを表す情報に更新され、ＲＧ範囲情報が、４０００−６９９９から、１番目の子ＬＵの終端から２０Ｇ分を縮小したアドレス範囲４０００−４９９９を表す情報に更新される。それに伴い、図１５Ａに示すように、ＲＧ＃０３に対応したレコードにおいて、空き容量情報が、０Ｇから、１番目のＬＵから縮小された２０Ｇを加算した２０Ｇを表す情報に更新され、空き範囲を表す情報が、無効値から、１番目のＬＵが占めていたＲＧアドレス４０００−６９９９のうちの縮小された範囲に対応したアドレス５０００−６９９９に更新される。
【０１００】
以上のＬＵ縮小処理が終わり、ＬＵ縮小の処理フローが完了すると、例えば、ＬＵテーブル１３２において、図１６Ａに示すように、親ＬＵ及び１番目の子ＬＵに対応したステータス情報が“使用中”に更新される（なお、図示していないが、ＬＵ拡張の処理フローが完了した場合には、統合ＬＵを構成する３つのＬＵのステータス情報が、“拡張中”から“使用中”に更新される）。また、その処理フローが完了すると、縮小対象の統合ＬＵ（図１６Ｂ参照）が、図１６Ｃに示す統合ＬＵに縮小される。つまり、指定縮小容量４０Ｇ分の容量が縮小される。なお、ＲＧ＃０３及び＃０４の空き範囲は、以上の処理フローの結果、それぞれ、図１７Ａ及び図１７Ｂに示す通りとなる。
【０１０１】
以上が、第一の実施形態の説明である。
【０１０２】
なお、ＬＵ作成、ＬＵ拡張及びＬＵ縮小の少なくとも一つの処理フローにおいて、ＮＧとなる場合には、指定された容量がどれだけ多いためにＮＧとなったかが提示されても良い。たとえば、コマンド診断部１４１が、構成制御部１４２からの回答を基に、オーバー分の容量を計算し、計算された容量を表す情報を管理ソフトウェア１０７に送信しても良い。
【０１０３】
また、ＬＵ縮小は、ＬＵ単位であっても良い。例えば、上記の例で言えば、統合ＬＵから２番目のＬＵが除去されるから、更に１番目のＬＵが除去されるかであっても良い。このため、例えば、指定縮小容量が、ＬＵ単位の容量（一以上の子ＬＵの総量）に一致しない場合には、コマンド診断部１４１が、指定縮小容量になるべく近い容量且つ指定縮小容量未満の容量分の子ＬＵを除去するか、或いは、指定縮小容量になるべく近い容量且つ指定縮小容量を超える容量分の子ＬＵを除去するかを問い合わせるための情報を管理ソフトウェア１０７に送信しても良い。
【実施例２】
【０１０４】
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する（これは、後述の第三の実施形態以降の実施形態についても同様である）。
【０１０５】
第二の実施形態では、管理者から指定拡張容量の入力を受け付ける前に、コントローラ１１１が、各ＲＧの空き容量の合計であるトータル空き容量を算出し、算出されたトータル空き容量を計算し、管理者にそのトータル空き容量を提示し、管理者から、そのトータル空き容量以下の指定拡張容量の入力を受け付ける。これにより、管理者がＬＵ拡張を指示した後に、空き容量不足でＬＵ拡張がＮＧとなることを防ぐことができる。
【０１０６】
具体的には、例えば、図１８に示すように、Ｓ１８０１で、管理ソフトウェア２０７が、例えば管理者から所定の指示を受けたときに、ストレージシステム１０５に、トータル空き容量を問い合わせる。
【０１０７】
Ｓ１８０２で、コマンド診断部２４１が、その問合せに応答して、トータル空き容量を構成制御部２４２に問い合わせる。
【０１０８】
Ｓ１８０３で、構成制御部２４２が、その問合せに応答して、ＲＧテーブル１３１を参照し、全ての空き容量を合計することで、トータル空き容量を算出する。
【０１０９】
Ｓ１８０４で、構成制御部２４２が、算出されたトータル空き容量を表す情報をコマンド診断２４１に回答する。
【０１１０】
Ｓ１８０５で、コマンド診断部２４１が、そのトータル空き容量を表す情報を管理ソフトウェア２０７に送信する。管理ソフトウェアは、その情報が表すトータル空き容量をコンソール１０６に表示し、そのトータル空き容量以下の指定拡張容量の入力を受け付ける。
【０１１１】
本実施形態では、第一の実施形態のように、管理者がＬＵ拡張を指示した後に、空き容量不足でＬＵ拡張がＮＧとなっても良い。たとえば、管理者は、作業量が少ない方が良い場合には、トータル空き容量を確認することなく指定拡張容量を入力し、作業量が多くてもやり直しが生じることを防ぎたい場合には、トータル空き容量を確認した上で指定拡張容量を入力しても良い。
【実施例３】
【０１１２】
以下、本発明の第三の実施形態を説明する。
【０１１３】
第三の実施形態では、図１９Ａに示すように、ＬＵ定義処理の開始前に、ストレージシステム内のコントローラが、拡張後のＬＵ（つまり統合ＬＵ）（例えば図１０Ｃ参照）をホスト計算機１０１に認識させる（Ｓ１９０１）。
【０１１４】
このため、指定ＬＵ（親ＬＵ）を超えるアドレスを指定したライトコマンドをホスト計算機１０１から受け付けることがあり得る（Ｓ１９０２）。
【０１１５】
その場合、コントローラは、そのライトコマンドに従うライト対象のデータを、キャッシュ領域１３３に格納し（Ｓ１９０３）、そのデータが格納されている位置と、そのライトコマンドで指定されているアドレスと、そのライトコマンドを受け付けた日時との対応関係を表す未格納管理情報１９０１を、メモリ１２５で管理する（Ｓ１９０４）。統合ＬＵが完成した後、図１９Ｂに示すように、コントローラは、未格納情報を基に、ライトコマンドを受け付けた日時順に、キャッシュ領域１３３に格納されているデータを、統合ＬＵ内の指定アドレスに対応したブロックに書き込む（Ｓ１９０５）。
【実施例４】
【０１１６】
以下、本発明の第四の実施形態を説明する。
【０１１７】
第四の実施形態では、指定拡張容量分の空き空間は、定義されるＬＵがなるべく少なくなるよう、指定拡張容量以下且つなるべく大きい容量を有する空き空間が優先的に選択される。具体的には、第一実施形態では、アドレスが若い順に空き空間が選択されたため、指定拡張容量が５０Ｇであっても、ＲＧ＃０３内の３０Ｇの空き空間６０１が先に選択されたが、本実施形態では、指定ＲＧ＃０４内の空き空間６０５、すなわち、指定拡張容量５０Ｇと同じ容量が空き容量である空き空間６０５が先に選択される。これにより、指定ＬＵに連結されるＬＵの数を一つにすることができる。従って、ＬＵテーブル１３２を構成するレコードの数を少なくすることができ、以って、ＬＵテーブル１３２が大きくなることを防ぐことができる。
【実施例５】
【０１１８】
以下、第五の実施形態を説明する。
【０１１９】
第五の実施形態では、ＬＵ拡張処理の後のフォーマット処理がスキップされる。
【０１２０】
統合ＬＵ（統合ＬＵＮ）がホスト計算機１０１から認識されて、コントローラが、ホスト計算機１０１から、統合ＬＵＮを指定したライトコマンドを受けた場合、図２０に示すように、フォーマット管理情報を基に、そのライトコマンドで指定されているアドレスに対応したブロック（ライト先ブロック）がフォーマット済みか否かを判断する（Ｓ２００１）。フォーマット管理情報は、フォーマット済みのブロックがどこであるかを表す情報である。
【０１２１】
Ｓ２００１の判断の結果が否定的の場合（Ｓ２００１：ＮＯ）コントローラは、ライト先ブロックをフォーマットし、フォーマット管理情報を、ライト先ブロックがフォーマット済みとなったことを表す情報に更新する（Ｓ２００２）。そして、コントローラは、ライト先ブロックに、ライト対象のデータを書き込む（Ｓ２００３）。
【実施例６】
【０１２２】
以下、本発明の第六の実施形態を説明する。
【０１２３】
第六の実施形態では、コントローラが、縮小可能な容量（縮小対象ＬＵの末端アドレスから更新ブロックの存在しない最大の範囲）を事前に計算して管理者に提示し、その範囲内での縮小を受け付ける。
【０１２４】
具体的には、例えば、図２１に示すように、Ｓ２１０１で、管理ソフトウェア３０７が、例えば管理者から所定の指示を受けたときに、ストレージシステムに、縮小可能容量を問い合わせる。
【０１２５】
Ｓ２１０２で、コマンド診断部３４１が、その問合せに応答して、縮小対象ＬＵについての更新ブロックのアドレスを構成制御部３４２に問い合わせる。
【０１２６】
Ｓ２１０３で、構成制御部３４２が、その問合せに応答して、ＬＵテーブル１３２を参照し、縮小対象ＬＵの容量と、縮小対象ＬＵにおける更新ブロックのアドレスとを特定する。
【０１２７】
Ｓ２１０４で、構成制御部３４２が、特定された容量及びアドレスをコマンド診断３４１に回答する。
【０１２８】
Ｓ２１０５で、コマンド診断部３４１が、構成制御部３４２からの回答を基に、縮小可能な容量（縮小対象ＬＵの末端アドレスから更新ブロックの存在しない最大の範囲）を計算する。
【０１２９】
Ｓ２１０６で、コマンド診断部３４１が、計算結果（縮小可能な容量）を表す情報を管理ソフトウェア２０７に送信する。管理ソフトウェアは、その情報が表す縮小可能量をコンソール１０６に表示し、その容量以下の指定縮小容量の入力を受け付ける。
【０１３０】
本実施形態では、第一の実施形態のように、管理者がＬＵ縮小を指示した後に、ＬＵ縮小がＮＧとなっても良い。たとえば、管理者は、作業量が少ない方が良い場合には、縮小可能容量を確認することなく指定縮小容量を入力し、作業量が多くてもやり直しが生じることを防ぎたい場合には、縮小可能容量を確認した上で指定縮小容量を入力しても良い。
【０１３１】
以上、本発明の好適な幾つかの実施形態を説明したが、本発明は、これらの実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上述した複数の実施形態のうちの二以上の実施形態を組み合わせることが可能である。
【図面の簡単な説明】
【０１３２】
【図１】本発明の一実施形態に係る計算機システムの構成例を示す。
【図２】ＲＧテーブル１３１の構成例を示す。
【図３】ＬＵテーブル１３２の構成例を示す。
【図４】ＬＵ作成の処理フローを示す。
【図５】ＬＵ拡張の処理フローを示す。
【図６】図６Ａは、ＬＵ拡張前のＲＧ＃０３を示す。図６Ｂは、ＬＵ拡張前のＲＧ＃０４を示す。
【図７】図７Ａは、ＬＵ拡張前のＲＧテーブル１３１を示す。図７Ｂは、ＬＵ拡張前のＬＵテーブル１３２の一例を示す。
【図８】図８Ａは、一度目のＬＵ定義処理後のＲＧテーブル１３１を示す。図８Ｂは、一度目のＬＵ定義処理後のＬＵテーブル１３２を示す。
【図９】図９Ａは、二度目のＬＵ定義処理後のＲＧテーブル１３１を示す。図９Ｂは、二度目のＬＵ定義処理後のＬＵテーブル１３２を示す。
【図１０】図１０Ａは、ＬＵ拡張処理後のＬＵテーブル１３２を示す。図１０Ｂは、ＬＵ拡張前の指定ＬＵを示す。図１０Ｃは、ＬＵ拡張後の統合ＬＵ（指定ＬＵに他のＬＵが連結された結果）を示す。
【図１１】図１１Ａは、ＬＵ拡張後のＲＧ＃０３を示す。図１１Ｂは、ＬＵ拡張後のＲＧ＃０４を示す。
【図１２】ＬＵ縮小の処理フローを示す。
【図１３】図１３Ａは、ＬＵ縮小前のＲＧ＃０３を示す。図１３Ｂは、ＬＵ縮小前のＲＧ＃０４を示す。
【図１４】図１４Ａは、ＬＵ縮小前のＲＧテーブル１３１を示す。図１４Ｂは、ＬＵ縮小前のＬＵテーブル１３２の一例を示す。
【図１５】図１５Ａは、ＬＵ縮小処理後のＲＧテーブル１３１を示す。図１５Ｂは、ＬＵ縮小処理後のＬＵテーブル１３２を示す。
【図１６】図１６Ａは、ＬＵ縮小の処理フロー後のＬＵテーブル１３２を示す。図１６Ｂは、ＬＵ縮小前の統合ＬＵを示す。図１６Ｃは、ＬＵ縮小後の統合ＬＵを示す。
【図１７】図１７Ａは、ＬＵ縮小後のＲＧ＃０３を示す。図１７Ｂは、ＬＵ縮小後のＲＧ＃０４を示す。
【図１８】本発明の第二の実施形態で行われる処理を示す。
【図１９】図１９Ａは、本発明の第三の実施形態において、統合ＬＵが完成する前に行われる処理を示す。図１９Ｂは、本発明の第三の実施形態において、統合ＬＵが完成した後に行われる処理を示す。
【図２０】本発明の第五の実施形態で行われる処理を示す。
【図２１】本発明の第六の実施形態で行われる処理を示す。
【符号の説明】
【０１３３】
１０５…ストレージシステム
【図１】
2010086393.tif 000003
【図２】
2010086393.tif 000004
【図３】
2010086393.tif 000005
【図４】
2010086393.tif 000006
【図５】
2010086393.tif 000007
【図６】
2010086393.tif 000008
【図７】
2010086393.tif 000009
【図８】
2010086393.tif 000010
【図９】
2010086393.tif 000011
【図１０】
2010086393.tif 000012
【図１１】
2010086393.tif 000013
【図１２】
2010086393.tif 000014
【図１３】
2010086393.tif 000015
【図１４】
2010086393.tif 000016
【図１５】
2010086393.tif 000017
【図１６】
2010086393.tif 000018
【図１７】
2010086393.tif 000019
【図１８】
2010086393.tif 000020
【図１９】
2010086393.tif 000021
【図２０】
2010086393.tif 000022
【図２１】
2010086393.tif 000023