(57)【要約】【課題】ファイルサービス提供に必要なメモリ容量のみをシステムブート時のメモリテスト対象とすることによって、メモリテスト時間を最少化し、ファイルサーバのシステムブート時間を短縮する。【解決手段】ホスト計算機にファイルサービスを提供するファイルサーバであって、前記ファイルサービスを提供するために必要な前記メモリの記憶領域の容量を計算し、前記計算された容量の記憶領域をテストする第１メモリチェックを実行し、前記第１メモリチェックが完了した後、前記メモリの残りの記憶領域をテストする第２メモリチェックを実行し、前記第１メモリチェックが完了した後、前記第２メモリチェックが完了する前に、前記ファイルサービスの提供を開始する。【選択図】図３Ａ
2010044635.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機と接続されるインターフェースと、プロセッサと、メモリと、ディスク装置と接続されるインターフェースとを備え、前記ホスト計算機にファイルサービスを提供するファイルサーバであって、
前記ファイルサービスを提供するために必要な前記メモリの記憶領域の容量を計算し、
前記計算された容量の記憶領域をテストする第１メモリチェックを実行し、
前記第１メモリチェックが完了した後、前記メモリの残りの記憶領域をテストする第２メモリチェックを実行し、
前記第１メモリチェックが完了した後、前記第２メモリチェックが完了する前に、前記ファイルサービスの提供を開始することを特徴とするファイルサーバ。
【請求項２】
前記ファイルサービスを提供するために必要な記憶領域の容量は、前記ファイルサーバ上で動作するオペレーティングシステム、ファイルシステムの構成及びファイルサービスを提供するためのキャッシュメモリの容量に基づいて計算されることを特徴とする請求項１に記載のファイルサーバ。
【請求項３】
前記ファイルサービスを提供するために必要な記憶領域の容量は、さらに、前記ホスト計算機の最大接続数、及び、ファイルサービスの提供を開始するために必要な前記オペレーティングシステム以外のプログラムが必要とする容量に基づいて計算されることを特徴とする請求項２に記載のファイルサーバ。
【請求項４】
前記ファイルサーバは、
前記第１メモリチェックにて前記記憶領域が異常と判定された場合、前記メモリの別の記憶領域をテストし、該テストで正常と判定された前記メモリの前記別の記憶領域を、前記ファイルサービスを提供するために必要な領域として割り当て、
前記第２メモリチェックにて前記メモリの前記残りの記憶領域が異常と判定された場合、前記異常と判定された記憶領域を割り当てずに、異常と判定された旨を報知する情報を出力することを特徴とする請求項１に記載のファイルサーバ。
【請求項５】
前記ファイルサーバは、
ファイルサービスの提供を開始した後に起動される複数のプログラムを保持し、
前記ファイルサービスの提供を開始した後に起動される複数のプログラムの各々の優先度を示す情報を保持し、
前記計算された容量の記憶領域のテストが完了した後、前記メモリの残りの記憶領域をテストし、
前記ファイルサービスの提供を開始した後に起動される複数のプログラムを、前記テストが完了した前記残りの記憶領域の容量に従って、前記優先度の順に起動することを特徴とする請求項１に記載のファイルサーバ。
【請求項６】
前記ファイルサーバは、同期書き込みのファイルサービス及び非同期書き込みのファイルサービスを提供し、
前記同期書き込みのファイルサービスを提供するために必要な前記記憶領域の容量は、前記非同期書き込みのファイルサービスを提供するために必要な前記記憶領域の容量より小さく計算されることを特徴とする請求項１に記載のファイルサーバ。
【請求項７】
前記ファイルサーバの構成変更時に、前記ファイルサービスを提供するために必要な前記記憶領域の容量を計算することを特徴とする請求項１に記載のファイルサーバ。
【請求項８】
ホスト計算機と接続されるインターフェースと、プロセッサと、メモリと、ディスク装置と接続されるインターフェースとを備え、前記ホスト計算機にファイルサービスを提供するファイルサーバを起動する方法であって、
前記ファイルサービスを提供するために必要な前記メモリの記憶領域の容量を計算する第１手順と、
前記計算された容量の記憶領域をテストする第２手順と、
前記第２手順が完了した後、前記メモリの残りの記憶領域をテストする第３手順と、
前記第２手順が完了した後、前記第３手順が完了する前に、前記ファイルサービスの提供を開始する第４手順と、を含むことを特徴とするファイルサーバを起動する方法。
【請求項９】
前記第１手順において、前記ファイルサービスを提供するために必要な記憶領域の容量は、前記ファイルサーバ上で動作するオペレーティングシステム、ファイルシステムの構成及びファイルサービスを提供するためのキャッシュメモリの容量に基づいて計算されることを特徴とする請求項８に記載のファイルサーバを起動する方法。
【請求項１０】
前記第１手順において、前記ファイルサービスを提供するために必要なメモリの容量は、さらに、前記ホスト計算機の最大接続数、及び、前記ファイルサービスの提供を開始するために必要な前記オペレーティングシステム以外のプログラムが必要とする容量に基づいて計算されることを特徴とする請求項９に記載のファイルサーバを起動する方法。
【請求項１１】
前記ファイルサーバは、複数の仮想的なファイルサーバに分割され、
前記各仮想ファイルサーバが、前記ファイルサービスを提供することを特徴とする請求項８に記載のファイルサーバを起動する方法。
【請求項１２】
前記方法は、さらに、前記各仮想ファイルサーバが、前記ファイルサービスを提供するために必要な容量の前記記憶領域のテストが完了した場合に、前記仮想ファイルサーバを起動する第５手順を含むことを特徴とする請求項１１に記載のファイルサーバを起動する方法。
【請求項１３】
前記第５手順において、前記ファイルサービスを提供するために必要な記憶領域の容量は、少なくとも、ファイルシステムの構成に基づいて計算され、
前記容量の計算に用いられるファイルシステムの構成は、ファイルシステムの容量、仮想ファイルサーバの数、ファイルシステムに含まれるファイル数、当該ファイルのメタデータ量の少なくとも一つであることを特徴とする請求項１１に記載のファイルサーバを起動する方法。
【請求項１４】
前記ファイルサーバは、同期書き込みのファイルサービス及び非同期書き込みのファイルサービスを提供し、
前記第１手順は、前記同期書き込みのファイルサービスを提供するために必要な前記記憶領域の容量を、前記非同期書き込みのファイルサービスを提供するために必要な前記記憶領域の容量より小さく計算する手順を含むことを特徴とする請求項８に記載のファイルサーバを起動する方法。
【請求項１５】
前記第１手順は、前記ファイルサーバの構成変更時に実行されることを特徴とする請求項８に記載のファイルサーバを起動する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバの高信頼化方法に関し、特に、大容量メモリが搭載された場合のシステムブート時メモリテストの高速化方法に関する。
【背景技術】
【０００２】
近年の企業、研究機関等におけるデータ格納量の増加に伴い、ネットワーク上にデータを格納するファイルサーバには高い性能が求められており、また、ファイルサーバに搭載されるメモリの容量は増加する傾向にある。ファイルサーバの高信頼化のためにはシステムブート毎に高精度なメモリテストを実施し、メモリエラーを事前に検出することが望ましい。しかし、高精度なメモリテストを行うには、メモリ媒体への複数のテストパターンの読み書きが必要となるため、メモリ容量が大きくなるに従って、メモリテストに要する時間が線形に長くなることが問題であった。
【０００３】
このような問題を解決するために、システムブート時にＯＳ起動用の領域のみメモリテストを行い、起動後にメモリテストをバックグラウンドで行う方法が開示されている（例えば、特許文献１参照）。
【特許文献１】米国特許第５１５５８４４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術によれば、ファイルサーバはシステムブート時に、ＯＳ起動に必要なメモリ領域のみをテストするので、搭載するメモリ容量によらず一定時間内にＯＳを起動することができる。
【０００５】
しかし、ファイルサーバがシステムブート後直ちにファイルサービスを開始するためには、システムブート時に、ＯＳ起動用に必要なメモリ容量だけでなく、ファイルサービス提供に必要なメモリ容量を合わせて確保しておく必要がある。もし、ファイルサーバが必要とするメモリ容量を確保せずにファイルサービス提供を開始した場合は、メモリ格納データのディスク退避によって、大幅な性能低下又はメモリ枯渇によるシステムダウンが発生する可能性がある。
【０００６】
従来技術においては、サービス提供のために必要なメモリ容量を適正に見積もる技術がなかった。特に、ファイルサーバでは、管理するファイルシステム数及びファイルシステム容量が運用形態によって異なり、また、データバックアップ等の信頼性及び利便性向上のためのオプションプログラムの有無によって使用するメモリ容量が異なるため、メモリ容量を適正に見積もることは困難であった。
【０００７】
本発明は、以上の点を考慮してなされたものであり、ファイルサーバの運用形態に応じて必要なメモリ容量を事前に計算し、ファイルサービス提供に必要なメモリ容量のみをシステムブート時のメモリテスト対象とすることによって、メモリテスト時間を最少化し、システムブート時間を短縮する。
【課題を解決するための手段】
【０００８】
本発明の代表的な一例を示せば以下のとおりである。すなわち、第１の発明は、ホスト計算機と接続されるインターフェースと、プロセッサと、メモリと、ディスク装置と接続されるインターフェースとを備え、前記ホスト計算機にファイルサービスを提供するファイルサーバであって、前記ファイルサービスを提供するために必要な前記メモリの記憶領域の容量を計算し、前記計算された容量の記憶領域をテストする第１メモリチェックを実行し、前記第１メモリチェックが完了した後、前記メモリの残りの記憶領域をテストする第２メモリチェックを実行し、前記第１メモリチェックが完了した後、前記第２メモリチェックが完了する前に、前記ファイルサービスの提供を開始することを特徴とする。
【発明の効果】
【０００９】
本発明の一実施形態によれば、ファイルサーバはファイルサービスの運用形態に応じて必要なメモリ容量を確保しつつ、システムブート時のメモリテスト時間を最少化し、システムブート時間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の概要は次のとおりである。
【００１１】
本発明において、ファイルサーバは、ファイルシステム構成の変更、オプションプログラムの構成の変更及びユーザの要求に基づくサービスレベルの変更に従って、ファイルサービスに必要なメモリ容量を計算し、システムブート時のメモリテストを行うメモリ領域を決定する。
【００１２】
なお、メモリ領域とは、論理的又は物理的に分割されたメモリ媒体のことをいう。また、ファイルサーバのサービスレベルとは、データアクセス性能、同時接続可能なクライアント数、各種のオプションプログラムの起動の有無等のファイルサービスの品質のことをいう。また、ファイルサーバは、ファイルサービス開始後、バックグラウンドによってメモリテストを行う。ファイルサーバは、各メモリ領域のメモリテストが完了する毎にそれぞれのメモリ領域を初期化し、初期化された各メモリ領域を、キャッシュデータ格納領域、クライアントとのセッション情報格納領域及びオプションプログラム使用領域とする。
【００１３】
本発明によって、ファイルサーバは、システムブート直後であっても運用形態に適するメモリ容量を確保し、かつ、システムブート時間を最少化することができる。さらに、ファイルサーバは、バックグラウンドでメモリテストを行い、メモリテストの終了したメモリ領域をファイルサービスに使用する。このため、ファイルサーバは、全メモリ領域のメモリテストの完了を待つことなく、ファイルサービスに使用可能なメモリ容量を増やすことができる。なお、ここでいうセッション情報とは、ＣＩＦＳ（Ｃｏｍｍｏｎ  ＩｎｔｅｒＦａｃｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）に代表されるファイルアクセス形式において、アクセスを行うクライアントの状態に関する情報をいう。
【００１４】
以下、図面を用いて、本発明の実施形態を詳述する。
【００１５】
＜実施形態１＞
本発明の第１の実施形態について、図１から図１０Ｂを用いて説明する。
【００１６】
（１−１）第１の実施形態によるコンピュータシステムの構成
図１は、本発明の第１の実施形態のコンピュータシステムのハードウェア構成を示すブロック図である。
【００１７】
コンピュータシステムは、１台以上のファイルサーバ４００と、１台以上のクライアントサーバ２００と、１台以上の管理端末１００と、１台以上のディスクサブシステム５００とを備える。ファイルサーバ４００は、ＣＰＵ４１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メインメモリ４２０、不揮発性メモリ４３０等を備えた計算機である。ファイルサーバ４００は、さらに、ネットワーク３００に接続するためのネットワークＩＦ（ＩｎｔｅｒＦａｃｅ）４４０と、ディスクサブシステム５００に接続するためのストレージＩＦ（ＩｎｔｅｒＦａｃｅ）４５０とを備える。
【００１８】
図１には、複数のファイルサーバ４００を示す。複数のファイルサーバ４００の一つが第１のファイルサーバ１（４００Ａ）、別の一つが第２のファイルサーバ２（４００Ｂ）である。以下、第１のファイルサーバ１（４００Ａ）及び第２のファイルサーバ２（４００Ｂ）のいずれにも該当する説明をする場合、その説明において、第１のファイルサーバ１（４００Ａ）及び第２のファイルサーバ２（４００Ｂ）を総称して、ファイルサーバ４００と記載する。
【００１９】
なお、コンピュータシステムがファイルサーバ４００を２台以上備える場合は、第１のファイルサーバ１（４００Ａ）と第２のファイルサーバ２（４００Ｂ）とがクラスタを構成することができるが、第１の実施形態は、複数台のファイルサーバ４００がクラスタを構成しない場合にも適用することができる。クラスタ構成については、図７及び図１１を用いて後述する。
【００２０】
ＣＰＵ４１０は、メインメモリ４２０上に格納された各種プログラムを実行する。メインメモリ４２０は、後述する各種プログラム及び各種データを格納する。不揮発性メモリ４３０は、ファイルサーバ４００の各種設定情報を格納する。なお、ここでいう不揮発性メモリ４３０とは、電力供給を停止しても記憶内容を保持することができる半導体メモリであり、例えば、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）又はフラッシュメモリ等であってもよい。
【００２１】
ネットワークＩＦ４４０は、各種通信速度（１０Ｇｂｐｓ又は１Ｇｂｐｓ等）に対応したＥｔｈｅｒｎｅｔ（登録商標）インタフェースカード、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インタフェースカード等のネットワークインタフェースカードによって構成され、ファイルサーバ４００をクライアントサーバ２００及び管理端末１００に接続するためのデータ入出力アダプタとして機能する。
【００２２】
ストレージＩＦ４５０は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  ＩｎｔｅｒＦａｃｅ）インタフェースカード、ファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）インタフェースカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースカード又はＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）インタフェースカード等によって構成され、ファイルサーバ４００をディスクサブシステム５００に接続するためのデータ入出力アダプタとして機能する。
【００２３】
クライアントサーバ２００は、ネットワークＩＦ（図示せず）を備えたパーソナルコンピュータ、汎用サーバ又はメインフレーム等の計算機である。クライアントサーバ２００は、キーボード、スイッチ、ポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）及びモニタディスプレイ、スピーカ等の情報出力装置（図示せず）を備える。
【００２４】
管理端末１００は、クライアントサーバ２００と同様に、ネットワークＩＦ（図示せず）を備えたパーソナルコンピュータ、汎用サーバ又はメインフレーム等の計算機である。
【００２５】
ディスクサブシステム５００は、ＣＰＵ５１０、メインメモリ５２０、ストレージＩＦ５４０及び一つ以上の記憶装置５３０を備える。
【００２６】
ネットワーク３００には、ファイルサーバ４００、クライアントサーバ２００が接続されており、ファイルサーバ４００は、クライアントサーバ２００からのデータアクセス要求を受信し、処理結果を送信することができる。ネットワーク３００の例としては、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標、以下同じ）及びファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）が好適である。ネットワーク３００には、管理端末１００も接続されており、ファイルサーバ４００は、管理端末１００からの管理アクセス要求を受信し、処理結果を送信することができる。
【００２７】
ファイルサーバ４００とディスクサブシステム５００とはネットワーク経由で又は直接接続される。ファイルサーバ４００は、ディスクサブシステム５００にデータアクセス要求を送信し、処理結果を受信することができる。ネットワーク６００又は直接接続の例としては、イーサネット及びファイバチャネル等の通信プロトコルが好適である。
【００２８】
なお、管理端末１００及びクライアントサーバ２００は、二つの独立したネットワーク３００（例えば、管理ネットワーク及びデータネットワーク）にそれぞれ接続されていてもよい。
【００２９】
図２は、本発明の第１の実施形態のコンピュータシステムのソフトウェア構成を示すブロック図である。
【００３０】
ファイルサーバ４００は、ブートローダプログラム４３１、ブート時メモリテストプログラム４３２、ＯＳプログラム４３３、ファイルサービスプログラム４３４、バックグラウンドメモリテストプログラム４３５、オプションプログラム４３６、管理プログラム４３７及びクラスタ管理プログラム４３８を備える。
【００３１】
ブートローダプログラム４３１は、ファイルサーバ４００のシステムブート開始直後に起動し、構成ハードウェアを初期化した後、後述するＯＳプログラム４３３を起動するプログラムである。ブートローダプログラム４３１は、ハードウェア初期化時に、後述するブート時メモリテストプログラム４３２にメモリテストの実行を指示する。
【００３２】
ブート時メモリテストプログラム４３２は、システムブート時に、後述するメモリ領域情報４３９で指定されたメインメモリ４２０内のメモリ領域に対してメモリテストを行うプログラムである。ここでいうメモリテストとは、メモリテスト領域への複数のテストパターンの書き込み、読み込み及び照合を実行することによって、メモリエラーの有無を調べるテストをいう。
【００３３】
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム４３３は、ファイルサーバ４００全体を管理する。ＯＳプログラム４３３は、自らが起動した後に、ファイルサービスプログラム４３４がファイルサービスを開始するのと並行して、後述するバックグラウンドメモリテストプログラム４３５にメモリテストの実行を指示する。
【００３４】
ファイルサービスプログラム４３４は、クライアントサーバ２００から受信したファイルシステムへのデータアクセス要求を処理する。ここでいうファイルシステムとは、記憶装置に記録されているデータをファイルと呼ぶ単位で管理する方法のことをいう。
【００３５】
バックグラウンドメモリテストプログラム４３５は、ＯＳプログラム４３３によって指定されたメインメモリ４２０内のメモリ領域のメモリテストを行うプログラムである。バックグラウンドメモリテストプログラム４３５によって実行される処理は、ブート時メモリテストプログラム４３２によって実行されるものと同様である。
【００３６】
オプションプログラム４３６は、ファイルのバックアップ及びマイグレーション等のファイルサーバ４００の信頼性及び利便性を向上するための処理を実行するプログラムである。管理プログラム４３７は、管理端末１００から受信したファイルシステム構成及びオプションプログラム４３６構成の変更指示に従い、ＯＳプログラム４３３に設定反映を指示するプログラムである。
【００３７】
クラスタ管理プログラム４３８は、複数のファイルサーバ４００が存在するコンピュータシステムにおいて、ファイルサーバ４００がクラスタ構成として機能するよう制御するプログラムである。ここでいうクラスタ構成とは、複数のファイルサーバ４００のうち一つが停止したときに、そのファイルサーバ４００が管理するファイルシステムを他のファイルサーバ４００が引き継ぐことができるような構成をいう。
【００３８】
例えば、ファイルサーバ１（４００Ａ）及びファイルサーバ２（４００Ｂ）がクラスタを構成する場合、ファイルサーバ１（４００Ａ）に障害が発生した時、又は、保守のためにファイルサーバ１（４００Ａ）が停止した時に、ファイルサーバ１（４００Ａ）が管理するファイルシステムを、その他の稼動中のファイルサーバ２（４００Ｂ）に対して引き継ぐことができる。複数のファイルサーバ４００がクラスタを構成することによって、システムの信頼性及び可用性を高めることができる。なお、複数のファイルサーバ４００がクラスタを構成するコンピュータシステムは例示にすぎず、ファイルサーバ４００がクラスタを構成しないコンピュータシステムにも第１の実施形態を適用することができる。
【００３９】
以降では、各プログラムの機能を実現するための処理を各「プログラム」が実行する、と説明するが、実際はその「プログラム」に基づいてＣＰＵ４１０が処理を実行する。
【００４０】
さらに、ファイルサーバ４００のメインメモリ４２０にはキャッシュデータ４３９１及びセッション情報４３９２が格納される。キャッシュデータ４３９１は、使用頻度の高いデータを蓄積することによって、低速なディスクサブシステムへのアクセスを極力減らすために用いられる。セッション情報４３９２は、クライアントサーバ２００のアカウント情報及びネットワーク情報等を含み、アクセスがある度に所定の期間、メインメモリ４２０に格納される。
【００４１】
ファイルサーバ４００の不揮発性メモリ４３０上にはメモリ領域情報４３９が格納される。メモリ領域情報４３９は、メモリ領域毎の状態及び物理アドレスに関する情報を含む。
【００４２】
ディスクサブシステム５００のメインメモリ５２０には、ストレージ制御プログラム５２１が格納される。ストレージ制御プログラム５２１は、ファイルサーバ４００からストレージＩＦ４５０を介して受け取った、記憶装置５３０に格納されたデータに対するアクセス要求に基づいて、記憶装置５３０へのアクセスを行い、ファイルサーバ４００へ応答を返すプログラムである。
【００４３】
ディスクサブシステム５００の記憶装置５３０には、ファイルシステム構成情報５１２、オプションプログラム構成情報５１１及びクラスタ構成情報５１３が格納される。ファイルシステム構成情報５１２は、ファイルシステムの容量、設定等に関する情報を含む。オプションプログラム構成情報５１１は、オプションプログラム４３６の使用メモリ容量、優先度等に関する情報を含む。クラスタ構成情報５１３は、複数のファイルサーバ４００の間におけるファイルシステムの引き継ぎに必要な情報を含む。
【００４４】
管理端末１００には、管理ＧＵＩプログラム１１０が備えられる。管理ＧＵＩプログラム１１０は、ファイルサーバ４００の管理者に対し、ファイルシステムの構成及びオプションプログラム構成の設定画面を提供する。管理ＧＵＩプログラム１１０は、これらの設定画面を通して受け取った管理者の設定変更を、ファイルサーバ４００に送信する。
【００４５】
以降では、管理ＧＵＩプログラム１１０の処理主体を「プログラム」として説明するが、実際はその「プログラム」に基づいて管理端末１００のＣＰＵ（図示省略）が対応する処理を行う。
【００４６】
（１−２）第１の実施形態の概要
次に第１の実施形態の概要について説明する。
【００４７】
第１の実施形態では、システムブート時にファイルサーバ４００がファイルシステム構成情報５１２及びオプションプログラム構成情報５１１に基づき、ファイルサービスに必要なメモリ容量を計算する。メモリ容量の計算については、図１０Ｂを用いて後述する。ファイルサーバは、この計算結果に基づき、システムブート時のメモリテスト容量を適正な値にする。これによって、システムブート時間が短縮される。
【００４８】
ＯＳ起動後は、ファイルサービスプログラム４３４がファイルサービスを提供するのと並行して、バックグラウンドメモリテストプログラム４３５がメインメモリ４２０のメモリ領域をテストする。これによって、テストが完了した領域から利用を開始することができる。
【００４９】
第１の実施形態の運用例として、上述した処理の概要を、図３Ａ及び図３Ｂを用いて説明する。
【００５０】
図３Ａは、本発明の第１の実施形態のファイルサーバにおけるメモリテストの概要を示す説明図である。
【００５１】
図３Ａは、４つのファイルシステム（ＦＳ１、ＦＳ２、ＦＳ３及びＦＳ４）を備えるファイルサーバ４００において、システムブート後に実行されるメモリ領域毎のメモリテスト完了時刻、メモリ上に格納されるプログラム及びデータの例を示している。
【００５２】
ファイルサーバ４００は、ファイルサービスレベルに必要なブート時メモリテストのサイズとして、ＯＳ用に１ＧＢ（ＧｉｇａＢｙｔｅ）、キャッシュデータ４３９１格納用に２ＧＢ、セッション情報格納用に０．５ＧＢ、オプションプログラム４３６用に０．５ＧＢの計４ＧＢを事前に計算する。
【００５３】
ここでいう、ＯＳ用の１ＧＢは、ＯＳプログラム４３３、バックグラウンドメモリテストプログラム４３５及びファイルサービスプログラム４３４を格納し、実行するのに必要なメモリ容量である。キャッシュデータ４３９１格納用の２ＧＢは、ファイルシステム（ＦＳ１、ＦＳ２、ＦＳ３及びＦＳ４）の容量に対し、ストレージ書き込みの更新の有無（言い換えると、非同期書き込み又は同期書き込みのいずれが実行されるか）に応じた係数を掛けて得られた値の総和である。
【００５４】
なお、非同期書き込みとは、ファイルサーバ４００がクライアントサーバ２００からデータの書き込み要求を受信したときに、そのデータがメインメモリ４２０に格納された後、そのデータが記憶装置５３０に格納されたか否かにかかわらず応答（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を送信するように制御される書き込み処理である。一方、同期書き込みとは、ファイルサーバ４００がクライアントサーバ２００からデータの書き込み要求を受信したときに、そのデータをメインメモリ４２０に格納し、さらに、そのデータの記憶装置５３０への格納が終了するまで、応答を送信しないように制御される書き込み処理である。
【００５５】
図３Ａの例において、ファイルサーバ４００は、ＦＳ１及びＦＳ２に対して非同期書き込みを実行し、ＦＳ３及びＦＳ４に対して同期書き込みを実行するように設定されている。
【００５６】
例えば、非同期書き込みがされるＦＳ１及びＦＳ２に対してのキャッシュデータ量は、それぞれのファイル容量４００ＧＢに対し、０．１％を掛けた０．４ＧＢであり、同期書き込みがされるＦＳ３及びＦＳ４に対してのキャッシュデータ量は、それぞれのファイル容量４００ＧＢに０．１５％を掛けた０．６ＧＢである。したがって、ＦＳ１からＦＳ４までのキャッシュデータ量は合計２ＧＢとなる。
【００５７】
セッション情報４３９２格納用の０．５ＧＢは、ＦＳ１からＦＳ４の合計容量から接続セッション数を見積もり、見積もった値と１セッション情報を格納する容量との積を算出することによって得られた値である。上記の例の０．５ＧＢは、ＦＳ１からＦＳ４の合計容量１６００ＧＢに対して、セッション数として１６００セッションを見積もり、そのセッション数に、１セッション当たりに必要な容量１２５ＫＢ（ＫｉｌｏＢｙｔｅ）を掛けることによって算出されたものである。
【００５８】
オプションプログラム用の領域は、ブート時に起動するオプションプログラムの種別毎に異なるメモリ容量の総和である。ここではバックアッププログラムをブート時に起動することを仮定し、バックアッププログラムに必要な０．５ＧＢを必要容量としている。なお、ここで用いたブート時メモリテストサイズの見積もりのための各種の数値はあくまでも例示であり、ファイルサーバの形態に応じて、適宜設定されてよい。
【００５９】
次に、メインメモリ４２０の各メモリ領域に対して、メモリテストが実施される過程を説明する。
【００６０】
初めに、ファイルサーバ４００は、ブート時メモリテストとして、ブート用メモリ領域１及び２のメモリテストを１６：５８に開始し、１７：００に完了する。このブート時メモリテストはブート時メモリテストプログラム４３２によって行われ、事前に計算されたファイルサービスの開始に必要なメモリ容量に対して行われる。ファイルサーバ４００は、ブート時メモリテストによってテストされたメモリ領域１及び２を利用してＯＳプログラム４３３を起動する。
【００６１】
その後、ＯＳプログラム４３３は、ファイルサービス提供に必要なファイルサービスプログラム４３４及びバックグラウンドメモリテストプログラム４３５を起動する。なお、メモリ領域１及び２のメモリ容量は、ＯＳプログラムの使用メモリ容量及びファイルシステムの容量設定に応じて決められるため、メモリ容量不足による性能低下及びシステムダウンは発生しない。また、メモリ領域１及び２のうち使用されていない領域には、後にオプションプログラム４３６、キャッシュデータ４３９１及びセッション情報４３９２が格納される。
【００６２】
次に、ＯＳプログラム４３３は、バックグラウンドメモリテストプログラム４３５に対してバックグラウンドでのメモリテストの実行を指示する。バックグラウンドメモリテストは、メモリ領域３のテストを１７：０５に、メモリ領域４のテストを１７：１０に、メモリ領域５のテストを１７：１５に完了する。
【００６３】
図３Ｂは、本発明の第１の実施形態のメモリテストにおける時刻毎のイベント及び状態を示す説明図である。
【００６４】
図３Ｂでは、第１の実施形態の運用例において、電源オンからメモリテスト完了までに発生するイベント毎に、ブートローダ状態、ＯＳ状態、及びオプションプログラム４３６（例えば、バックアッププログラム）の状態が変化し、キャッシュデータ量及び最大同時接続数が増加することが分かる。
【００６５】
（１−３）第１の実施形態のメモリテスト方法
図４は、本発明の第１の実施形態のメモリ領域情報テーブルを示す説明図である。
【００６６】
メモリ領域情報４３９は、ファイルサーバ４００が備えるメインメモリ４２０のメモリ領域毎の構成情報を含む。具体的には、メモリ領域情報４３９は、メモリ領域毎に、メモリ領域名４３９Ａ、物理開始アドレス４３９Ｂ、物理終了アドレス４３９Ｃ、ブート時メモリテストビット４３９Ｄ及び状態４３９Ｅを含む。
【００６７】
メモリ領域名４３９Ａは、メモリ領域の名称である。物理開始アドレス４３９Ｂは、メモリ領域の物理的な開始アドレスである。物理終了アドレス４３９Ｃは、メモリ領域の物理的な終了アドレスである。ブート時メモリテストビット４３９Ｄは、ブート時にメモリテストを行うかどうかを示す。ブート時メモリテストビット４３９Ｄの値は、ブート時にメモリテストを行う場合に「１」、行わない場合に「０」となる。状態４３９Ｅはメモリ領域のテスト実施の有無及びエラーの有無を示す。
【００６８】
第１の実施形態では、状態４３９Ｅは、「テスト済み」、「未テスト」及び「エラー」の３つのうちのどれか一つの値となる。「テスト済み」は、メモリ領域のテストが完了したことを、「未テスト」は、メモリ領域がまだテストされていないことを、「エラー」は、メモリ領域のテストの結果、エラーが検出されたことを示す。
【００６９】
図５は、本発明の第１の実施形態のファイルシステム構成情報テーブルを示す説明図である。
【００７０】
ファイルシステム構成情報５１２は、ファイルサーバ４００が管理するファイルシステム毎のファイルシステム名５１２Ａ、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）５１２Ｂ、ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）５１２Ｃ、設定５１２Ｄ、容量５１２Ｅ及び優先度５１２Ｆを含む。
【００７１】
ファイルシステム名５１２Ａは、ファイルシステムの名称である。ＷＷＮ５１２Ｂは、ファイルシステムを格納したＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）の属するディスクサブシステム５００側のストレージＩＦ５４０のポートのアドレスである。ＷＷＮによって、ストレージＩＦ５４０のポートを一意に識別することが可能である。ＬＵＮ５１２Ｃは、ファイルシステムが格納されているＬＵの識別番号であり、ＬＵが所属するポート内のＬＵ識別のために用いられる。
【００７２】
設定５１２Ｄは、ファイルシステムの動作に関する設定内容を示す。ここでは、ファイルサーバ４００がクライアントサーバ２００からの更新データを受信した際に、「同期書き込み」又は「非同期書き込み」のどちらを実行するかを設定する例を示している。これらは、管理者が管理端末１００を通して設定する。
【００７３】
容量５１２Ｅは、ファイルシステムの容量である。優先度５１２Ｆは、ファイルシステムの優先度を示す。優先度が高いファイルシステムについては障害発生時及び保守時に優先的にフェールオーバが実行される。なお、ここでいうフェールオーバとは、ファイルシステムがその時点で稼働するファイルサーバ４００をファイルシステムが作成されたファイルサーバ４００から他のファイルサーバ４００に変更する処理をいう。なお、優先度は「１」が最も高い。
【００７４】
図６は、本発明の第１の実施形態のオプションプログラム構成情報テーブルを示す説明図である。
【００７５】
オプションプログラム構成情報５１１は、オプションプログラム４３６毎のオプションプログラム名５１１Ａ、使用メモリ容量５１１Ｂ及び優先度５１１Ｃを含む。オプションプログラム名５１１Ａは、オプションプログラム４３６の名称である。使用メモリ容量５１１Ｂは、オプションプログラム４３６を動作させるのに必要なメモリ容量を示す。優先度５１１Ｃは、オプションプログラム４３６の優先度を示す。なお、優先度は「１」が最も高い。
【００７６】
ＯＳプログラム４３３は、優先度５１１Ｃに応じてオプションプログラム４３６の起動タイミングを決定する。第１の実施形態では、優先度「１」のオプションプログラム４３６は、ＯＳブート時に起動され、優先度「２」のオプションプログラム４３６は、バックグラウンドメモリテストプログラム４３５が最初のメモリ領域のメモリテストを完了した時に起動され、優先度「３」のオプションプログラム４３６は、バックグラウンドメモリテストプログラム４３５が２番目のメモリ領域のメモリテストを完了した時に起動される。
【００７７】
なお、管理者（又はユーザ）は、ファイルサーバの運用形態に応じて、オプションプログラム５１１の優先度５１１Ｃを変更することができる。優先度「１」が付与され、ＯＳブート時に起動されるオプションプログラム４３６は、ファイルサービスの提供を開始するために必要なプログラムである。ファイルサービスの提供を開始するために必要なプログラムには、ほかに、管理者（又はユーザ）の設定にかかわらず起動されるプログラム（例えば、ＯＳプログラム４３３等）がある。優先度「２」又は「３」が付与されたオプションプログラム４３６は、ファイルサービスの提供を開始した後に起動されるプログラムである。
【００７８】
図７は、本発明の第１の実施形態のクラスタ構成情報テーブルを示す説明図である。
【００７９】
なお、ここでは、図１における第１のファイルサーバ１（４００Ａ）と第２のファイルサーバ２（４００Ｂ）とで構成されるクラスタを例に用いて、クラスタ構成情報５１３を説明する。なお、第１の実施形態では、ファイルサーバ４００がクラスタを構成しない場合にも適用することができる。
【００８０】
クラスタ構成情報５１３は、ファイルシステム毎のファイルシステム名５１３Ａ、所属ファイルサーバ５１３Ｂ及び稼働ファイルサーバ５１３Ｃを備える。ファイルシステム名５１３Ａは、ファイルシステムの名称である。所属ファイルサーバ５１３Ｂは、ファイルシステムが所属するファイルサーバ４００を示す。所属ファイルサーバ５１３Ｂは、ファイルシステムが作成されたファイルサーバ４００であり、通常時にはファイルシステムは所属ファイルサーバ上で稼働する。ここでいう、ファイルシステムがファイルサーバ４００上で稼働するとは、クライアントサーバ２００から受けたファイルシステムへのデータアクセス要求をファイルサーバ４００が処理することをいう。
【００８１】
稼働ファイルサーバ５１３Ｃは、ファイルシステムがその時点で稼働するファイルサーバ４００を示す。なお、通常時は所属ファイルサーバと稼働ファイルサーバは同一となる。障害発生及び保守によってフェールオーバが発生した場合には、フェールオーバ先のファイルサーバ４００が稼働ファイルサーバ５１３Ｃとなる。
【００８２】
以降では、第１の実施形態における各処理内容について図８から図１０Ｂまでのフローチャートを用いて説明する。
【００８３】
図８は、本発明の第１の実施形態のブートメモリテスト時におけるブートローダプログラムの処理を示すフローチャートである。
【００８４】
初めに、ブートローダプログラム４３１は、不揮発性メモリ４３０のメモリ領域情報４３９を読み込み（Ｓ１００）、メモリ領域情報４３９のブート時メモリテストビット４３９Ｄによって指定されたブートメモリ領域を処理対象とする。なお、この場合、メモリ領域情報４３９における各メモリ領域の状態４３９Ｅは初期化された後、すべて「未テスト」の状態とされてもよい。
【００８５】
ブートローダプログラム４３１は、ブート時メモリテストプログラム４３２に、指定されたブートメモリ領域（すなわち、ブート時メモリテストビット４３９Ｄが「１」となっているメモリ領域）のメモリテストを実行するよう指示する。ブート時メモリテストプログラム４３２は、指定されたブートメモリ領域のメモリテストを実行する（Ｓ１０１）。
【００８６】
なお、ここでいうメモリテストとは、メモリ領域を構成する物理メモリ媒体に対して、予め定められたテストパターンの書き込み、読み込み及び照合を行い、各ビットに期待した値が正しく書き込まれているかどうかを確認することをいう。
【００８７】
メモリテストが正常に終了した場合、ブートローダプログラム４３１は、メモリテストを完了したメモリ領域の状態４３９Ｅを「テスト済み」とする（Ｓ１０２）。一方、メモリテスト中にエラーが発生した場合、ブートローダプログラム４３１は、エラーが発生したメモリ領域の状態４３９Ｅを「エラー」とする（Ｓ１０２）。
【００８８】
また、必要に応じて、ブート時メモリテストプログラム４３２は、ブート時メモリテストにおいてブートメモリ領域のエラーを検知すると、ブートローダプログラム４３１へエラーを返してもよい。このエラーを受信したブートローダプログラム４３１は、管理端末１００にブートメモリ領域がエラー状態である旨を物理アドレスとともに通知し、管理者に物理メモリ媒体の交換が必要な旨を警告してもよい。
【００８９】
そして、ブートローダプログラム４３１は、「未テスト」となっているブートメモリ領域以外のメモリ領域の中から、エラーの発生したメモリ領域と同一又はそれ以上のサイズを有するメモリ領域を選び、そのメモリ領域のブート時メモリテストビット４３９Ｄを「１」に更新する（Ｓ１０２）。
【００９０】
次に、ブートローダプログラム４３１は、ブート時メモリテストビット４３９Ｄが「１」である「未テスト」のメモリ領域があるか否かを判定する（Ｓ１０３）。ブート時メモリテストビット４３９Ｄが「１」である「未テスト」のメモリ領域がある場合、ブートローダプログラム４３１は、当該メモリのテストを開始する（Ｓ１０１）。なお、ブートローダプログラム４３１は、ブートメモリ領域にエラーが生じたことによって、ブート時メモリテストビット４３９Ｄが新たに「１」に更新されたメモリ領域のメモリテストを行う。テストされたメモリ領域が正常であった場合は、そのメモリ領域をブート時におけるファイルサービス提供のために必要なメモリ領域として割り当てる。
【００９１】
ブート時メモリテストビット４３９Ｄが「１」である「未テスト」のメモリ領域がない場合、ブートローダプログラム４３１は、ブート時メモリテストは完了したと判断して、テストを行っていないメモリ領域の状態４３９Ｅを「未テスト」のままとして処理を終了する（Ｓ１０４）。その後、ブートローダプログラム４３１はＯＳブートを開始する。
【００９２】
上述した処理によって、ブートローダプログラム４３１は、メモリ領域情報４３９で指定されたメモリ領域のみをテスト対象とし、指定されていないその他のメモリ領域に対するテストをＯＳプログラム４３３に引き継ぐことができる。
【００９３】
図９は、本発明の第１の実施形態のバックグラウンドメモリテスト時におけるＯＳプログラム４３３及びバックグラウンドメモリテストプログラム４３５の処理を示すフローチャートである。
【００９４】
ＯＳプログラム４３３は、ブート後、不揮発性メモリ４３０上のメモリ領域情報４３９、ディスクサブシステム５００上のオプションプログラム構成情報５１１及びファイルシステム構成情報５１２を読み込む（Ｓ２００）。ＯＳプログラム４３３は、メモリ領域情報４３９の状態４３９Ｅを調べ、メモリテスト済みのメモリ領域（ただし、ＯＳ用メモリ領域を除く）を初期化し（Ｓ２０１）、バックアッププログラム等の各種のオプションプログラム４３６、キャッシュデータ４３９１及びセッション情報４３９２の格納に使用できるようにする。
【００９５】
なお、この場合、ＯＳプログラム４３３は、状態４３９Ｅが「エラー」を示しているメモリ領域を初期化せず、管理端末１００に対して、当該メモリ領域がエラー状態である旨を物理アドレスとともに通知し、管理者に物理メモリ媒体の交換が必要な旨を警告してもよい。
【００９６】
次に、ＯＳプログラム４３３は、ファイルシステム構成情報５１２を調べ、ファイルサービスプログラム４３４を起動する。さらに、ＯＳプログラム４３３は、オプションプログラム構成情報５１１を読み込み、優先度５１１Ｃが「１」であるオプションプログラム４３６を起動する（Ｓ２０２）。
【００９７】
次に、ＯＳプログラム４３３は、バックグラウンドメモリテストプログラム４３５を起動し、バックグラウンドメモリテストプログラム４３５に対して、「未テスト」であるメモリ領域のテストを開始するよう指示する（Ｓ２０３）。
【００９８】
指示を受けたバックグラウンドメモリテストプログラム４３５は、ＯＳプログラム４３３が指定したメモリ領域に対してメモリテストを実行する（Ｓ２１０）。バックグラウンドメモリテストプログラム４３５は、メモリエラーが検出された場合、ＯＳプログラム４３３にエラーを返す。
【００９９】
ＯＳプログラム４３３は、バックグラウンドメモリテストプログラム４３５がテストを行っている間、メモリテストの完了通知を受け取るまで待機する（Ｓ２０４）。ＯＳプログラム４３３は、バックグラウンドメモリテストプログラム４３５によるメモリテストが完了した後、テストされたメモリ領域にエラーが発生しているか否かを判定する（Ｓ２０７）。
【０１００】
ステップＳ２０７において、テストされたメモリ領域にエラーが発生していないと判定された場合、ＯＳプログラム４３３は、そのメモリ領域を初期化する。初期化されたメモリ領域は、キャッシュデータ４３９１及びセッション情報４３９２の格納用領域に使用される（Ｓ２０５）。一方、ステップＳ２０７において、テストされたメモリ領域にエラーが発生していると判定された場合（すなわち、バックグラウンドメモリテストプログラム４３５がエラーを返した場合）、ＯＳプログラム４３３は、管理端末１００にメモリ領域がエラー状態である旨を物理アドレスとともに通知し、管理者に物理メモリ媒体の交換が必要な旨警告する。
【０１０１】
その後、ＯＳプログラム４３３は、「未テスト」である次のメモリテスト領域に対してメモリテストを継続する。ＯＳプログラム４３３は、全メモリテスト領域のテストが完了したか否かを判定する（Ｓ２０６）。ＯＳプログラム４３３は、「未テスト」のメモリ領域が残っている場合はメモリテストを継続し（Ｓ２０３）、全メモリ領域のテストが完了している場合はメモリテストを終了する。
【０１０２】
上述した処理によって、ＯＳプログラム４３３は、ファイルサービスと並行してバックグラウンドでメモリテストを行うので、メモリテストが完了したメモリ領域毎に当該メモリ領域をファイルサービスに使用することが可能となる。
【０１０３】
なお、管理者が物理メモリ媒体の不具合を認識しやすいように、管理端末１００に通知される警告は、ブート時メモリテストプログラム４３２によって検知されたエラーとバックグラウンドメモリテストプログラム４３５によって検知されたエラーとを区別する情報を含んでもよい。この情報を含む警告を受信した管理端末１００は、これらのエラーを区別して表示してもよい。
【０１０４】
図１０Ａは、本発明の第１の実施形態のファイルシステム構成変更の場合の管理プログラム４３７の処理を示すフローチャートである。
【０１０５】
管理プログラム４３７は、ファイルシステムの作成及び削除といったファイルシステムの構成変更指示を管理端末１００から受け取り、ファイルシステム構成情報５１２を指示された内容に応じて更新する（Ｓ３００）。
【０１０６】
次に、管理プログラム４３７は、オプションプログラムの構成変更指示を管理端末１００から受け取り、オプションプログラム構成情報５１１を指示された内容に応じて更新する（Ｓ３０１）。
【０１０７】
次に、管理プログラム４３７はファイルシステム構成情報５１２及びオプションプログラム構成情報５１１によって、システム全体のブート時に必要なメモリ容量（ブート時メモリテストサイズ）を計算する（Ｓ３０２）。なお、メモリ容量の計算方法については図１０Ｂを用いて後述する。
【０１０８】
管理プログラム４３７は、ステップＳ３０２の計算によって見積もられたブート時に必要なメモリ容量に基づいて、ブート時にテストを行うメモリ領域を決定し、メモリ領域情報４３９のブート時メモリテストビット４３９Ｄを更新する（Ｓ３０３）。
【０１０９】
図１０Ｂは、本発明の第１の実施形態のファイルシステム構成変更の場合のブート時メモリ容量の計算方法を示すフローチャートである。
【０１１０】
管理プログラム４３７は、ＯＳ用のメモリ容量（すなわち、ＯＳプログラム４３３、ファイルサービスプログラム４３４及びバックグラウンドメモリテストプログラム４３５用のメモリ容量）、ファイルシステムのキャッシュデータ４３９１及びセッション情報４３９２を格納するためのメモリ容量、並びに、オプションプログラム４３６用のメモリ容量の総和からブート時のメモリテスト容量を計算する。
【０１１１】
初めに、管理プログラム４３７は、ＯＳ用のメモリ容量として、ＯＳプログラム４３３、ファイルサービスプログラム４３４及びバックグラウンドメモリテストプログラム４３５が動作するのに必要な一定量のメモリ容量をブート時のメモリテスト容量に加算する（Ｓ４００）。第１の実施形態では、ＯＳ用のメモリ容量を１ＧＢとする。
【０１１２】
次に、管理プログラム４３７は、ファイルシステムに同期書き込みが設定されているか否かを判定する（Ｓ４０１）。当該ファイルシステムに同期書き込みが設定されていると判定された場合、管理プログラム４３７は、キャッシュデータ用の容量として当該ファイルシステム容量の０．１％を、ブート時のメモリテスト容量に加算する（Ｓ４０２）。当該ファイルシステムに同期書き込みが設定されていないと判定された場合（すなわち非同期書き込みが設定されている場合）、管理プログラム４３７は、当該ファイルシステム容量の０．１５％を、ブート時のメモリテスト容量に加算する（Ｓ４０３）。なお、第１の実施形態におけるキャッシュデータ用のメモリ容量の計算に用いた比率（％）はあくまで例示にすぎず、ファイルサーバの運用形態に応じて適宜設定されてよい。
【０１１３】
管理プログラム４３７は、セッション情報４３９２を格納する容量を計算する。具体的には、管理プログラム４３７は、ファイルシステム容量１ＧＢ当たりに使用されるクライアントセッション数と、１クライアントセッションに必要なメモリ容量との積を、セッション情報４３９２を格納する容量として計算し、その計算された値を、ブート時のメモリテスト容量に加算する（Ｓ４０４）。第１の実施形態では、ファイルシステム容量１ＧＢ当たり１クライアントセッションが使用され、１クライアントセッションに１２５ＫＢ（ＫｉｌｏＢｙｔｅ）が必要であると仮定する。なお、上記の具体的な数値はあくまで例示にすぎず、ファイルサーバの運用形態に応じて適宜設定されてよい。
【０１１４】
次に、管理プログラム４３７は、すべてのファイルシステムに対して計算が完了したか否かを判定する（Ｓ４０５）。すべてのファイルシステムに対する計算が完了していない場合、管理プログラム４３７は、残りファイルシステムについても計算を行う（Ｓ４０１）。
【０１１５】
すべてのファイルシステムに対する計算が完了した場合、管理プログラム４３７は、オプションプログラム４３６に必要なメモリ容量を、ブート時のメモリテスト容量に加算する（Ｓ４０６）。ここでいうオプションプログラム４３６に必要なメモリ容量とは、オプションプログラム構成情報５１１で優先度５１１Ｃが「１」であるオプションプログラムの使用メモリ容量５１１Ｂの総和である。
【０１１６】
上述した処理によって、管理プログラム４３７は、ファイルシステム構成及びオプションプログラム構成に応じて、必要なメモリ容量を計算し、メモリ領域情報４３９に反映することができる。したがって、ファイルサーバ４００は、必要なメモリ容量についてのみブート時のメモリテスト対象とすることが可能となる。また、オプションプログラム４３６に構成の変更があった場合でも、管理プログラム４３７は、変更されたオプションプログラム構成情報５１１に応じて、オプションプログラム用メモリ容量を計算する。
【０１１７】
このように第１の実施形態によるメモリテスト方法によれば、ファイルサーバ４００は、ファイルシステム及びオプションプログラムの構成に応じて、必要なメモリ領域のみに対してシステムブート時にメモリテストを実施することができる。したがって、ファイルサーバ４００は、大容量メモリ搭載時においても、最小限の時間でブート時メモリテストを完了させることができる。
【０１１８】
なお、第１の実施形態において、システムブート時のメモリテスト容量の計算に、ファイルシステムの容量、ファイルシステムの設定（同期書き込み又は非同期書き込み）及びオプションプログラム４３６の有無に関する情報を用いたのは例示にすぎない。他にファイルサーバ４００上で動作する仮想ファイルサーバ数、使用ファイル数によって決まるファイルメタデータ格納容量等をメモリテスト容量の計算に用いてもよい。
【０１１９】
ここでいう、仮想ファイルサーバとは一つの物理ファイルサーバ４００で動作する仮想的に動作するファイルサーバのことをいう。なお、ファイルサーバ４００は、複数の仮想ファイルサーバに分割され、分割された各仮想ファイルサーバがファイルサービスを提供してもよい。この場合、分割された複数の仮想ファイルサーバは、メモリテストが完了したメモリ領域の容量に従って順に起動され、起動された仮想ファイルサーバがファイルサービスの提供を開始してもよい。
【０１２０】
また、メタデータとは、パス名等のファイル管理に必要なデータ本体以外の管理情報のことをいう。メタデータ格納容量はファイル数に応じて増加する。したがって、メモリテスト容量の計算のために、例えば、仮想ファイルサーバ１台当たりに必要な所定のメモリ容量を仮想ファイルサーバの台数分加算してもよいし、ファイルメタデータ格納容量に所定の割合（％）を乗じて、ファイルメタデータを格納するのに必要なメモリ容量を計算してもよい。
【０１２１】
また、メモリ領域情報４３９を不揮発性メモリ４３０に格納することは例示にすぎない。代わりに、メモリ領域情報４３９をディスクサブシステムに格納してもよい。また、メモリ領域情報４３９に事前にメモリ領域毎のブート時メモリテスト実施の有無を記しているのも例示にすぎない。代わりに、システムブート時にブートローダプログラム４３１が各種設定情報に基づいて必要なメモリ容量をメモリテスト前に計算してもよい。
【０１２２】
また、第１の実施形態で示したように、ＣＰＵ４１０がテストパターンを書き込むことは、メモリテスト方法の例示にすぎない。代わりに、メモリテストパターンの書き込みを、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）エンジン等の、ファイルサーバを構成する他のハードウェア構成要素にオフロードしてもよい。
【０１２３】
＜実施形態２＞
本発明の第２の実施形態について、図１、図２及び図１１から図１２Ｃを用いて説明する。
【０１２４】
（２−１）第２の実施形態によるコンピュータシステムの構成
第２の実施形態におけるコンピュータシステムの構成は、第１の実施形態のコンピュータシステムの構成を示した図１、図２と同一である。第２の実施形態のコンピュータシステムでは、２台以上のファイルサーバ４００を備え、それらのファイルサーバがクラスタを構成する。第１の実施形態に比べ、クラスタ管理プログラム４３８が、サービス開始後にメモリテストが完了し、使用可能となったメモリ容量に応じて、ファイルシステムの稼働ファイルサーバ４００を動的に変更する点で異なる。
【０１２５】
以降では、説明の簡略化のため、クラスタをファイルサーバ１（図１及び図２における４００Ａ）とファイルサーバ２（図１及び図２における４００Ｂ）の２台で構成するものとして説明する。第２の実施形態は、２台以上のファイルサーバがクラスタを構成する場合にも適用できる。
【０１２６】
（２−２）第２の実施形態の概要
第１の実施形態の場合、ファイルサーバ４００は、システムブート時のメモリテスト領域を必要な領域に限定することによって、ブート時間を短縮できるが、その反面で、システムブート直後のメモリ容量は通常の運用時に比べて少なくなる。したがって、そのような状態でファイルサーバ４００が、通常運用時と同数のファイルシステムを稼働した場合、メモリ容量が相対的に少ないため、期待した性能が得られない恐れがある。しかしながら、その一方で、システムブート直後の性能を上げるために、ブート時のメモリテスト容量を増やした場合は、ブート時間が長くなるため、システムブート時のメモリテスト時間を最少化することによってシステムブート時間を短縮しようとする当初の目的と相反する。
【０１２７】
このような問題を解決するため、第２の実施形態では、ファイルサーバ１（４００Ａ）とファイルサーバ２（４００Ｂ）との間で、使用可能なメモリ容量に応じて、稼働ファイルサーバ４００を動的に変更する。メモリテストを行うファイルサーバ１（４００Ａ）はメモリテスト前のリブート時に自身に所属する全ファイルシステムを他のファイルサーバ２（４００Ｂ）にフェールオーバする。その後、ファイルサーバ１（４００Ａ）は、第１の実施形態で述べた方法によって、ブート時メモリテストを行った後、フェールオーバ先のファイルサーバ２（４００Ｂ）から一部のファイルシステムのみをフェールバックする。
【０１２８】
その後、ファイルサーバ１（４００Ａ）は、フェールバックしたファイルシステムのみについてファイルサービスを開始する。その後、ファイルサーバ１（４００Ａ）は、メモリテストの進行状況に合わせてファイルシステムを一つずつファイルサーバ２（４００Ｂ）からフェールバックする。この処理によって、ファイルサーバ４００は、使用可能メモリに応じてファイルシステム数を動的に変更し、メモリ使用量が少ない状態においては通常時より負荷を軽減することができ、その結果性能低下を抑えることができる。
【０１２９】
なお、ここでいうフェールオーバとは、ファイルシステムの稼働ファイルサーバ４００を所属ファイルサーバ４００から他のファイルサーバ４００に変更する処理、フェールバックとはファイルシステムの稼働ファイルサーバ４００を所属ファイルサーバ４００に戻す処理をいう。リブートはシステムシャットダウン後、直ちにシステムブートを行う処理をいう。
【０１３０】
次に、第２の実施形態の運用例を説明する。
【０１３１】
図１１は、本発明の第２の実施形態のファイルサーバにおけるメモリテスト及びフェールバックの概要を示す説明図である。
【０１３２】
図１１に示す運用例では、ファイルサーバ１（４００Ａ）は、ファイルサーバ１（４００Ａ）に所属しているファイルシステムをファイルサーバ２（４００Ｂ）にフェールオーバした後にリブートし、メモリテストを行う。図１１には各メモリ領域のメモリテスト完了時刻、及び、メモリテスト完了を契機に行うファイルシステム毎のフェールバック時刻を示している。
【０１３３】
初めに、ファイルサーバ１（４００Ａ）は、１６：５８分にシステムブートを開始し、第１の実施形態と同一の方法によって、ブート時メモリテストを実行する。ファイルサーバ１（４００Ａ）は、メモリ領域１及び２のテストを開始し（１６：５８）、１７：００に完了する。次に、ファイルサーバ１（４００Ａ）は、メモリ領域１及び２を利用し、各種プログラムを起動する。
【０１３４】
次に、ファイルサーバ１（４００Ａ）は、ファイルサーバ２（４００Ｂ）から、ファイルシステム１（ＦＳ１）をフェールバックし、ファイルサービスを開始する。この場合、フェールバックを行うファイルシステム数はファイルサーバ１（４００Ａ）が使用することのできるメモリ容量に応じて決まるため、通常時よりも性能が低下することを抑えることができる。次に、ファイルサーバ１（４００Ａ）は、ファイルサービスを開始し、バックグラウンドでメモリテストを実施する。ファイルサーバ１（４００Ａ）は、各メモリ領域のメモリテストが完了され次第、当該メモリ領域の初期化を行い、ファイルサーバ２（４００Ｂ）からファイルシステムのフェールバックを行って、当該メモリ領域を使用したファイルサービスを開始する。
【０１３５】
これらのフェールバックにおいて、ファイルサーバ１（４００Ａ）は、使用可能になったメモリ容量に応じてファイルシステム数を決定するため、大幅な性能低下は発生しない。
【０１３６】
第２の実施形態における運用例において、ファイルサーバ１（４００Ａ）は、メモリテスト領域３のメモリテストを１７：０５に完了した後、ファイルシステム２（ＦＳ２）をフェールバックし、メモリテスト領域４のメモリテストを１７：１０に完了した後、ファイルシステム３（ＦＳ３）をフェールバックし、メモリテスト領域５のメモリテストを１７：１５に完了した後、ファイルシステム４（ＦＳ４）をフェールバックしている。
【０１３７】
（２−３）第２の実施形態によるメモリテスト方法
以降では、第２の実施形態と第１の実施形態との差分について説明する。
【０１３８】
図１２Ａは、本発明の第２の実施形態のファイルサーバリブートの場合のＯＳプログラム４３３の処理を示すフローチャートである。
【０１３９】
図１２Ａは、ファイルサーバ１（４００Ａ）のリブート処理におけるファイルサーバ１（４００Ａ）及びファイルサーバ２（４００Ｂ）のそれぞれのＯＳプログラム４３３の処理内容を示している。
【０１４０】
ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、システムシャットダウンの前に、クラスタ管理プログラム４３８にファイルシステムのフェールオーバを指示し、指示を受けたクラスタ管理プログラム４３８は、ファイルサーバ１（４００Ａ）に所属する全ファイルシステム（ＦＳ１、ＦＳ２、ＦＳ３及びＦＳ４）をファイルサーバ２（４００Ｂ）にフェールオーバする（Ｓ５０１）。ファイルサーバ２（４００Ｂ）のＯＳプログラム４３３は、ファイルサーバ１（４００Ａ）からファイルシステムを引き受け（Ｓ５１１）、引き受けたファイルシステムのファイルサービスを開始する。
【０１４１】
次に、ファイルサーバ１（４００Ａ）のＯＳプログラム４３３はシステムシャットダウンを行う（Ｓ５０２）。第１の実施形態と同一の手順で、ファイルサーバ１（４００Ａ）のブートローダプログラム４３１はシステムブートし、ＯＳプログラム４３３を起動し、起動されたＯＳプログラム４３３はＯＳを起動する（Ｓ５０３）。システムブート時にはブート時メモリテストが実行されるが、これらの処理は第１の実施形態と同一の手順のため説明は省略する。
【０１４２】
ファイルサーバ２（４００Ｂ）のＯＳプログラム４３３は、ファイルサーバ１（４００Ａ）のＯＳが起動したのを検知した後、一つ以上のファイルシステムをファイルサーバ１（４００Ａ）にフェールバックする（Ｓ５１２）。ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、フェールバックされたファイルシステムを引き受ける（Ｓ５０４）。
【０１４３】
この場合、フェールバックするファイルシステムはファイルシステム構成情報５１２に記された優先度５１２Ｆに基づき自動的に決まる。ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、バックグラウンドメモリテストプログラム４３５に指示して、第１の実施形態と同一の方法によってメモリテストを実行する（Ｓ５０５）。これらの処理は、第１の実施形態と同一の手順のため説明を省略する。
【０１４４】
次に、ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、各メモリ領域のメモリテストが完了したことを契機とし、オプションプログラムを起動する（Ｓ５０８）。この場合、起動するオプションプログラムは利用可能なメモリ容量及びオプションプログラム毎に使用するメモリ容量に応じて自動的に決定される。これらの処理の詳細については図１２Ｂを用いて後述する。
【０１４５】
次に、ファイルサーバ２（４００Ｂ）のＯＳプログラム４３３は、ファイルシステムの一部をフェールバックする（Ｓ５１３）。ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、フェールバックされたファイルシステムを引き受ける（Ｓ５０６）。この場合、フェールバック対象となるファイルシステムは利用可能なメモリ容量及びファイルシステム毎に使用するメモリ容量に応じて自動的に決定される。これらの処理の詳細については図１２Ｃを用いて後述する。
【０１４６】
ファイルサーバ２（４００Ｂ）のＯＳプログラム４３３は、フェールオーバされたすべてのファイルシステムをフェールバックするまで処理を続け、すべてのファイルシステムのフェールバックが完了した後、処理を終了する（Ｓ５１４）。
【０１４７】
ファイルサーバ１（４００Ａ）のＯＳプログラム４３３は、メインメモリ４２０の全領域のメモリテストを完了するまで、上記の処理を続け、全領域のメモリテストが完了した後、処理を終了する（Ｓ５０７）。次にステップＳ５０８において起動するオプションプログラムの決定方法について説明する。
【０１４８】
図１２Ｂは、本発明の第２の実施形態のオプションプログラム起動処理におけるＯＳプログラム４３３の処理を示すフローチャートである。
【０１４９】
初めに、ＯＳプログラム４３３は、未起動のオプションプログラム４３６があるか否かを判定する（Ｓ６０１）。未使用のオプションプログラム４３６がある場合、ＯＳプログラム４３３は、処理を進め、使用可能なメモリ容量を計算する（Ｓ６０２）。未使用のオプションプログラム４３６がない場合、ＯＳプログラム４３３は、処理を終了する。
【０１５０】
使用可能なメモリ容量とは、ステップＳ５０５で初期化したメモリ領域のサイズの１割から、初期化以降に起動したオプションプログラム４３６の使用メモリ容量を引いた容量のことをいう。ただし、ここでいう初期化メモリ容量の１割とは例示であり、より大きい（又は小さい）割合であってもよい。次に、ＯＳプログラム４３３は、起動対象とするオプションプログラム４３６をオプションプログラム構成情報５１１の優先度５１１Ｃに従って一つ選択し、使用メモリ容量を調べる（Ｓ６０３）。次に、ＯＳプログラム４３３は、ステップＳ６０２で計算した使用可能メモリ容量とステップＳ６０３で調べた使用メモリ容量とを比較する（Ｓ６０４）。
【０１５１】
使用可能なメモリ容量の方がオプションプログラムの使用容量よりも大きい場合、ＯＳプログラム４３３は、当該オプションプログラム４３６を起動し（Ｓ６０５）、次のオプションプログラム４３６の処理を開始する。それ以外の場合（すなわち、使用可能なメモリ容量の方がオプションプログラムの使用容量よりも小さい場合）、ＯＳプログラム４３３は、オプションプログラム４３６の起動処理を終了する。
【０１５２】
続いて、ステップＳ５０６におけるフェールバック対象のファイルシステムの決定方法について説明する。
【０１５３】
図１２Ｃは、本発明の第２の実施形態のフェールバック引き受け処理におけるＯＳプログラム４３３の処理を示すフローチャートである。
【０１５４】
図１２Ｃでは、図１２ＡのステップＳ５０６に示したファイルサーバ１（４００Ａ）がフェールバック引き受ける場合のファイルサーバ１（４００Ａ）のＯＳプログラム４３３の処理を示している。
【０１５５】
初めに、ＯＳプログラム４３３は、クラスタ構成情報５１３を調べ、フェールバックされていないファイルシステムがあるか否かを判定する（Ｓ７０１）。フェールバックされていないファイルシステムがある場合、ＯＳプログラム４３３は、メモリテストが完了していて使用されていない空きメモリ容量を調べる（Ｓ７０２）。フェールバックされていないファイルシステムがない場合（すなわち、すべてのファイルシステムのフェールバックが終了した場合）、ＯＳプログラム４３３は、処理を終了する。
【０１５６】
ステップＳ７０２の次に、ＯＳプログラム４３３は、フェールオーバの対象とするファイルシステムを一つ選択し、選択されたファイルシステムに必要なメモリ容量を調べる（Ｓ７０３）。ここで、フェールオーバの対象とするファイルシステムは、ファイルシステム構成情報５１２の優先度５１２Ｆに基づいて選択される。選択されたファイルシステムに必要なメモリ容量は、図１０ＢのステップＳ４０１からステップＳ４０３に示した方法によって計算される。
【０１５７】
その後、ＯＳプログラム４３３は、ステップＳ７０２で調べた空きメモリ容量が、選択されたファイルシステムに必要なメモリ容量よりも大きいか否かを判定する（Ｓ７０４）。空きメモリ容量が必要なメモリ容量よりも大きい場合、ＯＳプログラム４３３は、ファイルサーバ２（４００Ｂ）にファイルシステムのフェールバックを要求し（Ｓ７０５）、次に選択されたファイルシステムに対してもステップＳ７０１からステップＳ７０４の処理を行う。空きメモリ容量が必要なメモリ容量より小さい場合、ＯＳプログラム４３３は、処理を終了する。
【０１５８】
このような処理によって、ファイルサーバ１（４００Ａ）は、使用可能なメモリ容量に応じてファイルサーバ１（４００Ａ）自身で稼働するファイルシステム数を動的に変えることができる。したがって、ファイルサーバ１（４００Ａ）は、メモリ容量が少ない状態における自身の負荷を減らすことができ、ブート直後のファイルサービスの性能が通常時の性能に比べて低下することを抑えることができる。
【０１５９】
なお、第２の実施形態では、フェールオーバの対象としてファイルシステムを例示したが、複数のファイルシステムから構成されたファイルシステム群、又は、仮想ファイルサーバ等をフェールオーバの対象としてもよい。また、メモリテスト後に起動するオプションプログラム及びフェールバックするファイルシステムを自動的に決める方法を例示したが、管理者がこれらを事前に指定してもよい。
【０１６０】
＜実施形態３＞
本発明の第３の実施形態について、図１、図２、図１３及び図１４を用いて説明する。
【０１６１】
（３−１）第３の実施形態によるコンピュータシステムの構成
第３の実施形態におけるコンピュータシステムの構成は、第１の実施形態のコンピュータシステムの構成を示した図１、図２と同一である。第３の実施形態におけるコンピュータシステムは、管理者による指定に基づいて、ブート時のメモリテストを行うメモリ容量が変更される点が、第１の実施形態と異なる。具体的には、第３の実施形態において、管理者は、管理端末１００上の管理ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  ＩｎｔｅｒＦａｃｅ）プログラム１１０を通して、システムブート時に必要なキャッシュデータ４３９１の容量、セッション数及びオプションプログラム４３６を指定する。指定された値に基づいてブート時のメモリテストを行うメモリ容量が変更される。
【０１６２】
（３−２）第３の実施形態の概要
第１及び第２の実施形態で示したブート時メモリテストでは、システムブート時のメモリテスト対象のメモリサイズは、ファイルシステムの構成及びオプションプログラム４３６の有無に基づいて、あらかじめ定められた計算方法によって決定される。このような方法を用いた場合、多くの場合でブート直後においても必要な性能を得ることができる。しかし、通常よりも大きな負荷がかかるような用途においては、このような汎用的な計算方法を用いた場合、メモリ容量が不足し、過負荷状態となる恐れがある。
【０１６３】
このような問題を解決するため、第３の実施形態では、管理者が管理端末１００の管理ＧＵＩプログラム１１０を通して起動時に必要なキャッシュデータ４３９１の容量、セッション数、起動時に動作するオプションプログラム４３６、及び、自身のファイルサーバで管理するファイルシステム等のサービスレベルを指定し、これによってブート時メモリテストの対象容量を増減することができる。
【０１６４】
ブート時サービスレベル設定画面例を用いて第３の実施形態の概要を説明する。
【０１６５】
図１３は、本発明の第３の実施形態のサービスレベル設定画面を示す説明図である。
【０１６６】
管理者は、ファイルサーバ４００の運用時に管理端末１００を通して、図１３に示すキャッシュデータ容量１１０Ａ、セッション数１１０Ｂ、メタデータキャッシュ容量１１０Ｅ、オプションプログラム１１０Ｃ及びブート時稼動ファイルシステム１１０Ｄの各項目を設定することによって、システムブート直後のサービスレベルを設定することができる。ここでいう、キャッシュデータ容量１１０Ａとは、ブート時に格納可能なキャッシュデータ４３９１の容量、セッション数１１０Ｂとは、ブート時に格納可能なクライアントのセッション数、メタデータキャッシュ容量とは、キャッシュデータ４３９１とは別にファイル管理情報専用に割り当てられたメモリ容量である。
【０１６７】
オプションプログラム１１０Ｃは、ブート時に起動するオプションプログラム４３６を指定する。これによって、管理者（又はユーザ）は、ファイルサービスの提供を開始するために必要なプログラム、及び、ファイルサービスの提供を開始した後に起動されるプログラムを指定することができる。
【０１６８】
ここで、ファイルサービスの提供を開始するために必要なプログラムとは、ファイルサーバ４００がファイルサービスの提供を開始した時に提供されるプログラムであり、管理者（又はユーザ）によって設定されるオプションプログラム４３６のほか、ユーザの設定にかかわらず起動されるプログラム（例えば、ＯＳプログラム４３３等）が含まれる。なお、ファイルサービスの提供を開始するために必要なプログラムは、例えば、図１３に示したサービスレベルの設定画面において、管理者（又はユーザ）がオプションプログラム１１０Ｃのチェックボックスをチェックすることによって設定される。
【０１６９】
また、ファイルサービスの提供を開始した後に起動されるプログラムとは、ファイルサーバ４００がファイルサービスの提供を開始した後に追加して提供されるプログラムであり、管理者（ユーザ）によって設定されるプログラムである。なお、ファイルサービスの提供を開始した後に起動されるプログラムは、例えば、図１３に示したサービスレベルの設定画面において、管理者（又はユーザ）がオプションプログラム１１０Ｃのチェックボックスをチェックしないことによって設定される。なお、ファイルサーバ４００は、ライセンスの条件及びユーザの設定によって、ファイルサービスの提供には必要とされないプログラムを備える場合があるが、このようなプログラムは、ファイルサービスの提供を開始した後に起動されるプログラムから除外し、バックグラウンドメモリテストプログラム４３５によってテストされたメモリ領域に格納されなくてよい。
【０１７０】
ブート時稼動ファイルシステム１１０Ｄは、ブート時に自ファイルサーバで稼働するファイルシステムを指定する。なお、メタデータキャッシュ専用の領域を設けることによって、一定数以上のファイル管理情報が必ずキャッシュされることが保証され、ファイル情報取得等のファイルリードライト以外のオペレーションが高速化される。
【０１７１】
第３の実施形態に示す入力内容に従えば、キャッシュデータ４３９１用に２ＧＢ、セッション情報４３９２格納用に４０００セッション（０．５ＧＢ相当）、メタデータキャッシュ用に１ＧＢの容量が設定されている。ＯＳ用の容量を１ＧＢ、バックアップのオプションプログラム４３６用の容量を０．５ＧＢと仮定すると、ブート時のメモリテスト容量としては総計５ＧＢが算出される。なお、ＯＳ用、セッション情報４３９２格納用及びオプションプログラム４３６用のメモリ容量の計算方法は第１の実施形態と同一のため、説明は省略する。なお、上記の具体的な数値はあくまで例示であり、ファイルサーバの運用形態に応じて適宜設定されてよい。
【０１７２】
ブート時サービスレベル設定画面を通して設定された内容は、管理ＧＵＩプログラム１１０によってファイルサーバ４００の管理プログラム４３７に送信され、送信された内容がメモリ領域情報４３９に反映される。よって、次回以降のファイルサーバ４００のシステムブート時には、これらの設定内容に基づいて、指定された領域に対してのブート時メモリテストが行われる。
【０１７３】
このような処理によって、ファイルサーバ１（４００Ａ）はブート直後においても必要とするサービスレベルを確保することができる。
（３−３）第３の実施形態によるメモリテスト方法
以降では、第３の実施形態と第１及び２の実施形態との差分について説明する。
【０１７４】
図１４は、本発明の第３の実施形態のファイルシステム構成変更の場合の管理ＧＵＩプログラム１１０及び管理プログラム４３７の処理を示すフローチャートである。
【０１７５】
初めに、管理ＧＵＩプログラム１１０は、ブート時サービスレベル設定画面を介して管理者が設定した内容を取得する（Ｓ８０１）。次に、管理ＧＵＩプログラム１１０は、管理者の設定内容を管理プログラム４３７に送信する（Ｓ８０２）。管理プログラム４３７は、管理ＧＵＩプログラム１１０が送信した設定内容を受信する。次に、管理プログラム４３７は、オプションプログラム構成情報５１１を読み取り、読み取った設定内容が管理ＧＵＩプログラム１１０から受信した設定内容と異なる場合には、受信した設定内容を反映させて、オプションプログラム構成情報５１１を更新する（Ｓ８１１）。
【０１７６】
次に、管理プログラム４３７は、ファイルシステム構成情報５１２を読み取り、読み取った設定内容が管理ＧＵＩプログラム１１０から受信した設定内容と異なる場合には、受信した設定内容を反映させて、ファイルシステム構成情報５１２を更新する（Ｓ８１２）。
【０１７７】
その後、管理プログラム４３７は、ブート時メモリテストサイズを計算する（Ｓ８１３）。ステップＳ８１３において、第１の実施形態で述べた方法によって計算されたメモリテストサイズの値がブート時サービスレベル設定画面経由で設定されたキャッシュデータ容量１１０Ａ及びセッション数１１０Ｂに満たない場合は、管理プログラム４３７は、その差分を第１の実施形態で述べた方法によって計算されたメモリテストサイズに加算する。次に、管理プログラム４３７は、第１の実施形態で説明した方法によって、メモリ領域情報４３９を更新する（Ｓ８１４）。
【０１７８】
このような処理によって、ファイルサーバ１（４００Ａ）は、管理者が設定したサービスレベルを満たすブート時メモリテストサイズを設定し、ブート直後に必要なサービスレベルを実現することができる。このように第３の実施形態によるメモリテスト方法によれば、管理者は必要とするサービスレベルに応じてブート時のメモリテスト領域を変えることができる。
【０１７９】
なお、第３の実施形態の運用例では、管理端末１００上で動作する管理ＧＵＩプログラム１１０を用いたサービスレベルの設定方法を述べたが、第３の実施形態はこのような設定方法に限定されない。具体的には、第３の実施形態は、管理端末１００がＣＵＩ（Ｃｈａｒａｃｔｅｒ−ｂａｓｅｄ  Ｕｓｅｒ  ＩｎｔｅｒＦａｃｅ又はＣｏｍｍａｎｄ  Ｌｉｎｅ  Ｕｓｅｒ  ＩｎｔｅｒＦａｃｅ）を提供する場合及びファイルサーバ４００がＧＵＩ／ＣＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  ＩｎｔｅｒＦａｃｅ／Ｃｈａｒａｃｔｅｒ−ｂａｓｅｄ  Ｕｓｅｒ  ＩｎｔｅｒＦａｃｅ）を提供する場合においても同様に適用することができる。
【０１８０】
さらに、本発明は、ファイルサーバの他、ディスクアレイコントローラ、メインフレーム、汎用サーバ、汎用ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の種々の装置に適用することができる。
【図面の簡単な説明】
【０１８１】
【図１】本発明の第１の実施形態のコンピュータシステムのハードウェア構成を示すブロック図である。
【図２】本発明の第１の実施形態のコンピュータシステムのソフトウェア構成を示すブロック図である。
【図３Ａ】本発明の第１の実施形態のファイルサーバにおけるメモリテストの概要を示す説明図である。
【図３Ｂ】本発明の第１の実施形態のメモリテストにおける時刻毎のイベント及び状態を示す説明図である。
【図４】本発明の第１の実施形態のメモリ領域情報テーブルを示す説明図である
【図５】本発明の第１の実施形態のファイルシステム構成情報テーブルを示す説明図である。
【図６】本発明の第１の実施形態のファイルシステム構成情報テーブルを示す説明図である。
【図７】本発明の第１の実施形態のクラスタ構成情報テーブルを示す説明図である。
【図８】本発明の第１の実施形態のブートメモリテスト時におけるブートローダプログラムの処理を示すフローチャートである。
【図９】本発明の第１の実施形態のバックグラウンドメモリテスト時におけるＯＳプログラム及びバックグラウンドメモリテストプログラムの処理を示すフローチャートである。
【図１０Ａ】本発明の第１の実施形態のファイルシステム構成変更の場合の管理プログラムの処理を示すフローチャートである。
【図１０Ｂ】本発明の第１の実施形態のファイルシステム構成変更の場合のブート時メモリ容量の計算方法を示すフローチャートである。
【図１１】本発明の第２の実施形態のファイルサーバにおけるメモリテスト及びフェールバックの概要を示す説明図である。
【図１２Ａ】本発明の第２の実施形態のファイルサーバリブートの場合のＯＳプログラムの処理を示すフローチャートである。
【図１２Ｂ】本発明の第２の実施形態のオプションプログラム起動処理におけるＯＳプログラムの処理を示すフローチャートである。
【図１２Ｃ】本発明の第２の実施形態のフェールバック引き受け処理におけるＯＳプログラムの処理を示すフローチャートである。
【図１３】本発明の第３の実施形態のサービスレベル設定画面を示す説明図である。
【図１４】本発明の第３の実施形態のファイルシステム構成変更の場合の管理ＧＵＩプログラム及び管理プログラムの処理を示すフローチャートである。
【符号の説明】
【０１８２】
１００  管理端末
１１０  管理ＧＵＩプログラム
２００  クライアントサーバ
３００  ネットワーク
４００、４００Ａ、４００Ｂ  ファイルサーバ
４１０  ＣＰＵ
４２０  メインメモリ
４３０  不揮発性メモリ
４３１  ブートローダプログラム
４３２  ブート時メモリテストプログラム
４３３  ＯＳプログラム
４３４  ファイルサービスプログラム
４３５  バックグラウンドメモリテストプログラム
４３６  オプションプログラム
４３７  管理プログラム
４３８  クラスタ管理プログラム
４３９  メモリ領域情報
４３９１  キャッシュデータ
４３９２  セッション情報
４４０  ネットワークＩＦ
４５０  ストレージＩＦ
５００  ディスクサブシステム
５１０  ＣＰＵ
５１１  オプションプログラム構成情報
５１２  ファイルシステム構成情報
５１３  クラスタ構成情報
５２０  メインメモリ
５２１  ストレージ制御プログラム
５３０  記憶装置
５４０  ストレージＩＦ
６００  ストレージネットワーク
【図１】
2010044635.tif 000003
【図２】
2010044635.tif 000004
【図３Ａ】
2010044635.tif 000005
【図３Ｂ】
2010044635.tif 000006
【図４】
2010044635.tif 000007
【図５】
2010044635.tif 000008
【図６】
2010044635.tif 000009
【図７】
2010044635.tif 000010
【図８】
2010044635.tif 000011
【図９】
2010044635.tif 000012
【図１０Ａ】
2010044635.tif 000013
【図１０Ｂ】
2010044635.tif 000014
【図１１】
2010044635.tif 000015
【図１２Ａ】
2010044635.tif 000016
【図１２Ｂ】
2010044635.tif 000017
【図１２Ｃ】
2010044635.tif 000018
【図１３】
2010044635.tif 000019
【図１４】
2010044635.tif 000020