(57)【要約】      （修正有）【課題】複数のストレージ装置タイプをサポートするのに好適なネットワーク接続ストレージシステム、装置、および方法を提供する。【解決手段】ネットワーク接続システム、装置、および、方法は、ファイバーチャンネルストレージ装置、ＡＴＡストレージ装置、シリアル接続ＳＣＳＩストレージ装置、シリアルＡＴＡストレージ装置、および、固体ストレージ装置のような複数のストレージ装置タイプを有するストレージ装置をサポートする。異なるストレージ装置タイプを有するそれぞれのストレージ装置は、一組の管理ルールに対応づけられる。管理ルールは、例えば、専用ストレージ装置を識別し、専用ストレージ装置を設定し、ディスクプロトコルメッセージを専用ストレージ装置に送信し、専用ストレージ装置から受信されたディスクプロトコルメッセージを処理し、そして、誤り条件および例外条件を処理するためのルールを含んでもよい。【選択図】図９
2010146586.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介してストレージサービスを提供するネットワーク接続ストレージサーバーを備えるネットワーク接続ストレージシステムであって、
該ストレージサーバーは、ディスク制御プロトコルを用いて複数の専用ストレージ装置を管理するように構成され、該複数の専用ストレージ装置は、複数のストレージ装置タイプを有し、異なった特徴を有する複数のストレージ階層を提供し、該ストレージサーバーは、少なくとも１つの所定のストレージ基準に基づいてストレージ階層間でデータを移動させるように構成され、該移動させることは、該ストレージ階層に関連した専用ストレージ装置にディスク制御プロトコルメッセージを送信することを含み、該ディスク制御プロトコルメッセージのうちの少なくとも一部は、それぞれの専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールに従って、異なった専用ストレージ装置のために異なった態様でフォーマットされる、システム。
【請求項２】
前記複数のストレージ階層は、高価なストレージ装置を有する高い階層と、高価でないストレージ装置を有する低い階層とを含む、請求項１に記載のシステム。
【請求項３】
前記複数のストレージ階層は、高い性能のストレージ装置を有する高い階層と、低い性能のストレージ装置を有する低い階層とを含む、請求項１に記載のシステム。
【請求項４】
前記複数のストレージ階層は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）ストレージ装置を有する高い階層と、非ＲＡＩＤストレージ装置を有する低い階層とを含む、請求項１に記載のシステム。
【請求項５】
前記複数のストレージ階層は、ファイバーチャンネルベースのストレージ装置を有する高い階層と、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）ベースのストレージ装置を有する低い階層とを含む、請求項１に記載のシステム。
【請求項６】
前記ストレージサーバーは、データ移動ポリシーに基づいてデータを移動させるように構成される、請求項１に記載のシステム。
【請求項７】
前記データ移動ポリシーは、
前記データの使用の頻度と、
該データの経過時間と、
該データにアクセスするための性能要件と
のうちの少なくとも１つに基づく、請求項６に記載のシステム。
【請求項８】
前記ストレージサーバーは、データをアーカイブするために高い階層から低い階層へとデータを移動させるように構成される、請求項１に記載のシステム。
【請求項９】
前記ストレージサーバーは、アーカイブされたデータを回復するために低い階層から高い階層へとデータを移動させるように構成される、請求項１に記載のシステム。
【請求項１０】
前記ストレージサーバーは、データスナップショットをとり、該データスナップショップからの変化を高い階層から低い階層へと移動させるように構成される、請求項１に記載のシステム。
【請求項１１】
ネットワーク接続システム内のストレージを管理する方法であって、
該方法は、
ディスク制御プロトコルを用いて複数の専用ストレージ装置を管理することであって、該複数の専用ストレージ装置は、複数のストレージ装置タイプを有し、異なった特徴を有する複数のストレージ階層を提供する、ことと、
少なくとも１つの所定のストレージ基準に基づいてストレージ階層間でデータを移動させることであって、該移動させることは、該ストレージ階層に関連した専用ストレージ装置にディスク制御プロトコルメッセージを送信することを含み、該ディスク制御プロトコルメッセージのうちの少なくとも一部は、それぞれの専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールに従って、異なった専用ストレージ装置のために異なった態様でフォーマットされる、ことと
を含む、方法。
【請求項１２】
前記複数のストレージ階層は、高価なストレージ装置を有する高い階層と、高価でないストレージ装置を有する低い階層とを含む、請求項１１に記載の方法。
【請求項１３】
前記複数のストレージ階層は、高い性能のストレージ装置を有する高い階層と、低い性能のストレージ装置を有する低い階層とを含む、請求項１１に記載の方法。
【請求項１４】
前記複数のストレージ階層は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）ストレージ装置を有する高い階層と、非ＲＡＩＤストレージ装置を有する低い階層とを含む、請求項１１に記載の方法。
【請求項１５】
前記複数のストレージ階層は、ファイバーチャンネルベースのストレージ装置を有する高い階層と、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）ベースのストレージ装置を有する低い階層とを含む、請求項１１に記載の方法。
【請求項１６】
データ移動ポリシーに基づいてデータが移動させられる、請求項１１に記載の方法。
【請求項１７】
前記データ移動ポリシーは、
前記データの使用の頻度と、
該データの経過時間と、
該データにアクセスするための性能要件と
のうちの少なくとも１つに基づく、請求項１６に記載の方法。
【請求項１８】
データをアーカイブするためにデータは高い階層から低い階層へと移動させられる、請求項１１に記載の方法。
【請求項１９】
アーカイブされたデータを回復するためにデータは低い階層から高い階層へと移動させられる、請求項１１に記載の方法。
【請求項２０】
前記ストレージ階層間でデータを移動させることは、データスナップショットをとることと、該データスナップショップからの変化を高い階層から低い階層へと移動させることとを含む、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージシステムに関し、より詳細には、複数のストレージ装置タイプを同時にサポートするネットワーク接続ストレージシステムに関する。
【背景技術】
【０００２】
今日の情報化時代において、コンピュータおよび通信システムは、多くの場合、大量のデータストレージを必要とする。データストレージへのアクセスは、通信ネットワークを介して、益々頻繁に提供されている。とりわけ、これは、データストレージ資源を多くのデータストレージユーザが利用できるようにする。
【０００３】
図１は、この分野で知られているイーサネット（登録商標）ローカルエリアネットワーク（ＬＡＮ）のような通信ネットワーク１０４を介して多くのユーザ１０２によってアクセスされるストレージシステム１０６の概念図を示す。ユーザ１０２は、通信ネットワーク１０４を介してストレージシステム１０６によって提供されるストレージサービスにアクセスする様々なエンティティーを表現する。ユーザ１０２は、ストレージシステム１０６の内部または外部に存在してもよい（例えば、以下で説明するように、ストレージシステム１０６内のサーバーは、通信ネットワーク１０４を介して、ストレージサービスにアクセスするだけでなく、ストレージサービスを提供してもよい）。
【０００４】
一般的には、ストレージシステム１０６において使用される２つの種類のネットワーク型データストレージ技術、すなわち、ストレージエリアネットワーク（ＳＡＮ）およびネットワーク接続ストレージ（ＮＡＳ）が、存在する。ＳＡＮは、元来、ファイバーチャンネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ：ＦＣ）ネットワークを用いて生ブロックデータを提供するものとして定義される。ＮＡＳは、典型的には、ＬＡＮ１０４を介してファイルサービスを提供する。
【０００５】
図２は、この分野で知られているＳＡＮ型ストレージシステムを示す。ＳＡＮ型ストレージシステムは、ＦＣネットワーク２０８を介していくつかのサーバー２０６と通信できる状態にあるいくつかのストレージ装置２１０を含む。ＦＣネットワーク２０８およびストレージ装置２１０は、ＳＡＮを表現し、サーバー２０６は、基本的には、ＳＡＮのユーザである。それぞれのサーバー２０６は、典型的には、特定のアプリケーションをサポートする。例えば、電子メールアプリケーションおよびワールドワイドウェブアプリケーションのための個々のサーバーが、存在してもよい。ストレージ装置２１０によって提供されるストレージ資源は、典型的には、分割され、ストレージ資源の個々の部分は、特定のアプリケーションのためのそれぞれのサーバー２０６に割り当てられる。それぞれのサーバー２０６は、それが割り当てられたストレージ資源の部分にしかアクセスすることができない。それぞれのサーバー２０６は、ＬＡＮ１０４に接続される。とりわけ、ＬＡＮ１０４は、サーバー間通信を可能にし（例えば、様々なアプリケーション間におけるファイル共有を可能にし、また、一方のアプリケーションから他方のアプリケーションへデータをコピーするのを可能にする）、また、ユーザ１０２がサーバー２０６にアクセスするのを可能にする。
【０００６】
図３は、この分野で知られている典型的なＮＡＳ型ストレージシステムを示す。ＮＡＳ型ストレージシステムは、例えばＦＣネットワーク３０８を介していくつかの専用ストレージ装置３１０と通信できる状態にあるＮＡＳサーバー３０６を含む。ＮＡＳサーバー３０６は、ＳＡＮの場合のように、ストレージ資源の一部分を特定のアプリケーションに専有させるのではなく、複数のアプリケーションがストレージ資源をファイルレベルで共有できるように、専用ストレージ装置３１０を管理および制御する。したがって、ＮＡＳサーバー３０６は、ファイルレベルにおけるストレージ資源へのマルチユーザアクセスを提供し、また、必要であれば、あるいは、望ましいならば、すべてのストレージ資源をすべてのアプリケーションが利用できるようにすることによって、容量共有を提供する。ＮＡＳサーバー３０６は、ＬＡＮ１０４に接続される。とりわけ、ＬＡＮ１０４は、ユーザ１０２がＮＡＳサーバー３０６にアクセスするのを可能にする。
【０００７】
ＳＡＮおよびＮＡＳは、お互いに排他的な技術ではない。例えば、図３に示されるように、ＦＣネットワーク３０８および専用ストレージ装置３１０は、基本的には、ＮＡＳサーバー３０６によって管理および制御されるＳＡＮである。また、図４に示されるように、ストレージシステム１０６は、ＳＡＮ技術およびＮＡＳ技術の両方を含んでもよく、サーバー２０６およびＮＡＳサーバー３０６は、ＬＡＮ１０４に接続される。
【０００８】
ＳＡＮ型ストレージシステムに関する１つの問題は、図２を参照して上述したように、サーバー間のデータ転送（様々なアプリケーション間におけるファイル共有および一方のアプリケーションから他方のアプリケーションへのデータのコピーのような）がＬＡＮ１０４を介してなされることである。これは、ＬＡＮ１０４のトラフィック負荷を増大させることによって、かつ、サーバー２０６の処理負荷を増大させることによって、全体的なシステム性能に大きな影響を与えることがある。ＮＡＳ型ストレージシステムにおいては、そのようなファイル共有およびデータコピーは、ＬＡＮ１０４を使用せずに、ＮＡＳサーバー３０６によって実行されてもよく、そのために、そのような処理は、全体的なシステム性能にほとんどまたはまったく影響を与えない。
【発明の概要】
【課題を解決するための手段】
【０００９】
ネットワーク接続システム、装置、および、方法は、ファイバーチャンネルストレージ装置、ＡＴＡストレージ装置、シリアル接続ＳＣＳＩストレージ装置、シリアルＡＴＡストレージ装置、および、固体ストレージ装置のような複数のストレージ装置タイプを有するストレージ装置をサポートする。異なるストレージ装置タイプを有するそれぞれのストレージ装置は、一組の管理ルールに対応づけられる。管理ルールは、例えば、専用ストレージ装置を識別し、専用ストレージ装置を設定し、ディスクプロトコルメッセージを専用ストレージ装置に送信し、専用ストレージ装置から受信されたディスクプロトコルメッセージを処理し、そして、誤り条件および例外条件を処理するためのルールを含んでもよい。
【００１０】
本発明の一実施形態においては、通信ネットワークを介してストレージサービスを提供するネットワーク接続ストレージサーバーおよびディスク制御プロトコルを用いてネットワーク接続ストレージサーバーと通信できる状態にある複数の専用ストレージ装置を含むネットワーク接続ストレージシステムが、提供される。複数の専用ストレージ装置は、複数のストレージ装置タイプを有する。異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、異なる一組の管理ルールを有する。ネットワーク接続ストレージサーバーは、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理する。ネットワーク接続ストレージサーバーは、典型的には、異なるストレージ装置タイプを有する専用ストレージ装置間のデータ転送を可能にする。専用ストレージ装置は、ＲＡＩＤ機能を含んでもよく、さもなければ、ネットワーク接続ストレージサーバーが、ＲＡＩＤ機能を専用ストレージ装置に提供してもよい。また、ネットワーク接続ストレージシステムは、いずれかの専用ストレージ装置からのデータを記憶するために、ネットワーク接続ストレージサーバーと通信できる状態にある専用テープストレージ装置を含んでもよい。
【００１１】
本発明の別の実施形態においては、通信ネットワークを介してストレージサービスを提供するためのネットワーク接続ストレージ装置が、提供される。ネットワーク接続ストレージサーバーは、ディスク制御プロトコルを用いて複数の専用ストレージ装置と通信するための少なくとも１つのストレージインタフェースを含み、複数の専用ストレージ装置は、複数のストレージ装置タイプを有し、異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、異なる一組の管理ルールを有する。また、ネットワーク接続ストレージサーバーは、複数の専用ストレージ装置上にデータを記憶するためのストレージロジックを含み、ストレージロジックは、少なくとも１つのストレージインタフェースを介して複数の専用ストレージ装置を管理するためのディスク制御ロジックを備え、ディスク制御ロジックは、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理する。ストレージロジックは、典型的には、異なるストレージ装置タイプを有する専用ストレージ装置間のデータ転送を実行するためのデータ転送ロジックを含む。データ転送ロジックは、典型的には、ネットワークデータ管理プロトコルを実施するハードウェアコンポーネントを備える。ストレージロジックは、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）機能を専用ストレージ装置に提供するＲＡＩＤロジックを含んでもよい。ストレージロジックは、テープ制御プロトコルを用いて少なくとも１つのストレージインタフェースを介してテープストレージ装置を管理するためのテープ制御ロジックを含んでもよい。ディスク制御ロジックは、典型的には、専用ストレージ装置と通信するためのファイバーチャンネル通信プロトコルを実施し、さらに、ディスク制御プロトコルメッセージをそれぞれの専用ストレージ装置と交換するためのディスク制御プロトコルを実施するハードウェアコンポーネントと、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するように適切にプログラムされたプログラマブルプロセッサーを含むソフトウェアコンポーネントとを含む。
【００１２】
本発明のさらに別の実施形態においては、ネットワーク接続ストレージシステムにおいて、異なるストレージ装置タイプを有するストレージ装置をネットワークストレージサーバーによってサポートするための方法が、提供される。この方法は、ディスク制御プロトコルを用いてネットワークストレージサーバーと通信できる状態にある複数の専用ストレージ装置ごとに一組の管理ルールを保持するステップであり、複数の専用ストレージ装置が、複数のストレージ装置タイプを有し、異なるストレージ装置タイプを有する専用ストレージ装置のそれぞれが、異なる一組の管理ルールを有する、前記保持するステップと、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップとを含む。それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、新しい専用ストレージ装置が存在することを示す指示を受信するステップと、新しい専用ストレージ装置を識別するために、様々な専用ストレージ装置およびストレージ装置タイプのための管理ルールの組を使用するステップとを含んでもよい。異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、異なる形で設定されてもよく、その場合には、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールに基づいて、それぞれの異なる専用ストレージ装置を設定するステップを含んでもよい。それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、ディスク制御プロトコルメッセージを専用ストレージ装置に送信するステップであり、少なくともいくつかのディスク制御プロトコルメッセージは、専用ストレージ装置およびストレージ装置タイプごとの一組の管理ルールに基づいて異なる専用ストレージ装置ごとに異なる形でフォーマットされる、前記送信するステップを含んでもよい。異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、最大キューサイズを有してもよく、その場合には、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、専用ストレージ装置およびストレージ装置タイプごとの一組の管理ルールに基づいて、それぞれの専用ストレージ装置にキューイングすることのできるディスク制御プロトコルメッセージの数を決定するステップを含んでもよい。異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、好ましいストライプサイズを有してもよく、その場合には、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、専用ストレージ装置およびストレージ装置タイプごとの一組の管理ルールに基づいて、専用ストレージ装置のための好ましいストライプサイズを用いてデータをそれぞれの専用ストレージ装置に書き込むステップを含んでもよい。それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、ディスク制御プロトコルメッセージを専用ストレージ装置から受信するステップと、専用ストレージ装置およびストレージ装置タイプごとの一組の管理ルールに基づいて、様々な専用ストレージ装置からのディスク制御プロトコルメッセージを処理するステップとを含んでもよい。異なるストレージ装置タイプを有するそれぞれの専用ストレージ装置は、異なる誤り処理ルールおよび例外処理ルールを有してもよく、その場合には、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理するステップは、専用ストレージ装置およびストレージ装置タイプごとの一組の管理ルールに基づいて、異なる専用ストレージ装置ごとに誤りおよび例外を処理するステップを含んでもよい。
【００１３】
本発明のさらに別の実施形態においては、ディスク制御プロトコルを用いて、ネットワーク接続ストレージサーバーと通信できる状態にある複数の専用ストレージ装置を同時にサポートするための手段であり、複数のストレージ装置は、複数のストレージ装置タイプを有する、前記サポートするための手段と、多くのユーザに通信ネットワークを介してストレージサービスを提供するために、複数のストレージ装置を管理するための手段とを備えたネットワーク接続ストレージサーバーが、提供される。
【００１４】
添付の図面を参照して以下の詳細な説明を読むことによって、本発明の上述した特徴をより容易に理解することができる。
（項目１）
ネットワーク接続ストレージシステムであって、
通信ネットワークを介してストレージサービスを提供するネットワーク接続ストレージサーバーと、
ディスク制御プロトコルを用いて該ネットワーク接続ストレージサーバーと通信できる状態にある複数の専用ストレージ装置であって、該複数の専用ストレージ装置が、複数のストレージ装置タイプを有し、異なったストレージ装置タイプを有する該専用ストレージ装置のそれぞれが、異なった一組の管理ルールを有し、該ネットワーク接続ストレージサーバーが、それぞれの専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための該一組の管理ルールを用いて管理する、複数の専用ストレージ装置と
を備える、ネットワーク接続ストレージシステム。
（項目２）
前記複数のストレージ装置タイプが、
ファイバーチャンネルストレージ装置タイプ、
ＡＴＡストレージ装置タイプ、
シリアル接続ＳＣＳＩストレージ装置タイプ、
シリアルＡＴＡストレージ装置タイプ、および、
固体ストレージ装置タイプ
の複数を含む、項目１に記載のネットワーク接続ストレージシステム。
（項目３）
前記複数の専用ストレージ装置が、
少なくとも１つのファイバーチャンネルストレージ装置と、
少なくとも１つのＡＴＡストレージ装置と
を含む、項目１に記載のネットワーク接続ストレージシステム。
（項目４）
前記ネットワーク接続ストレージサーバーが、異なったストレージ装置タイプを有する専用ストレージ装置間のデータ転送を可能にする、項目１に記載のネットワーク接続ストレージシステム。
（項目５）
前記専用ストレージ装置が、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）機能を含む、項目１に記載のネットワーク接続ストレージシステム。
（項目６）
前記ネットワーク接続ストレージサーバーが、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）機能を前記専用ストレージ装置に提供する、項目１に記載のネットワーク接続ストレージシステム。
（項目７）
前記専用ストレージ装置のいずれかからのデータを記憶するために、前記ネットワーク接続ストレージサーバーと通信できる状態にある専用テープストレージ装置をさらに備える、項目１に記載のネットワーク接続ストレージシステム。
（項目８）
特定の専用ストレージ装置およびストレージ装置タイプのための前記管理ルールが、
該専用ストレージ装置を識別するためのルール、
該専用ストレージ装置を設定するためのルール、
ディスクプロトコルメッセージを該専用ストレージ装置に送信するためのルール、
該専用ストレージ装置から受信されたディスクプロトコルメッセージを処理するためのルール、および、
誤り条件および例外条件を処理するためのルール
のうちの少なくとも１つを含む、項目１に記載のネットワーク接続ストレージシステム。
（項目９）
通信ネットワークを介してストレージサービスを提供するためのネットワーク接続ストレージ装置であって、該ネットワーク接続ストレージサーバーが、
ディスク制御プロトコルを用いて複数の専用ストレージ装置と通信するための少なくとも１つのストレージインタフェースであって、該複数の専用ストレージ装置が、複数のストレージ装置タイプを有し、異なったストレージ装置タイプを有する該専用ストレージ装置のそれぞれが、異なった一組の管理ルールを有する、少なくとも１つのストレージインタフェースと、
データを該複数の専用ストレージ装置上に記憶するためのストレージロジックであって、該ストレージロジックが、該少なくとも１つのストレージインタフェースを介して該複数の専用ストレージ装置を管理するためのディスク制御ロジックを備え、該ディスク制御ロジックが、それぞれの専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための該一組の管理ルールを用いて、管理する、ストレージロジックと
を備える、ネットワーク接続ストレージ装置。
（項目１０）
前記複数のストレージ装置タイプが、
ファイバーチャンネルストレージ装置タイプ、
ＡＴＡストレージ装置タイプ、
シリアル接続ＳＣＳＩストレージ装置タイプ、
シリアルＡＴＡストレージ装置タイプ、および、
固体ストレージ装置タイプ
の複数を含む、項目９に記載のネットワーク接続ストレージ装置。
（項目１１）
前記複数の専用ストレージ装置が、
少なくとも１つのファイバーチャンネルストレージ装置と、
少なくとも１つのＡＴＡストレージ装置と
を含む、項目９に記載のネットワーク接続ストレージ装置。
（項目１２）
前記ストレージロジックが、
異なったストレージ装置タイプを有する専用ストレージ装置間のデータ転送を実行するためのデータ転送ロジックをさらに備える、項目９に記載のネットワーク接続ストレージ装置。
（項目１３）
前記データ転送ロジックが、ネットワークデータ管理プロトコルをインプリメントするハードウェアコンポーネントを備える、項目１２に記載のネットワーク接続ストレージ装置。
（項目１４）
前記ストレージロジックが、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ）機能を専用ストレージ装置に提供するＲＡＩＤロジックをさらに備える、項目９に記載のネットワーク接続ストレージ装置。
（項目１５）
前記ストレージロジックが、テープ制御プロトコルを用いて前記少なくとも１つのストレージインタフェースを介してテープストレージ装置を管理するためのテープ制御ロジックをさらに備える、項目９に記載のネットワーク接続ストレージ装置。
（項目１６）
前記ディスク制御ロジックが、
前記専用ストレージ装置と通信するためのファイバーチャンネル通信プロトコルをインプリメントし、ディスク制御プロトコルメッセージを該専用ストレージ装置の各々と交換するための前記ディスク制御プロトコルをインプリメントするハードウェアコンポーネントと、
それぞれの専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理するように適切にプログラムされたプログラマブルプロセッサーと
を備える、項目９に記載のネットワーク接続ストレージ装置。
（項目１７）
特定の専用ストレージ装置およびストレージ装置タイプのための前記管理ルールが、
該専用ストレージ装置を識別するためのルール、
該専用ストレージ装置を設定するためのルール、
ディスクプロトコルメッセージを該専用ストレージ装置に送信するためのルール、
該専用ストレージ装置から受信されたディスクプロトコルメッセージを処理するためのルール、および、
誤り条件および例外条件を処理するためのルール、
のうちの少なくとも１つを含む、項目９に記載のネットワーク接続ストレージシステム。
（項目１８）
ネットワーク接続ストレージシステムにおけるネットワークストレージサーバーによって、異なったストレージ装置タイプを有するストレージ装置をサポートするための方法であって、
ディスク制御プロトコルを用いて、該ネットワークストレージサーバーと通信できる状態にある複数の専用ストレージ装置の各々に一組の管理ルールを保持することであって、該複数の専用ストレージ装置が、複数のストレージ装置タイプを有し、異なったストレージ装置タイプを有する該専用ストレージ装置のそれぞれが、異なった一組の管理ルールを有する、保持することと、
それぞれの専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための該一組の管理ルールを用いて、管理することと
を包含する、方法。
（項目１９）
前記複数のストレージ装置タイプが、
ファイバーチャンネルストレージ装置タイプ、
ＡＴＡストレージ装置タイプ、
シリアル接続ＳＣＳＩストレージ装置タイプ、
シリアルＡＴＡストレージ装置タイプ、および、
固体ストレージ装置タイプ
の複数を含む、項目１８に記載の方法。
（項目２０）
前記複数の専用ストレージ装置が、
少なくとも１つのファイバーチャンネルストレージ装置と、
少なくとも１つのＡＴＡストレージ装置と
を含む、項目１８に記載の方法。
（項目２１）
前記専用ストレージ装置の各々を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、
新たな専用ストレージ装置が存在することを示す指示を受信することと、
該新たな専用ストレージ装置を識別するために、該様々な専用ストレージ装置およびストレージ装置タイプのための前記管理ルールの組を使用することと
を備える、項目１８に記載の方法。
（項目２２）
異なったストレージ装置タイプを有する前記専用ストレージ装置の各々が、異なった態様で設定され、
各専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールに基づいて、該異なった専用ストレージ装置の各々を設定することを包含する、項目１８に記載の方法。
（項目２３）
前記専用ストレージ装置の各々を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、ディスク制御プロトコルメッセージを該専用ストレージ装置に送信することであって、該ディスク制御プロトコルメッセージのうちの少なくともいくつかが、該専用ストレージ装置およびストレージ装置タイプの各々の該一組の管理ルールに基づいて、異なった専用ストレージ装置ごとに異なった態様でフォーマットされる、送信することを包含する、項目１８に記載の方法。
（項目２４）
異なったストレージ装置タイプを有する前記専用ストレージ装置の各々が、最大キューサイズを有し、各専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、該専用ストレージ装置およびストレージ装置タイプの各々の該管理ルールに基づいて、各専用ストレージ装置にキューイングすることのできるディスク制御プロトコルメッセージの数を決定することを包含する、項目１８に記載の方法。
（項目２５）
異なったストレージ装置タイプを有する前記専用ストレージ装置の各々が、好ましいストライプサイズを有し、各専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、該専用ストレージ装置およびストレージ装置タイプの各々の該一組の管理ルールに基づいて、該専用ストレージ装置のための該好ましいストライプサイズを用いてデータを各専用ストレージ装置に書き込むことを包含する、項目１８に記載の方法。
（項目２６）
前記専用ストレージ装置の各々を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、
ディスク制御プロトコルメッセージを該専用ストレージ装置から受信することと、
該専用ストレージ装置およびストレージ装置タイプの各々の該一組の管理ルールに基づいて、異なった専用ストレージ装置からの該ディスク制御プロトコルメッセージを処理することと
を包含する、項目１８に記載の方法。
（項目２７）
異なったストレージ装置タイプを有する前記専用ストレージ装置の各々が、異なった誤り処理ルールおよび例外処理ルールを有し、各専用ストレージ装置を、該専用ストレージ装置およびストレージ装置タイプのための前記一組の管理ルールを用いて、管理することが、該専用ストレージ装置およびストレージ装置タイプの各々の該一組の管理ルールに基づいて、異なった専用ストレージ装置ごとに誤りおよび例外を処理することを包含する、項目１８に記載の方法。
（項目２８）
ネットワーク接続ストレージサーバーであって、
ディスク制御プロトコルを用いて、該ネットワーク接続ストレージサーバーと通信できる状態にある複数の専用ストレージ装置を同時にサポートするための手段であって、該複数のストレージ装置が、複数のストレージ装置タイプを有する、サポートするための手段と、
複数のユーザに通信ネットワークを介してストレージサービスを提供するために、該複数のストレージ装置を管理するための手段と
を備える、ネットワーク接続ストレージサーバー。
（項目２９）
前記複数のストレージ装置タイプが、
ファイバーチャンネルストレージ装置タイプ、
ＡＴＡストレージ装置タイプ、
シリアル接続ＳＣＳＩストレージ装置タイプ、
シリアルＡＴＡストレージ装置タイプ、および、
固体ストレージ装置タイプ
の複数を含む、項目２８に記載のネットワーク接続ストレージ装置。
（項目３０）
前記複数の専用ストレージ装置が、
少なくとも１つのファイバーチャンネルストレージ装置と、
少なくとも１つのＡＴＡストレージ装置と
を含む、項目２８に記載のネットワーク接続ストレージ装置。
【図面の簡単な説明】
【００１５】
【図１】この分野で知られているイーサネット（登録商標）ローカルエリアネットワーク（ＬＡＮ）のような通信ネットワークを介して多くのユーザによってアクセスされるストレージシステムの概念図である。
【図２】この分野で知られているＳＡＮ型ストレージシステムを示す図である。
【図３】この分野で知られているＮＡＳ型ストレージシステムを示す図である。
【図４】ＳＡＮ技術およびＮＡＳ技術の両方を含むストレージシステム１０６を示す図である。
【図５】この分野で知られているファイバーチャンネルストレージ装置を使用した典型的なＮＡＳ型ストレージシステムを示す図である。
【図６】この分野で知られているＡＴＡストレージ装置を使用した典型的なＮＡＳ型ストレージシステムを示す図である。
【図７】ＮＡＳサーバーが複数のストレージ装置タイプを有するストレージ装置を同時にサポートする本発明の典型的な実施形態を示す図である。
【図８】様々なレベルまたは階層のストレージを提供するために、ＮＡＳサーバーが、２つのクラスのＦＣストレージ装置、２つのクラスのＡＴＡストレージ装置、および、テープストレージ装置を同時にサポートする本発明の典型的な実施形態を示す図である。
【図９】本発明の特定の実施形態によるＮＡＳサーバーのアーキテクチャーを示す概略ブロック図である。
【図１０】本発明の実施形態による異なるストレージ装置タイプを有するストレージ装置をサポートするための典型的なディスク制御ロジックを示すロジックフローチャートである。
【発明を実施するための形態】
【００１６】
本発明は、ＮＡＳ型ストレージシステムに関し、より詳細には、ディスク制御プロトコル（典型的には、ＳＣＳＩディスク制御プロトコル）を用いて制御されかつ異なるストレージ装置タイプを有するストレージ装置を同時にサポートするＮＡＳ型ストレージシステムに関する。本明細書および添付の特許請求の範囲のために、「ストレージ装置タイプ」という用語は、ストレージ装置の基本的なストレージ技術を意味することを意図したものである。ストレージ装置タイプの例は、ファイバーチャンネル（ＦＣ）、ＡＴＡ（以前は、ＩＤＥとして知られていた）、シリアル接続ＳＣＳＩ（ＳＡＳ）、シリアルＡＴＡ（ＳＡＴＡ）、および、様々な種類の固体ストレージを含む。「ストレージ装置タイプ」という用語は、いくつかの例を挙げると、例えば、ストレージ装置のディスクの回転速度、ストレージ装置のストレージ容量、ストレージ装置に必要とされるアクセス時間、ストレージ装置への通信インタフェースの種類、および、ストレージ装置がＲＡＩＤコントローラを含むかどうかのようなその他のストレージ装置特徴を意味することを意図したものではない。したがって、例えば、１５，０００ＲＰＭおよび１０，０００ＲＰＭのディスク回転速度および異なるストレージ容量を有する異なるクラスのＦＣストレージ装置は、ＦＣストレージ装置タイプであると考えられ、７，２００ＲＰＭおよび５，４００ＲＰＭのディスク回転速度および異なるストレージ容量を有する異なるクラスのＡＴＡストレージ装置は、ＡＴＡストレージ装置タイプであると考えられる。また、例えば、ファイバーチャンネル通信インタフェースおよびＲＡＩＤコントローラを有するＡＴＡストレージ装置は、ＡＴＡストレージ装置タイプであると考えられる。ストレージ装置は、ディスク制御プロトコルを用いて制御されるので、本発明は、テープストレージ装置（これは、ＳＣＳＩテープ制御プロトコルであってもよいテープ制御プロトコルを用いて制御される）のような、ディスク制御プロトコルを用いて制御されないストレージ装置には適用されないが、ある種の固体ストレージ装置のような、ディスク制御プロトコルを用いて制御される非ディスクストレージ装置には適用される。
【００１７】
典型的なＮＡＳ型ストレージシステムは、１つのストレージ装置タイプを有するストレージ装置だけを同時にサポートする。例えば、あるベンダーは、複数のＦＣストレージ装置を備えたＮＡＳ型ストレージシステムを提供し、また、あるベンダーは、複数のＡＴＡストレージ装置を備えたＮＡＳ型ストレージシステムを提供する。ＦＣストレージ装置を使用するＮＡＳ型ストレージシステムは、典型的には、ＡＴＡストレージ装置を使用するＮＡＳ型ストレージシステムよりも高速でありかつ信頼性が高いが、ＡＴＡストレージ装置を使用するＮＡＳ型ストレージシステムは、典型的には、ＦＣストレージ装置を使用するＮＡＳ型ストレージシステムほど高価ではなく、かつ、ＦＣストレージ装置を使用するＮＡＳ型ストレージシステムよりも大きなストレージ容量を提供する。したがって、異なる種類のＮＡＳ型ストレージシステムは、典型的には、異なるアプリケーションを対象とする。例えば、ＦＣストレージ装置を備えたＮＡＳ型ストレージシステムは、典型的には、速度および信頼性が重要な企業システムを対象とするのに対して、ＡＴＡストレージ装置を備えたＮＡＳ型ストレージシステムは、典型的には、大量の安価なストレージ（テープの代わりにアーカイブするような）から恩恵を受けるアプリケーションを対象とする。
【００１８】
図５は、ＦＣストレージ装置を使用する典型的なＮＡＳ型ストレージシステムを示す。具体的には、ＮＡＳサーバー５０６は、ＦＣスイッチ５０８を介して、ＦＣストレージ装置５１０１、５１０２、および、５１０３（以下、個々に、ＦＣストレージ装置５１０と呼ばれ、また、集合的にも、ＦＣストレージ装置５１０と呼ばれる）に接続される。ＦＣストレージ装置５１０は、異なるクラスのＦＣ装置を含んでもよい。ＦＣストレージ装置５１０は、ＲＡＩＤコントローラを含んでもよい。ＦＣストレージ装置５１０が、ＲＡＩＤコントローラを含まなければ、典型的には、ＮＡＳサーバー５０６が、ＲＡＩＤ機能をＦＣストレージ装置５１０に提供する。
【００１９】
図６は、ＡＴＡストレージ装置を使用する典型的なＮＡＳ型ストレージシステムを示す。具体的には、ＮＡＳサーバー６０６は、ＦＣリンク６０８１、６０８２、および、６０８３を介して、ＡＴＡストレージ装置６１０１、６１０２、および、６１０３（以下、個々に、ＡＴＡストレージ装置６１０と呼ばれ、また、集合的にも、ＡＴＡストレージ装置６１０と呼ばれる）に接続される。ＡＴＡストレージ装置６１０は、異なるクラスのＡＴＡ装置を含んでもよい。ＡＴＡストレージ装置６１０は、ＲＡＩＤコントローラを含んでもよい。ＡＴＡストレージ装置６１０が、ＲＡＩＤコントローラを含まなければ、典型的には、ＮＡＳサーバー６０６が、ＲＡＩＤ機能をＡＴＡストレージ装置６１０に提供する。
【００２０】
本発明の様々な実施形態においては、ＮＡＳ型ストレージシステムは、複数のストレージ装置タイプを有するストレージ装置を同時にサポートする。異なるストレージ装置タイプは、異なる特徴（例えば、性能、容量、コスト）を有するので、複数のストレージ装置タイプを有するストレージ装置を同時にサポートする能力は、ＮＡＳ型ストレージシステムが異なるレベルまたは階層のストレージを提供するのを可能にする。異なる種類のストレージ装置は、例えば、ストレージソリューション全体のスケーラビリティ、フレキシビリティ、および、マネージャビリティを維持しながら、ストレージ要件を、性能、容量、および、予算（コスト）の要件に合致させるのを可能にするために、ＮＡＳ型ストレージシステムに追加されてもよく、あるいは、ＮＡＳ型ストレージシステムから除去されてもよい。したがって、とりわけ、多層ストレージは、スケーラビリティおよびフレキシビリティのあるストレージソリューションを可能にし、それは、単純化されかつ統合されたストレージ管理による高いレベルの性能を提供する。様々な階層のストレージを使用するので、テープにバックアップすることなく、データを長期間にわたりオンライン状態に維持することができ、データが必要とされるときに、データをテープから復元する必要性を軽減する。これは、また、必要とされるバックアップウィンドウを減少させることに貢献する。なぜなら、テープよりも大きな容量およびテープよりも高い性能を有するストレージ装置にデータをバックアップすることができるからである。したがって、多層ストレージによれば、データは、ストレージ装置により長く残存し、そのために、より容易にユーザアクセスに応じることができる。
【００２１】
多層ＮＡＳ型ストレージシステム内においては、データは、どのストレージ装置に記憶されてもよく、また、データは、スナップショット、バルクデータ移動／コピー、および、ポリシーに基づいた方法のような様々なデータ移送方法を用いて、ストレージのいずれかの階層からいずれかの階層へ移送されてもよい。例えば、スナップショットを用いて、ボリュームのスナップショットが、取り出され、そして、変更が、ストレージのより低い実行階層へ移送されてもよい。バルクデータ移動／コピーを用いて、データは、ひとまとめにして、一方の階層から他方の階層へ移動されてもよい。ポリシーに基づいた移送は、定義された時間期間よりも古いデータがストレージの階層から階層へ移送されるシステム上で実施されてもよい。データの移送は、より高い実行階層からより低い実行階層へとは限らない。むしろ、データの移動は、より高い実行階層からより低い実行階層への、あるいは、より低い実行階層からより高い実行階層への双方向の移動であってもよい。多層ストレージは、ストレージソリューション全体の統合管理および中央管理を維持しながら、より高価なストレージを解放するのを可能にし、かつ、頻繁にアクセスされないかまたは高い性能を必要としないアプリケーションのためにそれほど高価ではないストレージを使用するのを可能にする。
【００２２】
データ移送は、イントラサーバー（すなわち、ＮＡＳサーバーの専用ストレージ間の）またはインターサーバー（すなわち、２つのＮＡＳサーバー間の）であってもよい。したがって、データは、同じＮＡＳサーバー上の１つかまたはそれ以上のボリュームに移送されてもよく、あるいは、データは、バックアップおよび／または障害回復のために、同じデータセンターかまたは別の場所に配置された別のＮＡＳサーバーに移送されてもよい。上述したオプションのいずれかを使用すれば、移送されたデータは、読み込み／書き込みが可能である。
【００２３】
本発明の典型的な実施形態においては、すべてのストレージ装置は、同じタイプの通信インタフェース（典型的には、ファイバーチャンネル）を有し、すべてのストレージ装置がＲＡＩＤコントローラを含むかまたはすべてのストレージ装置がＲＡＩＤコントローラを含まない。ストレージ装置がＲＡＩＤコントローラを含まずかつＮＡＳサーバーがＲＡＩＤ機能をストレージ装置に提供する本発明の実施形態においては、付加的なストレージ装置を接続することは、典型的には、ＮＡＳサーバーの処理負荷を増大させる。したがって、ストレージ装置は、ＲＡＩＤコントローラを含むことが好ましい。
【００２４】
図７は、本発明の典型的な実施形態を示し、この実施形態においては、ＮＡＳサーバー７０６は、ＦＣストレージ装置７１０、ＡＴＡストレージ装置７１２、固体ストレージ装置７１４、および、将来的に、ＳＡＳストレージ装置７１６およびＳＡＴＡストレージ装置７１８（本明細書が作成された時点においては、ＳＡＳストレージ装置およびＳＡＴＡストレージ装置は、まだ市販されていないが、どのようにすればＮＡＳサーバー７０６によってそのような装置をサポートすることができかつ多層ＮＡＳ型ストレージシステムに統合することができるかは、この分野に精通する者には本明細書の教示から明白なことである）を含む複数のストレージ装置タイプを有するストレージ装置を同時にサポートする。この例においては、すべてのストレージ装置は、ファイバーチャンネル通信インタフェースを有し、ＮＡＳサーバー７０６は、ＦＣスイッチ７０８を介して、ストレージ装置と通信する。
【００２５】
本発明の特定の一実施形態においては、多層ＮＡＳ型ストレージシステムは、様々なレベルまたは階層のストレージを提供するために、２つのクラスのＦＣストレージ装置、２つのクラスのＡＴＡストレージ装置、および、テープストレージ装置をサポートする。
【００２６】
図８は、本発明の典型的な実施形態を示し、この実施形態においては、ＮＡＳサーバー８０６は、様々なレベルまたは階層のストレージを提供するために、２つのクラスのＦＣストレージ装置、２つのクラスのＡＴＡストレージ装置、および、テープストレージ装置を同時にサポートする。具体的には、ＮＡＳサーバー８０６は、１５，０００ＲＰＭで動作するＦＣストレージ装置８１０、１０，０００ＲＰＭで動作するＦＣストレージ装置８１２、７，２００ＲＰＭで動作するＡＴＡストレージ装置８１４、５，４００ＲＰＭで動作するＡＴＡストレージ装置８１６、および、テープストレージ装置８１８をサポートする。１５，０００ＲＰＭのＦＣストレージ装置８１０は、きわめて高い性能のストレージを提供する。１０，０００ＲＰＭのＦＣストレージ装置８１２は、高い性能のストレージを提供する。７，２００ＲＰＭのＡＴＡストレージ装置８１４は、中程度の性能のストレージを提供する。５，４００ＲＰＭのＡＴＡストレージ装置８１６は、低い性能のストレージを提供し、アーカイブアプリケーションに適している。テープストレージ装置８１８は、長期間のテープバックアップストレージに適している。この例においては、すべてのストレージ装置は、ファイバーチャンネル通信インタフェースを有し、ＮＡＳサーバー８０６は、ＦＣスイッチ８０８を介して、ストレージ装置と通信する。
【００２７】
複数のストレージ装置タイプを有するストレージ装置をＮＡＳ型ストレージシステムに統合するためには、互換性のある通信インタフェース（典型的には、ファイバーチャンネル）を有するストレージ装置をただ単に接続し、特定のディスク制御プロトコル（典型的には、ＳＣＳＩ）を使用し、そして、それらのストレージ装置がＮＡＳ型ストレージシステム内において高い信頼性で動作すること（あるいは、まったく動作しないこと）を期待するだけでは不十分である。
【００２８】
異なるストレージ装置タイプを有するストレージ装置がＮＡＳ型ストレージシステム内において高い信頼性で動作しない（あるいは、まったく動作しない）１つの理由は、ディスク制御メッセージのフォーマットが、一般的には、特定のディスク制御プロトコルのために明確に定義されていても、異なるストレージ装置は、典型的には、ディスク制御プロトコルを異なる形で実施することである。このことは、同じベンダーからの異なるストレージ装置の場合にさえも当てはまることがある（例えば、特定のベンダーからのＦＣストレージ装置は、そのベンダーからのＡＴＡストレージ装置と異なる形でディスク制御プロトコルを実施するかもしれない）。これらの異なる実施方法は、例えば、どのようにして、ストレージ装置が、識別され、設定され、そして、管理されるか、どのようにして、ストレージ装置が、誤り条件または例外条件、タイプ、および、ストレージ装置によってＮＡＳサーバーに送信されたメッセージの内容を処理するか、および、どのようにして、ストレージ装置が、ＮＡＳサーバーによって送信されたメッセージに応答するかに影響を与えるかもしれない。例えば、一方のストレージ装置は、それ自身を識別するための一連番号を使用するかもしれないが、他方のストレージ装置は、それ自身を識別するために、ワールドワイド名を使用するかもしれない。また、ある種のディスク制御メッセージは、ベンダー固有情報を備えることができ、ある種の実施方法は、「標準的な」ディスク制御メッセージを非標準的な形で使用するかもしれない。さらにまた、様々なストレージ装置は、誤り条件または例外条件をまったく異なる形で処理する傾向を有する。
【００２９】
異なるストレージ装置タイプを有するストレージ装置がＮＡＳ型ストレージシステム内において適切に動作しないもう１つの理由は、異なるストレージ装置タイプを有するストレージ装置は、典型的には、異なる動作パラメータを有することである。例えば、異なるストレージ装置タイプを有するストレージ装置は、いくつかの例を挙げれば、キューイングすることのできるコマンドの数（例えば、高性能のＦＣストレージ装置は、典型的には、例えば安価なＡＴＡ装置よりも多くのコマンドをキューイングすることができる）、「ストライプ」サイズ（データを複数のディスクに同時に書き込むための複数ディスクストレージシステムの良く知られている概念）、好ましい書き込みサイズ（すなわち、それぞれの書き込み動作においてストレージ装置に書き込まれるべきデータブロックの好ましい数）、および、フロー制御を処理する方法などが異なることがある。
【００３０】
したがって、複数のストレージ装置タイプを有するストレージ装置をＮＡＳ型ストレージシステムに統合するためには、ＮＡＳサーバーが、異なるストレージ装置、具体的には、異なるストレージ装置タイプを有するストレージ装置と異なる形で対話することが必要である。したがって、ＮＡＳサーバーは、典型的には、データを複数のストレージ装置に記憶するためのストレージロジックを含む。ストレージロジックは、ストレージ装置を管理するディスク制御ロジックを含む。ディスク制御ロジックは、それぞれの異なるストレージ装置およびストレージ装置タイプがどのように管理されるかを定義する管理ルールを含む。管理ルールは、一般的には、どのようにして、ＮＡＳサーバーが、特定のストレージ装置を識別し、設定し、対話するかなどを定める。本発明の一実施形態においては、ディスク制御ロジックは、ハードウェアコンポーネントおよびソフトウェアコンポーネントの両方によって実施される。ハードウェアコンポーネントは、専用ストレージ装置と通信するためのファイバーチャンネル通信プロトコルを実施し、さらに、それぞれのストレージ装置とディスク制御プロトコルメッセージを交換するためのディスク制御プロトコルを実施し、それと同時に、ソフトウェアコンポーネントは、それぞれの専用ストレージ装置を、その専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールを用いて、管理する。実際には、ハードウェアコンポーネントは、キューイングすることのできるコマンドの数、「ストライプ」のサイズ、および、好ましい書き込みサイズのような、ソフトウェアコンポーネントによってプログラムされた設定可能なパラメータを介して、データ処理に関する様々な管理ルールを適用する。ソフトウェアコンポーネントは、ストレージ装置識別情報、設定、および、誤りルールおよび例外ルールを含む管理ルールのような、その他の管理ルール自身を適用する。
【００３１】
図９は、本発明の特定の実施形態によるＮＡＳサーバーのアーキテクチャーを示す概略ブロック図である。アーキテクチャーは、図示されるように論理的に大まかに描写された３つの大きなブロック、すなわち、ネットワークサブシステム９３０、プロトコル／ファイルサブシステム９２０、および、ストレージサブシステム９００に分割される。データパスにおける重要なコンポーネントのすべては、主に、ハードウェアによって（典型的には、フィールドプログラマブルゲートアレイによって）実施される。上述したストレージロジックは、実質的に、ストレージサブシステム９００に存在する。ネットワークサブシステム９３０およびプロトコル／ファイルサブシステム９２０が、便宜上、示されるが、本質的には、本発明の範囲には含まれず、したがって、さらには説明しない。
【００３２】
とりわけ、ストレージサブシステム９００は、プロトコル／ファイルサブシステムからストレージサブシステムへ移動するデータのための第１のデータパイプライン９０２およびストレージサブシステムからプロトコル／ファイルサブシステムへ移動するデータのための第２のデータパイプライン９０６を含む。第１のデータパイプライン９０２と第２のデータパイプライン９０６との間に配置されたＮＤＭＰハードウェアブロック９０４は、異なるストレージ装置タイプを有するストレージ装置間でイントラサーバーデータ転送をとりわけ実行するためのネットワークデータ管理プロトコル（ＮＤＭＰ）を実施する。ディスク制御ロジックは、ＦＣブロック９１０および９１２およびＣＰＵ９１４によって表現され、ＦＣブロック９１０および９１２は、ハードウェアコンポーネント（典型的には、単一ＦＰＧＡによって実施される）であり、ＣＰＵ９１４は、ソフトウェアコンポーネントを表現する。ＦＣブロック９１０および９１２を包含するハードウェアコンポーネントは、とりわけ、ファイバーチャンネル（ファイバー）ネットワークインタフェース９１６を介して様々なストレージ装置と通信するためのファイバーチャンネル通信プロトコルを実施し、ストレージ装置とディスク制御プロトコルメッセージを交換するためのディスク制御プロトコルを実施し、そして、セクターキャッシュ９０８を管理する。ソフトウェアコンポーネントは、異なるストレージ装置およびストレージ装置タイプごとに一組の管理ルールをメモリー９１５に保持する。ソフトウェアコンポーネントは、とりわけ、様々なデータ処理ルール（キューイングすることのできるコマンドの数、「ストライプ」サイズ、および、好ましい書き込みサイズのような）を適用するために、ハードウェアコンポーネントを設定し、かつ、その他のルール自身（ストレージ装置識別情報、設定、および、誤りルールおよび例外ルールを含む管理ルールのような）を適用する。
【００３３】
新しいストレージ装置が、ファイバーチャンネルネットワークに取り付けられたとき、ソフトウェアコンポーネントは、一般的には、新しい装置が存在するハードウェアコンポーネントから割り込みまたはその他の通知を受信する。ソフトウェアコンポーネントは、様々なストレージ装置およびストレージ装置タイプのための管理ルールを用いて、新しいストレージ装置を識別することを試みる。ソフトウェアコンポーネントが、新しいストレージ装置を識別することができたと仮定すれば、ソフトウェアコンポーネントは、新しいストレージ装置を動作させかつ利用するのに必要な何らかのステップを実行する。これは、典型的には、新しいストレージ装置からある種の情報を得ること、新しいストレージ装置を設定すること、および、新しいストレージ装置をサポートするためのハードウェアコンポーネントを設定することをとりわけ必要とする。そして、ソフトウェアコンポーネントは、新しいストレージ装置を実装し、記憶するために、新しいストレージ装置を使用し始めることができる。
【００３４】
一方のストレージ装置から他方のストレージ装置へのイントラサーバーデータ移送を実行するために、データが、ファイバーネットワークインタフェース９１６を介して一方のストレージ装置から読み込まれ、ＦＣブロック９１２へ送られ、そして、第２のデータパイプライン９０６に送られる。ＮＤＭＰハードウェア９０４は、第２のデータパイプライン９０６からデータを受け取り、そのデータを第１のデータパイプライン９０２に送出する。そして、データは、ＦＣブロック９１０へ送られ、そして、ファイバーネットワークインタフェース９１６から他のストレージ装置へ送られる。この動作は、ハードウェアにおいて完全に処理され、データは、ＬＡＮまたはプロトコル／ファイルサブシステム９２０にさえも送られることはない。
【００３５】
図１０は、本発明の実施形態による異なるストレージ装置タイプを有するストレージ装置をサポートするための典型的なディスク制御ロジックを示すロジックフローチャートである。ブロック１００２において、ディスク制御ロジックは、複数のストレージ装置タイプを有する複数の専用ストレージ装置ごとに一組の管理ルールを保持する。ブロック１００４において、新しい専用ストレージ装置が存在することを示す指示を受け取ると、ディスク制御ロジックは、ブロック１００６において、新しい専用ストレージ装置を識別するために、管理ルールの組を使用し、そして、ブロック１００８において、専用ストレージ装置およびストレージ装置タイプのための一組の管理ルールに基づいて新しい専用ストレージ装置を設定してもよい。その後、ブロック１０１０において、ディスク制御ロジックは、ディスク制御プロトコルメッセージを専用ストレージ装置へ送信してもよく、少なくともいくつかのディスク制御プロトコルメッセージは、適切な一組の管理ルールに基づいて異なる専用ストレージ装置ごとに異なる形でフォーマットされたものである。さらに、ブロック１０１２において、ディスク制御ロジックは、適切な一組の管理ルールに基づいてそれぞれの専用ストレージ装置にキューイングすることのできるディスク制御プロトコルメッセージの数を決定してもよい。また、ブロック１０１４において、ディスク制御ロジックは、適切な一組の管理ルールに基づいて、専用ストレージ装置のための好ましいストライプサイズを用いて、それぞれの専用ストレージ装置にデータを書き込んでもよい。ブロック１０１６において、ディスク制御ロジックは、異なる専用ストレージ装置から受信されたディスク制御プロトコルメッセージを適切な一組の管理ルールに基づいて処理してもよい。ブロック１０１８において、ディスク制御ロジックは、異なる専用ストレージ装置の誤りおよび例外を適切な一組の管理ルールに基づいて処理してもよい。ディスク制御ロジックは、特定のストレージ装置、ストレージ装置タイプ、または、ストレージアプリケーションに必要であれば、その他の管理目的のために、様々な管理ルールを使用してもよい。
【００３６】
また、上述したロジックフローチャートは、ここで、本発明の様々な側面を説明するのに使用されたことに注意すべきであり、本発明を特定のロジックフローチャートまたはロジック実施方法に限定するものであると解釈すべきではない。説明されたロジックは、全体的な結果を変化させることなく、さもなければ、本発明の真の範囲から逸脱することなく、様々なロジックブロック（例えば、プログラム、モジュール、機能、または、サブルーチン）に分割されてもよい。多くの場合、ロジック構成要素は、全体的な結果を変化させることなく、さもなければ、本発明の真の範囲から逸脱することなく、追加され、変更され、省略され、異なる順序で実行され、あるいは、異なるロジック構成体（例えば、ロジックゲート、ループプリミティブ、条件付きロジック、および、その他のロジック構成体）を用いて実施されてもよい。
【００３７】
本発明は、多くの異なる形態で実施されてもよく、プロセッサー（例えば、マイクロプロセッサー、マイクロコントローラー、ディジタル信号プロセッサー、または、汎用コンピュータ）とともに使用するためのコンピュータプログラムロジック、プログラマブルロジックデバイス（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはその他のＰＬＤ）とともに使用するためのプログラマブルロジック、個別部品、集積回路（例えば、特定用途向け集積回路（ＡＳＩＣ））、または、それらの組み合わせを含む何らかのその他の手段を含むが、決してそれらに限定されるものではない。
【００３８】
上述した機能のすべてまたは一部を実施するコンピュータプログラムロジックは、様々な形態で実施されてもよく、ソースコードの形態、コンピュータが実行可能な形態、および、様々な中間の形態（例えば、アセンブラ、コンパイラ、リンカー、または、ロケーターによって生成された形態）を含むが、決してそれらに限定されるものではない。ソースコードは、様々なオペレーティングシステムまたはオペレーティング環境とともに使用するための様々なプログラミング言語（例えば、オブジェクトコード、アセンブリ言語、または、Ｆｏｒｔｒａｎ、Ｃ、Ｃ＋＋、ＪＡＶＡ（登録商標）、または、ＨＴＭＬのような高級言語）のいずれかによって実施された一連のコンピュータプログラム命令を含んでもよい。ソースコードは、様々なデータ構造および通信メッセージを定義し、そして、それらを使用してもよい。ソースコードは、コンピュータが実行可能な形態であってもよく（例えば、インタープリターを介して）、あるいは、ソースコードは、コンピュータが実行可能な形態に変換されてもよい（例えば、トランスレータ、アセンブラ、または、コンパイラを介して）。
【００３９】
コンピュータプログラムは、半導体メモリーデバイス（例えば、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ、または、フラッシュプログラマブルＲＡＭ）、磁気メモリーデバイス（例えば、ディスケットまたは固定ディスク）、光メモリーデバイス（例えば、ＣＤ−ＲＯＭ）、ＰＣカード（例えば、ＰＣＭＣＩＡカード）、または、その他のメモリーデバイスのような有形のストレージ媒体として、永久的にかまたは一時的に、どのような形態（例えば、ソースコードの形態、コンピュータが実行可能な形態、または、中間の形態）ででも記録されてよい。コンピュータプログラムは、アナログ技術、ディジタル技術、光技術、無線技術（例えば、Ｂｌｕｅｔｏｏｔｈ）、ネットワーク技術、および、インターネットワーク技術を含むが決してそれらに限定されない様々な通信技術のいずれかを用いて、コンピュータに送信可能な信号として、どのような形態ででも記録されてよい。コンピュータプログラムは、印刷文書または電子文書を添付された着脱可能なストレージ媒体（収縮包装された市販のソフトウェア）のような何らかの形態で分配されてもよく、コンピュータシステムによって予めロードされてもよく（例えば、システムＲＯＭまたは固定ディスク上に）、あるいは、通信システム（例えば、インターネットまたはワールドワイドウェブ）を介してサーバーまたは電子掲示板から分配されてもよい。
【００４０】
上述した機能のすべてまたは一部を実施するハードウェアロジック（プログラマブルロジックデバイスとともに使用するためのプログラマブルロジックを含む）は、伝統的な人手による方法を用いて設計されてもよく、あるいは、コンピュータ援用設計（ＣＡＤ）、ハードウェア記述言語（例えば、ＶＨＤＬまたはＡＨＤＬ）、または、ＰＬＤプログラミング言語（例えば、ＰＡＬＡＳＭ、ＡＢＥＬ、または、ＣＵＰＬ）のような様々なツールを用いて、設計され、入手され、シミュレーションされ、あるいは、電子文書化されてもよい。
【００４１】
プログラマブルロジックは、半導体メモリーデバイス（例えば、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＥＰＲＯＭ、または、フラッシュプログラマブルＲＡＭ）、磁気メモリーデバイス（例えば、ディスケットまたは固定ディスク）、光メモリーデバイス（例えば、ＣＤ−ＲＯＭ）、または、その他のメモリーデバイスのような有形のストレージ媒体に永久的にかまたは一時的に記録されてもよい。プログラマブルロジックは、アナログ技術、ディジタル技術、光技術、無線技術（例えば、Ｂｌｕｅｔｏｏｔｈ）、ネットワーク技術、および、インターネットワーク技術を含むが決してそれらに限定されない様々な通信技術のいずれかを用いて、コンピュータに送信可能な信号として記録されてよい。プログラマブルロジックは、印刷文書または電子文書を添付された着脱可能なストレージ媒体（収縮包装された市販のソフトウェア）として分配されてもよく、コンピュータシステムによって予めロードされてもよく（例えば、システムＲＯＭまたは固定ディスク上に）、あるいは、通信システム（例えば、インターネットまたはワールドワイドウェブ）を介してサーバーまたは電子掲示板から分配されてもよい。
【００４２】
本発明は、本発明の真の範囲を逸脱することなく、その他の特定の形態で実施されてもよい。説明された実施形態は、すべての点において、ただ単に説明のためのものであり、限定するものではないと考えるべきである。
【図１】
2010146586.tif 000003
【図２】
2010146586.tif 000004
【図３】
2010146586.tif 000005
【図４】
2010146586.tif 000006
【図５】
2010146586.tif 000007
【図６】
2010146586.tif 000008
【図７】
2010146586.tif 000009
【図８】
2010146586.tif 000010
【図９】
2010146586.tif 000011
【図１０】
2010146586.tif 000012