JP2009015843A - ロング・サイド入出力コマンド処理 - Google Patents
ロング・サイド入出力コマンド処理 Download PDFInfo
- Publication number
- JP2009015843A JP2009015843A JP2008169043A JP2008169043A JP2009015843A JP 2009015843 A JP2009015843 A JP 2009015843A JP 2008169043 A JP2008169043 A JP 2008169043A JP 2008169043 A JP2008169043 A JP 2008169043A JP 2009015843 A JP2009015843 A JP 2009015843A
- Authority
- JP
- Japan
- Prior art keywords
- policy processor
- isp
- command
- data
- transaction
- 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.)
- Withdrawn
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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/062—Securing storage systems
-
- 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/0637—Permissions
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】記憶アレイ内のライト・サイドおよびロング・サイドI/Oコマンドを処理する。
【解決手段】第1の複数の専用目的FCを有する第1のISPと組んだ第1のポリシー・プロセッサ、第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサ、ISPを相互接続する通信バス、およびメモリ内に格納されアレイコントローラにより実行されて第1のISPが論理ユニット・マスタである記憶論理ユニット番号(LUN)へ向けられるネットワーク入出力(I/O)コマンドに関連付けられる第1の複数のFCおよび第2の複数のFCの両方からのトランザクション要求のトップレベル制御を第1のポリシー・プロセッサが維持するようにするプログラミング命令を有するデュアルポート・アクティブ−アクティブ・アレイコントローラ装置が提供される。
【選択図】図1
【解決手段】第1の複数の専用目的FCを有する第1のISPと組んだ第1のポリシー・プロセッサ、第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサ、ISPを相互接続する通信バス、およびメモリ内に格納されアレイコントローラにより実行されて第1のISPが論理ユニット・マスタである記憶論理ユニット番号(LUN)へ向けられるネットワーク入出力(I/O)コマンドに関連付けられる第1の複数のFCおよび第2の複数のFCの両方からのトランザクション要求のトップレベル制御を第1のポリシー・プロセッサが維持するようにするプログラミング命令を有するデュアルポート・アクティブ−アクティブ・アレイコントローラ装置が提供される。
【選択図】図1
Description
本発明の実施例は一般的にデータ記憶システムに関し、限定はしないが、特に分散アレイ記憶システムにおいてネットワークI/Oコマンドに応答するデータ・トランザクションの処理に関する。
コンピュータ・ネットワーキングは産業標準アーキテクチュアの転送レートがインテル社製80386プロセッサのデータ・アクセスレートと歩調を保てなくなった時に蔓延し始めた。ローカルエリア・ネットワーク(LAN)はネットワーク内のデータ記憶容量を統合整理することにより記憶エリア網(SAN)へと発展した。ユーザは装置およびSAN内の装置により処理される関連データの統合整理により、直接取り付けられた記憶装置により可能なものよりも一桁多い記憶装置を処理する能力、および対処可能なコストでそうするという重大な利益を実現している。
より最近になって、動きはデータ記憶サブシステムを制御するネットワーク−セントリック・アプローチへ向けられている。すなわち、記憶装置が統合整理されるのと同様に、サーバからネットワーク自体内にオフロードされる記憶装置の機能性を制御するシステムが統合整理される。たとえば、ホストベース・ソフトウェアは保守および管理タスクをインテリジェント・スイッチや特殊化されたネットワーク記憶装置サービス・プラットホームへ委任することができる。応用ベース・ソリューションはホスト内で実行するソフトウェアの必要性をなくし、エンタープライズ内にノードとして配置されたコンピュータ内で作動する。いずれにせよ、インテリジェント・ネットワーク・ソリューションは記憶装置割当ルーチン、バックアップ・ルーチン、フォールト・トレランス・スキーム等をホストとは無関係に集中化することができる。
インテリジェンスをホストからネットワークへ移せばこれらの問題のいくつかは解決されるが、ホストへの仮想記憶装置のプレゼンテーションを変える際の柔軟性の一般的欠落に伴う固有の困難は解決されない。たとえば、データ格納方法は異常なホスト・ロード・アクティビティのバーストを調整するように適応させる必要がある。各データ記憶容量を自己決定的に割当て、管理し、保護してその容量を仮想記憶スペースとしてネットワークへ提示してグローバル記憶要求条件を調整するインテリジェント・データ記憶サブシステムが必要とされている。この仮想記憶スペースは多数の記憶ボリュームの中に準備することができる。本発明の実施例はこのソリューションへ向けられる。
本発明の実施例は一般的に記憶アレイ内のデータ・トランザクションに向けられる。
ある実施例では、第1の複数の専用目的FCを有する第1のISPと組んだ第1のポリシー・プロセッサ、第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサ、ISPを相互接続する通信バス、およびメモリ内に格納されアレイコントローラにより実行されて第1のISPが論理ユニット・マスタであるLUN(logical unit numbe)へ向けられるネットワーク入出力(I/O)コマンドに関連付けられる第1の複数のFCおよび第2の複数のFCの両方からのトランザクション要求のトップレベル制御を第1のポリシー・プロセッサが維持するようにするプログラミング命令を有するデュアルポート・アクティブ−アクティブ・アレイコントローラ装置が提供される。
ある実施例では、第1の複数の専用目的FCを有する第1のISPと組んだ第1のポリシー・プロセッサ、および第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサを有するデュアル・アクティブ−アクティブ・コントローラを利用し、コントローラの非ユニット・マスタ側のLUNへ向けられる1つのFCによりI/Oコマンドを受信し、FCからのトランザクション要求コマンドをコントローラのユニット・マスタ側のポリシー・プロセッサへポストするステップを含む方法が提供される。
ある実施例では、ポリシー・プロセッサが接続される周辺装置バスと通信するリスト・マネージャを介してポリシー・プロセッサに選択的に接続される複数の専用目的機能コントローラを各側に有するデュアル・アクティブ−アクティブ・コントローラ、およびライト・サイド(right side)およびロング・サイド(wrong side)I/Oコマンドをコントローラのユニット・マスタ側で一緒にリアルタイムで同期化させる手段を有する記憶システムが提供される。
特許請求される本発明を特徴づけるこれらおよび他のさまざまな特徴および利点は添付図を検討しながら下記の詳細な説明を読めば明らかとなる。
図1は本発明の実施例が有用であるコンピュータ・システム100を例示している。1つ以上のホスト102がローカル・エリア・ネットワーク(LAN)および/またはワイド・エリア・ネットワーク(WAN)106を介して1つ以上のネットワーク取付けサーバ104にネットワーキングされている。好ましくは、LAN/WAN106はWorld Wide Webを介して通信するためのインターネット・プロトコル(IP)ネットワーキング・インフラストラクチュアを使用する。ホスト102はいくつかのインテリジェント記憶素子(ISE)108の1つ以上に格納されたデータを日常的に必要とするサーバ104内に常駐するアプリケーションにアクセスする。したがって、SAN110は格納されたデータへアクセスするためにサーバ104をISE108に接続する。ISE108はエンタープライズまたはデスクトップ・クラス記録媒体を内蔵するシリアルATAおよびファイバ−チャネル等のさまざまな選出された通信プロトコルを介してデータを格納するためのデータ記憶容量109を提供する。
図2は図1のコンピュータ・システム100の一部の単純化された線図である。3つのホストバス・アダプタ(HBA)103がネットワークまたはファブリック110を介して一対のISE108(それぞれ、AおよびBで示す)とインタラクトするように示されている。各ISE108は、好ましくは、redundant array of independent drives(RAID)として特徴づけられる一組のデータ記憶装置としてのデータ記憶容量109に作用するデュアル冗長コントローラ112(A1,A2およびB1,B2で示す)を含んでいる。すなわち、好ましくは、コントローラ112およびデータ記憶容量109はさまざまなコントローラ112が並列、冗長リンクを利用し、システム100により格納されたユーザ・データの少なくともいくらかは少なくとも一組のデータ記憶容量109内に冗長フォーマットで格納されるようにフォールトトレラント構成を利用する。
図3は本発明の実施例に従って構成されたISE108を例示している。シェル114はミッドプレーン116と電気的に接続するコントローラ112と受入れ係合する空洞を画定する。次に、シェル114はキャビネット(図示せず)内に支持される。一対のマルチドライブ・アセンブリ(MDA)118がミッドプレーン116と同じ側でシェル114内に受入れ係合することができる。ミッドプレーン116の反対側には非常電源を提供するデュアル・バッテリ122、デュアル・交流電源124、およびデュアル・インターフェイス・モジュール126が接続されている。好ましくは、デュアル・コンポーネントはいずれかのMDA118または両方を同時に作動させるように構成され、コンポーネント故障時のバックアップ保護を提供する。
図4は各々が5つのデータ記憶装置128を支持するアッパ・パーティション130およびロアー・パーティション132を有するMDA118の拡大分解等角図である。パーティション130,132はミッドプレーン116(図3)と操作可能に係合するコネクタ136を有する共通回路板134と接続するようにデータ記憶装置128を揃える。ラッパ138が電磁干渉シールディングを提供する。MDA118のこの実施例は本発明の譲受人が譲り受け、本開示の一部としてここに組み入れられている米国特許第7,133,291号Carrier Device and Method for a Multiple Disc Arrayの主題である。MDA118のもう1つの実施例はやはり本発明の譲受人が譲り受け、本開示の一部としてここに組み入れられている同じタイトルの米国特許第7,177,145号の主題である。代替同等実施例では、MDA118を封止エンクロージャ内に設けることができる。
図5は本発明の実施例を使用するのに適した回転媒体ディスク装置の形のデータ記憶装置128の等角図である。以下の検討の目的で動体データ記録媒体を有する回転スピンドルが使用されるが、代替同等実施例では固体メモリデバイス等の非回転媒体装置が使用される。図5に示す実施例では、データ記憶ディスク138がモータ140により回転されてディスク138のデータ記憶場所をリード/ライトヘッド(「ヘッド」)142へ与える。ヘッド142はディスク138の内側および外側トラック間で半径方向にヘッド142が移動する時にボイスコイルモータ(VCM)146に応答するロータリ・アクチュエータ144の先端に支持される。ヘッド142はフレックス回路150により回路板148に電気的に接続される。回路板148はデータ記憶装置128の機能を制御する制御信号を送受信するようにされている。コネクタ152が回路板148に電気的に接続され、データ記憶装置128をMDA118の回路板134(図4)に接続するようにされている。
図6は中間バス160(“ebus”と呼ばれる)により接続された2つのインテリジェント記憶プロセッサ(ISP)156,158を有するコントローラ112(図2)アーキテクチュアを示す。好ましくは、ISP156,158の各々が共通コントローラ・ボード上の個別の特定用途向け集積回路(ASIC)パッケージ内に配置される。好ましくは、ISP156,158は、それぞれ、ファイバ・チャネル・サーバリンク162,164を介して上りアプリケーション・サーバと通信し、かつファイバ・チャネル記憶リンク166,168を介して記憶容量109を構成する記憶装置と通信する。
ポリシー・プロセッサ170,172はコントローラ112に対するリアルタイム・オペレーティングシステムを実行し、かつPCIバス174,176を介して各ISP156,158と通信する。ポリシー・プロセッサ170,172は、さらに、カスタマイズド・ロジックを実行して定められた記憶アプリケーションに対するISP156,158と共に複雑な処理タスクを実施する。ISP156,158およびポリシー・プロセッサ170,172は動作中に必要に応じてメモリモジュール178,180をアクセスする。
図7Aおよび7Bは本発明の実施例に従ったISP156,158の詳細を示す。各ISP156,158ユニットはデータ記憶装置128の予め定められたプールを支配する、言い換えれば制御の部位を提供する。したがって、各ISP156,158の同じコンポーネントは同じ番号で示されるがISP158上のプライム記号により区別される。
各ISP156,158は交換/PCIメモリモジュール182,182′バッファ・メモリモジュール184,184′、およびSRAMモジュール186,186′に接続される。各ポリシー・プロセッサ170,172はPCIバス174,176を介してメモリモジュール182−186,182′−186′内に格納されたデータだけでなく各ISP156,158の機能にアクセスする。
図7Aおよび7Bの実施例では、各ISP156,158は7つの専用目的機能コントローラ(FC)190−196,190′−196′を有する。ホスト交換コントローラ(HEC)190はフロントエンド・ファイバチャネル・サーバリンク162(図6)と通信し、HEC190′はフロントエンド・ファイバチャネル・サーバリンク164(図6)と通信する。2つのディスク交換コントローラ(DEC0,DEC1)195,196はバックエンド・ファイバチャネル記憶リンク166(図6)と通信し、DEC0,DEC1 195′,196′はバックエンド・ファイバチャネル記憶リンク168(図6)と通信する。他の専用目的FCはDMA/XORコントローラ(DXC)191,191′、コマンド・ルーティング・コントローラ(CORE)192,192′、メタデータ・コントローラ(MAP)193,193′、および種種雑多の機能コントローラ(MISC)194,194′である。
FC190−196,190′−196′はクロスポイント・スイッチ(CPS)198,198′および対応するリストマネージャ(LM)200−204,200′−204′等のインターコネクトを介してメモリ182−186,182′−186′とアクセスすることができる。FCと同様に、LMはハードウェア集約的専用目的処理要素である。各LMは指定されたデータ構造操作で使用するために最適化され、各LMはそのデータ構造責任リストを維持する。すなわち、システム内の各データ構造は1つだけのLMにより一意的に所有される。
以下の説明において、ISP156に支配されたプール内に含まれるLUN1へ向けられたHEC190により受信されるI/Oコマンドはポリシー・プロセッサ170に対するローカル・データ・トランザクショントと呼ばれる。しかしながら、LUN1へ向けられたHEC190′により受信されるI/Oコマンドはポリシー・プロセッサ170に対する遠隔データ・トランザクショントと呼ばれる。同様に、ISP158に支配されたプール内に含まれるLUN2へ向けられたHEC190′により受信されるI/Oコマンドはポリシー・プロセッサ172に対するローカル・データ・トランザクショントと呼ばれる。しかしながら、LUN2へ向けられたHEC190により受信されるI/Oコマンドはポリシー・プロセッサ172に対する遠隔データ・トランザクショントと呼ばれる。
イベント・リング・バッファ(ERB)179,179′は各ポリシー・プロセッサ170、172へ向けられた複数の各FC190−196、190′−196′からリアルタイムで集合的にポストされる。一般的に、ERB179、179′は定められたポリシー・プロセッサ170、172へ向けられる両方のISP156、158に対する全トランザクションを同期化させる巡回バッファ等のFIFPバッファである。前記したように、ERB179、179′へポストされたこれらのトランザクションは各ポリシー・プロセッサ170、172へ向けられる各FC190−196、190′−196′からの、ローカルおよび遠隔の、全トランザクション要求を含んでいる。ERB179、179′へポストされたこれらのトランザクションは各ポリシー・プロセッサ170、172へ向けられる各LM200−204、200′−204′からの、ローカルおよび遠隔の、トランザクション応答も含んでいる。ERB179、179′へポストされたこれらのトランザクションは一方のポリシー・プロセッサ170、172から他方のポリシー・プロセッサ170、172へのトランザクションも含んでいる。
ERB179、179′はリアルタイム・システム内で実施された全ワークのバルクを構成する多数のリアルタイム・トランザクションを効率的かつ確実に処理する。ERB179、179′はトランザクションの全ソースを単一同期化リングへポストさせて、任意の一つのソースからのトランザクションのシーケンスは発生時間により順次付けられるようにする。さらに、第1のソースからのトランザクションおよび第2のソースからの二次的なトランザクションに関して、所望により、もう1つのソースからのアクティビティの結果一つのソースから発生されるトランザクションは逐次とすることができる。独立した異なるソースからのトランザクションは任意の順序でポストすることができるが、“close in time”であれば“close on the ring”となる。
前記したように、デュアル・アクティブ−アクティブ・コントローラ・モードにおいて一方のポリシー・プロセッサ170、172は他方のポリシー・プロセッサのERB179、179′へトランザクションをポストすることができる。この「ワン・リング」機構はポリシー・プロセッサ170、172により行われる全処理が極端に低いオーバヘッドで管理されるようにすることができる。全トランザクションが到着順に処理されるという事実により、リアルタイム・システムの管理に付随する複雑さの大部分が解消される。“one ring to rule them all”内の複数の処理要素からの各トランザクションを記述するデータ構造を使用して、コード複雑さを比較的低減しながら、トランザクションおよびそれらの相対的順序の誤解釈を防止する。
各ポリシー・プロセッサ170、172に個別ERB179、179′を管理させる能力と組み合わせた信用に基づいたSloppy Quota Accounting Method(SQAM)はERB179、179′をオーバフローすることを防止できる。PowerPC 440GX ASICにより提供されるような非常に効率的なハードウェア・アーキテクチュアはトランザクションのポスティングにおける極端に低いオーバヘッドを許す。クリティカルパスを読み込むデバイスが実際上ゼロである環境をこれらの効率的なハードウェアの支援によりERB179、179′上に構成することができる。事実、割込みがERB179、179′上のまれな非ルーチン・トランザクションに対してしか生じない単純なポーリングRTOSを構成することができる。トランザクションをスレッド・レベルへ待ち行列させる割込処理およびデータの付随運動は典型的にトランザクションに対する実際の処理オーバヘッドの何倍にもなることがあるため、ERB179、179′に基づくポーリングRTOSは割込みに基づくものよりも何倍も効率的となる。効率利得はCPUのディメンジョン内だけでなく必要なメモリ・リソースのディメンジョン内でも実現される。
ERB179、179′のオーバフローを防止するために、各トランザクション・データ・エントリのサイズを固定することも好ましい。特定のトランザクションに関連する付属データはトランザクションのソースにより独立して管理されるデータ・リング・バッファ(DRB)内に格納することができる。たとえば、図7は、それぞれ、ERB179、179′上のポストされたトランザクションに関連する付属データを含む2つのDRB201、203を管理するHEC190を示す。同様に、HEC190′はそれぞれ、ERB179、179′上のポストされたトランザクションに関連する付属データを含むDRB205、207を管理する。DEC0 195およびDEC1 196はERB179に付属するDRB209、211を管理し、同様に、DEC0 195′およびDEC1 196′はERB179′に付属するDRB213、215を管理する。
各ERBおよびDRBは全未決トランザクションに対して発生されたデータプラス求められていないファイバ・チャネル・データに関連するデータおよびトランザクションの割当てを収容するのに十分大きい。各各FC190−196、190′−196′はアンソリシティド・ファイバ・チャネル・データ(unsolicitd fiber channel data)およびトランザクションの下記の4つの特定ケースに対して別々の割当てを有することができる。
FCP_CMD (新しい目標SCSIコマンド)
ELS Packet (拡張リンク・サービス・コマンド)
BLS Packet (ベーシック・リンク・サービス・コマンド)
FCP_DATA/Other (予期せぬデータ・フレーム−32バイト・データ保持
)
(フレーム・ヘッダー・プラス32バイト−他は廃棄)
FCP_CMD (新しい目標SCSIコマンド)
ELS Packet (拡張リンク・サービス・コマンド)
BLS Packet (ベーシック・リンク・サービス・コマンド)
FCP_DATA/Other (予期せぬデータ・フレーム−32バイト・データ保持
)
(フレーム・ヘッダー・プラス32バイト−他は廃棄)
前記4つのクラスに対するフレーム内のデータ量は変動することがある。SQAMを使用してERBまたは特定のDRBのオーバフローを回避することができる。“FCP_DATA/Other”クラスに対して、ヘッダーを超えるデータの32バイトは全て伝えられなければならない。FCP_CMDフレームに対して、ヘッダーを超えるデータの最大64バイトはDRBを介して伝えることができる。トランザクション・プラス最初の2つのDRBエントリは単一の組合せ「カウント」を消費する。追加64バイトまたは最終部に対する部分はもう1つの「カウント」を消費しなければならない。このルールは“ELS Packet”クラス内のフレームにも適用される。“BLS Packet”はヘッダーを超える追加32バイトよりも多くを持たなければならず、そのためこのクラスは格別な処理を必要としない。
ポリシー・プロセッサ170、172はSQAMを介してトランザクションまたは関連するデータを格納する余地が不十分である要求をしないように管理する。アンソリシティド・トランザクションおよび関連するデータが消費されると、ポリシー・プロセッサ170、172は“再生(renew)”カウントを含むその割当てカウントを調節する。カウントが指定された閾値よりも低下すると、ポリシー・プロセッサ170、172は全割当てを再生する要求を発生する。ファイバ・チャネル・アンソリシティド・データが受信され割当てが不十分であれば、FCはクラスに基づいてカウントをぶっつけてデータを廃棄する。更新割当て要求が処理される時にこれらのカウントは報告されゼロとされる。FC初期化において、全割当てがゼロにデフォルトされる。ポリシー・プロセッサ170、172は更新割当て要求を発行し、FCが実行開始した直後に初期割当てを設定する。
ERB内の各トランザクション・エントリはプレー内のトランザクションのタイプを識別するイベント・コードを含んでいる。イベント・コードは処理を単純化するために論理的に分類され、イベントのタイプはデータの残りがどのように解釈されるかを指示する。トランザクション・エントリは、DRB内の任意の付属データをどこで見つけるかを制御するために、トランザクションがローカル発生されたのか遠隔発生されたのかを示すデータも含んでいる。実例となるERBは下記のフォーマットを含むことができる。
“DRB ID”フィールドは、追加データを見つけるのにどのDRBを調べるべきかをポリシー・プロセッサ170、172が知るように、どのISP156、158からERBトランザクションが送られたかを示すのに使用される。あるBLSフレームに対して追加データは無いことがある。前記フォーマットからDRBデータ1を記述するフィールドを差し引いたものがソリシティドELSおよびBLS応答フレームのために使用される。これらのフレームは“ELS Response Table”(ERT)内に格納される。“DRB ID”フィールドは下記のように復号される。
0 HEC
1 HEC′
2 DEC0
3 DEC1
4 使用されない
0 HEC
1 HEC′
2 DEC0
3 DEC1
4 使用されない
完全にISP156FCおよびLMのフレームワーク内のネットワークI/Oコマンドに関連する記憶トランザクションを実施することができるが、このようなトランザクションのクリティカルパスは迅速にFCおよびLM間の長くて比較的非効率的なサブトランザクションのシリーズとなる。たとえば、図8はHEC206の専用タスクを実施するようにプログラムされたFCと、コマンド復号機能(CDC)208と、キャッシュ論理コントローラ(UCC)210を有する関連技術ソリューションに従って構成されたISPを示す。下記のステップはこのコントローラ・アーキテクチュアで読まれたキャッシュを実施するクリティカルパスを記述する。
ステップ1において、HEC206はサーバ・ファイバ・チャネルリンクを介してリクエスタからリード・キャッシュ・コマンドを受信する。
ステップ2において、HEC206はトランザクション要求を変換してデータ・トランザクションのための対応する要求パケットをCPS198を介してLM0 200へ送る。
ステップ3において、LM0 200はデータ・トランザクションをCDC208の入力待ち行列の尾部にリンクする。
ステップ4において、CDC208はその入力待ち行列からトランザクションをフェッチしてデータ・トランザクションをその各コンピュートおよびデータ構造操作へ復号する。
ステップ5において、CDC208はLM1への要求パケットを発生してデータ・トランザクションをUCC210へ移動させる。
ステップ6において、LM1はデータ・トランザクションをUCC210の入力待ち行列の尾部にリンクする。
ステップ7において、UCC210はキャッシュ・データ構造操作に対する1つ以上の要求パケットをLM3へ発生する。
ステップ8において、LM3は要求されたデータ構造を検索する。
ステップ9において、LM3は要求されたデータは転送準備完了であるという応答パケットを発生する。
対照的に、本発明の実施例はキャッシュ・ノード・ルックアップ等のメモリ集約的およびコンピュータ集約的機能をポリシー・プロセッサ170へオフロードする。すなわち、特許請求される実施例の記憶システムはネットワークI/Oコマンドに関連する格納トランザクションを実施し、ISP156インターコネクト198はポリシー・プロセッサ170が接続される周辺装置バス188上で通信するLM0 200を介して複数のFC190−196を選択的にポリシー・プロセッサ170に接続する。このアーキテクチュアによりLMはポリシー・プロセッサ170に周辺装置バス188を経た交換/PCIメモリ182内に格納されたデータ構造へのアクセスも提供する。後述するように、データ構造はデータ構造容量の仮想ストライプ境界に揃えられ、キャッシュメモリ内の対応するデータ・バッファを記述する。
この“policy processor partnering”アーキテクチュアは関与するサブトランザクション数を減じることによりコントローラ112の処理力を高める。たとえば、読まれたキャッシュに対するクリティカルパスは、前記した図8のコントローラに較べて、図7のコントローラ112および本発明の実施例に対するものは著しく短い。
ステップ1は同じであり、HEC190はサーバ・ファイバ・チャネルリンクを介してリクエスタからリード・キャッシュ・コマンドを受信する。
ステップ2も同じであり、HEC190はトランザクション要求を変換してデータ・トランザクションに対する対応する要求パケットをCPS198を介してLM0 200へ送る。
しかしながら、ステップ3においてLM0 200はデータ・トランザクションを直接ポリシー・プロセッサ170にリンクし、それはデータ・トランザクションを復号し、キャッシュ内のデータを検証し、キャッシュ・ルックアップを実施する。
図9はポリシー・プロセッサ170がストライプされた記憶ディスク214を管理するのに使用する典型的なメタデータ構造212を例示している。ストライプ・バッファ・リスト(SBL)テーブル216は記録媒体上の仮想ストライプに揃えられる複数のSBLを含み、かつキャッシュメモリ内の対応するデータ・バッファ・アドレスを参照する1つ以上のバッファ・インデクスを含んでいる。ポリシー・プロセッサ170はメモリ内に格納されたプログラミング命令を実行し、VBAおよび記憶トランザクションに関連するプールに従ってSBLテーブルをインデクスして記憶トランザクションを記憶容量内のストライプと関連付ける。
ポリシー・プロセッサ170は対応するテーブル218内のストライプ・バッファ・リスト・ディスクリプタ(SBLD)を使用してノードベースでキャッシュを管理する。各SBLDはそれが関連するデータへの最近および現在のアクセスに関するデータを保持する。好ましくは、各SBLDは対応するRAIDストリップに揃えられ(すなわち、選出された記憶装置上の全データが複数のパリティセットと関連付けられる)、特定のストライプ・バッファ・リスト(SBL)に合致する。
ポリシー・プロセッサ170により管理される各キャッシュ・ノードは、好ましくは、フォワードおよびバックワード・リンクト・リストを使用して仮想ブロック・アドレス(VBA)を介して昇ベキの順でリンクされる論理ディスクの定められたセットに対するアクティブSBLD構造を有する、ある特定のSBLDを参照する。好ましくは、VBA値はしばしばRAID Allocation Grid System(RAGS)と呼ばれるグリッド・システムを使用してRAIDデータ編成と揃えられる。一般的に、あるRAIDストライプに属するブロックの任意特定の集合(たとえば、特定のパリティセットに寄与する全データ)は特定シート上の特定の信頼できる記憶装置(RSU)に割当てられる。ブックはいくつかのシートからなり異なる記憶装置からのブロックの多数の隣接セットから構成される。実際のシートおよびVBAに基づいて、ブックはさらにゾーンへ再分割することができ、特定のデバイスまたはデバイスセット(冗長性が利用される場合)を示す。好ましくは、各SBLDはアクセス・ヒストリ、ロック状態、最終オフセット、最終ブロック、タイムスタンプデータ(一日の時間TOD)、どのゾーン(ブック)にデータが属するかの識別子、および利用したRAIDレベルを含むデータのさまざまな状態を示すへ変数を含んでいる。
ストライプ・バッファ・リスト・プレゼントビット(SPB)テーブル220およびストライプ・バッファ・リスト・ダーティビット(SDB)テーブル222によりポリシー・プロセッサ170はキャッシュメモリ内のデータ・バッファを管理することができる。SPBテーブル220は定められたセクターに対するキャッシュされたデータは有効であるまたは有効にしようとしている(すなわち、対応するセクターに対する現在データを有する)かどうかを示す各SBLの各セクターに対するビットを含む。それはバッファ・インデクスが有効であることも示す。あるセクターに対するリード操作を要求する後続交換において、データは有効であることをSPBテーブル220が示せば、要求は記録媒体へのラウンドトリップを要求するのではなくバッファメモリからサービスすることができる。SDBテーブル222は定められたセレクターに対するキャッシュされたデータが“dirty”である(すなわち、データバッファから書き込む必要がある)かどうかを示すビットをSBLの各セクターに対して含んでいる。たとえば、記憶コントローラが交換の途中でパワーを失うと、SDBテーブル222を使用してキャッシュ内のデータを適切なターゲットへフラッシュさせる必要があることを示すことができる。したがって、記憶コントローラがリブートすると、破滅的なイベントがある所でデータ完全性が維持される。
キャッシュ・ルックアップが完了した後で、ポリシー・プロセッサ170はメモリを割当てデータ・トランザクションを実施するためのアクティブ・コンテキストエントリ(ACE)を分布する。キャッシュ・ヒットの場合のように、データ・トランザクションがホスト交換範囲内のHEC190に向けられる場合、コンテキストはフロント・アクティブ・コンテキストエントリ(FACE)の形をとる。SCSIターゲットI/Oアシストに対するFACEの典型的なフォーマットは下記のようになる。
“Non−Sector Data”フラグはSCSI非セクタコマンドが処理されることを信号で伝える。データを得るまたは置く場所が“Buffer Index”フィールドにより定義される。転送するデータの量は“Byte Count”フィールド内で見つけられる。“Aborted”フラグは要求が到着する前に中断されていることを示す。状態は適切に設定しなければならずFACEは“Stage”フィールドを増分した後でCORE192に戻っている。“Mirror Data”フラグはebus160両端間でデータはミラーリングされることも要求する。それは正規のセクター・データだけでなく非セクター・データにも適用することができる。“Burst Length”フィールドはファイバ・チャネル・フレームを満たすのに使用すべきセクター数を定義する。フレームサイズは“セクターサイズ”*(“Burst Length”+1)プラスヘッダーに対する32として計算される。たとえば、“セクターサイズ”が1(520)であり“Burst Length”が3であれば、フレームサイズは520*4+32=2112となる。
“Remote Data”フラグはアクセスされるバッファメモリは他方のISP158からebus160を横切ることを示す。“Remote”フラグも設定されると、HEC190は“Use Mirror”フラグの“sense”を反転してどのバッファおよびSBLプールをアクセスするか決定する。
FACEフォーマットに戻って、“Script”値は一連のステップのいくつかの予め定義されたスクリプトの1つを選出し、それは完了すると、対応する“ケース”となる。“Stage”値はどのステップが実行されるかを示す。定められた要求に対して、完了がポリシー・プロセッサ170へ応答される前に多数のステージをISP156により完了できる点において、このアーキテクチュアは処理性能を高める。
“Blocks”フィールドはセクター内の転送サイズを定義し、0は256を意味する。“Offset”フィールドは“disk stripe”内の開始オフセットを定義する。それはSBL内の開始セクターオフセットおよび開始LBAの低順位バイトである。転送サイズが0であれば、それは256の転送サイズを意味する。HECは“Destination ID”フィールドを使用してコンテキストに記入したりFCP_HDRデータを組立てる。ターゲット・ライトに対して、最大アトミック・ライトサイズ(128KB)が“disk stripe”(SBL)境界を横切る場合は、“Additional SBL Index”が第2のSBLを参照する。このケースは“Offset”プラス“Blocks”値が256よりも大きい事実により検出される。“Real SBL Index”および“Real Additional SBL Index”はセクターのいくつかまたは全てがキャッシュ内で既に“dirty”であるライトを含む“atomic write”の特殊ケースに対してのみ使用される。“Relative Offse”フィールドはSCSIターゲットアシストのこの部分に先行するセクター数を定義する。
対照的に、キャッシュ・ミスの場合のように、データ・トランザクションがプール交換範囲内のDEC0またはDEC1に向けられると、コンテキストはプール・アクティブ・コンテキスト・エントリ(PACE)の形をとる。SCSIリード、ベリファイ、ライト、またはライトベリファイ・コマンド内のPACEに対する典型的なフォーマットは次の通りである。
“Substitute Tag”フラグによりDIFデータの操作に関して特殊挙動が生じる。これはリードおよびライトの両操作に対して生じることがある。“Check Tag”フィールドが値0xFFFFまたは0xFFFEでなければ、“incoming”タグ(“META Tag”および“REFERENCE Tag”)は予期されたタグ(“Check Tag”および“VBA”)に対してチェックしなければならないが、“Substitute Tag”は置換しなければならない。ハードウェア要求条件のため、“VBA”も置換され、正しいCRCが現在のCRCを置換する。すなわち、まったく新しいDIFフィールドが発生され置換される。“Check Tag”フィールドが0xFFFFの値を有する場合、着信DIFデータがあり、CRCはもちろん正しいとされなければならない。しかしながら、“REFERENCE Tag”(VBA)および“META Tag”値は無視しなければならない。すなわち、“tag”エラーは生じてはならない。“Check Tag”フィールドが0xFFFFの値を有する場合、タグおよびCRCエラーは無視しなければならない。
“SCSI Good”以外の状態が受信されると、FCP_RSPフレームの第1の256バイト以下が“ELS Response Table”(ERT)内に格納される。“Response Byte Count”はFCP_RSPフレーム内の実際のバイト数を反映する。特殊フラグセットの無い“SCSI Good”以外の状態が受信されない限り、それは更新されない。
SCSI“Long Transfer”コマンド要求は“standard”SCSIコマンドを発行するのに使用され、転送は“RAID stripe”境界と交差し長さは256セクターを超える。この操作に対するPACEのフォーマットの下記の通りである。
フィールド定義は“standard”SCSIコマンドに対して前記したものと本質的に同じである。“Block”フィールドは常に“256”よりも大きい。コントローラ112は、語3の全コンテンツからとられる、所望する数の書込みブロックに基づいてSCSI CDBを通常通り形成する。これを除いて、このタイプの処理がタイプ0“normal”SCSIコマンドに対する処理と異なる点はデータ転送部の処理だけである。この論理はSBLの終りに遭遇する場合を検出しなければならない。次に、新しい“SBL Index”および新しい“VBA Low”値を転送が到達したオフセットに基づいてACE相関データ(ACD)からフェッチしなければならない。論理はSBLへの初期オフセットは“0”であると仮定する。初期および後続“VBA Low”値は“0”のローバイト値を有する。サポートされる最大転送は2MB(4096セクター)である。
データを持たないまたは非セクター・データを使用するいくつかのSCSIコマンドに対するサポートが必要である。たとえば、SCSI“Test Unit Ready”コマンドはデータを持たない。SCSI“Verify”コマンドはそのように指定されるとデータを持たない。SCSI“Mode Sense”はディスク装置上のセクターに関係しないデータを予期する。SCSI“Mode Select”コマンドはディスク装置上のセクターに関係しないデータを送る。非セクター・データを有するSCSIコマンドに対して、データの量は“Byte Count”フィールドにより定義される。“0”の“Byte Count”値は65536として解釈される。最大アウトバウンド転送は16384である。ISP156ERBに対する転送には“raw”DMAモードが必要である。
“Buffer Index”フィールドはBuffer Memory内のどのバッファを使用するかを定義する。それはCORE192により割り当てられる一時的バッファを参照する。“PCI Cache High”(11ビット)および“PCI Cache Line Low”フィールドはBM184内のバッファに対してデータを移動するためにDXC191により使用されるPCIアドレスを定義する。このアドレスは下記のように計算される。
データの無いSCSIコマンド・ケースはPACE内の“Byte Count”フィールドはゼロである事実により決定することができる。“Write”フラグは“Data Out”対“Data In”ケースを決定する。ポリシー・プロセッサ170は対応するACD内の全体Fiber Channel FCP_CMNDフレームを形成する。このフレームは68バイトであり、CRC−32データ“word”に対する場所だけでなくSOFixおよびEOF“word”を含んでいる。
“Data In”ケースに対して、ターゲットは要求されたものよりも少ないデータを正当に戻すことができる。この場合、“Byte Count”フィールドは受信される最大を決定する。少なく受信されたら、“Byte Count”フィールドは更新しなければならない。それは最後にポリシー・プロセッサへ戻される。また、FCP_RSPフレームをチェックして正常な量のデータが戻されたことを確認する必要がある。
IRCをどこにしまっておくかまたどのISP156コンテキスト・エリアを使用するかを決定するOXIDと同様にSPOTはやはりCORE Tagから引き出される。サポートされる必要があるファイバ・チャネル・サービスに対する他の主要なクラスは“Link Service”である。発信フレームに対して、このサービスは“Single Frame Sequence”(SFS)機構を呼び出す。SFS機構に対するPACEのフォーマットは次の通りである。
“Data CORE Tag”フィールドが非ゼロであれば、それはACDテーブル内のフレーム・データの第2のブロックを参照する雑多なアクティブ・コンテキスト・エントリ(MACE)インデクスを定義する。それはフレームが256バイトより大きいだけでよい。フレームの第1の256バイトはPACEに対応するACDエントリ内に格納される。フレームはSOFixおよびEOFx語だけでなくCRC−32データ語に対する場所を含んでいる。PACEは公称PACE範囲内にある必要はない。それは実際上MACEであってもよい。FCCは任意有用な情報を引き出すのにPACE自体のCORE Tagを利用しない。SFS機構は0−3の範囲内のISP156コンテキスト・エリアの1つを使用する。
デュアルポート・アクティブ−アクティブ・アレイコントローラに対する前記した構造によりデュアル冗長操作における全ネットワークに対するI/Oコマンドの非常に効率的な新しい処理方法が可能となる。「アクティブ−アクティブ」とはコントローラ112の両側のネットワーク・ポートが定められたLUNに関するI/Oコマンドの処理に関してアクティブであることを意味する。関連技術のソリューションにおいて、LUNアクセスはアクティブ・パスまたは性能に関して対称的である。本発明の実施例に従って、ライト・サイドおよびロング・サイドI/Oコマンド間で実感できる処理性能の差は1%に満たないことをテストが示している。
キャッシュ・コヒーレンシおよびSCSI要求条件により、コントローラ112の一方側、ユニットマスタ側、は定められたLUNに対する全SCSIコマンドを処理しなければならない。しかしながら、特定のファイバ・チャネルポート上で受信されたI/Oコマンドは関連するデータおよび受信応答が同じポートを介して通信されることを要求する。ユニットマスタ側ではないISPポート上で受信されたI/Oコマンドは「ロング・サイド(wrong side)」コマンドと呼ばれ、ユニットマスタ側のISPポート上で受信されたI/Oコマンドは「ライト・サイド(right side)」コマンドと呼ばれる。
本発明の実施例はユニットマスタ側のロング・サイドI/Oコマンドの遠隔実行を提供し、実行結果のネットワーク・イニシエータへのローカル通信が続く。図7Aおよび7Bに示すアーキテクチュアを参照して、図10は本発明の実施例に従ったACTIVE−ACTIVE PROCESSINGに対する方法230におけるステップを示す。この方法230はブロック232においてISP158へのファイバ・チャネル・リンク164を介したHEC190′によるI/Oコマンドの受信で開始される。説明の目的で、ファイバ・チャネル・コマンドはLUN1へ向けられるものとして示されている。ブロック234において、ISP158内で実行しているHEC190′はコマンド・フレームのデステネーションIDをメモリ内に格納されたLUNデータ・テーブルと相関させる。この例では、HEC190′はB側(ISP158)にあるものとして示され、A側(ISP156)はLUN1に対するユニットマスタである。こうして、このステップにおいてHEC190′はロング・サイド・コマンドを受信していると決定する。
ブロック236において、HEC190′はそのヘッダー情報の一部として“remote”に設定されたフラグを有する新しいSCSIコマンドをポリシー・プロセッサ170のERB179へポストする。ブロック238において、ポリシー・プロセッサ238は前記したようにキャッシュ・ルックアップを実施し、コマンドはキャッシュ・ヒットにより満たされるかを決定する。ブロック238の決定がイエスであれば、本例においてブロック240の決定は“remote”てあるため、制御はブロック242へ移る。ブロック238の決定がノーであれば、ブロック244においてポリシー・プロセッサ170はPACEを割り当て、ブロック246においてPACEデータを適切なCORE Tagへポストする。次に、制御はブロック240へ戻る。
ブロック242における遠隔コマンド判断に対して、ポリシー・プロセッサ170はFACEおよびローカルMACEの両方を割り当てる。対照的に、ブロック248におけるローカル・コマンド判断はローカルFACEを割り当てるだけでよい。遠隔コマンドの場合、バッファ割当ておよび管理を伴う全ローカル・ステージが完了した後で、データは遠隔割当てFACEを分布させるスクリプトの一部として転送され、次に、ISP158に接続されたサーバ・リンク164を介してイニシエータへ通信し戻すために指示されたCORE Tagへポストされる。
前例はISP158へのロング・サイドI/Oコマンドに対処するが、ロング・サイドI/OコマンドがISP156へ送られると同様な逆のシーケンスが生じる。そのケースでは、遠隔フラグが設定されたポリシー・プロセッサ172のERB179′へ新しいSCSIコマンドをポストしているHEC190の制御下で、データはISP158内のライト・サイド・キャッシュに関してebus160両端間で転送される。いずれかの方向への遠隔実行制御情報の転送はオリジナル・コマンド内の遠隔フラグおよび遠隔実行のためにどんな遠隔コンテキスト・エリアを使用するかを定義するRemote CORE Tagに基づいて自動的に生じる。オリジナル・コマンド内の遠隔フラグは遠隔ISP上の特定のFCに状態および制御を発信ISPへ転送し戻させる。遠隔要求を発信するローカルISP上で、遠隔およびローカル要求間の差は遠隔フラグを設定させ、遠隔データ・フラグを設定させ、遠隔コンテキストを割当て、要求内のそのCORE Tag値を格納させる。その後、2つのISP156、158はポリシー・プロセッサ170、172による介入無しにトランザクションを処理する。これはFCにより逐次処理されるスクリプト内のステージのサブセットに対するはっきりした挙動、および遠隔フラグが設定される時にそれらはどのように僅かに変更されるかを設計して遂行される。
前記したように、一般的に特許請求される実施例はデュアル・アクティブ−アクティブ・アレイ・コントローラ、およびライト・サイドおよびロング・サイドI/Oコマンドをコントローラのユニットマスタ側で一緒にリアルタイムで同期化させる手段を有する記憶システムを考えている。本明細書の目的および添付特許請求の範囲の意味に対して、「同期化手段」という句はここに開示された構造および、ライト・サイドおよびロング・サイドの、専用目的FCからの全トランザクション要求をアレイ・コントローラのユニットマスタ側のポリシー・プロセッサへ集合的にポストする等価物を含んでいる。
開示された構造は一方側に第1の複数の専用目的FCを有する第1のインテリジェント記憶プロセッサ(ISP)と組んだ第1のポリシー・プロセッサ、および他方側に第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサと、ISPを相互接続する通信バスを含んでいる。また、開示された構造はメモリ内に格納されアレイ・コントローラにより実行されて、その第1のISPが論理的ユニットマスタであるLUN(logical unitnumber)へ向けられるネットワークI/Oコマンドに関連付けられる第1の複数のFCおよび第2の複数のFCからのデータ・トランザクションのトップレベル制御を第1のポリシー・プロセッサが維持するようにするプログラミング命令も含んでいる。開示された構造は、さらに、ここに開示されたデータ構造も含んでいる。本明細書の目的および添付特許請求の範囲の意味に対して、「同期化手段」はトランザクションの一部が個別にすなわち独立してバッファされる関連する試みられたソリューションは考えていない。
本発明のさまざまな実施例の非常に多くの特性および利点を、本発明のさまざまな実施例の構造および機能の詳細と共に明細書で述べてきたが、詳細な説明は単なる説明用であって、添付特許請求の範囲が表現される用語の広範な一般的意味により示される全範囲まで、本発明の原理内で詳細を変更することができる、特に部品の構造および配置を変更することができる。たとえば、本発明の精神および範囲を逸脱することなく特定の素子を特定の処理環境に応じて変えることができる。
さらに、ここに記述された実施例はデータ記憶アレイに向けられているが、当業者ならば特許請求された主題はそのように限定はされず、本発明の精神および範囲を逸脱することなく他のさまざまな処理システムを利用できることがお判りであろう。
100 コンピュータ・システム
102 ホスト
103 ホストバス・アダプタ
104 サーバ
106 LAN/WAN
108 インテリジェント記憶素子
109 データ記憶容量
110 SAN
112 デュアル冗長コントローラ
114 シェルフ
116 ミッドプレーン
118 MDA
122 デュアル・バッテリ
124 交流電源
126 デュアル・インターフェイス・モジュール
128 データ記憶装置
130 アッパー・パーティション
132 ロアー・パーティション
134、148 回路板
136、152 コネクタ
138 ラッパー
142 リード/ライト・ヘッド
144 ロータリ・アクチュエータ
146 ボイスコイルモータ
150 フレックス回路
156、158 インテリジェント記憶プロセッサ
160 中間バス
162、164 ファイバ・チャネル・サーバ・リンク
166、168 ファイバ・チャネル記憶リンク
170、172 ポリシー・プロセッサ
174、176 PCIバス
178、180 アクセス・メモリ・バス
179、179′ ERB
182、182′ 交換/PCIメモリ・モジュール
184、184′ バッファ・メモリ・モジュール
186、186′ SRAMモジュール
188 周辺装置バス
190、190′、206 ホスト交換コントローラ
191、191′ DMA/XORコントローラ
192、192′ コマンド・ルーティング・コントローラ
193、193′ メタデータ・コントローラ
194、194′ 雑多機能コントローラ
195、196、195′、196′ ディスク交換コントローラ
198、198′ クロスポイント・スイッチ
200、202、204、200′、202′、204′ リスト・マネージャ
201、203、205、207、209、211、213、215 DRB
208 CDC
210 UCC
212 メタデータ構造
214 記憶ディスク
216 SBLテーブル
218 SBLDテーブル
220 SPBテーブル
222 SDBテーブル
102 ホスト
103 ホストバス・アダプタ
104 サーバ
106 LAN/WAN
108 インテリジェント記憶素子
109 データ記憶容量
110 SAN
112 デュアル冗長コントローラ
114 シェルフ
116 ミッドプレーン
118 MDA
122 デュアル・バッテリ
124 交流電源
126 デュアル・インターフェイス・モジュール
128 データ記憶装置
130 アッパー・パーティション
132 ロアー・パーティション
134、148 回路板
136、152 コネクタ
138 ラッパー
142 リード/ライト・ヘッド
144 ロータリ・アクチュエータ
146 ボイスコイルモータ
150 フレックス回路
156、158 インテリジェント記憶プロセッサ
160 中間バス
162、164 ファイバ・チャネル・サーバ・リンク
166、168 ファイバ・チャネル記憶リンク
170、172 ポリシー・プロセッサ
174、176 PCIバス
178、180 アクセス・メモリ・バス
179、179′ ERB
182、182′ 交換/PCIメモリ・モジュール
184、184′ バッファ・メモリ・モジュール
186、186′ SRAMモジュール
188 周辺装置バス
190、190′、206 ホスト交換コントローラ
191、191′ DMA/XORコントローラ
192、192′ コマンド・ルーティング・コントローラ
193、193′ メタデータ・コントローラ
194、194′ 雑多機能コントローラ
195、196、195′、196′ ディスク交換コントローラ
198、198′ クロスポイント・スイッチ
200、202、204、200′、202′、204′ リスト・マネージャ
201、203、205、207、209、211、213、215 DRB
208 CDC
210 UCC
212 メタデータ構造
214 記憶ディスク
216 SBLテーブル
218 SBLDテーブル
220 SPBテーブル
222 SDBテーブル
Claims (20)
- 第1の複数の専用目的機能コントローラ(FC)を有する第1のインテリジェント記憶プロセッサ(ISP)と組んだ第1のポリシー・プロセッサと、
第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサと、
ISPを相互接続する通信バスと、
第1のISPが論理ユニットマスタである記憶LUN(logical unit number)へ向けられたネットワーク入出力(I/O)コマンドに関連する第1の複数のFCおよび第2の複数のFC両方からのトランザクション要求のトップレベル制御を第1のポリシー・プロセッサが維持するようにする、メモリ内に格納され装置により実行されるプログラミング命令と、
を含むデュアル・ポート・アクティブ−アクティブ・アレイコントローラ装置。 - 請求項1に記載の装置であって、第1の複数のFCおよび第2の複数のFCの各々がリスト・マネージャ(LM)およびポリシー・プロセッサが接続される周辺装置バスを介して各ポリシー・プロセッサと通信する装置。
- 請求項2に記載の装置であって、第1の複数のFCおよび第2の複数のFCの各々が、デステネーションIDコマンドフレーム値によりLUNテーブルをインデクスしてどのISPがI/Oコマンドが向けられるLUNのユニットマスタであるかを決定するホスト交換コントローラ(HEC)を含む装置。
- 請求項3に記載の装置であって、第1のポリシー・プロセッサおよび第2のポリシー・プロセッサの各々がFCからの全トランザクション要求を同期化するイベント・リング・バッファ(ERB)を含む装置。
- 請求項4に記載の装置であって、ERBはその中のトランザクションへの付属データを含むFCにより制御されるデータ・リング・バッファ(DRB)の場所を識別するトランザクション・データ・エントリを含む装置。
- 請求項4に記載の装置であって、各ISPはI/Oコマンドを伝達するポートを有し、第1のポリシー・プロセッサERBは第1のISPポートを介して受信されるローカルI/Oコマンドおよび第2のISPポートを介して受信される遠隔I/Oコマンドに関連するFCトランザクション要求を同期化し、第2のポリシー・プロセッサERBは第2のISPポートを介して受信されるローカルI/Oコマンドおよび第1のISPポートを介して受信される遠隔I/Oコマンドに関連するFCトランザクション要求を同期化する装置。
- 請求項6に記載の装置であって、各HECはトランザクション要求がローカルまたは遠隔I/Oコマンドと関連するかどうかを示すフラグを含むトランザクション要求コマンドをERBへポストする装置。
- 請求項6に記載の装置であって、第1のポリシー・プロセッサERBは第1のISPポートを介して受信されるローカルI/Oコマンドに関連しまた第2のISPポートを介して受信される遠隔I/Oコマンドに関連するLMトランザクション応答を同期化し、第2のポリシー・プロセッサERBは第2のISPポートを介して受信されるローカルI/Oコマンドに関連しまた第1のISPポートを介して受信される遠隔I/Oコマンドに関連するLMトランザクション応答を同期化する装置。
- 請求項8に記載の装置であって、第1のポリシー・プロセッサERBは第2のポリシー・プロセッサからのトランザクションを同期化し、第2のポリシー・プロセッサERBは第1のポリシー・プロセッサからのトランザクションを同期化する装置。
- 請求項6に記載の装置であって、各ポリシー・プロセッサは対応するERB内のトランザクションに対してコンテキストを割り当てる装置。
- 請求項10に記載の装置であって、各ポリシー・プロセッサは遠隔I/Oコマンドに関連するトランザクションに対してローカル・コンテキストをフォーマット化する装置。
- 第1の複数の専用目的FCを有する第1のISPと組んだ第1のポリシー・プロセッサと、第2の複数の専用目的FCを有する第2のISPと組んだ第2のポリシー・プロセッサとを有するデュアル・アクティブ−アクティブ・コントローラを利用するステップと、
コントローラの非ユニットマスタ側のLUNへ向けられるI/OコマンドをFCの1つにより受信するステップと、
FCからのトランザクション要求コマンドをコントローラのユニットマスタ側のポリシー・プロセッサへポストするステップと、
を含む方法。 - 請求項12に記載の方法であって、利用するステップは第1の複数のFCおよび第2の複数のFCの各々がLMおよび対応するポリシー・プロセッサが接続される周辺装置バスを介して対応するポリシー・プロセッサと通信するステップを含む方法。
- 請求項12に記載の方法であって、ポスティング・ステップはFCがI/OコマンドからのデステネーションIDコマンド・フレーム値によりLUNテーブルをインデクスするステップを含む方法。
- 請求項12に記載の方法であって、ポスティング・ステップはFCがコントローラのユニットマスタ側でトランザクション要求が受信されたかどうかを示すフラグを含むトランザクション要求コマンドをポストするステップを含む方法。
- 請求項12に記載の方法であって、ポステング・ステップはトランザクション要求コマンドを第1のポリシー・プロセッサおよび第2のポリシー・プロセッサの各々のERBへポストしてコントローラの両側のFCトランザクション要求を同期化するステップを含む方法。
- 請求項16に記載の方法であって、ポステング・ステップは各ポリシー・プロセッサERBがライト・サイドおよびロング・サイドFCトランザクション要求を同期化するステップを含む方法。
- 請求項16に記載の方法であって、ポステング・ステップは各ポリシー・プロセッサERBがライト・サイドおよびロング・サイドLMトランザクション応答を同期化するステップを含む方法。
- 請求項12に記載の方法であって、さらに、各ポリシー・プロセッサがライト・サイドおよびロング・サイド・トランザクションの両方に対してコンテキストをフォーマット化するステップを含む方法。
- ポリシー・プロセッサが接続される周辺装置バスと通信するリスト・マネージャを介してポリシー・プロセッサに選択的に接続される複数の専用目的機能コントローラを各側に有するデュアル・アクティブ−アクティブ・アレイ・コントローラと、
コントローラのユニットマスタ側でライト・サイドおよびロング・サイドI/Oコマンドを一緒にリアルタイムで同期化する手段と、
を含む記憶システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/772,175 US7761650B2 (en) | 2007-06-30 | 2007-06-30 | Processing wrong side I/O commands |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009015843A true JP2009015843A (ja) | 2009-01-22 |
Family
ID=40162094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008169043A Withdrawn JP2009015843A (ja) | 2007-06-30 | 2008-06-27 | ロング・サイド入出力コマンド処理 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7761650B2 (ja) |
JP (1) | JP2009015843A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7882271B2 (en) * | 2005-06-02 | 2011-02-01 | Seagate Technology Llc | Processor partnering in a storage system |
US8635420B2 (en) | 2010-07-22 | 2014-01-21 | Susan Elkington | Resilient mirroring utilizing peer-to-peer storage |
US9021223B2 (en) | 2011-07-22 | 2015-04-28 | Xiotech Corporation | Resilient mirroring |
US9348758B2 (en) | 2012-09-24 | 2016-05-24 | Sk Hynix Memory Solutions Inc. | Virtual addressing with multiple lookup tables and RAID stripes |
US9749236B2 (en) * | 2014-07-29 | 2017-08-29 | Brocade Communications Systems, Inc. | Increased network scalability by router aware switches |
US11061602B2 (en) * | 2019-05-02 | 2021-07-13 | EMC IP Holding Company LLC | System and method for event based storage management |
US10936192B2 (en) | 2019-05-02 | 2021-03-02 | EMC IP Holding Company LLC | System and method for event driven storage management |
US11086780B1 (en) * | 2020-03-23 | 2021-08-10 | EMC IP Holding Company LLC | Scratchpad journaling mechanism for performance optimization |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028297B2 (en) | 2000-11-17 | 2006-04-11 | Aristos Logic Corporation | System and method of scalable transaction processing |
US7007042B2 (en) * | 2002-03-28 | 2006-02-28 | Hewlett-Packard Development Company, L.P. | System and method for automatic site failover in a storage area network |
US7421520B2 (en) * | 2003-08-29 | 2008-09-02 | Aristos Logic Corporation | High-speed I/O controller having separate control and data paths |
US20050091426A1 (en) * | 2003-10-23 | 2005-04-28 | Horn Robert L. | Optimized port selection for command completion in a multi-ported storage controller system |
US20060161733A1 (en) * | 2005-01-19 | 2006-07-20 | Emulex Design & Manufacturing Corporation | Host buffer queues |
-
2007
- 2007-06-30 US US11/772,175 patent/US7761650B2/en not_active Expired - Fee Related
-
2008
- 2008-06-27 JP JP2008169043A patent/JP2009015843A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20090006716A1 (en) | 2009-01-01 |
US7761650B2 (en) | 2010-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6961813B2 (en) | System and method for providing multi-initiator capability to an ATA drive | |
US9049242B2 (en) | Atomic cache transactions in a distributed storage system | |
US6948036B2 (en) | System and method for providing multi-initiator capability to an ATA drive | |
JP6955466B2 (ja) | Ssdのデータ複製システム及び方法 | |
US7529830B2 (en) | Storage system and communication control method | |
JP4859471B2 (ja) | ストレージシステム及びストレージコントローラ | |
US7958302B2 (en) | System and method for communicating data in a storage network | |
JP2009015843A (ja) | ロング・サイド入出力コマンド処理 | |
US20230168957A1 (en) | Non-Volatile Memory Switch with Host Isolation | |
JP2009015841A (ja) | 同期化された処理要素を有する記憶システム | |
EP2633417B1 (en) | Dynamically enabling and disabling write xfr_rdy | |
US7260681B2 (en) | Stripe buffer list | |
US20030126347A1 (en) | Data array having redundancy messaging between array controllers over the host bus | |
US8745326B2 (en) | Request priority seek manager | |
US12118409B2 (en) | Methods for dynamic throttling to satisfy minimum throughput service level objectives and devices thereof | |
CN112346653A (zh) | 驱动器箱、存储系统和数据传送方法 | |
US7882271B2 (en) | Processor partnering in a storage system | |
JP5487482B2 (ja) | 記憶システムにおけるプロセッサ・パートナリング | |
US7447852B1 (en) | System and method for message and error reporting for multiple concurrent extended copy commands to a single destination device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100526 |
|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110906 |