(57)【特許請求の範囲】
【請求項１】
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置であって、
前記各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルと、
前記各ディスクアレイの予め設定された構成情報を、当該各ディスクアレイにアクセスすることにより取得する構成情報取得手段と、
前記取得した構成情報に基づいて前記各ディスクアレイの前記入出力サイズを算出する入出力サイズ算出手段と、
前記算出した前記入出力サイズを、前記ディスクアレイ毎に前記入出力データテーブルに記憶する入出力データ記憶手段と、
前記各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、
前記ファイル特定情報に基づいて当該ファイルが記憶される前記ディスクアレイを特定するディスクアレイ特定手段と、
前記特定されたディスクアレイの前記入出力サイズを前記入出力データテーブルから取得すると共に、当該取得した入出力サイズを前記ファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、
を備えたことを特徴とするファイルシステム制御装置。
【請求項２】
前記ＲＡＩＤ構成されたディスクアレイは、ハードウェアあるいはソフトウェアにてＲＡＩＤ構成されている、
ことを特徴とする請求項１記載のファイルシステム制御装置。
【請求項３】
前記構成情報取得手段は、前記各ディスクアレイのストライピングサイズとストライピング数とを前記構成情報として取得し、
前記入出力サイズ算出手段は、前記ストライピングサイズと前記ストライピング数との積を整数倍した値を、前記入出力サイズとして算出する、
ことを特徴とする請求項１又は２記載のファイルシステム制御装置。
【請求項４】
前記入出力サイズ算出手段は、前記ストライピングサイズと前記ストライピング数との積の値を、前記入出力サイズとして設定する、
ことを特徴とする請求項３記載のファイルシステム制御装置。
【請求項５】
前記入出力データテーブルは、前記各ディスクアレイに対して同時に入出力できる入出力データ数を表す予め設定された並列度情報を記憶しており、
前記入出力データ取得手段は、前記ディスクアレイ特定手段にて特定されたディスクアレイの前記入出力サイズ及び前記並列度情報を前記入出力データテーブルから取得すると共に、当該取得した入出力サイズ及び並列度情報を前記ファイル特定情報を受け付けたアプリケーションに通知する、
ことを特徴とする請求項１，２，３又は４記載のファイルシステム制御装置。
【請求項６】
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置に、
前記各ディスクアレイの予め設定された構成情報を、当該各ディスクアレイにアクセスすることにより取得する構成情報取得手段と、
前記取得した構成情報に基づいて前記各ディスクアレイに対するデータの入出力サイズを算出する入出力サイズ算出手段と、
前記各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルに、前記算出した前記入出力サイズを、前記ディスクアレイ毎に記憶する入出力データ記憶手段と、
前記各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、
前記ファイル特定情報に基づいて当該ファイルが記憶される前記ディスクアレイを特定するディスクアレイ特定手段と、
前記入出力データテーブルから前記特定されたディスクアレイの前記入出力サイズを取得すると共に、当該取得した入出力サイズを前記ファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、
を実現させるためのプログラム。
【請求項７】
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御方法であって、
前記各ディスクアレイの予め設定された構成情報を、当該各ディスクアレイにアクセスすることにより取得する構成情報取得工程と、
前記取得した構成情報に基づいて前記各ディスクアレイに対するデータの入出力サイズを算出する入出力サイズ算出工程と、
前記各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルに、前記算出した前記入出力サイズを、前記ディスクアレイ毎に記憶する入出力データ記憶工程と、
前記各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付工程と、
前記ファイル特定情報に基づいて当該ファイルが記憶される前記ディスクアレイを特定するディスクアレイ特定工程と、
前記入出力データテーブルから前記特定されたディスクアレイの前記入出力サイズを取得すると共に、当該取得した入出力サイズを前記ファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得工程と、
を有することを特徴とするファイルシステム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステム制御装置にかかり、特に、複数のディスク装置にデータを分散して記憶するファイルシステムに対する入出力を制御するファイルシステム制御装置に関する。
【背景技術】
【０００２】
ＨＰＣ（High Performance Computing）におけるアプリケーションの入出力では、一回の計算で大量のデータを扱うため、データの一回の入出力サイズが大きくなることと、大量の入出力が行われるといった特徴がある。また、大量のデータの入出力を行うと、ファイルシステムの持つキャッシュ機能の動作がオーバーヘッドとなり、入出力性能の低下を招くため、ファイルシステムのキャッシュを使用しない入出力が行われるといった特徴がある。なお、特許文献１は、参考技術として、キャッシュメモリが存在することを前提としたディスクアレイ装置が開示している。
【０００３】
以上のように、ＨＰＣにおいては、大量の入出力が行われるため、アプリケーションの実行時間は入出力の性能に大きく左右されることになり、入出力性能の向上が大きな課題となっている。このため、データを一つのディスク装置に出力するのではなく、ソフトウェアＲＡＩＤや、ＵＮＩＸ（登録商標）またはＬｉｎｕｘシステムのＬＶＭ（Logical Volume Manager）などを使用して複数のディスク装置をストライピングすることにより、データの入出力を複数のディスク装置に分散し、性能を向上させることが行われている。
【０００４】
このとき、アプリケーションからファイルシステムへのデータの入出力を行う際に、ディスク装置の構成に合わせた入出力サイズで入出力を行うことにより、性能を向上させることができる。
【０００５】
一方で、近年では、ユーザデータ量の増大に伴い、大容量の単一ファイルシステムへの要求が高まっている。これを実現するために、種類の異なるディスク装置や、複数のディスク装置をストライピングしたソフトウェアＲＡＩＤをリニアに結合（コンカチネート）し、単一のファイルシステムを構成することが行われるようになった。
【０００６】
また、ファイルシステム容量の動的拡張のため、構成済みのファイルシステムに対して種類の異なるディスク装置や、構成の異なるソフトウェアＲＡＩＤを追加することも行われるようになった。特に、近年では、初期投資を抑えるためにスモールスタートによるストレージの運用が行われるようになっている。この場合、必要なときに必要なだけディスク装置をファイルシステムに追加するため、既設のディスク装置と同種のディスク装置が追加できるとは限らず、既に構成されているソフトウェアＲＡＩＤと同じ構成が組めるとは限らない。
【０００７】
この例として、図２に示すように、ディスク装置１０１からディスク装置１０８の８台をストライピングしたソフトウェアＲＡＩＤ１００と、ディスク装置１１１からディスク装置１１５の５台をストライピングしたソフトウェアＲＡＩＤ１１０と、ディスク装置１２１からディスク装置１２７の７台をストライピングしたソフトウェアＲＡＩＤ１２０をリニアに結合し、この上に単一のファイルシステム１０を構成されている場合を考える。このとき、図３を参照すると、ファイルシステム１０に存在するファイル１１からファイル１３のデータは、ソフトウェアＲＡＩＤ１００またはソフトウェアＲＡＩＤ１１０のどちらかに保存されている。ソフトウェアＲＡＩＤ１００およびソフトウェアＲＡＩＤ１１０はストライピング数が異なっているため、前述のようにそれぞれの最適な入出力サイズも異なる。
【０００８】
そして、アプリケーションからファイルシステムの最適なデータの入出力サイズを取得する方法の例として、ＵＮＩＸ（登録商標）やＬｉｎｕｘシステムでは、ファイルシステムに対するstatfsシステムコールや、ファイルに対するstatシステムコールが存在している。これらのシステムコールが実行されると、ファイルシステムはアプリケーションに対して、一回の入出力を行う場合の最適な入出力サイズを返却する。
【０００９】
そして、ファイルシステムが一つのソフトウェアＲＡＩＤで構成されている場合、ファイルシステムはこのソフトウェアＲＡＩＤに対する最適な入出力サイズをstatfsシステムコールやstatシステムコールでアプリケーションに返却すれば良い。しかし、前述のように異なる種類のディスク装置や、構成の異なるソフトウェアＲＡＩＤをリニアに結合し、単一のファイルシステムを構成している場合、ディスク装置毎やソフトウェアＲＡＩＤ毎によって最適な入出力サイズが異なるため、従来のstatやstatfsシステムコールでは最適な入出力サイズを取得することができない。そのため、既存のファイルシステムは、別々のソフトウェアＲＡＩＤにデータが保存されているファイルに対するstatシステムコールであっても、ファイルシステムごとに一つの入出力サイズをアプリケーションに返却していた。
【００１０】
【特許文献１】特開２００４−３２６７５９号公報
【特許文献２】特開平１１−１５４０５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以上のように、単一のファイルシステムが、特性の異なる複数のディスク装置や、複数の構成の異なるソフトウェアＲＡＩＤから構成されている場合に、各ディスク装置やソフトウェアＲＡＩＤに対する最適な入出力サイズを特定できない。従って、アプリケーションから最適な設定におけるデータの入出力を行うことができず、データ入出力処理の高速化を図ることができない、という問題があった。一方で、特許文献２では、ディスクアクセスの傾向に応じて、ディスクアクセスの効率化を図るべく、論理ディスクを再構成するという技術を開示している。しかし、かかる場合であっても、当該論理ディスクを再構成する処理に時間がかかり、既に記憶されているデータのアクセスについては処理の高速化を図ることができない。
【００１２】
このため、本発明では、上述した課題である、データ入出力の高速化を図る、ことにある。
【課題を解決するための手段】
【００１３】
そこで、本発明の一形態であるファイルシステム制御装置は、
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置であって、
予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルと、
各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、
ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定手段と、
特定されたディスクアレイの入出力サイズを入出力データテーブルから取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、
を備えた、という構成を採る。
【００１４】
また、本発明の他の形態であるプログラムは、
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置に、
各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、
ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定手段と、
予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルから、特定されたディスクアレイの入出力サイズを取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、
を実現させる、という構成を採る。
【００１５】
さらに、本発明の他の形態であるファイルシステム制御方法は、
ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御方法であって、
各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付工程と、
ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定工程と、
予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルから、特定されたディスクアレイの入出力サイズを取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得工程と、
を有する、という構成を採る。
【発明の効果】
【００１６】
本発明は、以上のように構成されることにより、ディスクアレイに対するデータの入出力を、当該ディスクアレイ毎に適した入出力サイズにて実行することができ、データ入出力の高速化を図ることができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００１７】
本発明は、ハードウェアＲＡＩＤあるいはソフトウェアＲＡＩＤが複数形成された単一のファイルシステムを備えたディスク装置に対して、データの入出力を行うホストコンピュータに装備されたファイルシステム制御装置に関するものである。そして、このようなファイルシステムでは、ディスク数が異なることによって、ＲＡＩＤの単位毎に最適な入出力サイズが異なる。従って、このような場合であっても、入出力を行うアプリケーションが、最適な入出力サイズを取得することが可能となる機能を提供する点に特徴を有する。
【００１８】
そして、本発明の一形態であるファイルシステム制御装置は、ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置であって、予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルと、各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定手段と、特定されたディスクアレイの入出力サイズを前記入出力データテーブルから取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、を備えた、という構成を採る。
【００１９】
また、上記構成に加え、上記各ディスクアレイの予め設定された構成情報を取得する構成情報取得手段と、取得した構成情報に基づいて各ディスクアレイの入出力サイズを算出する入出力サイズ算出手段と、算出した入出力サイズを、各ディスクアレイ毎に入出力データテーブルに記憶する入出力データ記憶手段と、を備えた、という構成を採る。
【００２０】
また、上記構成情報取得手段は、各ディスクアレイのストライピングサイズとストライピング数とを構成情報として取得し、入出力サイズ算出手段は、ストライピングサイズとストライピング数との積、あるいは、それを整数倍した値を、入出力サイズとして算出する。
【００２１】
上記発明によると、まず、ファイルシステム制御装置は、ファイルシステム内にＲＡＩＤ構成されたディスクアレイの構成情報を取得する。そして、取得した構成情報に基づいて、ディスクアレイに対するデータの入出力サイズを算出して、各ディスクアレイ毎に記憶しておく。あるいは、上記各ディスクアレイごとの入出力サイズが、予め入出力データテーブルに設定されて記憶されている。
【００２２】
そして、ファイルシステム制御装置は、アプリケーションからファイル特定情報を受けると、そのファイルが格納されるディスクアレイを特定し、上述したように記憶されている当該ディスクアレイの入出力サイズを取得して、アプリケーションに通知する。アプリケーションは、この通知された入出力サイズにて、ディスクアレイに対してデータの入出力処理を実行する。
【００２３】
これにより、ディスクアレイに対するデータの入出力を、当該ディスクアレイ毎に適した入出力サイズにて実行することができる。従って、データ入出力の高速化を図ることができる。このとき、例えば、各ディスクアレイのストライピングサイズとストライピング数との積を入出力サイズとして設定することで、より最適な入出力サイズを設定することができ、更なるデータ入出力の高速化を図ることができる。
【００２４】
さらに、上記入出力データテーブルは、各ディスクアレイに対して同時に入出力できる入出力データ数を表す予め設定された並列度情報を記憶しており、上記入出力データ取得手段は、ディスクアレイ特定手段にて特定されたディスクアレイの入出力サイズ及び並列度情報を入出力データテーブルから取得すると共に、当該取得した入出力サイズ及び並列度情報をファイル特定情報を受け付けたアプリケーションに通知する、という構成を採る。
【００２５】
これにより、ファイルシステム制御装置は、アプリケーションからデータの入出力要求があると、ファイルが格納されるディスクアレイの上述した入出力サイズ及び並列度情報を取得して、アプリケーションに通知する。そして、アプリケーションは、通知を受けた入出力サイズで、かつ、並列度の数だけ並列に、ディスクアレイに対するデータの入出力を実行する。その結果、各ディスクアレイに対するデータ入出力の最適化を図ることができ、データ入出力のさらなる高速化を図ることができる。
【００２６】
また、本発明の他の形態であるプログラムは、ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御装置に、各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付手段と、ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定手段と、予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルから、特定されたディスクアレイの入出力サイズを取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得手段と、を実現させる、という構成を採る。また、上記プログラムは、ファイルシステム制御装置に、各ディスクアレイの予め設定された構成情報を取得する構成情報取得手段と、取得した構成情報に基づいて各ディスクアレイの前記入出力サイズを算出する入出力サイズ算出手段と、算出した入出力サイズを、各ディスクアレイ毎に入出力データテーブルに記憶する入出力データ記憶手段と、をさらに実現させる、という構成を採る。
【００２７】
さらに、本発明の他の形態であるファイルシステム制御方法は、ディスク装置に対してデータを分散して記憶するようＲＡＩＤ構成されたディスクアレイを複数備えたファイルシステムに対する入出力を制御するファイルシステム制御方法であって、各ディスクアレイに対して入出力されるファイルを特定するファイル特定情報を所定のアプリケーションから受け付けるファイル特定情報受付工程と、ファイル特定情報に基づいて当該ファイルが記憶されるディスクアレイを特定するディスクアレイ特定工程と、予め設定された各ディスクアレイに対するデータの入出力サイズを記憶する入出力データテーブルから、特定されたディスクアレイの入出力サイズを取得すると共に、当該取得した入出力サイズをファイル特定情報を受け付けたアプリケーションに通知する入出力データ取得工程と、を有する、という構成を採る。また、上記ファイルシステム制御方法は、各ディスクアレイの予め設定された構成情報を取得する構成情報取得工程と、取得した構成情報に基づいて各ディスクアレイの前記入出力サイズを算出する入出力サイズ算出工程と、算出した前記入出力サイズを、各ディスクアレイ毎に入出力データテーブルに記憶する入出力データ記憶工程と、を有する、という構成を採る。
【００２８】
上述した構成のプログラム、ファイルシステム制御方法であっても、上記ファイルシステム制御装置と同様の作用を有するため、上述した本発明の目的を達成することができる。
【００２９】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図９を参照して説明する。図１は、ホストコンピュータの構成を示す機能ブロック図である。図２は、ファイルシステムの構成を示すブロック図である。図３は、ファイルシステムへのファイルの記憶状況を示す図である。図４は、ファイル配置情報の一例を示す図であり、図５は、入出力最適化情報テーブルの一例を示す図である。図６乃至図７は、ホストコンピュータにおけるファイルシステムの制御時の動作を示すフローチャートである。図８乃至図９は、入出力サイズの決定についての説明図である。
【００３０】
［構成］
本発明であるファイルシステム制御装置は、ディスク装置７内に構成されたファイルシステム１０を制御すべく、当該ディスク装置７に接続されたホストコンピュータ１にて構成されている。具体的に、ホストコンピュータ１は、図１に示すように、オペレーティングシステムの一部であるファイルシステム処理部２と、オペレーティングシステム上で作動する各種アプリケーション４と、ディスク装置７内に形成された各ソフトウェアＲＡＩＤを管理するソフトウェアＲＡＩＤ機構５と、ディスク装置７に対するデータの入出力を行うディスク装置アクセス機構６と、メモリ３と、を備えている。なお、上記ファイルシステム処理部２と、アプリケーション４と、ソフトウェアＲＡＩＤ機構５と、ディスク装置アクセス機構６とは、ホストコンピュータ１に装備された演算装置に、所定のプログラムが組み込まれることによって実現される。以下、各構成について詳述する。
【００３１】
まず、ディスク装置７は、図２に示すように、複数のディスク装置１０１〜１０８，１１１〜１１５，１２１〜１２７を備えている。そして、これら複数のディスク装置は、当該ディスク装置に対してそれぞれデータを分散して記憶可能なよう、ソフトウェアにてＲＡＩＤ構成されたソフトウェアＲＡＩＤ（ディスクアレイ）を構成している。具体的には、ディスク装置１０１からディスク装置１０８は、上記ソフトウェアＲＡＩＤ機構５により、ストライピングサイズを１メガバイトとしてストライピングを構成しており、ソフトウェアＲＡＩＤ１００としてファイル管理機能２２からアクセス可能なよう構成されている。同様に、ディスク装置１１１からディスク装置１１５は、ソフトウェアＲＡＩＤ機構５により、ストライピングサイズを１メガバイトとしてストライピングを構成しており、ソフトウェアＲＡＩＤ１１０としてファイル管理機能２２からアクセス可能なよう構成されている。同様に、ディスク装置１２１からディスク装置１２７は、ソフトウェアＲＡＩＤ機構５により、ストライピングサイズを１メガバイトとしてストライピングを構成しており、ソフトウェアＲＡＩＤ１２０としてファイル管理機能２２からアクセス可能なよう構成されている。
【００３２】
また、図２に示すように、上記ソフトウェアＲＡＩＤ１００、ソフトウェアＲＡＩＤ１１０およびソフトウェアＲＡＩＤ１２０は、リニアに結合されて１つのファイルシステム１０を構成している。そして、図３に示すように、各ソフトウェアＲＡＩＤ１００，１１０，１２０にはファイルを記憶することが可能であり、各ファイルの配置状況を表すファイル配置情報２０を、ファイルシステム１０が有している。ここで、例えば、図３に示すように、ファイルシステム１０の上にファイル１１、ファイル１２、ファイル１３が記憶されており、特に、ファイル１１およびファイル１３のデータは、ＲＡＩＤ１００に保存され、また、ファイル１２のデータはＲＡＩＤ１１０に保存されていることとする。この場合には、ファイル配置情報２０は、図４に示すように、ファイルを特定する情報と、当該ファイルが格納されているソフトウェアＲＡＩＤを特定する情報（番号）とが、関連付けられたテーブルとなっている。
【００３３】
そして、図１に示すように、上記ファイルシステム処理部２は、上記アプリケーション４から参照される入出力最適化情報アクセス部２１と、アプリケーション４がファイルの入出力を行う際にアクセスするファイル入出力部２３と、を備える。また、ファイルシステム処理部２は、メタデータの管理とソフトウェアＲＡＩＤ機構５への入出力を行うことにより、ファイルシステムの更新を行うファイル管理部２２を備える。また、ファイルシステム機能２は、入出力最適化情報設定部２４と、ファイルシステム作成部２５と、を備える。
【００３４】
そして、上記構成のファイルシステム処理部２が管理するファイルシステム１０は、ファイルシステム作成部２５にアクセスすることにより、ソフトウェアＲＡＩＤを新規に作成することができる。あるいは、ファイルシステム１０は、ファイルシステム作成部２５にアクセスして、ソフトウェアＲＡＩＤを追加することにより、既存のファイルシステム１０の拡張を行うことができる。なお、ソフトウェアＲＡＤＩの作成及び拡張については、既存の技術であるため、その詳細な説明は省略する。
【００３５】
また、上記入出力最適化情報設定部２４（構成情報取得手段）は、例えば、上述したファイルシステムの作成あるいは拡張時に、ソフトウェアＲＡＩＤ機構５にアクセスすることにより、特定のソフトウェアＲＡＩＤのストライピング数及びストライピングサイズを表す情報、つまり、上述したように構成されたソフトウェアＲＡＩＤ（ディスクアレイ）について設定されたその構成情報を取得する。そして、入出力最適化情報設定部２４（入出力サイズ算出手段）は、上記取得したストライピング数及びストライピングサイズから、最適な入出力サイズを計算する。そして、その計算結果である入出力サイズを、入出力最適化情報アクセス部２１（入出力データ記憶手段）を介して、メモリ３内に形成された入出力最適化情報テーブル３１（入出力データテーブル）に記憶する。なお、入出力最適化情報テーブルの一例を図５に示す。この図に示すように、入出力最適化情報テーブル３１は、各ソフトウェアＲＡＩＤ毎に最適であると計算された入出力サイズを記憶している。
【００３６】
ここで、ソフトウェアＲＡＩＤの構成に応じて算出する最適な入出力サイズについて説明する。まず、図８及び図９に示すように、ディスク装置２０１からディスク装置２０４の４台をストライピングして、ソフトウェアＲＡＩＤ２００を構成している例を挙げる。ソフトウェアＲＡＩＤ２００は、各ディスク装置を先頭から一定サイズごとに分割したブロック（２０１−１，２０２−１等）を、交互に並べた仮想的なディスクアレイである。ここで、ディスク装置を分割した各ブロックのサイズを、ストライピングサイズと呼び、ストライピングを構成するディスク装置の台数をストライピング数と呼ぶ。すると、図８の例の場合には、一回の入出力サイズ＝（ストライピングサイズ）×（ストライピング数）の整数倍（１，２，・・・）、としてアプリケーションからデータの入出力を行うと、それ以外での入出力サイズで入出力を行うよりも、高い性能を得ることができる。
【００３７】
この理由は、（ストライピングサイズ）×（ストライピング数）の整数倍の入出力サイズで入出力を行った場合、ストライピングを構成している全てのディスク装置に対して並列に、かつ、同量の入出力が行われるためである。例えば、図８において、ストライピングサイズを１メガバイトとして、８メガバイトの入出力および５メガバイトの入出力を行った場合を考える。８メガバイトの入出力を行った場合、各ディスク装置では２メガバイトずつ入出力が行われるため、ソフトウェアＲＡＩＤ２００へ８メガバイトの入出力を行う場合のＴＡＴ（Turn Around Time）は、一台のディスク装置に２メガバイトの入出力を行う時間となる。一方、５メガバイトの入出力を行った場合、ディスク装置２０２、２０３、２０４には１メガバイトの入出力が行われるが、ディスク装置２０１には２メガバイトの入出力が行われる。よって、ソフトウェアＲＡＩＤ２００への５メガバイトの入出力を行う場合のＴＡＴは、８メガバイトの入出力を行ったときと同じく、一台のディスク装置に２メガバイトの入出力を行う時間となる。そのため、５メガバイトの入出力を行ったときのスループットは、８メガバイトの入出力を行った場合と比較して低くなる。つまり、入出力サイズは大きければ大きいほど良いわけではなく、（ストライピングサイズ）×（ストライピング数）の整数倍であることが重要となる。
【００３８】
以上より、上述した入出力最適化情報設定部２４では、各ソフトウェアＲＡＩＤの（ストライピングサイズ）×（ストライピング数）の整数倍を、最適な入出力サイズとして算出する。
【００３９】
また、上記入出力最適化情報アクセス部２１（ファイル特定情報受付手段、ディスクアレイ特定手段）は、ファイル管理部２２を使用して、ファイルシステム１０上の各ファイルについて、当該ファイルの配置されているソフトウェアＲＡＩＤを特定する。つまり、ファイル管理部２２は、アプリケーションからのファイルの入出力要求に先立って当該ファイルを特定する情報を受け付けて、当該ファイルが格納されているソフトウェアＲＡＩＤを、ファイル配置情報２０を参照して特定する。そして、入出力最適化情報アクセス部２１（入出力データ取得手段）は、入出力最適化情報テーブル３１にアクセスすることにより、上記特定したソフトウェアＲＡＩＤに最適な入出力サイズを取得する。さらに、この取得した入出力サイズを、問い合わせしてきたアプリケーション４に通知する。これにより、アプリケーション４は、ファイルの保存されている構成の異なるソフトウェアＲＡＩＤごとに最適な入出力サイズを取得して、当該入出力サイズにてデータ入出力を実行する。従って、高速なデータ入出力ができる。
【００４０】
［動作］
次に、上記ホストコンピュータ１によるファイルシステムの制御動作を、図６乃至図７のフローチャート、及び、その他の図を参照して説明する。
【００４１】
最初に、入出力最適化情報テーブル３１の設定方法について説明する。まず、ファイルシステム作成部２５は、ファイルシステム１０の作成要求または拡張要求を受け付けると（ステップＳ１）、入出力最適化情報設定部２４を呼び出す。そして、入出力最適化情報設定部２４は、ファイルシステム１０を構成するソフトウェアＲＡＩＤ１００、ソフトウェアＲＡＩＤ１１０、ソフトウェアＲＡＩＤ１２０のストライピングサイズおよびストライピング数の情報（ディスクアレイの構成情報）を、ソフトウェアＲＡＩＤ機構５から取得する（ステップＳ２、構成情報取得工程）。
【００４２】
このとき、図２を参照すると、ソフトウェアＲＡＩＤ１００について、ストライピングサイズ（斜線に示すブロック１００ａのサイズ）として１メガバイトを取得し、ストライピング数として８を取得する。そして、入出力最適化情報設定部２４は、この２数の乗算結果である８メガバイトを、ソフトウェアＲＡＩＤ１００の最適な入出力サイズとして得る（ステップＳ３、入出力サイズ算出工程）。つまり、図２で二点鎖線にて囲った部分１００ｂが、最小の最適な入出力サイズとなる。その後、入出力最適化情報設定部２４は、入出力最適化情報アクセス部２１を使用して、図５に示すように、入出力最適化情報テーブル３１にソフトウェアＲＡＩＤ１００およびその最適な入出力サイズ８メガバイトを設定する（ステップＳ４、入出力データ記憶工程）。
【００４３】
同様に、ソフトウェアＲＡＩＤ１１０について、ストライピングサイズ（斜線に示すブロック１１０ａのサイズ）として１メガバイトと、ストライピング数として５を取得し、これらの乗算結果である５メガバイトを、入出力最適化情報テーブル３１にソフトウェアＲＡＩＤ１１０の最適な入出力サイズ（図２で二点鎖線にて囲った部分１１０ｂのサイズ）として設定する。さらに、同様に、ソフトウェアＲＡＩＤ１２０について、ストライピングサイズ（斜線に示すブロック１２０ａのサイズ）として１メガバイトと、ストライピング数として７を取得し、これらの乗算結果である７メガバイトを、入出力最適化情報テーブル３１にソフトウェアＲＡＩＤ１２０の最適な入出力サイズ（図２で二点鎖線にて囲った部分１２０ｂのサイズ）として設定する。
【００４４】
次に、ホスト１で動作するアプリケーション４が、既存のファイル１１にデータを入出力する場合を説明する。まず、アプリケーション４は、ファイル１１への入出力を行う前に、入出力最適化情報アクセス部２１に対し、入出力を行うファイル１１を特定して、当該ファイル１１の最適な入出力サイズの問い合わせを行う。入出力最適化情報アクセス部２１は、上記問い合わせを受け付けて、入力情報として与えられたファイル１１がどのソフトウェアＲＡＩＤに配置されているのかを、ファイル管理部２２に問い合わせる（ステップＳ１１，ファイル特定情報受付工程）。すると、ファイル管理部２２は、図４に示すファイル配置情報２０を読み取り、アプリケーション４が入出力要求したファイル１１が配置されているソフトウェアＲＡＩＤとしてソフトウェアＲＡＩＤ１００を取得し（ステップＳ１２、ディスクアレイ特定工程）、入出力最適化情報アクセス部２１に応答する。
【００４５】
続いて、入出力最適化情報アクセス部２１は、図５に示す入出力最適化情報テーブル３１からソフトウェアＲＡＩＤ１００を検索し、その結果として、当該ソフトウェアＲＡＩＤ１００に最適な入出力サイズである８メガバイトを得る（ステップＳ１３、入出力データ取得工程）。最後に、入出力最適化情報アクセス部２１は、アプリケーション４にファイル１１の最適な入出力サイズとして８メガバイトを回答する（ステップＳ１４）。これにより、アプリケーション４は、入出力サイズを８メガバイトとしてファイル１１の入出力を行う。そして、アプリケーション４からファイルの入出力要求を受け取ったファイル入出力部２３は、ファイル管理部２２を使用して、データの入出力を行う（ステップＳ１５）。
【００４６】
別の動作例として、ホスト１で動作するアプリケーション４が、新規にファイル１２を作成してデータを入出力する場合を説明する。まず、アプリケーション４は、ファイル入出力部２３に、新規ファイル１２の作成を要求する。ファイル入出力部２３はファイルの作成をファイル管理部２２に要求する。ファイル管理部２２は、ファイル１２の配置されるソフトウェアＲＡＩＤをソフトウェアＲＡＩＤ１１０と決定し、ファイルシステム１０へのファイル１２の作成を行う。また、図４に示すファイル配置情報２０の更新を行う。
【００４７】
次に、アプリケーション４は、上述同様に、入出力最適化情報アクセス部２１に対し、ファイル１２の最適な入出力サイズの問い合わせを行う。入出力最適化情報アクセス部２１は、問い合わせを受け付けて、そのファイル１２がどのソフトウェアＲＡＩＤに配置されているのかを、ファイル管理部２２に問い合わせる。すると、ファイル管理部２２は、図４に示すファイル配置情報２０を読み取り、ファイル１２が配置されているソフトウェアＲＡＩＤとしてソフトウェアＲＡＩＤ１１０を取得し、入出力最適化情報アクセス部２１に応答する。
【００４８】
次に、入出力最適化情報アクセス部２１は、図５に示す入出力最適化情報テーブル３１からソフトウェアＲＡＩＤ１１０を検索し、その結果として最適な入出力サイズとして５メガバイトを得る。最後に、入出力最適化情報アクセス部２１は、アプリケーション４にファイル１２の最適な入出力サイズとして５メガバイトを回答し、アプリケーション４は入出力サイズを５メガバイトとしてファイル１２の入出力を行う。アプリケーション４からファイルの入出力要求を受け取ったファイル入出力部２３は、ファイル管理部２２を使用して、データの入出力を行う。
【００４９】
次に、さらに、別の動作例として、ホスト１で動作するアプリケーション４が、ファイル１３の削除を行う場合を説明する。まず、アプリケーション４は、ファイル入出力部２３に、ファイル１３の削除を要求する。ファイル入出力部２３は、ファイルの削除をファイル管理部２２に要求する。すると、ファイル管理部２２は、図５に示すファイル配置情報２０からファイル１３の情報を削除するとともに、ファイルシステム１０からファイル１３の削除を行う。
【００５０】
以上のように、本実施形態によると、複数のディスク装置、つまり、複数のソフトウェアＲＡＩＤで構成された単一のファイルシステムについて、各ファイルが格納されているソフトウェアＲＡＩＤごとの最適な入出力サイズを設定できる。そして、アプリケーションによるファイルの入出力の際には、当該アプリケーションが、入出力を行うファイルが格納されている各ソフトウェアＲＡＩＤに最適な入出力サイズを取得できるため、最適なサイズでのデータの入出力を行うことができ、データ入出力の高速化を図ることができる。
【００５１】
ここで、上記では、入出力最適化情報テーブル３１に、各ソフトウェアＲＡＩＤの最適な入出力サイズを算出して記憶する場合を例示したが、予め各ソフトウェアＲＡＩＤ毎に設定された入出力サイズが、入出力最適化情報テーブル３１に記憶されていてもよい。
【００５２】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１０を参照して説明する。図１０は、実施形態２におけるホストコンピュータの構成を示す図である。
【００５３】
本実施形態では、ファイルシステムがソフトウェアＲＡＩＤを使用せず構成されており、つまり、ハードウェアにてＲＡＩＤ構成されている。この場合に、ファイルシステムの作成や拡張を行う際に、ディスク装置にアクセスして、ディスク装置のハードウェアＲＡＩＤ構成などの構成情報を取得することにより、最適な入出力サイズを自動的に設定する。
【００５４】
具体的には、本実施形態におけるホストコンピュータ１は、上述した実施形態１の図１に示す構成に加えて、入出力最適化情報計算部２６を備えている。この入出力最適化情報計算部２６は、予め設定されて記憶されているディスク装置のハードウェアＲＡＩＤ構成などの情報に基づいて、そのディスク装置への最適な入出力サイズを計算する機能を持つ。例えば、ファイルシステム作成部２５は、ファイルシステムの作成要求または拡張要求を受け付けると、入出力最適化情報設定部２４を呼び出す。そして、入出力最適化情報設定部２４は、ディスク装置アクセス機構６にアクセスし、ディスク装置のハードウェアＲＡＩＤ構成などの情報を取得する。このとき、取得するハードウェアＲＡＩＤ情報は、例えば、上述同様に、予め設定されているストライピングサイズとストライピング数である。次に、入出力最適化情報設定部２４は、入出力最適化情報計算部２６を呼び出し、各ハードウェアＲＡＩＤにおけるストライピングサイズとストライピング数とを乗算して、当該ハードウェアＲＡＩＤに最適な入出力サイズを計算する。そして、上述同様に、入出力最適化情報アクセス部２１を使用して、入出力最適化情報テーブル３１にハードウェアＲＡＩＤごとに最適な入出力サイズをそれぞれ記憶しておく。
【００５５】
なお、上記入出力最適化情報テーブル３１には、予め各ハードウェアＲＡＩＤ毎に設定された入出力サイズが記憶されていてもよい。
【００５６】
＜実施形態３＞
次に、本発明の第３の実施形態を説明する。本実施形態では、上述した図５に示す入出力最適化情報テーブル３１に、さらに、各ソフトウェアＲＡＩＤ（あるいはハードウェアＲＡＩＤ）毎に、予め設定された並列度情報を記憶している。この並列度情報とは、例えば、各ソフトウェアＲＡＩＤに対して複数の入出力を並列に実行する際において、同時に並列に入出力できるデータ数である。
【００５７】
そして、本実施形態では、上述したファイルシステム処理部２が有する入出力最適化情報アクセス部２１が、アプリケーション４からのファイル入出力に先立つ問い合わせに対して、問い合わせにかかるファイルが格納されたソフトウェアＲＡＩＤの入出力サイズと共に並列度情報を、上記入出力最適化情報テーブル３１から取得する。そして、取得した入出力サイズと並列度情報を、アプリケーション４に通知する。
【００５８】
これにより、アプリケーションは、通知を受けた入出力サイズで、かつ、並列度の数だけ並列に、ソフトウェアＲＡＩＤ（あるいはハードウェアＲＡＩＤ）に対するデータの入出力を実行する。その結果、１つのファイルシステム内に複数のＲＡＩＤが構成されている場合であっても、各ＲＡＩＤに対するデータ入出力の最適化を図ることができ、データ入出力のさらなる高速化を図ることができる。
【００５９】
ここで、上記では、ファイルシステムが構成されているホストとアプリケーションが実行されるホストを同一のものとして説明したが、ネットワークファイルシステム（ＮＦＳ）などの複数ホストで単一のファイルシステムを共有するようなファイルシステムに対しても実施可能である。
【００６０】
また、上記では、入出力最適化情報テーブル３１の内容は、ファイルシステムが作成または拡張されるときに自動的に設定される場合を説明したが、ホスト１の管理者が、入出力最適化情報設定部２４を使用して手動で設定することも可能である。
【産業上の利用可能性】
【００６１】
本発明は、アプリケーションサーバやファイルサーバなど、ファイルシステムを有するコンピュータに利用可能であり、産業上の利用可能性を有する。
【図面の簡単な説明】
【００６２】
【図１】ホストコンピュータの構成を示す機能ブロック図である。
【図２】ファイルシステムの構成を示すブロック図である。
【図３】ファイルシステムへのファイルの記憶例を示す図である。
【図４】ファイル配置情報の一例を示す図である。
【図５】入出力最適化情報テーブルの一例を示す図である。
【図６】ホストコンピュータにおけるファイルシステムの制御時の動作を示すフローチャートである。
【図７】ホストコンピュータにおけるファイルシステムの制御時の動作を示すフローチャートである。
【図８】入出力サイズの決定についての説明図である。
【図９】入出力サイズの決定についての説明図である。
【図１０】実施形態２におけるホストコンピュータの構成を示す図である。
【符号の説明】
【００６３】
１  ホストコンピュータ
２  ファイルシステム処理部
３  メモリ
４  アプリケーション
５  ソフトウェアＲＡＩＤ機構
６  ディスク装置アクセス機構
７  ディスク装置
１０  ファイルシステム
１１，１２，１３  ファイル
２０  ファイル配置情報
２１  入出力最適化情報アクセス部
２２  ファイル管理部
２３  ファイル入出力部
２４  入出力最適化情報設定部
２５  ファイルシステム作成部
２６  入出力最適化情報計算部
１００，１１０，１２０  ソフトウェアＲＡＩＤ
【図１】
0005125624.tif 000002
【図２】
0005125624.tif 000003
【図３】
0005125624.tif 000004
【図４】
0005125624.tif 000005
【図５】
0005125624.tif 000006
【図６】
0005125624.tif 000007
【図７】
0005125624.tif 000008
【図８】
0005125624.tif 000009
【図９】
0005125624.tif 000010
【図１０】
0005125624.tif 000011