(57)【特許請求の範囲】
【請求項１】
通信回線と接続されて、該通信回線を介して通信相手から受信した各通信パケットを検出すると共に、該通信パケットからファイル操作命令を読み込む通信制御手段と、
使用されるファイルサーバの数に応じて、前記ファイル操作命令を複製すると共に、先頭となるファイルサーバに対する前記ファイル操作命令の一部を書き換える信号処理手段と、
各ファイルサーバと接続され、前記ファイル操作命令を各ファイルサーバに割り振って送出するための切替、および、前記ファイルサーバから前記通信相手に送出する通信パケットを選択するための切替を実施する切替手段と、
前記切替手段に接続された複数のファイルサーバの切替順を設定する切替順設定手段と、
前記ファイル操作命令を受信した場合には、前記信号処理手段でファイル操作命令を複製して、前記切替順に従って各ファイルサーバに送出すると共に、各ファイルサーバから受信した応答内容を一つにまとめて前記通信相手に送出するプログラムを少なくとも有するプログラム記憶手段と、
前記プログラムに基づいて、通信パケットによるファイルの送受信を実施する信号処理／切替制御手段と
を備える、接続切替装置。
【請求項２】
前記切替手段に接続されるファイルサーバが２個である場合、前記切替順は交互となる、請求項１に記載の接続切替装置。
【請求項３】
前記切替部に接続されるファイルサーバが３個以上である場合、前記切替順は循環的となる、請求項１に記載の接続切替装置。
【請求項４】
前記プログラム記憶手段は、
第１のファイルサーバにファイルを書込む時に、前記信号処理手段で受信した通信パケットを複製し、前記切替順に対応して予め設定された複製ファイルの書き込み順に従って、少なくとも１個の第２のファイルサーバに複製ファイルを書き込むプログラムと、
前記第１のファイルサーバからファイルを読み出せない場合に、第２のファイルサーバから複製ファイルを読み出すプログラムと、
を記憶する、請求項１〜３の何れかに記載の接続切替装置。
【請求項５】
各ファイル毎に設定されるファイル識別子と、前記各ファイルサーバ毎に設定されるネットワークアドレスを、予め設定された順序のテーブル形式で記憶するテーブル記憶部を備え、
前記プログラムは、前記ファイル操作命令を受信する毎に、前記切替順に実施される各ファイルサーバとの送受信により、前記ファイル操作命令に示されたファイル識別子に対応するテーブルを作成して前記テーブル記憶手段に格納するか、あるいは、前記ファイル操作命令に示されたファイル識別子から対応するテーブルを前記テーブル記憶手段から読み出し、該テーブルの順序で各ファイルサーバとの送受信を実施する、請求項１〜３の何れかに記載の接続切替装置。
【請求項６】
前記ファイル操作命令が新規ファイルを作成する命令の場合には、前記プログラムは、前記テーブル記憶手段に、各ファイルサーバから受信したファイル識別子とネットワークアドレスを用いて作成されたテーブルを格納させ、前記テーブルについてのテーブル番号を設定すると共に、該テーブル番号をファイル識別子として前記通信相手に返送する、請求項５に記載の接続切替装置。
【請求項７】
前記ファイル操作命令が書き込み命令の場合には、前記プログラムは、ファイル識別子として受信したテーブル番号に基づきテーブル記憶手段から前記テーブルを読み出し、該テーブルの順序に従って複製された書き込み命令を各ファイルサーバに送出し、各ファイルサーバから返送された応答内容を一つにまとめて前記通信相手に返送する、請求項６に記載の接続切替装置。
【請求項８】
前記ファイル操作命令が既存ファイルのファイル識別子を取得する命令の場合には、前記プログラムは、該既存ファイルのファイル識別子と前記先頭を示す符号を追加された前記既存ファイル識別子とを、各ファイル識別子とネットワークアドレスと共に各ファイルサーバから検出し、前記既存ファイル名、各ファイル識別子とネットワークアドレスを用いてテーブルを作成して前記テーブル記憶手段に格納し、前記テーブルにテーブル番号を設定すると共に、該テーブル番号をファイル識別子として返送する、請求項５に記載の接続切替装置。
【請求項９】
前記ファイル操作命令が読み出し命令の場合には、前記プログラムは、ファイル識別子として受信したテーブル番号に基づきテーブル記憶手段から前記テーブルを読み出し、該テーブルの順序に従って複製された読み出し命令を各ファイルサーバに送出し、各ファイルサーバから返送された応答内容を一つにまとめて前記通信相手に返送する、請求項８に記載の接続切替装置。
【請求項１０】
前記信号処理手段は、前記切替順に従って先頭となるファイルサーバ用に複製されるファイル操作命令については、格納されるファイル名に先頭を示す符号を追加して複製し、先頭でないファイルサーバ用に複製されるファイル操作命令については、格納されるファイル名をそのまま用いて複製する、請求項５〜９の何れかに記載の接続切替装置。
【請求項１１】
前記信号処理手段では、前記先頭となるファイルサーバを判定する際に、前記切替順から乱数を用いて選択される、請求項１０に記載の接続切替装置。
【請求項１２】
前記テーブル記憶手段には、前記各ファイルサーバにファイルを書込む時に、最終となる通信パケットを書込んだファイルサーバが記憶され、前記信号処理部では、次のファイルをファイルサーバに書込む時には、前回のファイルの書込で最終となる通信パケットを書込んだファイルサーバの次のファイルサーバを、前記先頭となるファイルサーバとする、請求項１０に記載の接続切替装置。
【請求項１３】
前記プログラム記憶手段は、
第１のファイルサーバにファイルを書込む時に、前記信号処理手段で受信した通信パケットを複製し、前記切替順に対応して予め設定された複製ファイルの書き込み順に従って、少なくとも１個の第２のファイルサーバに複製ファイルを書き込むと共に、第１ファイルサーバのファイル識別子とネットワークアドレスに対応させて第２ファイルサーバのファイル識別子とネットワークアドレスを格納するテーブルを作成するプログラムと、
前記第１のファイルサーバからファイルを読み出せない場合に、前記テーブルを参照して第２のファイルサーバから複製ファイルを読み出すプログラムと
を記憶する、請求項５または６に記載の接続切替装置。
【請求項１４】
請求項１０〜１３の何れかの接続切替装置を３個以上使用して、前記通信回線側の装置使用数が少なく、ファイルサーバ側が装置使用数が多くなるように階層的に構成し、
上位階層の接続切替装置では、下位階層の接続切替装置をファイルサーバと見なして前記テーブルを作成し、
下位階層の接続切替装置は、上位階層の接続切替装置を、前記通信回線とみなして前記テーブルを作成する、
接続切替装置を用いたファイルシステム。
【請求項１５】
前記下位階層の接続切替装置では、上位階層の接続切替装置でファイル名に先頭を示す符号が追加されたファイル操作命令についても、該ファイル名に対してさらに先頭を示す符号を追加する、請求項１４に記載のファイルシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のディスク記憶部を有するファイルサーバを制御する装置に関し、特に、複数のファイルサーバにファイルを分散させて書き込み、また、複数のファイルサーバに分散されて書き込まれたファイルを読み出す装置に関する。
【０００２】
【従来の技術】
ファイルサーバは、通信回線に接続されたクライアントから受信したファイルをディスク記憶部に書き込み、クライアントからの要求によりディスク記憶部に書き込んだファイルを読み出す装置である。
【０００３】
図１６は、従来のファイルサーバの構成を示す図である。
ファイルサーバ３は、パーソナルコンピュータ等の情報処理装置（端末装置）であるクライアント１（通信相手）から通信回線２を介して受信したファイルを格納し、通信相手であるクライアント１から読み出し要求を受けた場合、ファイルを読み出してクライアント１に送出する。
【０００４】
一般的に、ファイルは通信回線２を介してパケット単位で送受信させる。ファイルサーバ３は、受信したパケットを判別して記憶したり、記憶されたファイルをパケットにして送出する通信制御部１１と、記憶されるファイルを管理するフィル管理部１２と、ファイルを格納するディスク記憶部１３を有している。
【０００５】
クライアント１の使用者は、通信回線２を介して図１６のファイルサーバ３と通信することにより、任意のファイルをファイルサーバに書き込み、あるいは、読み出すことができる。
【０００６】
一般的に、ディスク装置を利用するファイルサーバにおいて、ファイルのデータをディスクドライブに書き込む場合や読み出す場合の速度に比較すると、ＣＰＵ等の内部や制御系統では、非常に高速に処理が実施されている。また、ファイルシステムや通信プロトコルによる制御装置の負荷は軽微であり、個々のディスクドライブの制御のための制御装置の負荷も軽微である。つまり、ファイルシステムで、データの読み書き速度のボトルネックは、ディスクドライブのヘッドの読み書き速度である。
【０００７】
ファイルサーバは、上記したようにクライアントにとって非常に便利なものであるが、接続されるクライアントの数が増加すると、取り扱うファイル数も増加して、内蔵されるディスク記憶部１３に格納できる記憶容量では不足する。一般的な記憶容量を増加させる方法としては、外部に追加のディスク記憶装置を追加すること、内蔵されるディスクドライブを記憶容量が大容量であるものに交換することである。
【０００８】
ところが、１台あたりのディスクドライブの記憶容量には限界があり、また、ファイルサーバの通常のオペレーションシステムでは、管理できるディスクドライブの数に限界があるので、汎用のファイルサーバで容量を増加させることには限界があった。そのため、非常に大容量のファイルサーバが必要である場合には、個々のディスクドライブを高価で特別に大容量なもの使用するか、ファイルサーバのオペレーションシステム自体を多くのディスクドライブが管理できる高価で特別なものにする必要があった。
【０００９】
図１７は、従来のＲＡＩＤ(Redundant Array of Inexpensive Disks)装置を有するファイルサーバの構成を示す図である。ＲＡＩＤ装置とは、複数台の比較的安価なディスクドライブ（ディスク記憶部）をアレイ状に組み合わせて仮想的に１台の論理的ディスクドライブを構成し、冗長にファイル等のデータを書き込むようにした記憶装置である。ＲＡＩＤ装置は、複数台のディスクドライブに、冗長にデータを書き込むことで、上記した汎用のファイル装置においてボトルネックとなるディスクドライブのヘッドの読み書き速度を改善し、さらに、１台のディスクドライブに不良が発生しても他のディスクドライブによりその分を回復できる高信頼、高可用なディスク記憶装置である。
【００１０】
冗長にデータを書き込むということは、例えば、所定のビット数に合わせるために意味のない余分なデータを追加する場合や、ディスクドライブ内の前回のデータの上に完全に上書きするのではなく、異なる場所に書き込む場合も考えられるが、ＲＡＩＤ装置における冗長にデータを書き込むということは、一般的に、同じデータを異なるディスクドライブに二重に書き込むこと、あるいは、基本となるデータと今回のデータの差分をパリティとして余分に追加することである。これにより、ＲＡＩＤ装置は、１台のディスクドライブに不良が発生しても他のディスクドライブによりその分を回復することを可能にしている。
【００１１】
図１６と図１７の違いは、ファイル管理部１２により管理されるＲＡＩＤ装置を有しているか否かである。ＲＡＩＤ装置４は、内部にファイルを記憶するディスク記憶部２２および２３とを備え、その複数のディスク記憶部２２および２３を管理するディスク管理部２１を有している。ファイル管理部１２とＲＡＩＤ装置４とは高速で大容量のデータを通信できる光ファイバ回線等で接続され、ディスク管理部２１には、専用のプログラムが備えられる。なお、図１７では説明をわかりやすくするためにディスク記憶部を２個としているが、実際のＲＡＩＤ装置では３個以上のディスク記憶部を有している場合の方が多い。
【００１２】
ディスク管理部２１は、複数のディスク記憶部２２および２３を１個のディスク記憶部として管理することができる。このため、ＲＡＩＤ装置を接続するファイルサーバ３のディスク記憶部１３は、大容量である必要はなく、ファイルサーバ３は汎用のファイルサーバでも良いため比較的安価に高速で大容量のファイルシステムを構築することができる。
【００１３】
また、ＲＡＩＤ装置４では、記憶容量が大容量であることから、例えば、ミラーリング等のようにデータを複数のディスクドライブに冗長（２重）に記憶させることで、１台のディスクドライブに障害が発生した場合でも記憶を損失することなく克服して、ファイルサーバの処理を継続させることができる。
【００１４】
【発明が解決しようとする課題】
しかしながら、汎用のファイルサーバにＲＡＩＤ装置を接続した場合には、上記したように、複数台のディスクドライブを用いていることから高速に大量のデータ処理は可能になるが、例えば、ファイル管理部１２とＲＡＩＤ装置４の間等ではデータの流れが集中するため、特別な回線にする必要がある。また、多数の汎用のディスクドライブを接続するためにディスク管理部２１としても、専用のプログラムと、高速のプロセッサと、大容量のメモリ素子と、各ディスクドライブとの間の通信を行うファイバチャンネル等の特殊なハードウエアが備えられた特別な回路基板が必要である。従って、ＲＡＩＤ装置中の個々のディスクドライブとしては、比較的安価のものを使用できるにもかかわらず、ＲＡＩＤ装置の価格は一般的に高価であるという問題がある。
【００１５】
また、ファイルサーバ３とＲＡＩＤ装置４をファイルシステムとして考えた場合も、ファイルサーバ３に汎用の比較的安価なものを使用できるにもかかわらず、ＲＡＩＤ装置４が高価になってしまうため、ファイルシステム全体としても高価になるという問題がある。
【００１６】
また、上記したように、ＲＡＩＤ装置には特別なハードウエアが用いられるため、機能を拡張することが難しいという問題がある。
【００１７】
上記した問題に対して、ファイルサーバ間でディスクドライブを共有することで高速大容量のファイルシステムを構成する技術や、ＲＡＩＤ装置を使用せずにファイルサーバに多数のディスクドライブを接続する技術も検討されている。しかし、その場合には、ソフトウエアの処理が複雑になり、ＣＰＵの能力に余裕が無くなり、プログラム開発も非常に時間がかかり高価であり、汎用性や拡張性が充分にならない。
【００１８】
本発明は、上述した如き従来の問題を解決するためになされたものであって、機能の拡張性があり、データを冗長に書き込むことができ、安価で高速で大容量のファイルシステムを提供することを目的とする。
【００１９】
【課題を解決するための手段】
上述の目的を達成するため、請求項１に記載した本発明の接続切替装置は、通信回線と接続されて、該通信回線を介して通信相手から受信した各通信パケットを検出すると共に、該通信パケットからファイル操作命令を読み込む通信制御手段と、使用されるファイルサーバの数に応じて、ファイル操作命令を複製すると共に、必要に応じてファイル操作命令の一部を書き換える信号処理手段と、各ファイルサーバと接続され、ファイル操作命令を各ファイルサーバに割り振って送出するための切替、および、各ファイルサーバから通信相手に送出する通信パケットを選択するための切替を実施する切替手段と、該切替手段に接続された複数のファイルサーバの切替順を設定する切替順設定手段と、ファイル操作命令を受信した場合には、信号処理手段でファイル操作命令を複製して、切替順に従って各ファイルサーバに送出すると共に、各ファイルサーバから受信した応答内容を一つにまとめて通信相手に送出するプログラムを少なくとも有するプログラム記憶手段と、各プログラムに基づいて、通信パケットによるファイルの送受信を実施する信号処理／切替制御手段とを備えることを特徴とする。
【００２０】
また、請求項２の発明は、請求項１に記載の接続切替装置において、切替手段に接続されるファイルサーバが２個である場合、切替順は交互となることを特徴とする。
【００２１】
また、請求項３の発明は、請求項１に記載の接続切替装置において、切替手段に接続されるファイルサーバが３個以上である場合、切替順は循環的となることを特徴とする。
【００２２】
また、請求項４の発明は、請求項１〜３の何れかに記載の接続切替装置において、プログラム記憶手段は、第１のファイルサーバにファイルを書込む時に、信号処理手段で受信した通信パケットを複製し、切替順に対応して予め設定された複製ファイルの書き込み順に従って、少なくとも１個の第２のファイルサーバに複製ファイルを書き込むプログラムと、第１のファイルサーバからファイルを読み出せない場合に、第２のファイルサーバから複製ファイルを読み出すプログラムとを記憶することを特徴とする。
【００２３】
また、請求項５の発明は、請求項１〜３の何れかに記載の接続切替装置において、各ファイル毎に設定されるファイル識別子と、各ファイルサーバ毎に設定されるネットワークアドレスを、予め設定された順序のテーブル形式で記憶するテーブル記憶手段を備え、プログラムは、ファイル操作命令を受信する毎に、切替順に実施される各ファイルサーバとの送受信により、ファイル操作命令に示されたファイル識別子に対応するテーブルを作成してテーブル記憶手段に格納するか、あるいは、ファイル操作命令に示されたファイル識別子から対応するテーブルをテーブル記憶手段から読み出し、該テーブルの順序で各ファイルサーバとの送受信を実施することを特徴とする。
【００２４】
また、請求項６の発明は、請求項５に記載の接続切替装置において、ファイル操作命令が新規ファイルを作成する命令の場合には、プログラムは、テーブル記憶手段に、各ファイルサーバから受信したファイル識別子とネットワークアドレスを用いて作成されたテーブルを格納させ、テーブルについてのテーブル番号を設定すると共に、該テーブル番号をファイル識別子として通信相手に返送することを特徴とする。
【００２５】
また、請求項７の発明は、請求項６に記載の接続切替装置において、ファイル操作命令が書き込み命令の場合には、プログラムは、ファイル識別子として受信したテーブル番号に基づきテーブル記憶手段からテーブルを読み出し、該テーブルの順序に従って複製された書き込み命令を各ファイルサーバに送出し、各ファイルサーバから返送された応答内容を一つにまとめて通信相手に返送することを特徴とする。
【００２６】
また、請求項８の発明は、請求項５に記載の接続切替装置において、ファイル操作命令が既存ファイルのファイル識別子を取得する命令の場合には、プログラムは、該既存ファイルのファイル識別子と先頭を示す符号を追加された既存ファイル識別子とを、各ファイル識別子とネットワークアドレスと共に各ファイルサーバから検出し、既存ファイル名、各ファイル識別子とネットワークアドレスを用いてテーブルを作成してテーブル記憶手段に格納し、テーブルにテーブル番号を設定すると共に、該テーブル番号をファイル識別子として返送することを特徴とする。
【００２７】
また、請求項９の発明は、請求項８に記載の接続切替装置において、ファイル操作命令が読み出し命令の場合には、プログラムは、ファイル識別子として受信したテーブル番号に基づきテーブル記憶手段からテーブルを読み出し、該テーブルの順序に従って複製された読み出し命令を各ファイルサーバに送出し、各ファイルサーバから返送された応答内容を一つにまとめて前記通信相手に返送することを特徴とする。
【００２８】
また、請求項１０の発明は、請求項５〜９の何れかに記載の接続切替装置において、信号処理手段は、切替順に従って先頭となるファイルサーバ用に複製されるファイル操作命令については、格納されるファイル名に先頭を示す符号を追加して複製し、先頭でないファイルサーバ用に複製されるファイル操作命令については、格納されるファイル名をそのまま用いて複製することを特徴とする。
【００２９】
また、請求項１１の発明は、請求項１０に記載の接続切替装置において、信号処理手段では、先頭となるファイルサーバを判定する際に、切替順から乱数を用いて選択されることを特徴とする。
【００３０】
また、請求項１２の発明は、請求項１０に記載の接続切替装置において、テーブル記憶手段には、各ファイルサーバにファイルを書込む時に、最終となる通信パケットを書込んだファイルサーバが記憶され、信号処理手段では、次のファイルをファイルサーバに書込む時には、前回のファイルの書込で最終となる通信パケットを書込んだファイルサーバの次のファイルサーバを、先頭となるファイルサーバとすることを特徴とする。
【００３１】
また、請求項１３の発明は、請求項５または６に記載の接続切替装置において、プログラム記憶部は、第１のファイルサーバにファイルを書込む時に、信号処理部で受信した通信パケットを複製し、切替順に対応して予め設定された複製ファイルの書き込み順に従って、少なくとも１個の第２のファイルサーバに複製ファイルを書き込むと共に、第１ファイルサーバのファイル識別子とネットワークアドレスに対応させて第２ファイルサーバのファイル識別子とネットワークアドレスを格納するテーブルを作成するプログラムと、第１のファイルサーバからファイルを読み出せない場合に、テーブルを参照して第２のファイルサーバから複製ファイルを読み出すプログラムとを記憶することを特徴とする。
【００３２】
また、請求項１４に記載した本発明の接続切替装置を用いたファイルシステムは、請求項１０〜１３の何れかの接続切替装置を３個以上使用して、通信回線側の装置使用数が少なく、ファイルサーバ側が装置使用数が多くなるように階層的に構成し、上位階層の接続切替装置では、下位階層の接続切替装置をファイルサーバと見なしてテーブルを作成し、下位階層の接続切替装置は、上位階層の接続切替装置を通信回線あるいはクライアントとみなしてテーブルを作成することを特徴とする。
【００３３】
また、請求項１５の発明は、請求項１４に記載のファイルシステムにおいて、下位階層の接続切替装置では、上位階層の接続切替装置でファイル名に先頭を示す符号が追加されたファイル操作命令についても、該ファイル名に対してさらに先頭を示す符号を追加することを特徴とする。
【００３４】
【発明の実施の形態】
以下、本発明を図示した実施形態に基づいて説明する。
【００３５】
（第１実施形態）
図１は、本発明の第１の実施形態のファイルシステムを示す図である。
尚、図１において、図１６および図１７に示した従来のファイルシステムと同じ機能の部分については同じ符号を付し、重複する説明を省略する。
【００３６】
図１に示した実施形態のファイルシステムが、図１４および図１５に示した従来例と異なる点は、複数のファイルサーバの通信回線側に接続切り替え装置を設けている点である。
【００３７】
図１に示した本実施形態の第１ファイルサーバ３ａおよび第２ファイルサーバ３ｂは、例えば、市販のパーソナルコンピュータ等の汎用のファイルサーバで良く、専用の基板やファイバチャンネル等の特殊なハードウエアは必要ない。従って、第１ファイルサーバ３ａおよび第２ファイルサーバ３ｂ内の通信制御部１１ａ、１１ｂ、ファイル管理部１２ａ、１２ｂ、および、ディスク記憶部１３ａ、１３ｂはすべて汎用のものである。
【００３８】
接続切替装置５は、通信制御部３１と、信号処理／切替制御部３２と、信号処理部３３と、切替部３４と、ファイルサーバ切替順記憶部３５と、プログラム記憶部３７と、テーブル記憶部３８とを有している。
【００３９】
通信制御部３１は、通信回線と接続されて、例えば、インターネットプロトコルによる通信パケットのような、通信回線から受信する各通信パケットを検出すると共に、そのヘッダ情報を検出することで、通信パケットから任意のファイルにおける先頭となる通信パケットを検出したり、通信パケットの送受信等の一般的な通信制御を実施する。
【００４０】
信号処理／切替制御部３２は、後述するプログラム記憶部３７に格納された各プログラムに基づいて、通信パケットによるファイルの送受信を実施する検出されたヘッダ情報を解析して接続切替装置５内の各種信号処理を実施したり、後述する切替部３４を切り替えたり、その他の各部を制御する。
【００４１】
信号処理部３３は、使用されるファイルサーバ（第１ファイルサーバ３ａ、第２ファイルサーバ３ｂ）の数に応じて、通信回線２から受信したファイル操作命令を複製すると共に、必要に応じてファイル操作命令の一部を書き換える。
【００４２】
信号処理部３３がファイル操作命令の一部を書き換える場合としては、例えば、ファイルサーバ切替順記憶部３５に格納された切替順に従って、先頭となるファイルサーバ（例えば、第１ファイルサーバ３ａ）用に複製されるファイル操作命令については、格納されるファイル名に先頭を示す符号（例えば、「．＄」）を末尾に追加して複製し、先頭でないファイルサーバ（例えば、第２ファイルサーバ３ｂ）用に複製されるファイル操作命令については、格納されるファイル名をそのまま用いて複製する。以下、この複製および書き換えをまとめて調製と呼ぶことにする。
【００４３】
また、データの長さが短いファイルを多数ファイルサーバに格納する場合には、先頭となるサーバを固定してしまうと、その先頭となるサーバばかりの書き込み量が多くなる可能性がある。その場合には、例えば、信号処理部３３においてファイルサーバ切替順記憶部３５に格納された切替順から先頭となるファイルサーバを判定する際に、乱数を用いて選択されるようにすればよい。あるいは、例えば、各ファイルサーバにファイルを書込む時に、テーブル記憶部３８に最終となる通信パケットを書込んだファイルサーバを記憶しておき、次のファイルをファイルサーバに書込む時の信号処理部３３における先頭となるファイルサーバを判定する際に、前回のファイルの書込で最終となる通信パケットを書込んだファイルサーバの次のファイルサーバを、先頭となるファイルサーバとすれば良い。
【００４４】
切替部３４は、ディスク記憶部１３ａ、１３ｂを有する複数のファイルサーバ（第１ファイルサーバ３ａ、第２ファイルサーバ３ｂ）と接続され、例えば、通信回線２から受信した各通信パケットを、第１ファイルサーバ３ａにするか、第２ファイルサーバ３ｂにするか等のように、送出先となるファイルサーバを振り分けるための接続の切替、および、複数のファイルサーバ３ａ、３ｂ等から入力して通信回線２に送出する通信パケットを選択するための接続の切替を実施する。
【００４５】
ファイルサーバ切替順記憶部３５は、切替部３４に接続された複数のファイルサーバである第１ファイルサーバ３ａと第２ファイルサーバ３ｂの切替順序を記憶する。例えば、切替部３４に接続されるファイルサーバが２個である場合には、ファイルサーバ切替順記憶部３５に記憶される切替順は交互となるが、切替部３４に接続されるファイルサーバが３個以上である場合、ファイルサーバ切替順記憶部３５に記憶される切替順は循環的になる。
【００４６】
プログラム記憶部３７は、ファイル操作命令を受信した場合には、信号処理部３３でファイル操作命令を調製して、切替順に従って各ファイルサーバ３ａ、３ｂに送出すると共に、各ファイルサーバ３ａ、３ｂから受信した応答内容を一つにまとめて通信回線２からクライアント１に送出するプログラムを少なくとも有している。
【００４７】
ファイル操作命令が新規ファイルを作成する命令である場合のプログラムとしては、例えば、以下のようなプログラムとすれば良い。まず、テーブル記憶部３８に、各ファイルサーバ３ａ、３ｂからファイル識別子として受信したファイルハンドルとネットワークアドレスを用いて作成されたテーブルを格納させ、次に、そのテーブルについてのテーブル番号を設定する。さらに、そのテーブル番号をファイル識別子として通信回線２からクライアント１に返送する。
【００４８】
ファイル操作命令が書き込み命令である場合のプログラムとしては、例えば、以下のようなプログラムとすれば良い。まず、ファイル識別子として受信したテーブル番号に基づきテーブル記憶部３８から対応するテーブルを読み出し、その内容に従って調製された書き込み命令を各ファイルサーバ３ａ、３ｂに送出する。さらに、各ファイルサーバ３ａ、３ｂから返送された応答内容を一つにまとめて通信回線２からクライアント１に返送する。
【００４９】
ファイル操作命令が既存ファイルのファイル識別子を取得する命令である場合のプログラムとしては、例えば、以下のようなプログラムとすれば良い。まず、その既存ファイルのファイル名と先頭を示す符号（．＄）を追加された既存ファイル名とを使って、各ファイル識別子（ファイルハンドル）とネットワークアドレスを各ファイルサーバから獲得する。次に、その既存ファイル名、各ファイル識別子およびネットワークアドレスを用いてテーブルを作成してテーブル記憶部３８に格納する。さらに、そのテーブルにテーブル番号を設定して、そのテーブル番号をファイル識別子として通信回線２からクライアント１に返送する。
【００５０】
ファイル操作命令が読み出し命令である場合のプログラムとしては、例えば、以下のようなプログラムとすれば良い。まず、ファイル識別子として受信したテーブル番号に基づきテーブル記憶部３８から対応するテーブルを読み出し、そのテーブルの内容に従って調製された読み出し命令を各ファイルサーバ３ａ、３ｂに送出する。さらに、各ファイルサーバ３ａ、３ｂから返送された応答内容を一つにまとめて通信回線２からクライアント１に返送する。
【００５１】
また、信頼性を向上させるために、データを冗長に各ファイルサーバに書き込む場合には、例えば、第１ファイルサーバ３ａにファイルを書込む時に、信号処理部３３で受信した通信パケットを複製し、切替順に対応して予め設定された複製ファイルの書き込み順に従って、第２ファイルサーバ３ｂに複製ファイルを書き込むプログラムをプログラム記憶部３７に備えるようにしても良い。その場合には、同時に第１ファイルサーバ３ａから任意のファイルを読み出せない場合に、第２ファイルサーバ３ｂから複製ファイルを読み出すプログラムを備えるようにする。
【００５２】
テーブル記憶部３８は、各ファイル毎にファイルサーバによってに設定されるファイル識別子（ファイルハンドル）と、各ファイルサーバ毎に設定されるネットワークアドレスを、予め設定された順序のテーブル形式で記憶する。また、例えば、テーブル記憶部３８に各ファイルサーバ３ａ、３ｂにファイルを書込む時に、最終となる通信パケットを書込んだファイルサーバを記憶しておき、次のファイルをファイルサーバに書込む時に、前回のファイルの書込で最終となる通信パケットを書込んだファイルサーバの次のファイルサーバを、信号処理部３３で先頭となるファイルサーバとしても良い。
【００５３】
図２は、ファイルサーバ切替順記憶部３５に格納されるファイルサーバの切替順序の一例を示す図である。本実施形態では、図２に示されたように、第１ファイルサーバ３ａから第２ファイルサーバ３ｂに切替部３４が切り替えられ、再び、第１ファイルサーバ３ａに戻るという処理順がファイルサーバ切替順記憶部３５に格納される。
【００５４】
図３は、テーブル記憶部３８に格納されるテーブルの一例を示す図である。本実施形態では、図３に示されたように、ファイル名ＸＸＸ１の書き込み用あるいは読み出し用にテーブルＴ１が生成される。テーブルＴ１の例では、パス「ＡＢＣ」が設定されており、したがってファイル「ＸＸＸ１」は「ＡＢＣ／ＸＸＸ１」として指定される。便宜上、この「ＡＢＣ／ＸＸＸ１」という表記もファイル名と呼ぶことにする。ただし、先頭のファイルサーバである第１ファイルサーバ３ａに対するファイル名は、先頭であることを示すために末尾に「．＄」が付加されて「ＡＢＣ／ＸＸＸ１．＄」となる。
【００５５】
本実施形態のファイルシステムの動作は、以下のように実施される。クライアント１からのファイル操作命令が通信回線２を介して、通信制御部３１で受信されると、信号処理／切替制御部３２では、ファイル操作命令（通信パケット）のヘッダ情報から、そのファイル操作命令がどの種類であるかが確認される。すなわち、信号処理／切替制御部３２では、受信したファイル操作命令が、新規ファイルを作成する命令であるか、書き込み命令であるか、既存ファイルのファイル識別子を取得する命令であるか、読み出し命令であるかを確認する。
【００５６】
最初に、接続切替装置５がクライアント１から受信したファイル操作命令が、新規ファイルを作成する命令、および、その後に受信する書き込み命令である場合に、第１ファイルサーバ３ａと第２ファイルサーバ３ｂに振り分けてデータを書き込む場合について説明する。
【００５７】
その際の接続切替装置５の動作としては、例えば、受信したファイル操作命令が新規ファイルを作成する命令である場合、まず、ファイルサーバ切替順記憶部３５に格納された切替順に応じて、調製された新規ファイル作成命令を各ファイルサーバ３ａ、３ｂに送出する。新規ファイル作成命令は、例えば、その命令（通信パケット）中に示されたファイル名「ＡＢＣ／ＸＸＸ１」に対応するファイルを作成してそのファイル識別子（ファイルハンドル）とファイルサーバのネットワークアドレスを返送するように各ファイルサーバ３ａ、３ｂに命令するものである。その際に、接続切替装置５は、先頭となるファイルサーバ（例えば、第１ファイルサーバ３ａ）には、ファイル名に先頭を示す符号「．＄」を付加してファイルを作成するように命令する。
【００５８】
第１ファイルサーバ３ａでは、受信したファイル名「ＡＢＣ／ＸＸＸ１．＄」によりファイルを作成して、それに固有のファイルハンドルを割り当て、自身のネットワークアドレスとそのファイルハンドルを接続切替装置５に通知し、他のファイルサーバでは、受信したファイル名「ＡＢＣ／ＸＸＸ１」によりファイルを作成して、同じくそのネットワークアドレスとファイルハンドルを接続切替装置５に通知する。ここでは、便宜上、ファイルハンドルとファイル名を同じにしているが、ファイル識別子として使用されるファイルハンドルは、各ファイルサーバでファイルを特定できるものであれば、任意の番号でよい。
【００５９】
接続切替装置５は、各ファイルサーバ３ａ、３ｂからアドレスとファイル識別子（ファイルハンドル）を受信したら、そのアドレスとファイル識別子に基づいて、図３に示したようなテーブルを作成してテーブル記憶部３８に格納する。そして、そのテーブルにテーブル番号Ｔｉ（図３の例ではＴ１）を割り当て、これをファイル識別子としてクライアント１に返送する。
【００６０】
クライアント１では、ファイル識別子（テーブル番号）が帰ってきたので、次に、受信したファイル識別子に加えて、開始オフセットアドレスや長さ等のアクセスに必要な情報と共に、接続切替装置５に対して書き込みを命令する。
【００６１】
以下は、新規ファイル作成命令の後に書き込み命令を受信した場合の動作である。クライアント１からの書き込み命令を受信した接続切替装置５では、クライアント１から受信したファイル操作命令が書き込み命令であることを確認し、その最初の書き込み命令が確認された場合、その命令中のファイル識別子すなわちテーブル番号Ｔｉに基づき、テーブル記憶部３８から、対応するテーブル（たとえばＴ１）を読み出す。
【００６２】
次に、接続切替装置５では、信号処理／切替制御部３２が、そのテーブルＴ１の内容に従って、受信した書き込み命令を調製して、各ファイルサーバ３ａ、３ｂに振り分けて送出する。その際、予め設定されている切替順（ここでは、３ａ−３ｂの順とする）に従い、最初のデータストライプはファイルサーバ３ａに転送され、２番目のデータストライプはファイルサーバ３ｂに転送され、３番目のデータストライプは循環してファイルサーバ３ａに転送され、４番目のデータストライプはファイルサーバ３ｂに転送され、といったように、所定サイズ（たとえば４ｋバイト）の各データストライプがファイルサーバ３ａおよび３ｂの間で循環的に転送され、それぞれのファイルサーバに書き込まれる。
【００６３】
次に、接続切替装置５がクライアント１から受信したファイル操作命令が、既存ファイルのファイル識別子を取得する命令、および、その後に受信する読み出し命令である場合に、第１ファイルサーバ３ａと第２ファイルサーバ３ｂに命令を振り分けてデータを読み出す場合について説明する。
【００６４】
まず、受信したファイル操作命令が既存ファイルのファイル識別子を取得する命令である場合、接続切替装置５は、まず、ファイルサーバ切替順記憶部３５に格納された切替順に応じて、調製されたファイル識別子取得命令を各ファイルサーバ３ａ、３ｂに送出する。
【００６５】
ファイル識別子取得命令は、例えば、各ファイルサーバ３ａ、３ｂに対して、その命令中に示されたファイル名「ＡＢＣ／ＸＸＸ１」に対応するファイル識別子とファイルサーバのネットワークアドレスを返送するように命令するものである。その際に、接続切替装置５は、通常のファイル名「ＡＢＣ／ＸＸＸ１」と、先頭を示す符号「．＄」を付加したファイル名「ＡＢＣ／ＸＸＸ１．＄」とを各ファイルサーバに送出する。
【００６６】
ファイル名「ＡＢＣ／ＸＸＸ１」および「ＡＢＣ／ＸＸＸ１．＄」を含むファイル識別子取得命令を受信した各ファイルサーバのうち、当該ファイルについて先頭であるファイルサーバ（たとえば第１ファイルサーバ３ａ）は、ファイル名「ＡＢＣ／ＸＸＸ１．＄」によって示されるファイルに割り当てたファイル識別子と自身のネットワークアドレスを接続切替装置５に通知し、他のファイルサーバは、ファイル名「ＡＢＣ／ＸＸＸ１」によって示されるファイルに割り当てたファイル識別子と自身のネットワークアドレスを接続切替装置５に通知する。
【００６７】
接続切替装置５は、各ファイルサーバ３ａ、３ｂからアドレスとファイル識別子を受信したら、そのアドレスとファイル識別子に基づいて、図３に示したようなテーブルを作成してテーブル記憶部３８に格納する。そして、そのテーブルにテーブル番号Ｔｉを割り当て、それをファイル識別子としてクライアント１に返送する。
【００６８】
以下は、既存ファイルに対するファイル識別子取得命令の後に読み出し命令を受信した場合の動作である。接続切替装置５では、クライアント１から受信したファイル操作命令が読み出し命令であることを確認し、その命令中のテーブル番号に基づき、テーブル記憶部３８から、対応するテーブル（たとえばテーブルＴ１）を読み出す。
【００６９】
そして、接続切替装置５は、信号処理／切替制御部３２が、そのテーブルＴ１の内容に従って、各ファイルサーバ３ａ、３ｂに、調製した読み出し命令を振り分けて送出する。接続切替装置５は、各ファイルサーバ３ａ、３ｂから返送された応答内容を、切替順に従って一つに並べ直して（まとめて）通信回線２からクライアント１に返送する。
【００７０】
図４は、各ファイルサーバからのデータの読み出し順序の一例を示す図である。読み出し順序としては、本実施形態では、分割データ単位が４ｋバイトであり、図４に示されたように第１ファイルサーバ３ａから第２ファイルサーバ３ｂに切り替えられ、再度、第１ファイルサーバ３ａに戻る順序である。
【００７１】
まず、第１ファイルサーバ３ａからファイル「ＸＸＸ１」の最初の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１．＄：１〜４ｋ」が読み出された後に、第２ファイルサーバ３ｂから同じファイル「ＸＸＸ１」の次の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１：１〜４ｋ」が読み出され、再び、第１ファイルサーバ３ａから同じファイル「ＸＸＸ１」のその次の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１．＄：（４ｋ＋１）〜８ｋ」が読み出される（以下、同様）という読み出し順である。前述のように、第１ファイルサーバ３ａおよび第２ファイルサーバ３ｂでは、同じファイル「ＸＸＸ１」に対しそれぞれ固有のファイル識別子（今の場合は「ＡＢＣ／ＸＸＸ１．＄」および「ＡＢＣ／ＸＸＸ１」）が与えられているので、それぞれのファイル識別子に着目した読み出し順は上記のようになっているが、ファイル「ＸＸＸ１」だけに着目した場合には、最初のデータ「１〜４ｋ」は第１ファイルサーバ３ａから読み出され、２番目のデータ「（４ｋ＋１）〜８ｋ」は第２ファイルサーバ３ｂから読み出され、３番目のデータ「（８ｋ−１）〜１２ｋ」は第１ファイルサーバ３ａから読み出され、４番目のデータ「（１２ｋ−１）〜１６ｋ」は第２ファイルサーバ３ｂから読み出され（以下、同様）、というようになる。
【００７２】
同様に、書き込みの場合は、まず第１ファイルサーバ３ａには、ファイル「ＸＸＸ１」の最初の４ｋバイトデータ「１〜４ｋ」が、ファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの最初の４ｋバイトデータ「１〜４ｋ」として格納される。ファイル「ＸＸＸ１」の２番目の４ｋバイトデータ「（４ｋ＋１）−８ｋ」は、第２ファイルサーバ３ｂに割り振られて、ファイル識別子「ＡＢＣ／ＸＸＸ１」を持ったファイルの最初の４ｋバイトデータ「１〜４ｋ」として格納される。ファイル「ＸＸＸ１」の３番目の４ｋバイトデータ「（８ｋ＋１）〜１２ｋ」は、また、第１ファイルサーバ３ａに割り振られて、ファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの２番目の４ｋバイトデータ「（４ｋ＋１）〜８ｋ」として格納される。以下、同様である。
【００７３】
このようにして、第１ファイルサーバ３ａには、ファイル「ＸＸＸ１」の第１〜第４ｋバイト、第（８ｋ＋１）〜第１２ｋバイト、第（１６ｋ＋１）〜第２０ｋバイトのデータが、ファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイトのデータとして格納される。
【００７４】
同様にして、第２ファイルサーバ３ｂには、ファイル「ＸＸＸ１」の第（４ｋ＋１）〜第８ｋバイト、第（１２ｋ＋１）〜第１６ｋバイト、第（２０ｋ＋１）〜第２４ｋバイトのデータが、ファイル識別子「ＡＢＣ／ＸＸＸ１」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイトのデータとして格納される。
【００７５】
また、各ファイルサーバの最後に受信する分割データ部分が４ｋバイトに満たない場合には、満たない部分に０のデータが仮に割り当てられる。
【００７６】
なお、ファイルサーバ切替順記憶部３５に記憶された切替順としては、図１に示した実施形態は、切替部３４に接続されるファイルサーバが２個である場合であるので、書き込み命令の振り分けは交互となる。切替部３４に接続されるファイルサーバが３個以上である場合には、ファイルサーバ切替順記憶部３５に記憶された切替順は循環的となる。
【００７７】
ファイル長が短いファイルを多数ファイルサーバに格納する場合に、一部のファイルサーバのみの使用頻度が上昇しないように、先頭となるファイルサーバは、例えば、乱数を用いて選択することが好ましい。ファイルサーバが３個以上である場合に、一部のファイルサーバのみの使用頻度が上昇しないようにするための他の方法として、例えば、信号処理／切替制御部３２では、前回のファイルの書き込みで最終となる書き込み命令で書き込んだファイルサーバを記憶しておき、次のファイルをファイルサーバに書き込む時には、前回のファイルの書き込みで最終となる書き込み命令で書き込んだファイルサーバの次のファイルサーバに、今回の最初の書き込み命令で書き込むように構成しても良い。
【００７８】
このようにして、本実施形態では、複数のファイルサーバの通信回線側（クライアント側）に接続切替装置を配置することにより、特殊なハードウエアが接続切替装置のみで、高速で大容量かつ安価なファイルシステムを構成することができる。
【００７９】
（第２実施形態）
図５は、本発明の第２の実施形態の接続切替装置を用いたファイルシステムの構成を示すブロック図である。図５のファイルシステムが、図１のファイルシステムとブロック構成上で異なる主な点は、接続されるファイルサーバが４個に増加している点と、接続切替装置が階層状に構成される点である。
【００８０】
通信回線２には、第１接続切替装置５ａが接続され、第１接続切替装置５ａには、さらに、第２接続切替装置５ｂおよび第３接続切替装置５ｃが接続されている。また、第２接続切替装置５ｂには、第１ファイルサーバ３ｃと第２ファイルサーバ３ｄが接続され、第３接続切替装置５ｃには、第３ファイルサーバ３ｅと第４ファイルサーバ３ｆが接続されている。
【００８１】
図６（ａ）〜（ｃ）は、図５の各接続切替装置の各ファイルサーバ切替順記憶部に格納される切替順の一例である。切替装置が階層的に構成されるため、図６（ａ）に示した第１接続切替装置５ａのファイルサーバ切替順記憶部３５に格納される切替順では、第２接続切替装置５ｂの次が、第３接続切替装置５ｃとなる。また、図６（ｂ）に示した第２接続切替装置５ｂのファイルサーバ切替順記憶部３５に格納される切替順では、第１ファイルサーバ３ｃの次は、第２ファイルサーバ３ｄになる。同様にして、図６（ｃ）に示した第３接続切替装置５ｃのファイルサーバ切替順記憶部３５に格納される切替順では、第３ファイルサーバ３ｅの次は、第４ファイルサーバ３ｆになる。
【００８２】
図７は、図５の各ファイルサーバに至るルートを示す図である。第１接続切替装置５ａでは、第２接続切替装置５ｂと第３接続切替装置５ｃは、擬似的にファイルサーバとして見なされる。そのため、第１接続切替装置５ａから第２接続切替装置５ｂと第３接続切替装置５ｃへの命令は、図１の場合と同様な命令を用いることができる。
【００８３】
逆に、第２接続切替装置５ｂと第３接続切替装置５ｃでは、第１接続切替装置５ａを、擬似的に通信回線を介したクライアントと見なすので、第２接続切替装置５ｂおよび第３接続切替装置５ｃから第１接続切替装置５ａへの応答も、図１の場合と同様な応答を用いることができる。従って、接続切替装置の階層数は容易に増減させることができる。
【００８４】
図８（ａ）は、図５の接続切替装置５ａ中のテーブル記憶部に格納されるテーブルＴ２−１の図であり、図８（ｂ）は、図５の接続切替装置５ｂ中のテーブル記憶部に格納されるテーブルＴ２−２の図であり、図８（ｃ）は、図５の接続切替装置５ｃ中のテーブル記憶部に格納されるテーブルＴ２−３の図である。
【００８５】
図８（ａ）の第１接続切替装置５ａのテーブルＴ２−１では、切替順で１番目の第２接続切替装置５ｂから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイルを指定する時に第１接続切替装置５ａで先頭を示すデータに付加される識別子「．＄」が追加されている。切替順で２番目の第３接続切替装置５ｃから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１」となっている。
【００８６】
図８（ｂ）の第２接続切替装置５ｂのテーブルＴ２−２では、切替順で１番目の第１ファイルサーバ３ｃから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄．＄」となっており、ファイルを指定する時に第１接続切替装置５ａで先頭を示すデータに付加される識別子「．＄」に、さらに、第２接続切替装置５ｂで先頭を示すデータに付加される識別子「．＄」が追加されている。切替順で２番目の第２ファイルサーバ３ｄから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイルを指定する時に第２接続切替装置５ｂで先頭を示すデータに付加される識別子「．＄」が追加されている。
【００８７】
図８（ｃ）の第３接続切替装置５ｃのテーブルＴ２−３では、切替順で１番目の第３ファイルサーバ３ｅから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイルを指定する時に第３接続切替装置５ｃで先頭を示すデータに付加される識別子「．＄」が追加されている。切替順で２番目の第４ファイルサーバ３ｆから読み出されるファイルのファイル名およびファイル識別子は、「ＡＢＣ／ＸＸＸ１」となっており、先頭を示す識別子は追加されない。結果的に、第２接続切替装置５ｂと第３接続切替装置５ｃで同じファイル名「ＡＢＣ／ＸＸＸ１．＄」が使用されているが、第１接続切替装置５ａで、どちらの接続切替装置からの入力かが事前に設定される優先順位で管理されるため問題はない。
【００８８】
図９は、各ファイルサーバからのデータの読み出し順序の一例を示す図である。読み出し順序としては、本実施形態では、分割データ単位が４ｋバイトであり、図９に示されたように第１ファイルサーバ３ｃ、第３ファイルサーバ３ｅ、第２ファイルサーバ３ｄ、第４ファイルサーバ３ｆという順に切り替えられ、再度、第１ファイルサーバ３ｃに戻る順序である。
【００８９】
まず、第１ファイルサーバ３ｃからファイル「ＸＸＸ１」の最初の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１．＄．＄：１〜４ｋ」が読み出された後に、第３ファイルサーバ３ｅからファイル「ＸＸＸ１」の２番目の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１．＄：１〜４ｋ」が読み出され、次に、第２ファイルサーバ３ｄからファイル「ＸＸＸ１」の３番目の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１．＄：１〜４ｋ」が読み出され、さらに、第４ファイルサーバ３ｆからファイル「ＸＸＸ１」の４番目の４ｋバイトデータ「ＡＢＣ／ＸＸＸ１：１〜４ｋ」が読み出され、再び、第１ファイルサーバ３ｃからファイル「ＸＸＸ１」の５番目の４バイトデータ「ＡＢＣ／ＸＸＸ１．＄．＄：（４ｋ＋１）−８ｋ」が読み出される（以下、同様）という読み出し順である。４ｋバイトデータの順序表記に関しては第１の実施形態の説明を参照されたい。ファイル操作命令としては、例えば、ファイル名とファイルのデータ部分以外の部分については、全てのファイル操作命令が同じになるようにする。
【００９０】
書き込み命令の場合の書き込み順も、当然のことながら、上述の読み出し順と同じである。
【００９１】
このようにして、第１ファイルサーバ３ｃには、ファイル「ＸＸＸ１」の第１〜第４ｋバイト、第（１６ｋ＋１）〜第２０ｋバイト、第（３２ｋ＋１）〜第３６ｋバイト、第（４８ｋ＋１）〜第５２ｋバイト等のデータが、第１ファイルサーバ３ｃ用のファイル識別子「ＡＢＣ／ＸＸＸ１．＄．＄」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイト、第（１２ｋ＋１）〜第１６ｋバイト等のデータとして格納される。
【００９２】
同様にして、第３ファイルサーバ３ｅには、ファイル「ＸＸＸ１」の第（４ｋ＋１）〜第８ｋバイト、第（２０ｋ＋１）〜第２４ｋバイト、第（３６ｋ＋１）〜第４０ｋバイト、第（５２ｋ＋１）〜第５６ｋバイト等のデータが、第３ファイルサーバ３ｅ用のファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイト等のデータとして格納される。
【００９３】
また、第２ファイルサーバ３ｄには、ファイル「ＸＸＸ１」の第（８ｋ＋１）〜第１２ｋバイト、第（２４ｋ＋１）〜第２８ｋバイト、第（４０ｋ＋１）〜第４４ｋバイト、第（５６ｋ＋１）〜第６０ｋバイト等のデータが、第２ファイルサーバ３ｄ用のファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイト等のデータとして格納される。
【００９４】
また、第４ファイルサーバ３ｆには、ファイル「ＸＸＸ１」の第（１２ｋ＋１）〜第１６ｋバイト、第（２８ｋ＋１）〜第３２ｋバイト、第（４４ｋ＋１）〜第４８ｋバイト、第（６０ｋ＋１）〜第６４ｋバイト等のデータが、第４ファイルサーバ３ｆ用のファイル識別子「ＡＢＣ／ＸＸＸ１」を持ったファイルの第１〜第４ｋバイト、第（４ｋ＋１）〜第８ｋバイト、第（８ｋ＋１）〜第１２ｋバイト等のデータとして格納される。
【００９５】
各ファイルサーバの最後に受信するデータ単位が４ｋバイトに満たない場合には、満たない部分に０のデータが仮に割り当てられる。
【００９６】
なお、本実施形態では、接続切替装置の階層を２層としたが、接続切替装置５ａ〜５ｃと同様な装置を追加することにより、３層以上にすることも容易であり、また、各接続切替装置の分岐方向の切替数も２方向でなく３方向以上にすることも容易である。
【００９７】
このように、本実施形態では、複数のファイルサーバの通信回線側（クライアント側）に配置された接続切替装置を複数にして階層状に構成することにより、特殊なハードウエアが接続切替装置のみで、高速で大容量かつ安価なファイルシステムを構成することができることに加え、ファイルサーバと接続切替装置を追加することのみで、容易に記憶容量の規模を拡張することができる。
【００９８】
（第３実施形態）
図１０は、本発明の第３の実施形態の接続切替装置を用いたファイルシステムの構成の一部を示すブロック図である。図１０のファイルシステムが、図５のファイルシステムとブロック構成上で異なる主な点は、階層状に構成された最終段の接続切替装置が複数のファイルサーバに同内容を書き込む点である。
【００９９】
具体的には、第２接続切替装置５ｅは、第１ファイルサーバ３ｇにファイル識別子「ＡＢＣ／ＸＸＸ１．＄．＄」のデータを書き込む際に、データを複製して、第２ファイルサーバ３ｈにもファイル識別子「ＡＢＣ／ＸＸＸ１．＄．＄」のデータとして書き込む。次に、第３接続切替装置５ｆは、第３ファイルサーバ３ｉにファイル識別子「ＡＢＣ／ＸＸＸ１．＄」のデータを書き込む際に、データを複製して、第４ファイルサーバ３ｊにもファイル識別子「ＡＢＣ／ＸＸＸ１．＄」のデータとして書き込む。
【０１００】
次に、再び、第２接続切替装置５ｅに戻って、第２ファイルサーバ３ｈにファイル識別子「ＡＢＣ／ＸＸＸ１．＄」のデータを書き込む際に、データを複製して、第１ファイルサーバ３ｇにもファイル識別子「ＡＢＣ／ＸＸＸ１．＄」のデータとして書き込む。次に、第３接続切替装置５ｆは、第４ファイルサーバ３ｊにファイル識別子「ＡＢＣ／ＸＸＸ１」のデータを書き込む際に、データを複製して、第３ファイルサーバ３ｉにもファイル識別子「ＡＢＣ／ＸＸＸ１」のデータとして書き込む。
【０１０１】
図１１は、第１接続切替装置５ｄ、第２接続切替装置５ｅおよび第３接続切替装置５ｆの内部構成を示すブロック図である。第１接続切替装置５ｄ、第２接続切替装置５ｅおよび第３接続切替装置５ｆが図５の接続切替装置５ａ〜５ｃと異なる主な点は、まず、第１接続切替装置５ｄでは、図１２を用いて後述するようにファイルサーバ切替順記憶部３５ｄに格納される切替順に、重複して書込まれる予備のファイルサーバについての情報も格納される点である。また、最下層の接続切替装置となる接続切替装置５ｅおよび５ｆのプログラム記憶部３７ｄには、データを正規のファイルサーバへ書き込みする他に、そのデータをコピーして複製物を、別のファイルサーバーに二重（重複）に予備書き込みするプログラム４１と、１つのファイルサーバに異常事態や不良が発生した場合には予備書き込みされたデータの方を読み出すプログラム４２が格納されている点である。
【０１０２】
つまり、本実施形態では、階層的に構成された接続切替装置５ｄ〜５ｆのうち、最もファイルサーバ３ｃ〜３ｆに近い側の接続切替装置５ｅおよび５ｆには、ファイルサーバ３ｃ〜３ｆにファイルを書き込む時に、切替順に従って受信した通信パケット毎に切替部３４を切り替えるプログラムに加えて、信号処理部３３で受信した通信パケットを複製し、その複製物を、切替部３４に接続された少なくとも１個の別のファイルサーバに予備書込するために切替部３４を切り替えるプログラムを備えている。
【０１０３】
また、各接続切替装置５ｄ〜５ｆのプログラム記憶部３７ｄには、テーブルを作成するためにファイルサーバ３ｇ〜３ｊからファイル識別子を読み出す時に、ファイル識別子が読み出せない不良ファイルサーバがある場合に、その不良ファイルサーバに書き込まれたファイル識別子に対応する複製ファイルが書き込まれたファイルサーバから複製ファイルを読み出すプログラムを備えている。
【０１０４】
また、本実施の形態では、最も通信負荷が軽くなるように、予備書込するために切替部３４を切り替えるプログラムを備えさせている接続切替装置を５ｅおよび５ｆとしたが、少なくとも１つの他の階層の接続切替装置のプログラム記憶部に、予備書込するために切替部３４を切り替えるプログラムを備えさせるように構成しても良い。
【０１０５】
図１２（ａ）〜（ｃ）は、図１１の各接続切替装置の各ファイルサーバ切替順記憶部３５ｄに格納される切替順の一例である。切替装置が階層的に構成されるため、図１２（ａ）に示した第１接続切替装置５ｄのファイルサーバ切替順記憶部３５ｄに格納される切替順では、第２接続切替装置５ｅの次が、第３接続切替装置５ｆとなる。また、図１２（ｂ）に示した第２接続切替装置５ｅのファイルサーバ切替順記憶部３５ｄに格納される切替順では、第１ファイルサーバ３ｇの次は、第２ファイルサーバ３ｈになる。同様にして、図１２（ｃ）に示した第３接続切替装置５ｆのファイルサーバ切替順記憶部３５ｄに格納される切替順では、第３ファイルサーバ３ｉの次は、第４ファイルサーバ３ｊになる。
【０１０６】
しかし、本実施形態では、不良発生時の復旧用として、例えば、第１ファイルサーバ３ｇにデータを書き込む際に、予備のデータを第２ファイルサーバ３ｈにも書き込むように、あるいは、第２ファイルサーバ３ｈにデータを書き込む際に第１ファイルサーバ３ｇにも予備のデータを書き込むように、ファイルサーバ切替順記憶部３５ｄには、図１２（ｂ）に示したように予備の切替順が格納される。同様に、第３ファイルサーバ３ｉにデータを書き込む際に第４ファイルサーバ３ｊにも予備のデータが書き込まれ、第４ファイルサーバ３ｊにデータを書き込む際に第３ファイルサーバ３ｉにも予備のデータが書き込まれるように、ファイルサーバ切替順記憶部３５ｄには、図１２（ｃ）に示したように予備の切替順が格納される。
【０１０７】
図１３は、図１０の各ファイルサーバに至るルートの一例である。これも、通常時用としては、第２の実施形態と同様に、第１接続切替装置５ｄから第１ファイルサーバ３ｇまでのルートでは、第２切替装置５ｅが経由される。同様にして、第１接続切替装置５ｄから第２ファイルサーバ３ｈまでのルートでも、第２切替装置５ｅが経由され、第１接続切替装置５ｄから第３ファイルサーバ３ｉまでのルートでは、第３切替装置５ｆが経由され、第１接続切替装置５ａから第４ファイルサーバ３ｊまでのルートでも、第３切替装置５ｆが経由される。
【０１０８】
図１４（ａ）〜（ｃ）は、図１１のテーブル記憶部３８ｄに格納されるテーブルＴ３の図である。図１４（ａ）は、図１０の接続切替装置５ｄ中のテーブル記憶部に格納されるテーブルＴ３−１の図であり、図１４（ｂ）は、図１０の接続切替装置５ｅ中のテーブル記憶部に格納されるテーブルＴ３−２の図であり、図１４（ｃ）は、図１０の接続切替装置５ｆ中のテーブル記憶部に格納されるテーブルＴ３−３の図である。
【０１０９】
図１４（ａ）の第１接続切替装置５ｄのテーブルＴ３−１では、通常時の切替順で１番目の第２接続切替装置５ｅから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイル識別子を指定する時に第１接続切替装置５ｄで先頭を示すデータに付加される符号「．＄」が追加されている。また、予備の切替順で１番目の第３接続切替装置５ｆから読み出されるファイルのファイル識別子も「ＡＢＣ／ＸＸＸ１．＄」となる。
【０１１０】
通常時の切替順で２番目の第３接続切替装置５ｆから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１」となっている。また、予備の切替順で２番目の第２接続切替装置５ｅから読み出されるファイルのファイル識別子も「ＡＢＣ／ＸＸＸ１」となる。
【０１１１】
図１４（ｂ）の第２接続切替装置５ｅのテーブルＴ３−２では、通常時の切替順で１番目の第１ファイルサーバ３ｇから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄．＄」となっており、ファイル識別子を指定する時に第１接続切替装置５ｄで先頭を示すデータに付加される符号「．＄」に、さらに、第２接続切替装置５ｅで先頭を示すデータに付加される符号「．＄」が追加されている。また、予備の切替順で１番目の第２ファイルサーバ３ｈから読み出されるファイルのファイル識別子も「ＡＢＣ／ＸＸＸ１．＄．＄」となる。
【０１１２】
通常時の切替順で２番目の第２ファイルサーバ３ｈから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイル識別子を指定する時に第２接続切替装置５ｅで先頭を示すデータに付加される符号「．＄」が追加されている。また、予備の切替順で２番目の第１ファイルサーバ３ｇから読み出されるファイルのファイル識別子も「ＡＢＣ／ＸＸＸ１．＄」となる。
【０１１３】
図１４（ｃ）の第３接続切替装置５ｆのテーブルＴ３−３では、通常時の切替順で１番目の第３ファイルサーバ３ｉから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」となっており、ファイル識別子を指定する時に第３接続切替装置５ｃで先頭を示すデータに付加される符号「．＄」が追加されている。また、予備の切替順で１番目の第４ファイルサーバ３ｊから読み出されるファイルのファイル識別子も、「ＡＢＣ／ＸＸＸ１．＄」となる。
【０１１４】
通常時の切替順で２番目の第４ファイルサーバ３ｊから読み出されるファイルのファイル識別子は、「ＡＢＣ／ＸＸＸ１」となっており、先頭を示す符号は追加されない。また、予備の切替順で２番目の第３ファイルサーバ３ｉから読み出されるファイルのファイル識別子も、「ＡＢＣ／ＸＸＸ１」となる。結果的に、第２接続切替装置５ｅと第３接続切替装置５ｆで扱われるファイル識別子は、「ＡＢＣ／ＸＸＸ１．＄」というファイル識別子で同じになるが、第１接続切替装置５ｄで、どちらの接続切替装置からの入力かが事前に設定される優先順位で管理されるため問題はない。
【０１１５】
図１５は、第２ファイルサーバ３ｈに不良が発生して読み出せなくなった場合に、第１ファイルサーバ３ｇに書き込まれていた予備のデータによりファイル読み出しを実施する場合の読み出し順序を示す図である。
【０１１６】
切替順で１番目の第１ファイルサーバ３ｇから最初にファイル識別子「ＡＢＣ／ＸＸＸ１．＄．＄」を持ったファイルの最初の４ｋバイトデータが読み出され、次に、切替順で２番目の第３ファイルサーバ３ｉからファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの２番目の４ｋバイトデータが読み出される。
【０１１７】
次に、本来は切替順で３番目の第２ファイルサーバ３ｈからファイル識別子「ＡＢＣ／ＸＸＸ１．＄」を持ったファイルの３番目の４ｋバイトデータが読み出されるべきところであるが、第２ファイルサーバ３ｈに不良が発生してファイルが読み出せないため、対応する予備のファイルが第１ファイルサーバ３ｇから読み出され、切替順で４番目の第４ファイルサーバ３ｊからファイル識別子「ＡＢＣ／ＸＸＸ１」を持ったファイルが読み出される。その後も、上記した切替順に従って循環的に読み出されるが、第２ファイルサーバ３ｈの分については、第１ファイルサーバから予備のファイルが読み出される。なお、不良が発生しない場合には、第２の実施形態と同様の読み出し順序となる。
【０１１８】
なお、本実施形態では、予備ファイルの書き込み及び読み出しを、予備ファイルの書き込みに必要な通信量を最小にするために、最もファイルサーバよりの階層に位置する接続切替装置で実施するようにしたが、他の階層に位置する接続切替装置で予備ファイルの書き込みおよび読み出しを実施しても良い。
【０１１９】
また、本実施形態では、接続切替装置の階層を２層としたが、接続切替装置５ｂ、５ｃと同様な装置を追加することにより、３層以上にすることも容易であり、さらに、各接続切替装置の分岐方向の切替数も２方向でなく３方向以上にすることも容易である。
【０１２０】
このように、本実施形態では、ファイルサーバ側に配置された接続切替装置では、データを書き込む際に複製物を作成して、オリジナルのデータと予備の複製データを異なるファイルサーバに格納するようにし、１つのファイルサーバに不良が発生した場合には、自動的に予備のデータを読み出すようにできるので、特殊なハードウエアが接続切替装置のみで、高速で大容量かつ安価なファイルシステムを構成することができ、ファイルサーバと接続切替装置を追加することのみで、容易に記憶容量の規模を拡張することができることに加え、不良発生時のデータの復旧を容易にすることができる。
【０１２１】
【発明の効果】
上記のように本発明では、複数のファイルサーバの通信回線側（クライアント側）に接続切替装置を配置することにより、特殊なハードウエアが接続切替装置のみで、高速で大容量かつ安価なファイルシステムを構成することができる。
【０１２２】
また、本発明では、複数のファイルサーバの通信回線側に配置された接続切替装置を複数にして階層状に構成することにより、ファイルサーバと接続切替装置を追加することのみで、容易に記憶容量の規模を拡張することができる。
【０１２３】
また、本発明では、ファイルサーバ側に配置された接続切替装置では、データを書き込む際に複製物を作成して、オリジナルのデータと予備の複製データを異なるファイルサーバに格納するようにし、１つのファイルサーバに不良が発生した場合には、自動的に予備のデータを読み出すようにできるので、不良発生時のデータの復旧を容易にすることができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態のファイルシステムを示す図である。
【図２】  ファイルサーバ切替順記憶部に格納されるファイルサーバの切替順序の一例を示す図である。
【図３】  テーブル記憶部に格納されるテーブルの一例を示す図である。
【図４】  各ファイルサーバからのデータの読み出し順序の一例を示す図である。
【図５】  本発明の第２の実施形態の接続切替装置を用いたファイルシステムの構成を示すブロック図である。
【図６】  （ａ）〜（ｃ）は、図５の各接続切替装置の各ファイルサーバ切替順記憶部に格納される切替順の一例である。
【図７】  図５の各ファイルサーバに至るルートを示す図である。
【図８】  （ａ）〜（ｃ）は、図５の接続切替装置中のテーブル記憶部に格納されるテーブルの図である。
【図９】  各ファイルサーバからのデータの読み出し順序の一例を示す図である。
【図１０】  本発明の第３の実施形態の接続切替装置を用いたファイルシステムの構成の一部を示すブロック図である。
【図１１】  第１接続切替装置、第２接続切替装置および第３接続切替装置の内部構成を示すブロック図である。
【図１２】  （ａ）〜（ｃ）は、図１１の各接続切替装置の各ファイルサーバ切替順記憶部に格納される切替順の一例である。
【図１３】  図１０の各ファイルサーバに至るルートの一例である。
【図１４】  （ａ）〜（ｃ）は、図１１のテーブル記憶部に格納されるテーブルの図である。
【図１５】  第２ファイルサーバに不良が発生時の読み出し順序を示す図である。
【図１６】  従来のファイルサーバの構成を示す図である。
【図１７】  従来のＲＡＩＤ装置を有するファイルサーバの構成を示す図である。
【符号の説明】
１  クライアント（端末装置）、  ２  通信回線、  ３  ファイルサーバ、  ３ａ，３ｃ，３ｇ  第１ファイルサーバ、  ３ｂ，３ｄ，３ｈ  第２ファイルサーバ、  ３ｅ，３ｉ  第３ファイルサーバ、  ３ｆ，３ｊ  第４ファイルサーバ、  ４  ＲＡＩＤ装置、  ５  接続切替装置、  ５ａ，５ｄ  第１接続切替装置、  ５ｂ，５ｅ  第２接続切替装置、  ５ｃ，５ｆ  第３接続切替装置、  １１，１１ａ  通信制御部、  １２，１２ａ，１２ｂ  ファイル管理部、  １３，１３ａ，１３ｂ，２２，２３  ディスク記憶部、  １４，１５，１６，１７，１７ａ〜１７ｃ，１８，１８ａ，１８ｂ，２０，２１  ディスク管理部、  ３１  通信制御部、  ３２，３２ａ，３２ｂ，３２ｃ，３２ｄ  信号処理／切替制御部、３３，３３ａ  信号処理部、  ３４  切替部、  ３５，３５ａ，３５ｂ，３５ｃ，３５ｄ  ファイルサーバ切替順記憶部、  ３６，３６ａ，３６ｂ，３６ｃ，３６ｄ  ファイルサーバルート記憶部、  ３７，３７ａ，３７ｂ，３７ｃ，３７ｄ  プログラム記憶部、  ３８，３８ａ，３８ｃ  テーブル記憶部。
【図１】
0004495899.tif 000002
【図２】
0004495899.tif 000003
【図３】
0004495899.tif 000004
【図４】
0004495899.tif 000005
【図５】
0004495899.tif 000006
【図６】
0004495899.tif 000007
【図７】
0004495899.tif 000008
【図８】
0004495899.tif 000009
【図９】
0004495899.tif 000010
【図１０】
0004495899.tif 000011
【図１１】
0004495899.tif 000012
【図１２】
0004495899.tif 000013
【図１３】
0004495899.tif 000014
【図１４】
0004495899.tif 000015
【図１５】
0004495899.tif 000016
【図１６】
0004495899.tif 000017
【図１７】
0004495899.tif 000018