(57)【要約】【課題】クラスタ構成のＮＡＳにおいて、ファイルシステムがサーバ間でマイグレーションされると、再度名前解決をする必要がある。【解決手段】サーバは、ファイルシステムのマウント位置を管理する管理テーブルを保持する。前記管理テーブルには、前記ファイルシステムをストレージシステム内で一意に識別するファイルシステム識別子、前記ファイルシステムのマウント位置を示すマウント位置情報、及び、前記ファイルシステムを管理する前記サーバの識別子を示す管理サーバ識別子が格納される。各サーバの管理テーブルに格納された内容は、同一である。各サーバは、ファイルハンドルの取得要求を受けると、当該取得要求されたファイルハンドルを応答する。前記ファイルハンドルは、前記取得要求に関するファイルが格納されている前記ディスクサブシステム上の記憶領域を前記ストレージシステム内で一意に示す。【選択図】      図７
2006164169.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバと、
前記複数のサーバと接続されるディスクサブシステムと、を備えるストレージシステムにおいて、
前記ディスクサブシステムは、
少なくとも一つの論理デバイスと、
前記少なくとも一つの論理デバイスに格納された少なくとも一つのファイルシステムと、を備え、
前記各サーバは、前記ファイルシステムのマウント位置を管理する管理テーブルを保持し、
前記管理テーブルには、前記ファイルシステムを前記ストレージシステム内で一意に識別するファイルシステム識別子、前記ファイルシステムのマウント位置を示すマウント位置情報、及び、前記ファイルシステムを管理する前記サーバの識別子を示す管理サーバ識別子が、前記各サーバで共通の内容で格納され、
前記各サーバは、前記ファイルシステム内のファイルのデータが格納されている前記ディスクサブシステム上の記憶領域を示すファイルハンドルの取得要求を受けると、前記取得要求に関するファイルのデータが格納されている前記ディスクサブシステム上の記憶領域を前記ストレージシステム内で一意に示すファイルハンドルを応答することを特徴とするストレージシステム。
【請求項２】
前記複数のサーバは、第１サーバ及び第２サーバを含み、
前記第１サーバは、前記ファイルシステムの新規作成の指示を受けると、
前記指示に関する論理デバイスに前記ファイルシステムを作成し、
前記作成されたファイルシステムに関する前記ファイルシステム識別子、前記マウント位置情報及び前記管理サーバ識別子を追加して前記管理テーブルの内容を更新し、
少なくとも前記管理テーブルの更新の内容を前記第２サーバに送信し、
前記第２サーバは、前記第１サーバから送信された前記管理テーブルの更新の内容を参照して、当該第２サーバに保持される前記管理テーブルを更新することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記複数のサーバは、第１サーバ及び第２サーバを含み、
前記第１サーバは、前記ファイルシステムを前記第２サーバに移動するマイグレーション指示を受けると、
前記第１サーバに保持されている前記管理テーブルの、前記マイグレーション指示の対象のファイルシステムに対応する前記管理サーバ識別子を、前記第２サーバの識別子に更新し、
少なくとも前記管理テーブルの更新の内容を前記第２サーバに送信し、
前記第２サーバは、前記第１サーバから送信された前記管理テーブルの更新の内容を参照して、当該第２サーバに保持される前記管理テーブルを更新することを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記第１サーバは、
前記マイグレーション指示を受けると、マイグレーションを開始することを通知する開始通知を前記第２サーバに送信し、
前記開始通知を送信した後に、当該マイグレーション指示の対象のファイルシステム内の前記ファイルへのアクセス要求を受けると、前記第２サーバの識別子を応答することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記第２サーバは、
前記マイグレーション指示の対象のファイルシステムをマウントし、
前記開始通知を受けた後、前記マウントが終了するまでの間に、前記マイグレーション指示の対象のファイルシステム内のファイルへのアクセス要求を受けると、当該アクセス要求を保留することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記第２サーバは、
前記マイグレーション指示の対象のファイルシステムをマウントし、
前記開始通知を受けた後、前記マウントが終了するまでの間に、前記マイグレーション指示の対象のファイルシステム内のファイルへのアクセス要求を受けると、一時エラーを応答することを特徴とする請求項４に記載のストレージシステム。
【請求項７】
前記開始通知は、前記マイグレーション指示の対象のファイルシステムが格納されている前記論理デバイスを前記ストレージシステム内で一意に識別する論理デバイス識別子を含み、
前記第１サーバは、当該マイグレーション指示を受けると、前記マイグレーション指示の対象のファイルシステムを、当該ファイルシステムが格納されている複写元の前記論理デバイスから、複写先の前記論理デバイスに複写し、
前記複写先の論理デバイスの前記論理デバイス識別子を、前記複写が実行される前の前記複写元の論理デバイスの前記論理デバイス識別子と同一にすることを特徴とする請求項４に記載のストレージシステム。
【請求項８】
前記ファイルハンドルは、前記ファイルシステムが格納された前記論理デバイスを前記ストレージシステム内で一意に識別する論理デバイス識別子を含むことを特徴とする請求項１に記載のストレージシステム。
【請求項９】
前記ファイルハンドルは、前記論理デバイス内で前記ファイルシステムを一意に識別するファイルシステム番号をさらに含むことを特徴とする請求項８に記載のストレージシステム。
【請求項１０】
複数のサーバと、前記複数のサーバと接続されるディスクサブシステムと、を備え、クライアント計算機と接続されたストレージシステムの制御方法において、
前記ディスクサブシステムは、少なくとも一つの論理デバイスと、前記少なくとも一つの論理デバイスに格納された少なくとも一つのファイルシステムと、を備え、
前記複数のサーバは、第１サーバ及び第２サーバを含み、
前記制御方法は、
前記第１サーバが、前記クライアント計算機から、前記ファイルシステム内のファイルのデータが格納されている前記ディスクサブシステム上の記憶領域を示すファイルハンドルの取得要求を受ける手順と、
前記第１サーバが、前記ファイルハンドルの取得要求に関する前記ファイルハンドルを前記クライアント計算機に応答する手順と、
前記第１サーバが、前記クライアント計算機から、前記ファイルハンドルを用いた前記ファイルへのアクセス要求を受ける手順と、
前記第１サーバが、前記ファイルハンドルを用いて、前記ディスクサブシステム内の前記アクセス要求に関するファイルのデータにアクセスし、当該アクセスの結果を前記クライアント計算機に応答する手順と、
前記ファイルシステムが、前記第１サーバから、前記第２サーバにマイグレーションされた後、前記第１サーバが、前記クライアント計算機から、当該マイグレーションの前に取得した前記ファイルハンドルを用いた前記ファイルシステム内の前記ファイルへのアクセス要求を受ける手順と、
前記第１サーバが、前記第２サーバを識別するサーバ識別子を前記クライアント計算機に応答する手順と、
前記第２サーバが、前記クライアント計算機から、当該マイグレーションの前に取得した前記ファイルハンドルを用いた前記ファイルシステム内の前記ファイルへのアクセス要求を受ける手順と、
前記第２サーバが、当該マイグレーションの前に取得した前記ファイルハンドルを用いて、前記ディスクサブシステム内の前記アクセス要求に関するファイルのデータにアクセスし、当該アクセスの結果を前記クライアント計算機に応答する手順と、を含むことを特徴とする制御方法。
【請求項１１】
前記各サーバは、前記ファイルシステムのマウント位置を管理する管理テーブルを保持し、
前記管理テーブルには、前記ファイルシステムを前記ストレージシステム内で一意に識別するファイルシステム識別子、前記ファイルシステムのマウント位置を示すマウント位置情報、及び、前記ファイルシステムを管理する前記サーバの識別子を示す管理サーバ識別子が格納され、
前記第１サーバは、前記ファイルシステムを前記第２サーバに移動するマイグレーション指示を受ける手順と、
前記第１サーバが、当該第１サーバに保持されている前記管理テーブルの、前記マイグレーション指示の対象のファイルシステムに対応する前記管理サーバ識別子を、前記第２サーバの識別子に更新する手順と、
前記第１サーバが、少なくとも前記管理テーブルの更新の内容を前記第２サーバに送信する手順と、
前記第２サーバが、前記第１サーバから送信された前記管理テーブルの更新の内容を参照して、当該第２サーバに保持される前記管理テーブルを更新する手順と、をさらに含むことを特徴とする請求項１０に記載の制御方法。
【請求項１２】
前記第１サーバが、前記マイグレーション指示を受けた後に、マイグレーションを開始することを通知する開始通知を前記第２サーバに送信する手順と、
前記第１サーバが、前記開始通知を送信した後に、当該マイグレーション指示の対象のファイルシステム内の前記ファイルへのアクセス要求を受けたとき、前記第２サーバの識別子を応答する手順と、をさらに含むことを特徴とする請求項１１に記載の制御方法。
【請求項１３】
前記第２サーバが、前記マイグレーション指示の対象のファイルシステムをマウントする手順と、
前記第２サーバが、前記開始通知を受けた後、前記マウントが終了するまでの間に、前記マイグレーション指示の対象のファイルシステム内のファイルへのアクセス要求を受けたとき、当該アクセス要求を保留する手順と、をさらに含むことを特徴とする請求項１２に記載の制御方法。
【請求項１４】
前記第２サーバが、前記マイグレーション指示の対象のファイルシステムをマウントする手順と、
前記第２サーバが、前記開始通知を受けた後、前記マウントが終了するまでの間に、前記マイグレーション指示の対象のファイルシステム内のファイルへのアクセス要求を受けたとき、一時エラーを応答する手順と、をさらに含むことを特徴とする請求項１２に記載の制御方法。
【請求項１５】
前記開始通知は、前記マイグレーション指示の対象のファイルシステムが格納されている前記論理デバイスを前記ストレージシステム内で一意に識別する論理デバイス識別子を含み、
前記マイグレーション指示の対象のファイルシステムを、当該ファイルシステムが格納されている複写元の前記論理デバイスから、複写先の前記論理デバイスに複写する手順と、
前記複写先の論理デバイスの前記論理デバイス識別子を、前記複写が実行される前の前記複写元の論理デバイスの前記論理デバイス識別子と同一にする手順と、をさらに含むことを特徴とする請求項１２に記載の制御方法。
【請求項１６】
前記各サーバは、前記ファイルシステムのマウント位置を管理する管理テーブルを保持し、
前記管理テーブルには、前記ファイルシステムを前記ストレージシステム内で一意に識別するファイルシステム識別子、前記ファイルシステムのマウント位置を示すマウント位置情報、及び、前記ファイルシステムを管理する前記サーバの識別子を示す管理サーバ識別子が格納され、
前記第１サーバが、前記ファイルシステムの新規作成の指示を受けた後、前記指示に関する論理デバイスに前記ファイルシステムを作成する手順と、
前記第１サーバが、前記作成されたファイルシステムに関する前記ファイルシステム識別子、前記マウント位置情報及び前記管理サーバ識別子を追加して前記管理テーブルの内容を更新する手順と、
前記第１サーバが、少なくとも前記管理テーブルの更新の内容を前記第２サーバに送信する手順と、
前記第２サーバが、前記第１サーバから送信された前記管理テーブルの更新の内容を参照して、自管理サーバに保持される前記管理テーブルを更新する手順と、をさらに含むことを特徴とする請求項１０に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ構成のネットワークストレージ（Network Attached Storage、ＮＡＳ）に関する。
【背景技術】
【０００２】
ストレージシステムをネットワークに接続し、ネットワークに接続された計算機の共有ディスクとして使用されるネットワークストレージ（Network Attached Storage、ＮＡＳ）が提案されている。ＮＡＳは、ネットワークインターフェース等を含むサーバと、データを格納するディスクドライブとによって構成される。さらに、複数のサーバを備え、各サーバがネットワークに接続されるクラスタ構成のＮＡＳが開示されている（例えば、特許文献１参照）。
【０００３】
特許文献１において、ネットワークエレメント、スイッチングエレメント及びディスクエレメントが、ＮＡＳのサーバに相当する。ネットワークエレメントを複数備えることによって、それらのネットワークエレメントがファイルシステムを共有することができる。また、ディスクエレメントを複数備えることによって、ディスク単位でマイグレーションすることができる。
【０００４】
一方、ネットワーク上に分散して存在するファイルにアクセスするためのファイルシステムの一つとして、ネットワークファイルシステム（ＮＦＳ）が提案されている。ＮＦＳの現時点の最新版であるＮＦＳｖ４（ＲＦＣ３５３０）によれば、ファイルシステムがサーバ間でマイグレーションされた場合、サーバは、クライアントからの当該ファイルシステムへのアクセスに対して、マイグレーション先の位置の情報を通知する（非特許文献１参照）。したがって、クライアントは、通知された位置情報に従って、マイグレーション先のファイルシステムにアクセスすることができる。さらに、アクセスの際のファイル識別子であるファイルハンドルには、volatileとpersistentの二種類がある。ファイルシステムがマイグレーションされたとき、volatileファイルハンドルを無効にすることができる。
【特許文献１】米国特許第６６７１７７３号明細書
【非特許文献１】IETF Home Page、［online］、［平成１６年１１月４日検索］、インターネット＜URL:http://www.ietf.org/home.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
クラスタ構成のＮＡＳにおいて、特定の部位にアクセス負荷が集中した場合、ファイルシステムをマイグレーションすることによって負荷を分散することが考えられる。しかし、上記特許文献１によれば、ネットワークエレメントの接続先はクライアントに依存する。このため、マイグレーションを実行しても、ネットワークエレメントのアクセス負荷を分散することができない。
【０００６】
また、上記非特許文献２によれば、マイグレーション先のファイルシステムにアクセスするとき、再度名前解決をし、ファイルハンドルを取得する必要がある。
【課題を解決するための手段】
【０００７】
本発明は、複数のサーバと、前記複数のサーバと接続されるディスクサブシステムと、を備えるストレージシステムにおいて、前記ディスクサブシステムは、少なくとも一つの論理デバイスと、前記少なくとも一つの論理デバイスに格納された少なくとも一つのファイルシステムと、を備え、前記各サーバは、前記ファイルシステムのマウント位置を管理する管理テーブルを保持し、前記管理テーブルには、前記ファイルシステムを前記ストレージシステム内で一意に識別するファイルシステム識別子、前記ファイルシステムのマウント位置を示すマウント位置情報、及び、前記ファイルシステムを管理する前記サーバの識別子を示す管理サーバ識別子が、前記各サーバで共通の内容で格納され、前記各サーバは、前記ファイルシステム内のファイルのデータが格納されている前記ディスクサブシステム上の記憶領域を示すファイルハンドルの取得要求を受けると、前記取得要求に関するファイルのデータが格納されている前記ディスクサブシステム上の記憶領域を前記ストレージシステム内で一意に示すファイルハンドルを応答することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ファイルシステムをマイグレーションすることによってサーバのアクセス負荷を分散することができる。
【０００９】
さらに、本発明によれば、マイグレーション先のファイルシステムにアクセスするとき、マイグレーションされる前に取得したファイルハンドルを使用することができる。このため、再度名前解決をし、ファイルハンドルを取得する必要がない。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【００１１】
本実施の形態のストレージシステム１００は、ＬＡＮ１６０を介して、管理端末１４０及びクライアント１５０と接続される。
【００１２】
管理端末１４０は、ストレージシステム１００内のファイルシステムの作成、ファイルシステムのマウント及びマイグレーション等をストレージシステム１００に指示する計算機である。管理端末１４０は、少なくとも、入出力装置（図示省略）を含む。入出力装置は、例えば、管理画面及びポインティングデバイスを含む。管理画面に表示される内容及びポインティングデバイスによる操作については、後で詳細に説明する（図１２及び図１３参照）。
【００１３】
クライアント１５０は、ストレージシステム１００のファイルにアクセスする計算機である。具体的には、クライアント１５０は、ストレージシステム１００にファイルを書き込み、又は、ストレージシステム１００からファイルを読み出す。このとき、ストレージシステムのファイルシステムが使用される。
【００１４】
図１には、二つのクライアント（１５０Ａ及び１５０Ｂ）を示すが、任意の数のクライアント１５０がＬＡＮ１６０に接続され、ストレージシステム１００にアクセスすることができる。
【００１５】
ＬＡＮ１６０は、例えば、ＴＣＰ／ＩＰ等のプロトコルで通信するネットワークである。
【００１６】
ストレージシステム１００は、いわゆるネットワークストレージ（Network Attached Storage、ＮＡＳ）である。ストレージシステム１００は、サーバ１１０、ディスクサブシステム１２０及びこれらを相互に接続するストレージエリアネットワーク（ＳＡＮ）１３０によって構成される。
【００１７】
サーバ１１０は、クライアント１５０からのアクセス要求に従ってディスクサブシステム１２０にアクセスする。
【００１８】
ストレージシステム１００は、複数のサーバ１１０を備える。図１には、二つのサーバ（１１０Ａ、１１０Ｂ）を示す。ストレージシステム１００は、さらに多くのサーバ１１０を備えてもよい。サーバ１１０は、ＮＡＳヘッド又はＮＡＳノードとも呼ばれる。
【００１９】
サーバ１１０Ａは、ネットワークインターフェース１１１Ａ、ＣＰＵ１１２Ａ、ローカルメモリ１１３Ａ及びアダプタ１１６Ａによって構成される。
【００２０】
ネットワークインターフェース１１１Ａは、ＬＡＮ１６０に接続され、管理端末１４０及びクライアント１５０と通信するインターフェースである。
【００２１】
ＣＰＵ１１２Ａは、サーバ１１０Ａの動作を制御するプロセッサである。具体的には、ＣＰＵ１１２Ａは、ローカルメモリ１１３Ａに格納されたプログラムを実行する。
【００２２】
ローカルメモリ１１３Ａは、例えば、半導体メモリであり、ＣＰＵ１１２Ａが実行するプログラム及びＣＰＵ１１２Ａによって参照されるデータを格納する。具体的には、ローカルメモリ１１３Ａには、サーバソフトウエア１１４Ａ及びマウントポイント管理テーブル１１５Ａが格納される。
【００２３】
サーバソフトウエア１１４Ａは、ＣＰＵ１１２Ａによって実行される複数のプログラムからなる。サーバソフトウエア１１４Ａについては、後で詳細に説明する（図２参照）。
【００２４】
マウントポイント管理テーブル１１５Ａは、ディスクサブシステム１２０に含まれるファイルシステムのマウントポイントを管理するテーブルである。マウントポイント管理テーブル１１５Ａは、サーバ１１０Ａがクライアント１５０からのアクセス要求を受信したときに参照され、ファイルシステムが追加、削除又はマイグレーションされたときに更新される。
【００２５】
アダプタ１１６Ａは、ＳＡＮ１３０に接続され、ディスクサブシステム１２０と通信するインターフェースである。
【００２６】
サーバ１１０Ｂは、サーバ１１０Ｂと同様、ネットワークインターフェース１１１Ｂ、ＣＰＵ１１２Ｂ、ローカルメモリ１１３Ｂ及びアダプタ１１６Ｂによって構成される。これらは、それぞれ、ネットワークインターフェース１１１Ａ、ＣＰＵ１１２Ａ、ローカルメモリ１１３Ａ及びアダプタ１１６Ａと同様であるため、説明を省略する。
【００２７】
さらに多くのサーバ１１０が設けられる場合も、各サーバ１１０の構成は、サーバ１１０Ａと同様である。
【００２８】
ＳＡＮ１３０は、例えば、ファイバーチャネル（ＦＣ）又はＳＣＳＩ等のプロトコルで通信するネットワークである。
【００２９】
ストレージシステム１００が複数のサーバ１１０を備える場合、これらのサーバ１１０は、サーバ間通信路１３５によって相互に接続される。サーバ１１０は、サーバ間通信路１３５を経由して相互に通信することができる。具体的には、一つのサーバ１１０のマウントポイント管理テーブル１１５の内容が更新された場合、その更新の内容がサーバ間通信路１３５を経由して他のサーバ１１０に送信される。送信先のサーバ１１０は、受信した更新の内容をそのサーバ１１０内のマウントポイント管理テーブル１１５に反映する。
【００３０】
なお、本実施の形態では、図１に示すように、ＳＡＮ１３０及びＬＡＮ１６０と独立したサーバ間通信路１３５が設けられる。しかし、サーバ１１０は、ＳＡＮ１３０又はＬＡＮ１６０を経由して相互に通信してもよい。あるいは、サーバ１１０は、ディスクサブシステム１２０のディスクキャッシュ１２２を使用して相互に通信してもよい。すなわち、一つのサーバ１１０のマウントポイント管理テーブル１１５が更新されると、そのサーバ１１０は、更新の内容をディスクキャッシュ１２２に書き込む。他のサーバ１１０は、ディスクキャッシュ１２２に書き込まれた更新の内容を読み出し、各々のマウントポイント管理テーブル１１５を更新する。サーバ１１０が上記のいずれの経路で通信しても、本発明を実施することができる。
【００３１】
ディスクサブシステム１２０は、ディスクコントローラ１２１、ディスクキャッシュ１２２及びディスクドライブ１２３によって構成される。
【００３２】
ディスクコントローラ１２１は、ＳＡＮ１３０に接続される一つ以上のポート（図示省略）を備え、サーバ１１０と通信し、ディスクサブシステム１２０を制御する。具体的には、ディスクコントローラ１２１は、ＳＡＮ１３０を介してサーバ１１０と通信し、サーバ１１０からの要求に従ってディスクドライブ１２３にデータを書き込み、又は、ディスクドライブ１２３からデータを読み出す。
【００３３】
ディスクキャッシュ１２２は、例えば、半導体メモリであり、ディスクドライブ１２３に書き込まれるデータ又はディスクドライブ１２３から読み出されたデータを一時的に格納する。
【００３４】
ディスクドライブ１２３は、データを格納するハードディスクドライブである。ディスクサブシステムには、任意の数のディスクドライブ１２３が設けられる。これらのディスクドライブ１２３は、ＲＡＩＤを構成してもよい。図１には、４個のディスクドライブ（１２３Ａ〜１２３Ｄ）を示す。
【００３５】
ディスクドライブ１２３の記憶領域は、任意の数の論理デバイス（ＬＤＥＶ）１２４に分割される。ＬＤＥＶ１２４は、ディスクコントローラ１２１によって論理的なディスクドライブとして扱われる領域である。ディスクドライブ１２３がＲＡＩＤを構成する場合、図１に示すように、一つのＬＤＥＶ１２４は、複数のディスクドライブの記憶領域によって構成されてもよい。各ＬＤＥＶ１２４の大きさは任意である。
【００３６】
図１には、例として、４個のＬＤＥＶ（１２４Ａ〜１２４Ｄ）を示す。各ＬＤＥＶには、ＬＤＥＶ識別子（ＩＤ）が付与される。図１の例において、ＬＤＥＶ１２４Ａ〜ＬＤＥＶ１２４ＤのＩＤは、それぞれ、ＬＤＥＶ０〜ＬＤＥＶ３である。以下、各ＬＤＥＶ１２４をＬＤＥＶＩＤ（ＬＤＥＶ０〜ＬＤＥＶ３）を用いて表記する。
【００３７】
各ＬＤＥＶの内容については、後で詳細に説明する（図２参照）。
【００３８】
ストレージシステム１００は、複数のディスクサブシステム１２０を含んでもよい。その場合、各ディスクサブシステム１２０は、ＳＡＮ１３０に接続される。各サーバ１１０は、ＳＡＮ１３０を経由して、いずれのディスクサブシステム１２０にもアクセスすることができる。
【００３９】
図２は、本発明の実施の形態のディスクサブシステム１２０の論理的な構成を示すブロック図である。
【００４０】
図１において説明したように、ディスクサブシステム１２０は、任意の数のＬＤＥＶ１２４を含む。各ＬＤＥＶ１２４は、論理ユニット（ＬＵ）２０１と対応する。
【００４１】
ＬＵ２０１とは、サーバ１１０によって論理的なディスクドライブとして扱われる領域である。一般に、一つのＬＤＥＶ１２４が一つのＬＵ２０１と対応してもよいし、一つのＬＤＥＶ１２４に複数のＬＵ２０１が含まれてもよい。本実施の形態では、一つのＬＤＥＶ１２４が一つのＬＵ２０１と対応する。ＬＤＥＶ１２４Ａ〜ＬＤＥＶ１２４Ｄは、それぞれ、ＬＵ２０１Ａ〜ＬＵ２０１Ｄと対応する。
【００４２】
各ＬＵ２０１には、ＬＵ識別子（ＩＤ）が付与される。
【００４３】
一般に、ディスクコントローラ１２１は複数のポートを備えるため、サーバ１１０が一つのＬＵ２０１にアクセスする経路（パス）が複数存在する場合がある。ＬＵＩＤは、パスごとに、ディスクサブシステム１２０によって付与される。例えば、ＬＤＥＶ０内のＬＵ２０１のＬＵＩＤとして、パスＡ（図示省略）については「０」が付与され、パスＢ（図示省略）については「１」が付与される場合がある。
【００４４】
ディスクコントローラ１２１は、パスごとに、ＬＵＩＤとＬＤＥＶ１２４とを対応させるテーブル（図示省略）を備える。そして、ディスクコントローラ１２１は、サーバ１１０からパスＡを経由してＬＵ「０」へのアクセス要求を受信したとき、当該テーブルを参照して、ＬＤＥＶ０内のＬＵ２０１にアクセスする。同様にして、パスＢを経由してＬＵ「１」へのアクセス要求を受信したとき、当該テーブルを参照して、ＬＤＥＶ０内のＬＵ２０１にアクセスする。
【００４５】
本実施の形態では、ＬＤＥＶＩＤとＬＵＩＤとの対応関係を、パスに関らず、ストレージシステム１００内で共通とする。すなわち、各サーバ１１０は、同一のＬＵ２０１を同一のＬＵＩＤによって識別する。図２の例において、ＬＵ２０１Ａ〜ＬＵ２０１ＤのＩＤは、それぞれ、ＬＵ０〜ＬＵ３である。以下、各ＬＵ２０１をＬＵＩＤ（ＬＵ０〜ＬＵ３）を用いて表記する。
【００４６】
ただし、本発明は、ＬＤＥＶＩＤとＬＵＩＤとの対応関係がストレージシステム１００内で共通でない場合（すなわち、対応関係がパス毎に異なる場合）にも、適用することができる。
【００４７】
各ＬＵ２０１は、ファイルシステム（ＦＳ）２０２を含む。一般には、一つのＬＵ２０１が複数のファイルシステム２０２を含んでもよい。本実施の形態では、一つのＬＵ２０１に一つのファイルシステム２０２が含まれる。ファイルシステム２０２Ａ〜ファイルシステム２０２Ｄは、それぞれ、ＬＵ０〜ＬＵ３に含まれる。
【００４８】
各ファイルシステム２０２には、ファイルシステム識別子（ＩＤ）が付与される。図２の例において、ファイルシステム２０２Ａ〜ファイルシステム２０２ＤのＩＤは、それぞれ、ＦＳ０〜ＦＳ３である。以下、各ファイルシステム２０２をファイルシステムＩＤ（ＦＳ０〜ＦＳ３）を用いて表記する。
【００４９】
図３は、本発明の実施の形態のサーバソフトウエア１１４の構成の説明図である。
【００５０】
サーバソフトウエア１１４は、ＣＰＵ１１２によって実行されるプログラムであるネットワーク処理部３０１、ファイルシステム処理部３０２、ディスクアクセス部３０３、デバイス番号管理部３０４、サーバ管理処理部３０５、サーバ間通信処理部３０６及びマイグレーション処理部３０７からなる。
【００５１】
ネットワーク処理部３０１は、ＬＡＮ１６０を介した管理端末１４０及びクライアント１５０との通信を制御するプログラムである。
【００５２】
ファイルシステム処理部３０２は、クライアント１５０からファイルシステム２０２内のファイルへのアクセス要求を処理するプログラムである。具体的には、例えば、管理端末１４０からの指示に従って、ファイルシステムを新規作成する。また、例えば、クライアント１５０からディレクトリ名又はファイル名を指定したファイルハンドル（図６参照）取得要求を受けると、名前解決をして、ファイルハンドルを返す。ファイルシステム処理部３０２が実行する処理については、後で詳細に説明する（図９参照）。
【００５３】
ディスクアクセス部３０３は、クライアント１５０からのアクセス要求に従って、ファイルシステム２０２内のデータへのアクセスを実行するプログラムである。
【００５４】
デバイス番号管理部３０４は、ディスクサブシステム１２０からＬＤＥＶＩＤを取得するプログラムである。ＬＤＥＶＩＤは、ディスクサブシステム１２０がＬＤＥＶ１２４を管理するために付与する識別子である。このため、通常、サーバ１１０は、ＬＤＥＶＩＤを知る必要がない。しかし、ＬＤＥＶＩＤは、アクセスするサーバ１１０に関りなくディスクサブシステム１２０内で一意に決定される。このため、ＬＤＥＶＩＤをファイルハンドル内のファイルシステムＩＤ（図６参照）又はファイルシステムＩＤの一部として使用することによって、ファイルシステム２０２が全てのサーバ１１０から一意に識別されるようにすることができる。デバイス番号管理部３０４は、ディスクサブシステム１２０に問い合わせて、ＬＤＥＶＩＤを取得する。
【００５５】
サーバ管理処理部３０５は、管理端末１４０と通信し、ＮＡＳの設定をするプログラムである。例えば、サーバ管理処理部３０５は、管理端末１４０からファイルシステムの新規作成の指示を受けると、その指示をファイルシステム処理部３０２に伝え、ファイルシステムの新規作成を実行させる。また、管理端末１４０からマイグレーションの指示を受けると、その指示をマイグレーション処理部３０７に伝え、マイグレーションを実行させる。
【００５６】
サーバ間通信処理部３０６は、サーバ間通信路１３５を経由したサーバ１１０間の通信を制御するプログラムである。例えば、サーバ間通信処理部３０６は、マウントポイント管理テーブル１１５の内容が更新されたとき、その更新された内容を他のサーバ１１０に送信する。
【００５７】
マイグレーション処理部３０７は、マイグレーションを実行するプログラムである。具体的には、後で詳細に説明する（図１０参照）。
【００５８】
図４は、本発明の実施の形態のマウントポイント管理テーブル１１５の説明図である。
【００５９】
マウントポイント管理テーブル１１５は、ディスクサブシステム１２０に含まれるファイルシステム２０２のマウント位置を管理するテーブルであり、ファイルシステムＩＤ４０１、パス４０２及びサーバＩＤ４０３を含む。
【００６０】
マウントポイント管理テーブル１１５の一つのエントリ（行）が、一つのファイルシステム２０２に対応する。
【００６１】
ファイルシステムＩＤ４０１は、マウントされているファイルシステム２０２のＩＤである。図４の例では、４個のファイルシステム２０２（ＦＳ０〜ＦＳ３）がマウントされている。本発明では、ファイルシステムＩＤ４０１がストレージシステム１００内で一意である必要がある。
【００６２】
本実施の形態のように、一つのＬＤＥＶ１２４が一つのファイルシステム２０２のみを含み、かつ、ＬＤＥＶＩＤがストレージシステム１００内で一意である場合、ＬＤＥＶＩＤをファイルシステムＩＤ４０１として使用してもよい。この場合、デバイス番号管理部３０４がディスクサブシステム１２０からＬＤＥＶＩＤを取得する。ファイルシステム処理部３０２は、デバイス番号管理部３０４が取得したＬＤＥＶＩＤをファイルシステムＩＤ４０１として使用する。
【００６３】
上記の場合において、さらに、一つのＬＤＥＶ１２４が一つのＬＵ２０１と対応し、かつ、ＬＤＥＶＩＤとＬＵＩＤとの対応関係が全てのパスにおいて共通である場合、ＬＵＩＤをファイルシステムＩＤ４０１として使用してもよい。
【００６４】
一方、一つのＬＤＥＶ１２４に複数のファイルシステム２０２が含まれ、かつ、各ファイルシステム２０２にＬＤＥＶ１２４内で一意のファイルシステム番号が付与されている場合、ストレージシステム１００内で一意のＬＤＥＶＩＤと、上記のファイルシステム番号との組み合わせをファイルシステムＩＤ４０１として使用してもよい。
【００６５】
ストレージシステム１００に複数のディスクサブシステム１２０が含まれる場合、同一のＬＤＥＶＩＤを持つＬＤＥＶ１２４がストレージシステム１００内に複数存在する場合がある。この場合、ＬＤＥＶＩＤ（及びファイルシステム番号）に、ディスクサブシステム１２０の識別子を組み合わせて、これをファイルシステムＩＤ４０１として使用してもよい。このディスクサブシステム１２０の識別子とは、各ディスクサブシステム１２０をストレージシステム１００内で一意に識別するものである。
【００６６】
なお、ファイルシステムＩＤ４０１は、ファイルシステム２０２をストレージシステム１００内で一意に識別するものであれば、上記以外の方法によって生成されたものであってもよい。
【００６７】
例えば、各サーバ１１０が同一の数値を保持し、いずれかのサーバ１１０がファイルシステム２０２を新規作成するとき、その数値をファイルシステムＩＤ４０１として使用する。このとき、その数値を「＋１」増加させた値に更新し、更新された数値を他の全てのサーバ１１０に通知する。次にファイルシステム２０２を新規作成するサーバ１１０は、更新された数値をファイルシステムＩＤ４０１として使用する。その結果、ファイルシステムＩＤ４０１は、ストレージシステム内で一意となる。
【００６８】
パス４０２は、各ファイルシステム２０２のマウントポイントを示す。図４の例では、ＦＳ０は、「/dira」の下にマウントされている。同様にして、ＦＳ１、ＦＳ２及びＦＳ３は、それぞれ、「/dirb」、「/dirc/subdir1」及び「/dirc/subdir2」の下にマウントされている。各ファイルシステムが図４のようにマウントされた場合に提供される名前空間については、後で詳細に説明する（図５参照）。
【００６９】
サーバＩＤ４０３は、各ファイルシステム２０２を管理するサーバ１１０の一意の識別子である。各サーバ１１０は、そのサーバ１１０が管理するファイルシステム２０２のみにアクセスすることができる。すなわち、クライアント１５０は、ファイルにアクセスする場合、そのファイルを含むファイルシステム２０２を管理するサーバ１１０にアクセス要求を発行する必要がある。
【００７０】
図４の例において、「ｓｉｄ１」は、サーバ１１０ＡのＩＤであり、「ｓｉｄ２」は、サーバ１１０ＢのＩＤである。すなわち、ＦＳ０及びＦＳ１がサーバ１１０Ａに管理され、ＦＳ２及びＦＳ３がサーバ１１０Ｂに管理されている。
【００７１】
ファイルシステム２０２がマイグレーションされると、サーバＩＤ４０３の内容が更新される。例えば、ＦＳ０がサーバ１１０Ａからサーバ１１０Ｂにマイグレーションされると、ＦＳ０のサーバＩＤ４０３は、「ｓｉｄ１」から「ｓｉｄ２」に更新される。さらに、更新された内容が、サーバ間通信路１３５を経由して、ストレージシステム１００内の全てのサーバ１１０に通知される。この通知を受けたサーバ１１０は、通知に従って、マウントポイント管理テーブル１１５を更新する。その結果、全てのサーバ１１０のマウントポイント管理テーブル１１５の内容が同一になる。
【００７２】
図５は、本発明の実施の形態においてクライアント１５０に提供される名前空間の説明図である。
【００７３】
図５は、ファイルシステム２０２が図４のようにマウントされた場合に提供される名前空間の例を示す。図５には、説明のために必要な最小限のディレクトリ及びファイルを示すが、各ファイルシステム２０２は、さらに多くのディレクトリ及びファイルを含んでもよい。
【００７４】
図５において、ＦＳ０は、最上位ディレクトリの下にディレクトリ「df11」及び「df12」を含み、ディレクトリ「df11」の下にファイル「file1」を含む。
【００７５】
図４によれば、ＦＳ０は、「/ dira」の下にマウントされている。したがって、ＦＳ０の最上位ディレクトリは、ディレクトリ「/」（ルートディレクトリ）の下のディレクトリ「dira」である。このとき、ファイル「file1」のパスは、「/dira/df11/file1」である。
【００７６】
同様にして、ＦＳ１は、最上位ディレクトリの下にディレクトリ「df21」及び「df22」を含み、ディレクトリ「df21」の下にファイル「file2」を含む。ＦＳ１は、「/dirb」の下にマウントされている（図４参照）。したがって、ＦＳ１の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirb」である。このとき、ファイル「file2」のパスは、「/dirb/df21/file2」である。
【００７７】
ＦＳ２は、最上位ディレクトリの下にディレクトリ「df31」及び「df32」を含む。ＦＳ２は、「/dirc/subdir1」の下にマウントされている（図４参照）。したがって、ＦＳ２の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirc」のさらに下のディレクトリ「subdir1」である。
【００７８】
ＦＳ３は、最上位ディレクトリの下にディレクトリ「df41」を含む。ＦＳ３は、「/dirc/subdir2」の下にマウントされている（図４参照）。したがって、ＦＳ３の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirc」のさらに下のディレクトリ「subdir2」である。
【００７９】
各サーバ１１０のマウントポイント管理テーブル１１５の内容が同一であるため、各サーバ１１０は、同一の名前空間（図５）をクライアント１５０に提供する。
【００８０】
図５において、ルートディレクトリ及びディレクトリ「dirc」は、ＦＳ０〜ＦＳ３をマウントして共通の名前空間を提供するために設けられる。これらのディレクトリは、ディスクサブシステム１２０上の記憶領域と対応しないため、これらのディレクトリの下にファイル（データ）を直接格納することができない。このため、図５の名前空間において、ルートディレクトリ及びディレクトリ「dirc」の部分は、擬似ファイルシステムと呼ばれる。一方、ＦＳ０〜ＦＳ３は、擬似ファイルシステムと対比して、実ファイルシステムと呼ばれることもある。
【００８１】
各サーバ１１０は、擬似ファイルシステム内の名前解決と、そのサーバ１１０が管理する実ファイルシステム内の名前解決をすることができる。
【００８２】
例えば、サーバ１１０ＡがＦＳ０を管理し、サーバ１１０ＢがＦＳ１を管理する場合において、サーバ１１０Ｂが「/dira/df11/file1」へのアクセス要求を受けたとき、サーバ１１０Ｂは、ルートディレクトリの名前解決をすることはできるが、ディレクトリ「dira」の名前解決をすることはできない。このとき、サーバ１１０Ｂは、マウントポイント管理テーブル１１５を参照して、ディレクトリ「dira」がサーバ１１０Ａの管理下にあることを、アクセス要求を発行したクライアント１５０に通知する。これらの手順については、後で詳細に説明する（図９参照）。
【００８３】
図６は、本発明の実施の形態のファイルハンドルの説明図である。
【００８４】
ファイルハンドルとは、ネットワークファイルシステム（ＮＦＳ）において、各ファイル（又はディレクトリ）に対して付与される固定長の識別子である。ファイルハンドルは、ファイルのデータが格納されたディスクサブシステム１２０上の記憶領域を示す。
【００８５】
本実施の形態のファイルハンドル６００は、ファイルシステムＩＤ６０１、ｉノード番号６０２及び世代６０３の三つのフィールドからなる。これらのうち、ｉノード番号６０２及び世代６０３は、従来のＮＦＳにおいて用いられるファイルハンドルと同様であるため、詳細な説明を省略する。
【００８６】
ファイルシステムＩＤ６０１は、ファイルが属するファイルシステム２０２をストレージシステム１００内で一意に識別する。ファイルシステムＩＤ６０１は、名前解決の際に、ファイルシステム処理部３０２によって生成される。
【００８７】
ファイルシステムＩＤ６０１は、マウントポイント管理テーブル１１５のファイルシステムＩＤ４０１（図４参照）と同様の方法で生成されてもよい。ただし、ファイルシステムＩＤ６０１は、ファイルシステム２０２をストレージシステム１００内で一意に識別するものであればよく、ファイルシステムＩＤ４０１と同一である必要はない。
【００８８】
上記のように、ファイルシステムＩＤ６０１は、各ファイルシステム２０２をストレージシステム１００内で一意に識別する。その結果、各ファイルのデータが格納されたディスクサブシステム１２０上の記憶領域が、ファイルハンドル６００によって、ストレージシステム１００内で一意に示される。
【００８９】
図７は、本発明の実施の形態において実行される処理の概略の説明図である。
【００９０】
図７に示す構成は、図１及び図２に示す構成と同じである。ただし、説明のために不要な部分は省略されている。
【００９１】
図７において、最初、ＦＳ０及びＦＳ１は、共にサーバ１１０Ａ（以下、サーバ１と記載する）の管理下にある。したがって、クライアント１５０は、ＦＳ１内のファイル（例えば、図５の「file2」）にアクセスする前に、サーバ１に対して、目的のファイル「file2」のファイルハンドル取得要求を発行する。サーバ１は、ファイルハンドル取得要求に従って、名前解決をし、目的のファイル「file2」のファイルハンドル６００をクライアント１５０に返す。以後、クライアント１５０は、目的のファイルにアクセスするとき、取得したファイルハンドル６００を用いてサーバ１にアクセス要求を発行する。サーバ１は、そのファイルハンドル６００に従って「file2」にアクセスし、クライアント１５０に応答する。
【００９２】
その後、ＦＳ１がサーバ１からサーバ１１０Ｂ（以下、サーバ２と記載する）にマイグレーションされる（７０１）。マイグレーションの目的は、例えば、アクセス負荷の分散である。サーバ１のアクセス負荷が高く、サーバ２のアクセス負荷が低い場合、サーバ１が管理する二つのファイルシステム２０２のうち、一方のＦＳ１をサーバ２の管理下に移すことによって、各サーバ１１０のアクセス負荷を分散する。
【００９３】
その結果、ＦＳ１は、サーバ１の管理下を離れ、サーバ２の管理下に入る。このとき、マウントポイント管理テーブル１１５において、ＦＳ１に対応するサーバＩＤ４０３が「ｓｉｄ１」（サーバ１のＩＤ）から「ｓｉｄ２」（サーバ２のＩＤ）に更新される。以後、サーバ１は、ＦＳ１内のファイルにアクセスすることができない。
【００９４】
マイグレーションは、管理端末１４０の指示によって実行されるため、クライアント１５０は、マイグレーションが実行されたことを知らない。このため、クライアント１５０は、再び「file2」にアクセスするとき、既に取得したファイルハンドル６００を用いて、サーバ１に対してアクセス要求を発行する（７０２）。
【００９５】
サーバ１は、クライアント１５０から受けたファイルハンドル６００のファイルシステムＩＤ６０１を参照して、そのアクセス要求がＦＳ１に対するものであると判定する。さらに、サーバ１は、マウントポイント管理テーブル１１５において、ＦＳ１に対応するサーバＩＤ４０３を参照する。参照したサーバＩＤ４０３の値が「ｓｉｄ２」であるため、サーバ１は、ＦＳ１がサーバ２の管理下にあると判定する。そして、サーバ１は、目的のファイル「file2」を含むＦＳ１がサーバ２の管理下にあることをクライアント１５０に通知する（７０３）。
【００９６】
クライアント１５０は、サーバ１からの通知を受けると、サーバ２に対して「file2」へのアクセス要求を発行する（７０４）。
【００９７】
従来のＮＦＳでは、このとき、クライアント１５０がサーバ２に対してファイルハンドル取得要求を発行し、「file2」のファイルハンドル６００を新たに取得する必要があった。
【００９８】
しかし、本発明によれば、サーバ１及びサーバ２が名前空間を共有し（図５参照）、かつ、ファイルハンドル６００に含まれるファイルシステムＩＤ６０１が各ファイルシステム２０２をストレージシステム１００内で一意に識別する。このため、クライアント１５０は、サーバ１から取得したファイルハンドル６００を用いてサーバ２に「file2」へのアクセス要求を発行することができる。サーバ２は、そのファイルハンドル６００に従って「file2」にアクセスし、クライアント１５０に応答する。
【００９９】
以下、本発明の実施の形態において実行される処理について、詳細に説明する。
【０１００】
図８は、本発明の実施の形態において実行されるファイルシステム作成処理のフローチャートである。
【０１０１】
ファイルシステム作成処理は、ファイルシステム処理部３０２によって実行される。ファイルシステム作成処理は、後述するように、ＬＤＥＶ１２４の新規割り当て処理（８０１〜８０４）、ファイルシステム２０２の新規作成処理（８０５〜８０７）及びマウント処理（８０８〜８１０）の三つの部分を含む。
【０１０２】
ファイルシステム処理部３０２は、管理端末１４０からファイルシステム２０２の新規作成指示を受けたとき、上記の三つの部分を順に実行してもよい。あるいは、ファイルシステム処理部３０２は、管理端末１４０からＬＤＥＶ１２４の新規割り当て指示を受けたときにステップ８０１〜８０４を実行し、ファイルシステム２０２の新規作成指示を受けたときにステップ８０５〜８０７を実行し、マウント指示を受けたときにステップ８０８〜８１０を実行してもよい。
【０１０３】
ファイルシステム作成処理が開始すると、ファイルシステム処理部３０２は、最初に、ＬＤＥＶ１２４の新規割り当てをする必要があるか否かを判定する（８０１）。例えば、管理端末１４０がＬＤＥＶ１２４の新規割り当て指示を発行した場合、及び、ファイルシステム２０２が新規作成されるＬＤＥＶ１２４が割り当てられていない場合に、ＬＤＥＶ１２４の新規割り当てをする必要があると判定される。
【０１０４】
ＬＤＥＶ１２４の新規割り当てをする必要がないと判定された場合、ステップ８０５に進む。
【０１０５】
一方、ＬＤＥＶ１２４の新規割り当てをする必要があると判定された場合、ファイルシステム処理部３０２は、管理端末１４０によって指定されたＬＤＥＶ１２４を接続する（８０２）。具体的には、管理端末１４０によって指定されたＬＤＥＶ１２４を、サーバ１１０のオペレーティングシステム（ＯＳ）に認識させる。
【０１０６】
次に、新規に割り当てられたＬＤＥＶ１２４のＬＤＥＶＩＤを取得する（８０３）。具体的には、ファイルシステム処理部３０２からの指示を受けたデバイス番号管理部３０４が、ディスクサブシステム１２０からＬＤＥＶＩＤを取得する。このＬＤＥＶＩＤは、ファイルハンドル６００のファイルシステムＩＤ６０１及びマウントポイント管理テーブル１１５のファイルシステムＩＤ４０１を生成するために使用されてもよい。
【０１０７】
次に、ファイルシステム処理部３０２は、新規に割り当てられたＬＤＥＶ１２４をフォーマット（初期化）する（８０４）。
【０１０８】
次に、ファイルシステム処理部３０２は、ファイルシステム２０２の新規作成をする必要があるか否かを判定する（８０５）。例えば、ステップ８０１〜８０４で新規に割り当てられたＬＤＥＶ１２４に、既にファイルシステム２０２が作成されており、そのファイルシステム２０２を使用する場合、ファイルシステム２０２の新規作成をする必要がないと判定される。
【０１０９】
ファイルシステム２０２の新規作成をする必要がないと判定された場合、ステップ８０８に進む。
【０１１０】
一方、ファイルシステム２０２の新規作成をする必要があると判定された場合、ファイルシステム処理部３０２は、管理端末１４０によって指示されたＬＤＥＶ１２４に、ファイルシステム２０２を新規作成する（８０６）。
【０１１１】
次に、ファイルシステム処理部３０２は、新規作成されたファイルシステム２０２にファイルシステムＩＤ４０１を割り当てる（８０７）。割り当てられたファイルシステムＩＤは、後述するように（ステップ８１０参照）、マウント管理テーブル１１５に格納される。ステップ８０７において、ファイルシステムＩＤ４０１は、図４の説明のように生成される。
【０１１２】
次に、ファイルシステム処理部３０２は、マウントポイントを作成する（８０８）。具体的には、ファイルシステム処理部３０２は、新規作成されたファイルシステム２０２をマウントするディレクトリを作成する。例えば、図５において、ＦＳ０が新規作成された場合、ＦＳ０がマウントされるディレクトリ「/dira」が作成される。なお、新規作成されたファイルシステム２０２のマウント先は、管理端末１４０によって指示される。
【０１１３】
次に、ファイルシステム処理部３０２は、ステップ８０８において作成されたマウントポイントに、新規作成されたファイルシステム２０２をマウントする（８０９）。具体的には、ファイルシステム処理部３０２がファイルシステム２０２の管理情報（図示省略）をディスクドライブ１２３から読み出し、ファイルシステム２０２へのアクセスを有効にする。
【０１１４】
次に、ファイルシステム処理部３０２は、マウントポイント管理テーブル１１５を更新する（８１０）。具体的には、ファイルシステムＩＤ４０１をステップ８０７で生成されたファイルシステムＩＤ４０１とし、パスＩＤ４０２をステップ８０８で作成されたディレクトリとし、サーバＩＤ４０３を、新規作成されたファイルシステムを管理するサーバ１１０の識別子とした新しいエントリを、マウントポイント管理テーブル１１５に追加する。
【０１１５】
さらに、ステップ８１０において、ファイルシステム処理部３０２は、マウントポイント管理テーブル１１５の更新の内容を、他のサーバ１１０に通知する。この通知は、ファイルシステム処理部３０２から指示を受けたサーバ間通信処理部３０６が実行する。この通知を受けたサーバ１１０は、そのサーバ１１０内のマウントポイント管理テーブル１１５を、通知の内容に従って更新する。
【０１１６】
以上で、ファイルシステム作成処理を終了する。
【０１１７】
図９は、本発明の実施の形態において実行されるファイルアクセス処理のシーケンス図である。
【０１１８】
ここでは、便宜上、クライアント１５０が、サーバ２を経由して、図５のファイル「file2」にアクセスする場合を例として説明する。「file2」を含むＦＳ１は、最初、サーバ１によって管理されている。しかし、クライアント１５０はそのことを知らずに、サーバ２を経由して「file2」にアクセスしようとする。
【０１１９】
クライアント１５０は、最初に、ルートディレクトリのファイルハンドル取得要求をサーバ２に対して発行する（９０１）。
【０１２０】
ルートディレクトリは、擬似ファイルシステムに属する。このため、サーバ１及びサーバ２のいずれもが、ルートディレクトリの名前解決をすることができる。サーバ２は、ルートディレクトリの名前解決をして、ルートディレクトリのファイルハンドル６００をクライアント１５０に応答する（９０２）。
【０１２１】
目的のファイルに至るパスに含まれるディレクトリのうち、擬似ファイルシステムに属するディレクトリが、ルートディレクトリより下に存在する場合、このようなディレクトリについて、クライアント１５０がファイルシステム取得要求を発行する（９０３）。サーバ２は、この要求に対して、ファイルハンドル６００を応答する（９０４）。このようなディレクトリが複数存在する場合、それらのディレクトリについて、ステップ９０３及び９０４と同様の手順が繰り返される。なお、図９に示す「ｌｏｏｋｕｐ」とは、ファイルハンドル取得を要求するコマンドである。
【０１２２】
図５の例、では、ルートディレクトリの一つ下のディレクトリが「dirb」である。「dirb」は、ＦＳ１のマウントポイント（すなわち、ＦＳ１の最上位ディレクトリ）である。「file2」に至るパスにおいて、ルートディレクトリの下に、擬似ファイルシステムに属するディレクトリは存在しない。このため、クライアント１５０は、図５の「file2」にアクセスする場合、ステップ９０２の次に、ディレクトリ「dirb」のファイルハンドル取得要求を発行する（９０５）。
【０１２３】
ステップ９０５において、クライアント１５０は、サーバ２に「dirb」のファイルハンドル取得要求を発行する。しかし、「dirb」が属する実ファイルシステムＦＳ１は、サーバ１の管理下にあるため、サーバ２は、「dirb」の名前解決をすることができない。サーバ２は、マウントポイント管理テーブル１１５のＦＳ１に関するパス４０２を参照して、「dirb」がサーバ１の管理下にあることをクライアント１５０に通知する（９０６）。
【０１２４】
クライアント１５０は、ステップ９０６のファイルシステム位置通知を受けて、サーバ１に「dirb」のファイルハンドル取得要求を発行する（９０７）。サーバ１は、「dirb」のファイルハンドル６００をクライアント１５０に応答する（９０８）。
【０１２５】
同様にして、クライアント１５０は、ディレクトリ「df21」及びファイル「file2」のファイルハンドル取得要求をサーバ１に発行し、サーバ１は、それぞれの要求に対して、ファイルハンドルを応答する（図示省略）。結局、クライアント１５０は、「file2」のファイルハンドルを取得する。
【０１２６】
次に、クライアント１５０は、「file2」のファイルハンドル６００を用いて、サーバ１に、ファイルアクセス要求を発行する（９０９）。サーバ１は、この要求に従って、ＦＳ１の「file2」にアクセスし、クライアント１５０に応答する（９１０）。
【０１２７】
その後も、クライアント１５０は、「file2」にアクセスする必要がある場合、ステップ９０８で取得したファイルハンドル６００を用いて、サーバ１を経由して「file2」にアクセスする（９０９、９１０）。
【０１２８】
次に、ＦＳ１がサーバ１からサーバ２にマイグレーションされる（９１１）。その結果、マウントポイント管理テーブル１１５において、ＦＳ１に対応するサーバＩＤ４０３の値が「ｓｉｄ２」（サーバ２のＩＤ）に更新される。マイグレーションの手順は、後で詳細に説明する（図１０参照）。
【０１２９】
この時点で、クライアント１５０は、ＦＳ１がマイグレーションされたことを知らない。このため、クライアント１５０は、「file2」にアクセスする必要がある場合、サーバ１にファイルハンドル６００アクセス要求を発行する（９１２）。
【０１３０】
このとき、「file2」が属するＦＳ１は、サーバ１の管理下にない。このため、サーバ１は、「file2」にアクセスすることができない。サーバ１は、ファイルハンドル６００のファイルシステムＩＤ６０１、マウントポイント管理テーブル１１５のファイルシステムＩＤ４０１及びサーバＩＤ４０３を参照して、ＦＳ１がサーバ２にマイグレーションされたことをクライアント１５０に通知する（９１３）。
【０１３１】
クライアント１５０は、この通知を受けて、「file2」へのアクセス要求をサーバ２に発行する（９１４）。
【０１３２】
従来は、このとき、ステップ９０１〜９０６と同様に、クライアント１５０がサーバ２に対してファイルハンドル取得要求を発行し、サーバ２が名前解決をする必要があった。
【０１３３】
しかし、本発明によれば、各サーバ１１０が名前空間を共有し、かつ、ファイルハンドル６００がストレージシステム１００内で一意に定められる。このため、クライアント１５０は、ステップ９０９及び９１２において使用したファイルハンドル６００を、そのまま、ステップ９１４で使用することができる。
【０１３４】
サーバ１は、クライアント１５０からのアクセス要求に従って、ＦＳ１の「file2」にアクセスし、クライアント１５０に応答する（９１５）。
【０１３５】
図１０は、本発明の実施の形態において実行されるマイグレーション処理のフローチャートである。
【０１３６】
図１０は、例として、図９のステップ９１１において実行される、サーバ１からサーバ２へのＦＳ１のマイグレーションの手順を示す。図１０のマイグレーション処理は、サーバ１及びサーバ２のマイグレーション処理部３０７によって実行される。
【０１３７】
最初に、サーバ１（すなわち、マイグレーション元）のマイグレーション処理部３０７が実行するマイグレーション処理の手順を説明する。
【０１３８】
サーバ１は、管理端末１４０からマイグレーション指示を受けて、マイグレーション処理を開始する（１００１）。マイグレーション指示には、マイグレーション対象のファイルシステム２０２のファイルシステムＩＤ、及び、マイグレーション先のサーバ１１０のサーバＩＤが含まれる。
【０１３９】
図１０の例では、ＦＳ１がマイグレーション対象のファイルシステム２０２である。サーバ２がマイグレーション先のサーバ１１０である。
【０１４０】
サーバ１は、マイグレーション処理が開始すると、最初に、サーバ２に対してマイグレーション開始の通知をする（１００２）。この通知には、マイグレーション対象のファイルシステムＩＤが含まれる。
【０１４１】
なお、この通知は、マイグレーション処理部３０７から指示されたサーバ間通信処理部３０６によって、サーバ間通信路１３５を経由して行われる。
【０１４２】
サーバ１は、ステップ１００２を実行した後で、クライアント１５０からＦＳ１内のファイル（例えば、「file2」）のファイルハンドル取得要求又はアクセス要求を受けると、そのクライアント１５０にファイルシステム位置通知（図９のステップ９０６又はステップ９１３参照）を応答する。サーバ１は、管理端末１４０からのマイグレーション指示を参照して、マイグレーション先のサーバＩＤを応答してもよい。
【０１４３】
次に、サーバ１は、マウントポイント管理テーブル１１５を更新する（１００３）。具体的には、マウントポイント管理テーブル１１５において、ＦＳ１に対応するサーバＩＤ４０３の値を、「ｓｉｄ１」（サーバ１のサーバＩＤ）から「ｓｉｄ２」（サーバ２のサーバＩＤ）に更新する。
【０１４４】
サーバ１は、マウントポイント管理テーブル１１５の更新の内容を、ストレージシステム１００内の他の全てのサーバ１１０に通知する。この通知は、マイグレーション処理部３０７から指示を受けたサーバ間通信処理部３０６が実行する。この通知を受けたサーバ１１０は、そのサーバ１１０内のマウントポイント管理テーブル１１５を、通知の内容に従って更新する。
【０１４５】
次に、サーバ１は、ディスクドライブ１２３にダーティデータを書き込む（１００４）。すなわち、ＦＳ１に属するファイルのデータが、ディスクドライブ１２３に書き込まれず、ディスクキャッシュ１２２のみに書き込まれている場合、そのデータをディスクドライブ１２３に書き込む。
【０１４６】
次に、サーバ１は、ファイルシステム２０２をアンマウントする（１００５）。具体的には、サーバ１からＦＳ１へのアクセスを無効にする。
【０１４７】
次に、サーバ１は、ＬＤＥＶ１２４を切断する（１００６）。具体的には、ＦＳ１が格納されたＬＤＥＶ１を、サーバ１のＯＳから認識できないようにする。
【０１４８】
次に、サーバ１は、サーバ２に対してマイグレーション終了の通知をする（１００７）。この通知は、マイグレーション処理部３０７から指示されたサーバ間通信処理部３０６によって、サーバ間通信路１３５を経由して行われる。
【０１４９】
以上で、サーバ１のマイグレーション処理部３０７が実行するマイグレーション処理が終了する。
【０１５０】
次に、サーバ２（すなわち、マイグレーション先）のマイグレーション処理部３０７が実行するマイグレーション処理の手順を説明する。
【０１５１】
サーバ２は、管理端末１４０からマイグレーション指示を受けて、マイグレーション処理を開始する（１０１１）。マイグレーション指示には、マイグレーション対象のファイルシステム２０２のファイルシステムＩＤ（図１０の例では、ＦＳ１）が含まれる。
【０１５２】
次に、サーバ２は、サーバ１からマイグレーション開始通知（１００２）を受ける。
【０１５３】
なお、ステップ１０１１のマイグレーション指示に含まれる情報が、マイグレーション開始通知（１００２）にも含まれる場合、ステップ１０１１は不要である。その場合、サーバ２は、サーバ１からマイグレーション開始通知を受けて、マイグレーション処理を開始する。
【０１５４】
マイグレーション開始通知（１００２）を受けた後、マウント（１０１４）が終了するまでに、クライアント１５０からマイグレーション対象のファイルシステム２０２内のファイル（例えば、「file2」）へのアクセス要求を受けた場合、サーバ２は、当該アクセス要求を保留するか、又は、一時エラーを応答する（１０１２）。ＦＳ１についてファイルハンドル取得要求を受けた場合も同様である。
【０１５５】
アクセス要求を保留した場合、サーバ２は、マイグレーション処理が終了した後で、保留されたアクセスを実行して、クライアント１５０に応答する。
【０１５６】
一時エラーを応答した場合、クライアント１５０は、しばらく待った後、再度同じアクセス要求を発行する。ここで、一時エラーとは、負荷の増大等のために所定の時間内に処理を実行できない場合にクライアント１５０に通知されるものである。ＮＦＳｖ４では、一時エラーとして、例えば、ＮＦＳ４ＥＲＲ＿ＤＥＬＡＹが応答される。
【０１５７】
従来のマイグレーション処理では、マイグレーション開始通知（１００２）が発行されないため、サーバ２は、マイグレーションが終了するまで、自身がマイグレーション先として設定されていることを知ることができない。このため、マイグレーションが開始された後、マイグレーションが終了する前に、クライアント１５０からマイグレーション対象のファイルシステム２０２へのアクセスを要求された場合、サーバ２は、該当するファイルが存在しないことを応答する。これは、アプリケーションのエラーとなる。
【０１５８】
一方、本発明によれば、サーバ２は、マイグレーション開始通知（１００２）によって、自身がマイグレーション先として設定されていることを知る。このため、サーバ２は、マイグレーション対象のファイルシステム２０２に対するアクセス要求を受けた時点でそのファイルシステム２０２にアクセスすることができない場合でも、やがてアクセスすることがきるようになることがわかる。このため、サーバ２は、このようなアクセス要求を保留するか、又は、一時エラーを応答することができる。その結果、アプリケーションのエラーの発生が回避される。
【０１５９】
サーバ２は、マイグレーション終了通知（１００７）を受けると、ＬＤＥＶ１２４を接続する（１０１３）。具体的には、マイグレーション対象のファイルシステム２０２を含むＬＤＥＶ１２４をサーバ２のＯＳに認識させる。
【０１６０】
次に、サーバ２は、マイグレーション対象のファイルシステム２０２をマウントする（１０１４）。具体的には、図８のステップ８０９と同様の処理を実行する。
【０１６１】
サーバ２は、ステップ１０１４のマウントが完了すると、クライアント１５０に対するサービスを開始する（１０１５）。具体的には、サーバ２は、クライアント１５０に対して、ＦＳ１へのアクセスの提供を開始する。ステップ１０１２において保留されたアクセス要求がある場合は、そのアクセスを実行する。
【０１６２】
以上で、サーバ２のマイグレーション処理部３０７が実行するマイグレーション処理が終了する。
【０１６３】
図１０のマイグレーション処理は、ＦＳ１のデータ自体は複写せず、サーバ１１０とＦＳ１との間の論理的な接続のみを変更するものである。しかし、リモートコピー等によってデータを複写することによってマイグレーション処理を実行してもよい。その場合も、図１０と同様の手順が実行される。
【０１６４】
例えば、新規に作成されたＬＤＥＶ１２４にファイルシステム２０２の全てのデータを複写することによってマイグレーション処理を実行してもよい。
【０１６５】
ここで、ファイルハンドル６００のファイルシステムＩＤ６０１がＬＤＥＶＩＤに基づいて定められる場合、複写元のＬＤＥＶ１２４のＬＤＥＶＩＤが、複写先のＬＤＥＶ１２４に引き継がれる。すなわち、複写先のＬＤＥＶ１２４のＬＤＥＶＩＤが、複写の実行前の複写もとのＬＤＥＶ１２４のＬＤＥＶＩＤと同一になる。複写元のＬＤＥＶ１２４は、削除されるか、又は、ＬＤＥＶＩＤが別の値に変更される。その結果、ファイルハンドル６００のファイルシステムＩＤ６０１がマイグレーションの前後で変化しない。このため、マイグレーション後もマイグレーション前と同じファイルハンドル６００を使用することができる。
【０１６６】
マイグレーションの際にデータが複写される別の例は、一つのＬＤＥＶ１２４に複数のファイルシステム２０２が格納され、それらのファイルシステム２０２うちの一つが他のサーバ１１０にマイグレーションされる場合である。この場合、同じＬＤＥＶ１２４内にマイグレーション対象でないファイルシステムも格納されているため、論理的な接続の変更によってマイグレーションを実行することはできない。したがって、マイグレーション対象のファイルシステム２０２の全てのデータを別のＬＤＥＶ１２４に複写する必要がある。
【０１６７】
ここで、ファイルハンドル６００のファイルシステムＩＤ６０１がＬＤＥＶＩＤに基づいて定められる場合、複写元のＬＤＥＶ１２４のＬＤＥＶＩＤを、複写先のＬＤＥＶ１２４が引き継ぐことはできない。複写元のＬＤＥＶ１２４には他のファイルシステム２０２が残っており、削除もＬＤＥＶＩＤの変更もすることができないためである。その結果、ファイルハンドル６００のファイルシステムＩＤ６０１がマイグレーションの前後で変化する。このため、マイグレーション後は、マイグレーション前と同じファイルハンドル６００を使用することができない。
【０１６８】
したがって、一つのＬＤＥＶ１２４に複数のファイルシステム２０２が格納される場合にも本発明を実施するためには、ファイルハンドル６００のファイルシステムＩＤ６０１を、ＬＤＥＶＩＤと無関係に定める必要がある。
【０１６９】
なお、上記のファイルシステム２０２の複写及びＬＤＥＶＩＤの引継ぎは、マイグレーション元のサーバ１１０の指示によって実行されてもよいし、マイグレーション先のサーバ１１０の指示によって実行されてもよい。
【０１７０】
図１１は、本発明の実施の形態のクライアントが実行する処理の概略を示すフローチャートである。
【０１７１】
図１１Ａは、従来のストレージシステムにアクセスするクライアント１５０が実行する処理のフローチャートである。
【０１７２】
図１１Ｂは、本発明の実施の形態のストレージシステム１００にアクセスするクライアント１５０が実行する処理のフローチャートである。
【０１７３】
図１１Ａ及び図１１Ｂは、共に、ファイルシステム２０２がマイグレーションされた後で、そのファイルシステム２０２にアクセスするクライアント１５０が実行する処理を示す。このとき、クライアント１５０は、マイグレーションが実行されたことを知らず、マイグレーション元のサーバ１１０にアクセス要求を発行する。
【０１７４】
まず、図１１Ａについて説明する。
【０１７５】
クライアント１５０は、サーバからファイルシステム位置通知を受ける（１１０１）。
【０１７６】
次に、クライアント１５０は、ステップ１１０１で通知されたマイグレーション先のサーバ（新しいサーバ）に、ファイルハンドル取得要求を発行して、そのサーバに名前解決をさせる（１１０２）。
【０１７７】
次に、クライアント１５０は、目的のファイルへのアクセスを再開する。具体的には、ステップ１１０２で取得したファイルハンドルを用いて、マイグレーション先のサーバにアクセス要求を発行する（１１０３）。
【０１７８】
次に、図１１Ｂについて説明する。
【０１７９】
クライアント１５０は、サーバ１１０からファイルシステム位置通知を受ける（１１１１）。
【０１８０】
次に、クライアント１５０は、目的のファイルへのアクセスを実行する。具体的には、マイグレーションが実行される前に取得したファイルハンドル６００を用いて、マイグレーション先のサーバ（新しいサーバ）１１０にアクセス要求を発行する（１１１２）。
【０１８１】
以上のように、従来は、マイグレーション後のファイルシステム２０２にアクセスするためには、ファイルハンドルを再度取得する必要があった。このため、クライアント１５０は、アプリケーションにエラーを返す必要があった。エラーを返されたアプリケーションは、再度ファイルをオープンしなければならない。あるいは、クライアント１５０が目的のファイルのパス名を記憶しておいてもよい。しかし、現在のクライアント１５０には、そのような機能がない。
【０１８２】
しかし、本発明によれば、マイグレーション前に取得したファイルハンドル６００を、マイグレーション後も使用することができる。このため、マイグレーション後にファイルハンドル６００を再度取得する必要がない。
【０１８３】
なお、ＮＦＳｖ４が適用される場合、従来の処理（図１１Ａ）では、マイグレーション後にファイルハンドルを無効にするため、volatileファイルハンドルが使用される。一方、本発明の実施の形態の処理（図１１Ｂ）では、ファイルハンドルを無効にする必要がないため、persistentファイルハンドルが使用される。
【０１８４】
次に、本発明の実施の形態のストレージシステム１００を管理するためのインターフェースについて説明する。このインターフェースは、管理端末１４０によってストレージシステム１００の管理者に提供される。
【０１８５】
図１２は、本発明の実施の形態の管理端末１４０の管理画面に表示されるファイルシステム一覧表示画面の説明図である。
【０１８６】
ファイルシステム一覧表示画面には、ファイルシステム一覧表１２００、作成ボタン１２０７、削除ボタン１２０８及びマイグレーションボタン１２０９が含まれる。
【０１８７】
ファイルシステム一覧表１２００において、ＬＤＥＶ１２０１は、管理端末１４０が管理するＬＤＥＶ１２４のＬＤＥＶＩＤである。図１０の例では、図２と同様のＬＤＥＶ１２４が記載されている。
【０１８８】
ＦＳ１２０２は、各ＬＤＥＶ１２４に格納されたファイルシステム２０２のファイルシステムＩＤである。図１０の例では、各ＬＤＥＶ１２４に図２と同様のファイルシステム２０２が格納されている。なお、図１０のＦＳ１２０２は、図４のファイルシステムＩＤ４０１と同じである。
【０１８９】
サイズ１２０３は、各ＬＤＥＶ１２４に設定された記憶容量（メガバイト）である。図１０の例では、ＬＤＥＶ０、ＬＤＥＶ１、ＬＤＥＶ２及びＬＤＥＶ３に、それぞれ、５０ギガバイト（ＧＢ）、３０ＧＢ、２０ＧＢ及び２００ＧＢが設定されている。
【０１９０】
マウントポイント１２０４は、各ファイルシステム２０２に設定されたマウントポイントである。図１０の例では、図４のパス４０２と同様のマウントポイントが設定されている。
【０１９１】
サーバ１２０５は、各ファイルシステム２０２を管理するサーバ１１０の識別子である。図１０の例において、各ファイルシステム２０２と、それを管理するサーバ１１０との関係は、図４と同様である。したがって、サーバ１２０５には、図４のサーバＩＤ４０３と同じ値が記載される。
【０１９２】
オプション１２０６は、各ＬＤＥＶ１２４に設定された属性を示す。図１０の例では、ＬＤＥＶ０、ＬＤＥＶ及びＬＤＥＶ３のオプション１２０６が「ｒｗ」（ｒｅａｄ／ｗｒｉｔｅ）と設定されている。これは、これらの三つのＬＤＥＶ１２４に、書き込み禁止属性及び読み出し禁止属性のいずれも設定されていないことを示す。すなわち、クライアント１５０は、これらの三つのＬＤＥＶ１２４に対して、データの書き込み及び読み出しのいずれも実行することができる。
【０１９３】
一方、ＬＤＥＶ２のオプション１２０６は、「ｒｏ」（ｒｅａｄ＿ｏｎｌｙ）と設定されている。これは、ＬＤＥＶ２に書き込み禁止属性が設定されていることを示す。すなわち、クライアント１５０は、ＬＤＥＶ２にデータを書き込むことができない。
【０１９４】
作成ボタン１２０７は、ファイルシステム２０２を新規作成するときに使用される。
【０１９５】
削除ボタン１２０８は、ファイルシステム２０２を削除するときに使用される。例えば、管理者が削除しようとするファイルシステム２０２を選択し、削除ボタン１２０８を操作すると、選択されたファイルシステム２０２が削除される。ここで、ファイルシステム２０２の選択は、図１２のＬＤＥＶ１２０１の欄の左側にある丸印をポインティングデバイス（図示省略）で操作（例えば、マウスクリック）することによって実行されてもよい。削除ボタン１２０８の操作も同様である。
【０１９６】
マイグレーションボタン１２０９は、ファイルシステム２０２をマイグレーションするときに使用される。例えば、管理者がマイグレーションしようとするファイルシステム２０２を選択し、マイグレーションボタン１２０９を操作すると、別の画面（図１３参照）が表示され、マイグレーションが実行される。
【０１９７】
図１３は、本発明の実施の形態の管理端末１４０の管理画面に表示されるマイグレーション設定画面の説明図である。
【０１９８】
マイグレーション設定画面は、管理者がファイルシステム一覧表示画面（図１２）においてファイルシステム２０２を選択し、マイグレーションボタン１２０９を操作したときに表示される。図１３は、例として、管理者がファイルシステム一覧表示画面においてＦＳ１を選択した場合のマイグレーション設定画面を示す。
【０１９９】
マイグレーション設定画面は、ＬＤＥＶ表示欄１３０１、ファイルシステム表示欄１３０２、サーバ入力欄１３０３及び実行ボタン１３０４を含む。
【０２００】
ＬＤＥＶ表示欄１３０１には、管理者が選択したファイルシステム２０２に対応するＬＤＥＶ１２４のＬＤＥＶＩＤが表示される。図１３の例では、ＬＤＥＶ１が表示される。
【０２０１】
ファイルシステム表示欄１３０２には、管理者が選択したファイルシステム２０２のファイルシステムＩＤが表示される。図１３の例では、ＦＳ１が表示される。
【０２０２】
サーバ入力欄１３０３には、マイグレーション先のサーバ１１０のＩＤが入力される。図１３の例では、「ｓｉｄ２」が入力されている。これは、管理者がＦＳ１をサーバ２にマイグレーションしようとしていることを示す。
【０２０３】
実行ボタン１３０４は、マイグレーションを実行するときに使用される。管理者が実行ボタン１３０４を操作すると、ＬＤＥＶ１に格納されたＦＳ１をサーバ２にマイグレーションする処理が開始される。
【０２０４】
以上の本発明によれば、ファイルシステムをサーバ間でマイグレーションすることによって、サーバのアクセス負荷を分散することができる。
【０２０５】
また、本発明によれば、ストレージシステム内の全てのサーバが、名前空間を共有する。各ファイルに対応するファイルハンドルが、ストレージシステム内で一意に設定される。各ファイルハンドルは、マイグレーションが実行されても変化しない。その結果、マイグレーションが実行される前に取得したファイルハンドルを、マイグレーションが実行された後も使用することができる。
【０２０６】
また、本発明によれば、マイグレーションの実行が開始されたことが、マイグレーション先のサーバに通知される。マイグレーション先のサーバは、マイグレーション実行中にマイグレーション対象のファイルシステムへのアクセス要求を受けたとき、要求を保留又は一時エラーを返す。いずれの場合も、当該アクセスはマイグレーション終了後に実行されるため、クライアントはアプリケーションにエラーを返す必要がない。
【図面の簡単な説明】
【０２０７】
【図１】本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【図２】本発明の実施の形態のディスクサブシステムの論理的な構成を示すブロック図である。
【図３】本発明の実施の形態のサーバソフトウエアの構成の説明図である。
【図４】本発明の実施の形態のマウントポイント管理テーブルの説明図である。
【図５】本発明の実施の形態においてクライアントに提供される名前空間の説明図である。
【図６】本発明の実施の形態のファイルハンドルの説明図である。
【図７】本発明の実施の形態において実行される処理の概略の説明図である。
【図８】本発明の実施の形態において実行されるファイルシステム作成処理のフローチャートである。
【図９】本発明の実施の形態において実行されるファイルアクセス処理のシーケンス図である。
【図１０】本発明の実施の形態において実行されるマイグレーション処理のフローチャートである。
【図１１】本発明の実施の形態のクライアントが実行する処理の概略を示すフローチャートである。
【図１２】本発明の実施の形態の管理端末の管理画面に表示されるファイルシステム一覧表示画面の説明図である。
【図１３】本発明の実施の形態の管理端末の管理画面に表示されるマイグレーション設定画面の説明図である。
【符号の説明】
【０２０８】
１００  ストレージシステム
１１０  サーバ
１１１  ネットワークインターフェース
１１２  ＣＰＵ
１１３  ローカルメモリ
１１４  サーバソフトウエア
１１５  マウントポイント管理テーブル
１１６  アダプタ
１２０  ディスクサブシステム
１２１  ディスクコントローラ
１２２  ディスクキャッシュ
１２３  ディスクドライブ
１２４  論理デバイス（ＬＤＥＶ）
１３０  ストレージエリアネットワーク（ＳＡＮ）
１３５  サーバ間通信路
１４０  管理端末
１５０  クライアント
１６０  ＬＡＮ
２０１  論理ユニット（ＬＵ）
２０２  ファイルシステム（ＦＳ）
３０１  ネットワーク処理部
３０２  ファイルシステム処理部
３０３  ディスクアクセス部
３０４  デバイス番号管理部
３０５  サーバ管理処理部
３０６  サーバ間通信処理部
３０７  マイグレーション処理部
６００  ファイルハンドル
【図１】
2006164169.tif 000003
【図２】
2006164169.tif 000004
【図３】
2006164169.tif 000005
【図４】
2006164169.tif 000006
【図５】
2006164169.tif 000007
【図６】
2006164169.tif 000008
【図７】
2006164169.tif 000009
【図８】
2006164169.tif 000010
【図９】
2006164169.tif 000011
【図１０】
2006164169.tif 000012
【図１１】
2006164169.tif 000013
【図１２】
2006164169.tif 000014
【図１３】
2006164169.tif 000015