(57)【要約】【課題】仮想ファイルサーバが設定された複数のファイルサーバによって構成されるクラスタ内で仮想ファイルサーバを動的に移動させる。【解決手段】第１ファイルサーバ、第２ファイルサーバ及びディスクサブシステムを備えるストレージシステムであって、各ファイルサーバには、仮想ファイルサーバを設定する仮想ファイルサーバ制御処理部が設けられ；仮想ファイルサーバには、通信に必要な経路情報を記憶するルーティングテーブルが設けられ；前記第１ファイルサーバの仮想ファイルサーバを前記第２ファイルサーバにフェイルオーバした後、前記第２ファイルサーバにおいて起動された仮想ファイルサーバは、前記第１ファイルサーバにおいて当該仮想ファイルサーバが使用していたルーティングテーブルを使用して通信経路を定める。【選択図】  図１
2005267327.tif 000002
【特許請求の範囲】
【請求項１】
第１ファイルサーバ、第２ファイルサーバ及びディスクサブシステムを備えるストレージシステムであって、
前記各ファイルサーバは、ネットワークに対してデータを入出力するネットワークインターフェースと、前記ディスクサブシステムに対する入出力処理を行うディスクアダプタと、演算処理をするＣＰＵと、前記ＣＰＵによる演算処理に必要なデータを記憶する記憶部とを有し；
前記各ファイルサーバには、
仮想ファイルサーバの起動、終了を制御して、前記ファイルサーバに複数の仮想ファイルサーバを設定する仮想ファイルサーバ制御処理部と、
前記仮想ファイルサーバからの要求を受け、ディスクアクセス部によってファイルへのアクセスを処理するファイルシステム処理部と、
前記ファイルシステム処理部からの要求を受け、前記ディスクサブシステムに対する入出力処理を行うディスクアクセス部と、
前記ファイルサーバに設定された仮想ファイルサーバの動作状態を監視し、障害が発生した仮想ファイルサーバを検出する仮想ファイルサーバ障害監視処理部と、
前記ファイルサーバの障害を監視し、当該障害監視結果に基づいてファイルサーバ間のフェールオーバを行わせる装置間障害監視処理部と、
前記ファイルサーバ間の通信によって、前記仮想ファイルサーバの起動や終了を同期させる装置間同期処理部と、
前記ファイルサーバの管理を行う装置管理処理部と、が設けられ；
前記複数の仮想ファイルサーバの各々には、
前記ネットワークインタフェースの設定及び前記ネットワークインタフェースを用いてネットワークとの間で信号を送受信するネットワーク処理部と、
前記ネットワークインターフェースの制御情報が記憶されているネットワークインターフェース情報記憶部と、
前記ネットワークインターフェースを介して接続された機器との通信に必要な経路情報を記憶するルーティングテーブルと、
管理用端末からの指示に基づいて、仮想ファイルサーバ毎の設定を行う仮想ファイルサーバ管理処理部と、
前記ファイルサーバによってアクセス可能な論理ユニットを構成するディスクドライブの情報が記憶されているマウントテーブルと、
ディスクドライブに記憶されているデータにアクセスするための情報が記録されているデバイスファイルと、が設けられ；
前記ディスクサブシステムは、
データを記憶するディスクドライブと、
前記ディスクドライブに対するデータの入出力等のディスクサブシステムの動作を制御するディスク制御部と、
前記ディスクドライブに入出力されるデータを一時的に記憶するディスクキャッシュと、を有し；
前記ディスクドライブには、
各仮想ファイルシステムに対するリソースの割当が記録される構成情報と、前記マウントテーブル、前記ルーティングテーブル及び前記デバイスファイルが記録されるサービス状況ファイルの複製とが記憶され、前記各ファイルサーバから共通してアクセス可能なボリュームが設定され；
前記第１ファイルサーバの前記仮想ファイルサーバ制御処理部が、前記仮想ファイルサーバを、前記第２ファイルサーバにフェイルオーバするために、前記仮想ファイルサーバの終了指示を発行し、
前記第１ファイルサーバの装置間同期処理部は、前記第２ファイルサーバに対してフェイルオーバを要求し、
前記第２ファイルサーバの仮想ファイルサーバ制御処理部は、前記ディスクドライブから前記構成情報、前記マウントテーブル、前記ルーティングテーブル及び前記デバイスファイルを読み出し、
前記第２ファイルサーバの仮想ファイルサーバ制御処理部は、前記第２ファイルサーバにおいて仮想ファイルサーバを起動し、
前記第２ファイルサーバの仮想ファイルサーバは、当該読み出したルーティングテーブルを使用して通信経路を定めるストレージシステム。
【請求項２】
第１ファイルサーバ、第２ファイルサーバ及びディスクサブシステムを備えるストレージシステムであって；
前記ディスクサブシステムは、データを記憶するディスクと、前記ディスクに記憶されたデータを前記ファイルサーバに送信するディスク制御部と、を有し；
前記各ファイルサーバは、ネットワークに対してデータを入出力するネットワークインターフェースを有し；
前記各ファイルサーバには、仮想ファイルサーバの起動、終了を制御して、前記ファイルサーバに仮想ファイルサーバを設定する仮想ファイルサーバ制御処理部が設けられ；
前記仮想ファイルサーバには、
前記ネットワークインタフェースの設定及び前記ネットワークインタフェースを用いてネットワークとの間で信号を送受信するネットワーク処理部と、
前記ネットワークインターフェースを介して接続された機器との通信に必要な経路情報を記憶するルーティングテーブルと、が設けられ；
前記第１ファイルサーバの仮想ファイルサーバを前記第２ファイルサーバにフェイルオーバした後、前記第２ファイルサーバにおいて起動された仮想ファイルサーバは、前記第１ファイルサーバにおいて当該仮想ファイルサーバが使用していたルーティングテーブルを使用して通信経路を定めるストレージシステム。
【請求項３】
前記第１ファイルサーバの仮想ファイルサーバを前記第２ファイルサーバにフェイルオーバする際に、前記第２ファイルサーバの仮想ファイルサーバ制御処理部は、前記ディスクサブシステム内に設けられた共通ボリュームからルーティングテーブルを読み出すことによって、前記第１ファイルサーバにおいて当該仮想ファイルサーバが使用していたルーティングテーブルを取得して、仮想ファイルサーバを起動し、
前記第２ファイルサーバにおいて起動された仮想ファイルサーバは、当該取得したルーティングテーブルを使用して通信経路を定める請求項２に記載のストレージシステム。
【請求項４】
前記第１ファイルサーバの仮想ファイルサーバを前記第２ファイルサーバにフェイルオーバする際に、前記第２ファイルサーバの仮想ファイルサーバ制御処理部は仮想ファイルサーバを起動し、
起動された仮想ファイルサーバは、前記第１ファイルサーバと通信をすることによって取得していた、前記第１ファイルサーバにおいて当該仮想ファイルサーバが使用していたルーティングテーブルを用いて、通信経路を定める請求項２に記載のストレージシステム。
【請求項５】
前記仮想ファイルサーバ制御処理部は、第１ネットワークに接続される第１仮想ファイルサーバと、第２ネットワークに接続される第２仮想ファイルサーバとを設定し、
前記第１ネットワークと前記第２ネットワークとは異なるネットワークセグメントに属する請求項２に記載のストレージシステム。
【請求項６】
前記第１ファイルサーバは、
前記第１ファイルサーバに設定された仮想ファイルサーバの障害を検出する仮想ファイルサーバ障害監視処理部と、
前記仮想ファイルサーバの起動や終了のタイミングを制御する装置間同期処理部と、を備え；
前記仮想ファイルサーバ障害監視処理部によって仮想ファイルサーバの障害が検出されると、前記装置間同期処理部は前記第２ファイルサーバに対してフェイルオーバを要求する請求項２に記載のストレージシステム。
【請求項７】
前記仮想ファイルサーバ障害監視処理部は、障害が発生した仮想ファイルサーバを特定し、
前記装置間同期処理部は、前記第２ファイルサーバに対して障害が発生した仮想ファイルサーバを特定する情報を含むフェイルオーバ要求を送信する請求項６に記載のストレージシステム。
【請求項８】
前記仮想ファイルサーバ障害監視処理部は、前記仮想ファイルサーバからの通知に基づいて、前記仮想ファイルサーバの障害を認識する請求項７に記載のストレージシステム。
【請求項９】
前記第１ファイルサーバは、前記仮想ファイルサーバの起動や終了のタイミングを制御する装置間同期処理部を備え、
前記装置間同期処理部は、前記第１ファイルサーバの仮想ファイルサーバを終了させた後に、前記第２ファイルサーバの仮想ファイルサーバを起動する請求項２に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ファイルサーバが設定された複数のファイルサーバによってクラスタが構成されているストレージシステムに関し、特に仮想ファイルサーバの切替技術に関する。
【背景技術】
【０００２】
従来の計算機における論理分割技術では、計算機内のプロセッサ、メモリ等の資源が論理分割されてそれぞれの仮想的な計算機に割り付けられていた。
【０００３】
この技術を応用して、ネットワーク資源等を仮想ファイルサーバ毎に分割することによって、一つのファイルサーバ上で動作する仮想のサービス単位である仮想ファイルサーバを設定して、各仮想ファイルサーバが異なるネットワークに属することを可能とする技術が提案されている。この技術によって、一つのファイルサーバで同じプライベートアドレスを持つ複数のネットワークセグメントに対し個別のサービスを提供することが可能となる（例えば、特許文献１参照。）。
【０００４】
また、複数のファイルサーバ間で、通信路または共有のディスク等を用いて、定期的に動作中の状態を相手に送信して互いに相手の状態を監視し、相手の障害を検出した場合には相手のサービスを引き継ぐフェールオーバ機能が知られている（例えば、特許文献２参照。）。
【特許文献１】米国特許出願公開第２００３／０１３５５７８号明細書
【特許文献２】米国特許第６３１７８４４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述した仮想ファイルサーバを持つ複数のファイルサーバでクラスタを構成した場合に、ファイルサーバ間で仮想ファイルサーバを移動することは考慮されていなかった。
【０００６】
また、ファイルサーバ間で仮想ファイルサーバを移動することができないので、仮想ファイルサーバ単位での負荷分散を行うことができず、特定のファイルサーバに負荷が集中することがあった。
【０００７】
本発明は、仮想ファイルサーバが設定された複数のファイルサーバによって構成されるクラスタ内で仮想ファイルサーバを動的に移動させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、第１ファイルサーバ、第２ファイルサーバ及びディスクサブシステムを備えるストレージシステムであって；前記ディスクサブシステムは、データを記憶するディスクと、前記ディスクに記憶されたデータを前記ファイルサーバに送信するディスク制御部と、を有し；前記各ファイルサーバは、ネットワークに対してデータを入出力するネットワークインターフェースを有し；前記各ファイルサーバには、仮想ファイルサーバの起動、終了を制御して、前記ファイルサーバに仮想ファイルサーバを設定する仮想ファイルサーバ制御処理部が設けられ；前記仮想ファイルサーバには、前記ネットワークインタフェースの設定及び前記ネットワークインタフェースを用いてネットワークとの間で信号を送受信するネットワーク処理部と、前記ネットワークインターフェースを介して接続された機器との通信に必要な経路情報を記憶するルーティングテーブルと、が設けられ；前記第１ファイルサーバの仮想ファイルサーバを前記第２ファイルサーバにフェイルオーバした後、前記第２ファイルサーバにおいて起動された仮想ファイルサーバは、前記第１ファイルサーバにおいて当該仮想ファイルサーバが使用していたルーティングテーブルを使用して通信経路を定める。
【発明の効果】
【０００９】
本発明によると、仮想ファイルサーバが設定された複数の装置によって構成されるクラスタ内で仮想ファイルサーバを動的に移動させることによって、障害が生じた仮想ファイルサーバのみのフェールオーバが可能となり、仮想ファイルサーバ単位の負荷分散が可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面を参照して説明する。
【００１１】
図１は、本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【００１２】
本発明の実施の形態のストレージシステム１は、複数のファイルサーバ１０、２０、及びディスクサブシステム４０によって構成されており、ＮＡＳ（Network Attached Storage）を構成している。また、ファイルサーバ１０及びファイルサーバ２０によってクラスタが構成されている。
【００１３】
ファイルサーバ１０は、ネットワークインターフェース１１〜１３、ＣＰＵ１４、メインメモリ１５、及びディスクアダプタ１６を有し、これらのハードウェアによって構成される装置である。
【００１４】
また、ファイルサーバ１０に備わる資源（ネットワークインターフェース１１〜１３、ＣＰＵ１４、メインメモリ１５、ディスクアダプタ１６）は、仮想ファイルサーバ１０ａ〜１０ｃを構成するプログラムがＣＰＵ１４において動作することによって、ファイルサーバ１０内に独立して動作する仮想ファイルサーバが構成されている。すなわち、ＣＰＵ１４が、メインメモリ１５に格納された仮想ファイルサーバを構成するプログラムを実行することによって、ファイルサーバ１０に複数の仮想ファイルサーバが構築され、仮想ファイルサーバ間で資源（ＣＰＵ１４、メインメモリ１５、ディスクアダプタ１６等）が共有される。
【００１５】
ネットワークインターフェース１１〜１３は、クライアント（図示省略）に対するインターフェースであり、例えば、ＴＣＰ／ＩＰ等のプロトコルで通信を行う。なお、ファイバチャネルや、ｉＳＣＳＩ（internet SCSI）によって通信可能なものであってもよい。また、ネットワークインターフェース１１〜１３は、ネットワーク内に設定された仮想的なグループによるネットワーク（ＶＬＡＮ：Virtual LAN）に接続されるものであってもよい。 また、ネットワークインターフェース１１〜１３は、各々異なるネットワーク６ａ〜６ｃ（異なるセグメント）に接続されている。
【００１６】
ディスクアダプタ１６は、ファイバチャネル等のディスクサブシステム４０に対するプロトコル処理を行う。
【００１７】
ファイルサーバ１０は、ディスクアダプタ１６によって、ディスクサブシステム４０内のＬＵ（論理ユニット）へアクセスすることができ、ディスクドライブに記憶されているデータを読み書きすることができる。
【００１８】
なお、ファイルサーバ１０について説明したが、ファイルサーバ２０も同様の構成を有し、ファイルサーバ１０とファイルサーバ２０とは物理的に異なるハードウェアによって構成されている。
【００１９】
ファイルサーバ１０とファイルサーバ２０とはクラスタ間通信路５０によって接続されている。クラスタ間通信路５０は、ストレージシステム１内に設けられたＬＡＮやInfini-band等の通信路であってもよいし、外部のネットワークを経由するものでもよい。
【００２０】
ファイルサーバ１０とファイルサーバ２０とは、互いの状態を通知し合うことによって互いの状態を監視しており、ファイルサーバ１０とファイルサーバ２０とによってクラスタが構成されている。なお、特定のクラスタ間通信路を持たず、ファイルサーバ１０とファイルサーバ２０とがディスクキャッシュやディスクドライブの特定の領域を共通して使用して、互いに所定のデータを定期的に読み書きすることによって、相互に状態を監視することもできる。
【００２１】
ディスクサブシステム４０は、ファイルサーバ１０に接続されており、ディスク制御部４１、ディスクキャッシュ４２、及びディスクドライブ４４ａ〜４４ｄが備わっている。
【００２２】
ディスク制御部４１は、ファイルサーバ１０のディスクアダプタ１６からのデータ入出力要求を受信して、ディスクドライブ４４ａ〜４４ｄに対するデータの入出力を制御する。
【００２３】
ディスクキャッシュ４２は、ディスクドライブ４４ａ〜４４ｄから読み出されるデータや、ディスクドライブ４４ａ〜４４ｄに書き込まれるデータを一時的に記憶して、クライアント対するストレージシステム１のアクセス性能を向上させる。
【００２４】
ディスクドライブ４４ａ〜４４ｄには、ＯＳが一つのディスクとして認識できる単位である論理ユニット（ＬＵ）が設定されている。また、論理ユニットはＲＡＩＤ（Redundant Array of Independent Disks）で構成されており、記憶されるデータに冗長性を持たせている。このため、ディスクドライブ４４ａ〜４４ｄの一部に障害が生じても、記憶されたデータが消失しないようになっている。
【００２５】
管理用端末２は、ＣＰＵ、メモリ、記憶装置及びネットワークインターフェースが備わるコンピュータ装置であり、クラスタやファイルサーバの設定等を行うための管理プログラムが動作している。なお、仮想サーバ毎に管理用端末を設けてもよい。
【００２６】
ネットワーク６ａ〜６ｃは、例えば、ＴＣＰ／ＩＰ等のプロトコルで通信を行うネットワークである。
【００２７】
図２は、本発明の実施の形態のストレージシステムの機能ブロック図である。
【００２８】
ファイルサーバ１０には、仮想ファイルサーバ１０ａ、仮想ファイルサーバ１０ｂ及び仮想ファイルサーバ１０ｃが設定されている。以下、仮想ファイルサーバ１０ａについて説明するが、仮想ファイルサーバ１０ｂ、１０ｃも同じ構成を有する。
【００２９】
仮想ファイルサーバ１０ａには、ネットワーク処理部１０５及び仮想ファイル管理サーバ管理処理部１０６が設けられている。
【００３０】
ネットワーク処理部１０５は、仮想ファイルサーバに属するネットワークインタフェース１１〜１３の設定、及びそれらを用いてネットワークとの間でデータや制御信号を送受信する。また、ネットワークファイルシステム（ＮＦＳ：Network File System、ＣＩＦＳ：Common Internet File System等）に関する処理も行う。
【００３１】
仮想ファイルサーバ管理処理部１０６は、管理用端末２からの指示に基づいて、仮想ファイルサーバ毎の設定（例えば、ネットワークの設定、ファイルシステムのマウント、ユーザ管理等）を行う。
【００３２】
また、仮想ファイルサーバ１０ａには、ネットワークインターフェース情報１０１、ルーティングテーブル１０２、マウントテーブル１０３、及びデバイスファイル１０４が設けられている。
【００３３】
ネットワークインターフェース情報１０１には、仮想ファイルサーバ１０ａによってアクセス可能なネットワークインターフェース１１〜１３の制御情報（例えば、通信の転送長といった通信プロトコルを定めるプロトコルファイル等）が記憶されている。
【００３４】
ルーティングテーブル１０２には、ネットワークインターフェース１１〜１３を介してネットワーク６ａ〜６ｃに接続された機器との通信に必要な経路情報が記憶されている。ルーティングテーブル１０２は、仮想ファイルサーバ毎に分離して設けられているので、同じＩＰアドレスを用いる異なるネットワークセグメントに同一ファイルサーバ１０の異なる仮想ファイルサーバを接続することができる。
【００３５】
マウントテーブル１０３には、仮想ファイルサーバ１０ａによってアクセス可能なファイルシステムの情報（マウントポイント、デバイス名等）が記憶されている。
【００３６】
デバイスファイル１０４は、ＬＵにアクセスするためのファイルである。ディスクサブシステム４０へデータ入出力を要求するときに、デバイスファイル１０４にアクセスすることによって、ＯＳのカーネルに組み込まれたデバイスドライバが起動されて、ディスクサブシステム４０上のＬＵへのアクセスが実現される。マウントテーブル１０３やデバイスファイル１０４は、仮想ファイルサーバ毎に分離して設けられているので、仮想ファイルサーバ毎に起動、終了をすることができる。
【００３７】
以上、仮想ファイルサーバ１について説明をしたが、仮想ファイルサーバ２及び仮想ファイルサーバ３も同じ構成を有する。
【００３８】
なお、各仮想ファイルサーバによって提供されるファイルシステムを分離するために、マウントテーブル１０３とデバイスファイル１０４は仮想ファイルサーバ毎に分離されて設けられている。しかし、その必要がなければ、マウントテーブル１０３とデバイスファイル１０４とは必ずしも仮想ファイルサーバ毎に分離して設ける必要はない。
【００３９】
また、マウントテーブル１０３、デバイスファイル１０４及びネットワーク処理部１０５は仮想ファイルサーバ毎に分離されて設けられているが、異なる仮想ファイルサーバが同じＬＵにアクセス可能とする場合には、これらをファイルサーバで共通に使用される共通処理部に設けてもよい。
【００４０】
また、ファイルサーバ１０には、各仮想ファイルサーバ１０ａ〜１０ｃに共通する処理として、ファイルシステム処理部１１１、ディスクアクセス部１１２、装置間障害監視処理部１１３、仮想ファイルサーバ制御処理部１１４、仮想ファイルサーバ障害監視処理部１１５、装置間同期処理部１１６及び装置管理処理部１１７が設けられている。これらの各部は、メインメモリ１５に記憶されたプログラムがＣＰＵ１４において実行されることによって実現される。
【００４１】
ファイルシステム処理部１１１は、仮想ファイルサーバ１０ａ〜１０ｃからの要求を受け、ディスクアクセス部１１２等に指示をして、ファイルへのアクセスを処理する。
【００４２】
ディスクアクセス部１１２は、ファイルシステム処理部１１１等からの要求を受け、ディスクサブシステムに対するデータ入出力処理を行う。
【００４３】
装置間障害監視処理部１１３は、クラスタ内の他の装置（ファイルサーバ２０）の動作状態を定期的に監視する。そして、他のファイルサーバの障害を検出した場合は、そのファイルサーバで行っていたサービスを引き継ぐための処理を行い、ファイルサーバ間のフェールオーバを行わせる。
【００４４】
仮想ファイルサーバ制御処理部１１４は、仮想ファイルサーバの起動や終了、定義や削除、資源の割り当てや削除等の、仮想ファイルサーバ１０ａ〜１０ｃの制御を行う。すなわち、仮想ファイルサーバ制御処理部１１４は、ファイルサーバ１０に仮想ファイルサーバを設定する。
【００４５】
仮想ファイルサーバ障害監視処理部１１５は、装置（ファイルサーバ１０、２０）内で動作中の仮想ファイルサーバ１０ａ〜１０ｃの動作状態を監視し、障害が発生した仮想ファイルサーバを検出する。
【００４６】
装置間同期処理部１１６は、クラスタ内の装置（ファイルサーバ１０）間の通信によって、仮想ファイルサーバの起動、終了のタイミングを制御して、仮想ファイルサーバの起動、終了のを同期させる。この同期処理は、ハードウェア的に異なるファイルサーバに設けられた仮想ファイルサーバ間の同期の処理を行う。
【００４７】
装置管理処理部１１７は、管理用端末２からの指示に基づいて、ファイルサーバの管理を行う。例えば、クラスタの設定やネットワーク（ＶＬＡＮを含む）の構成設定等によってストレージシステム１の動作を管理する。また、仮想ファイルサーバの設定の変更や、装置間の仮想ファイルサーバの移動指示等を行う。さらに、仮想ファイルサーバへの操作が指示されたときは、仮想ファイルサーバ制御処理部１１４に処理を指示する。
【００４８】
ディスクサブシステム４０には、論理ユニット（ＬＵ）が設けられており、仮想ファイルサーバ毎に使用するＬＵが分離されている。例えば、ＬＵ１は仮想ファイルサーバ１によってアクセスされ、ＬＵ２は仮想ファイルサーバ２によってアクセスされ、ＬＵ３は仮想ファイルサーバ３によってアクセスされる。
【００４９】
なお、各仮想ファイルサーバによって提供されるファイルシステムを分離するために、ＬＵは仮想ファイルサーバ毎に分離されているが、その必要がなければ必ずしも仮想ファイルサーバ毎に分離して設ける必要はない。
【００５０】
ディスクサブシステム４０には、ファイルサーバ間で共有されるシステムＬＵが設けられている。このシステムＬＵには、各ファイルサーバの仮想ファイルサーバからアクセス可能とされ、仮想ファイルサーバで使用される各種処理プログラムやデータが記憶される。よって、システムＬＵは共通ボリュームとして機能する。
【００５１】
システムＬＵには、構成情報及びサービス状況ファイルが記憶される。構成情報には、各仮想ファイルシステムに対する物理リソースの割当情報が記録されている。例えば、ネットワークインターフェース１１〜１３の情報や、仮想ファイルサーバに対するＬＵの割当等である。また、サービス状況ファイルには、仮想ファイルサーバ１０ａに記憶される情報のうち、マウントテーブル１０３、ルーティングテーブル１０２及びデバイスファイル１０４の情報が複製され記憶される。例えば、仮想ファイルサーバでどのようなサービスを行うか、ディスクのマウント、アンマウントの情報、ディスクへのアクセス制限の情報等が記録される。
【００５２】
この構成情報やサービス状況を共有する方法には、前述した共通ボリュームを用いる方法の他、メモリに記憶された構成情報又はサービス状況に変更があると、クラスタ間通信路５０を通じて他のファイルサーバに変更後の構成情報又はサービス状況を通知することによって、ファイルサーバ間で共通の情報を持つ方法を用いることもできる。
【００５３】
図３は、本発明の実施の形態のストレージシステムで用いられる各種テーブルの説明図である。
【００５４】
マウントテーブル１０３は、仮想ファイルサーバ毎に設けられており、ファイルシステムＩＤ、inode#、親ファイルシステム、マウントポイント、親inode#及びデバイス名が記録されている。
【００５５】
ファイルシステムＩＤは、ファイルシステムに一意に定められたを識別符号である。inode#は、そのファイルシステムのルートディレクトリを当該ファイルシステムから見た番号である。親ファイルシステムは、そのファイルシステムがどのファイルシステムの下位に設けられているかを規定する。マウントポイントは、そのファイルシステムが設けられている場所であり、そのファイルシステムのルートディレクトリのパス名である。親inode#は、そのファイルシステムのルートディレクトリを上位のファイルシステムから見た番号である。すなわち、親ディレクトリｆｓ０のinode#＝２０にはｆｓ１がマウントされており、ｆｓ１のルートディレクトリにはinode#＝２００が割り当てられている。つまり、ｆｓ１のマウントポイントは、ｆｓ０側から見るとinode#＝２０であり、ｆｓ１側から見るとinode#＝２００である。デバイス名は、そのファイルシステムに割り当てられたデバイス名であり、ファイルシステムを特定するために用いられる。
【００５６】
マウントテーブル１０３には、仮想ファイルサーバ１０ａに割り当てられたデバイス（デバイスファイルに登録されたデバイス）をマウントする毎に対応するエントリが追加される。例えば、仮想ファイルサーバにファイルシステムがマウントされる毎にエントリが追加される。
【００５７】
マウントテーブル１０３は、仮想ファイルサーバ毎に分離して設けられている。仮想ファイルサーバ毎にマウントテーブル１０３を分離して設けることによって、仮想ファイルサーバ毎にディレクトリ構成を異ならせることができる。なお、仮想ファイルサーバ間で共通のディレクトリ構成を有する場合には、仮想ファイルサーバ毎にマウントテーブルを分離して設ける必要はない。
【００５８】
デバイスファイル１０４には、デバイス名及びデバイスＩＤが記録される。デバイスＩＤは、このファイルシステムで扱われるＬＵに対応するストレージ装置内で一意の番号が割り当てられている。
【００５９】
デバイスファイル１０４は、仮想ファイルサーバに対して、デバイス（ディスク）が割り当てられる毎に、対応するエントリが作成される。デバイスをマウントする時、仮想ファイルサーバ毎に分割されたテーブルを使用することで、仮想ファイルサーバからのアクセスが、このテーブルに割り当てられたデバイスのみに制限される。なお、仮想ファイルサーバ間でデバイスファイルを共有する場合には、仮想ファイルサーバ毎にデバイスファイルを分離して設ける必要はない。
【００６０】
ルーティングテーブル１０２は、ネットワークを介して通信を行う場合のパケットの転送経路を定めるために使用され、宛先、ゲートウェイ（gateway）、ネットマスク（mask）及びネットワークインターフェースが記録されている。すなわち、192.168.1.0〜192.168.1.255の宛先に対しては、ネットワークインターフェースeth0からパケットが転送される。また、192.168.2.0〜192.168.2.255の宛先に対しては、ネットワークインターフェースeth1からパケットが転送される。また、これら以外の宛先に対しては、ネットワークインターフェースeth0から、192.168.1.1のアドレスを持つゲートウェイに対してパケットが転送される。
【００６１】
ルーティングテーブル１０２は、仮想ファイルサーバ毎に分離して設けられている。仮想ファイルサーバ毎にルーティングテーブル１０２を設けることによって、仮想ファイルサーバ毎に異なるネットワークに対してサービスを行うことができる。すなわち、仮想ファイルサーバ毎に、仮想ファイルサーバによって送信を行うネットワークインタフェース１１等が異なり、ルーティングテーブル１０２が異なることによって、異なるネットワークセグメントに存在可能な同じアドレスを有する装置と通信をすることができる。
【００６２】
次に、本発明の実施の形態のストレージシステムの動作について説明する。
【００６３】
まず、ファイルへのアクセスを行う前に、仮想ファイルサーバにファイルシステムをマウントする。このマウント処理は、管理用端末２からの指示によって仮想ファイルサーバ管理処理部１０６で行われる。この時、デバイスファイルを使用し、そのデバイスに対するエントリがマウントテーブルに作成される。
【００６４】
ファイルへのアクセスには、ファイルの名前解決が必要である。あるファイルにアクセスを行う場合、まずファイルの名前から、そのファイルを特定可能な識別子に変換することが必要となる。例えば、ファイルシステム内部では、ファイルの識別にinode#を用いる。しかし、ＮＦＳ（Network File System）においては、クライアントからの要求はファイルハンドルと呼ばれる識別子を用いるが、これらは一対一に対応しているので、inode#と同じに考えられる。
【００６５】
名前解決では、親ディレクトリのinode#とファイル名が与えられ、そのファイルに対するinode#を得る。ネットワーク処理部１０５では、ファイルシステムのマウントポイントを超えるときに、親ディレクトリのマウントポイントの親inode#をマウントされたファイルシステムのinode#にマウントテーブルを用いて変換し、そのinode#とファイル名をファイルシステム処理部１１１に渡すことによって名前解決を行う。
【００６６】
その後、名前解決によって得られた識別子を用いてファイルを指定してファイルへの要求が行われる。ネットワーク処理部１０５が、アクセスを行うinode#とアクセスの種別とを受け取ると、それをファイルシステム処理部１１１に送信する。ファイルシステム処理部１１１は、必要に応じてディスクアクセス部１１２に要求を送信してディスクにアクセスする。
【００６７】
ファイルサーバ１０の場合、ファイルへのアクセス要求はネットワークを介してクライアントから受け取る。どのネットワークインタフェース１１〜１３がファイルへのアクセス要求を受け取るかによって、仮想ファイルサーバが決まるため、アクセス要求はその仮想ファイルサーバのネットワーク処理部１０５に送られる。その後、ファイルシステム処理部１１１にも要求が送られる。ファイルシステム処理部１１１は、必要に応じてディスクアクセスを行って応答を作成し、その応答をネットワーク処理部１０５に送る。そして、その応答はルーティングテーブル１０２を参照してクライアントへ送信される。
【００６８】
図４は、本発明の実施の形態のストレージシステムにおけるフェイルオーバ処理手順の説明図である。
【００６９】
まず、仮想ファイルサーバ制御処理部１１４は、仮想ファイルサーバ１のフェイルオーバ指示を受け取る。このフェイルオーバ指示は、仮想ファイルサーバ１に障害が発生したときには仮想ファイルサーバ障害監視処理部１１５によって発行される（１ａ）。この仮想ファイルサーバの障害としては、仮想ファイルサーバのネットワークインタフェース１１等の障害や、ネットワーク接続先の障害による通信の不能や、ディスクサブシステム４０へのアクセス不可等の原因が考えられる。
【００７０】
また、フェイルオーバ指示は、負荷分散を目的として管理用端末２から発行されることもある。この場合、フェイルオーバ指示は、装置管理処理部１１７を通して仮想ファイルサーバ制御処理部１１４が受け取る（１ｂ）。
【００７１】
その後、仮想ファイルサーバ制御処理部１１４は、仮想ファイルサーバ１の終了指示を発行する（２）。そして、装置間同期処理部１１６は、クラスタを構成する他のファイルサーバ（ファイルサーバ２）にフェイルオーバ要求を送信する（３）。
【００７２】
そして、ファイルサーバ２の仮想ファイルサーバ制御処理部１１４は、システムＬＵから構成情報及びサービス状況ファイルを読み出す（４）。そして、仮想ファイルサーバ制御処理部１１４は、ファイルサーバ２において仮想ファイルサーバ１を起動する（５）。
【００７３】
仮想ファイルサーバ１が起動されると、ファイルサーバ２の仮想ファイルサーバ管理処理部１０６は、仮想ファイルサーバ制御処理部１１４からの指示によって、ファイルシステムをマウントし、クライアントに対するサービスを開始する。すなわち、ファイルサーバ２においてファイルサーバ１と同じサービスを行うためには、ファイルサーバ１における仮想ファイルサーバ１が持っていたマウントテーブル１０３、デバイスファイル１０４及びルーティングテーブル１０２といったサービス状況ファイルを、ファイルサーバ２において起動される仮想ファイルサーバ１が引き継ぐ必要がある。このために、ファイルサーバ２は、システムＬＵに格納されているこれらのテーブルの内容を読み出す。尚、前述の様に、フェイルオーバの際にディスクサブシステム４０のシステムＬＵから構成情報及びサービス状況が読み出されるのではなく、構成情報又はサービス状況に変更がある度にファイルサーバ１からファイルサーバ２へ構成情報やサービス状況がクラスタ間通信路５０を介して送信されており、フェイルオーバの際にはクラスタ間通信路５０を介して予めファイルサーバ２がファイルサーバ１から取得していた構成情報及びサービス状況を用いる構成であってもよい。
【００７４】
これによって、ファイルサーバ２において起動される仮想ファイルサーバ１は、ファイルサーバ１において動作していた仮想ファイルサーバ１と同じ業務を行うことができる。例えば、ファイルサーバ２において起動される仮想ファイルサーバ１は、ファイルサーバ１において動作していた仮想ファイルサーバ１と同じルーティングテーブルを使用するので、従前と同じネットワークセグメントにおいて同じ通信経路を定めることができる。
【００７５】
なお、ファイルサーバ１における仮想ファイルサーバ１の終了指示の発行（２）は、ファイルサーバ２における仮想ファイルサーバ１の起動後でもよい。但し、装置間同期処理部１１６は、ファイルサーバ１によるサービスの終了後にファイルサーバ２によるサービスが開始されるように、ファイルサーバ１の動作とファイルサーバ２の動作とを同期させる必要がある。
【００７６】
図５は、本発明の実施の形態のストレージシステムにおける仮想ファイルサーバ配置設定画面の説明図である。
【００７７】
仮想ファイルサーバの設定や移動の指示は、管理用端末２から装置管理処理部１１７を介して行う。ユーザに対するインタフェースは、ＧＵＩ（Graphical User Interface）又はＣＬＩ（Command Line Interface）のいずれでもよい。
【００７８】
図５に示す仮想ファイルサーバ配置設定画面では、仮想ファイルサーバ（ＶＳ＃）がクラスタ内のどの装置において動作するかを、仮想ファイルサーバ毎に設定できる。
【００７９】
この画面中、装置＃はクラスタを構成するファイルサーバ（装置）を示し、ＶＳ＃は割り当てられる仮想ファイルサーバを示す。ユーザは、この画面において、仮想ファイルサーバを動作させるファイルサーバを選択し、仮想ファイルサーバ毎に一つずつマークを付ける。そして、更新ボタンを操作することによって変更が反映され、設定された情報が構成情報としてシステムＬＵに記憶され、仮想ファイルサーバが動的に移動する。
【００８０】
また、ＣＬＩを用いる場合には、仮想ファイルサーバと装置番号を変数とするコマンドを設け、仮想ファイルサーバとファイルサーバとの対応関係を規定する。例えば、「vnas alloc (name)｛装置＃｝」のようなコマンドを定義する。
【００８１】
以上説明したように本発明の実施の形態では、
ファイルサーバ１０の仮想ファイルサーバを、ファイルサーバ２０にフェイルオーバする際に、ファイルサーバ１０の仮想ファイルサーバ制御処理部１１４は、システムＬＵから構成情報、マウントテーブルの複製、ルーティングテーブルの複製及びデバイスファイルの複製を読み出して、ファイルサーバ２０に仮想ファイルサーバを起動するので、ファイルサーバ２０にファイルサーバ１０と同じ仮想ファイルサーバを起動することができる。また、構成情報とサービス情報を引き継ぐこと、及びファイルサーバ間で同期をとって仮想ファイルサーバを起動終了させることで、ファイルサーバの動作中であっても、仮想ファイルサーバを動作させる装置を変更することができる。
【００８２】
特に、システムＬＵからルーティングテーブルの複製を読み出して、ファイルサーバ２０に仮想ファイルサーバを起動するので、ファイルサーバ２０において起動された仮想ファイルサーバは、当該読み出したルーティングテーブルを使用して通信経路を定めることができ、従前と同じネットワークセグメントにおいて同じ通信経路を定めることができる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【図２】本発明の実施の形態のストレージシステムの機能ブロック図である。
【図３】本発明の実施の形態のストレージシステムで用いられる各種テーブルの説明図である
【図４】本発明の実施の形態のストレージシステムにおけるフェイルオーバ処理手順の説明図である。
【図５】本発明の実施の形態のストレージシステムにおける仮想ファイルサーバ配置設定画面の説明図である。
【符号の説明】
【００８４】
１      ストレージシステム
２      管理用端末
６ａ〜６ｃ  ネットワーク
１０、２０  ファイルサーバ
１０ａ〜１０ｃ  仮想ファイルサーバ
４０  ディスクサブシステム
５０    クラスタ間通信路
１０１  ネットワークインターフェース情報
１０２  ルーティングテーブル
１０３  マウントテーブル
１０４  デバイスファイル
１０５  ネットワーク処理部
１０６  仮想ファイルサーバ管理処理部
【図１】
2005267327.tif 000003
【図２】
2005267327.tif 000004
【図３】
2005267327.tif 000005
【図４】
2005267327.tif 000006
【図５】
2005267327.tif 000007