(57)【特許請求の範囲】
【請求項１】
データを記憶する各記憶装置の実容量を用いて、該記憶装置のデータ記憶容量の基準となる基準容量をそれぞれ算出する基準容量算出部と、
前記基準容量算出部によって算出された各記憶装置の基準容量と実容量との差分値をそれぞれ算出する差分算出部と、
前記差分算出部によって算出された各記憶装置の差分値のうち、最も値が大きい最大差分値を検索する最大値検索部と、
前記基準容量算出部によって算出された基準容量から前記最大差分値を引いた値に応じて、各記憶装置が実際に使用される容量である定義容量を決定する定義容量決定部と、
前記基準容量算出部によって算出された各記憶装置の基準容量に応じて、各記憶装置を所定の区分に分ける基準容量区分部とを有し、
前記最大値検索部は、前記基準容量区分部によって区分けされた各区分内で各記憶装置の差分値のうち、最も値が大きい最大差分値を検索することを特徴とする記憶管理装置。
【請求項２】
前記基準容量算出部によって算出された基準容量ごとに、前記定義容量決定部によって算出された定義容量と、前記記憶装置の実容量の範囲を示す容量帯とを記憶する記憶容量対応テーブルを記憶する記憶容量対応テーブルをさらに有することを特徴とする請求項１に記載の記憶管理装置。
【請求項３】
前記差分算出部は、前記記憶装置が新たに追加された場合には、該記憶装置の基準容量と実容量との差分値を算出し、
前記最大値検索部は、前記差分算出部によって算出された差分値と既存の最大差分値とを比較し、前記差分算出部によって算出された差分値と既存の最大差分値との比較の結果、前記差分算出部によって算出された差分値の方が大きい場合には、該差分値を最大差分値とすることを特徴とする請求項１または２に記載の記憶管理装置。
【請求項４】
データを記憶する各記憶装置の実容量を用いて、該記憶装置のデータ記憶容量の基準となる基準容量をそれぞれ算出する基準容量算出ステップと、
前記基準容量算出ステップによって算出された各記憶装置の基準容量と実容量との差分値をそれぞれ算出する差分算出ステップと、
前記差分算出ステップによって算出された各記憶装置の差分値のうち、最も値が大きい最大差分値を検索する最大値検索ステップと、
前記基準容量算出ステップによって算出された基準容量から前記最大差分値を引いた値に応じて、各記憶装置が実際に使用される容量である定義容量を決定する定義容量決定ステップと、
前記基準容量算出ステップによって算出された各記憶装置の基準容量に応じて、各記憶装置を所定の区分に分ける基準容量区分ステップとを含み、
前記最大値検索ステップでは、前記基準容量区分ステップによって区分けされた各区分内で各記憶装置の差分値のうち、最も値が大きい最大差分値を検索することを特徴とする記憶管理方法。
【請求項５】
データを記憶する各記憶装置の実容量を用いて、該記憶装置のデータ記憶容量の基準となる基準容量をそれぞれ算出する基準容量算出手順と、
前記基準容量算出手順によって算出された各記憶装置の基準容量と実容量との差分値をそれぞれ算出する差分算出手順と、
前記差分算出手順によって算出された各記憶装置の差分値のうち、最も値が大きい最大差分値を検索する最大値検索手順と、
前記基準容量算出手順によって算出された基準容量から前記最大差分値を引いた値に応じて、各記憶装置が実際に使用される容量である定義容量を決定する定義容量決定手順と、
前記基準容量算出手順によって算出された各記憶装置の基準容量に応じて、各記憶装置を所定の区分に分ける基準容量区分手順とを実行させ、
前記最大値検索手順では、前記基準容量区分手順によって区分けされた各区分内で各記憶装置の差分値のうち、最も値が大きい最大差分値を検索すること
をコンピュータに実行させることを特徴とする記憶管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶管理装置、記憶管理方法および記憶管理プログラムに関する。
【背景技術】
【０００２】
従来、複数のディスクを組み合わせ、高速・大容量・高信頼性に優れたディスクシステムを構築する技術としてＲＡＩＤ（Redundant  Arrays  of  Independent（Inexpensive）Disks）装置が広く知られている。
【０００３】
このようなＲＡＩＤ装置では、サポート対象の複数のディスクの実容量がそれぞれ異なる場合があり、他のディスクを保守部品として利用することができない場合がある。例えば、図１６に示すように、実容量が１０１０ＧＢのディスクＡに障害が発生し、ディスクＡの保守部品として実容量が１００１ＧＢのディスクＢを使用する。このような場合には、ディスクＢの実容量がディスクＡの実容量に比して少ないために、ディスクＢを保守部品として利用することができない。
【０００４】
このため、ＲＡＩＤ装置では、サポート対象のディスクの容量帯をＦＩＲＭ内部で範囲設定および記憶しており、容量帯に合致するディスクのみをサポート対象としている。例えば、図１７に示すように、ＲＡＩＤ装置は、ディスクの実容量の範囲を示す「容量帯」と、その容量帯の範囲に属する各ディスクを同じ容量として扱うために定義された容量を示す「定義容量」とを対応付けて記憶する。
【０００５】
例えば、図１７に示すように、実容量が１０１０ＧＢのディスクＡ、実容量が１００１ＧＢのディスクＢ、実容量が１１００ＧＢのディスクＣをＲＡＩＤ装置にそれぞれ認識させた場合に、ディスクＡ、Ｂ、Ｃが容量帯「１０００〜１４９９ＧＢ」に属する。そして、容量帯「１０００〜１４９９ＧＢ」に対応する定義容量が「１０００ＧＢ」であるため、ＲＡＩＤ装置では、ディスクＡ、ディスクＢ、ディスクＣを同じ容量「１０００ＧＢ」のディスクとして使用する。このため、図１８に示すように、実容量が１０１０ＧＢのディスクＡに障害が発生した場合には、実容量が微妙に異なる１００１ＧＢのディスクＢを保守部品として使用しても、同じ容量１０００ＧＢのディスクとして扱うので、ディスクＢを保守部品として利用できる。
【０００６】
また、新たな容量帯のディスクがディスクベンダーからリリースされ、ＲＡＩＤ装置に追加された場合に、実容量と定義容量との間に大きな差分ができてしまう場合がある。例えば、図１９に示すように、ＲＡＩＤ装置は、実容量の容量帯「１５００ＧＢ以上」のディスクを定義容量「１５００ＧＢ」として扱うことを記憶している。このようなＲＡＩＤ装置において、ディスクを区分けするための目安である公称容量が２０００ＧＢであって実容量が２０５０ＧＢである新たな容量帯のディスクが追加されると、実容量が２０５０ＧＢのディスクが１５００ＧＢのディスクとして認識されてしまう。
【０００７】
このため、新たな容量帯のディスクを追加する場合に、装置プログラムを改版して新たな定義容量を追加する技術が知られている。例えば、図２０に示すように、ＲＡＩＤ装置では、新たな容量のディスクが追加される場合には、装置プログラムを改版して２０００ＧＢ以上の定義容量および容量帯を追加する。このため、公称容量が２０００ＧＢであって実容量が２０５０ＧＢであるディスクが追加された場合であっても、定義容量２０００ＧＢの新たなディスクとして認識される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平９−２８８５４７号公報
【特許文献２】特開平８−６３２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記した装置プログラムを改版する技術では、どのような容量帯のディスクが追加されるか事前にわからないため、あらかじめ容量帯を決定しておくことができない。このため、新しい容量のディスクが提供されるたびに、新しい容量のディスクに対応する定義容量を追加する装置プログラムを改版するので、新しい容量のディスクを容易に組み込むことができないという課題があった。
【００１０】
また、同じ公称容量帯のディスクであっても、容量帯の境を跨ぐような実容量の違うディスクが組み込まれてしまった場合に、ＲＡＩＤ装置側では一段階容量の少ないディスクとして扱うこととなり、適切でない定義容量が割り当てられてしまうという課題があった。
【００１１】
例えば、図２１に示すように、ＲＡＩＤ装置は、同じ公称容量１０００ＧＢのディスクであっても、実容量が１００５ＧＢのディスクと実容量９９９ＧＢのディスクとでは、異なる定義容量のディスクとして認識されてしまう。このため、ユーザが使用できる容量が少なくなってしまう結果、適切でない定義容量が割り当てられてしまうという課題があった。
【００１２】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、新しい容量のディスクを容易に組み込むとともに、使用できるディスクの定義容量を適切に決定することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、記憶管理装置は、データを記憶する各記憶装置の実容量を用いて、記憶装置の容量の基準となる基準容量をそれぞれ算出し、算出された各記憶装置の基準容量と実容量との差分値をそれぞれ算出する。そして、算出された各記憶装置の差分値のうち、最も値が大きい差分値を検索し、算出された基準容量から前記最大差分値を引いた値に応じて、各記憶装置が実際に使用される容量である定義容量を決定する。
【発明の効果】
【００１４】
開示の記憶管理装置は、新しい容量のディスクを容易に組み込むとともに、使用できるディスクの定義容量を適切に決定することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る記憶管理装置の構成を示すブロック図である。
【図２】図２は、実施例２に係るＲＡＩＤ装置の全体構成を示すブロック図である。
【図３】図３は、実施例２に係るＣＭの構成を示すブロック図である。
【図４】図４は、公称容量区分テーブルの一例を示す図である。
【図５】図５は、区分マージンテーブルの一例を示す図である。
【図６】図６は、ディスク容量対応テーブルの一例を示す図である。
【図７】図７は、公称容量を用いて区分分けする処理を説明する図である。
【図８】図８は、実容量と公称容量との差分値を算出する処理を説明する図である。
【図９】図９は、差分値の最大値を検索する処理を説明する図である。
【図１０】図１０は、差分値における１００ＭＢ単位を切り上げる処理を説明する図である。
【図１１】図１１は、新規公称容量ディスクを追加する処理を説明する図である。
【図１２】図１２は、容量区分マージンを変更する処理を説明する図である。
【図１３】図１３は、実施例２に係るＣＭにおけるディスク容量対応テーブル構築処理の手順を説明するためのフローチャートである。
【図１４】図１４は、実施例２に係るＣＭにおけるディスク容量対応テーブル追加処理の手順を説明するためのフローチャートである。
【図１５】図１５は、実施例２に係るＣＭにおけるディスク容量対応テーブル削除処理の手順を説明するためのフローチャートである。
【図１６】図１６は、ディスクの実容量でディスクを選別した場合について説明する図である。
【図１７】図１７は、容量帯でディスク種別を選別した場合について説明する図である。
【図１８】図１８は、ディスク容量対応テーブルについて説明する図である。
【図１９】図１９は、新たな容量帯のディスクを追加する場合について説明する図である。
【図２０】図２０は、新たな容量帯のディスクを追加する場合について説明する図である。
【図２１】図２１は、容量帯の境を跨ぐ実容量のディスクを追加する場合について説明する図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、この発明に係る記憶管理装置、記憶管理方法および記憶管理プログラムの実施例を詳細に説明する。
【実施例１】
【００１７】
まず最初に、図１を用いて、実施例１に係る記憶管理装置の構成を説明する。図１は、実施例１に係る記憶管理装置の構成を説明するための図である。図１に示すように、実施例１の記憶管理装置１は、基準容量算出部２と、差分算出部３と、最大値検索部４と、定義容量決定部５とを有し、複数の記憶装置６と接続されている。
【００１８】
基準容量算出部２は、データを記憶する各記憶装置６の実容量を用いて、該記憶装置６の容量の基準となる基準容量をそれぞれ算出する。差分算出部３は、基準容量算出部２によって算出された各記憶装置６の基準容量と実容量との差分値をそれぞれ算出する。
【００１９】
最大値検索部４は、差分算出部３によって算出された各記憶装置の差分値のうち、最も値が大きい差分値を検索する。定義容量決定部５は、基準容量算出部２によって算出された基準容量から最大差分値を引いた値に応じて、各記憶装置６が実際に使用される容量である定義容量を決定する。
【００２０】
つまり、実施例１の記憶管理装置１は、各記憶装置６の実容量から基準となる基準容量をそれぞれ算出し、基準容量からマージン値である最大差分値を引いた値から定義容量を決定する。このため、実施例１の記憶管理装置１は、新しい容量のディスクを組み込む場合であっても、装置プログラムを改版することなく、新しい容量のディスクを容易に組み込むことが可能である。また、実施例１の記憶管理装置１は、基準容量からマージン値を引いた値から定義容量を決定しているので、実容量が公称容量よりも小さい場合であっても容量帯の境を跨がないように、使用できるディスクの定義容量を適切に決定することが可能である。
【実施例２】
【００２１】
以下の実施例２では、実施例２に係るＲＡＩＤ装置の構成、ＣＭの構成およびＣＭの処理の流れを順に説明し、最後に実施例２による効果を説明する。
【００２２】
［ＲＡＩＤ装置の構成］
次に、図２を用いて、ＲＡＩＤ装置１００の構成を説明する。図２は、実施例２に係るＲＡＩＤ装置の全体構成を示すブロック図である。図２に示すように、このＲＡＩＤ装置１００は、複数のＣＭ（Controller  Module）１０、複数のディスク２０を有し、上位装置であるホスト３０と接続される。このＲＡＩＤ装置１００は、上位装置であるホスト３０からの要求に応じて、ディスク２０に記憶されている各種ユーザデータやプログラムのやり取りを行う。
【００２３】
ＣＭ１０は、ＣＰＵ(Central  Processing  Unit)１１、ＤＩＭＭ（Dual  Inline  Memory  Module）１２、ＥＸＰ（expander）１３、Ｆｌａｓｈ  Ｍｅｍｏｒｙ１４を有する。また、ＣＰＵ１１は、ＰＣＩ−Ｅｘｐｒｅｓｓ規格に準拠した拡張機能カードを介して他のＣＭのＣＰＵと接続され、ＤＤＲ（Double  Data  Rate）２−５５３規格に準拠した回路、伝送路またはインタフェース等を介してＤＩＭＭ１２と接続される。また、ＣＰＵ１１は、ＰＢＩ（Parallel  Bus  Interface）に準拠したインタフェースを介してＦｌａｓｈ  Ｍｅｍｏｒｙ１４と接続され、ＳＡＳ（Serial  Attached  SCSI）に準拠したインタフェースを介してＥＸＰ１３と接続される。
【００２４】
ＣＰＵ１１は、上位装置であるホスト３０からの要求を受け付け、ディスク２０に対する読み書き処理を制御する。ＤＩＭＭ１２は、ＣＰＵ１１が処理に必要なデータを格納するが、特に、後に詳述するディスク容量対応テーブル（図６参照）を格納する。
【００２５】
ＥＸＰ１３は、ＣＰＵ１１とディスク２０との間で送受信されるデータを中継する。Ｆｌａｓｈ  Ｍｅｍｏｒｙ１４は、給電されなくても保持されたデータを失わない不揮発性メモリであり、ディスク管理機能を発揮するディスク管理プログラムが記憶されている。ＣＰＵ１１がＦｌａｓｈ  Ｍｅｍｏｒｙ１４からＤＩＭＭ１２にプログラムを読み出して実行することにより、プロセスが起動される。なお、ＣＭ１０の詳しい構成および処理については、後に図３を用いて詳述する。
【００２６】
［ＣＭの構成］
次に、図３を用いて、ＣＭ１０の構成を説明する。図３は、実施例２に係るＣＭの構成を示すブロック図である。図２に示すように、このＲＡＩＤ装置１００は、ＣＭ１０、ＣＰＵ１１、ＤＩＭＭ１２、ＥＸＰ１３を有し、ＥＸＰ１３を介してディスク２０と接続される。以下にこれらの各部の処理を説明する。
【００２７】
ＥＸＰ１３は、接続されるディスク２０との間でやり取りする各種情報に関する通信を制御する。例えば、ＥＸＰ１３は、Ｒｅａｄ  Ｃａｐａｃｉｔｙコマンドを各ディスク２０に送信し、各ディスク２０から実容量の値を受信する。
【００２８】
ＤＩＭＭ１２は、ＣＰＵ１１による各種処理に必要なデータを格納し、公称容量区分テーブル１２ａ、区分マージンテーブル１２ｂ、ディスク容量対応テーブル１２ｃを有する。
【００２９】
公称容量区分テーブル１２ａは、区分ごとに所定の公称容量の範囲を記憶する。具体的には、公称容量区分テーブル１２ａは、図４に例示するように、区分「１」〜「３」の３つの区分それぞれに対応付けて公称容量の範囲を記憶する。公称容量区分テーブル１２ａは、後述する公称容量区分部１１ｂによって参照され、各ディスク２０が区分けされる（後に図７を用いて詳述する）。図４の例を用いて説明すると、公称容量区分テーブル１２ａでは、公称容量「１００ＧＢ未満」のディスク２０が区分「１」に区分けされ、公称容量「１００ＧＢ以上  １０００ＧＢ未満」のディスク２０が区分「２」に区分けされ、公称容量「１０００ＧＢ以上」のディスク２０が区分「３」に区分けされるようにテーブルが記憶されている。
【００３０】
区分マージンテーブル１２ｂは、区分ごとにマージン値を記憶する。具体的には、区分マージンテーブル１２ｂは、図５に例示するように、区分「１」〜「３」の３つの区分それぞれに対応付けてマージン値を記憶する。区分マージンテーブル１２ｂは、図５の例を用いて説明すると、区分マージンテーブル１２ｂは、区分「１」のマージン値が「１ＧＢ」であり、区分「２」のマージン値が「２ＧＢ」であり、区分「３」のマージン値が「１ＧＢ」である。なお、マージン値の算出方法については、後述する差分算出部１１ｃおよび最大値検索部１１ｄの処理の説明で詳述する。
【００３１】
ディスク容量対応テーブル１２ｃは、ディスク２０が公称する公称容量ごとに、容量の範囲を示す容量帯と公称容量からマージン値を引いた値である定義容量とを記憶する。具体的には、ディスク容量対応テーブル１２ｃは、図６に例示するように、公称容量と容量帯と定義容量とを対応付けて記憶する。図６の例を用いて説明すると、例えば、ディスク容量対応テーブル１２ｃでは、実容量が「７２ＧＢ〜２９７ＧＢ」であるディスク２０を公称容量「７３ＧＢ」のディスク２０とし、定義容量を７２ＧＢとする。なお、ディスク容量対応テーブル１２ｃの構築処理、更新処理、削除処理については、後述する定義容量算出部１１ｅ、削除部１１ｆの処理の説明で詳述する。
【００３２】
ＣＰＵ１１は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行し、公称容量算出部１１ａ、公称容量区分部１１ｂ、差分算出部１１ｃ、最大値検索部１１ｄ、定義容量算出部１１ｅ、削除部１１ｆとして機能する。
【００３３】
公称容量算出部１１ａは、各ディスク２０の公称容量を算出する。具体的には、公称容量算出部１１ａは、各ディスク２０にＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを発行し、各ディスク２０の実容量を受信する。そして、公称容量算出部１１ａは、各ディスク２０について、受信した実容量が１００ＧＢ以上であるか否か判定する。この結果、公称容量算出部１１ａは、実容量が１００ＧＢ未満である場合には、実容量の１００ＭＢの単位を桁上げする。例えば、公称容量算出部１１ａは、実容量が「７２．５ＧＢ」である場合には、１００ＭＢの単位を桁上げして公称容量を「７３ＧＢ」とする。
【００３４】
また、公称容量算出部１１ａは、実容量が１００ＧＢ以上である場合には、実容量の１ＧＢの単位を桁上げし、５０ＧＢ単位で四捨五入する丸め処理が行われる。例えば、公称容量算出部１１ａは、実容量が「２９９．５ＧＢ」である場合には、実容量の１ＧＢの単位を桁上げし、５０ＧＢ単位で四捨五入する丸め処理を行って、公称容量を「３００ＧＢ」とする。また、公称容量算出部１１ａは、実容量が「７５１ＧＢ」である場合には、実容量の１ＧＢの単位を桁上げして「７６０ＧＢ」とし、５０ＧＢ単位で四捨五入する丸め処理を行って、公称容量を「７５０ＧＢ」とする。その後、公称容量算出部１１ａは、各ディスク２０の公称容量を公称容量区分部１１ｂに通知する。
【００３５】
公称容量区分部１１ｂは、各ディスク２０の公称容量を用いて、各ディスク２０を区分分けする。具体的には、公称容量区分部１１ｂは、公称容量算出部１１ａから各ディスク２０の公称容量を受信すると、公称容量区分テーブル１２ａを参照して各ディスク２０を区分分けする。例えば、公称容量区分部１１ｂは、公称容量区分テーブル１２ａを参照して、公称容量「１００ＧＢ未満」のディスク２０が区分「１」に区分けし、公称容量「１００ＧＢ以上  １０００ＧＢ未満」のディスク２０が区分「２」に区分けし、公称容量「１０００ＧＢ以上」のディスク２０が区分「３」に区分けする。
【００３６】
ここで、図７の例を用いて、公称容量を用いて各ディスク２０を区分分けする処理を説明する。図７は、公称容量を用いて区分分けする処理を説明する図である。図７に示すように、公称容量区分部１１ｂは、公称容量が「７３ＧＢ」のディスク２０について、公称容量「１００ＧＢ未満」であり、区分「１」に区分けする。また、公称容量区分部１１ｂは、公称容量が「３００ＧＢ」、「５００ＧＢ」、「７５０ＧＢ」のディスク２０について、公称容量が「１００ＧＢ以上  １０００ＧＢ未満」であり、区分「２」に区分けする。
【００３７】
また、公称容量区分部１１ｂは、公称容量が「１０００ＧＢ」、「２０００ＧＢ」のディスク２０について、公称容量が「１０００ＧＢ以上」であり、区分「３」に区分けする。その後、公称容量区分部１１ｂは、区分けした結果を差分算出部１１ｃに通知する。
【００３８】
差分算出部１１ｃは、各区分内でディスク２０の実容量から公称容量を引いた差分値を算出する。具体的には、差分算出部１１ｃは、公称容量区分部１１ｂから区分けした結果を受信すると、各区分内でディスク２０の実容量から公称容量を引いた差分値を算出する。
【００３９】
ここで、図８の例を用いて、実容量と公称容量との差分値を算出する処理を説明する。図８は、実容量と公称容量との差分値を算出する処理を説明する図である。例えば、図８に示すように、差分算出部１１ｃは、区分１において、公称容量「７３ＧＢ」から実容量「７２．５ＧＢ」を引いた値である差分「０．５ＧＢ」を算出する。また、区分１において、公称容量「５００ＧＢ」から実容量「４９８．３ＧＢ」を引いた値である差分「１．７ＧＢ」を算出する。なお、実容量が公称容量より大きい場合には、差分「０」としてカウントする。その後、差分算出部１１ｃは、算出した差分値を最大値検索部１１ｄに通知する。
【００４０】
最大値検索部１１ｄは、各区分内で最も大きい差分値を検索する。具体的には、最大値検索部１１ｄは、差分算出部１１ｃから差分値を受信すると、各区分内で最も大きい差分値を検索する。ここで、図９の例を用いて、差分値の最大値を検索する処理を説明する。図９は、差分値の最大値を検索する処理を説明する図である。図９に示すように、最大値検索部１１ｄは、区分「１」において、差分値が「０．５ＧＢ」一つしかないので、差分値「０．５ＧＢ」を選択する。
【００４１】
また、最大値検索部１１ｄは、区分「２」において、差分値「０．５ＧＢ」、「１．７ＧＢ」、「０ＧＢ」を比較し、一番大きい差分値「１．７ＧＢ」を選択する。また、最大値検索部１１ｄは、区分「３」において、差分値「０．９ＧＢ」、「０ＧＢ」を比較し、一番大きい差分値「０．９ＧＢ」を選択する。
【００４２】
続いて、最大値検索部１１ｄは、一番大きな値となった差分値の１００ＭＢ単位を切り上げる処理を行い、各区分のマージン値として区分マージンテーブル１２ｂに記憶させる。例えば、図１０に例示するように、区分「１」の最大差分値「０．５ＧＢ」を「１ＧＢ」とし、区分「２」の最大差分値「１．７ＧＢ」を「２ＧＢ」とし、区分「３」の最大差分値「０．９ＧＢ」を「１ＧＢ」とし、各区分のマージン値として区分マージンテーブル１２ｂに記憶させる。図１０は、差分値における１００ＭＢ単位を切り上げる処理を説明する図である。
【００４３】
定義容量算出部１１ｅは、各区分のマージン値および各ディスク２０の公称容量を用いて、ディスク定義容量を算出する。具体的には、定義容量算出部１１ｅは、ディスク２０の公称容量からディスク２０の区分のマージン値を引いた値を、そのディスク２０の定義容量として定義する。例えば、定義容量算出部１１ｅは、図１０の例を用いて説明すると、ディスク２０の公称容量「７３ＧＢ」からディスク２０の区分のマージン値「１ＧＢ」を引いた値である「７２ＧＢ」を定義容量として、ディスク容量対応テーブル１２ｃに記憶させる。
【００４４】
また、定義容量算出部１１ｅは、図１０の例を用いて説明すると、ディスク２０の公称容量「３００ＧＢ」からディスク２０の区分のマージン値「２ＧＢ」を引いた値である「２９８ＧＢ」を定義容量として、ディスク容量対応テーブル１２ｃに記憶させる。このような算出処理を全てのディスク２０について行って、ディスク容量対応テーブル１２ｃに記憶させる。
【００４５】
また、定義容量算出部１１ｅは、定義容量を用いて、各ディスク２０に対応する容量帯を決定し、ディスク容量対応テーブル１２ｃに記憶させる。ＲＡＩＤ装置１００では、同じ容量帯のディスク２０であれば、多少の容量の違いであっても、同じ定義容量として扱う。図６の例を用いて説明すると、例えば、定義容量算出部１１ｅは、各ディスク２０の定義容量が７２ＧＢ、２９８ＧＢ、４９８ＧＢである場合には、各ディスク２０の容量帯を「７２ＧＢ〜２９７ＧＢ」、「２９８ＧＢ〜４９７ＧＢ」、「４９８ＧＢ〜７４７ＧＢ」として、ディスク容量対応テーブル１２ｃに記憶させる。
【００４６】
ここで、図１１を用いて、新規公称容量ディスクを追加する処理を説明する。図１１は、新規公称容量ディスクを追加する処理を説明する図である。ＣＭ１０は、新しい公称容量のディスク（図１１の例では、公称容量４００ＧＢのディスク）が追加されると、公称容量から実容量の差分を計算する。図１１の例では、公称容量４００ＧＢから実容量３９９ＧＢの差分「１ＧＢ」を計算する。
【００４７】
そして、ＣＭ１０は、計算されたマージンと区分マージンテーブル１２ｂに記憶された既存のマージンとを比較して、計算されたマージンが既存マージンより大きいか判定する。この結果、計算されたマージンが既存マージンより小さい場合には、区分マージンテーブル１２ｂを更新せず、定義容量を計算し、ディスク容量対応テーブル１２ｃに新たな公称容量に対応する定義容量および容量帯を追加する。
【００４８】
続いて、図１２を用いて、容量区分マージンを変更する処理を説明する。図１２は、容量区分マージンを変更する処理を説明する図である。図１２に示すように、ＣＭ１０は、既存の公称容量であるＤＩＳＫ（図１１の例では、公称容量４００ＧＢのディスク）が新しく搭載されると、公称容量から実容量の差分を計算する。図１２の例では、公称容量４００ＧＢから実容量３９７ＧＢの差分「３ＧＢ」を計算する。
【００４９】
そして、ＣＭ１０は、計算されたマージンと区分マージンテーブル１２ｂに記憶された既存のマージンとを比較して、計算されたマージンが既存マージンより大きいか判定する。この結果、計算されたマージンが既存マージンより大きい場合には、区分マージンテーブル１２ｂを更新する。図１２の例では、計算されたマージン「３ＧＢ」が既存のマージン「２ＧＢ」よりも大きいと判定し、区分「２」のマージンを「３ＧＢ」に更新する。
【００５０】
そして、ＣＭ１０は、マージン値が更新されたので、更新されたマージン値を用いて、ディスク容量対応テーブル１２ｃの定義容量および容量帯を更新する。なお、計算されたマージンが既存のマージンよりも大きいと判定した場合であっても、マージンが所定の閾値より大きい場合には、追加されたディスクが不良品であるものと判定して、マージン値を更新しないようにしてもよい。
【００５１】
削除部１１ｆは、ディスク２０が削除された場合に、削除されたディスクに対応する情報をディスク容量対応テーブル１２ｃから削除する。具体的には、削除部１１ｆは、ディスク２０が削除されると、ディスク容量対応テーブル１２ｃから登録されている公称容量のディスク２０がＲＡＩＤ装置１００に存在するか検索する。
【００５２】
この検索の結果、削除部１１ｆは、ＲＡＩＤ装置１００内にディスク容量対応テーブル１２ｃ内の公称容量のディスク２０がないと判定された場合には、ディスク容量対応テーブル１２ｃからＲＡＩＤ装置１００内に無い公称容量ディスクの情報を削除する。
【００５３】
［ＣＭによる処理］
次に、図１３〜１５を用いて、実施例２に係るＣＭ１０による処理を説明する。図１３は、実施例２に係るＣＭにおけるディスク容量対応テーブル構築処理の手順を説明するためのフローチャートである。図１４は、実施例２に係るＣＭにおけるディスク容量対応テーブル追加処理の手順を説明するためのフローチャートである。図１５は、実施例２に係るＣＭにおけるディスク容量対応テーブル削除処理の手順を説明するためのフローチャートである。
【００５４】
図１３に示すように、ＣＭ１０は、ＲＡＩＤ装置１００に搭載されているディスク２０を検索し（ステップＳ１０１）、全ディスク検索済みであるか判定する（ステップＳ１０２）。この結果、ＣＭ１０は、全ディスク検索済みでないと判定した場合には（ステップＳ１０２否定）、ディスク実容量から公称容量を求める（ステップＳ１０３）。
【００５５】
そして、ＣＭ１０は、公称容量から区分分けを行い（ステップＳ１０４）、ディスク２０の公称容量とディスク２０の実容量との差分を求める（ステップＳ１０５）。続いて、ＣＭ１０は、区分内での最大マージン値を求め（ステップＳ１０６）、公称容量からマージン値を引いた値を定義容量として、ディスク容量対応テーブル１２ｃに公称容量および容量帯とともに登録し（ステップＳ１０７）、Ｓ１０１に戻る。また、Ｓ１０２の処理において、全ディスクが検索済みである場合には（ステップＳ１０２肯定）、処理を終了する。
【００５６】
次に、図１４を用いて、ディスク容量対応テーブル追加処理について説明する。図１４に示すように、ＣＭ１０は、ＲＡＩＤ装置１００にディスク２０が新しく追加されると（ステップＳ２０１）、ディスク実容量から公称容量を求める（ステップＳ２０２）。そして、ＣＭ１０は、求められた公称容量がディスク容量対応テーブル１２ｃに追加済みであるか判定する（ステップＳ２０３）。
【００５７】
この結果、ＣＭ１０は、公称容量がディスク容量対応テーブル１２ｃに追加済みでないと判定した場合には（ステップＳ２０３否定）、公称容量から区分分けを行い（ステップＳ２０４）、ディスク２０の公称容量とディスク２０の実容量との差分を求める（ステップＳ２０５）。続いて、ＣＭ１０は、区分内での最大マージン値を求め（ステップＳ２０６）、公称容量からマージン値を引いた値を定義容量として、ディスク容量対応テーブル１２ｃに公称容量および容量帯とともに登録する（ステップＳ２０７）。
【００５８】
また、ＣＭ１０は、Ｓ２０３の処理において、求められた公称容量がディスク容量対応テーブル１２ｃに追加済みであると判定した場合には（ステップＳ２０３肯定）、公称容量と実容量との差分を求める（ステップＳ２０８）。そして、ＣＭ１０は、求められた差分が容量区分内のマージン値より大きいか判定し（ステップＳ２０９）、求められた差分が容量区分内のマージン値より大きくない場合には（ステップＳ２０９否定）、処理を終了する。
【００５９】
また、ＣＭ１０は、求められた差分が容量区分内のマージン値より大きい場合には（ステップＳ２０９肯定）、容量区分のマージン値を更新する（ステップＳ２１０）。そして、ＣＭ１０は、ディスク容量対応テーブル１２ｃ内の該当する公称容量の定義容量および容量帯を新しいマージン値で計算し直す（ステップＳ２１１）。その後、ＣＭ１０は、ディスク容量対応テーブル１２ｃを更新して（ステップＳ２１２）、処理を終了する。
【００６０】
次に、図１５を用いて、ディスク容量対応テーブル削除処理について説明する。図１５に示すように、ＣＭ１０は、ディスク２０が削除されると（ステップＳ３０１肯定）、ディスク容量対応テーブル１２ｃから登録されている公称容量のディスク２０がＲＡＩＤ装置１００に存在するか検索する（ステップＳ３０２）。
【００６１】
この検索の結果、ＣＭ１０は、ＲＡＩＤ装置１００内にディスク容量対応テーブル１２ｃ内の公称容量のディスク２０がないと判定された場合には（ステップＳ３０３肯定）、ディスク容量対応テーブル１２ｃからＲＡＩＤ装置１００内に無い公称容量のディスク２０の情報を削除する（ステップＳ３０４）。また、ＣＭ１０は、ＲＡＩＤ装置１００内にディスク容量対応テーブル１２ｃ内の公称容量のディスク２０があると判定された場合には（ステップＳ３０３否定）、そのまま処理を終了する。
【００６２】
[実施例２の効果]
上述してきたように、ＣＭ１０は、データを記憶する各ディスク２０の実容量を用いて、該ディスク２０の容量の基準となる公称容量をそれぞれ算出し、算出された各ディスク２０の公称容量と実容量との差分値をそれぞれ算出する。そして、ＣＭ１０は、算出された各ディスク２０の差分値のうち、最も値が大きい最大差分値を検索し、公称容量から最大差分値を引いた値に応じて、各ディスク２が実際に使用される容量である定義容量を決定する。このため、ＣＭ１０は、新しい容量のディスクの定義容量を自動的に定義するので、新しい容量のディスク２０を組み込む場合であっても、装置プログラムを改版することなく、新しい容量のディスクを容易に組み込むことが可能である。また、実施例１の記憶管理装置１は、基準容量からマージン値を引いた値から定義容量を決定しているので、実容量が公称容量よりも小さい場合であっても容量帯の境を跨がないように、ディスクの定義容量を適切に決定することが可能である。
【００６３】
また、実施例２によれば、ＣＭ１０は、算出された各ディスク２０の公称容量に応じて、各ディスク２０を所定の区分に分け、区分けされた各区分内で各ディスク２０の差分値のうち、最も値が大きい最大差分値を検索する。このため、同一区分に分けられたディスクは、公称容量がある程度同じである結果、より最適な最大差分値をマージン値として利用することができ、ディスクの定義容量を適切に決定することが可能である。
【００６４】
また、実施例２によれば、ＣＭ１０は、公称容量ごとに、ディスクの公称容量と、ディスクの実容量の範囲を示す容量帯とを記憶するディスク容量対応テーブル１２ｃを記憶する。このため、新しい容量のディスク２０の管理を容易にすることが可能である。
【００６５】
また、実施例２によれば、ＣＭ１０は、ディスク２０が新たに追加された場合には、該ディスク２０の公称容量と実容量との差分値を算出する。そして、ＣＭ１０、算出された差分値と既存の最大差分値とを比較し、算出された差分値と既存の最大差分値との比較の結果、算出された差分値の方が大きい場合には、該差分値を最大差分値とする。このため、新しくディスクが追加された場合であっても、より最適な最大差分値を取得し、マージン値として利用することができる結果、ディスクの定義容量を適切に決定することが可能である。
【００６６】
また、実施例２によれば、ＣＭ１０は、ディスク２０が削除された場合に、削除されたディスクに対応する情報をディスク容量対応テーブル１２ｃから削除する。このため、ＲＡＩＤ装置１００内に存在しなくなった公称容量ディスクの情報を削除することが可能である。
【実施例３】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【００６８】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、公称容量算出部１１ａと公称容量区分部１１ｂを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６９】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７０】
（２）プログラム
なお、本実施例で説明した記憶管理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００７１】
１  記憶管理装置
２  基準容量算出部
３  差分算出部
４  最大値検索部
５  定義容量決定部
６  記憶装置
１０  ＣＭ
１１  ＣＰＵ
１１ａ  公称容量算出部
１１ｂ  公称容量区分部
１１ｃ  差分算出部
１１ｄ  最大値検索部
１１ｅ  定義容量算出部
１１ｆ  削除部
１２  ＤＩＭＭ
１２ａ  公称容量区分テーブル
１２ｂ  区分マージンテーブル
１２ｃ  ディスク容量対応テーブル
１３  ＥＸＰ
１４  Ｆｌａｓｈ  Ｍｅｍｏｒｙ
２０  ディスク
１００  ＲＡＩＤ装置
２００  ホスト
【図１】
0005423407.tif 000002
【図２】
0005423407.tif 000003
【図３】
0005423407.tif 000004
【図４】
0005423407.tif 000005
【図５】
0005423407.tif 000006
【図６】
0005423407.tif 000007
【図７】
0005423407.tif 000008
【図８】
0005423407.tif 000009
【図９】
0005423407.tif 000010
【図１０】
0005423407.tif 000011
【図１１】
0005423407.tif 000012
【図１２】
0005423407.tif 000013
【図１３】
0005423407.tif 000014
【図１４】
0005423407.tif 000015
【図１５】
0005423407.tif 000016
【図１６】
0005423407.tif 000017
【図１７】
0005423407.tif 000018
【図１８】
0005423407.tif 000019
【図１９】
0005423407.tif 000020
【図２０】
0005423407.tif 000021
【図２１】
0005423407.tif 000022