(57)【要約】  一実施形態は、コンピュータシステムに関する。本コンピュータシステムには、少なくとも１つのホストと、少なくとも１つのオブジェクトアドレス指定可能記憶（ＯＡＳ）システムと、少なくとも１つのホストを少なくとも１つのＯＡＳシステムに結合する少なくとも１つの通信媒体と、が含まれる。少なくとも１つのＯＡＳシステムは、複数の記憶装置を有し、複数の記憶装置上に複数の単位コンテンツを記憶する。少なくとも１つのホスト及び少なくとも１つのＯＡＳシステムは、各々、ＯＡＳインターフェイスを提供するソフトウェアを有する。ＯＡＳインターフェイスは、ＯＡＳシステムに記憶された各単位コンテンツが、オブジェクト識別子用いて、少なくとも１つのホストと少なくとも１つのＯＡＳとの間で識別され得るように提供される。本コンピュータシステムは、少なくとも１つの第１経路を介して、複数単位コンテンツの第１単位コンテンツ用オブジェクト識別子を複数記憶装置の少なくとも１つにマッピングする。少なくとも１つのホストによる少なくとも１つの第１経路を介した第１単位コンテンツへのアクセスを妨げる故障に応じて、本コンピュータシステムは、自動的に再構成され、第１単位コンテンツ用のオブジェクト識別子を用いて少なくとも１つのホストによる第１単位コンテンツへのアクセスを可能にする少なくとも１つの以前確立されなかった第２経路を確立する。
2009522656.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのホストと、少なくとも１つの記憶システムと、前記少なくとも１つのホストを前記少なくとも１つの記憶システムに結合する少なくとも１つの通信媒体と、が含まれるコンピュータシステムで用いるための方法において、
前記少なくとも１つの記憶システムには、第１グループの記憶装置と第２グループの記憶装置と、が含まれ、
前記記憶システムには、更に、第１コントローラと第２コントローラと、が含まれ、
前記第１コントローラには、第１組の単位コンテンツを前記第１グループの記憶装置上の記憶位置にマッピングする第１ファイルシステムが含まれ、
前記第２コントローラには、第２組の単位コンテンツを前記第２グループの記憶装置上の記憶位置にマッピングする第２ファイルシステムが含まれ、
前記少なくとも１つのホストは、前記第１コントローラを介して前記第１グループの単位コンテンツにアクセスし、また、前記第２コントローラを介して前記第２グループの単位コンテンツにアクセスする、前記方法であって、
（Ａ）前記少なくとも１つのホストによる前記第１コントローラを介した前記第１グループの単位コンテンツへのアクセスを妨げる故障に応じて、前記第１ファイルシステムを前記第２コントローラにマウントして、前記第２コントローラを介して前記少なくとも１つのホストによる前記第１グループの単位コンテンツへのアクセスを可能にする段階が含まれる方法。
【請求項２】
請求項１に記載の方法であって、
前記第１ファイルシステムは、前記第１組の各単位コンテンツが、オブジェクト識別子を用いて前記第１ファイルシステムによって識別されるように、オブジェクトアドレス指定可能なインターフェイスを前記少なくとも１つのホストに提供する方法。
【請求項３】
請求項１に記載の方法であって、更に、
前記第１コントローラに宛てられたアクセス要求を前記少なくとも１つのホストから受信する段階と、
前記アクセス要求を前記第２コントローラに転送する段階と、
が含まれる方法。
【請求項４】
少なくとも１つの通信媒体によってホストコンピュータに結合された記憶システムであって、
第１グループの記憶装置と、
第２グループの記憶装置と、
第１組の単位コンテンツを前記第１グループの記憶装置上の記憶位置にマッピングする第１ファイルシステムを含む第１コントローラと、
第２組の単位コンテンツを前記第２グループの記憶装置上の記憶位置にマッピングする第２ファイルシステムを含む第２コントローラと、
前記少なくとも１つのホストによる前記第１コントローラを介した前記第１グループの単位コンテンツへのアクセスを妨げる故障に応じて、前記第１ファイルシステムを前記第２コントローラにマウントして、前記第２コントローラを介して、前記少なくとも１つのホストによる前記第１グループの単位コンテンツへのアクセスを可能にする少なくとも１つのコントローラと、が含まれ、
前記第１グループの単位コンテンツには、前記第１コントローラを介して、前記ホストがアクセス可能であり、また、前記第２グループの単位コンテンツには、前記第２コントローラを介して、前記ホストがアクセス可能である記憶システム。
【請求項５】
請求項４に記載の記憶システムであって、前記少なくとも１つのコントローラは、
前記第１コントローラに宛てられたアクセス要求を前記少なくとも１つのホストから受信し、
前記アクセス要求を前記第２コントローラに転送する記憶システム。
【請求項６】
少なくとも１つのホストと、少なくとも１つのオブジェクトアドレス指定可能記憶（ＯＡＳ）システムと、前記少なくとも１つのホストを前記少なくとも１つのＯＡＳシステムに結合する少なくとも１つの通信媒体と、が含まれるコンピュータシステムに用いるための方法において、
前記少なくとも１つのＯＡＳシステムは、複数の記憶装置を有し、また、前記複数の記憶装置上に複数の単位コンテンツを記憶し、
前記少なくとも１つのホスト及び前記少なくとも１つのＯＡＳシステムは、各々、前記ＯＡＳシステムに記憶された前記各単位コンテンツが、オブジェクト識別子を用いて、前記少なくとも１つのホストと前記少なくとも１つのＯＡＳとの間で識別されるようにＯＡＳインターフェイスを提供するソフトウェアを有し、
前記コンピュータシステムは、少なくとも１つの第１経路を介して、前記複数単位コンテンツの第１単位コンテンツ用の前記オブジェクト識別子を前記複数の記憶装置の少なくとも１つにマッピングする、前記方法であって、
（Ａ）前記少なくとも１つのホストによる前記少なくとも１つの第１経路を介した前記第１単位コンテンツへのアクセスを妨げる故障に応じて、前記コンピュータシステムを自動的に再構成して、前記第１単位コンテンツ用の前記オブジェクト識別子を用いて、前記少なくとも１つのホストによる前記第１単位コンテンツへのアクセスを可能にする少なくとも１つの以前確立されなかった第２経路を確立する段階が含まれる方法。
【請求項７】
請求項６に記載の方法であって、前記第１単位コンテンツは、前記複数記憶装置の内の第１装置に記憶され、また、前記段階（Ａ）には、前記コンピュータシステムを再構成して、前記複数記憶装置の内の前記第１装置への前記第２経路を確立する段階が含まれる方法。
【請求項８】
請求項６に記載の方法であって、前記ＯＡＳシステムは、コンテンツアドレス記憶（ＣＡＳ）システムであり、また、前記オブジェクト識別子は、少なくとも部分的に、前記第１単位コンテンツのコンテンツに基づくコンテンツアドレスである方法。
【請求項９】
オブジェクトアドレス指定可能記憶（ＯＡＳ）システムと、少なくとも１つのホストと、前記ＯＡＳシステムを前記少なくとも１つのホストに結合する少なくとも１つの通信媒体と、が含まれるコンピュータシステムに用いるためのオブジェクトアドレス指定可能記憶（ＯＡＳ）システムであって、前記ＯＡＳシステムには、
複数の単位コンテンツを記憶するための複数の記憶装置と、
ＯＡＳインターフェイスであって、これを通して、前記ＯＡＳシステムに記憶された前記各単位コンテンツは、オブジェクト識別子を用いて、前記少なくとも１つのホストと前記少なくとも１つのＯＡＳとの間で識別が可能である前記ＯＡＳインターフェイスと、
少なくとも１つの第１経路を介して、前記複数単位コンテンツの第１単位コンテンツ用の前記オブジェクト識別子を前記複数の記憶装置の少なくとも１つにマッピングするマッパと、
少なくとも１つのコントローラであって、前記少なくとも１つのホストによる前記少なくとも１つの第１経路を介した前記第１単位コンテンツへのアクセスを妨げる故障に応じて、前記コンピュータシステムを自動的に再構成して、前記第１単位コンテンツ用の前記オブジェクト識別子を用いて、前記少なくとも１つのホストによる前記第１単位コンテンツへのアクセスを可能にする少なくとも１つの以前確立されなかった第２経路を確立する前記少なくとも１つのコントローラと、
が含まれるＯＡＳシステム。
【請求項１０】
請求項９に記載のＯＡＳシステムであって、前記第１単位コンテンツは、前記複数記憶装置の内の第１装置に記憶され、また、前記少なくとも１つのコントローラは、前記コンピュータシステムを再構成して、前記複数記憶装置の内の前記第１装置への前記第２経路を確立するＯＡＳシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システムを構成するための手法に関する。
【背景技術】
【０００２】
コンテンツアドレス指定可能な記憶（ＣＡＳ）手法では、単位コンテンツのコンテンツから少なくとも部分的に導かれるアドレス又は識別子を用いて、記憶システムに記憶された単位コンテンツにアクセスする。一例として、単位コンテンツは、単位コンテンツ用のコンテンツアドレスの少なくとも一部として用いられるハッシュ値を生成するハッシュ関数への入力として提供し得る。コンテンツアドレスの生成に適するハッシュ関数の例は、メッセージ・ダイジェスト５（ＭＤ５）ハッシングアルゴリズムである。
【０００３】
ホストコンピュータが、コンテンツアドレス指定可能な記憶システムに要求を送り、一定量のデータを検索する場合、ホストコンピュータは、単位コンテンツのコンテンツアドレスを提供する。そして、記憶システムは、コンテンツアドレスに基づき、記憶システムにおける単位コンテンツの物理的な位置を判断し、単位コンテンツを検索し、単位コンテンツをホストコンピュータに返す。従って、ホストコンピュータは、コンテンツアドレスに基づき単位コンテンツの物理的な位置を判断するタスクを記憶システムが実施し得るため、記憶システムにおけるコンテンツの物理的な位置を意識する必要がない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の一実施形態は、コンピュータシステムに用いるための方法に関する。コンピュータシステムには、少なくとも１つのホストと、少なくとも１つの記憶システムと、少なくとも１つのホストを少なくとも１つの記憶システムに結合する少なくとも１つの通信媒体と、が含まれる。少なくとも１つの記憶システムには、第１グループの記憶装置及び第２グループの記憶装置が含まれる。記憶システムには、更に、第１コントローラ及び第２コントローラが含まれる。第１コントローラには、第１組の単位コンテンツを第１グループの記憶装置上の記憶位置にマッピングする第１ファイルシステムが含まれる。第２コントローラには、第２組の単位コンテンツを第２グループの記憶装置上の記憶位置にマッピングする第２ファイルシステムが含まれる。少なくとも１つのホストは、第１コントローラを介して第１グループの単位コンテンツにアクセスし、また、第２コントローラを介して第２グループの単位コンテンツにアクセスする。
本方法には、（Ａ）少なくとも１つのホストによる第１コントローラを介した第１グループの単位コンテンツへのアクセスを妨げる故障に応じて、第２コントローラに第１ファイルシステムをマウントし、第２コントローラを介して、少なくとも１つのホストによる第１グループの単位コンテンツへのアクセスを可能にする段階が含まれる。他の実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも１つのコンピュータ判読可能媒体に関する。
【課題を解決するための手段】
【０００５】
更なる実施形態は、少なくとも１つの通信媒体によってホストコンピュータに結合された記憶システムに関する。本記憶システムには、第１グループの記憶装置と、第２グループの記憶装置と、第１組の単位コンテンツを第１グループの記憶装置上の記憶位置にマッピングする第１ファイルシステムを含む第１コントローラと、第２組の単位コンテンツを第２グループの記憶装置上の記憶位置にマッピングする第２ファイルシステムを含む第２コントローラと、少なくとも１つのホストによる第１コントローラを介した第１グループの単位コンテンツへのアクセスを妨げる故障に応じて、第１ファイルシステムを第２コン
トローラにマウントして、第２コントローラを介して、少なくとも１つのホストによる第１グループの単位コンテンツへのアクセスを可能にする少なくとも１つのコントローラと、が含まれ、第１グループの単位コンテンツには、第１コントローラを介して、ホストがアクセス可能であり、また、第２グループの単位コンテンツには、第２コントローラを介して、ホストがアクセス可能である。
【０００６】
他の実施形態は、少なくとも１つのホストと、少なくとも１つのオブジェクトアドレス指定可能記憶（ＯＡＳ）システムと、少なくとも１つのホストを少なくとも１つのＯＡＳシステムに結合する少なくとも１つの通信媒体と、が含まれるコンピュータシステムに用いるための方法に関する。少なくとも１つのＯＡＳシステムは、複数の記憶装置を有し、また、複数の記憶装置上に複数の単位コンテンツを記憶する。少なくとも１つのホスト及び少なくとも１つのＯＡＳシステムは、各々、ＯＡＳインターフェイスを提供するソフトウェアを有する。ＯＡＳインターフェイスは、ＯＡＳシステムに記憶された各単位コンテンツが、オブジェクト識別子を用いて、少なくとも１つのホストと少なくとも１つのＯＡＳとの間で識別されるように提供される。本コンピュータシステムは、少なくとも１つの第１経路を介して、複数単位コンテンツの第１単位コンテンツ用のオブジェクト識別子を複数の記憶装置の少なくとも１つにマッピングする。本方法には、（Ａ）少なくとも１つのホストによる少なくとも１つの第１経路を介した第１単位コンテンツへのアクセスを妨げる故障に応じて、コンピュータシステムを自動的に再構成して、第１単位コンテンツ用のオブジェクト識別子を用いて、少なくとも１つのホストによる第１単位コンテンツへのアクセスを可能にする少なくとも１つの以前確立されなかった第２経路を確立する段階が含まれる。更なる実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも１つのコンピュータ判読可能媒体に関する。
【０００７】
他の実施形態は、オブジェクトアドレス指定可能記憶（ＯＡＳ）システムと、少なくとも１つのホストと、ＯＡＳシステムを少なくとも１つのホストに結合する少なくとも１つの通信媒体と、が含まれるコンピュータシステムに用いるためのＯＡＳシステムに関する。ＯＡＳシステムには、複数の単位コンテンツを記憶するための複数の記憶装置と、ＯＡＳインターフェイスであって、これを通して、ＯＡＳシステムに記憶された各単位コンテンツが、オブジェクト識別子を用いて、少なくとも１つのホストと少なくとも１つのＯＡＳとの間で識別可能であるＯＡＳインターフェイスと、少なくとも１つの第１経路を介して、複数単位コンテンツの第１単位コンテンツ用のオブジェクト識別子を複数の記憶装置の少なくとも１つにマッピングするマッパと、少なくとも１つのコントローラであって、少なくとも１つのホストによる少なくとも１つの第１経路を介した第１単位コンテンツへのアクセスを妨げる故障に応じて、コンピュータシステムを自動的に再構成して、第１単位コンテンツ用のオブジェクト識別子を用いて、少なくとも１つのホストによる第１単位コンテンツへのアクセスを可能にする少なくとも１つの以前確立されなかった第２経路を確立する少なくとも１つのコントローラと、が含まれる。
【０００８】
更なる実施形態は、複数の単位コンテンツを記憶する複数の記憶装置と、少なくとも１つのプロセッサと、が含まれるオブジェクトアドレス指定可能記憶（ＯＡＳ）システムに関する。少なくとも１つのプロセッサは、ＯＡＳシステムに記憶された各単位コンテンツにオブジェクト識別子を用いてアクセスできるようにＯＡＳインターフェイスを提供する段階と、ＯＡＳシステムが少なくとも部分的に実装されて、複数の記憶装置の少なくとも幾つかがそこに既に記憶された単位コンテンツを有した後、複数の記憶装置に新しく追加された記憶装置の追加を発見する段階と、新しく追加された記憶装置の発見に応じて、ＯＡＳシステムの記憶容量を増やすように、また、単位コンテンツをそこに記憶できるように、新しく発見された記憶装置を構成する段階と、を提供するようにプログラムされる。
【０００９】
他の実施形態は、複数の単位コンテンツを記憶する複数の記憶装置が含まれるオブジェ
クトアドレス指定可能記憶（ＯＡＳ）システムの記憶容量を増加させる方法に関する。ＯＡＳシステムは、ＯＡＳインターフェイスを提供し、これを通して、オブジェクト識別子を用いて、ＯＡＳシステムに記憶された各単位コンテンツにアクセスし得る。本方法には、ＯＡＳシステムが少なくとも部分的に実装されて、複数の記憶装置の少なくとも幾つかがそこに既に記憶された単位コンテンツを有した後、複数の記憶装置に新しく追加された記憶装置の追加を発見する段階と、新しく追加された記憶装置の発見に応じて、新しく発見された記憶装置を構成して、ＯＡＳシステムの記憶容量を増やし、また、そこに単位コンテンツを記憶可能にする段階と、が含まれる。更なる実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも１つのコンピュータ判読可能媒体に関する。
【００１０】
他の実施形態は、複数の単位コンテンツを記憶するオブジェクトアドレス指定可能記憶（ＯＡＳ）システムに関する。ＯＡＳシステムには、ＯＡＳシステムにオブジェクト識別子を提供することによって、ＯＡＳシステムから各単位コンテンツにアクセスし得るように、ＯＡＳシステムにコンテンツアドレス指定可能なインターフェイスを提供する複数のアクセスノードと、複数の単位コンテンツを記憶するための複数の記憶位置を提供する非ＯＡＳ記憶資源と、が含まれる。非ＯＡＳ記憶資源は、複数のアクセスノードが、非ＯＡＳインターフェイスを介して、複数の単位コンテンツにアクセスし得るように、非ＯＡＳインターフェイスを複数のアクセスノードに提供する。複数のアクセスノードは、非ＯＡＳ記憶資源を共有し、また、複数の各アクセスノードは、ＯＡＳシステムに記憶された各単位コンテンツ用のコンテンツアドレスを複数の記憶位置の対応する位置にマッピングするメタデータを有する。この記憶位置には、各アクセスノードが、ＯＡＳに記憶された各単位コンテンツに直接アクセスし得るように、単位コンテンツが記憶されている。
【００１１】
更なる実施形態は、オブジェクトアドレス指定可能記憶（ＯＡＳ）システムに記憶された複数の単位コンテンツの１つにアクセスする方法に関する。ＯＡＳシステムには、ＯＡＳシステムにオブジェクト識別子を提供することによって、ＯＡＳシステムから各単位コンテンツにアクセスし得るように、ＯＡＳシステムにコンテンツアドレス指定可能なインターフェイスを提供する複数のアクセスノードと、複数の単位コンテンツを記憶するための複数の記憶位置を提供する非ＯＡＳ記憶資源と、が含まれる。非ＯＡＳ記憶資源は、複数のアクセスノードが、非ＯＡＳインターフェイスを介して、複数の単位コンテンツにアクセスし得るように、非ＯＡＳインターフェイスを複数のアクセスノードに提供する。本方法には、複数のアクセスノードの１つにおいて、複数の単位コンテンツの１つへのアクセス要求を受信する段階が含まれ、この要求は、オブジェクト識別子を用いて、複数の単位コンテンツの１つを識別する。本方法には、更に、複数の各アクセスノードに利用可能なメタデータを用いて、単位コンテンツが記憶されている複数記憶位置の内の対応する位置を決定する段階が含まれる。他の実施形態は、コンピュータシステム上で実行された時、上述の方法を実施する命令で符号化された少なくとも１つのコンピュータ判読可能媒体に関する。
【発明を実施するための最良の形態】
【００１２】
下表１にリスト化した特許出願に記載されているように、コンテンツアドレス指定可能な記憶（ＣＡＳ）システムが、存在し、そこに記憶された単位コンテンツへの位置独立アクセスを提供する。即ち、ＣＡＳシステム上の単位コンテンツにアクセスするエンティティは、単位コンテンツの物理的又は論理的記憶位置を意識する必要がなく、むしろ単位コンテンツに関連するコンテンツアドレスをＣＡＳシステムに提供することによって、単位コンテンツにアクセスし得る。これらＣＡＳシステムの多くが、コンテンツアドレス指定可能な記憶用に特別に構成されたシステムとして実現される。下表１にリスト化した米国特許出願１１／１６５，１０２、１１／１６５，１０３、１１／１６５，１０４に述べたように、出願人は、ソフトウェアインターフェイスを用いて、コンテンツアドレス指定可
能な記憶を提供し、他方、非ＣＡＳ記憶システム（例えば、ブロックＩ／Ｏ記憶システム）の基本記憶資源を採用し得ることを認識している。これによって、ユーザは、新しい記憶システムを購入する必要なく、ＣＡＳの恩典を得ることができる。即ち、既にブロックＩ／Ｏ記憶システムを所有しているユーザは、ソフトウェアＣＡＳインターフェイスを用いて、ブロックＩ／Ｏ記憶システムをあたかもそれがＣＡＳシステムであるかのように用い得る。
【００１３】
本発明の態様は、ブロックＩ／Ｏ記憶システムの前にＣＡＳインターフェイスを提供するために開発された手法に関する。
一実施形態において、記憶ボックスに記憶された全ての単位コンテンツは、ボックス中の幾つかのディスクへのアクセスを制御するディスクコントローラ（又は他の接続、例えば、ケーブル等）の故障発生の際、確実にアクセス可能であることが望ましい。一実施形態では、このことは、故障発生の際、故障したコントローラを介して記憶された単位コンテンツを生き残っているコントローラにマッピングするファイルシステムをマウントすることによって達成し得る。
【００１４】
他の実施形態において、ホストによる単位コンテンツへのアクセスを妨げる故障が発生した場合、ホストによる単位コンテンツへのアクセスを可能にする以前確立されなかった単位コンテンツへの経路を構成し得る。
【００１５】
更なる実施形態において、記憶システムの記憶装置が、満杯又は満杯に近い場合、記憶システムに新しい記憶装置を追加し、（例えば、ＣＡＳインターフェイスを介して）単位コンテンツをそこに記憶できるように自動的に構成し得る。
【００１６】
他の実施形態において、記憶システムには、非ＣＡＳ記憶資源にＣＡＳインターフェイスを提供する複数のアクセスノードを含み得る。複数のアクセスノードは、非ＣＡＳ記憶資源を共有可能であり、また、複数の各アクセスノードは、各アクセスノードが記憶システム上の各単位コンテンツに直接アクセスできるように、非ＣＡＳ記憶資源に記憶された単位コンテンツのコンテンツアドレスを、単位コンテンツが記憶されている非ＣＡＳ記憶資源上の記憶位置にマッピングし得る。
【００１７】
本発明の一実施形態を図１に示す。図１において、ＣＡＳインターフェイス１０５は、単位コンテンツのコンテンツアドレスを指定することによって、アプリケーションプログラム１０１によるディスクアレイ１１１ａ及び１１１ｂ上の単位コンテンツへのアクセスを可能にするように提供される。ディスクアレイ１１１ａは、コントローラ１０３ａによって管理され、ディスクアレイ１１１ｂは、コントローラ１０３ｂによって管理される。一実施形態に基づき、ＣＡＳインターフェイス１０５ａ及び１０５ｂは、それぞれ、ディスクアレイ１１１ａ及び１１１ｂに記憶された単位コンテンツへのアプリケーションプログラム１０１によるアクセスを行わせるインターフェイスを提供する。例えば、ＣＡＳインターフェイス１０５ａは、特定の単位コンテンツを記憶せよというアプリケーションプログラム１０１からの要求を受信し得る。ＣＡＳインターフェイス１０５ａは、ファイルシステム１０７ａのファイル（又は複数ファイル）に単位コンテンツを記憶し得る。ファイルシステム１０７ａは、ＣＡＳインターフェイス１０５ａが単位コンテンツを記憶したファイルシステム位置をディスクアレイ１１１ａ上のブロック記憶アドレスに変換し得る。更に詳細に後述するように、このブロック記憶アドレスは、物理的記憶アドレス又は論理的記憶アドレスのいずれであってもよい。そして、ディスクマネージャ１０９ａは、ディスクアレイ１１１ａのディスクの１つ又は複数に単位コンテンツを物理的に記憶し得る。
【００１８】
ＣＡＳインターフェイス１０５ａによって単位コンテンツが記憶されるファイルシステ
ムは、何らかの適切なやり方で体系化してよく、この点において、本発明は限定されない。例えば、一実施形態において、ファイルシステムは、同様なコンテンツアドレスを備えた単位コンテンツが、同じディレクトリに記憶されるように、コンテンツアドレスに基づき体系化し得る。他の実施形態において、ファイルシステムは、時間的に互いに近接して記憶された単位コンテンツが、同じディレクトリに記憶されるように、記憶の時間に基づき体系化し得る。コンテンツアドレス及び記憶の時間に基づき体系化されたファイルシステムの例については、下表１にリスト化した出願に述べるが、本発明の実施形態は、これらの又はあらゆる特定のファイルシステム方式に限定されない。
【００１９】
要求された単位コンテンツをそのコンテンツアドレスによって識別する読出し要求に対して、ＣＡＳインターフェイス１０５ａは、要求された単位コンテンツが記憶されているファイルのファイルシステム位置を（例えば、そのコンテンツアドレスを用いて）決定し得る。ＣＡＳインターフェイス１０５ａがファイル（又は複数のファイル）にアクセスするのに応じて、ファイルシステム１０７ａは、ファイル（又は複数のファイル）が記憶されているファイルシステム位置を、単位コンテンツを含むファイルが記憶されているブロック記憶アドレス（物理的又は論理的アドレスのいずれか）に変換し得る。そして、ディスクマネージャ１０９ａは、ディスクアレイ１１１ａから単位コンテンツを検索し得る。
【００２０】
上記例は、コントローラ１０３ａ上のＣＡＳインターフェイス１０５ａによる読み出し及び書き込み要求の処理について述べている。ディスクアレイ１１１ｂ上のコンテンツにアクセスせよというコントローラ１０３ｂ上のＣＡＳ１０５ｂによって受信された読み出し及び書き込み要求は、同様に処理し得ることを認識されるべきである。
【００２１】
一実施形態に基づき、単位コンテンツは、データの破損及び／又はハードウェア故障に対する保護を提供する基本記憶システムに記憶し得る。例えば、ディスクアレイ１１１ａ又は１１１ｂのディスクの１つに記憶されたデータが破損した場合、破損データを再構築できることが望ましい。更に、ディスクアレイ１１１ａ又は１１１ｂの１つ又は複数のディスクあるいはコントローラ１０３ａ又は１０３ｂの１つが、（例えば、ハードウェア故障のために）故障した場合、データへのアクセスの提供を継続できることが望ましい。
【００２２】
破損及びハードウェア故障に対する保護は、何らかの適切なやり方で実施してよく、本発明は、この点において限定されない。一実施形態に基づき、本発明の態様は、ディスクマネージャ１０９ａ及び１０９ｂが、冗長アレイ独立ディスク（ＲＡＩＤ）技術を用いて、破損に対する保護を行う記憶システム上に実現し得る。即ち、ディスクアレイ１１１ａ及び１１１ｂは、ＲＡＩＤディスクアレイであり得る。ＲＡＩＤディスクアレイは、１つの論理的なユニットに組み合わせられるアレイ状の物理的記憶装置（例えば、ディスク）である。従って、例えば、図１において、５つの異なるディスクドライブの代わりに、（ＲＡＩＤ機能を実現し得る）ディスクマネージャ１０９ａは、単一の論理ユニット番号（ＬＵＮ）をファイルシステム１０７ａに提示する。また、ＲＡＩＤ機能は、アレイの複数ディスク間でのデータのストライピング及びパリティ情報の記憶を行う。即ち、書き込み動作の処理時、要求に定められたコンテンツは、アレイの２つ以上のディスク間でストライピングし得る。
【００２３】
更に、パリティ情報は、コンテンツに対して演算され、ディスクアレイに記憶し得る。パリティ情報は、書き込まれるコンテンツの１つ又は複数の破損したビットを再構築するために用い得る情報である。従って、例えば、単位コンテンツが、ファイルシステム１０７ａのファイルに書き込まれる場合、ファイルシステム１０７ａは、単位コンテンツが記憶される予定の対応するブロックアドレスを決定し得る。ファイルシステム１０７ａは、ディスクアレイ１１１ａを単一の論理的ユニットと見なし、個々の記憶装置の集合体と見なさないことから、このブロックアドレスは、単位コンテンツのコンテンツが最終的に記
憶されるディスクアレイのディスク上の物理的ブロック又はセクタに直接対応しない論理アドレスであってよい。ディスクマネージャ１０９ａは、ファイルシステムによって用いられる論理ブロックアドレスを、単位コンテンツのコンテンツがストライピングされるディスクアレイ１１１ａのディスク上の一組のブロックアドレスにマッピングし得る。
【００２４】
本発明の態様は、任意の適切なエラー補正及び／又は保護を用いる（任意レベルのＲＡＩＤ技術を含む）記憶システム上に、あるいは、エラー補正及び／又は保護そのものを提供する記憶システム上に実現可能であり、本発明は、この点において限定されない。エラー補正及び／又は保護そのものを提供する記憶システム上に実現された場合、エラー補正及び／又は保護は、ＣＡＳインターフェイスが依拠し得る。即ち、元々ＣＡＳシステムとして実現された記憶システムは、データ破損及び／又は喪失に対して保護するメカニズムを備え得る。しかしながら、基本ブロックＩ／Ｏ記憶システムにＣＡＳインターフェイスを設ける場合、ブロックＩ／Ｏ記憶システムのエラー補正及び／又は保護メカニズム（例えば、ＲＡＩＤ）は、ＣＡＳインターフェイスが、追加のエラー補正及び／又は保護を設ける必要がないように用い得る（幾つかの実施形態では必要な場合もある）。
【００２５】
更に、幾つかの実施形態において、記憶される単位コンテンツは、１つのコントローラによって管理されるディスクアレイが、異なるコントローラによって管理される他方のディスクアレイにミラーリングされた記憶システムに記憶し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、いずれか特定の種類のミラーリング手法を用いる記憶システムでの使用やミラーリングの採用に全く限定されない。例えば、コントローラ１０３ａが、単位コンテンツを記憶せよという要求を受信した場合、単位コンテンツは、ファイルシステムにファイルとして記憶してよく、また、単位コンテンツは、キャッシュ（図示せず）メモリーに入れてよい。そして、コントローラ１０３ａは、コントローラ１０３ｂによって管理されるディスクアレイ（例えば、ディスクアレイ１１１ｂ）にコンテンツを記憶せよという要求をコントローラ１０３ｂに送ってよい。コンテンツは、コントローラ１０３ａによってキャッシュからディスクアレイ１１１ａに非同期にデステージし得る。従って、ディスクアレイ１１１ａに記憶された単位コンテンツのミラーコピーが、ディスクアレイ１１１ｂに記憶される。その結果、ディスクアレイ１１１ａ又はコントローラ１１１ａが故障した場合、コンテンツは、コントローラ１１１ｂ及び／又はディスクアレイ１１１ｂを通してアクセス可能であり得る。
【００２６】
一実施形態において、本発明の態様は、図２に示す記憶システム２０１等のマルチプロセッサ記憶システムに用い得るが、ここで、記憶システム２０１には、ディスクアレイ１１１ａ及び１１１ｂ並びにコントローラ１０３ａ及び１０３ｂの双方が含まれ、コントローラ１０３ａ及び１０３ｂは、別々のプロセッサとして又は同じプロセッサの別々の処理コアとして実装し得る。従って、双方のディスクアレイに、記憶システムの各コントローラが物理的にアクセス可能である（例えば、記憶システムの各ディスクは、同じＳＣＳＩ又はファイバチャネルバスに物理的に接続し得る）。
【００２７】
記憶システム２０１等の幾つかの記憶システムでは、コントローラ１０３ａが、ディスクアレイ１１１ａの記憶装置だけにアクセスするように構成してよく、また、コントローラ１０３ｂが、ディスクアレイ１１１ｂの記憶装置だけにアクセスするように構成してよい。このことは、各コントローラが他方のコントローラのＩ／Ｏ動作と干渉するのを防止するように行い得る。例えば、コントローラ１０３ａが、ディスク上のブロックを読み出そうとし、同時に、コントローラ１０３ｂが、同じブロックを書き込もうとしている場合、コントローラ１０３ａは、正しいデータを読み出せないことがある。この問題は、ディスクアレイ１１１ａ及び１１１ｂが、ＲＡＩＤディスクアレイである場合、更に複雑であり得る。例えば、コントローラ１０３ａが、アレイの１つのディスクに記憶されたストライプのブロックを修正し、同時に、コントローラ１０３ｂが、異なるディスクに記憶され
た同じストライプの異なるブロックを修正する場合、双方のコントローラは、異なる誤ったパリティ値を用いて、ストライプ用のパリティ情報を同時に更新しようとする。他の例として、ＲＡＩＤアレイのディスクの１つが、機能しておらず、コントローラ１０３ｂが、ストライプの他方のブロック及びストライプ用のパリティ情報を用いて、機能していないディスクに記憶されたデータを再構築しようとしており、また、同時に、コントローラ１０３ａが、同じストライプのブロックの１つを修正している場合、コントローラ１０３ｂは、コントローラ１０３ａによって書き込まれた新しいデータを読み出すが、コントローラ１０３ａがまだ更新していない古いパリティ情報を読み出すことがある。これによって、コントローラ１０３ｂは、機能していないディスク上のデータを誤って再構築することがある。
【００２８】
従って、幾つかの実施形態では、記憶システムのディスクを各コントローラに割当て、その一方のコントローラが、他方のコントローラのディスク操作と干渉しないようにできる。例えば、図２において、ディスクアレイ１１１ａをコントローラ１０３ａに割当て、ディスクアレイ１１１ｂをコントローラ１０３ｂに割り当て得る。そのような割当ては、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。例えば、ユーザ又は管理者は、或るディスクが各コントローラに割り当てられるように、記憶システム２０１を構成し得る。従って、各コントローラは、それに割り当てられるディスクアレイだけにアクセスする。
【００２９】
一実施形態において、ＣＡＳインターフェイス１０５ａ及び１０５ｂは、各々、それ自体をアプリケーションプログラム１０１に別個のノードとして提示する。即ち、各コントローラ１０３は、別々にアドレス指定可能であり、また、それ自体のネットワークアドレス（例えば、ＩＰアドレス）を有し、このアドレスにおいて、ＣＡＳインターフェイスは、アプリケーションプログラムからアクセス要求を受信し得る。図２の例において、ＣＡＳインターフェイスは、基本ブロックＩ／Ｏ記憶機能を実行するソフトウェア（即ち、ディスクマネージャ）と同じ場所に配置される。従って、幾つかの実施形態において、ＣＡＳインターフェイス及びディスクマネージャは、同じコントローラ（例えば、プロセッサ）上で動作するソフトウェアエンティティであってよい。
【００３０】
図２に示すように、ファイルシステム１０７も各コントローラ１０３上に設け得る。更に詳細に後述するように、ＣＡＳインターフェイスは、ファイルシステムに単位コンテンツを記憶し得るが、これは、ファイルシステムを動作させるコントローラが管理する基本ディスクアレイにマッピングされる
出願人は、エンティティ（例えば、アプリケーションプログラム又はホストコンピュータ）が、コンテンツアドレス指定可能な単位コンテンツを記憶システム２０１に記憶する場合、どのディスクアレイ上に及び／又は記憶システム２０１のどのコントローラによって、単位コンテンツが記憶されるかを追跡する処理から記憶エンティティを解放するのが望ましいことを認識している。例えば、アプリケーションプログラムが、記憶システム２０１のコントローラ１０３ａに単位コンテンツを送って記憶する場合、コントローラ１０３ａは、物理的にディスクアレイ１１１ａに単位コンテンツを記憶し得る。アプリケーションプログラムが、記憶された単位コンテンツを記憶システム２０１から後で検索しようとする場合、アプリケーションプログラムが、単位コンテンツの読出し要求を、その単位コンテンツの書き込み要求を処理した同じコントローラに送るように要求するのが煩わしいことがある。従って、一実施形態では、記憶システム２０１にアクセスするエンティティは、どのコントローラ又は記憶システム２０１のどのディスクアレイが、記憶システムに以前書き込まれた単位コンテンツを記憶しているか追跡する必要がない。このことは、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。
【００３１】
例えば、エンティティ（例えば、図１のアプリケーションプログラム１０１）は、単位
コンテンツを記憶せよという書込み要求を記憶システム２０１に送る場合、その要求をコントローラ１０３ａ又は１０３ｂのいずれに送ってもよい。エンティティは、何らかの適切なやり方で、要求を記憶するコントローラを選択してよく、本発明は、この点において限定されない。例えば、エンティティは、後続の要求が送られるコントローラを交互に選択する方式等のロードバランシング方式を用いてコントローラを選択してよい（しかしながら、いずれか適切なロードバランシング方式を用いてよい）。要求を受信するコントローラ１０３は、そのそれぞれのディスクアレイ１１１にそれを記憶し得る。エンティティは、記憶システム２０１から単位コンテンツを後で検索したい場合、単位コンテンツのコンテンツアドレスを指定する読出し要求をコントローラ１０３ａ又は１０３ｂのいずれかに送ってよい。読出し要求を受信するコントローラは、そのディスクアレイに単位コンテンツが記憶されているかどうか判断し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、コントローラは、そのファイルシステム１０７を検索して、単位コンテンツがそこに記憶されているかどうか判断し得る。読出し要求を受信するコントローラが、要求された単位コンテンツを記憶する場合、そのコントローラは、読出し要求を処理し、要求された単位コンテンツをエンティティに返し得る。読出し要求を受信するコントローラが、要求された単位コンテンツを記憶しない場合、そのコントローラは、要求された単位コンテンツを他方のコントローラから読み出させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。
【００３２】
一実施形態において、要求された単位コンテンツを他方のコントローラから読み出させる場合、読出し要求を受信したコントローラは、要求側エンティティを適切なコントローラに転送し得る。このことは、何らかの適切なやり方で行い得る。例えば、受信側コントローラは、他方のコントローラに読出し要求を再送せよという応答を要求側エンティティに送り得る。
【００３３】
他の実施形態において、読出し要求を受信したコントローラは、他方のコントローラがアクセス要求に応答するように指示することによって、要求された単位コンテンツを他方のコントローラから読み出させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、コントローラ１０３ａは、それが記憶していない単位コンテンツに対する読出し要求を受信すると、その読出し要求をコントローラ１０３ｂに中継し得る。そして、コントローラ１０３ｂは、要求された単位コンテンツを検索し、要求側エンティティに直接応答するか又は要求を受信したコントローラ１０３ａに単位コンテンツを渡してよいが、この場合、コントローラ１０３ａは、それを要求側エンティティに返し得る。
【００３４】
コンテンツが記憶システム２０１に書き込まれるにつれて、ディスクアレイ１１１ａ及び１１１ｂのディスクは、最終的に満杯になり得る。出願人は、記憶システムが単位コンテンツを格納した時一度に記憶システム２０１の記憶容量を増やすのが望ましいであろうと認識している。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。一実施形態では、ユーザは、追加の記憶装置を受け入れて用いるために、記憶システムを手動で構成しなければならない。他の実施形態では、追加の記憶装置は、記憶システムに（例えば、追加の記憶装置を既存のＳＣＳＩバス又はファイバチャネルループに接続することによって）追加してよく、また、これらの追加の記憶装置は、記憶システムによって検出され、自動的に構成され得る。例えば、図３のプロセスに示すように、段階３０１において、システムに増設された追加の記憶装置は、記憶システムによって検出し得る。いずれか適切な種類の追加の記憶装置を用いてよく、本発明は、この点において限定されない。一実施形態において、追加された記憶装置は、ディスクアレイ筐体（ＤＡＥ）であってよく、これは、ファイバチャネル接続性を有するディスクボックスである。
【００３５】
追加の装置が検出された後、プロセスは、段階３０３に続き、そこで、バスアドレス（例えば、ＬＵＮ）を追加の記憶装置に対して構成し得る。即ち、各ディスクには、ＬＵＮが割り当てられ、各ＬＵＮは、記憶システムのコントローラの一方に割り当て得る。追加された記憶装置がＤＡＥ内にある実施形態では、ＬＵＮは、ＤＡＥの各ディスクに対して予め構成してよく、従って、各ディスクに対してＬＵＮを構成する必要がない。
【００３６】
次に、プロセスは、段階３０５に続き、そこで、ＲＡＩＤは、追加の記憶装置用に構成し得る（即ち、記憶装置をＲＡＩＤアレイにグループ化し、ＲＡＩＤ保護のレベルを選択し、新しい各ＲＡＩＤアレイ用のＬＵＮを提示し得る）。更に、ＲＡＩＤアレイのディスク用のＬＵＮとして機能する仮想ＬＵＮを構成し提示し得る。もちろん、本発明は、ＲＡＩＤを用いる記憶システム上での用途に限定されず、他のエラー補正及び／又は保護方式を用いてよい（用いなくてもよい）。そして、プロセスは、段階３０７に続き、そこで、新しいファイルシステムを生成してマウントし、そのファイルシステムを介して、追加の記憶装置に単位コンテンツを記憶させ得る。
【００３７】
追加の記憶装置の構成は、任意の適切なエンティティによって実施し得る。一実施形態では、コントローラ１０３ａ及び１０３ｂ上で動作するユーティリティソフトウェアが、追加の記憶装置の構成を担い得る。
【００３８】
図３の例では、追加の記憶装置に単位コンテンツを記憶するための新しいファイルシステムが生成される。しかしながら、本発明は、追加の記憶装置に単位コンテンツを記憶させる追加のファイルシステムを生成することに限定されず、既存のファイルシステム１０７ａ及び１０７ｂの１つ又は複数を拡張して、追加の記憶装置を用いてよい。追加の記憶装置を用いるために拡張可能な任意のファイルシステムを用いてよく、本発明は、この点において限定されない。多くのファイルシステムは、ファイルシステムに記憶し得るファイルの数を制限する最大オブジェクト個数を有する。従って、ファイルシステムが追加の記憶装置に合わせて拡張可能な場合であっても、最大オブジェクト個数に達しないように、新しいファイルシステムを生成するのが望ましいことがある。
【００３９】
場合によっては、システムに追加の記憶装置を増設できないことがある。即ち、例えば、ＳＣＳＩ及びファイバチャネル規格は、バス又はループでサポートし得る装置の数に制限を課す。この制限に達すると、記憶システムに追加の記憶装置を増設できないことがある。一実施形態に基づき、記憶システム（即ち、図２の記憶システム２０１）に追加の記憶装置を増設するよりもむしろ（又はそれに加えて）、追加の記憶システムを用い得る。例えば、図４に示すように、アプリケーションプログラム４０１は、記憶システム４０３ａ又は４０３ｂのいずれかに単位コンテンツを記憶し得る。各記憶システム４０３は、２つのコントローラ（例えば、記憶システム４０３ａの４０５ａ及び４０７ａ、及び記憶システム４０３ｂの４０５ｂ及び４０７ｂ）を有してよく、また、各コントローラには、複数の記憶装置（例えば、４０９ａ、４１１ａ、４０９ｂ、及び４１１ｂ）を割り当て得る。
【００４０】
一実施形態において、記憶システム４０３ａ及び４０３ｂには、単位コンテンツがどの記憶装置又はディスクアレイに記憶されているかにかかわらず、エンティティ（例えば、アプリケーションプログラム４０１）が、単位コンテンツを読み出すためのアクセス要求をシステムの任意のコントローラに送信できるようにする記憶システムの連合体が含まれる。このことは、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。ＣＡＳシステムの連合体を生成する例については、下表１にリスト化した米国特許出願連番第１０／７８７，３３７号及び１０／７８７，６７０号に更に詳述されている。
【００４１】
一実施形態において、アクセス要求がコントローラによって受信される場合、コントローラは、まず、要求された単位コンテンツを記憶しているかどうか判断し得る。そうであれば、それは、アクセス要求を処理し得る。そうでない場合、それは、他のコントローラにメッセージを一斉送信して、いずれか他のコントローラが、要求された単位コンテンツを記憶しているかどうかについて問い合わせる。要求された単位コンテンツを記憶しているコントローラは、一斉送信メッセージを発したコントローラ（即ち、そのアクセス要求を最初に受信したコントローラ）に応答して、それが、要求された単位コンテンツを記憶していることを示し得る。そして、アクセス要求を最初に受信したコントローラは、要求側エンティティに応答を送り、単位コンテンツを記憶しているコントローラに要求側エンティティが要求を再送するように指示し得る。
【００４２】
他の実施形態において、アクセス要求を最初に受信したコントローラが、一斉送信メッセージを送り、どのコントローラが単位コンテンツを記憶しているか判断した後、アクセス要求を最初に受信したコントローラは、単位コンテンツを記憶しているコントローラにアクセス要求を中継してよく、また、単位コンテンツを記憶しているコントローラは、アクセス要求を最初に受信したコントローラに単位コンテンツを返し得る。そして、アクセス要求を最初に受信したコントローラは、要求側エンティティに単位コンテンツを返し得る。他の選択肢として、単位コンテンツを記憶しているコントローラは、単位コンテンツを要求側エンティティに直接返し得る。
【００４３】
図４のコンピュータシステム例では、単一の追加の記憶システム（即ち、記憶システム４０３ｂ）が、追加され、元の記憶システム（即ち、記憶システム４０１）に関連して追加の記憶スペースが提供された。しかしながら、多重記憶システムの連合体を用いることに関する本発明の態様は、この点において限定されず、任意の適切な数の記憶システムを用いてよい。
【００４４】
本発明の一実施形態において、記憶システムの１つのコントローラが故障した場合、故障したコントローラに割り当てられた記憶装置に記憶された単位コンテンツには、記憶システムの他方のコントローラを介してアクセスし得る。このことは、何らかの適切なやり方で行ってよく、本発明の態様は、いずれか特定の具体化手法に限定されない。
【００４５】
例えば、一実施形態において、記憶システムの各コントローラは、他方の記憶プロセッサが依然として機能しているかどうかを監視し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、各コントローラは、“ハートビート”メッセージを定期的に送り、他方のコントローラが依然として機能しているかどうか判断するハートビートユーティリティを有し得る。コントローラは、ハートビートメッセージを受信すると、メッセージを発したコントローラに応答して、それが依然として機能していることを示し得る。コントローラが“ハートビート”メッセージへの応答を停止すると、他方のコントローラは、非応答側コントローラがもはや機能していないと想定し得る。一方のコントローラは、一旦、記憶システムの他方のコントローラがもはや機能していないと判断すると、故障したコントローラに割り当てられた記憶装置に“侵入”して、故障したコントローラを介して記憶された単位コンテンツへのアクセスを提供し続け得る。例えば、図５に示すように、記憶システム５０１には、コントローラ５０３ａ及びコントローラ５０３ｂが含まれる。ディスクアレイ５０５は、最初に、コントローラ５０３ａに割り当てられ、ディスクアレイ５０７は、最初に、コントローラ５０３ｂに割り当てられる。何らかの故障の前には、ディスクアレイ５０５上の単位コンテンツへのアクセス用の唯一のアクティブな経路は、コントローラ５０３ａを介しており、また、ディスクアレイ５０７上の単位コンテンツへのアクセス用の唯一のアクティブな経路は、コントローラ５０３ｂを介している。コントローラ５０３ｂが（例えば、ハードウェア故障
のために）故障した場合、コントローラ５０３ｂを介したディスクアレイ５０７への（コントローラ５０３ｂとディスクアレイ５０７との間の破線によって示すような）アクティブな経路は、もはや存在しない。一実施形態によれば、コントローラ５０３ａを介したディスクアレイ５０７への以前アクティブでない経路は、（ディスクアレイ５０７とコントローラ５０３ａとの間の破線によって示すように）確立し得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。一実施形態において、このことは、自動的に（即ち、ユーザ又は管理者の介在なしで）、また、コンテンツにアクセスするエンティティに対して透明な方法で実施し得るが、本発明の全ての態様は、この点において限定されない。
【００４６】
図６は、一実施形態に基づく、コントローラ（例えば、５０３ａ）と故障したコントローラに以前割り当てられたディスクアレイ（例えば、ディスクアレイ５０７）との間の経路をアクティブにするためのプロセスの例である。段階６０１において、機能しているコントローラ（即ち、コントローラ５０３ａ）は、記憶システムの他方のコントローラ（例えば、コントローラ５０３ｂ）がもはや機能していないと判断する。このことは、何らかの適切なやり方で（例えば、ハートビート手法を用いて）行ってよく、本発明は、この点において限定されない。そして、プロセスは、段階６０３に続き、そこで、機能しているコントローラが、機能していないコントローラに割り当てられた記憶装置（例えば、ＬＵＮ）にアクセスできるように再構成される。上述したように、記憶システムの各記憶装置には、双方のコントローラが、物理的にアクセス可能であり、各記憶装置への物理的な接続（例えば、ＳＣＳＩバス又はファイバチャネルループ）には、各コントローラがアクセス可能である。しかしながら、各コントローラは、それに割り当てられた記憶装置のみにアクセスして、他方のコントローラの動作と干渉するのを回避するように構成されていることがある。コントローラの内の１つが故障した場合、この構成は、無効になり、機能しているコントローラは、全ての記憶装置（例えば、ＬＵＮ）へのアクセスが許されるように再構成し得る。
【００４７】
そして、プロセスは、段階６０５に続き、そこで、故障したコントローラのファイルシステムは、機能しているコントローラにマウントされる。これによって、故障したコントローラのファイルシステムへのファイルシステムアクセスは、機能しているコントローラによって処理され得る。例えば、機能しているコントローラ５０３ａは、ディスクアレイ５０７に記憶された単位コンテンツにアクセスせよというＣＡＳ要求を受信し得る。
【００４８】
コントローラ５０３ａは、要求に指定されたコンテンツアドレスを用いて、新しくマウントされたファイルシステム（即ち、機能していないコントローラ５０３ｂのファイルシステム）における単位コンテンツの位置を判断し得る。そして、ファイルシステム位置は、ディスクアレイ５０７における要求された単位コンテンツの物理的な位置にマッピングし得る。
【００４９】
上述した例において、ＣＡＳインターフェイス１０５及びファイルシステム１０７（図１）は、ディスクマネージャ１０９（図１）と同じ場所に（即ち、同じコントローラに）配置される。しかしながら、本発明は、この点において限定されず、ＣＡＳインターフェイス１０５、ファイルシステム１０７、及びディスクマネージャ１０９は、同じ場所に配置される必要はなく、これらのエンティティは、異なるノード及び／又はプロセッサに配置してよい。例えば、図７に示すように、ＣＡＳインターフェイス７０５ａ及びファイルシステム７０７ａは、ノード７０３ａ（ノードＡ）に配置されるが、これは、ディスクマネージャ７０９ａが配置されている記憶システム７１５とは別の処理資源を備えた別のコンピュータである。同様に、ＣＡＳインターフェイス７０５ｂ及びファイルシステム７０７ｂは、ノード７０３ｂ（ノードＢ）に配置されが、これもまた、記憶システム７１５とは別の処理資源を備えた別のコンピュータである。ノード７０３ａ及び７０３ｂは、ＣＡ
Ｓインターフェイスを介して記憶システム７１５へのアクセスを提供することから、これらのノードは、本明細書において、ＣＡＳインターフェイスノード又はアクセスノードと称し得る。コントローラ７１３ａ及び７１３ｂは、基本記憶装置７１１ａ及び７１１ｂにアクセスすることから、これらのコントローラは、本明細書において、記憶ノードと称し得る。ノードＡ及びＢは、何らかの適切なやり方で実現し得る。例えば、これらのノードは、同じボックス又はコンピュータ内の別のプロセッサ上に、異なるボックス又はコンピュータ内の別のプロセッサ上に、又は単一のプロセッサとしてさえも実現し得る。
【００５０】
図７のシステムにおいて、ノード７０３ａは、記憶システム７１５のコントローラ７１３ａへの直接接続を有し、コントローラ７１３ｂへの接続を有さない。同様に、ノード７０３ｂは、コントローラ７１３ｂへの直接接続を有し、コントローラ７１３ａへの接続を有さない。アプリケーションプログラム７０１は、ノード７０３ａ又はノード７０３ｂのいずれかにアクセス要求を送り、アクセス要求を受信するノードは、要求に記憶された要求単位コンテンツが、そのノードのファイルシステム（７０７ａ又は７０７ｂ）に記憶されているかどうか判断し得る。そうであれば、ノードは、ファイルシステム位置をブロックアドレスにマッピングして、それが接続を有するコントローラ７１３に要求を送り、この要求によって、それに割り当てられた記憶装置（１つ又は複数）（即ち、７１１ａ又は７１１ｂ）から単位コンテンツを検索し得る。アクセス要求を受信するノードは、要求された単位コンテンツを記憶していない場合、他方のノードに要求を受信させ得る。このことは、何らかの適切なやり方で行ってよく、本発明は、この点において限定されない。例えば、一実施形態では、要求を受信するノードは、応答を送り、要求を発したエンティティ（例えば、アプリケーションプログラム７０１）を他方のノードに転送し、そして、エンティティは、もう１つの要求を他方のノードに直接発し得る。他の実施形態において、要求を発したノードは、それが単位コンテンツを記憶していないと判断した後、要求を他方のノードに中継し得る。これに応じて、他方のノードは、要求された単位コンテンツを、要求を受信したノードに返し、要求を受信したノードは、要求側エンティティに単位コンテンツを転送し得る。他の選択肢として、単位コンテンツを記憶しているノードは、単位コンテンツを要求エンティティに直接返し得る。
【００５１】
図７のコンピュータシステムには、更に、追加記憶装置の構成を支援するユーティリティノード（図示せず）を含み得る。例えば、ユーティリティノードは、ディスクマネージャ７０９ａ及び７０９ｂを随時ポーリングして、何らかの新しい記憶装置が記憶システム７１５に追加されているかどうか判断する。新しい記憶装置がある場合、ユーティリティノードは、ディスクマネージャ７０９ａ及び／又はディスクマネージャ７０９ｂに指示して、新しいＬＵＮ（１つ又は複数）を構成し得る。そして、ユーティリティノードは、新しいファイルシステム又は新しい多重ファイルシステムを生成してノード７０３ａ及び／又は７０３ｂ上にマウントし得るが、これらは、追加の記憶装置にマッピングされる。これによって、アクセスノードは、新しい記憶装置が提供する記憶スペースを用い得る。
【００５２】
上述したように、コンピュータシステムにもう１つの記憶システムを追加して、コンピュータシステムの全体的な記憶容量を増やすのは、時として望ましい。もう１つの記憶システムが、コンピュータシステムに追加され、ＣＡＳインターフェイス及びファイルシステムが、記憶システムに配置されない場合、ＣＡＳインターフェイス及びファイルシステムを各々実行する２つの追加ノードをコンピュータシステムに追加して、追加の記憶システム上の各コントローラにＣＡＳインターフェイスを提供し得る。例えば、一実施形態では、新しい各記憶システムが、上述したものと同様に構成され、２つのコントローラを有してよく、また、ＣＡＳインターフェイス及びファイルシステムを有する別のノード（例えば、サーバ）を各コントローラ用に追加し得る。
【００５３】
図７の例では、各ＣＡＳインターフェイスノードは、コントローラの１つへの直接接続
を有しており、単位コンテンツに対するアクセス要求は、単位コンテンツを記憶したコントローラによって処理される。しかしながら、本発明は、この点において限定されない。例えば、図８に示す一実施形態において、ＣＡＳインターフェイスノードは、記憶システム（１つ又は複数）のディスクコントローラ（即ち、コントローラ８１３ａ及び８１３ｂ）をＣＡＳインターフェイスノード及びサーバ（即ち、ノード８０１ａ、８０１ｂ、及び８０１ｃ）に結合するネットワーク（例えば、記憶エリアネットワーク（ＳＡＮ））を介して、１つ又は複数の記憶システム（図８に１つだけ示す）にアクセスし得る。従って、図８のシステムでは、各ノード８０１は、各コントローラ８１３と通信を行い得る。更に、ノード８０１は、互いに通信を行い得る。従って、例えば、ノード８０１ａが故障した場合、ノード８０１ｂ及び８０１ｃは、それらの内のどれが、ノード８０１ａを（例えば、ノード８０１ａのファイルシステムをマウントすることによって）引き継ぐか交渉し得る。更に、新しい記憶装置又は新しい記憶システムがシステムに追加される場合、ノード８０１は、どのノード８０１が、ファイルシステムを追加の記憶装置にマッピングするか判断し得る。
【００５４】
本発明の一実施形態において、各ノード８０１が別のファイルシステム８０７を有するよりもむしろ、ファイルシステム８０７は、ネットワーク上の多数のノードによって共有される分散ファイルシステムであってよい。従って、各ノードは、同じ分散ファイルシステムをマウントし、単一のノードによるファイルシステムへのあらゆる修正（例えば、ファイル又はディレクトリの生成、削除、又は修正）が、他の全てのノードによってマウントされたファイルシステムにおいて反映される。その結果、分散ファイルシステムに記憶された全ての単位コンテンツには、各ノード８０１がアクセス可能である。従って、アクセス側エンティティ（例えば、アプリケーションプログラム）は、アクセス要求をコンピュータシステムの任意のノード８０１に送り、そのノードは、単位コンテンツのファイルシステム位置を判断し、ファイルシステム位置をブロックアドレス（例えば、ＬＵＮ）にマッピングし、その特定のＬＵＮを提示する記憶システム８１５のコントローラ８１３にアクセス要求を送ることが可能である。各ノード８０１は、各単位コンテンツのファイルシステム位置を判断することが可能なことから、また、各ノード８０１は、各コントローラ８１３へのアクセスを有することから、他の実施形態に関連して上述したアクセス要求の転送又は中継は、不要である。
【００５５】
分散ファイルシステムは、任意の利用可能な分散ファイルシステム技術の使用を含み、何らかの適切なやり方で実現してよく、本発明は、この点において限定されない。
図８の例には、３つのノード８０１（即ち、アクセスノード）、及び２つのコントローラ（即ち、記憶ノード）を有する１つの記憶システムが含まれる。しかしながら、ＣＡＳアクセスノードと記憶システムとの間のネットワークの使用を伴う本発明の態様は、この点において限定されず、任意の適切な数のアクセスノードを用いてよく、また、コンピュータシステムには、任意の適切な数の記憶システムを含み得る。
【００５６】
一実施形態において、追加のユーティリティノードは、アクセス要求を処理せずに、むしろ、記憶システムによってアクセスされる単位コンテンツに他の操作を実施して、アクセス及び／又は記憶ノードの処理資源を節約するシステムに含み得る。例えば、記憶システムに記憶された１つ又は複数の単位コンテンツのコピーを行ってユーティリティノードに記憶し得る。従って、ユーティリティノードは、アクセスノード又は記憶ノードの処理資源を用いることなく、データに対する操作を実施し得る。ユーティリティノードは、データに対する任意の適切な操作を実施してよく、本発明は、この点において限定されない。そのような操作には、例えば、単位コンテンツが、破損又は修正されたかどうかの判断を含み得るが、これは、何らかの適切なやり方で行い得る。記憶システムが、コピーを効率的に生成する１つ又は複数のユーティリティ（例えば、ＳＮＡＰコピー）を備える場合、これらのユーティリティを用いて、ユーティリティノード用のコピーを生成し得る。
【００５７】
上記例において、コンピュータシステムには、単一のユーティリティノードだけが含まれる。しかしながら、本発明は、この点において限定されず、本システムには、２つ、３つ、又はいずれか他の適切な数のユーティリティノードを含み得る。
【００５８】
一実施形態において、単位コンテンツが修正又は破損されたかどうか判断する場合、ユーティリティノードは、単位コンテンツのコンテンツを用いてコンテンツアドレスを再処理し、また、再処理されたコンテンツアドレスが、単位コンテンツに元々割り当てられたコンテンツアドレスに一致するかどうかを判断し得る。ユーティリティノードによって実施し得る他の操作は、ごみ集めである。即ち、ユーティリティノードは、もう使用されていない削除すべき何らかの単位コンテンツがあるかどうか判断し得る。ごみ集めは、何らかの適切なやり方で実施し得る。コンテンツアドレス指定可能な単位コンテンツに対して、ごみ集めを実施し得る方法の例は、下表１にリスト化した出願に記載されている。ユーティリティノードによって実施し得る他の操作の例は、保持期間が過ぎたかどうか判断することである。幾つかの実施形態において、単位コンテンツには、単位コンテンツが削除されない時間期間を規定する保持期間を割り当て得る。保持期間については、下表１にリスト化した出願に更に詳述する。ユーティリティノードは、どの単位コンテンツが、保持期間を過ぎており、従って、削除に供するのが可能か判断し得る。
【００５９】
上述した幾つかの例において、コンテンツアドレス指定可能な記憶手法及びコンテンツアドレスは、単位コンテンツの記憶及びアクセスに用いられる。しかしながら、本発明は、この点において限定されず、任意の記憶手法及びアドレスを用い得る。幾つかの実施形態において、オブジェクトアドレス指定可能記憶及びオブジェクト識別子を用い得る。この場合、ＣＡＳの場合と同様に、単位コンテンツには、オブジェクトアドレスが与えられるが、オブジェクトアドレスは、単位コンテンツのコンテンツを用いて演算する必要はない。即ち、コンテンツアドレスは、特定の種類のオブジェクト識別子と考えてよく、この場合、アドレスは、単位コンテンツのコンテンツを用いて計算される。
【００６０】
オブジェクトアドレス指定可能記憶では、単位コンテンツは、そのオブジェクト識別子を用いて、（例えば、ホストコンピュータが単位コンテンツへのアクセスを要求することによって）識別可能であり、また、オブジェクト識別子は、（そうである必要はないが）単位コンテンツが記憶されている物理的又は論理的位置とは独立であり得る。しかしながら、ホストコンピュータから見ると、オブジェクト識別子は、単位コンテンツがどこに記憶されるか規制しない。
【００６１】
本発明の上述した実施形態は、任意の適切なコンピュータ又はシステム上に実現し得る。適切なコンピュータ及び／又はシステムの例については、下表１にリスト化した特許出願（総称して“ＣＡＳ出願”）に記載されており、その各々を本明細書に引用・参照する。これらの出願に記載されたコンピュータ及びシステムは、本発明の実施形態を実現し得るコンピュータ及びシステムの単なる例であり、本発明は、決して、これらの如何なるコンテンツアドレス指定可能な記憶システム上での具体化に限定されたり、又はコンテンツアドレス指定可能な記憶システムに限定されたりしないことを認識されるべきである。
【００６２】
【表１】
2009522656.tif 000003
2009522656.tif 000004
2009522656.tif 000005
2009522656.tif 000006
2009522656.tif 000007
本発明の上述した実施形態は、数多くの任意のやり方で実現し得る。例えば、上記実施形態は、ハードウェア、ソフトウェア又はその組合せを用いて実現し得る。ソフトウェアで実現された場合、ソフトウェアコードは、単一のコンピュータに提供されるか又は複数のコンピュータ間に分散されるかにかかわらず任意の適切なプロセッサ又はプロセッサの集合体上で実行し得る。上述した機能を実施する任意の構成要素又は構成要素の集合体が、上述した機能を制御する１つ又は複数のコントローラと全般的に見なし得ることを認識されるべきである。１つ又は複数のコントローラは、数多くのやり方で、例えば、専用のハードウェアで、又は、上記機能を実施するマイクロコード又はソフトウェアを用いてプログラムされる汎用ハードウェア（例えば、１つ又は複数のプロセッサ）で、実現し得る。
【００６３】
この点において、本発明の実施形態の一実施例には、プロセッサ上で実行されると、本発明の実施形態の上述した機能を実施するコンピュータプログラム（即ち、複数の命令）で符号化された少なくとも１つのコンピュータ判読可能媒体（例えば、コンピュータメモリ、フロッピー（登録商標）ディスク、コンパクトディスク、テープ等）が含まれることを認識されるべきである。
【００６４】
コンピュータ判読可能媒体は、そこに記憶されたプログラムを任意のコンピュータ環境資源にロードして、本明細書で議論された本発明の態様を実現できるように、持ち運び可能である。更に、実行されると上述の機能を実施するコンピュータプログラムについての参照は、ホストコンピュータ上で走るアプリケーションプログラムに限定されないことを認識されるべきである。むしろ、用語「コンピュータプログラム」は、本明細書では一般的な意味で用いており、上述した本発明の態様を実現するようにプロセッサをプログラムするために用い得る任意の種類のコンピュータコード（例えば、ソフトウェア又はマイクロコード）を指す。
【００６５】
プロセスがコンピュータ判読可能媒体に実現される本発明の幾つかの実施形態によれば、コンピュータにより実現されたプロセスは、それらの実行中、（例えば、ユーザから）入力を手動で受け入れることを認識すべきである。
【００６６】
本明細書に用いられる術語及び用語は、説明の目的のためであり、限定的であると見なすべきではない。“含む”、“含まれる”、“有する”、“含有する”、“伴う”、及びそれらの派生語の用途は、その後に列記される項目及び追加の項目を包含しようとするものである。
【００６７】
本発明の幾つかの実施形態について詳細に述べたが、様々な修正及び改善が、当業者には、容易に起こるであろう。そのような修正及び改善は、本発明の精神及び範囲内にあるものとする。従って、上記の説明は、単に一例であり、限定するものではない。本発明は、以下の請求項及びそれらの等価物によってのみ限定される。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態に基づく、コンテンツアドレス指定可能な記憶（ＣＡＳ）インターフェイスが複数の記憶装置に設けられたコンピュータシステムを示す図。
【図２】本発明の一実施形態に基づく、同じ記憶システムに配置された図１のコントローラを示す図。
【図３】本発明の一実施形態に基づく、記憶システムに追加の装置を増設し、追加の装置を自動的に構成するための例示プロセスを示すフローチャート。
【図４】一実施形態に基づく多重記憶システムの連合体を示す図。
【図５】一実施形態に基づく、１つのコントローラが、他のコントローラに割り当てられた記憶装置に侵入し得る記憶システムを示す図。
【図６】機能していないコントローラに割り当てられた記憶装置に侵入するための例示プロセスを示すフローチャート。
【図７】一実施形態に基づく、ＣＡＳインターフェイスが記憶ディスク及びディスクマネージャと同じ場所に配置されていない記憶システムを示す図。
【図８】一実施形態に基づく、ＣＡＳインターフェイスが記憶ディスク及びディスクマネージャと同じ場所に配置されておらず、また、アクセスノード及び記憶ノードが記憶エリアネットワークによって結合される記憶システムを示す図。
【図１】
2009522656.tif 000008
【図２】
2009522656.tif 000009
【図３】
2009522656.tif 000010
【図４】
2009522656.tif 000011
【図５】
2009522656.tif 000012
【図６】
2009522656.tif 000013
【図７】
2009522656.tif 000014
【図８】
2009522656.tif 000015
【国際調査報告】
2009522656.tif 000016
2009522656.tif 000017
2009522656.tif 000018