JP2005505814A - 記憶ネットワーク中の負荷平衡 - Google Patents
記憶ネットワーク中の負荷平衡 Download PDFInfo
- Publication number
- JP2005505814A JP2005505814A JP2003531352A JP2003531352A JP2005505814A JP 2005505814 A JP2005505814 A JP 2005505814A JP 2003531352 A JP2003531352 A JP 2003531352A JP 2003531352 A JP2003531352 A JP 2003531352A JP 2005505814 A JP2005505814 A JP 2005505814A
- Authority
- JP
- Japan
- Prior art keywords
- switch
- target
- initiator
- response time
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】サーバーと記憶装置とを接続する記憶ネットワークを提供する。
【解決手段】本発明の実施の形態では、記憶アクセスのためのサービスの品質(QoS)を提供するスイッチ(204)を備える。QoSは、記憶装置(206)の自動的プール化と、これらのプール(802)からの仮想ターゲットの提供により部分的に可能化される。QoSは、各接続について帯域幅を指定された範囲内に維持することにより、より詳細には、イニシエーター(サーバー、202)からの許容される同時的要求数を制御することにより、行われる。負荷平衡も本発明の実施の形態では提供されて、要求に対する応答時間を改良して、さらに、QoSを提供することを容易にする。
【選択図】図8
【解決手段】本発明の実施の形態では、記憶アクセスのためのサービスの品質(QoS)を提供するスイッチ(204)を備える。QoSは、記憶装置(206)の自動的プール化と、これらのプール(802)からの仮想ターゲットの提供により部分的に可能化される。QoSは、各接続について帯域幅を指定された範囲内に維持することにより、より詳細には、イニシエーター(サーバー、202)からの許容される同時的要求数を制御することにより、行われる。負荷平衡も本発明の実施の形態では提供されて、要求に対する応答時間を改良して、さらに、QoSを提供することを容易にする。
【選択図】図8
Description
【技術分野】
【0001】
関連出願
本願は、2001年9月28日出願の米国仮出願シリアル番号第60/325,704号、「記憶エリア・ネットワークのための記憶スイッチ」の優先権を主張する。ここに参照により組み込む。
【0002】
また、本願は同時に出願された次の出願にも関係する。ここに参照により組み込む。
「記憶エリア・ネットワークのための記憶スイッチ」
米国シリアル番号第10/051,321号
「記憶システム内のプロトコル翻訳」
米国シリアル番号第10/051,415号
「サーバー無し記憶サービス」
米国シリアル番号第10/051,164号
「記憶システム内のパケット分類」
米国シリアル番号第10/051,093号
「記憶システムの仮想化」
米国シリアル番号第10/051,396号
「記憶ネットワーク内のサービスの品質の実行」
米国シリアル番号第10/051,339号
「記憶ネットワーク内の記憶資源の供給とプーリング」
米国シリアル番号第10/050,974号
【0003】
技術分野
本発明は、一般に、記憶エリア・ネットワークに関連する。
【0004】
背景技術
データ集中アプリケーションの急激な成長は生データ記憶容量に対する需要を増加し続けている。企業がeコマース、オンライン取引、及びデータベースにより依存するにつれて、管理及び記憶する必要のある情報量が巨大となる。この結果、より多くの記憶を追加し、より多くのユーザにサービスし、そしてより多くのデータをバックアップの進行する必要性は、とても厄介な作業となる。
【0005】
データのこの成長する需要を満たすために、記憶エリア・ネットワーク(SAN)の概念が人気を得ている。SANは、記憶ネットワーク産業協会(SNIA)により、コンピュータ・システムと記憶要素との間、及び記憶要素間のデータ転送を主要な目的とするネットワークとして定義される。記憶装置をサーバーに直接に、例えば、SCSI接続により接続するのとは異なり、イーサネット(登録商標)(例えば、NASシステム)等の伝統的なイーサネットによりLANに記憶装置を追加するのとは異なり、SANは、直接接続SCSI及びNASカウンタパートのように同じ帯域幅限界を持つ傾向がない本質的に独立なネットワークを形成し、また、増大した構成可能性とスケーラビリテイを提供する。
【0006】
より詳細には、SAN環境では、記憶装置(例えば、テープ・ドライブ及びRAID配列)及びサーバーは、一般にさまざまなスイッチ及び装置を経由して相互接続される。普通、スイッチ及び装置への接続は、ファイバー・チャンネルである。一般に、この構造は、SAN上のいずれのサーバーもいずれの記憶装置に通信可能にし、また、この逆も可能にする。さらに、サーバーから記憶装置への代替的経路を提供する。換言すると、もし、特定のサーバーが遅い又は完全に利用不可能な場合、SAN上の別のサーバーが記憶装置へのアクセスを提供できる。また、SANは、複数のコピーを可能にするミラー・データを可能にし、従って、データの利用可能性の信頼性を高める。より多くの記憶が必要とされる場合、追加の記憶装置を特定のサーバーに接続する必要無くしてSANに追加でき、新規な装置を記憶ネットワークに単純に追加でき、いずれのポイントからもアクセスできる。
【0007】
図1の機能ブロック図に、SANの一例がシステム100中に示されている。図示するように、1つ又は複数のサーバー102が存在する。これらのサーバー102は例示目的ためにのみ示す。サーバー102は、イーサネット接続を介してLAN106及び/又はルーター108へ接続され、そして、インターネットなどのWAN110に接続される。さらに、各サーバー102は、時々、SANの「ファブリック」と呼ばれる複数のファイバー・チャンネル・スイッチ112の各々にファイバー・チャンネル接続を介して接続されている。2つのスイッチ112が、説明目的のためにのみ示されている。そして、各スイッチ112が、複数のSAN装置114の各々に接続されている。2つの装置114は説明目的のためにのみ示されている。そして、各装置は、テープ・ドライブ、光ドライブ、又はRAID配列などの複数の記憶装置の各々に接続されている。さらに、各スイッチ112と装置114はルーター108に接続されたゲートウェイ118に接続されていて、最終的には、インターネットなどのワイド・エリア・ネットワーク(WAN)18へ接続されている。図1は、スイッチ112、装置114、記憶装置116、及びゲートウェイ118を含むSAN119の可能な構成の一例を示す。他の構成も可能である。例えば、1つの装置が全てのスイッチよりも少なく接続してもよい。
【0008】
装置114は、SANの記憶管理を実行する。装置114がデータを受信すると、それは装置114内のメモリにデータを記憶する。そして、プロセッサ(また、装置内にある)により、データを正しい記憶装置へ転送するためにデータを解析して操作する。この、記憶そして転送プロセスは、典型的にデータ・アクセスの速度を低下する。
【0009】
装置はあるスイッチングを実行するが、多数のサーバーが存在し(3つよりも多数)、各装置はわずかなポートを持つため(普通、2つ又は4つのみ)、スイッチ112が多くのサーバーを少ない装置へ接続するために必要とされる。それにもかかわらず、スイッチ112はほとんどビルトイン・インテリジェンスを持たず、単に、データを選択された装置114へ転送するだけである。装置の1つの限界は、多くの装置がしばしば制限された又は設定数のポートを持つという事実である。ポートを装置に追加することは可能であるが、典型的に大変に高価である。各1つ又は2つのポートは高価なCPU又はサーバー・カードによりサポートされている。従って、ポートを追加することは、全ファイル・カード(記憶及び転送機能と仮想化を実行する)を装置に追加しなければならず、普通は大変に高価である。代替的には、装置を単にSANに追加することである。しかし、これは大変に費用がかかる傾向を持つ。
【0010】
さらに、SANは、普通、装置114内で「仮想化」として知られる機能を一般に実行する。仮想化は、1つ又は複数の物理的記憶装置の空間が特定のユーザに割当てられるが、その空間の物理的位置がユーザに未知のままに留まる時に発生する。例えば、ユーザはその会社の「エンジニアリング記憶空間」ENG:をアクセスすることができる。彼又は彼女が取付けられたディスク装置をアクセスして又は「見る」時、仮想空間ENG:にアクセスして「見る」。それにもかかわらず、ENG:空間は、いくつかの物理記憶装置上に分割でき、又は、単一記憶装置上で断片化さえできる。従って、サーバーが仮想装置(例えば、ENG:)及びブロック番号を要求する時、装置は、要求された仮想装置と物理的に相互に関連する記憶装置を決定し、それにデータを送らなければならない。
【0011】
SANは、数年前に導入されたが、幅広い使用については、相互操作性問題、利用可能な熟練の欠如、及び高い導入コストが、大きな障害として残っている。例えば、現在のSANは、高い配備コストと高い管理コストを有する。再び、図1を参照すると、スイッチ、装置、及びゲートウェイの各々は典型的に異なる売り手からのものであり、売り手特有管理ツールの多用を生じ、標準的な管理の欠如を生む。この結果、SANを配備するために、装備を複数の売り手から購入しなければならない。図1に示すように,スイッチ、装置、ゲートウェイ、記憶装置、サーバー、及び、ルーターの各々は、管理ステーション120として示されるそれ自身の管理を有する。独立の物理的管理ステーションが示されているが、しばしば独立な管理は、互いに通信しない単一コンピュータ上の売り手特有の独立のソフトウェアの形式であることを理解する。この結果、SANの中央管理が存在せず、普通、多くの人による管理がしばしば必要な複数の管理ステーションが存在するため、その管理コストは高い。
【0012】
さらに、SANのために仮想ターゲットを供給すること(又は、「生成する」こと)は、重荷になっている。新しい仮想ターゲットの生成が必要な時、人間の管理者は、性能、初期に必要な容量と潜在的な成長に必要な容量、データ利用可能性、及びデータ保護など、データについてのアプリケーション要求を最初に決定しなければならない。より詳細には、管理者は1つ又は複数の物理装置の一部又は全部を仮想ターゲットに割当て、そして最良の性能を作り及びデータ安全性のためのアクセス制御を作るためにこれらの装置を構成しなければならない。管理者はさらに、記憶ネットワークを通るルートが必要とされる利用可能性のレベルを持つことを確保し、そしてもし、1つの経路がダウンした時にターゲットへの別の経路が利用可能となるように、高い利用可能性が必要とされる場合は代替的な経路を導入しなければならない。さらに、管理者は仮想ターゲットがアクセス可能となる前に機能性を証明するために環境を試験しなければならない。全体に、このような仮想ターゲットを生成するために数日又は数週間を要して、この期間はSANのユーザにとってしばしば受け入れることができない。
【0013】
発明の開示
本発明の1つの実施の形態によるシステムは、スイッチとの通信で自動的に記憶資源を発見して、それら資源の性質に関する情報を得る。1つの実施の形態では、性質が知られると、装置は予め定義されたポリシーに従って分類され、そして記憶プール中に置かれる。
【0014】
プールから、仮想ターゲットが供給できる。1つの実施の形態では、仮想ターゲットはユーザ・ドメインに置かれる。また、イニシエーター接続が1つの実施の形態で供給される。仮想ターゲット、イニシエーター接続、及びユーザ・ドメインの全てが1つの実施の形態ではサービスの品質(QoS)ポリシーを定義するために機能する。
【0015】
本発明の別の実施の形態によるシステムは、さらにイニシエーターとターゲットとの間の接続のためのサービスの品質を実行できる。1つの実施の形態では、サービスの品質は、イニシエーターからターゲットへ送ることのできる同時的要求を制御することにより実行される。
【0016】
本発明のさらに別の実施の形態によるシステムは、負荷平衡を動的に供給できる。1つの実施の形態では、負荷平衡は選択された経路が最短の平均応答時間を有するターゲットへの複数の代替的経路の1つに要求を送ることにより実行される。別の実施の形態では、負荷平衡は最短の平均応答時間を持つミラーされたターゲットへ要求を送るミラーされたターゲット内で実行される。
以下に、本発明の特定の例示的な実施の形態を添付図面を参照して説明する。
【0017】
実施の形態の説明
図2に示されるシステム200は本発明による記憶スイッチを含む。図示されるように、このようなシステムは既存のシステムを大幅に簡潔にする。1つの実施の形態では、システム200は複数のサーバー202を有する。説明目的のために、3つのサーバー202が示されるが、他の実施の形態ではより多い又は少ないサーバーも使用できる。図示しないが、サーバーはLANにも接続できる。図示するように、各サーバー202は記憶スイッチ204に接続される。しかし、別の実施の形態では、各サーバー202は存在する記憶スイッチ204の全てよりも少ないものに接続してよい。サーバーとスイッチとの間に形成される接続はどんなプロトコルを使用できるが、1つの実施の形態では、接続はファイバー・チャンネル又はギガビット・イーサネット(iSCSIプロトコルに従いパケットを運ぶ)のいずれかである。他の実施の形態は、インテル社により定義されるインフイニバンド・プロトコル、又は他のプロトコル又は接続を使用してもよい。
【0018】
図示された実施の形態では、各スイッチ204は次に複数の記憶装置又はサブシステム206の各々に接続される。しかし、他の実施の形態では、各スイッチ204は全ての記憶装置又はサブシステム206よりは少ないものに接続できる。記憶スイッチ204と記憶装置206との間に形成される接続はどんなプロトコルも使用できるが、1つの実施の形態では、接続はファイバー・チャンネル又はギガビット・イーサネットのいずれかである。
【0019】
いくつかの実施の形態では、1つ又は複数のスイッチ204の各々がメトロポリタン・エリア・ネットワーク又はインターネットなどのワイド・エリア・ネットワーク208に接続される。記憶スイッチ204とWAN208との間に形成される接続は一般に大部分の実施の形態ではインターネット・プロトコル(IP)を使用する。MAN/WAN208に直接的に接続しているように図示されるが、他の実施の形態ではスイッチ204とMAN/WAN208との間に中間にルーター(図示しない)を使用してよい。
【0020】
さらに、それぞれの管理ステーション210が、各記憶スイッチ204へ、各サーバー202へ、及び各記憶装置206へ接続している。管理ステーションが別々のコンピュータとして示されているが、単一コンピュータへに集中された装置の各タイプを管理するためのソフトウェアであることが理解される。
【0021】
図3は、本発明の代替的な実施の形態によるシステムを示す。このような実施の形態では、2つのSAN302、304が形成されて、各々が本発明の実施の形態により1つ又は記憶スイッチ204を使用する。SAN302及び304は、インターネットなどのWAN208を介してスイッチ208により接続されている。接続208はどんな標準又はプロトコルであることができ、しかし、1つの実施の形態では、ソネット上のパケット(PoS)又は10ギガビット・イーサネットである。
【0022】
図4は、本発明のさらに別の実施の形態のシステムを示すもので、スイッチ204が互いに直接的に接続されている。図2又は3に示される実施の形態のいずれでも、もし、1つより多いスイッチが使用される場合、これらのスイッチは図4に示すように接続できる。
【0023】
本発明による記憶スイッチは、広範囲に分布された非常に多数の管理ステーションと多数の熟練した管理用人員を持つ代りに、共有記憶プールとして使用できる広範囲に分布された記憶装置の集中管理を可能にする。このような記憶スイッチは、「インテリジェント」スイッチであり、図2と図1を比較することで理解できるように、スイッチ、装置、及びゲートウェイの機能は本発明の1つの実施の形態による記憶スイッチ204中に効率的に統一化されている。そのスイッチング機能に加えて、このような記憶スイッチ204は従来のアーキテクチャでは装置により典型的に提供される仮想化と記憶装置(例えば、ミラーリング)を提供し、またプロトコル翻訳を提供する。また、本発明のいくつかの実施の形態による記憶スイッチは追加の機能を実行する(例えば、仮想プライベート・ネットワークを介してのデータ・セキュリテイ)。このような追加の機能は、負荷平衡など伝統的にサーバーにより実行される従来システムでは他の装置により実行される機能、及び、記憶アクセスのためのサービスの品質など従来のシステムでは以前利用できなかった他の機能を含む。さらに、1つの実施の形態では、記憶アクセス機能のためのサービスの品質が「アプリケーション認識」、すなわち、提供されるサービスの品質は記憶ターゲットへの接続を開始するアプリケーションの性質により指定される。
【0024】
さらに、本発明による実施の形態によれば記憶スイッチのインテリジェンスは各スイッチ・ポートへ配達される。この配達されたインテリジェンスは、システムのスケーラビリテイと利用可能性を可能にする。
【0025】
さらに、配達されたインテリジェンスは本発明の1つの実施の形態によるスイッチがデータを「ワイヤ速度」、記憶スイッチ204が典型的なネットワーク・スイッチ(図1中のスイッチ112など)により導入されるもの以上の待ち時間をデータパケットに導入しないことを意味する、で処理することを可能にする。すなわち、スイッチに対する「ワイヤ速度」は特定のポートへの接続により測定される。従って、OC−48接続を有する1つの実施の形態では、記憶スイッチはOC−48速度(2.5ビットn秒)を達成できる。OC−48速度で移動する2キロバイト・パケット(10ビット・バイトを持つ)は、スイッチに入るのに8マイクロ秒の短い時間を要する。1キロパイト・パケットは、4マイクロ秒の短い時間を要する。100バイトの最小パケットは、単に400n秒だけを要する。しかし、言葉「ワイヤ速度」処理がここで使用される時、このような処理が100バイト・パケットを処理するために400n秒の短い時間を要することを意味するのではない。それは1つの実施の形態で記憶スイッチがOC−48速度で1500バイト(1バイトが10ビットであるように、10ビット符号化を持つ)の最大イーサネット・パケットを処理できること、すなわち、約6μ秒(キロバイト当たり4μ秒、又は、n秒当たり2.5ビット)で処理できることを意味する。1GBイーサネット・ポートを持つ実施の形態では、処理が一般にナノ秒当たり1ビットとして定義される場合、そのポートの「ワイヤ速度」データはキロバイト当たり10μ秒となり、スイッチがキロバイトを処理するために10μ秒までを有する。2GBファイバー・チャンネルを持つ実施の形態では、「ワイヤ速度」はキロバイト当たり5μ秒となる。さらに別の実施の形態は、10ギガバイト・イーサネット又はOC−192又はそれ以上でデータ処理をしてもよい。
【0026】
ここで使用される「仮想化」は、本質的に、ユーザに与えられた仮想ターゲット空間を1つ又は複数の物理的記憶ターゲット装置上の空間へマッピングすることを意味する。「仮想」及び「仮想ターゲット」は、加入者毎に割当てられた記憶空間が記憶スイッチ204に接続する1つ又は複数の物理的記憶ターゲット装置のどこでも良いという事実から来る。物理的空間は、1つ又は複数の「論理単位」(LU)を含むことのできる「仮想ターゲット」として供給できる。各仮想ターゲットは、しばしば、iSCSI及びFCプロトコルで使用される1つ又は複数のLU番号(LUN)で識別される1つ又は複数のLUからなる。各論理単位は、一般に1つ又は複数のエクステント、物理的装置上の記憶空間の連続したスライス、を含む。すなわち、仮想ターゲットは記憶装置全体(1エクステント)、単一記憶装置の一部(1つ又は複数のエクステント)、又は、複数の記憶装置の部分(複数エクステント)を占めることができる。物理的装置、LU、エクステント数、及びそれらの正確な位置は加入者ユーザには重要ではなく、そして見ることができない。
【0027】
記憶空間はいくつかの異なる記憶装置から来てもよいが、各仮想ターゲットは時々ここで「ドメイン」と呼ばれる1つ又は複数の「プール」に属している。同じドメインのユーザのみが彼等のドメイン中の仮想ターゲットを共有することを許される。また、ドメイン組がメンバーとしていくつかのドメインを含んで形成できる。ドメイン組の使用は複数ドメインのユーザの管理を容易にする。例えば、もし、1つの会社が5つのドメインを持つが、サービスを止めることを選択した場合、単に1つの動作がそのドメイン組を全体として使用不可能にするのに必要とされる。ドメイン組のメンバーは他のドメインのメンバーであることができる。
【0028】
図5は、本発明の実施の形態による記憶スイッチ204の機能ブロック図である。1つの実施の形態では、記憶スイッチ204は複数のラインカード502、504及び506と、複数のファブリック・カード508と、2つのシステム制御カード510とを含む。以下に、各々を詳細に説明する。
【0029】
システム制御カード
2つのシステム制御カード510の各々は、全てのラインカード502、504、506に接続している。1つの実施の形態では、このような接続は、SCCとのイーサネット接続を介して周知のI2C信号により形成される。SCCは、I2C接続により、電源投入の制御と、個別のラインカード及びファブリック・カードの監視をする。イーサネット接続を介してのカード内通信を使用して、SCCはさまざまな記憶サービス、例えば、仮出願番号第60/325,704号に記載されるスナップショップ及び複製、を開始する。
【0030】
さらに、SCCは、スイッチに接続された物理的装置と、例えば、サーバー及び記憶装置と、全ての仮想ターゲットと、記憶スイッチとの構成情報を追跡するデータベース512を維持する。さらに、データベースは、使用、エラー、アクセス・データ、ユーザ、仮想ターゲットのドメイン組及び異なるドメインに関する情報を維持する。データベースのレコードは、ここでは「オブジェクト」と呼ばれる。イニシエーター(例えば、サーバー)及びターゲット(例えば、記憶装置)は、周知のワールド・ワイド・ユニーク識別子(WWUI)を持つ。データベースは、SCC内のメモリ装置内に維持される。1つの実施の形態では、メモリ装置はフラッシュ・メモリから形成されている。しかし、他のメモリ装置も満足である。
【0031】
記憶スイッチ204は、管理ステーション210によりイーサネット接続を使用してSCC510を介して到達できる。従って、SCCは、管理ステーションに接続するために追加のイーサネット・ポートを含む。
【0032】
2つのSCC510の内の1つは主動作SCCである。他は予備であり、記憶スイッチ中の動作に同期しているが、直接にはそれらを制御しない。SCCは、もし1つのSCCが故障したならば、他が主コントローラとなるという、高度の利用可能性モードで動作する。
【0033】
ファブリック・カード
スイッチ204の1つの実施の形態では、3つのファブリック・カード508が存在する。他の実施の形態では、より多い又は少ないファブリック・カードを持つことができる。1つの実施の形態では、各ファブリック・カード508は、ラインカード502、504、及び506の各々に接続し、全てのラインカードを一緒に接続する役割を果たす。1つの実施の形態では、ファブリック・カード508の各々は、全てのラインカードが充たされている時、最大トラフイックを処理できる。各ラインカードにより処理されるこのようなトラフイック負荷は、1つの実施の形態で、160Gbpsまでである。他の実施の形態では、より高い又は低い最大トラフイック容積を処理できる。もし、1つのファブリック・カード508が故障した場合、2つの生き残ったカードは可能な最大スイッチ・トラフイック:1つの実施の形態では、各ラインカードは20Gbpsのトラフイック、10Gbps入場及び10Gbps出場を発生する、に対する十分な帯域幅をまだ持つ。しかし、通常の環境下では、3つの全てのファブリック・カードが同時に活動する。各ラインカードから、データ・トラフイックがデータを収容できる3つのファブリック・カードのいずれか1つに送信される。
【0034】
ラインカード
ラインカードは、サーバー装置及び記憶装置への接続を形成する。1つの実施の形態では、記憶スイッチ204は、16ラインカードまで支援する。他の装置では異なる数を支援できる。さらに、1つの実施の形態では、3つのタイプのラインカードが使用される。ギガビット・イーサネット(GigE)カード502と、ファイバー・チャンネル(FC)カード504と、WANカード506とである。他の実施の形態はより多い又は少ないタイプのラインカードを含んでも良い。GigEカード502は、1つの実施の形態ではiSCSIサーバー又はiSCSI記憶装置(又は、他のイーサネット・ベース装置)のいずれかに接続する、イーサネット接続用である。FCカード504は、ファイバー・チャンネル・プロトコル(FCP)サーバー又はFCP記憶装置のいずれかに接続するファイバー・チャンネル接続用である。WANカード506は、MAN又はWANに接続するためである。
【0035】
図6は、本発明の実施の形態による記憶スイッチ204に使用される一般的なラインカード600の機能ブロック図を示す。この図は、全てのタイプのラインカード、例えば、GigE502、FC504、又はWAN506、において共通なコンポーネントを示す。他の実施の形態では、ラインカードの他のタイプが、インフイニバンドなどの他のプロトコルを使用する装置へ接続するために使用できる。ラインカードの相異点は後で説明する。
【0036】
ポート
各ラインカード600は、複数のポート602を含む。ポートは、サーバー又は記憶装置のいずれかへのラインカードの接続を形成する。図示された実施の形態では8つのポートが示されているが、他の実施の形態ではより多い又は少ないものが使用できる。例えば、1つの実施の形態では、各GigEカードは8つまでの1Gbイーサネット・ポートを支援でき、各FCカードは8つの1GbFCポート又は4つの2GbFCポートのいずれかまでを支援でき、各WANカードは4つのOC−48ポート又は2つのOC−192ポートのいずれかまでを支援できる。従って、1つの実施の形態では、最大の可能な接続は、スイッチ204当たり128ポートである。各ラインカードのポートは、フルデュプレックスであり、サーバー又は他のクライアントのいずれか、又は、記憶装置又はサブシステムへ接続する。
【0037】
さらに、各ポート602は、付随メモリ603を持つ。単に1つのメモリ装置が1つのポートに接続されているのが示されているが、各メモリポートはそれ自身のメモリ装置を有してよく、また、全てのポートが単一のメモリ装置へ接続してもよい。説明の簡潔のため、単一のメモリ装置がここでは1つのポートに接続されているのが示されている。
【0038】
記憶プロセッサ・ユニット
1つの実施の形態では、各ポートは記憶プロセッサ・ユニット(SPU)601と関連付けられる。1つの実施の形態では、SPUは、データ・トラフイックを高速に処理して、ワイヤ速度操作を可能にする。1つの実施の形態では、SPUはいくつかの要素:パケット集合及び分類エンジン(PACE)604、パケット処理ユニット(PPU)606、SRAM605、及びCAM607、を含む。他の実施の形態はより多い又は少ない要素を使用でき、また、同じ機能を得るために要素を結合できる。例えば、いくつかの実施の形態は、SPU内にPACE及びPPUを含むが、SPUはメモリ要素を他のSPUと共有することができる。
【0039】
PACE
各ポートは、パケット集合及び分類エンジン(PACE)604に接続されている。図示されるように、PACE604は2つのポートを二倍の帯域幅を有する単一データ・チャンネルに集合する。例えば、PACE604は、2つの1Gbポートを単一の2Gbデータ・チャンネルに集合する。PACEは、仮出願番号第60/325,704号に記載されるように、各受信パケットを制御パケット又はデータパケットに分類する。制御パケットは処理のためにブリッジ616を経由してCPU614へ送られる。データパケットは以下に説明するパケット処理ユニット(PPU)606へ追加されたローカル・ヘッダと共に送信される。1つの実施の形態では、ローカル・ヘッダは、16バイトであり、64バイトのデータ「セル」を生ずる(16バイトのヘッダ及び48バイトのペイロード)。ローカル・ヘッダは、情報を運ぶために使用され、スイッチ204により内部的に使用される。ローカル・ヘッダは、パケットがスイッチを去る前に除去される。従って、ここで使用される「セル」はスイッチ内で局所的に使用される移送単位であり、ローカル・ヘッダとオリジナル・パケット(いくつかの実施の形態では、元のTCP/IPヘッダも元のパケットから除去される)を含む。しかし、本発明の全ての実施の形態がローカル・ヘッダを作成し、外部パケットとは異なる「内部パケット」(セル)を持つのではない。従って、ここで使用される言葉「パケット」は「内部」又は「外部」パケットのいずれかを指すことができる。
【0040】
分類機能は、スイッチが、従来システムの記憶及び転送モデルを使用せずに、ワイヤ速度で記憶仮想化及びプロトコル翻訳機能を実行可能にすることを助ける。各PACEはPPU606への専用化経路を持つが、図示された実施の形態中の4つのPACEの全ては、CPU614への経路を共有する。これは、1つの実施の形態では、104MHz/32(3.2Gbps)ビット・データ経路である。
【0041】
パケット処理ユニット(PPU)
PPU606は、オンザフライで仮想化及びプロトコル翻訳を実行する。これはセルは、仮出願番号第60,325704号に記載されるように、この処理のためにバッフアされないことを意味する。また、後述する他のスイッチ・ベース記憶サービス機能を実行する。1つの実施の形態では、PPUは、セルを入場と出場の両方向へ、OC−48速度又は2.5Gbpsで移動できる。他の実施の形態では、セルをOC−192速度又は10Gbpsで移動できる。1つの実施の形態では、PPUは、共に同時的に動作する入場PPU6061及び出場PPU6062を含む。入場PPU6061は、PACE604から入来するデータを受信して、データをトラフイック・マネージャ608iヘ送信する。出場PPU6062は、トラフイック・マネージャ608eからデータを受信して、データをPACE604へ送信する。図6に示されるただ1つのPPU606が入場PPU6061及び出場PPU6062を有するが、1つの実施の形態では全てのPPU606が入場及び出場PPUの両方を含むことが理解される。説明の簡潔さのため、図6に示されるただ1つのPPUのみが入場及び出場PPUの両方を備えている。
【0042】
多数の記憶接続(例えば、サーバーから仮想ターゲット)が、各ポートで同時に確立できる。しかし、各接続は仮想ターゲットに対して独特であり、TCP制御ブロック・インデックス(iSCSI接続の場合)及びポート番号により独特に識別できる。接続が確立される時、ラインカード600のCPU614は、PPU606に活動仮想ターゲットをそれに接続ために仮想ターゲット記述子(VTD)を送信することにより知らせる。VTDは、PPUがデータについて適当に動作、例えば、仮想化、翻訳、及びさまざまな記憶サービスの実行、をするのに必要な仮想ターゲット及び接続とに関する全ての関連情報を含む。VTDは、SCCデータベース中のオブジェクトから導出され、普通、SCCデータベース中の関連オブジェクト中に記憶されている情報の小組を含む。図7aに本発明の1つの実施の形態のVTD中のフィールドの例が示される。しかし、本発明の他の実施の形態は、より多い、少ない又は異なるフィールドを持つことができる。
【0043】
同様に、物理的ターゲット記述子(PTD)が、本発明の実施の形態で使用される。PTDは、現実の物理的装置、それらの個別のLU、又はそれらの個別のエクステント(全体LU又は連続する部分)を記述し、そしてVTDのそれと同様な情報を含む。また、VTDと同じく、PTDはSCCデータベース中のオブジェクトから導出される。図7bに本発明の1つの実施の形態のPTDのフィールドの例を示す。しかし、本発明の他の実施の形態は、より多い、少ない又は異なるフィールドを持つことができる。
【0044】
VTD及びPTDを記憶してそれらに高速にアクセスするために、1つの実施の形態では、PPU606がSRAM605及びCAM607に接続されている。SRAM605は、VTD及びPTDデータベースを記憶する。また、VTD識別子(VTDID)又はアドレス、及びPTD識別子(PTDID)のリストが、VTDの高速アクセスのためにPPUCAM607中に維持される。VTDIDは、TCP制御ブロック・インデックス及びLUNを用いてインデックス(マップ)される。PTDIDは、VTDIDを使用してインデックスされる。さらに、IPルーテイング・サービスのために、CAM607は、経路が追加又は除去された時にCPUにより更新される経路テーブルを含む。
【0045】
単に1つのCAM及びSRAが、1つのPPUに接続するように示されているが、これは図面の簡潔さを維持するためであることに注意する。さまざまの実施の形態では、各PPUはそれ自身のCAM及びSRAM装置に接続されるか、又は、PPUは単一のCAM及び/又はSRAMに全て接続される。
【0046】
PPUへの各未決の要求については(例えば、読出し又は書込み)、要求の状態を追跡するためにタスク制御ブロックがPPUSRAM607中に設定される。入場PPU上の記憶スイッチにより受信された要求の状態を追跡する入場タスク制御ブロック(ITCB)及び出場PPU上の記憶スイッチにより送信される要求の状態を追跡する出場タスク制御ブロック(ETCB)が存在する。各仮想ターゲット接続については、多数の同時的要求が存在し得、従って、多くのタスク制御ブロックが存在し得る。タスク制御ブロックは要求が開始される時に割当てられ、要求が完了する時に解放される。
【0047】
トラフイック・マネージャ
各ラインカード600上に2つのトラフイック・マネージャ(TM)608:入場トラフイックのための1つのTM608i及び出場トラフイックのための1つのTM608e、が存在する。1つの実施の形態では、入場TMは64バイト・データセルの形式のセルを全ての4つのSPUから受信する。このような実施の形態では、各データセルは、16バイトのローカル・ヘッダと48バイトのペイロードを持つ。ヘッダは、TMにセルの宛先ポートを知らせるフローIDを含む。いくつかの実施の形態では、SPUはまた、セルをTMへ転送する前にTMヘッダをセルに取付けてもよい。また、いくつかの実施の形態では、TM又はSPUのいずれかは、セルをファブリック・カードを通じての送信のためにより小さいセルに分割できる。
【0048】
入場TMは、1つの実施の形態では、データセルを128ビット104Mhzインターフェイス610を経由してファブリック・カードへ送信する。他の実施の形態では、125Mhz又は他の速度で動作する。出場TMはファブリック・カードからデータセルを受信してそれらを4つのSPUへ配達する。
入場及び出場TMの両方は、配達のためにセルを待ち行列させるための大きなバッフア612を持つ。入場及び出場TMのための両バッフア612は、64MBであり、多数のパケットを待ち行列できる。SPUは、普通、ファブリック・カードの出力流れは入力流れと同じ程度に速いので、セルを入場TMへ素早く送信できる。従って、セルは素早く出場TMへ移動する。一方、出場TMは、出力ポートが渋滞又は複数の入場ラインカードにより供給されるため、バックアップされてよい。このような場合、操作を素早くするように出力SPUに知らせるため、出力セルのヘッダ中にフラグが設定される。また、出場TMは、以下に説明する記憶アクセスのためのサービスの品質を提供する際に使用される流れ制御機能を活性化するために、入場SPUへ要求を送信する。インターネット上の通信トラフイックとは異なり、記憶トラフイックに対しては、パケット又はセルを落とすことは許されないことに注意する。従って、バッフア中のセルの量が指定された閾値を越えると直ちに、SPUはバッフアのオーバーフローを避けるために入力トラフイックを遅くするためその流れ制御機能を活性化する。
【0049】
ファブリック接続
ファブリック接続610は、TMの256ビット・パラレル信号(それぞれ、128ビット入場及び128ビット出場)を、160Gbpsのバックプレーンへの16ビット・シリアル・インターフェイス(8ビット入場及び8ビット出場)へ変換する。従って、バックプレーンは、16分の1のピンで16倍早い速度で動作している。この変換は、数千の接続ピンとワイヤを無しに合理的なコストで高い利用可能度のバックプレーンの構成を可能にする。さらに、1つの実施の形態では3つのファブリック・カードが存在するため、1つの実施の形態では各ラインカード上に3つの高速コネクタが存在し、これらコネクタの各々は8ビット信号を3つのファブリック・カードのそれぞれに接続する。もちろん、他の実施の形態は3つのファブリック・カード610を必要としないであろう。
【0050】
CPU
各ラインカード上には、プロセッサ(CPU)614が存在する。1つの実施の形態では、プロセッサはパワーPC750Cxeである。1つの実施の形態では、CPU614は、バス・コントローラ615とブリッジ616とを経由して3.2Gbバスにより各PACEに接続する。さらに、CPU614は各PPU、CAM及びTMにも接続する。しかし、いくつかの実施の形態では、この接続はより遅い40Mbpsである。3.2Gb及び40Mbpsの両経路はCPUがラインカード中の大部分の装置と通信することを可能にし、そしてラインカード上の全ての装置の内部レジスタを読取り及び書込むことを可能にし、マイクロコードをダウンロードし、そして制御パケットを送信及び受信することを可能にする。
【0051】
各ラインカード上のCPUは、電源投入時に各チップを初期化する責任を持ち、SPU及びマイクロコードが必要な各ポートへマイクロコードをダウンロードする。ラインカードが動作状態になると、CPUは制御トラフイックを処理する。仮想ターゲット接続を確立するのに必要な情報については、CPUはSCCから情報を要求し、次にSCCデータベース中の適当なオブジェクトから情報を得る。
【0052】
ラインカード−ポートの区別
ラインカードの各タイプのポート、例えば、GigE、FC、又はWANは、1つの実施の形態では各ラインカードは1つのタイプのポートのみを支援するため、別個である。以下に1つの実施の形態のポートの各タイプについて説明する。もちろん、別の実施の形態では、インフイニバンドなどの他のプロトコルを支援するため、他のラインカード・ポートが設計できる。
【0053】
GigEポート
ギガビット・イーサネット・ポートは、iSCSIサーバーと記憶装置に接続する。GigEポートは全ての種類のイーサネット・トラフイックを運ぶが、本発明の1つの実施の形態によるワイヤ速度で記憶スイッチ204により一般に処理されるネットワーク・トラフイックは、TCP/IPパケット中のiSCSIパケットデータユニット(PDU)だけである。しかし、他の実施の形態では、イーサネット上を運ばれる他のプロトコル(ネットワーク・ファイル・システム(NFS)のような)によるパケットが、GigEポートで受信されて、SPU及び/又はCPUにより処理されてよい。
【0054】
GigEポートは、仮想ターゲット又はiSCSI装置のためにTCP/IPセグメントを送受信する。仮想ターゲットのためにTCP接続を確立するために、ラインカードCPU614とSCC510の両方が関与する。TCPパケットが受信される時、そして初期のハンドシェーキングが行われた後、TCP制御ブロックが生成されて、GigEポート・メモリ603中に格納される。また、接続を認証して仮想ターゲットの構成を理解する目的のため、VTDがSCCデータベースのオブジェクトから検索されて、CPUSDRAM605中に記憶される。TCP制御ブロックは、パケットが所属しそして1つの実施の形態ではTCPセグメント番号、状態、ウインドウ大きさ、及び接続に関する潜在的に他の情報を含む特定のTCPセッション又はiSCSI接続を識別する。さらに、TCP制御ブロックは、ここで「TCP制御ブロック・インデックス」と呼ばれるインデックスにより識別される。接続のためのVTDが作られて、SPURAM605中に記憶されなければならない。CPUは、そのSDRAM中に記憶されていて、元はSCCデータベースから得られたVTD情報を検索することにより、VTDを作成する。VTDIDが、VTDの素早い参照のためにSPUCAM607中のVTDIDのリスト中に設定される。VTDIDは、TCP制御ブロック・インデックスと合併され、そしてインデックスされる。
【0055】
ポートが、iSCSIPDUを受信する時、本質的にその接続の終了点として機能するが、その後にスイッチがターゲットへの新しい接続を始める。入場側でパケットを受信した後、ポートは、特定のTCP接続を識別するTCP制御ブロック・インデックスによりPACEへiSCSIPDUを配達する。非TCPパケット又はiSCSIPDUを含まないTCPパケットについては、ポートは接続の終点として動作することなくパケットを受信しそして送信する。典型的に、ポート602は、iSCSIパケットがTCP制御ブロック・インデックスを使用して受信又は送信されるPACE604と通信する。パケットのTCP制御ブロック・インデックスが、−1の時、それは非iSCSIパケットを識別する。
【0056】
FCポート
FCポートは、サーバー及びFC記憶装置に接続する。FCポートは、接続するサーバーにファイバー・チャンネル記憶サブシステム(すなわち、ターゲット)として見える。それはイニシエーター(例えば、サーバー)が接続を確立するために業界で知られているプロセス・ログイン(PLOGI又はPRLI)を実行することを可能にする仮想ターゲット装置の大きなプールを表すことを意味する。FCポートは、GID拡張リンクサービス(ELS)を受け取り、そしてそのイニシエーター(例えば、サーバー)によるアクセスのために利用可能なターゲット装置のリストを戻す。
【0057】
ファイバー・チャンネル記憶装置に接続する時、ポートはファイバー・チャンネルFポートとして見え、記憶装置から業界で知られているファブリック・ログインを受け取り、そしてGID要求を受け取りそして処理することにより名前サービス機能を提供することを意味する。換言すれば、ポートは記憶装置にはイニシエーターとして見える。
【0058】
さらに、FCポートは別の既存のSANネットワークに接続でき、このような例では他のネットワークには多くのLUを持つターゲットとして見える。
【0059】
ポートの初期化では、ラインカードCPUはファブリック・ログイン、プロセス・ログイン、及びGIDを送信し、そして同じものを受信する両方を完了しなければならない。SCCは、FCELSをiSNS要求及び応答に変換するためのアプリケーションを支援する。この結果、SCC内の同じデータベースは、あたかもそれらがiSCSIイニシエーター及びターゲットであるかのように、FCイニシエーター(例えば、サーバー)及びターゲット(例えば、記憶装置)の両方を追跡する。
【0060】
FC接続を確立する時、GigEポートとは異なり、FCポートはTCP制御ブロック又はその等価物を生成する必要がない。必要な全ての情報はFCヘッダから利用可能である。しかし、VTD(D_IDによりインデックスされる)はGigEポートについて説明したのと同様な態様で確立される必要がある。
【0061】
FCポートは、1Gb又は2Gbとして構成できる。1Gbポートとして、図6に示すように、2つのポートが単一のPACEへ接続されるが、2Gbポートとして構成される1つの実施の形態では、ポート・トラフイック及びSPUにより収容可能なトラフイックは、SPUでの渋滞を避けるために一致すべきである。1つの実施の形態では、ポートはPOS/PHYインターフェイスによりPACEへ接続される。各ポートは別個に構成できる。すなわち、1つのPACEは2つの1Gbポートを持つことができ、そして別のPACEは単一の2Gbポートを持つ。
【0062】
WANポート
WANラインカードを含む実施の形態では、WANラインカードは1つの実施の形態ではOC−48及びOC−192接続を支援する。従って、2つのタイプのWANポート:OC−48及びOC−192が存在する。OC−48については、各SPUに対して1つのポートが存在する。PACEには集合機能はないが、分類機能が存在する。WANポートはSONETに接続し、そしてそれはICMP、RIP、BPG、IP及びTCPなどのネットワーク・パケットを送信及び受信する時、GigEポートのように動作する。GigEポートとは異なり、WANポートは1つの実施の形態では、追加のハードウェア部品を必要とするIPSecとVPNによりネットワーク・セキュリテイを支援する。
OC−192はより高速のワイヤ速度を生ずるので、OC−192を支援する実施の形態ではより高速のSPUが必要とされる。
【0063】
スイッチに基づいた記憶動作
本発明の実施の形態による記憶スイッチは、プーリング及び供給を含む、さまざまなスイッチに基づいた記憶動作を実行する。記憶アクセスのためのサービスの品質及び負荷平衡の各々について以下に説明する。
iSCSI及びFCプロトコルの一般的な知識は仮定される。iSCSIのさらなる情報に関しては、参照によりここに組み込まれた、インターネット・ドラフト及びインターネット・エンジニアリング・タスク・フォース(IETF)による、2001年11月19日の進行中の作業、“draft−ietf−ips−iSCSI−09.txt”を参照。ファイバー・チャンネル(FC)のさらなる情報に関しては、参照によりここに組み込まれた、“情報システム−SCSI用dpANSファイバー・チャンネル・プロトコル”Rev.012、1995年12月4日(アメリカン・ナショナル・スタンダードの提案草案)を参照。さらに、両方は仮出願番号第60/325,704号に記載されている。
【0064】
記憶プール
図2の物理的な構成に示すように、本発明の実施の形態によるシステムは、1つ又は複数のサーバー202及び1つ又は複数の物理的装置206、すなわち、記憶装置又はサブシステム、に接続されたスイッチ204を含む。各物理的ターゲットは、1つ又は複数の論理的ユニット(LU)207を含む。仮想ターゲットが最終的に形成されるのはこれらLUからである。
【0065】
しかし、仮想ターゲットが生成、又は「供給」できる前に、スイッチは取付けられた及び/又はそれによりアクセス可能な物理的記憶装置及びそれらの物理的記憶装置の特性を「知る」ことが必要である。従って、本発明の1つの実施の形態では、記憶装置又はイニシエーター装置がスイッチに接続又は登録される時、スイッチは新装置の性能特性について学ばなければならない。1つの実施の形態では、スイッチは記憶アクセス時間、データ転送速度、キャシュ支援、装置への代替経路の数、RAID支援、及び物理的装置のLUに対する許容最大命令を測定できるユーテイリテイ・プログラムを含む。いくつかの実施の形態では、一旦、装置がスイッチに接続されると、ユーテイリテイ・プログラムが自動的に装置を発見して、そして必要な情報をユーザ又は他の介在なしに自動的に集める。このような実施の形態では、スイッチはポートへの信号線のリセット又は撹乱がある時、装置の追加/削除を発見する。装置が発見されると、性能特性に関する情報を集めるために装置へさまざまな質問が送られる。例えば、読出し/書込み命令が転送速度を測定し又はアクセス時間を検査するために送信できる。代替的に、いくつかの実施の形態では、性能特性を得ることは、管理者が管理ステーション210で性能特性を入力することにより行うことができ、そして、特性はスイッチ204へ供給される。
【0066】
全てにエンドユーザに対して一般に見えない、装置に関して集められた情報に基づき、本発明の1つの実施の形態では、スイッチはポリシーに基づき装置を分類する。例えば、最良特性を持つ装置はプラチナ装置として分類される。中間的な性能特性を持つ装置はゴールド又はシルバー装置として分類される。最低の性能特性を持つ装置はブロンズ装置として分類される。もちろん、定義されるタイプのポリシーは無限であり、本発明の実施の形態中で変化する。さらに、いくつかの実施の形態では、管理者は、例えば、プラチナ・ビルデイング1、プラチナ・ビルデイング2のようにポリシーを再分割でき、そしてこのように再分割されたポリシーへ資源を割当てる。しかし、本発明の1つの実施の形態に使用されるポリシーの一例を以下の表1に示す。
【0067】
表1
【0068】
図8に示すように、一旦、ポリシーが記憶装置に対して決定されると、その装置のLUが、時々、「ドメイン」とここで呼ばれる、記憶プール802へ割当てられてられる。各記憶装置が1つ又は複数のLUを含むため、特定の記憶装置の全てのLUは同じプールに割当てられる。しかし、1つの実施の形態では、各LUはスイッチにより別個の記憶ノードとしてみなされ、そして各LUはSCCデータベース512内のLUオブジェクトにより記述される。従って、各プールはメンバーとしてLUを有する。1つの実施の形態では、プールへの割当ては物理的記憶装置が動作する、例えば、iSCSI又はファイバー・チャンネル、プロトコルとは独立に実行される。当業者には理解されるように、各プールはLUがそれに割当てられたプールに関するリストによりスイッチ中で定義され、そのリストは1つの実施の形態ではSCCデータベース512中に記憶される。このようなリストはLUオブジェクトへのポインタを含む。
【0069】
一般に、各プールは、特定の性質を持つユーザのみによりアクセス可能である。例えば、記憶プールはビルデイング1にいるユーザのために設立でき、プールは「ビルデイング1共有ゴールド記憶プール」と命名される。別の例示的なプールは「エンジニアリング専用シルバー記憶プール」と命名されて、特定の会社のエンジニアリング・チームにより専用にアクセスされてよい。もちろん、プールの無限の変形が設定でき、ここに記載されて示されるものは例示のみである。
【0070】
さらに、1つの実施の形態では、2つの特別なプールが存在する。「デフォルト・プール」と「ノー・プール」である。デフォルト・プールは、記憶ネットワークへアクセスするだれにもアクセスを許容する。これに対して、「ノー・プール」は、一般的にユーザにアクセス可能ではなく、スイッチ自身又はシステム管理者のみにアクセス可能である。一旦、プールに割当てられると、LUはスイッチ自身又はシステム管理者により異なるプールへ再割当てできる。例えば、LUは最初はノー・プール中に置かれて、テストされて、そして後で、デフォルト・プール又は他のプールへ移動される。
【0071】
サービスの品質及びサービス・レベル・アグリメント
サービス・レベル・アグリメント(SLA)は、時々、ネットワーク通信中で使用されるが、記憶ネットワークの文脈で一般的には使用されておらず、サービスの品質(QoS)ポリシーと共に記憶ネットワーク中に使用されてはいない。SLA/QoSを提供することにより、ユーザはデータの記憶及び検索の条件を選択できる。1つの実施の形態では、QoSポリシーは、3つの要素:仮想ターゲットの供給、イニシエーター接続の供給、及びユーザ・ドメインの定義により定義される。以下に各々が説明される。しかし、いくつかの実施の形態は、QoSポリシーを定義するために3つの全ての定義を必要としない。例えば、いくつかの実施の形態は、仮想ターゲットの供給、及びイニシエーター接続の供給のみを必要とし、ユーザ・ドメインの定義を必要としない。他の実施の形態では、QoSポリシーを定義するために全く異なる要素を使用してよい。
【0072】
仮想ターゲットの供給
物理的装置についてのLUがアクセス可能プールに存在すると、それらLUについて仮想ターゲットが生成できる。一旦、生成されると、図9に示すように、サーバー(及びそれらのそれぞれのユーザ)は、1つ又は複数の仮想ターゲット902を「見る」であろう。仮想ターゲットは各々が1つ又は複数のエクステント907からなるが、彼等は物理的装置206を必ずしも「見」ない。エクステントは、物理的装置から全体LU又はその隣接する部分である。図9の例に示すように、例示的仮想ターゲット902中の各エクステントは、いくつかの物理的装置からの全体LUにより形成されている。なお、「エクステント」は、ターゲットが「仮想」であることを自覚しないサーバーなどのイニシエーターからLUNにより参照できる。LUにより使用されるプロトコルを含む仮想ターゲットの構造は、サーバーとは関連性がない。しかし、図9に示すように、各仮想ターゲットは物理的装置206のLUへマップするエクステントからなる。
【0073】
仮想ターゲットを供給するために、ユーザは本発明の1つの実施の形態において仮想ターゲットのためのいくつかの特性を選択する。特性は以下を含む。
・大きさ(例えば、ギガバイト単位)、
・記憶プール、1つの実施の形態では、ユーザはユーザがアクセスを許された記憶プールだけから選択するが、
・所望の利用可能性、例えば、常に利用可能(データが重要で、ダウンすること許されない)、普通の利用可能性等、
・仮想ターゲットのWWUI、
・バックアップ・プール、
・ユーザ認証データ、
・ミラーされたメンバー数、
・ミラーされたメンバーの場所(例えば、ローカル又は遠隔)
また、他の実施の形態では異なる、追加の、又はより少ない特性も選択できる。
【0074】
その後、スイッチは仮想ターゲットが形成できるかどうかを決定するため、そして特にスイッチは仮想ターゲットについて必要の大きさに合うLU(又はLUの部分)の数が利用可能かどうかを決定するため、選択されたプールからの利用可能な資源を解析する。もし、そうであるならば、仮想ターゲットが1つ又は複数のエクステントにより生成される。そして、仮想ターゲット・オブジェクトが、仮想ターゲット、そのエクステント、及びその特性を識別するSCCデータベース内に形成される。以下の表2に4つの仮想ターゲットについてのユーザ選択特性の例が示されている。
【0075】
表2−仮想ターゲット
【0076】
新仮想ターゲットを供給するのに加えて、本発明の実施の形態によるスイッチは、既存のターゲットを新しい又は異なる情報により修正することもでき、又は、それらがもはや必要でなければ仮想ターゲットを削除できる。
【0077】
イニシエーター接続の供給
サーバー又は他のイニシエーターがスイッチへ接続されてそしてイニシエーターがiSNS又はSLPを支援する時、1つの実施の形態では、イニシエーターはそれ自身をスイッチに登録して、イニシエーター・オブジェクトをSCSIデータベース内に記憶する。他の実施の形態では、スイッチはイニシエーター接続を生成し、更新し、又は削除するアクセス供給機能を含む。
アクセス接続−スイッチとイニシエーター(サーバーなど)との間の接続−を生成する際、ユーザは1つの実施の形態の表3に示されるさまざまなパラメータを指定する。
【0078】
表3−イニシエーター接続
【0079】
上記の情報の全て又はいくつかが、SCCデータベース中に記憶されたイニシエーター・オブジェクト内に格納される。接続が除去される時、イニシエーター・オブジェクトが削除される。
【0080】
そして、スイッチ、管理ステーション、又は他のネットワーク管理は仮想ターゲットを形成するためにイニシエーターに利用可能なLUを指定して、特定の接続のための記憶プールを生成する。
【0081】
ユーザ・ドメイン
物理的装置と同様に、仮想ターゲットは指定された特性を持つもののみにアクセス可能なプールに割当てられることができる。すなわち、物理的装置と同様に、仮想ターゲットはユーザ指定ドメイン(時々、ここではユーザ・ドメインと呼ばれる)、デフォルト・ドメイン(だれにもアクセス可能)、又はノー・ドメインに割当てることができる。各ドメインは、1つの実施の形態では、その領域へ割当てられた全ての仮想ターゲットのリストを含むSCCデータベース中のオブジェクトにより識別される。仮想ターゲットについては、ノー・ドメインは予備仮想ターゲット、ミラーされた仮想ターゲットのメンバー、又は別のスイッチからの遠隔仮想ターゲットを含むことができる。本質的に、仮想ターゲット・ノー・ドメインは、或るタイプの仮想ターゲットためのパーキング場所である。説明の便宜のために、仮想ターゲットに言及する時、プールはここでは「ドメイン」と呼ばれる。しかし、物理的装置に言及する時、プールは「プール」と呼び続ける。しかし、概念的には「プール」と「ドメイン」とは本質的に同じものであることに理解すべきである。
【0082】
一旦、上述したようにイニシエーター接続が供給されると、イニシエーターの要求に合った仮想ターゲットが供給され、イニシエーターのためのアクセス可能プール中に置かれるか、又は、前に供給された仮想ターゲットがイニシエーターに、例えば、ノー・ドメイン又はデフォルト・ドメインなどの別のドメインから仮想ターゲットをイニシエーターのユーザ・ドメインに移動することにより、アクセス可能とされる。(仮想ターゲット又はイニシエーター接続のいずれかが最初に供給できる。それが特定の順序で供給されるべき要求はない。)そして、一旦、イニシエーターが例えば読出し又は書込み要求を送信することにより、仮想ターゲットへのアクセスを要求すると、仮想ターゲット・オブジェクト及びイニシエーター・オブジェクトの両方がSCCデータベースから読み出され、そして、イニシエーター接続及び仮想ターゲットに関する情報が要求を処理する際に使用するために関連するラインカードに送られる。
【0083】
仮想ターゲットを供給する例が、図10a−dを参照して与えられる。図10aを参照すると、スイッチに接続された全部で6つのLU―LU1、LU2、LU3、LU4、LU5、LU6―を有する物理的装置があり、全てが2つのイニシエーターX及びYにアクセス可能なプール「X−Yユーザ・プール」中に置かれていると仮定する。もし、イニシエーターXが2つの仮想ターゲットを要求すると、1つの状況では、LUは仮想ターゲットVT1及びVT2を形成するために供給される。ここでは、VT1はエクステントとしてLU1−3を含み、VT2はエクステントとしてLU4−6を含み、VT1及びVT2は共にサーバーXユーザ・ドメイン中に置かれて、図10bに示すようにサーバーXが両方の仮想ターゲットにアクセスすることを可能にする。サーバーYは、Yユーザ・ドメイン中に仮想ターゲットが置かれていないため、VT1又はVT2のいずれにもアクセスしない。代替的に、図10cを参照すると、もし、サーバーX及びサーバーYが共に1つの仮想ターゲットを要求すると、前と同様にVT1及びVT2が供給されるが、VT1がサーバーXのユーザ・ドメインに置かれ、一方、VT2がサーバーYのユーザ・ドメインに置かれる。
【0084】
もし、代りに、Yがミラーされた仮想ターゲットMを要求すると、VT1及びVT2が仮想ターゲットMのメンバーとして生成される。VT1及びVT2はスイッチのノー・ドメイン中に置かれる。しかし、図10dに示すように、MはYにアクセス可能とされる。Mのメンバーとして、VT1及びVT2は独立にはアクセス可能ではない。
【0085】
本発明のいくつかの実施の形態では、1つのスイッチへ結合された装置と仮想ターゲットがイニシエーターにアクセス可能であるだけでなく、別のスイッチに供給された仮想ターゲットも同様にアクセス可能である。図11を参照すると、サーバーXがスイッチAに結合され、そしてサーバーYがスイッチBに結合されている。VT1がスイッチA中のサーバーXのドメインの一部として供給され、VT2がスイッチB中のサーバーYのドメインの一部として供給される。さらに、スイッチBがスイッチAへのイニシエーターとして供給され、スイッチAがスイッチBへのイニシエーターとして供給される。このようにして、スイッチAはスイッチBを経由してVT2にアクセスでき、スイッチBはスイッチAを経由してVT1にアクセスできる。従って、スイッチBを経由してアクセスされるためここではVT1’として呼ばれるVT1をサーバーYの領域中に含むことができ、ここではVT2’として呼ばれるVT2をサーバーYの領域中に含むことができる(物理的装置のLUは一時に1つのプールのみに属することができるが、仮想ターゲットは一時に1つのドメインよりも多くに属することができる)。XがVT2にアクセスする時、スイッチBはスイッチAをイニシエーターとして見る。同様に、YがVT1にアクセスする時、スイッチAはスイッチBをイニシエーターとして見る。1つの実施の形態では、管理者はスイッチBの選択された資源を他のスイッチ、例えば、スイッチA、又はその逆、に利用可能としてもよい。
【0086】
SLAの定義
本発明の1つの実施の形態では、イニシエーターによる仮想ターゲットへのアクセスが、ユーザにより選択されたQoSポリシーがその一部であるSLAに従って提供される。以下の表6に1つの実施の形態でユーザによりSLAのために選択できるいくつかのパラメータの例が示される。
【0087】
表4
【0088】
ユーザがSLAと一致する時、ユーザはサービスの品質(QoS)ポリシーも選択する。上述したように、1つの実施の形態では、QoSポリシーは一般的に仮想ターゲット(供給されるような)、イニシエーター接続(供給されるような)、及びユーザ・ドメインにより定義される。従って、上の表4を再び参照し、表中の最初の3つの項目、「イニシエーターのID」、「仮想ターゲットのID」及び「ユーザ・ドメインのID」は、これらの項目が供給されるとイニシエーター接続及び仮想ターゲットの属性が定義されるため、本質的にQoSポリシーを記述する。例えば、イニシエーター接続のための最小及び最大帯域幅は、既に識別されている(表2及び3を参照)。ユーザ・ドメインはポリシーの定義を補助する。例えば、イニシエーター接続又は仮想ターゲット接続がより遅いかどうかを決定し、そして、QoSを2つの内のより遅い方へ強制する。もちろん、上述したように、ユーザ・ドメインは全ての実施の形態で必要でないであろう。同様に、他の実施の形態は上の表4に示されたものより多い、少ない、又は異なるパラメータを使用してSLAを定義してよい。
【0089】
図12
図12は、1つの実施の形態で、QoSを提供できるように、仮想ターゲットと接続を供給するステップを要約する。図示されるように、本発明の1つの実施の形態によると、スイッチは、ステップ1202で、スイッチと関連した物理的装置の特性を発見して決定する。そして、スイッチは、ステップ1204で、これらの装置を分類して、これらの装置を特定の記憶プールに関連付ける。スイッチは、ステップ1208で、イニシエーター接続のための情報を受信して、ステップ1210で、接続を供給し、SCCデータベース中にオブジェクトを生成する。また、スイッチは、ステップ1212で、仮想ターゲットのためのパラメータを受信して、ステップ1214で、これらのパラメータに従い仮想ターゲットを供給し、もし、資源が利用可能ならば、SCCデータベース内にオブジェクトを生成する。ステップ1208−1214は、どんな順番でも実行でき、図12に示された順番は例示のみである。ステップ1216で、仮想ターゲットが供給された後、ユーザ・ドメインが生成されて、仮想ターゲットがユーザ・ドメインに置かれるか、又は、仮想ターゲットは既存のユーザ・ドメイン中に置かれる。また、ユーザは前に供給された仮想ターゲットにアクセスを試みることができる(従って、ステップ1214は全ての接続については必要ではないであろう)。最後に、ステップ1218で、本発明の実施の形態によると、スイッチは、SLA/QoSパラメータを受信する。
【0090】
オブジェクト
上述したように、各仮想ターゲット、各イニシエーター接続、及び各物理的装置は、それぞれのエンティテイについてオブジェクト中に含まれた情報によりSCCデータベース内で識別される。各仮想ターゲット・オブジェクト及び物理的ターゲット・オブジェクトは、それを構成するLU又はエクステントのリストを含む。仮想ターゲット・オブジェクトの一例は、本発明の1つの実施の形態では、次の情報を含む。
【0091】
・エンティテイ・タイプ
・エンティテイ識別子
・IPアドレス管理
・時間スタンプ及びフラグ
・ポート
・ドメイン情報
・SCNビットマップ
・容量と質問情報
・エクステントの数
・エクステントのリスト
・エクステント・ロケーター
・仮想モード・ページ
・サービスの品質のポリシー(例えば、表4の最初の3つの項目)
・統計−使用、エラー、及び特性データ
・SLA識別子
物理的ターゲット(又は、LU)オブジェクトは同様な情報を含んでよい。
【0092】
オブジェクト中、「エンティテイ・タイプ」はエンティテイが仮想ターゲット又は物理的ターゲットかどうかを識別する。「エンティテイ識別子」は、1つの実施の形態では、WWUIであり、いくつかの実施の形態では、ユーザにより生成される。「IPアドレス管理」は、エンティテイ、例えば、管理ステーションがそれにより構成される装置のアドレスを示す。例えば、仮想ターゲットは、本発明の実施の形態ではSCCを通じてアクセスされる管理ステーションにより構成される。
【0093】
「時間スタンプ及びフラグ」は仮想ターゲット又は他のエンティテイが生成され又は変更された時間などの事象を追跡するのに使用される。フラグは、仮想ターゲット中のデータのコピーなど、進行中の事象又はさまざまなサービスを指示するために使用される。「ポート」は、それを通じてLUがアクセスできるポートのリストを含み、ポート名とラインカード数、TCP/IPアドレス又はファイバ・チャンネル24ビット・アドレス、及び、ポートがエンティテイのための一次的又は二次的ポートであるかどうかに関する情報を含む。
【0094】
「ドメイン情報」は仮想ターゲット又はエンティテイが属する記憶ドメイン又はプールを含む。「SCNビットマップ」は仮想ターゲットのためのシステム変更通知を指示する。「容量と質問情報」は仮想又は物理的ターゲットがどれだけ大きいかを指示し、及び、装置ベンダーにより通常提供される質問情報を含む。例えば、物理的装置についての質問情報はしばしばその製造者を識別する。仮想ターゲットについての質問情報はしばしばその仮想ターゲットを生成したスイッチを識別する。
【0095】
物理的装置の各LUは、仮想ターゲットを形成するために使用されるエクステントと呼ばれる記憶空間の隣接した1つ又は複数の部分からなる。従って、「エクステントの数」はどれだけの数のエクステントが仮想ターゲットを形成するかを識別する。「エクステントのリスト」は、各エクステントを1つの実施の形態ではオフセット及び大きさにより識別する。例えば、3つのエクステントからなる10GB仮想ターゲットは、表5に示すように「エクステントのリスト」内でエクステントを識別してよい。
【0096】
表5
【0097】
「エクステント・ロケーター」は、正確にエクステントがどこに位置するか、すなわち、どの物理的装置上にあるかを識別する。例えば、上記の10GB、3エクステント仮想ターゲットは以下のエクステント・ロケーターを持つてもよい。
【0098】
表6
【0099】
表5及び表6の両方を使用したこの例では、仮想ターゲットの第1エクステントは、オフセット5GB(表6)で開始して2GB(表5)まで延びる物理的装置2(表6)にマップされていると決定できる。第2エクステント(表5)は、オフセット3GB(表6)で開始して5GB(表5)まで延びる物理的装置1(表6)にマップされている。最後に、第3エクステントは、オフセット15GB(表6)で開始して3GB(表5)まで延びる物理的装置3(表6)にマップされている。
【0100】
もし、いくつかの実施の形態で、仮想ターゲットがミラーされると、ミラーされた仮想ターゲットの各メンバーは、エクステント・ロケーターは異なるが、同一のエクステント・リストを持つ。
【0101】
「仮想モードページ」は、当業者には理解されるように、SCSI命令中にしばしば見られるモードページを識別する。この情報はブロック転送大きさ、直接データ支援、又はアプリケーション・ソフトウェアがSCSIモードページ命令により設定できそして検索できるどんな独特な情報を含む。
【0102】
「サービスの品質のポリシー」は、仮想ターゲットのサービスの特性を決定し、仮想ターゲットが供給される時に選択される。1つの実施の形態では、サービスの品質のポリシーは、表4の最初の3つの項目中に見られる識別子を使用して定義される。
【0103】
「統計」は、本発明の1つの実施の形態ではスイッチにより仮想ターゲットの実行時に収集される。これらは、本発明の1つの実施の形態では、使用、エラー。及び性能データを含み、以下にさらに説明される。
「SLA識別子」は、SLAに関する情報についてのSLAオブジェクトを識別する。
【0104】
統計
本発明の実施の形態によるスイッチは統計も収集する。1つの実施の形態では、1つのイニシエーターから1つの仮想ターゲットへの各接続に対して、以下の情報がイニシエーターに接続するラインカードのSPUにより収集される。
【0105】
1.全読み取りアクセス(読み取り要求数)
2.蓄積された読み取り転送バイト(記憶から読み取られた全バイト数)
3.蓄積された読み取り応答時間(要求の受け取りから応答を得るまでの時間)
4.全書込みアクセス(書込み要求数)
5.蓄積された書込み転送バイト
6.蓄積された書込み応答時間
7.蓄積された回復可能エラー
8.蓄積された回復不可能エラー
【0106】
各ラインカード上のCPUは、周期的にSPUから統計を要求する。SPUはデータを戻すことにより応答する。そして、SPUはデータをゼロにリセットして収集を開始する。
【0107】
収集されたデータに基づいて、CPUは以下の統計を維持する。
1.平均読み取りアクセス速度
2.最大読み取りアクセス速度
3.平均読み取り転送速度
4.最大読み取り転送速度
5.最小読み取り応答時間
6.平均読み取り応答時間
7.最大読み取り応答時間
8.平均書込みアクセス速度
9.最大書込みアクセス速度
10.平均書込み転送速度
11.最大書込み転送速度
12.最小書込み応答時間
13.平均書込み応答時間
14.最大書込み応答時間
15.十億の要求当たりの回復可能エラー
16.十億の要求当たりの回復不可能エラー
【0108】
1つの実施の形態ではある所定の時間間隔後に、CPUはSCCへ統計を転送して、関連VTD(SPU内に記憶されている)を更新する。別の実施の形態では、SCCはCPUから統計を要求し、CPUはそれをSCCへ提供する。いくつかの実施の形態では、SCCはまた、データが正確で過剰に蓄積されないように、その統計を周期的、例えば、週単位でリセットする。
【0109】
QoSの実行
1つの実施の形態では、イニシエーター接続帯域幅の最小パーセンテイジは、QoSにより保証される。従って、このような実施の形態で、複数のイニシエーターが単一のポート上で供給される時、全てのイニシエーターの全ての最小帯域幅の合計は100%に等しいか又はそれより少なければならない。対照的に、最大パーセンテイジは、同じ接続上で他の競合するユーザが存在しない時に接続の可能な使用を与える。従って、全てのイニシエーターの帯域幅の最大パーセンテイジの和は、接続の帯域幅100%を超えることができる。この場合、定義されたスイッチング優先度(表2参照)が、どのイニシエーターが予定の最初を獲得するかを決定する。
【0110】
従来の接続ネットワークでは(記憶ネットワークとは反対に)、QoSはユーザが支払った接続のデータ帯域幅のパーセンテイジを獲得することを保証するために使用される。それはオーディオ及びビデオなどの時間敏感データが、送信前に予約されたデータ帯域幅を交渉するか又は時間敏感送信を渋滞した状況でより高い優先度を与えるかのいずれかにより、許容できる中断のみを経験することを可能にする。QoSは、パケットを落とす出費によってスイッチング・トラフイックを優先付けることでさえ実行される。
【0111】
しかし、要求が1つ又は複数のパケットを含むことができる従来のネットワーク通信システムとは異なり、記憶システムの要求を落とすことは許容できない。1つの実施の形態では、要求が完了するまで、イニシエーターからターゲットへ送受信される全てのパケットを含む。例えば、iSCSI命令PDU、iSCSIR2T、iSCSI書込みデータPDU、及びiSCSI応答PDUは、単一の要求を形成する。本発明の実施の形態による記憶スイッチに対しては、1つの実施の形態では、データ帯域幅が秒当たりの要求数に要求の平均転送大きさを掛算して計算される。例えば、秒当たり1000要求で、平均転送大きさが8KBの場合、記憶装置の帯域幅は、8MB/秒(又は、80Mb/秒)である。しかし、スイッチは要求の平均転送大きさの制御を持たないため、記憶アクセスについてのQoSを実行することは秒当たり同時に許容される要求数を制御することになる。従って、もし、イニシエーターから多すぎる要求が送信されると、同時的要求の数は減少されなければならない。1つの実施の形態では、最悪のケースでは、一時に1つの要求のみがイニシエーターから送られることができる。
【0112】
仮想ターゲットは、最大数の同時的要求を支援する。複数の仮想ターゲットをアクセスするイニシエーターは、それがアクセスしている全ての仮想ターゲットについての要求の最大数の和に等しい要求の最大数を送信できる。しかし、複数のイニシエーターが1つ又は複数の仮想ターゲットを共有する時、利用可能な要求の最大数は、帯域幅の最小パーセンテイジのそれぞれのQoSパラメータに従って比例配分されて、イニシエーター間で共有される。例えば、もし、2つのイニシエーターが100の同時的要求を収容できる仮想ターゲットへのアクセスを共有していて、そして、イニシエーター1が帯域幅の最小の70%を得て、イニシエーター2が帯域幅の最小の30%を得ている場合、最初は、イニシエーター1は70要求を送信でき、イニシエーター2は30要求を送信できる。しかし、各イニシエーターはそれ自身の要求大きさを持つから、大きな要求大きさはより大きな帯域幅を消費して、より小さな転送大きさの他のイニシエーターを締め出す。従って、以下に説明するように、1つの実施の形態では、帯域幅の範囲を保証するために各イニシエーターによる可能な要求の調節が実行される。
【0113】
入場及び出場ラインカード内のトラフイック管理(TM)608(図6)は、異なる接続の転送帯域幅を監視する。また、TMは、QoSパラメータに基づいて配達を予定する。従って、TMは各共有された接続がその最小帯域幅を得て、最大帯域幅により制限されることを保証する。換言すると、TMは各接続が指定された範囲内にあることを保証する。そのようにするため、1つの実施の形態では、パケットがTMバッフア612内で蓄積される時、このような蓄積はイニシエーターがその限界に到達したことを指示する。TMは、違反したイニシエーターにその接続を遅くするように指示する制御メッセージをSPUへ送信する。このようなメッセージを受信した後、SPUは違反したイニシエーターへ許容される要求の数を減らして、一方、より少ない持分を受け取っているイニシエーターへ許容される要求の数を増加する。1つの実施の形態では、サーバーへの利用可能な要求の数の通知は、iSCSIPDU中のMaxCmdSNフィールドで行われる。
【0114】
例えば、イニシエーターA及びイニシエーターBの両方が、それらの最小帯域幅50%として共有されたイニシエーター接続を持つ。100KBの転送大きさを使用して、イニシエーターAは秒当たり800要求を送信し、よって、接続上で秒当たり80MBの帯域幅を得ている。転送大きさ4Kを使用して、イニシエーターBは秒当たり2000要求を送信するが、たった秒当たり8MBの帯域幅を得る。従って、もし、イニシエーターAに許された最大帯域幅が秒当たり70MBである場合、スイッチは秒当たり70MBを得るためにイニシエーターAからの要求数を秒当たり700の要求に減少しなければならない。従って、入場トラフイック・マネージャ608iは、入場SPUに、イニシエーターAがその最大を超過して、パケットがバッフア612iに蓄積していることを報告する。SPUは、そのメッセージを受け取ると、Aへの可能な要求の数を減少してそしてBへのそれらを増加する。よって、イニシエーターBはより多くの要求を接続上に送信できる。イニシエーターがその最小パーセンテイジ帯域幅に到達してもその可能な要求の使用を最大化しない時、調節は必要でないことに注意する。さらに、イニシエーターBが現在、接続の50%を要求していないため、イニシエーターAはその最大の可能な帯域幅まで使用することが自由である(しかし、超過しない)。
【0115】
同様に、もし、2つの異なる接続上の2つのイニシエーターが単一の仮想ターゲットを共有している場合、各イニシエーターに対して比例分割された要求数は、出場ラインカード上のTM608eが2つのイニシエーター間の不当な帯域幅の使用を検知する時、調節される。それはこのような不当な帯域幅使用を、違反したイニシエーターがパケットをバッフア612eに蓄積する時に発見する。
【0116】
接続が共有されていないで、物理的記憶装置自身がビジーとなって渋滞を発生した時、出場TM608eはPPUにパケットがバッフア612eに蓄積していることを知らせる。再び、SPUはイニシエーターを遅くするために、可能な要求の数を減少する。
【0117】
また、スイッチはイニシエーターと記憶装置との間の帯域幅を一致する。例えば、最小100%の1Gb接続を持つイニシエーターを支援するため、他の仮想ターゲットは記憶接続上に割当てることができない。しかし、イニシエーターが接続の50%帯域幅のみを要求する時、残りの50%は別の仮想ターゲットに割当てることができる。
【0118】
最後に、他の全てが等しい時、接続の優先度が、どの命令がラインカードのスイッチ・トラフイック・マネージャにより最初に配達されかを決定する。
以下の表7が、1つの実施の形態についてここで説明されたQoS実行を要約する。
【0119】
表7
【0120】
第1の状態において、イニシエーター入場ポートは共有されずそしてターゲット出場ポートは共有されない場合、渋滞はしばしばビジーな物理的ターゲット装置により発生されて一般に出場バッフア閾値が超過する時に検出される(出場バッフアは許容ポイント超えてバックアップされる)。従って、適当な動作はイニシエーターからの可能な要求数を減少することである。
【0121】
第2の状態において、共有されたイニシエーター入場ポートは、ターゲット出場ポートが共有されないように、異なるポート上の異なるターゲットにアクセスするイニシエーターにより共有される。イニシエーターの1つにより使用される過剰な帯域幅は、閾値が超過されたかどうかを決定することにより入場バッフア内で検出されて、バッフアが許容ポイントを超えてバックアップするようにする。適当な動作は、違反イニシエーターからの可能な要求数を減少することである。
【0122】
第3の状態において、イニシエーター入場ポートは共有されないが、ターゲット出場ポートは共有されて、同じターゲットが異なるポートから異なるイニシエーターによりアクセスされることを指示する。イニシエーターの1つによる過剰な要求数によって発生する過剰な帯域幅の使用は、出場バッフア内で検出される。適当な動作は、異なるイニシエーターからの可能な要求数を再分配することである。例えば、1つのイニシエーターの可能な要求数を減少し、一方、他のイニシエーターの要求数を増加する。
【0123】
第4の状態において、イニシエーター入場ポートは共有されないが、ターゲット出場ポートは共有される。しかし、この場合、異なるターゲットは異なるイニシエーターにより同じ出場ポート上でアクセスされる。このような場合、過剰な帯域幅が各ターゲットが接続帯域幅のパーセンテイジを与えられている出場バッフア内で検出される。このような場合で取るべき適当な動作は、違反イニシエーターへの可能な要求数を減少することである。
【0124】
最後に、第5の状態は共有されたイニシエーター入場ポート及び共有されたターゲット出場ポートを示す。このような状態では、二段階決定が存在する。第1は各仮想ターゲットが帯域幅のその割当てられたパーセンテイジを獲得することを保証し、そして、第2に異なるイニシエーターへ可能な要求数を比例配分することである。このような決定はバッフア閾値が超過したかどうか見ることにより、入場及び出場バッフアの両方で行われる。適当な動作は、上記の4つの状態で行われたように各仮想ターゲットを別個に取り扱い、必要により要求数を減少することである。
理解されるように、表7は説明のためであり、別の実施の形態では、QoSを実行するために別の動作を行うことができ、そして上述にない他の状態が発生できる。
【0125】
負荷平衡
1つの実施の形態では、負荷平衡が使用され、ターゲット装置への複数の経路が利用可能な時、より速くターゲット装置に到達するために経路が動的に選択されることにより発生する。負荷平衡は、スイッチ内の各ポート上で、各要求に対して、各ポート上でのSPU処理パワーを使用することにより動的に実行される(固定された時間間隔で、静的にするのとは反対に)。
【0126】
フェイルオーバーは負荷平衡の特別な場合であり、本発明のいくつかの実施の形態で使用される。フェイルオーバーはミラーされたターゲットの1つのメンバーが利用不可能になった時、又は、複数の経路によりアクセス可能なターゲットへの1つの経路が使用不可能になった時に発生し、いずれの場合、他のメンバーがアクセスされるか又は他の経路が利用される。
【0127】
本発明の実施の形態によるスイッチにおいて、スイッチは負荷平衡に関して2つの異なるタイプの動作を実行する。
【0128】
1.図13bを参照すると、もし、仮想ターゲットがミラーされている場合、スイッチはイニシエーターの読出し要求を、最短の平均応答時間を持つミラーされた仮想ターゲットのメンバーを選択することにより、ミラーされたメンバーの1つへ送る。
【0129】
2.図13aを参照すると、もし、LUへ複数の経路が存在する場合、スイッチはLUへの要求を最短の平均応答時間を持つ経路に送信する。しかし、1つの実施の形態では、この負荷平衡は、他の実施の形態ではこのような要件は持たないが、複数の経路がターゲットLUから同じSPUへ接続されている時にのみ、実行される。
【0130】
いくつかの実施の形態では、スイッチはまた、「通過」構成を支援する。このような実施の形態では、仮想ターゲットは物理的ターゲット自身であり、そして全ての命令は解釈無しに、例えば、仮想化又は翻訳無しに、スイッチを「通過」する。このような実施の形態では、全ての負荷平衡機能はサーバー自身により処理される。
【0131】
さらに詳細には、負荷平衡について、上述したように収集された統計を使用して、本発明によるスイッチは、ミラーされた仮想ターゲットの各メンバーの応答時間を含む、各ターゲットの平均応答時間を追跡する。関連する統計は各VTDに記憶されて、CPUにより定期的に更新される。読取り操作の際、SPU(VTDを参照する)は最小の平均応答時間を持つ経路を選択してその経路上に要求を転送するか、又は、それは最小の平均応答時間を持つミラーされたメンバーを選択してそのメンバーへ要求を転送する。ミラーされたターゲットでは、書込みはミラーされた仮想ターゲットの全てのメンバーに対して行われるから、書込み操作に対してミラーされたメンバー間の選択は行われないことに注意する。1つの経路が他の経路に対して明確な利益がない時、又は、1つのミラーされたメンバーが他の経路に対して明確な利益がない時、命令は交互にさまざまな経路/メンバーへ送られる。
【0132】
本発明の1つの実施の形態では、複数の同時的接続はiSCSI装置に対してのみ使用される。ファイバー・チャンネルは現在、このような複数の同時的接続を支援しない。しかし、他のプロトコルを使用する他の実施の形態もまた複数同時接続を支援する。
【0133】
上述の特定の実施の形態は本発明の説明の目的ためのみであり、さまざまな修正が本発明の精神と範囲から逸脱することなく当業者にできる。従って、本発明の範囲は特許請求の範囲のみにより限定される。
【図面の簡単な説明】
【0134】
【図1】従来技術システムによるSANの概略的な機能ブロック図。
【図2】本発明の1つの実施の形態による記憶スイッチを使用するSANシステムの概略的な機能ブロック図。
【図3】本発明の別の実施の形態による記憶スイッチを使用するシステムの概略的な機能ブロック図。
【図4】本発明のさらに別の実施の形態による記憶スイッチを使用するシステムの概略的な機能ブロック図。
【図5】本発明の実施の形態による記憶スイッチの概略的な機能ブロック図。
【図6】本発明の実施の形態による記憶スイッチに使用されるラインカードの概略的な機能ブロック図。
【図7a】本発明の実施の形態による記憶スイッチに使用される仮想ターゲット記述子の概略的なブロック図。
【図7b】本発明の実施の形態による記憶スイッチに使用される物理的ターゲット記述子の概略的なブロック図。
【図8】記憶プールを示す概略的なブロック図。
【図9】サーバーにより「見られる」仮想ターゲットを示す概略的な論理ブロック図。
【図10a】物理的装置の例示的な記憶プールを示す概略的なブロック図。
【図10b】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図10c】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図10d】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図11】第2スイッチに接続された記憶装置の第1スイッチからのアクセス可能性を示す概略的なブロック図。
【図12】本発明の実施の形態によるステップを示すフロー図。
【図13a】負荷平衡を示す概略的なブロック図。
【図13b】負荷平衡を示す概略的なブロック図。
【0001】
関連出願
本願は、2001年9月28日出願の米国仮出願シリアル番号第60/325,704号、「記憶エリア・ネットワークのための記憶スイッチ」の優先権を主張する。ここに参照により組み込む。
【0002】
また、本願は同時に出願された次の出願にも関係する。ここに参照により組み込む。
「記憶エリア・ネットワークのための記憶スイッチ」
米国シリアル番号第10/051,321号
「記憶システム内のプロトコル翻訳」
米国シリアル番号第10/051,415号
「サーバー無し記憶サービス」
米国シリアル番号第10/051,164号
「記憶システム内のパケット分類」
米国シリアル番号第10/051,093号
「記憶システムの仮想化」
米国シリアル番号第10/051,396号
「記憶ネットワーク内のサービスの品質の実行」
米国シリアル番号第10/051,339号
「記憶ネットワーク内の記憶資源の供給とプーリング」
米国シリアル番号第10/050,974号
【0003】
技術分野
本発明は、一般に、記憶エリア・ネットワークに関連する。
【0004】
背景技術
データ集中アプリケーションの急激な成長は生データ記憶容量に対する需要を増加し続けている。企業がeコマース、オンライン取引、及びデータベースにより依存するにつれて、管理及び記憶する必要のある情報量が巨大となる。この結果、より多くの記憶を追加し、より多くのユーザにサービスし、そしてより多くのデータをバックアップの進行する必要性は、とても厄介な作業となる。
【0005】
データのこの成長する需要を満たすために、記憶エリア・ネットワーク(SAN)の概念が人気を得ている。SANは、記憶ネットワーク産業協会(SNIA)により、コンピュータ・システムと記憶要素との間、及び記憶要素間のデータ転送を主要な目的とするネットワークとして定義される。記憶装置をサーバーに直接に、例えば、SCSI接続により接続するのとは異なり、イーサネット(登録商標)(例えば、NASシステム)等の伝統的なイーサネットによりLANに記憶装置を追加するのとは異なり、SANは、直接接続SCSI及びNASカウンタパートのように同じ帯域幅限界を持つ傾向がない本質的に独立なネットワークを形成し、また、増大した構成可能性とスケーラビリテイを提供する。
【0006】
より詳細には、SAN環境では、記憶装置(例えば、テープ・ドライブ及びRAID配列)及びサーバーは、一般にさまざまなスイッチ及び装置を経由して相互接続される。普通、スイッチ及び装置への接続は、ファイバー・チャンネルである。一般に、この構造は、SAN上のいずれのサーバーもいずれの記憶装置に通信可能にし、また、この逆も可能にする。さらに、サーバーから記憶装置への代替的経路を提供する。換言すると、もし、特定のサーバーが遅い又は完全に利用不可能な場合、SAN上の別のサーバーが記憶装置へのアクセスを提供できる。また、SANは、複数のコピーを可能にするミラー・データを可能にし、従って、データの利用可能性の信頼性を高める。より多くの記憶が必要とされる場合、追加の記憶装置を特定のサーバーに接続する必要無くしてSANに追加でき、新規な装置を記憶ネットワークに単純に追加でき、いずれのポイントからもアクセスできる。
【0007】
図1の機能ブロック図に、SANの一例がシステム100中に示されている。図示するように、1つ又は複数のサーバー102が存在する。これらのサーバー102は例示目的ためにのみ示す。サーバー102は、イーサネット接続を介してLAN106及び/又はルーター108へ接続され、そして、インターネットなどのWAN110に接続される。さらに、各サーバー102は、時々、SANの「ファブリック」と呼ばれる複数のファイバー・チャンネル・スイッチ112の各々にファイバー・チャンネル接続を介して接続されている。2つのスイッチ112が、説明目的のためにのみ示されている。そして、各スイッチ112が、複数のSAN装置114の各々に接続されている。2つの装置114は説明目的のためにのみ示されている。そして、各装置は、テープ・ドライブ、光ドライブ、又はRAID配列などの複数の記憶装置の各々に接続されている。さらに、各スイッチ112と装置114はルーター108に接続されたゲートウェイ118に接続されていて、最終的には、インターネットなどのワイド・エリア・ネットワーク(WAN)18へ接続されている。図1は、スイッチ112、装置114、記憶装置116、及びゲートウェイ118を含むSAN119の可能な構成の一例を示す。他の構成も可能である。例えば、1つの装置が全てのスイッチよりも少なく接続してもよい。
【0008】
装置114は、SANの記憶管理を実行する。装置114がデータを受信すると、それは装置114内のメモリにデータを記憶する。そして、プロセッサ(また、装置内にある)により、データを正しい記憶装置へ転送するためにデータを解析して操作する。この、記憶そして転送プロセスは、典型的にデータ・アクセスの速度を低下する。
【0009】
装置はあるスイッチングを実行するが、多数のサーバーが存在し(3つよりも多数)、各装置はわずかなポートを持つため(普通、2つ又は4つのみ)、スイッチ112が多くのサーバーを少ない装置へ接続するために必要とされる。それにもかかわらず、スイッチ112はほとんどビルトイン・インテリジェンスを持たず、単に、データを選択された装置114へ転送するだけである。装置の1つの限界は、多くの装置がしばしば制限された又は設定数のポートを持つという事実である。ポートを装置に追加することは可能であるが、典型的に大変に高価である。各1つ又は2つのポートは高価なCPU又はサーバー・カードによりサポートされている。従って、ポートを追加することは、全ファイル・カード(記憶及び転送機能と仮想化を実行する)を装置に追加しなければならず、普通は大変に高価である。代替的には、装置を単にSANに追加することである。しかし、これは大変に費用がかかる傾向を持つ。
【0010】
さらに、SANは、普通、装置114内で「仮想化」として知られる機能を一般に実行する。仮想化は、1つ又は複数の物理的記憶装置の空間が特定のユーザに割当てられるが、その空間の物理的位置がユーザに未知のままに留まる時に発生する。例えば、ユーザはその会社の「エンジニアリング記憶空間」ENG:をアクセスすることができる。彼又は彼女が取付けられたディスク装置をアクセスして又は「見る」時、仮想空間ENG:にアクセスして「見る」。それにもかかわらず、ENG:空間は、いくつかの物理記憶装置上に分割でき、又は、単一記憶装置上で断片化さえできる。従って、サーバーが仮想装置(例えば、ENG:)及びブロック番号を要求する時、装置は、要求された仮想装置と物理的に相互に関連する記憶装置を決定し、それにデータを送らなければならない。
【0011】
SANは、数年前に導入されたが、幅広い使用については、相互操作性問題、利用可能な熟練の欠如、及び高い導入コストが、大きな障害として残っている。例えば、現在のSANは、高い配備コストと高い管理コストを有する。再び、図1を参照すると、スイッチ、装置、及びゲートウェイの各々は典型的に異なる売り手からのものであり、売り手特有管理ツールの多用を生じ、標準的な管理の欠如を生む。この結果、SANを配備するために、装備を複数の売り手から購入しなければならない。図1に示すように,スイッチ、装置、ゲートウェイ、記憶装置、サーバー、及び、ルーターの各々は、管理ステーション120として示されるそれ自身の管理を有する。独立の物理的管理ステーションが示されているが、しばしば独立な管理は、互いに通信しない単一コンピュータ上の売り手特有の独立のソフトウェアの形式であることを理解する。この結果、SANの中央管理が存在せず、普通、多くの人による管理がしばしば必要な複数の管理ステーションが存在するため、その管理コストは高い。
【0012】
さらに、SANのために仮想ターゲットを供給すること(又は、「生成する」こと)は、重荷になっている。新しい仮想ターゲットの生成が必要な時、人間の管理者は、性能、初期に必要な容量と潜在的な成長に必要な容量、データ利用可能性、及びデータ保護など、データについてのアプリケーション要求を最初に決定しなければならない。より詳細には、管理者は1つ又は複数の物理装置の一部又は全部を仮想ターゲットに割当て、そして最良の性能を作り及びデータ安全性のためのアクセス制御を作るためにこれらの装置を構成しなければならない。管理者はさらに、記憶ネットワークを通るルートが必要とされる利用可能性のレベルを持つことを確保し、そしてもし、1つの経路がダウンした時にターゲットへの別の経路が利用可能となるように、高い利用可能性が必要とされる場合は代替的な経路を導入しなければならない。さらに、管理者は仮想ターゲットがアクセス可能となる前に機能性を証明するために環境を試験しなければならない。全体に、このような仮想ターゲットを生成するために数日又は数週間を要して、この期間はSANのユーザにとってしばしば受け入れることができない。
【0013】
発明の開示
本発明の1つの実施の形態によるシステムは、スイッチとの通信で自動的に記憶資源を発見して、それら資源の性質に関する情報を得る。1つの実施の形態では、性質が知られると、装置は予め定義されたポリシーに従って分類され、そして記憶プール中に置かれる。
【0014】
プールから、仮想ターゲットが供給できる。1つの実施の形態では、仮想ターゲットはユーザ・ドメインに置かれる。また、イニシエーター接続が1つの実施の形態で供給される。仮想ターゲット、イニシエーター接続、及びユーザ・ドメインの全てが1つの実施の形態ではサービスの品質(QoS)ポリシーを定義するために機能する。
【0015】
本発明の別の実施の形態によるシステムは、さらにイニシエーターとターゲットとの間の接続のためのサービスの品質を実行できる。1つの実施の形態では、サービスの品質は、イニシエーターからターゲットへ送ることのできる同時的要求を制御することにより実行される。
【0016】
本発明のさらに別の実施の形態によるシステムは、負荷平衡を動的に供給できる。1つの実施の形態では、負荷平衡は選択された経路が最短の平均応答時間を有するターゲットへの複数の代替的経路の1つに要求を送ることにより実行される。別の実施の形態では、負荷平衡は最短の平均応答時間を持つミラーされたターゲットへ要求を送るミラーされたターゲット内で実行される。
以下に、本発明の特定の例示的な実施の形態を添付図面を参照して説明する。
【0017】
実施の形態の説明
図2に示されるシステム200は本発明による記憶スイッチを含む。図示されるように、このようなシステムは既存のシステムを大幅に簡潔にする。1つの実施の形態では、システム200は複数のサーバー202を有する。説明目的のために、3つのサーバー202が示されるが、他の実施の形態ではより多い又は少ないサーバーも使用できる。図示しないが、サーバーはLANにも接続できる。図示するように、各サーバー202は記憶スイッチ204に接続される。しかし、別の実施の形態では、各サーバー202は存在する記憶スイッチ204の全てよりも少ないものに接続してよい。サーバーとスイッチとの間に形成される接続はどんなプロトコルを使用できるが、1つの実施の形態では、接続はファイバー・チャンネル又はギガビット・イーサネット(iSCSIプロトコルに従いパケットを運ぶ)のいずれかである。他の実施の形態は、インテル社により定義されるインフイニバンド・プロトコル、又は他のプロトコル又は接続を使用してもよい。
【0018】
図示された実施の形態では、各スイッチ204は次に複数の記憶装置又はサブシステム206の各々に接続される。しかし、他の実施の形態では、各スイッチ204は全ての記憶装置又はサブシステム206よりは少ないものに接続できる。記憶スイッチ204と記憶装置206との間に形成される接続はどんなプロトコルも使用できるが、1つの実施の形態では、接続はファイバー・チャンネル又はギガビット・イーサネットのいずれかである。
【0019】
いくつかの実施の形態では、1つ又は複数のスイッチ204の各々がメトロポリタン・エリア・ネットワーク又はインターネットなどのワイド・エリア・ネットワーク208に接続される。記憶スイッチ204とWAN208との間に形成される接続は一般に大部分の実施の形態ではインターネット・プロトコル(IP)を使用する。MAN/WAN208に直接的に接続しているように図示されるが、他の実施の形態ではスイッチ204とMAN/WAN208との間に中間にルーター(図示しない)を使用してよい。
【0020】
さらに、それぞれの管理ステーション210が、各記憶スイッチ204へ、各サーバー202へ、及び各記憶装置206へ接続している。管理ステーションが別々のコンピュータとして示されているが、単一コンピュータへに集中された装置の各タイプを管理するためのソフトウェアであることが理解される。
【0021】
図3は、本発明の代替的な実施の形態によるシステムを示す。このような実施の形態では、2つのSAN302、304が形成されて、各々が本発明の実施の形態により1つ又は記憶スイッチ204を使用する。SAN302及び304は、インターネットなどのWAN208を介してスイッチ208により接続されている。接続208はどんな標準又はプロトコルであることができ、しかし、1つの実施の形態では、ソネット上のパケット(PoS)又は10ギガビット・イーサネットである。
【0022】
図4は、本発明のさらに別の実施の形態のシステムを示すもので、スイッチ204が互いに直接的に接続されている。図2又は3に示される実施の形態のいずれでも、もし、1つより多いスイッチが使用される場合、これらのスイッチは図4に示すように接続できる。
【0023】
本発明による記憶スイッチは、広範囲に分布された非常に多数の管理ステーションと多数の熟練した管理用人員を持つ代りに、共有記憶プールとして使用できる広範囲に分布された記憶装置の集中管理を可能にする。このような記憶スイッチは、「インテリジェント」スイッチであり、図2と図1を比較することで理解できるように、スイッチ、装置、及びゲートウェイの機能は本発明の1つの実施の形態による記憶スイッチ204中に効率的に統一化されている。そのスイッチング機能に加えて、このような記憶スイッチ204は従来のアーキテクチャでは装置により典型的に提供される仮想化と記憶装置(例えば、ミラーリング)を提供し、またプロトコル翻訳を提供する。また、本発明のいくつかの実施の形態による記憶スイッチは追加の機能を実行する(例えば、仮想プライベート・ネットワークを介してのデータ・セキュリテイ)。このような追加の機能は、負荷平衡など伝統的にサーバーにより実行される従来システムでは他の装置により実行される機能、及び、記憶アクセスのためのサービスの品質など従来のシステムでは以前利用できなかった他の機能を含む。さらに、1つの実施の形態では、記憶アクセス機能のためのサービスの品質が「アプリケーション認識」、すなわち、提供されるサービスの品質は記憶ターゲットへの接続を開始するアプリケーションの性質により指定される。
【0024】
さらに、本発明による実施の形態によれば記憶スイッチのインテリジェンスは各スイッチ・ポートへ配達される。この配達されたインテリジェンスは、システムのスケーラビリテイと利用可能性を可能にする。
【0025】
さらに、配達されたインテリジェンスは本発明の1つの実施の形態によるスイッチがデータを「ワイヤ速度」、記憶スイッチ204が典型的なネットワーク・スイッチ(図1中のスイッチ112など)により導入されるもの以上の待ち時間をデータパケットに導入しないことを意味する、で処理することを可能にする。すなわち、スイッチに対する「ワイヤ速度」は特定のポートへの接続により測定される。従って、OC−48接続を有する1つの実施の形態では、記憶スイッチはOC−48速度(2.5ビットn秒)を達成できる。OC−48速度で移動する2キロバイト・パケット(10ビット・バイトを持つ)は、スイッチに入るのに8マイクロ秒の短い時間を要する。1キロパイト・パケットは、4マイクロ秒の短い時間を要する。100バイトの最小パケットは、単に400n秒だけを要する。しかし、言葉「ワイヤ速度」処理がここで使用される時、このような処理が100バイト・パケットを処理するために400n秒の短い時間を要することを意味するのではない。それは1つの実施の形態で記憶スイッチがOC−48速度で1500バイト(1バイトが10ビットであるように、10ビット符号化を持つ)の最大イーサネット・パケットを処理できること、すなわち、約6μ秒(キロバイト当たり4μ秒、又は、n秒当たり2.5ビット)で処理できることを意味する。1GBイーサネット・ポートを持つ実施の形態では、処理が一般にナノ秒当たり1ビットとして定義される場合、そのポートの「ワイヤ速度」データはキロバイト当たり10μ秒となり、スイッチがキロバイトを処理するために10μ秒までを有する。2GBファイバー・チャンネルを持つ実施の形態では、「ワイヤ速度」はキロバイト当たり5μ秒となる。さらに別の実施の形態は、10ギガバイト・イーサネット又はOC−192又はそれ以上でデータ処理をしてもよい。
【0026】
ここで使用される「仮想化」は、本質的に、ユーザに与えられた仮想ターゲット空間を1つ又は複数の物理的記憶ターゲット装置上の空間へマッピングすることを意味する。「仮想」及び「仮想ターゲット」は、加入者毎に割当てられた記憶空間が記憶スイッチ204に接続する1つ又は複数の物理的記憶ターゲット装置のどこでも良いという事実から来る。物理的空間は、1つ又は複数の「論理単位」(LU)を含むことのできる「仮想ターゲット」として供給できる。各仮想ターゲットは、しばしば、iSCSI及びFCプロトコルで使用される1つ又は複数のLU番号(LUN)で識別される1つ又は複数のLUからなる。各論理単位は、一般に1つ又は複数のエクステント、物理的装置上の記憶空間の連続したスライス、を含む。すなわち、仮想ターゲットは記憶装置全体(1エクステント)、単一記憶装置の一部(1つ又は複数のエクステント)、又は、複数の記憶装置の部分(複数エクステント)を占めることができる。物理的装置、LU、エクステント数、及びそれらの正確な位置は加入者ユーザには重要ではなく、そして見ることができない。
【0027】
記憶空間はいくつかの異なる記憶装置から来てもよいが、各仮想ターゲットは時々ここで「ドメイン」と呼ばれる1つ又は複数の「プール」に属している。同じドメインのユーザのみが彼等のドメイン中の仮想ターゲットを共有することを許される。また、ドメイン組がメンバーとしていくつかのドメインを含んで形成できる。ドメイン組の使用は複数ドメインのユーザの管理を容易にする。例えば、もし、1つの会社が5つのドメインを持つが、サービスを止めることを選択した場合、単に1つの動作がそのドメイン組を全体として使用不可能にするのに必要とされる。ドメイン組のメンバーは他のドメインのメンバーであることができる。
【0028】
図5は、本発明の実施の形態による記憶スイッチ204の機能ブロック図である。1つの実施の形態では、記憶スイッチ204は複数のラインカード502、504及び506と、複数のファブリック・カード508と、2つのシステム制御カード510とを含む。以下に、各々を詳細に説明する。
【0029】
システム制御カード
2つのシステム制御カード510の各々は、全てのラインカード502、504、506に接続している。1つの実施の形態では、このような接続は、SCCとのイーサネット接続を介して周知のI2C信号により形成される。SCCは、I2C接続により、電源投入の制御と、個別のラインカード及びファブリック・カードの監視をする。イーサネット接続を介してのカード内通信を使用して、SCCはさまざまな記憶サービス、例えば、仮出願番号第60/325,704号に記載されるスナップショップ及び複製、を開始する。
【0030】
さらに、SCCは、スイッチに接続された物理的装置と、例えば、サーバー及び記憶装置と、全ての仮想ターゲットと、記憶スイッチとの構成情報を追跡するデータベース512を維持する。さらに、データベースは、使用、エラー、アクセス・データ、ユーザ、仮想ターゲットのドメイン組及び異なるドメインに関する情報を維持する。データベースのレコードは、ここでは「オブジェクト」と呼ばれる。イニシエーター(例えば、サーバー)及びターゲット(例えば、記憶装置)は、周知のワールド・ワイド・ユニーク識別子(WWUI)を持つ。データベースは、SCC内のメモリ装置内に維持される。1つの実施の形態では、メモリ装置はフラッシュ・メモリから形成されている。しかし、他のメモリ装置も満足である。
【0031】
記憶スイッチ204は、管理ステーション210によりイーサネット接続を使用してSCC510を介して到達できる。従って、SCCは、管理ステーションに接続するために追加のイーサネット・ポートを含む。
【0032】
2つのSCC510の内の1つは主動作SCCである。他は予備であり、記憶スイッチ中の動作に同期しているが、直接にはそれらを制御しない。SCCは、もし1つのSCCが故障したならば、他が主コントローラとなるという、高度の利用可能性モードで動作する。
【0033】
ファブリック・カード
スイッチ204の1つの実施の形態では、3つのファブリック・カード508が存在する。他の実施の形態では、より多い又は少ないファブリック・カードを持つことができる。1つの実施の形態では、各ファブリック・カード508は、ラインカード502、504、及び506の各々に接続し、全てのラインカードを一緒に接続する役割を果たす。1つの実施の形態では、ファブリック・カード508の各々は、全てのラインカードが充たされている時、最大トラフイックを処理できる。各ラインカードにより処理されるこのようなトラフイック負荷は、1つの実施の形態で、160Gbpsまでである。他の実施の形態では、より高い又は低い最大トラフイック容積を処理できる。もし、1つのファブリック・カード508が故障した場合、2つの生き残ったカードは可能な最大スイッチ・トラフイック:1つの実施の形態では、各ラインカードは20Gbpsのトラフイック、10Gbps入場及び10Gbps出場を発生する、に対する十分な帯域幅をまだ持つ。しかし、通常の環境下では、3つの全てのファブリック・カードが同時に活動する。各ラインカードから、データ・トラフイックがデータを収容できる3つのファブリック・カードのいずれか1つに送信される。
【0034】
ラインカード
ラインカードは、サーバー装置及び記憶装置への接続を形成する。1つの実施の形態では、記憶スイッチ204は、16ラインカードまで支援する。他の装置では異なる数を支援できる。さらに、1つの実施の形態では、3つのタイプのラインカードが使用される。ギガビット・イーサネット(GigE)カード502と、ファイバー・チャンネル(FC)カード504と、WANカード506とである。他の実施の形態はより多い又は少ないタイプのラインカードを含んでも良い。GigEカード502は、1つの実施の形態ではiSCSIサーバー又はiSCSI記憶装置(又は、他のイーサネット・ベース装置)のいずれかに接続する、イーサネット接続用である。FCカード504は、ファイバー・チャンネル・プロトコル(FCP)サーバー又はFCP記憶装置のいずれかに接続するファイバー・チャンネル接続用である。WANカード506は、MAN又はWANに接続するためである。
【0035】
図6は、本発明の実施の形態による記憶スイッチ204に使用される一般的なラインカード600の機能ブロック図を示す。この図は、全てのタイプのラインカード、例えば、GigE502、FC504、又はWAN506、において共通なコンポーネントを示す。他の実施の形態では、ラインカードの他のタイプが、インフイニバンドなどの他のプロトコルを使用する装置へ接続するために使用できる。ラインカードの相異点は後で説明する。
【0036】
ポート
各ラインカード600は、複数のポート602を含む。ポートは、サーバー又は記憶装置のいずれかへのラインカードの接続を形成する。図示された実施の形態では8つのポートが示されているが、他の実施の形態ではより多い又は少ないものが使用できる。例えば、1つの実施の形態では、各GigEカードは8つまでの1Gbイーサネット・ポートを支援でき、各FCカードは8つの1GbFCポート又は4つの2GbFCポートのいずれかまでを支援でき、各WANカードは4つのOC−48ポート又は2つのOC−192ポートのいずれかまでを支援できる。従って、1つの実施の形態では、最大の可能な接続は、スイッチ204当たり128ポートである。各ラインカードのポートは、フルデュプレックスであり、サーバー又は他のクライアントのいずれか、又は、記憶装置又はサブシステムへ接続する。
【0037】
さらに、各ポート602は、付随メモリ603を持つ。単に1つのメモリ装置が1つのポートに接続されているのが示されているが、各メモリポートはそれ自身のメモリ装置を有してよく、また、全てのポートが単一のメモリ装置へ接続してもよい。説明の簡潔のため、単一のメモリ装置がここでは1つのポートに接続されているのが示されている。
【0038】
記憶プロセッサ・ユニット
1つの実施の形態では、各ポートは記憶プロセッサ・ユニット(SPU)601と関連付けられる。1つの実施の形態では、SPUは、データ・トラフイックを高速に処理して、ワイヤ速度操作を可能にする。1つの実施の形態では、SPUはいくつかの要素:パケット集合及び分類エンジン(PACE)604、パケット処理ユニット(PPU)606、SRAM605、及びCAM607、を含む。他の実施の形態はより多い又は少ない要素を使用でき、また、同じ機能を得るために要素を結合できる。例えば、いくつかの実施の形態は、SPU内にPACE及びPPUを含むが、SPUはメモリ要素を他のSPUと共有することができる。
【0039】
PACE
各ポートは、パケット集合及び分類エンジン(PACE)604に接続されている。図示されるように、PACE604は2つのポートを二倍の帯域幅を有する単一データ・チャンネルに集合する。例えば、PACE604は、2つの1Gbポートを単一の2Gbデータ・チャンネルに集合する。PACEは、仮出願番号第60/325,704号に記載されるように、各受信パケットを制御パケット又はデータパケットに分類する。制御パケットは処理のためにブリッジ616を経由してCPU614へ送られる。データパケットは以下に説明するパケット処理ユニット(PPU)606へ追加されたローカル・ヘッダと共に送信される。1つの実施の形態では、ローカル・ヘッダは、16バイトであり、64バイトのデータ「セル」を生ずる(16バイトのヘッダ及び48バイトのペイロード)。ローカル・ヘッダは、情報を運ぶために使用され、スイッチ204により内部的に使用される。ローカル・ヘッダは、パケットがスイッチを去る前に除去される。従って、ここで使用される「セル」はスイッチ内で局所的に使用される移送単位であり、ローカル・ヘッダとオリジナル・パケット(いくつかの実施の形態では、元のTCP/IPヘッダも元のパケットから除去される)を含む。しかし、本発明の全ての実施の形態がローカル・ヘッダを作成し、外部パケットとは異なる「内部パケット」(セル)を持つのではない。従って、ここで使用される言葉「パケット」は「内部」又は「外部」パケットのいずれかを指すことができる。
【0040】
分類機能は、スイッチが、従来システムの記憶及び転送モデルを使用せずに、ワイヤ速度で記憶仮想化及びプロトコル翻訳機能を実行可能にすることを助ける。各PACEはPPU606への専用化経路を持つが、図示された実施の形態中の4つのPACEの全ては、CPU614への経路を共有する。これは、1つの実施の形態では、104MHz/32(3.2Gbps)ビット・データ経路である。
【0041】
パケット処理ユニット(PPU)
PPU606は、オンザフライで仮想化及びプロトコル翻訳を実行する。これはセルは、仮出願番号第60,325704号に記載されるように、この処理のためにバッフアされないことを意味する。また、後述する他のスイッチ・ベース記憶サービス機能を実行する。1つの実施の形態では、PPUは、セルを入場と出場の両方向へ、OC−48速度又は2.5Gbpsで移動できる。他の実施の形態では、セルをOC−192速度又は10Gbpsで移動できる。1つの実施の形態では、PPUは、共に同時的に動作する入場PPU6061及び出場PPU6062を含む。入場PPU6061は、PACE604から入来するデータを受信して、データをトラフイック・マネージャ608iヘ送信する。出場PPU6062は、トラフイック・マネージャ608eからデータを受信して、データをPACE604へ送信する。図6に示されるただ1つのPPU606が入場PPU6061及び出場PPU6062を有するが、1つの実施の形態では全てのPPU606が入場及び出場PPUの両方を含むことが理解される。説明の簡潔さのため、図6に示されるただ1つのPPUのみが入場及び出場PPUの両方を備えている。
【0042】
多数の記憶接続(例えば、サーバーから仮想ターゲット)が、各ポートで同時に確立できる。しかし、各接続は仮想ターゲットに対して独特であり、TCP制御ブロック・インデックス(iSCSI接続の場合)及びポート番号により独特に識別できる。接続が確立される時、ラインカード600のCPU614は、PPU606に活動仮想ターゲットをそれに接続ために仮想ターゲット記述子(VTD)を送信することにより知らせる。VTDは、PPUがデータについて適当に動作、例えば、仮想化、翻訳、及びさまざまな記憶サービスの実行、をするのに必要な仮想ターゲット及び接続とに関する全ての関連情報を含む。VTDは、SCCデータベース中のオブジェクトから導出され、普通、SCCデータベース中の関連オブジェクト中に記憶されている情報の小組を含む。図7aに本発明の1つの実施の形態のVTD中のフィールドの例が示される。しかし、本発明の他の実施の形態は、より多い、少ない又は異なるフィールドを持つことができる。
【0043】
同様に、物理的ターゲット記述子(PTD)が、本発明の実施の形態で使用される。PTDは、現実の物理的装置、それらの個別のLU、又はそれらの個別のエクステント(全体LU又は連続する部分)を記述し、そしてVTDのそれと同様な情報を含む。また、VTDと同じく、PTDはSCCデータベース中のオブジェクトから導出される。図7bに本発明の1つの実施の形態のPTDのフィールドの例を示す。しかし、本発明の他の実施の形態は、より多い、少ない又は異なるフィールドを持つことができる。
【0044】
VTD及びPTDを記憶してそれらに高速にアクセスするために、1つの実施の形態では、PPU606がSRAM605及びCAM607に接続されている。SRAM605は、VTD及びPTDデータベースを記憶する。また、VTD識別子(VTDID)又はアドレス、及びPTD識別子(PTDID)のリストが、VTDの高速アクセスのためにPPUCAM607中に維持される。VTDIDは、TCP制御ブロック・インデックス及びLUNを用いてインデックス(マップ)される。PTDIDは、VTDIDを使用してインデックスされる。さらに、IPルーテイング・サービスのために、CAM607は、経路が追加又は除去された時にCPUにより更新される経路テーブルを含む。
【0045】
単に1つのCAM及びSRAが、1つのPPUに接続するように示されているが、これは図面の簡潔さを維持するためであることに注意する。さまざまの実施の形態では、各PPUはそれ自身のCAM及びSRAM装置に接続されるか、又は、PPUは単一のCAM及び/又はSRAMに全て接続される。
【0046】
PPUへの各未決の要求については(例えば、読出し又は書込み)、要求の状態を追跡するためにタスク制御ブロックがPPUSRAM607中に設定される。入場PPU上の記憶スイッチにより受信された要求の状態を追跡する入場タスク制御ブロック(ITCB)及び出場PPU上の記憶スイッチにより送信される要求の状態を追跡する出場タスク制御ブロック(ETCB)が存在する。各仮想ターゲット接続については、多数の同時的要求が存在し得、従って、多くのタスク制御ブロックが存在し得る。タスク制御ブロックは要求が開始される時に割当てられ、要求が完了する時に解放される。
【0047】
トラフイック・マネージャ
各ラインカード600上に2つのトラフイック・マネージャ(TM)608:入場トラフイックのための1つのTM608i及び出場トラフイックのための1つのTM608e、が存在する。1つの実施の形態では、入場TMは64バイト・データセルの形式のセルを全ての4つのSPUから受信する。このような実施の形態では、各データセルは、16バイトのローカル・ヘッダと48バイトのペイロードを持つ。ヘッダは、TMにセルの宛先ポートを知らせるフローIDを含む。いくつかの実施の形態では、SPUはまた、セルをTMへ転送する前にTMヘッダをセルに取付けてもよい。また、いくつかの実施の形態では、TM又はSPUのいずれかは、セルをファブリック・カードを通じての送信のためにより小さいセルに分割できる。
【0048】
入場TMは、1つの実施の形態では、データセルを128ビット104Mhzインターフェイス610を経由してファブリック・カードへ送信する。他の実施の形態では、125Mhz又は他の速度で動作する。出場TMはファブリック・カードからデータセルを受信してそれらを4つのSPUへ配達する。
入場及び出場TMの両方は、配達のためにセルを待ち行列させるための大きなバッフア612を持つ。入場及び出場TMのための両バッフア612は、64MBであり、多数のパケットを待ち行列できる。SPUは、普通、ファブリック・カードの出力流れは入力流れと同じ程度に速いので、セルを入場TMへ素早く送信できる。従って、セルは素早く出場TMへ移動する。一方、出場TMは、出力ポートが渋滞又は複数の入場ラインカードにより供給されるため、バックアップされてよい。このような場合、操作を素早くするように出力SPUに知らせるため、出力セルのヘッダ中にフラグが設定される。また、出場TMは、以下に説明する記憶アクセスのためのサービスの品質を提供する際に使用される流れ制御機能を活性化するために、入場SPUへ要求を送信する。インターネット上の通信トラフイックとは異なり、記憶トラフイックに対しては、パケット又はセルを落とすことは許されないことに注意する。従って、バッフア中のセルの量が指定された閾値を越えると直ちに、SPUはバッフアのオーバーフローを避けるために入力トラフイックを遅くするためその流れ制御機能を活性化する。
【0049】
ファブリック接続
ファブリック接続610は、TMの256ビット・パラレル信号(それぞれ、128ビット入場及び128ビット出場)を、160Gbpsのバックプレーンへの16ビット・シリアル・インターフェイス(8ビット入場及び8ビット出場)へ変換する。従って、バックプレーンは、16分の1のピンで16倍早い速度で動作している。この変換は、数千の接続ピンとワイヤを無しに合理的なコストで高い利用可能度のバックプレーンの構成を可能にする。さらに、1つの実施の形態では3つのファブリック・カードが存在するため、1つの実施の形態では各ラインカード上に3つの高速コネクタが存在し、これらコネクタの各々は8ビット信号を3つのファブリック・カードのそれぞれに接続する。もちろん、他の実施の形態は3つのファブリック・カード610を必要としないであろう。
【0050】
CPU
各ラインカード上には、プロセッサ(CPU)614が存在する。1つの実施の形態では、プロセッサはパワーPC750Cxeである。1つの実施の形態では、CPU614は、バス・コントローラ615とブリッジ616とを経由して3.2Gbバスにより各PACEに接続する。さらに、CPU614は各PPU、CAM及びTMにも接続する。しかし、いくつかの実施の形態では、この接続はより遅い40Mbpsである。3.2Gb及び40Mbpsの両経路はCPUがラインカード中の大部分の装置と通信することを可能にし、そしてラインカード上の全ての装置の内部レジスタを読取り及び書込むことを可能にし、マイクロコードをダウンロードし、そして制御パケットを送信及び受信することを可能にする。
【0051】
各ラインカード上のCPUは、電源投入時に各チップを初期化する責任を持ち、SPU及びマイクロコードが必要な各ポートへマイクロコードをダウンロードする。ラインカードが動作状態になると、CPUは制御トラフイックを処理する。仮想ターゲット接続を確立するのに必要な情報については、CPUはSCCから情報を要求し、次にSCCデータベース中の適当なオブジェクトから情報を得る。
【0052】
ラインカード−ポートの区別
ラインカードの各タイプのポート、例えば、GigE、FC、又はWANは、1つの実施の形態では各ラインカードは1つのタイプのポートのみを支援するため、別個である。以下に1つの実施の形態のポートの各タイプについて説明する。もちろん、別の実施の形態では、インフイニバンドなどの他のプロトコルを支援するため、他のラインカード・ポートが設計できる。
【0053】
GigEポート
ギガビット・イーサネット・ポートは、iSCSIサーバーと記憶装置に接続する。GigEポートは全ての種類のイーサネット・トラフイックを運ぶが、本発明の1つの実施の形態によるワイヤ速度で記憶スイッチ204により一般に処理されるネットワーク・トラフイックは、TCP/IPパケット中のiSCSIパケットデータユニット(PDU)だけである。しかし、他の実施の形態では、イーサネット上を運ばれる他のプロトコル(ネットワーク・ファイル・システム(NFS)のような)によるパケットが、GigEポートで受信されて、SPU及び/又はCPUにより処理されてよい。
【0054】
GigEポートは、仮想ターゲット又はiSCSI装置のためにTCP/IPセグメントを送受信する。仮想ターゲットのためにTCP接続を確立するために、ラインカードCPU614とSCC510の両方が関与する。TCPパケットが受信される時、そして初期のハンドシェーキングが行われた後、TCP制御ブロックが生成されて、GigEポート・メモリ603中に格納される。また、接続を認証して仮想ターゲットの構成を理解する目的のため、VTDがSCCデータベースのオブジェクトから検索されて、CPUSDRAM605中に記憶される。TCP制御ブロックは、パケットが所属しそして1つの実施の形態ではTCPセグメント番号、状態、ウインドウ大きさ、及び接続に関する潜在的に他の情報を含む特定のTCPセッション又はiSCSI接続を識別する。さらに、TCP制御ブロックは、ここで「TCP制御ブロック・インデックス」と呼ばれるインデックスにより識別される。接続のためのVTDが作られて、SPURAM605中に記憶されなければならない。CPUは、そのSDRAM中に記憶されていて、元はSCCデータベースから得られたVTD情報を検索することにより、VTDを作成する。VTDIDが、VTDの素早い参照のためにSPUCAM607中のVTDIDのリスト中に設定される。VTDIDは、TCP制御ブロック・インデックスと合併され、そしてインデックスされる。
【0055】
ポートが、iSCSIPDUを受信する時、本質的にその接続の終了点として機能するが、その後にスイッチがターゲットへの新しい接続を始める。入場側でパケットを受信した後、ポートは、特定のTCP接続を識別するTCP制御ブロック・インデックスによりPACEへiSCSIPDUを配達する。非TCPパケット又はiSCSIPDUを含まないTCPパケットについては、ポートは接続の終点として動作することなくパケットを受信しそして送信する。典型的に、ポート602は、iSCSIパケットがTCP制御ブロック・インデックスを使用して受信又は送信されるPACE604と通信する。パケットのTCP制御ブロック・インデックスが、−1の時、それは非iSCSIパケットを識別する。
【0056】
FCポート
FCポートは、サーバー及びFC記憶装置に接続する。FCポートは、接続するサーバーにファイバー・チャンネル記憶サブシステム(すなわち、ターゲット)として見える。それはイニシエーター(例えば、サーバー)が接続を確立するために業界で知られているプロセス・ログイン(PLOGI又はPRLI)を実行することを可能にする仮想ターゲット装置の大きなプールを表すことを意味する。FCポートは、GID拡張リンクサービス(ELS)を受け取り、そしてそのイニシエーター(例えば、サーバー)によるアクセスのために利用可能なターゲット装置のリストを戻す。
【0057】
ファイバー・チャンネル記憶装置に接続する時、ポートはファイバー・チャンネルFポートとして見え、記憶装置から業界で知られているファブリック・ログインを受け取り、そしてGID要求を受け取りそして処理することにより名前サービス機能を提供することを意味する。換言すれば、ポートは記憶装置にはイニシエーターとして見える。
【0058】
さらに、FCポートは別の既存のSANネットワークに接続でき、このような例では他のネットワークには多くのLUを持つターゲットとして見える。
【0059】
ポートの初期化では、ラインカードCPUはファブリック・ログイン、プロセス・ログイン、及びGIDを送信し、そして同じものを受信する両方を完了しなければならない。SCCは、FCELSをiSNS要求及び応答に変換するためのアプリケーションを支援する。この結果、SCC内の同じデータベースは、あたかもそれらがiSCSIイニシエーター及びターゲットであるかのように、FCイニシエーター(例えば、サーバー)及びターゲット(例えば、記憶装置)の両方を追跡する。
【0060】
FC接続を確立する時、GigEポートとは異なり、FCポートはTCP制御ブロック又はその等価物を生成する必要がない。必要な全ての情報はFCヘッダから利用可能である。しかし、VTD(D_IDによりインデックスされる)はGigEポートについて説明したのと同様な態様で確立される必要がある。
【0061】
FCポートは、1Gb又は2Gbとして構成できる。1Gbポートとして、図6に示すように、2つのポートが単一のPACEへ接続されるが、2Gbポートとして構成される1つの実施の形態では、ポート・トラフイック及びSPUにより収容可能なトラフイックは、SPUでの渋滞を避けるために一致すべきである。1つの実施の形態では、ポートはPOS/PHYインターフェイスによりPACEへ接続される。各ポートは別個に構成できる。すなわち、1つのPACEは2つの1Gbポートを持つことができ、そして別のPACEは単一の2Gbポートを持つ。
【0062】
WANポート
WANラインカードを含む実施の形態では、WANラインカードは1つの実施の形態ではOC−48及びOC−192接続を支援する。従って、2つのタイプのWANポート:OC−48及びOC−192が存在する。OC−48については、各SPUに対して1つのポートが存在する。PACEには集合機能はないが、分類機能が存在する。WANポートはSONETに接続し、そしてそれはICMP、RIP、BPG、IP及びTCPなどのネットワーク・パケットを送信及び受信する時、GigEポートのように動作する。GigEポートとは異なり、WANポートは1つの実施の形態では、追加のハードウェア部品を必要とするIPSecとVPNによりネットワーク・セキュリテイを支援する。
OC−192はより高速のワイヤ速度を生ずるので、OC−192を支援する実施の形態ではより高速のSPUが必要とされる。
【0063】
スイッチに基づいた記憶動作
本発明の実施の形態による記憶スイッチは、プーリング及び供給を含む、さまざまなスイッチに基づいた記憶動作を実行する。記憶アクセスのためのサービスの品質及び負荷平衡の各々について以下に説明する。
iSCSI及びFCプロトコルの一般的な知識は仮定される。iSCSIのさらなる情報に関しては、参照によりここに組み込まれた、インターネット・ドラフト及びインターネット・エンジニアリング・タスク・フォース(IETF)による、2001年11月19日の進行中の作業、“draft−ietf−ips−iSCSI−09.txt”を参照。ファイバー・チャンネル(FC)のさらなる情報に関しては、参照によりここに組み込まれた、“情報システム−SCSI用dpANSファイバー・チャンネル・プロトコル”Rev.012、1995年12月4日(アメリカン・ナショナル・スタンダードの提案草案)を参照。さらに、両方は仮出願番号第60/325,704号に記載されている。
【0064】
記憶プール
図2の物理的な構成に示すように、本発明の実施の形態によるシステムは、1つ又は複数のサーバー202及び1つ又は複数の物理的装置206、すなわち、記憶装置又はサブシステム、に接続されたスイッチ204を含む。各物理的ターゲットは、1つ又は複数の論理的ユニット(LU)207を含む。仮想ターゲットが最終的に形成されるのはこれらLUからである。
【0065】
しかし、仮想ターゲットが生成、又は「供給」できる前に、スイッチは取付けられた及び/又はそれによりアクセス可能な物理的記憶装置及びそれらの物理的記憶装置の特性を「知る」ことが必要である。従って、本発明の1つの実施の形態では、記憶装置又はイニシエーター装置がスイッチに接続又は登録される時、スイッチは新装置の性能特性について学ばなければならない。1つの実施の形態では、スイッチは記憶アクセス時間、データ転送速度、キャシュ支援、装置への代替経路の数、RAID支援、及び物理的装置のLUに対する許容最大命令を測定できるユーテイリテイ・プログラムを含む。いくつかの実施の形態では、一旦、装置がスイッチに接続されると、ユーテイリテイ・プログラムが自動的に装置を発見して、そして必要な情報をユーザ又は他の介在なしに自動的に集める。このような実施の形態では、スイッチはポートへの信号線のリセット又は撹乱がある時、装置の追加/削除を発見する。装置が発見されると、性能特性に関する情報を集めるために装置へさまざまな質問が送られる。例えば、読出し/書込み命令が転送速度を測定し又はアクセス時間を検査するために送信できる。代替的に、いくつかの実施の形態では、性能特性を得ることは、管理者が管理ステーション210で性能特性を入力することにより行うことができ、そして、特性はスイッチ204へ供給される。
【0066】
全てにエンドユーザに対して一般に見えない、装置に関して集められた情報に基づき、本発明の1つの実施の形態では、スイッチはポリシーに基づき装置を分類する。例えば、最良特性を持つ装置はプラチナ装置として分類される。中間的な性能特性を持つ装置はゴールド又はシルバー装置として分類される。最低の性能特性を持つ装置はブロンズ装置として分類される。もちろん、定義されるタイプのポリシーは無限であり、本発明の実施の形態中で変化する。さらに、いくつかの実施の形態では、管理者は、例えば、プラチナ・ビルデイング1、プラチナ・ビルデイング2のようにポリシーを再分割でき、そしてこのように再分割されたポリシーへ資源を割当てる。しかし、本発明の1つの実施の形態に使用されるポリシーの一例を以下の表1に示す。
【0067】
表1
【0068】
図8に示すように、一旦、ポリシーが記憶装置に対して決定されると、その装置のLUが、時々、「ドメイン」とここで呼ばれる、記憶プール802へ割当てられてられる。各記憶装置が1つ又は複数のLUを含むため、特定の記憶装置の全てのLUは同じプールに割当てられる。しかし、1つの実施の形態では、各LUはスイッチにより別個の記憶ノードとしてみなされ、そして各LUはSCCデータベース512内のLUオブジェクトにより記述される。従って、各プールはメンバーとしてLUを有する。1つの実施の形態では、プールへの割当ては物理的記憶装置が動作する、例えば、iSCSI又はファイバー・チャンネル、プロトコルとは独立に実行される。当業者には理解されるように、各プールはLUがそれに割当てられたプールに関するリストによりスイッチ中で定義され、そのリストは1つの実施の形態ではSCCデータベース512中に記憶される。このようなリストはLUオブジェクトへのポインタを含む。
【0069】
一般に、各プールは、特定の性質を持つユーザのみによりアクセス可能である。例えば、記憶プールはビルデイング1にいるユーザのために設立でき、プールは「ビルデイング1共有ゴールド記憶プール」と命名される。別の例示的なプールは「エンジニアリング専用シルバー記憶プール」と命名されて、特定の会社のエンジニアリング・チームにより専用にアクセスされてよい。もちろん、プールの無限の変形が設定でき、ここに記載されて示されるものは例示のみである。
【0070】
さらに、1つの実施の形態では、2つの特別なプールが存在する。「デフォルト・プール」と「ノー・プール」である。デフォルト・プールは、記憶ネットワークへアクセスするだれにもアクセスを許容する。これに対して、「ノー・プール」は、一般的にユーザにアクセス可能ではなく、スイッチ自身又はシステム管理者のみにアクセス可能である。一旦、プールに割当てられると、LUはスイッチ自身又はシステム管理者により異なるプールへ再割当てできる。例えば、LUは最初はノー・プール中に置かれて、テストされて、そして後で、デフォルト・プール又は他のプールへ移動される。
【0071】
サービスの品質及びサービス・レベル・アグリメント
サービス・レベル・アグリメント(SLA)は、時々、ネットワーク通信中で使用されるが、記憶ネットワークの文脈で一般的には使用されておらず、サービスの品質(QoS)ポリシーと共に記憶ネットワーク中に使用されてはいない。SLA/QoSを提供することにより、ユーザはデータの記憶及び検索の条件を選択できる。1つの実施の形態では、QoSポリシーは、3つの要素:仮想ターゲットの供給、イニシエーター接続の供給、及びユーザ・ドメインの定義により定義される。以下に各々が説明される。しかし、いくつかの実施の形態は、QoSポリシーを定義するために3つの全ての定義を必要としない。例えば、いくつかの実施の形態は、仮想ターゲットの供給、及びイニシエーター接続の供給のみを必要とし、ユーザ・ドメインの定義を必要としない。他の実施の形態では、QoSポリシーを定義するために全く異なる要素を使用してよい。
【0072】
仮想ターゲットの供給
物理的装置についてのLUがアクセス可能プールに存在すると、それらLUについて仮想ターゲットが生成できる。一旦、生成されると、図9に示すように、サーバー(及びそれらのそれぞれのユーザ)は、1つ又は複数の仮想ターゲット902を「見る」であろう。仮想ターゲットは各々が1つ又は複数のエクステント907からなるが、彼等は物理的装置206を必ずしも「見」ない。エクステントは、物理的装置から全体LU又はその隣接する部分である。図9の例に示すように、例示的仮想ターゲット902中の各エクステントは、いくつかの物理的装置からの全体LUにより形成されている。なお、「エクステント」は、ターゲットが「仮想」であることを自覚しないサーバーなどのイニシエーターからLUNにより参照できる。LUにより使用されるプロトコルを含む仮想ターゲットの構造は、サーバーとは関連性がない。しかし、図9に示すように、各仮想ターゲットは物理的装置206のLUへマップするエクステントからなる。
【0073】
仮想ターゲットを供給するために、ユーザは本発明の1つの実施の形態において仮想ターゲットのためのいくつかの特性を選択する。特性は以下を含む。
・大きさ(例えば、ギガバイト単位)、
・記憶プール、1つの実施の形態では、ユーザはユーザがアクセスを許された記憶プールだけから選択するが、
・所望の利用可能性、例えば、常に利用可能(データが重要で、ダウンすること許されない)、普通の利用可能性等、
・仮想ターゲットのWWUI、
・バックアップ・プール、
・ユーザ認証データ、
・ミラーされたメンバー数、
・ミラーされたメンバーの場所(例えば、ローカル又は遠隔)
また、他の実施の形態では異なる、追加の、又はより少ない特性も選択できる。
【0074】
その後、スイッチは仮想ターゲットが形成できるかどうかを決定するため、そして特にスイッチは仮想ターゲットについて必要の大きさに合うLU(又はLUの部分)の数が利用可能かどうかを決定するため、選択されたプールからの利用可能な資源を解析する。もし、そうであるならば、仮想ターゲットが1つ又は複数のエクステントにより生成される。そして、仮想ターゲット・オブジェクトが、仮想ターゲット、そのエクステント、及びその特性を識別するSCCデータベース内に形成される。以下の表2に4つの仮想ターゲットについてのユーザ選択特性の例が示されている。
【0075】
表2−仮想ターゲット
【0076】
新仮想ターゲットを供給するのに加えて、本発明の実施の形態によるスイッチは、既存のターゲットを新しい又は異なる情報により修正することもでき、又は、それらがもはや必要でなければ仮想ターゲットを削除できる。
【0077】
イニシエーター接続の供給
サーバー又は他のイニシエーターがスイッチへ接続されてそしてイニシエーターがiSNS又はSLPを支援する時、1つの実施の形態では、イニシエーターはそれ自身をスイッチに登録して、イニシエーター・オブジェクトをSCSIデータベース内に記憶する。他の実施の形態では、スイッチはイニシエーター接続を生成し、更新し、又は削除するアクセス供給機能を含む。
アクセス接続−スイッチとイニシエーター(サーバーなど)との間の接続−を生成する際、ユーザは1つの実施の形態の表3に示されるさまざまなパラメータを指定する。
【0078】
表3−イニシエーター接続
【0079】
上記の情報の全て又はいくつかが、SCCデータベース中に記憶されたイニシエーター・オブジェクト内に格納される。接続が除去される時、イニシエーター・オブジェクトが削除される。
【0080】
そして、スイッチ、管理ステーション、又は他のネットワーク管理は仮想ターゲットを形成するためにイニシエーターに利用可能なLUを指定して、特定の接続のための記憶プールを生成する。
【0081】
ユーザ・ドメイン
物理的装置と同様に、仮想ターゲットは指定された特性を持つもののみにアクセス可能なプールに割当てられることができる。すなわち、物理的装置と同様に、仮想ターゲットはユーザ指定ドメイン(時々、ここではユーザ・ドメインと呼ばれる)、デフォルト・ドメイン(だれにもアクセス可能)、又はノー・ドメインに割当てることができる。各ドメインは、1つの実施の形態では、その領域へ割当てられた全ての仮想ターゲットのリストを含むSCCデータベース中のオブジェクトにより識別される。仮想ターゲットについては、ノー・ドメインは予備仮想ターゲット、ミラーされた仮想ターゲットのメンバー、又は別のスイッチからの遠隔仮想ターゲットを含むことができる。本質的に、仮想ターゲット・ノー・ドメインは、或るタイプの仮想ターゲットためのパーキング場所である。説明の便宜のために、仮想ターゲットに言及する時、プールはここでは「ドメイン」と呼ばれる。しかし、物理的装置に言及する時、プールは「プール」と呼び続ける。しかし、概念的には「プール」と「ドメイン」とは本質的に同じものであることに理解すべきである。
【0082】
一旦、上述したようにイニシエーター接続が供給されると、イニシエーターの要求に合った仮想ターゲットが供給され、イニシエーターのためのアクセス可能プール中に置かれるか、又は、前に供給された仮想ターゲットがイニシエーターに、例えば、ノー・ドメイン又はデフォルト・ドメインなどの別のドメインから仮想ターゲットをイニシエーターのユーザ・ドメインに移動することにより、アクセス可能とされる。(仮想ターゲット又はイニシエーター接続のいずれかが最初に供給できる。それが特定の順序で供給されるべき要求はない。)そして、一旦、イニシエーターが例えば読出し又は書込み要求を送信することにより、仮想ターゲットへのアクセスを要求すると、仮想ターゲット・オブジェクト及びイニシエーター・オブジェクトの両方がSCCデータベースから読み出され、そして、イニシエーター接続及び仮想ターゲットに関する情報が要求を処理する際に使用するために関連するラインカードに送られる。
【0083】
仮想ターゲットを供給する例が、図10a−dを参照して与えられる。図10aを参照すると、スイッチに接続された全部で6つのLU―LU1、LU2、LU3、LU4、LU5、LU6―を有する物理的装置があり、全てが2つのイニシエーターX及びYにアクセス可能なプール「X−Yユーザ・プール」中に置かれていると仮定する。もし、イニシエーターXが2つの仮想ターゲットを要求すると、1つの状況では、LUは仮想ターゲットVT1及びVT2を形成するために供給される。ここでは、VT1はエクステントとしてLU1−3を含み、VT2はエクステントとしてLU4−6を含み、VT1及びVT2は共にサーバーXユーザ・ドメイン中に置かれて、図10bに示すようにサーバーXが両方の仮想ターゲットにアクセスすることを可能にする。サーバーYは、Yユーザ・ドメイン中に仮想ターゲットが置かれていないため、VT1又はVT2のいずれにもアクセスしない。代替的に、図10cを参照すると、もし、サーバーX及びサーバーYが共に1つの仮想ターゲットを要求すると、前と同様にVT1及びVT2が供給されるが、VT1がサーバーXのユーザ・ドメインに置かれ、一方、VT2がサーバーYのユーザ・ドメインに置かれる。
【0084】
もし、代りに、Yがミラーされた仮想ターゲットMを要求すると、VT1及びVT2が仮想ターゲットMのメンバーとして生成される。VT1及びVT2はスイッチのノー・ドメイン中に置かれる。しかし、図10dに示すように、MはYにアクセス可能とされる。Mのメンバーとして、VT1及びVT2は独立にはアクセス可能ではない。
【0085】
本発明のいくつかの実施の形態では、1つのスイッチへ結合された装置と仮想ターゲットがイニシエーターにアクセス可能であるだけでなく、別のスイッチに供給された仮想ターゲットも同様にアクセス可能である。図11を参照すると、サーバーXがスイッチAに結合され、そしてサーバーYがスイッチBに結合されている。VT1がスイッチA中のサーバーXのドメインの一部として供給され、VT2がスイッチB中のサーバーYのドメインの一部として供給される。さらに、スイッチBがスイッチAへのイニシエーターとして供給され、スイッチAがスイッチBへのイニシエーターとして供給される。このようにして、スイッチAはスイッチBを経由してVT2にアクセスでき、スイッチBはスイッチAを経由してVT1にアクセスできる。従って、スイッチBを経由してアクセスされるためここではVT1’として呼ばれるVT1をサーバーYの領域中に含むことができ、ここではVT2’として呼ばれるVT2をサーバーYの領域中に含むことができる(物理的装置のLUは一時に1つのプールのみに属することができるが、仮想ターゲットは一時に1つのドメインよりも多くに属することができる)。XがVT2にアクセスする時、スイッチBはスイッチAをイニシエーターとして見る。同様に、YがVT1にアクセスする時、スイッチAはスイッチBをイニシエーターとして見る。1つの実施の形態では、管理者はスイッチBの選択された資源を他のスイッチ、例えば、スイッチA、又はその逆、に利用可能としてもよい。
【0086】
SLAの定義
本発明の1つの実施の形態では、イニシエーターによる仮想ターゲットへのアクセスが、ユーザにより選択されたQoSポリシーがその一部であるSLAに従って提供される。以下の表6に1つの実施の形態でユーザによりSLAのために選択できるいくつかのパラメータの例が示される。
【0087】
表4
【0088】
ユーザがSLAと一致する時、ユーザはサービスの品質(QoS)ポリシーも選択する。上述したように、1つの実施の形態では、QoSポリシーは一般的に仮想ターゲット(供給されるような)、イニシエーター接続(供給されるような)、及びユーザ・ドメインにより定義される。従って、上の表4を再び参照し、表中の最初の3つの項目、「イニシエーターのID」、「仮想ターゲットのID」及び「ユーザ・ドメインのID」は、これらの項目が供給されるとイニシエーター接続及び仮想ターゲットの属性が定義されるため、本質的にQoSポリシーを記述する。例えば、イニシエーター接続のための最小及び最大帯域幅は、既に識別されている(表2及び3を参照)。ユーザ・ドメインはポリシーの定義を補助する。例えば、イニシエーター接続又は仮想ターゲット接続がより遅いかどうかを決定し、そして、QoSを2つの内のより遅い方へ強制する。もちろん、上述したように、ユーザ・ドメインは全ての実施の形態で必要でないであろう。同様に、他の実施の形態は上の表4に示されたものより多い、少ない、又は異なるパラメータを使用してSLAを定義してよい。
【0089】
図12
図12は、1つの実施の形態で、QoSを提供できるように、仮想ターゲットと接続を供給するステップを要約する。図示されるように、本発明の1つの実施の形態によると、スイッチは、ステップ1202で、スイッチと関連した物理的装置の特性を発見して決定する。そして、スイッチは、ステップ1204で、これらの装置を分類して、これらの装置を特定の記憶プールに関連付ける。スイッチは、ステップ1208で、イニシエーター接続のための情報を受信して、ステップ1210で、接続を供給し、SCCデータベース中にオブジェクトを生成する。また、スイッチは、ステップ1212で、仮想ターゲットのためのパラメータを受信して、ステップ1214で、これらのパラメータに従い仮想ターゲットを供給し、もし、資源が利用可能ならば、SCCデータベース内にオブジェクトを生成する。ステップ1208−1214は、どんな順番でも実行でき、図12に示された順番は例示のみである。ステップ1216で、仮想ターゲットが供給された後、ユーザ・ドメインが生成されて、仮想ターゲットがユーザ・ドメインに置かれるか、又は、仮想ターゲットは既存のユーザ・ドメイン中に置かれる。また、ユーザは前に供給された仮想ターゲットにアクセスを試みることができる(従って、ステップ1214は全ての接続については必要ではないであろう)。最後に、ステップ1218で、本発明の実施の形態によると、スイッチは、SLA/QoSパラメータを受信する。
【0090】
オブジェクト
上述したように、各仮想ターゲット、各イニシエーター接続、及び各物理的装置は、それぞれのエンティテイについてオブジェクト中に含まれた情報によりSCCデータベース内で識別される。各仮想ターゲット・オブジェクト及び物理的ターゲット・オブジェクトは、それを構成するLU又はエクステントのリストを含む。仮想ターゲット・オブジェクトの一例は、本発明の1つの実施の形態では、次の情報を含む。
【0091】
・エンティテイ・タイプ
・エンティテイ識別子
・IPアドレス管理
・時間スタンプ及びフラグ
・ポート
・ドメイン情報
・SCNビットマップ
・容量と質問情報
・エクステントの数
・エクステントのリスト
・エクステント・ロケーター
・仮想モード・ページ
・サービスの品質のポリシー(例えば、表4の最初の3つの項目)
・統計−使用、エラー、及び特性データ
・SLA識別子
物理的ターゲット(又は、LU)オブジェクトは同様な情報を含んでよい。
【0092】
オブジェクト中、「エンティテイ・タイプ」はエンティテイが仮想ターゲット又は物理的ターゲットかどうかを識別する。「エンティテイ識別子」は、1つの実施の形態では、WWUIであり、いくつかの実施の形態では、ユーザにより生成される。「IPアドレス管理」は、エンティテイ、例えば、管理ステーションがそれにより構成される装置のアドレスを示す。例えば、仮想ターゲットは、本発明の実施の形態ではSCCを通じてアクセスされる管理ステーションにより構成される。
【0093】
「時間スタンプ及びフラグ」は仮想ターゲット又は他のエンティテイが生成され又は変更された時間などの事象を追跡するのに使用される。フラグは、仮想ターゲット中のデータのコピーなど、進行中の事象又はさまざまなサービスを指示するために使用される。「ポート」は、それを通じてLUがアクセスできるポートのリストを含み、ポート名とラインカード数、TCP/IPアドレス又はファイバ・チャンネル24ビット・アドレス、及び、ポートがエンティテイのための一次的又は二次的ポートであるかどうかに関する情報を含む。
【0094】
「ドメイン情報」は仮想ターゲット又はエンティテイが属する記憶ドメイン又はプールを含む。「SCNビットマップ」は仮想ターゲットのためのシステム変更通知を指示する。「容量と質問情報」は仮想又は物理的ターゲットがどれだけ大きいかを指示し、及び、装置ベンダーにより通常提供される質問情報を含む。例えば、物理的装置についての質問情報はしばしばその製造者を識別する。仮想ターゲットについての質問情報はしばしばその仮想ターゲットを生成したスイッチを識別する。
【0095】
物理的装置の各LUは、仮想ターゲットを形成するために使用されるエクステントと呼ばれる記憶空間の隣接した1つ又は複数の部分からなる。従って、「エクステントの数」はどれだけの数のエクステントが仮想ターゲットを形成するかを識別する。「エクステントのリスト」は、各エクステントを1つの実施の形態ではオフセット及び大きさにより識別する。例えば、3つのエクステントからなる10GB仮想ターゲットは、表5に示すように「エクステントのリスト」内でエクステントを識別してよい。
【0096】
表5
【0097】
「エクステント・ロケーター」は、正確にエクステントがどこに位置するか、すなわち、どの物理的装置上にあるかを識別する。例えば、上記の10GB、3エクステント仮想ターゲットは以下のエクステント・ロケーターを持つてもよい。
【0098】
表6
【0099】
表5及び表6の両方を使用したこの例では、仮想ターゲットの第1エクステントは、オフセット5GB(表6)で開始して2GB(表5)まで延びる物理的装置2(表6)にマップされていると決定できる。第2エクステント(表5)は、オフセット3GB(表6)で開始して5GB(表5)まで延びる物理的装置1(表6)にマップされている。最後に、第3エクステントは、オフセット15GB(表6)で開始して3GB(表5)まで延びる物理的装置3(表6)にマップされている。
【0100】
もし、いくつかの実施の形態で、仮想ターゲットがミラーされると、ミラーされた仮想ターゲットの各メンバーは、エクステント・ロケーターは異なるが、同一のエクステント・リストを持つ。
【0101】
「仮想モードページ」は、当業者には理解されるように、SCSI命令中にしばしば見られるモードページを識別する。この情報はブロック転送大きさ、直接データ支援、又はアプリケーション・ソフトウェアがSCSIモードページ命令により設定できそして検索できるどんな独特な情報を含む。
【0102】
「サービスの品質のポリシー」は、仮想ターゲットのサービスの特性を決定し、仮想ターゲットが供給される時に選択される。1つの実施の形態では、サービスの品質のポリシーは、表4の最初の3つの項目中に見られる識別子を使用して定義される。
【0103】
「統計」は、本発明の1つの実施の形態ではスイッチにより仮想ターゲットの実行時に収集される。これらは、本発明の1つの実施の形態では、使用、エラー。及び性能データを含み、以下にさらに説明される。
「SLA識別子」は、SLAに関する情報についてのSLAオブジェクトを識別する。
【0104】
統計
本発明の実施の形態によるスイッチは統計も収集する。1つの実施の形態では、1つのイニシエーターから1つの仮想ターゲットへの各接続に対して、以下の情報がイニシエーターに接続するラインカードのSPUにより収集される。
【0105】
1.全読み取りアクセス(読み取り要求数)
2.蓄積された読み取り転送バイト(記憶から読み取られた全バイト数)
3.蓄積された読み取り応答時間(要求の受け取りから応答を得るまでの時間)
4.全書込みアクセス(書込み要求数)
5.蓄積された書込み転送バイト
6.蓄積された書込み応答時間
7.蓄積された回復可能エラー
8.蓄積された回復不可能エラー
【0106】
各ラインカード上のCPUは、周期的にSPUから統計を要求する。SPUはデータを戻すことにより応答する。そして、SPUはデータをゼロにリセットして収集を開始する。
【0107】
収集されたデータに基づいて、CPUは以下の統計を維持する。
1.平均読み取りアクセス速度
2.最大読み取りアクセス速度
3.平均読み取り転送速度
4.最大読み取り転送速度
5.最小読み取り応答時間
6.平均読み取り応答時間
7.最大読み取り応答時間
8.平均書込みアクセス速度
9.最大書込みアクセス速度
10.平均書込み転送速度
11.最大書込み転送速度
12.最小書込み応答時間
13.平均書込み応答時間
14.最大書込み応答時間
15.十億の要求当たりの回復可能エラー
16.十億の要求当たりの回復不可能エラー
【0108】
1つの実施の形態ではある所定の時間間隔後に、CPUはSCCへ統計を転送して、関連VTD(SPU内に記憶されている)を更新する。別の実施の形態では、SCCはCPUから統計を要求し、CPUはそれをSCCへ提供する。いくつかの実施の形態では、SCCはまた、データが正確で過剰に蓄積されないように、その統計を周期的、例えば、週単位でリセットする。
【0109】
QoSの実行
1つの実施の形態では、イニシエーター接続帯域幅の最小パーセンテイジは、QoSにより保証される。従って、このような実施の形態で、複数のイニシエーターが単一のポート上で供給される時、全てのイニシエーターの全ての最小帯域幅の合計は100%に等しいか又はそれより少なければならない。対照的に、最大パーセンテイジは、同じ接続上で他の競合するユーザが存在しない時に接続の可能な使用を与える。従って、全てのイニシエーターの帯域幅の最大パーセンテイジの和は、接続の帯域幅100%を超えることができる。この場合、定義されたスイッチング優先度(表2参照)が、どのイニシエーターが予定の最初を獲得するかを決定する。
【0110】
従来の接続ネットワークでは(記憶ネットワークとは反対に)、QoSはユーザが支払った接続のデータ帯域幅のパーセンテイジを獲得することを保証するために使用される。それはオーディオ及びビデオなどの時間敏感データが、送信前に予約されたデータ帯域幅を交渉するか又は時間敏感送信を渋滞した状況でより高い優先度を与えるかのいずれかにより、許容できる中断のみを経験することを可能にする。QoSは、パケットを落とす出費によってスイッチング・トラフイックを優先付けることでさえ実行される。
【0111】
しかし、要求が1つ又は複数のパケットを含むことができる従来のネットワーク通信システムとは異なり、記憶システムの要求を落とすことは許容できない。1つの実施の形態では、要求が完了するまで、イニシエーターからターゲットへ送受信される全てのパケットを含む。例えば、iSCSI命令PDU、iSCSIR2T、iSCSI書込みデータPDU、及びiSCSI応答PDUは、単一の要求を形成する。本発明の実施の形態による記憶スイッチに対しては、1つの実施の形態では、データ帯域幅が秒当たりの要求数に要求の平均転送大きさを掛算して計算される。例えば、秒当たり1000要求で、平均転送大きさが8KBの場合、記憶装置の帯域幅は、8MB/秒(又は、80Mb/秒)である。しかし、スイッチは要求の平均転送大きさの制御を持たないため、記憶アクセスについてのQoSを実行することは秒当たり同時に許容される要求数を制御することになる。従って、もし、イニシエーターから多すぎる要求が送信されると、同時的要求の数は減少されなければならない。1つの実施の形態では、最悪のケースでは、一時に1つの要求のみがイニシエーターから送られることができる。
【0112】
仮想ターゲットは、最大数の同時的要求を支援する。複数の仮想ターゲットをアクセスするイニシエーターは、それがアクセスしている全ての仮想ターゲットについての要求の最大数の和に等しい要求の最大数を送信できる。しかし、複数のイニシエーターが1つ又は複数の仮想ターゲットを共有する時、利用可能な要求の最大数は、帯域幅の最小パーセンテイジのそれぞれのQoSパラメータに従って比例配分されて、イニシエーター間で共有される。例えば、もし、2つのイニシエーターが100の同時的要求を収容できる仮想ターゲットへのアクセスを共有していて、そして、イニシエーター1が帯域幅の最小の70%を得て、イニシエーター2が帯域幅の最小の30%を得ている場合、最初は、イニシエーター1は70要求を送信でき、イニシエーター2は30要求を送信できる。しかし、各イニシエーターはそれ自身の要求大きさを持つから、大きな要求大きさはより大きな帯域幅を消費して、より小さな転送大きさの他のイニシエーターを締め出す。従って、以下に説明するように、1つの実施の形態では、帯域幅の範囲を保証するために各イニシエーターによる可能な要求の調節が実行される。
【0113】
入場及び出場ラインカード内のトラフイック管理(TM)608(図6)は、異なる接続の転送帯域幅を監視する。また、TMは、QoSパラメータに基づいて配達を予定する。従って、TMは各共有された接続がその最小帯域幅を得て、最大帯域幅により制限されることを保証する。換言すると、TMは各接続が指定された範囲内にあることを保証する。そのようにするため、1つの実施の形態では、パケットがTMバッフア612内で蓄積される時、このような蓄積はイニシエーターがその限界に到達したことを指示する。TMは、違反したイニシエーターにその接続を遅くするように指示する制御メッセージをSPUへ送信する。このようなメッセージを受信した後、SPUは違反したイニシエーターへ許容される要求の数を減らして、一方、より少ない持分を受け取っているイニシエーターへ許容される要求の数を増加する。1つの実施の形態では、サーバーへの利用可能な要求の数の通知は、iSCSIPDU中のMaxCmdSNフィールドで行われる。
【0114】
例えば、イニシエーターA及びイニシエーターBの両方が、それらの最小帯域幅50%として共有されたイニシエーター接続を持つ。100KBの転送大きさを使用して、イニシエーターAは秒当たり800要求を送信し、よって、接続上で秒当たり80MBの帯域幅を得ている。転送大きさ4Kを使用して、イニシエーターBは秒当たり2000要求を送信するが、たった秒当たり8MBの帯域幅を得る。従って、もし、イニシエーターAに許された最大帯域幅が秒当たり70MBである場合、スイッチは秒当たり70MBを得るためにイニシエーターAからの要求数を秒当たり700の要求に減少しなければならない。従って、入場トラフイック・マネージャ608iは、入場SPUに、イニシエーターAがその最大を超過して、パケットがバッフア612iに蓄積していることを報告する。SPUは、そのメッセージを受け取ると、Aへの可能な要求の数を減少してそしてBへのそれらを増加する。よって、イニシエーターBはより多くの要求を接続上に送信できる。イニシエーターがその最小パーセンテイジ帯域幅に到達してもその可能な要求の使用を最大化しない時、調節は必要でないことに注意する。さらに、イニシエーターBが現在、接続の50%を要求していないため、イニシエーターAはその最大の可能な帯域幅まで使用することが自由である(しかし、超過しない)。
【0115】
同様に、もし、2つの異なる接続上の2つのイニシエーターが単一の仮想ターゲットを共有している場合、各イニシエーターに対して比例分割された要求数は、出場ラインカード上のTM608eが2つのイニシエーター間の不当な帯域幅の使用を検知する時、調節される。それはこのような不当な帯域幅使用を、違反したイニシエーターがパケットをバッフア612eに蓄積する時に発見する。
【0116】
接続が共有されていないで、物理的記憶装置自身がビジーとなって渋滞を発生した時、出場TM608eはPPUにパケットがバッフア612eに蓄積していることを知らせる。再び、SPUはイニシエーターを遅くするために、可能な要求の数を減少する。
【0117】
また、スイッチはイニシエーターと記憶装置との間の帯域幅を一致する。例えば、最小100%の1Gb接続を持つイニシエーターを支援するため、他の仮想ターゲットは記憶接続上に割当てることができない。しかし、イニシエーターが接続の50%帯域幅のみを要求する時、残りの50%は別の仮想ターゲットに割当てることができる。
【0118】
最後に、他の全てが等しい時、接続の優先度が、どの命令がラインカードのスイッチ・トラフイック・マネージャにより最初に配達されかを決定する。
以下の表7が、1つの実施の形態についてここで説明されたQoS実行を要約する。
【0119】
表7
【0120】
第1の状態において、イニシエーター入場ポートは共有されずそしてターゲット出場ポートは共有されない場合、渋滞はしばしばビジーな物理的ターゲット装置により発生されて一般に出場バッフア閾値が超過する時に検出される(出場バッフアは許容ポイント超えてバックアップされる)。従って、適当な動作はイニシエーターからの可能な要求数を減少することである。
【0121】
第2の状態において、共有されたイニシエーター入場ポートは、ターゲット出場ポートが共有されないように、異なるポート上の異なるターゲットにアクセスするイニシエーターにより共有される。イニシエーターの1つにより使用される過剰な帯域幅は、閾値が超過されたかどうかを決定することにより入場バッフア内で検出されて、バッフアが許容ポイントを超えてバックアップするようにする。適当な動作は、違反イニシエーターからの可能な要求数を減少することである。
【0122】
第3の状態において、イニシエーター入場ポートは共有されないが、ターゲット出場ポートは共有されて、同じターゲットが異なるポートから異なるイニシエーターによりアクセスされることを指示する。イニシエーターの1つによる過剰な要求数によって発生する過剰な帯域幅の使用は、出場バッフア内で検出される。適当な動作は、異なるイニシエーターからの可能な要求数を再分配することである。例えば、1つのイニシエーターの可能な要求数を減少し、一方、他のイニシエーターの要求数を増加する。
【0123】
第4の状態において、イニシエーター入場ポートは共有されないが、ターゲット出場ポートは共有される。しかし、この場合、異なるターゲットは異なるイニシエーターにより同じ出場ポート上でアクセスされる。このような場合、過剰な帯域幅が各ターゲットが接続帯域幅のパーセンテイジを与えられている出場バッフア内で検出される。このような場合で取るべき適当な動作は、違反イニシエーターへの可能な要求数を減少することである。
【0124】
最後に、第5の状態は共有されたイニシエーター入場ポート及び共有されたターゲット出場ポートを示す。このような状態では、二段階決定が存在する。第1は各仮想ターゲットが帯域幅のその割当てられたパーセンテイジを獲得することを保証し、そして、第2に異なるイニシエーターへ可能な要求数を比例配分することである。このような決定はバッフア閾値が超過したかどうか見ることにより、入場及び出場バッフアの両方で行われる。適当な動作は、上記の4つの状態で行われたように各仮想ターゲットを別個に取り扱い、必要により要求数を減少することである。
理解されるように、表7は説明のためであり、別の実施の形態では、QoSを実行するために別の動作を行うことができ、そして上述にない他の状態が発生できる。
【0125】
負荷平衡
1つの実施の形態では、負荷平衡が使用され、ターゲット装置への複数の経路が利用可能な時、より速くターゲット装置に到達するために経路が動的に選択されることにより発生する。負荷平衡は、スイッチ内の各ポート上で、各要求に対して、各ポート上でのSPU処理パワーを使用することにより動的に実行される(固定された時間間隔で、静的にするのとは反対に)。
【0126】
フェイルオーバーは負荷平衡の特別な場合であり、本発明のいくつかの実施の形態で使用される。フェイルオーバーはミラーされたターゲットの1つのメンバーが利用不可能になった時、又は、複数の経路によりアクセス可能なターゲットへの1つの経路が使用不可能になった時に発生し、いずれの場合、他のメンバーがアクセスされるか又は他の経路が利用される。
【0127】
本発明の実施の形態によるスイッチにおいて、スイッチは負荷平衡に関して2つの異なるタイプの動作を実行する。
【0128】
1.図13bを参照すると、もし、仮想ターゲットがミラーされている場合、スイッチはイニシエーターの読出し要求を、最短の平均応答時間を持つミラーされた仮想ターゲットのメンバーを選択することにより、ミラーされたメンバーの1つへ送る。
【0129】
2.図13aを参照すると、もし、LUへ複数の経路が存在する場合、スイッチはLUへの要求を最短の平均応答時間を持つ経路に送信する。しかし、1つの実施の形態では、この負荷平衡は、他の実施の形態ではこのような要件は持たないが、複数の経路がターゲットLUから同じSPUへ接続されている時にのみ、実行される。
【0130】
いくつかの実施の形態では、スイッチはまた、「通過」構成を支援する。このような実施の形態では、仮想ターゲットは物理的ターゲット自身であり、そして全ての命令は解釈無しに、例えば、仮想化又は翻訳無しに、スイッチを「通過」する。このような実施の形態では、全ての負荷平衡機能はサーバー自身により処理される。
【0131】
さらに詳細には、負荷平衡について、上述したように収集された統計を使用して、本発明によるスイッチは、ミラーされた仮想ターゲットの各メンバーの応答時間を含む、各ターゲットの平均応答時間を追跡する。関連する統計は各VTDに記憶されて、CPUにより定期的に更新される。読取り操作の際、SPU(VTDを参照する)は最小の平均応答時間を持つ経路を選択してその経路上に要求を転送するか、又は、それは最小の平均応答時間を持つミラーされたメンバーを選択してそのメンバーへ要求を転送する。ミラーされたターゲットでは、書込みはミラーされた仮想ターゲットの全てのメンバーに対して行われるから、書込み操作に対してミラーされたメンバー間の選択は行われないことに注意する。1つの経路が他の経路に対して明確な利益がない時、又は、1つのミラーされたメンバーが他の経路に対して明確な利益がない時、命令は交互にさまざまな経路/メンバーへ送られる。
【0132】
本発明の1つの実施の形態では、複数の同時的接続はiSCSI装置に対してのみ使用される。ファイバー・チャンネルは現在、このような複数の同時的接続を支援しない。しかし、他のプロトコルを使用する他の実施の形態もまた複数同時接続を支援する。
【0133】
上述の特定の実施の形態は本発明の説明の目的ためのみであり、さまざまな修正が本発明の精神と範囲から逸脱することなく当業者にできる。従って、本発明の範囲は特許請求の範囲のみにより限定される。
【図面の簡単な説明】
【0134】
【図1】従来技術システムによるSANの概略的な機能ブロック図。
【図2】本発明の1つの実施の形態による記憶スイッチを使用するSANシステムの概略的な機能ブロック図。
【図3】本発明の別の実施の形態による記憶スイッチを使用するシステムの概略的な機能ブロック図。
【図4】本発明のさらに別の実施の形態による記憶スイッチを使用するシステムの概略的な機能ブロック図。
【図5】本発明の実施の形態による記憶スイッチの概略的な機能ブロック図。
【図6】本発明の実施の形態による記憶スイッチに使用されるラインカードの概略的な機能ブロック図。
【図7a】本発明の実施の形態による記憶スイッチに使用される仮想ターゲット記述子の概略的なブロック図。
【図7b】本発明の実施の形態による記憶スイッチに使用される物理的ターゲット記述子の概略的なブロック図。
【図8】記憶プールを示す概略的なブロック図。
【図9】サーバーにより「見られる」仮想ターゲットを示す概略的な論理ブロック図。
【図10a】物理的装置の例示的な記憶プールを示す概略的なブロック図。
【図10b】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図10c】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図10d】さまざまな例示的仮想ターゲット記憶プールを示す概略的なブロック図。
【図11】第2スイッチに接続された記憶装置の第1スイッチからのアクセス可能性を示す概略的なブロック図。
【図12】本発明の実施の形態によるステップを示すフロー図。
【図13a】負荷平衡を示す概略的なブロック図。
【図13b】負荷平衡を示す概略的なブロック図。
Claims (26)
- データを記憶してアクセスするためのシステム内で使用される方法であって、このシステムは少なくと1つのイニシエーターと、少なくとも1つのターゲットと、少なくとも1つのスイッチを含み、
イニシエーターからターゲットへの複数の経路を提供し、各経路はスイッチを通過し、
スイッチにより経路間の負荷を動的に平衡にすることを含む方法。 - 経路間の負荷を動的に平衡にすることが、
各経路に対してそれぞれ平均の応答時間を決定し、
最短の平均の応答時間を持つ経路に沿ってイニシエーターからターゲットへスイッチにより受け取られた要求を送る、
ことを含む請求項1に記載の方法。 - ターゲットが、物理的記憶装置である請求項1に記載の方法。
- ターゲットが、仮想ターゲットである請求項1に記載の方法。
- ターゲットが、複数のメンバーを持つミラーされたターゲットであり、経路間の負荷の平衡が、
ミラーされたターゲットの各メンバーのそれぞれの平均の応答時間を決定し、
最短の平均の応答時間を持つメンバーへイニシエーターからターゲットへスイッチにより受け取られた要求を送る、
ことを含む請求項1に記載の方法。 - 要求が読み取り要求である請求項5に記載の方法。
- スイッチが、複数のポートを含み、そして負荷の平衡がそれぞれのポートと関連付けられた回路により実行される請求項1に記載の方法。
- イニシエーターと、記憶装置と、スイッチとを含む記憶ネットワークで使用される方法であって、
記憶装置からイニシエーターへの複数の経路を提供し、各経路はスイッチを通過し、
各経路についてそれぞれの平均の応答時間を決定し、
最短の平均の応答時間を持つ経路に沿ってイニシエーターから記憶装置へスイッチにより受け取られた要求を送る、
ことを含む方法。 - イニシエーターと、複数のメンバーを持つミラーされた仮想ターゲットと、スイッチとを含む記憶ネットワークで使用される方法であって、
ミラーされた仮想ターゲットの各メンバーからイニシエーターへの複数の経路を提供し、各経路はスイッチを通過し、
各経路についてそれぞれの平均の応答時間を決定し、
最短の平均の応答時間のメンバーへイニシエーターからスイッチにより受け取られた要求を送る、
ことを含む方法。 - 要求が、読み取り要求である請求項9に記載の方法。
- スイッチと、複数のイニシエーターと、複数のターゲットとを含み、そしてターゲットのいくつかは複数のメンバーを持つミラーされたターゲットであり、そしていくつかのターゲットは物理的記憶装置である記憶ネットワークで使用される方法であって、
スイッチを経由して、第1イニシエーターから物理的記憶装置への複数の経路を提供し、
スイッチを経由して、第2イニシエーターからミラーされたターゲットの各メンバーへのそれぞれの経路を提供し、
第1イニシエーターから物理的記憶装置への各経路について及び第2イニシエーターからミラーされたターゲットの各メンバーへの各経路について、それぞれの平均の応答時間を決定し、
最短の平均の応答時間を持つ物理的記憶装置への経路に沿ってイニシエーターから物理的記憶装置へスイッチにより受け取られた第1要求を送り、
最短の平均の応答時間を持つミラーされたターゲットのメンバーへイニシエーターからスイッチにより受け取られた第2要求を送る、
ことを含む方法。 - 第1要求を送るステップが、スイッチ内の第1ラインカードにより実行され、
第2要求を送るステップが、スイッチ内の第2ラインカードにより実行される請求項11に記載の方法。 - 第1要求を送るステップ及び第2要求を送るステップが、同じラインカードにより実行される請求項11に記載の方法。
- スイッチが複数のラインカードを含み、そして決定するステップが各ラインカードにより実行される請求項11に記載の方法。
- 記憶ネットワークにおいて使用されるスイッチであって、
複数のポートと、
各ポートと関連付けられた負荷平衡回路と、
を含むスイッチ。 - 負荷平衡回路が、記憶プロセッサ及びCPUを含む請求項15に記載のスイッチ。
- イニシエーター及び複数の経路によりイニシエーターと通信するターゲットを含み、各経路がスイッチを通過する記憶ネットワークにおいて使用されるスイッチであって、
複数のポートと、
経路間の負荷平衡手段と、
を含むスイッチ。 - 負荷平衡手段が、
各経路の応答時間について統計を維持する手段と、
最短の平均応答時間を持つ経路に沿ってイニシエーターからターゲットへスイッチにより受信された要求を送信する手段と、
を含む請求項17に記載のスイッチ。 - イニシエーターと、
ターゲットと、
スイッチと、
スイッチを経由するイニシエーターからターゲットへの複数の経路とを含み、
スイッチが、各経路について応答時間に関する統計的情報を含み、
スイッチが、最短の応答時間を持つ経路に沿ってイニシエーターからターゲットへ要求を転送するように構成されている記憶ネットワーク。 - ターゲットが、物理的記憶装置である請求項19に記載の記憶ネットワーク。
- ターゲットが、仮想ターゲットである請求項19に記載のネットワーク。
- ターゲットが複数のメンバーを持つミラーされたターゲットであり、複数の経路が各メンバーへのそれぞれの経路である請求項19に記載のネットワーク。
- 記憶ネットワーク内のスイッチにより実行される時、以下のステップをスイッチに実行させる命令を記憶した機械読取り可能な媒体であって、
イニシエーターからターゲットへの複数の経路を提供し、各経路はスイッチを通過するステップと、
各経路についてそれぞれの応答時間を決定するステップと、
最短の平均の応答時間を持つ経路に沿ってイニシエーターからターゲットへスイッチにより受け取られた要求を送るステップと、
を含む機械読取り可能な媒体。 - ターゲットが、物理的記憶装置である請求項23に記載の機械読取り可能な媒体。
- ターゲットが、仮想ターゲットである請求項23に記載の機械読取り可能な媒体。
- ターゲットが、複数のメンバーを持つミラーされたターゲットであり、そして、命令が、
ミラーされたターゲットの各メンバーのそれぞれの応答時間を決定し、
最短の平均の応答時間を持つメンバーへイニシエーターからターゲットへスイッチにより受け取られた要求を送る、
ことを含む請求項23に記載された機械読取り可能な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32570401P | 2001-09-28 | 2001-09-28 | |
US10/051,053 US20030079018A1 (en) | 2001-09-28 | 2002-01-18 | Load balancing in a storage network |
PCT/US2002/030913 WO2003027885A1 (en) | 2001-09-28 | 2002-09-27 | Load balancing in a storage network |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005505814A true JP2005505814A (ja) | 2005-02-24 |
Family
ID=26729006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003531352A Pending JP2005505814A (ja) | 2001-09-28 | 2002-09-27 | 記憶ネットワーク中の負荷平衡 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20030079018A1 (ja) |
EP (1) | EP1438675A1 (ja) |
JP (1) | JP2005505814A (ja) |
WO (1) | WO2003027885A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009529190A (ja) * | 2006-03-08 | 2009-08-13 | オムニオン ビデオ ネットワークス | 冗長データファブリックの動的分割のための方法 |
JP2009529193A (ja) * | 2006-03-08 | 2009-08-13 | オムニオン ビデオ ネットワークス | データ記憶システム |
JP2010049716A (ja) * | 2009-12-01 | 2010-03-04 | Fujitsu Ltd | データストレージシステム |
JP2012073983A (ja) * | 2010-09-30 | 2012-04-12 | Internatl Business Mach Corp <Ibm> | マルチパスを使用するシステム及び方法 |
JP5445138B2 (ja) * | 2007-12-28 | 2014-03-19 | 日本電気株式会社 | データ分散格納方法およびデータ分散格納システム |
US10938741B2 (en) | 2015-12-04 | 2021-03-02 | International Business Machines Corporation | Resource allocation for a storage area network |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069295B2 (en) * | 2001-02-14 | 2006-06-27 | The Escher Group, Ltd. | Peer-to-peer enterprise storage |
TW576061B (en) * | 2001-08-13 | 2004-02-11 | Via Tech Inc | Device and method for load balancing of packet switching |
US7159010B2 (en) * | 2002-02-06 | 2007-01-02 | Intel Corporation | Network abstraction of input/output devices |
US7209979B2 (en) * | 2002-03-29 | 2007-04-24 | Emc Corporation | Storage processor architecture for high throughput applications providing efficient user data channel loading |
US8260907B2 (en) * | 2002-04-04 | 2012-09-04 | Ca, Inc. | Methods, systems and computer program products for triggered data collection and correlation of status and/or state in distributed data processing systems |
US7899924B2 (en) * | 2002-04-19 | 2011-03-01 | Oesterreicher Richard T | Flexible streaming hardware |
US20040006636A1 (en) * | 2002-04-19 | 2004-01-08 | Oesterreicher Richard T. | Optimized digital media delivery engine |
US20040006635A1 (en) * | 2002-04-19 | 2004-01-08 | Oesterreicher Richard T. | Hybrid streaming platform |
JP4704659B2 (ja) * | 2002-04-26 | 2011-06-15 | 株式会社日立製作所 | 記憶装置システムの制御方法および記憶制御装置 |
JP3800527B2 (ja) * | 2002-05-30 | 2006-07-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークを利用したデータのバックアップ技術 |
JP2004110367A (ja) * | 2002-09-18 | 2004-04-08 | Hitachi Ltd | 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム |
US20040064558A1 (en) * | 2002-09-26 | 2004-04-01 | Hitachi Ltd. | Resource distribution management method over inter-networks |
US7263593B2 (en) | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
US7421502B2 (en) * | 2002-12-06 | 2008-09-02 | International Business Machines Corporation | Method and system for storage-aware flow resource management |
JP2004222982A (ja) * | 2003-01-23 | 2004-08-12 | Konica Minolta Holdings Inc | 医用画像処理システム及び医用画像処理方法 |
US7302500B2 (en) * | 2003-04-30 | 2007-11-27 | Dynamic Network Factory, Inc. | Apparatus and method for packet based storage virtualization |
JP4438457B2 (ja) | 2003-05-28 | 2010-03-24 | 株式会社日立製作所 | 記憶領域割当方法、システム及び仮想化装置 |
JP2005018193A (ja) * | 2003-06-24 | 2005-01-20 | Hitachi Ltd | ディスク装置のインタフェースコマンド制御方法ならびに計算機システム |
JP4307202B2 (ja) * | 2003-09-29 | 2009-08-05 | 株式会社日立製作所 | 記憶システム及び記憶制御装置 |
JP2005217815A (ja) * | 2004-01-30 | 2005-08-11 | Hitachi Ltd | パス制御方法 |
JP3909062B2 (ja) * | 2004-03-25 | 2007-04-25 | 株式会社日立製作所 | Nasの制御装置及びバックアップ方法並びにプログラム |
US7617303B2 (en) * | 2004-04-27 | 2009-11-10 | At&T Intellectual Property Ii, L.P. | Systems and method for optimizing access provisioning and capacity planning in IP networks |
WO2005104727A2 (en) * | 2004-04-28 | 2005-11-10 | Emc Corporation | Proactive transfer ready resource management in storage area networks |
US20050262309A1 (en) * | 2004-04-28 | 2005-11-24 | Frey Robert T | Proactive transfer ready resource management in storage area networks |
US7343453B2 (en) | 2004-04-30 | 2008-03-11 | Commvault Systems, Inc. | Hierarchical systems and methods for providing a unified view of storage information |
US8266406B2 (en) | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US20060036908A1 (en) * | 2004-08-10 | 2006-02-16 | Fabrice Helliker | System for backup storage device selection |
US7913043B2 (en) | 2004-05-14 | 2011-03-22 | Bakbone Software, Inc. | Method for backup storage device selection |
JP2008505405A (ja) * | 2004-06-30 | 2008-02-21 | グレネイル エレクトロニクス インコーポレイテッド | 分散型通信プラットフォームにおけるロードバランシング |
JP4663718B2 (ja) * | 2004-07-21 | 2011-04-06 | ビーチ・アンリミテッド・エルエルシー | ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ |
KR100868820B1 (ko) * | 2004-07-23 | 2008-11-14 | 비치 언리미티드 엘엘씨 | 데이터 스트림을 전달하는 방법 및 시스템과 데이터 저장 레벨을 제어하는 방법 |
JP4646574B2 (ja) | 2004-08-30 | 2011-03-09 | 株式会社日立製作所 | データ処理システム |
US8055787B2 (en) * | 2004-09-10 | 2011-11-08 | Invensys Systems, Inc. | System and method for managing industrial process control data streams over network links |
US7630313B2 (en) * | 2004-09-30 | 2009-12-08 | Alcatel-Lucent Usa Inc. | Scheduled determination of network resource availability |
JP2006127028A (ja) * | 2004-10-27 | 2006-05-18 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
EP1662369B1 (en) * | 2004-11-30 | 2017-12-06 | Fujitsu Limited | Data storage system and data storage control device |
CN100355244C (zh) * | 2005-01-27 | 2007-12-12 | 中国科学院计算技术研究所 | 一种宽带无线城域网中提供分级服务的带宽分配方法 |
JP5057656B2 (ja) * | 2005-05-24 | 2012-10-24 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの運用方法 |
US7620981B2 (en) * | 2005-05-26 | 2009-11-17 | Charles William Frank | Virtual devices and virtual bus tunnels, modules and methods |
US8819092B2 (en) | 2005-08-16 | 2014-08-26 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
KR101340176B1 (ko) | 2005-08-25 | 2013-12-10 | 실리콘 이미지, 인크. | 스마트 스케일러블 스토리지 스위치 아키텍처 |
US7840710B2 (en) * | 2005-08-31 | 2010-11-23 | Research In Motion Limited | Method, system and apparatus for selective application access and synchronization |
US7801864B2 (en) | 2005-11-28 | 2010-09-21 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data identification operations |
US8572330B2 (en) * | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US8661216B2 (en) * | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US7651593B2 (en) | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
AU2006331932B2 (en) | 2005-12-19 | 2012-09-06 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
US8457007B2 (en) | 2006-02-24 | 2013-06-04 | Marvell World Trade Ltd. | Global switch resource manager |
US7961623B2 (en) * | 2006-07-17 | 2011-06-14 | Camiant, Inc. | Combophone with QoS on cable access |
US8726242B2 (en) * | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US20080147878A1 (en) * | 2006-12-15 | 2008-06-19 | Rajiv Kottomtharayil | System and methods for granular resource management in a storage network |
US8677091B2 (en) * | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
US20080177881A1 (en) * | 2007-01-19 | 2008-07-24 | Dell Products, Lp | System and Method for Applying Quality of Service (QoS) in iSCSI Through ISNS |
JP4966135B2 (ja) * | 2007-08-31 | 2012-07-04 | 株式会社東芝 | サーバ装置、端末装置、通信制御方法および通信制御プログラム |
US20090119452A1 (en) * | 2007-11-02 | 2009-05-07 | Crossroads Systems, Inc. | Method and system for a sharable storage device |
US9178842B2 (en) * | 2008-11-05 | 2015-11-03 | Commvault Systems, Inc. | Systems and methods for monitoring messaging applications for compliance with a policy |
US9495382B2 (en) | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US8504517B2 (en) | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
WO2011150391A1 (en) | 2010-05-28 | 2011-12-01 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US9513837B2 (en) * | 2011-10-12 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Performance assist storage volumes |
US10148732B2 (en) | 2012-02-09 | 2018-12-04 | Connectify, Inc. | Secure remote computer network |
US10484335B2 (en) * | 2012-02-09 | 2019-11-19 | Connectify, Inc. | Secure remote computer network |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
CN104426694B (zh) * | 2013-08-28 | 2018-10-12 | 新华三技术有限公司 | 一种调整虚拟机资源的方法和装置 |
US9857974B2 (en) * | 2013-10-03 | 2018-01-02 | International Business Machines Corporation | Session execution decision |
US9882841B2 (en) * | 2014-01-23 | 2018-01-30 | Virtual Instruments Corporation | Validating workload distribution in a storage area network |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
CN106487826A (zh) * | 2015-08-25 | 2017-03-08 | 中兴通讯股份有限公司 | 网络小型计算机系统接口会话链路的切换方法及装置 |
US10176036B2 (en) | 2015-10-29 | 2019-01-08 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US11349763B1 (en) * | 2016-03-16 | 2022-05-31 | Dell Products L.P. | Avoiding failures in sending data to the cloud due to performance gradient |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US20190251204A1 (en) | 2018-02-14 | 2019-08-15 | Commvault Systems, Inc. | Targeted search of backup data using calendar event data |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US20230168934A1 (en) * | 2021-12-01 | 2023-06-01 | Fungible, Inc. | Predictable and adaptive quality of service for storage |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
US12056018B2 (en) | 2022-06-17 | 2024-08-06 | Commvault Systems, Inc. | Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5721904A (en) * | 1993-12-20 | 1998-02-24 | Hitachi, Ltd. | Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL |
JP3474646B2 (ja) * | 1994-09-01 | 2003-12-08 | 富士通株式会社 | 入出力制御装置及び入出力制御方法 |
US6185601B1 (en) * | 1996-08-02 | 2001-02-06 | Hewlett-Packard Company | Dynamic load balancing of a network of client and server computers |
JP2964957B2 (ja) * | 1996-08-15 | 1999-10-18 | 日本電気株式会社 | 高速ルーティング制御方式 |
US7389312B2 (en) * | 1997-04-28 | 2008-06-17 | Emc Corporation | Mirroring network data to establish virtual storage area network |
US6067545A (en) * | 1997-08-01 | 2000-05-23 | Hewlett-Packard Company | Resource rebalancing in networked computer systems |
US6101508A (en) * | 1997-08-01 | 2000-08-08 | Hewlett-Packard Company | Clustered file management for network resources |
US6023733A (en) * | 1997-10-30 | 2000-02-08 | Cisco Technology, Inc. | Efficient path determination in a routed network |
US6057863A (en) * | 1997-10-31 | 2000-05-02 | Compaq Computer Corporation | Dual purpose apparatus, method and system for accelerated graphics port and fibre channel arbitrated loop interfaces |
JP3665460B2 (ja) * | 1997-12-05 | 2005-06-29 | 富士通株式会社 | 分散自律協調型の応答時間チューニングによる経路選択システム、方法、及び記録媒体 |
US6266335B1 (en) * | 1997-12-19 | 2001-07-24 | Cyberiq Systems | Cross-platform server clustering using a network flow switch |
US6363077B1 (en) * | 1998-02-13 | 2002-03-26 | Broadcom Corporation | Load balancing in link aggregation and trunking |
US6272534B1 (en) * | 1998-03-04 | 2001-08-07 | Storage Technology Corporation | Method and system for efficiently storing web pages for quick downloading at a remote device |
US6199146B1 (en) * | 1998-03-12 | 2001-03-06 | International Business Machines Corporation | Storage management system and method for increasing capacity utilization of nonvolatile storage devices using partially filled substitute storage devices for continuing write operations |
US6209023B1 (en) * | 1998-04-24 | 2001-03-27 | Compaq Computer Corporation | Supporting a SCSI device on a non-SCSI transport medium of a network |
US6580715B1 (en) * | 1998-05-04 | 2003-06-17 | Hewlett-Packard Development Company, L.P. | Load balancing switch protocols |
US6115752A (en) * | 1998-05-21 | 2000-09-05 | Sun Microsystems, Inc. | System and method for server selection for mirrored sites |
US6295575B1 (en) * | 1998-06-29 | 2001-09-25 | Emc Corporation | Configuring vectors of logical storage units for data storage partitioning and sharing |
US6260120B1 (en) * | 1998-06-29 | 2001-07-10 | Emc Corporation | Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement |
US7165152B2 (en) * | 1998-06-30 | 2007-01-16 | Emc Corporation | Method and apparatus for managing access to storage devices in a storage system with access control |
US6665702B1 (en) * | 1998-07-15 | 2003-12-16 | Radware Ltd. | Load balancing |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US6199112B1 (en) * | 1998-09-23 | 2001-03-06 | Crossroads Systems, Inc. | System and method for resolving fibre channel device addresses on a network using the device's fully qualified domain name |
US6148414A (en) * | 1998-09-24 | 2000-11-14 | Seek Systems, Inc. | Methods and systems for implementing shared disk array management functions |
US6212606B1 (en) * | 1998-10-13 | 2001-04-03 | Compaq Computer Corporation | Computer system and method for establishing a standardized shared level for each storage unit |
US6424993B1 (en) * | 1999-05-26 | 2002-07-23 | Respondtv, Inc. | Method, apparatus, and computer program product for server bandwidth utilization management |
US6247099B1 (en) * | 1999-06-03 | 2001-06-12 | International Business Machines Corporation | System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers |
FI107421B (fi) * | 1999-06-28 | 2001-07-31 | Stonesoft Oy | Yhteyksien valintamenetelmä |
US6728770B1 (en) * | 1999-12-03 | 2004-04-27 | Storage Technology Corporation | Method and apparatus for workload balancing along multiple communication paths to a plurality of devices |
US6542972B2 (en) * | 2000-01-31 | 2003-04-01 | Commvault Systems, Inc. | Logical view and access to physical storage in modular data and storage management system |
US6721316B1 (en) * | 2000-02-14 | 2004-04-13 | Cisco Technology, Inc. | Flexible engine and data structure for packet header processing |
US20030237016A1 (en) * | 2000-03-03 | 2003-12-25 | Johnson Scott C. | System and apparatus for accelerating content delivery throughout networks |
US6799214B1 (en) * | 2000-03-03 | 2004-09-28 | Nec Corporation | System and method for efficient content delivery using redirection pages received from the content provider original site and the mirror sites |
TW477133B (en) * | 2000-04-01 | 2002-02-21 | Via Tech Inc | Method for solving network congestion and Ethernet switch controller using the same |
US6643702B1 (en) * | 2000-04-07 | 2003-11-04 | Omneon Video Networks | Traffic scheduler for a first tier switch of a two tier switch |
US7177923B2 (en) * | 2001-03-13 | 2007-02-13 | Agere Systems Inc. | Methods and devices for selecting internet servers |
US20020167902A1 (en) * | 2001-04-27 | 2002-11-14 | Foster Michael S. | Method and system for performing security via virtual addressing in a communications network |
US7243160B2 (en) * | 2001-05-10 | 2007-07-10 | Intel Corporation | Method for determining multiple paths between ports in a switched fabric |
US7006438B2 (en) * | 2001-05-31 | 2006-02-28 | Turin Networks | Distributed control of data flow in a network switch |
US7343410B2 (en) * | 2001-06-28 | 2008-03-11 | Finisar Corporation | Automated creation of application data paths in storage area networks |
-
2002
- 2002-01-18 US US10/051,053 patent/US20030079018A1/en not_active Abandoned
- 2002-09-27 WO PCT/US2002/030913 patent/WO2003027885A1/en not_active Application Discontinuation
- 2002-09-27 JP JP2003531352A patent/JP2005505814A/ja active Pending
- 2002-09-27 EP EP02766399A patent/EP1438675A1/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009529190A (ja) * | 2006-03-08 | 2009-08-13 | オムニオン ビデオ ネットワークス | 冗長データファブリックの動的分割のための方法 |
JP2009529193A (ja) * | 2006-03-08 | 2009-08-13 | オムニオン ビデオ ネットワークス | データ記憶システム |
JP5445138B2 (ja) * | 2007-12-28 | 2014-03-19 | 日本電気株式会社 | データ分散格納方法およびデータ分散格納システム |
JP2010049716A (ja) * | 2009-12-01 | 2010-03-04 | Fujitsu Ltd | データストレージシステム |
JP2012073983A (ja) * | 2010-09-30 | 2012-04-12 | Internatl Business Mach Corp <Ibm> | マルチパスを使用するシステム及び方法 |
US10938741B2 (en) | 2015-12-04 | 2021-03-02 | International Business Machines Corporation | Resource allocation for a storage area network |
Also Published As
Publication number | Publication date |
---|---|
WO2003027885A1 (en) | 2003-04-03 |
EP1438675A1 (en) | 2004-07-21 |
US20030079018A1 (en) | 2003-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4264001B2 (ja) | 記憶ネットワーク中のサービスの品質の実行 | |
US7539824B2 (en) | Pooling and provisioning storage resources in a storage network | |
JP2005505814A (ja) | 記憶ネットワーク中の負荷平衡 | |
US7773521B2 (en) | Storage switch traffic bandwidth control | |
US7529781B2 (en) | Online initial mirror synchronization and mirror synchronization verification in storage area networks | |
US7617365B2 (en) | Systems and methods to avoid deadlock and guarantee mirror consistency during online mirror synchronization and verification | |
US7185062B2 (en) | Switch-based storage services | |
US7558264B1 (en) | Packet classification in a storage system | |
US7484058B2 (en) | Reactive deadlock management in storage area networks | |
US20030093541A1 (en) | Protocol translation in a storage system | |
US7373472B2 (en) | Storage switch asynchronous replication | |
WO2006026708A2 (en) | Multi-chassis, multi-path storage solutions in storage area networks | |
US7792917B2 (en) | Multiple network shared disk servers | |
US20050262309A1 (en) | Proactive transfer ready resource management in storage area networks | |
WO2006026577A2 (en) | Systems and methods for assigning tasks to derived timers of various resolutions in real-time systems to maximize timer usage | |
WO2005104727A2 (en) | Proactive transfer ready resource management in storage area networks |