JP5232602B2 - ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法 - Google Patents

ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法 Download PDF

Info

Publication number
JP5232602B2
JP5232602B2 JP2008279101A JP2008279101A JP5232602B2 JP 5232602 B2 JP5232602 B2 JP 5232602B2 JP 2008279101 A JP2008279101 A JP 2008279101A JP 2008279101 A JP2008279101 A JP 2008279101A JP 5232602 B2 JP5232602 B2 JP 5232602B2
Authority
JP
Japan
Prior art keywords
root
data path
virtual function
function
endpoint device
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.)
Expired - Fee Related
Application number
JP2008279101A
Other languages
English (en)
Other versions
JP2010108211A5 (ja
JP2010108211A (ja
Inventor
勝也 田中
健太郎 島田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008279101A priority Critical patent/JP5232602B2/ja
Priority to US12/338,173 priority patent/US8082466B2/en
Priority to EP11161660A priority patent/EP2369485B1/en
Priority to AT09251131T priority patent/ATE519161T1/de
Priority to EP09251131A priority patent/EP2182443B1/en
Priority to CN2009102031126A priority patent/CN101727297B/zh
Priority to CN201210154769XA priority patent/CN102841760A/zh
Publication of JP2010108211A publication Critical patent/JP2010108211A/ja
Publication of JP2010108211A5 publication Critical patent/JP2010108211A5/ja
Priority to US13/331,205 priority patent/US8321722B2/en
Application granted granted Critical
Publication of JP5232602B2 publication Critical patent/JP5232602B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components

Description

本発明は、ストレージ装置(ディスクアレイ装置などともいう)に関し、特に、ストレージコントローラ内部ネットワークのデータ経路(data path)のフェイルオーバー(fail-over)の技術に関する。
ストレージ装置は、一般的に、ストレージコントローラ(単にコントローラともいう)と、ランダムアクセス可能な不揮発性記録媒体とを備える。この記録媒体は、例えば、ハードディスクドライブ(HDD)を多数備えたディスクアレイである。ストレージコントローラは、上位装置(ホストシステム等)を接続するためのフロントエンドインターフェイス(front-end interface:FEI/Fと略す)と、ディスクアレイを接続するためのバックエンドインターフェイス(back-end interface:BEI/Fと略す)と、上位装置がディスクアレイに対して読み書きするデータを一時的に保存するキャッシュメモリ(CMと略す)とを備える。更に、ストレージコントローラは、上位装置とキャッシュメモリとの間、及びディスクアレイとキャッシュメモリとの間におけるデータ転送を制御するためのプロセッサを備える。
高い信頼性が要求されるストレージ装置においては、ストレージコントローラ内のプロセッサ、FEI/F、BEI/F、及びCMを相互接続するネットワークが、データ経路障害発生時にフェイルオーバー可能に、構成される。また、高い性能が要求されるストレージ装置においては、複数のプロセッサがストレージコントローラ内部ネットワーク(CNと略す)に接続され、データ転送を制御する。
データ経路障害発生時にフェイルオーバー可能な内部ネットワーク(CN)を備えるストレージシステムに関連する公知技術としては、特開2008−84066号公報(特許文献1)がある。
また、プロセッサとFEI/FまたはBEI/F等とを接続するネットワークについての、標準化された規格(基本仕様)として、PCI Express(PCIeと略す)が知られている。そして、複数のプロセッサがI/Oデバイスを共有するための「Multi-Root I/O Virtualization and Sharing Specification」(以下、MR−IOV)が標準化されている。MR−IOVは、標準規格であるため、MR−IOVに準拠したスイッチ等のコンポーネントは、コモディティ化すると考えられる。
つまり、標準規格であるMR−IOVを用いてストレージコントローラ内部ネットワーク(CN)を構成すれば、ストレージコントローラの低コスト化が期待できる。
なお、「Single-Root I/O Virtualization and Sharing Specification」(以下、SR−IOV)についても公知技術である。SR−IOVにおいては、複数のSI(System Image)が、1つのルートポート(Root Port:RPと略す)から複数のエンドポイントデバイス(Endpoint device:EPDと略す)へアクセスが可能である。また、MR−IOVにおいて、1つのRPからエンドポイントを見たツリー状のトポロジを、バーチャルハイアラキ(Virtual Hierarchy:VHと略す)と言う。MR−IOVにおいては、ネットワーク内に複数のVHが構成され、各VHにおいて、1つ以上のSIが1つのRPから複数のEPDへアクセスが可能である。
特開2008−84066号公報
現状のMR−IOV規格においては、RPとエンドポイント(EPD)との間のデータ経路に障害が発生した場合のデータ経路のフェイルオーバー(障害経路から代替経路への切り替え)に関しては考慮されておらず、具体的な方法が定義されていない。
従って、ストレージコントローラ内部ネットワーク(CN)に対してMR−IOVを適用したストレージ装置において、データ経路のフェイルオーバーが実行できない、という課題があった。
本発明は以上のような問題に鑑みてなされたものであり、その主な目的は、ストレージコントローラ内部ネットワーク(CN)に対してMR−IOVを適用したストレージ装置に係わり、データ経路のフェイルオーバーを実行可能とする技術を提供することである。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。前記目的を達成するために、本発明の代表的な実施の形態は、ストレージコントローラ(SC)内のコンポーネントがPCI Express(PCIe)で接続された内部ネットワーク(CN)を持つストレージ装置(ないしシステム)の技術であって、以下に示す構成を有することを特徴とする。
本形態のストレージ装置のストレージコントローラ(SC)及びその内部ネットワーク(CN)は、例えば、全体で複数のRPを有し、それぞれが1つ以上(特に複数)のRPを有する複数のルートコンプレックス(Root complex:RC)と、前記RC毎に接続される複数のプロセッサと、所定のインターフェイス(ミッションバーチャルファンクション(MVF))を備え、前記複数(全体)のRPのそれぞれからアクセス可能な複数のバーチャルファンクション(VF)を有するMRA(Multi-Root Aware)デバイスである、複数のEPDと、前記複数のRPと前記複数のEPDとを接続してデータ経路を構成し複数のポートを備えるMRAスイッチであるスイッチと、を有する。そして、前記複数のEPDの少なくとも1つは、前記VFと前記所定のインターフェイスとのマッピング(対応付け)を変更(移行)するVFマイグレーションを実行可能(VFマイグレーション機能を備える)である。そして、SC及びCNは、すべての前記複数のRPが、すべての前記複数のEPD内のVFへアクセス可能なように、前記スイッチ及び前記EPDが設定されている。そして、SC及びCNは、前記複数のRPの1つから前記スイッチを介して前記複数のEPDの1つへのデータ経路の1つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第1のデータ経路から代替の第2のデータ経路への切り替えにおいて、当該データ経路のアクセス元RPを切り替える処理(第1の切り替え)と、当該アクセス先EPDのVFと前記所定のインターフェイスとのマッピングをVFマイグレーションによって切り替える処理(第2の切り替え)とを行う。
本ストレージ装置においては、ストレージコントローラ(SC)内のコンポーネントが、例えば、PCIeのMRAスイッチで接続される。MRAデバイス(MRAスイッチ)は、MR−IOVに従う装置である。RCは1つ以上(特に複数)のRPを持つ。RC内のRPから、スイッチを通じて、EPD内のVFにアクセスするデータ経路が構成され、EPD内のVFに対しMVFとして所定のインターフェイス(機能)がマッピングされる。そして、フロントエンドインターフェイス(FEI/F)及びバックエンドインターフェイス(BEI/F)等の機能が、以下のようなMRAデバイス(EPD)に構成される。即ち、MRAデバイス(EPD)として、SC内のRPのそれぞれからアクセス可能なVFを有し、かつ、VFマイグレーション(移行)を実行可能なMRAデバイスである。
また、ストレージコントローラ内部ネットワーク(CN)は、MRAデバイスであるEPDとして、FEI/Fを持つ第1のEPD、及びBEI/Fを持つ第2のEPDを有する。第1のEPD及び第2のEPDは、SC内の各RP(複数)からアクセス可能な複数のVF、言い換えれば、少なくともVH(複数)分のアクセスが可能なVFリソースを有する。かつ、当該EPDは、VFマイグレーションが実行可能に予め設定されている(例えばVFマイグレーション機能の有効/無効ビットを設定するレジスタ等を持ち、かつ有効にセットされている)。
また、キャッシュメモリインターフェイス(CMI/F)等が、SC内のRPのそれぞれからアクセス可能なVFを有するMRAデバイスに構成される。ストレージコントローラ内部ネットワーク(CN)は、MRAデバイスであるEPDとして、CMI/Fを持つ第3のEPDを有する。第3のEPDは、SC内の各RP(複数)からアクセス可能な複数のVFを有する。
そして、SC内の全RPが、FEI/F(第1のEPD)またはBEI/F(第2のEPD)またはCMI/F(第3のEPD)等の各MRAデバイス(EPD)内のVFにアクセス可能に、前記MRAスイッチおよびMRAデバイスが設定される。
そして、前記SC内のRPからEPDの機能へのデータ経路に障害が発生した場合に、当該データ経路のアクセス元RPの切り替えと、アクセス先MRAデバイス内VFとMVFとのマッピングの、VFマイグレーションによる切り替えとが、MR−PCIM等により行われることにより、データ経路のフェイルオーバーが実行される。
本形態では、RP毎にアクセス可能なリソース(VF)を各EPDに持たせる。例えば4個のRPに対し、複数のEPDのそれぞれでは4個のVFを持つ。なおVFはCPU(プロセッサ)側に仮想的に見せる存在であり、MVFは機能の実体である。VFとMVFとの対応付け(マッピング)はMR−IOVの仕様に基づく。
上記構成のように、第1の特徴は、フェイルオーバーの際、アクセス元RPを変更するだけでなく、VFマイグレーションにより、アクセス先のVF−MVFのマッピングを変更することである。
第2の特徴は、VFマイグレーション制御手段に対する、データ経路障害発生時等の対策として、SR−PCIM以外による代替手段を設ける。EPDに、その代替手段となる機能を持たせる。例えば第1の方法(インバンド通信による方法)、第2の方法(アウトバンド通信による方法)、第3の方法(自律機能による方法)がある。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明の代表的な実施の形態によれば、ストレージコントローラ内部ネットワークに対してMR−IOVを適用したストレージ装置に係わり、データ経路のフェイルオーバーを実行可能とする。ストレージコントローラ(内部ネットワーク)では、RPからEPDへのデータ経路に障害が発生した場合でも、他のデータ経路にフェイルオーバーすることができるので、高い信頼性が確保される。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1〜図20等を用いて、本発明の実施の形態1のストレージ装置(換言すればストレージシステム)について説明する。実施の形態1では、概要としては、図1、図2等の構成に基づき、図16、図17等に示すように、ストレージコントローラの内部ネットワークにおいて、正常データ経路(障害状態)から代替データ経路へのフェイルオーバー動作の際、アクセス元のルートポートを変更すると共に(例えばRP0→RP1)、VFマイグレーションの制御としてエンドポイントデバイスのバーチャルファンクション(VF)とミッションバーチャルファンクション(MVF)とのマッピング(VFマッピング)を変更すること(例えばED0の「VF 0:0,1」−「MVF 0:0」→「VF 1:0,1」−「MVF 0:0」)により実現する。
<ストレージ装置>
図1は、本発明の実施の形態であるストレージ装置10のブロック構成を示す。ストレージ装置10は、ストレージコントローラ(SC)20とディスクアレイ(DA)15を備える。DA15は、複数のハードディスクドライブ(HDD)または半導体メモリドライブ等の記憶装置群から成る。また、SC20に対し、チャネルC00を介して外部の上位装置(ホストシステム)などが接続される。また、SC20に対しネットワークN00を介して保守端末(maintenance terminal:SVPとする)190が接続される。
ストレージコントローラ(SC)20及びその内部ネットワーク(CN)は、2個のプロセッサ21(CPU0,CPU1)と、2個のメモリ22(MEM0,MEM1)と、2個のルートコンプレックス(RC)30(RC0,RC1)と、3つのエンドポイントデバイス(EPD)50(ED0,ED1,ED2)と、1つのキャッシュメモリ(CM)23と、複数(5つ)のスイッチ40(SW00,SW01,SW10,SW11,SW12)とを備える。内部ネットワーク(CN)は、上記のようなコンポーネントのスイッチによる相互接続(PCIeファブリック)により構成されている。
なお、SC20及びCNでは、プロセッサ21、メモリ22等が少なくとも二重化されており、同符号のものは左右対称の構成である。また、SC20(及びCN)を構成するコンポーネント(スイッチ等)の数は、図1の構成例に限らなくともよい。例えば、RC30や、SW40や、EPD50の数が増えてもよい。
プロセッサ21であるCPU0(CPU1)は、メモリ22であるMEM0(MEM1)に記憶されているプログラムを実行することによって各種処理を行う。具体的には、CPU0(CPU1)は、SC20に接続された上位装置(ホストシステム)とDA15との間のデータ転送を制御する。メモリ22であるMEM0(MEM1)は、プロセッサ21であるCPU0(CPU1)によって実行されるプログラムや、参照されるテーブルのデータ等を記憶する。
本例では、各メモリ22には、シングルルートPCIマネージャー(SR−PCIM)及びマルチルートPCIマネージャー(MR−PCIM)の両方のプログラム108と、フェイルオーバー制御プログラム(FP)110と、各種管理情報のテーブル(後述)とが格納される。また、CM23の一部領域にも、フェイルオーバー制御テーブル(FT)111を含む各種管理情報のテーブルが格納される。また、保守端末(SVP)190にも、MR−PCIMのプログラム109等のプログラムやテーブルが格納される。
各種テーブルの情報は、管理者(Administrator)によって設定または変更等が可能となっている。管理者は例えば保守端末(SVP)190を操作して当該設定等を含む保守・管理系の作業が可能である。この場合、管理者は、テーブルの設定等に関する情報を、SVP190に入力する。SVP190は、入力された情報を、ネットワークN00を介してプロセッサ21(CPU0(CPU1))に送信する。そのプロセッサ21は、受信した情報に基づいて、対象のテーブルを作成または変更等する。そして、そのプロセッサ21は、当該テーブルをメモリ22(MEM0(MEM1))等に格納する。
第1のルートコンプレックス30(RC0)は、第1のプロセッサ21(CPU0)と接続され、そして2個のPCIe基本仕様のルートポート(第1のRP,第2のRP)であるRP0,RP1を備える。同様に、第2のルートコンプレックス30(RC1)は、第2のプロセッサ21(CPU1)と接続され、2個のルートポート(第1のRP,第2のRP)であるRP2,RP3を備える。
第1のルートポート(RP0)は、第1のスイッチ40(SW00)及び第3のスイッチ40(SW10)を介して第1のエンドポイントデバイス50(ED0)と接続されている。また、RP0は、SW00及び第4のスイッチ40(SW11)を介して第3のエンドポイントデバイス50(ED1)と接続されている。更に、RP0は、SW00及び第5のスイッチ40(SW12)を介して第2のエンドポイントデバイス50(ED2)と接続されている。
第2のルートポート(RP1)は、第2のスイッチ40(SW01)及び第3のスイッチ40(SW10)を介して第1のエンドポイントデバイス50(ED0)と接続されている。また、RP1は、SW01及び第4のスイッチ40(SW11)を介して第3のエンドポイントデバイス50(ED1)と接続されている。更に、RP1は、SW01及び第5のスイッチ40(SW12)を介して第2のエンドポイントデバイス50(ED2)と接続されている。
第3のルートポート30(RP2)(RC1内の第1のRP)は、第1のスイッチ40(SW00)及び第3のスイッチ40(SW10)を介して第1のエンドポイントデバイス50(ED0)と接続されている。また、RP2は、SW00及び第4のスイッチ40(SW11)を介して第3のエンドポイントデバイス50(ED1)と接続されている。更に、RP2は、SW00及び第5のスイッチ40(SW12)を介して第2のエンドポイントデバイス50(ED2)と接続されている。
第4のルートポート(RP3)(RC1内の第2のRP)は、第2のスイッチ40(SW01)及び第3のスイッチ40(SW10)を介して第1のエンドポイントデバイス50(ED0)と接続されている。また、RP3は、SW01及び第4のスイッチ40(SW11)を介して第3のエンドポイントデバイス50(ED1)と接続されている。更に、RP3は、SW01及び第5のスイッチ40(SW12)を介して第2のエンドポイントデバイス40(ED2)と接続されている。
スイッチ(SW00,SW01,SW10,SW11,SW12)は、MR−IOV仕様に準拠したマルチルートアウェア(MRA:Multi-Root Aware)スイッチである。また、エンドポイントデバイス50(ED0,ED1,ED2)は、MRAデバイスである。第1と第2のスイッチ(SW00,SW01)は、RC30側と接続される。第3〜第5のスイッチ(SW10,SW11,SW12)は、EPD50側と接続される。
第1のスイッチ40(SW00)は、データ経路を構成するためのポートP000,P001,P002,P003,P004と、更に、ネットワークN00に接続可能な管理ポート(management port)191とを備える。同様に、第2のスイッチ40(SW01)は、ポートP010,P011,P012,P013,P014と、管理ポート191とを備える。SVP190をネットワークN00を介してスイッチ40の管理ポート191と接続することにより、管理者はPCIeファブリックを設定、管理することができる。
第3のスイッチ40(SW10)は、データ経路を構成するためのポートP100,P101,P102を備える。同様に、第4のスイッチ40(SW11)は、ポートP110,P111,P112を備える。第5のスイッチ40(SW12)は、ポートP120,P121,P122を備える。3つのスイッチ40(SW10,SW11,SW12)は、2個のスイッチ40(SW00,SW01)と同様に、ネットワークN00を介してSVP190と接続される。
第1のエンドポイントデバイス50(ED0)は、チャネルC00を介して、外部の上位装置に接続されている。上位装置は、例えば、本ストレージ装置10にデータを読み書きする計算機である。ED0は、フロントエンドインターフェイス(FEI/F)102を備える。FEI/F102は、チャネルC00上とSC20内のデータ転送プロトコルを相互に変換する。なお、SW10とED0は、纏めて1つのコンポーネント103として実装されてもよい。
第2のエンドポイントデバイス50(ED2)は、チャネルD00を介して、DA15に接続されている。ED2は、バックエンドインターフェイス(BEI/F)106を備える。BEI/F106は、チャネルD00上とSC20内のデータ転送プロトコルを相互に変換する。なお、SW12とED2は、纏めて1つのコンポーネント107として実装されてもよい。
第3のエンドポイントデバイス50(ED1)は、キャッシュメモリ(CM)23と接続するためのキャッシュメモリインターフェイス(CMI/F)104を備える。CM23は、第1のエンドポイントデバイス50(ED0)及び第2のエンドポイントデバイス50(ED2)等から受信したデータ(FEI/F102やBEI/F106との間での転送データ)を一時的に記憶(キャッシュ)する。CM23は、SC20内でのデータや情報の格納に共用される。また、CM23内の記憶領域の一部に確保される共有メモリ領域に、制御情報などが格納される。なお、SW11とED1は、纏めて1つのコンポーネント105として実装されてもよい。
EPD50(ED0,ED1,ED2)は、ネットワークN00を介してSVP190に接続されている。SVP190は、ストレージ装置10の管理者により入力された設定情報を、EPD50(ED0,ED1,ED2)に送信する。
なお、SC20は、2個のエンドポイントデバイス50であるED0(FEI/F102搭載)及びED2(BEI/F106搭載)の代わりに、1つのエンドポイントデバイスを備えていてもよい。この場合、当該1つのエンドポイントデバイスが、当該2個のEPD(ED0及びED2)の処理相当を行う。
MR−PCIM(Multi-Root PCI Manager)は、PCIeファブリック(内部ネットワーク(CN))を設定、管理する機能などを有する。また、本特徴に係わり、MR−PCIMは、データ経路のフェイルオーバーを制御する機能などを有する。
MR−PCIMのプログラムは、例えばメモリ22に格納され(プログラム108)、プロセッサ21上で動作する。あるいは、MR−PCIMのプログラムは、SVP190上で動作し(プログラム109)、ネットワークN00とスイッチ40の管理ポート191を介して、PCIeファブリックを設定、管理してもよい。
SR−PCIM(Single-Root PCI Manager)は、ルートポート毎のバーチャルハイアラキ(Virtual Hierarchy:VH)内で動作する。SR−PCIMのプログラムは、例えばメモリ22に格納され(プログラム108)、プロセッサ21上で動作する。
SC20(CN)におけるデータ経路のフェイルオーバーを制御するフェイルオーバー制御プログラム(FP)110は、例えばメモリ22に格納され、プロセッサ21上で動作する。FP110は、MR−PCIMの機能として内蔵するように実装されてもよいし、あるいは独立したプログラムとして実装されてもよい。但し、FP110は、MR−PCIM及びSR−PCIMと直接的あるいは間接的に通信可能に実装される。
本システム(SC20)では、MR−PCIMとSR−PCIMとの両方が動作する。SR−PCIM(各VH内で動作する)は、EPDのSR−IOV特性を管理する。MR−PCIMは、EPDのMR−IOV特性を管理する。VFとMVFとの対応付け(マッピング)は、MR−PCIMが管理する。MR−PCIMとSR−PCIMが連携してVFマイグレーションを制御する。
MR−PCIMは、MR−IOV仕様に基づくものであり、本例では、2個のプロセッサ21(CPU0,CPU1)及びSVP190の3つの箇所にそれぞれMR−PCIMのプログラムが配置される(108,109)。状況に応じて、そのうち1つがアクティブに動作し、他の2個はバックアップ動作用である。
CM23の一部に設けられた共有メモリ領域に格納される情報の1つとして、フェイルオーバー制御テーブル(FT)111を有する。FT111はプロセッサ21(フェイルオーバー制御プログラム(FP)110)からアクセス、参照される。プロセッサ21側のRP間では通信できないので、フェイルオーバー制御プログラム(FP)110は、両方のプロセッサ21(CPU0,CPU1)側のRPからアクセス可能である位置として、本例ではCM23内に配置されている。フェイルオーバー動作については、フェイルオーバー制御プログラム(FP)110がFT111を参照して自動的に実行する。
<エンドポイントデバイスED0>
図2は、第1のエンドポイントデバイス50(ED0)のブロック構成を示す。ED0は、MR−Link(Multi-Root Link)(スイッチ40側)に接続可能なポート201、内部ルーティング制御部(internal rooting controller)205、各ファンクション(BF202,PH203,VF204)、VFマッピング(VF Mapping)制御部206、FEI/F102のミッションバーチャルファンクション(MVF)207、及びネットワークN00を介してSVP190と通信可能な管理ポート208等を備える。
ED0は、ファンクション番号0の1つのベースファンクション202(「BF 0:0」)を備える(ベースファンクション:BFと略す)。また、ED0は、BF202(「BF 0:0」)に付随した複数(4個)のフィジカルファンクション203(「PF 0:0」,「PF 1:0」,「PF 2:0」,「PF 3:0」)を備える(フィジカルファンクション:PFと略す)。更に、ED0は、PF毎に、各PFに付随した複数(4個)のバーチャルファンクション204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を備える(バーチャルファンクション:VFと略す)。これらファンクション(BF,PF,VF)によって、4個のVHをサポートすることにより、ED0は、SC20内に設けられた全4個のルートポート(RP0,RP1,RP2,RP3)からアクセス可能なように設定することができる。例えば、「PF 0:0」と「VF 0:0,1」は、第1のVH(VH0)に対応している。
BF202は、基本的な設定が格納される。VF204は、MVF207とマッピングされる。VF204等は、ストレージ装置10のデータ読み出しあるいは書き込み等に関連するデータ転送等のためのファンクションである。BFは、MRAデバイスのMR−IOVに係わる特性を管理するファンクションであり、またVFとMVFとのマッピング情報を保持する。PFは、SR−IOV仕様に係わるデバイスの特性を管理するファンクションである。VFはPFに付随するファンクションであり、1個以上のリンク等の物理リソースを、付随するPFおよび同じPFに付随する他のVFと共有する。本例のエンドポイントデバイスにおいて、ファンクション番号0のBF、PF、VFは、エンドポイントデバイスのFEI/F等のインターフェイス機能を司る。
複数(2個)のMVF207(「MVF 0,0」,「MVF 0,1」)は、FEI/F102の機能の実体である(ミッションバーチャルファンクション:MVFと略す)。ED0は、本例では2個のMVF207を備えることにより、最大2個のインターフェイス(FEI/F)機能を同時並行的に実行可能である。
VFマッピング制御部206は、BF202に格納された設定に基づき、複数のVF204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)のうち最大2個のVF204を、MVF207(「MVF 0,0」,「MVF 0,1」)と1対1に接続(マッピング)する。
ポート201からチャネルC00へのデータの流れを説明する。ED0は、ポート201が受信したデータを内部ルーティング制御部205へ転送する。内部ルーティング制御部205は、受信したデータの送信先に従い、各ファンクションへ経路変更する。VFマッピング制御部206は、VF204からMVF207へデータを伝送する。MVF207は、チャネルC00へデータを転送する。チャネルC00からポート201へのデータの流れは、上述の逆方向である。
なお、第2のエンドポイントデバイス50(ED2)の構成については、MVFの機能が、チャネルD00と接続するBEI/F106であること以外は、図2のED1の構成と概略同様である。
なお、ファンクションの表記に関して、例えば、「BF a:b」において、aはVH番号、bはファンクション番号である。また、「PF a:b」において、aはVH番号、bはファンクション番号である。また、「VF a:b,c」において、aはVH番号、bはファンクション番号、cはVF番号である。また、「MVF a,b」において、aはファンクション番号、bはMVF番号である。
<エンドポイントデバイスED1>
図3は、第3のエンドポイントデバイス50(ED1)のブロック構成を示す。ED1は、MR−Link(スイッチ40側)に接続可能なポート301、内部ルーティング制御部305、各ファンクション(BF302,PF303,VF304)、VFマッピング(VF Mapping)制御部306、CMI/F104のミッションバーチャルファンクション(MVF)307、及びネットワークN00を介してSVP190と通信可能な管理ポート308等を備える。
ED1は、ファンクション番号0の1つのBF302(「BF 0:0」)を備える。また、ED1は、BF302(「BF 0:0」)に付随した複数(4個)のPF303(「PF 0:0」,「PF 1:0」,「PF 2:0」,「PF 3:0」)を備える。更に、ED1は、PF毎に、各PFに付随した複数(4個)のVF304(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を備える。これらによって、4個のVHをサポートすることにより、ED1は、SC20内に設けられた4個のルートポート(RP0,RP1,RP2,RP3)からアクセス可能なように設定することができる。
MVF307(「MVF 0,0」,「MVF 0,1」,「MVF 0,2」,「MVF 0,3」)は、CMI/F104の機能の実体である。ED1は4個のMVF307を備えることにより、最大4個のインターフェイス(CMI/F)機能を同時並行的に実行可能である。
VFマッピング制御部306は、BF302に格納された設定に基づき、複数のVF304(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)のうち最大4個のVF304を、MVF307(「MVF 0,0」,「MVF 0,1」,「MVF 0,2」,「MVF 0,3」)と1対1に接続する。CMI/F104搭載のED1では、すべてのVF304がMVF307とマッピング可能となっている。
ポート301からCM23接続チャネルへのデータの流れを説明する。ED1は、ポート301が受信したデータを内部ルーティング制御部305へ転送する。内部ルーティング制御部305は、受信したデータの送信先に従い、各ファンクションへ経路変更する。VFマッピング制御部306は、VF304からMVF307へデータを伝送する。MVF307は、CM23接続チャネルへデータを転送する。CM23接続チャネルからポート301へのデータの流れは、上述の逆方向である。
ED1は、VFにマッピングされるMVF(CMI/F104が対応付けられる)の数(x)として、ED1にアクセスするRPの数(y:本例では4)以上を有している(本例ではx=y=4)。
<初期設定>
次に、SC20の内部ネットワーク(CN)を構成するPCIeファブリックの初期設定の情報などが格納される各種テーブルについて順に説明する。各種テーブルは、図4のスイッチポートタイプ管理テーブル400、図5のVH及びVFマッピングポリシー管理テーブル500、図6〜図10のスイッチ(SW00〜SW12)毎のスイッチ管理テーブル600,700,800,900,1000、図11〜図13のEPD50(ED0,ED1,ED2)毎のVFマッピング管理テーブル1100,1200,1300を含む。
<スイッチポートタイプ管理テーブル>
図4は、スイッチポートタイプ管理テーブル400の説明図である。スイッチポートタイプ管理テーブル400は、項目(列)として、SC20内のスイッチポート(「Switch Port」)a(前記スイッチ40のポートの番号、例えば「P000」等)と、そのポートタイプ(「PCIM Capable」)bとの対応を格納する。MR−PCIMは、ポートタイプbがYesのスイッチポートを介してPCIeファブリックを初期化する。EPD50のみが接続されるスイッチポートaのポートタイプbはNoである。
<VH及びVFマッピングポリシー管理テーブル>
図5は、VH及びVFマッピングポリシー管理テーブル500の説明図である。VH及びVFマッピングポリシー管理テーブル500は、項目として、「VH」a、「Authorized」b、「VH Mapping」c{「VS in」d、「Inter-SW Link」e、「VH in」f}、「VF Mapping」gを有する。
各VHのRP(RP番号)がaに格納される。aに格納されたRP上でMR−PCIMが動作するならば、「Authorized」bをYesとする。本実施の形態では、冗長性確保のため、全RP上でMR−PCIMが動作可能に設定される。
cは、VHマッピング(VH Mapping)設定情報が格納される。dは、各VHで使用するスイッチ40内バーチャルスイッチ(VS)が格納される。本例では、全VHにおいて、EPD50接続側の3つのスイッチ40(SW10,SW11,SW12)内のバーチャルスイッチ(VS)を使用する。例えば、RP0のVHでは、SW00と3つのスイッチ(SW10,SW11,SW12)のVSが設定されている。
なお、バーチャルスイッチ(VS)は、MR−IOV仕様に基づく用語である。スイッチデバイス40内に1つ以上のVSが対応付けられて設けられる。例えばSW00内には、VS0,VS1の2個のVSを有する。
eは、各VHで使用するスイッチ間リンク(inter-switch link)の一覧が格納される。本例では、各VHは、EPD50接続側の3つのスイッチ40(SW10,SW11,SW12)のそれぞれが持つ2本のスイッチ間リンクのうち1本ずつのリンクを使用する。例えばRP0のVHでは、スイッチ間リンクとして、P002−P100のリンク(SW00−SW10間の経路)、P003−P110のリンク(SW00−SW11間の経路)、P004−P120のリンク(SW00−SW12間の経路)が設定されている。
fは、各VHに属するEPD50の一覧が格納される。本例では、全EPD50(ED0,ED1,ED2)が各VH内に属する。
gは、VFマッピング(VF Mapping)設定情報が格納される。本例では、各VHにおいて、EPD50毎に1個のVFが割り当てられている。なお、各VHに割り当てるEDP50毎のVFの個数は1個に限られず、1個以上であればよい。本例では、各EPD50は、VHの個数(接続するルートポート数)以上のVFをサポートする。
<スイッチ毎のスイッチ管理テーブル>
図6〜図10は、5つの各スイッチ40(SW00〜SW12)のスイッチ管理テーブルの説明図である。図6は第1のスイッチ40(SW00)のスイッチ管理テーブル600である。図7は第2のスイッチ40(SW01)のスイッチ管理テーブル700である。
スイッチ管理テーブルは、項目として、「Slot(スロット)」a、「Root(ルート)」b、「VS」c、「Bridge(ブリッジ)」d、「Enable(イネーブル)」e、「Mapped」f、「Port(ポート)」g、「Port VHN(ポートVH番号)」hを有する。
本例では、行の601,603,701,703に示すように、4個のRP(RP0,RP1,RP2,RP3)は、PCIe基本仕様のRPであるため、各スイッチ40においてRPと接続したポートの「Port VHN」h(ポートVH番号)は「VH0」となっている。ポートVH番号は、スイッチ40の各ポートに接続したリンクで使用するVH番号である(MR−IOVの仕様に基づく用語)。
本例では、SW00のスイッチ管理テーブル600において、RP0に接続したバーチャルスイッチVS0のダウンストリーム側ポートの「Port VHN」hは、「VH0」にマッピングされる(602)。また、RP2に接続したバーチャルスイッチVS1のダウンストリーム側ポートの「Port VHN」hは、「VH1」にマッピングされる(604)。
本例では、SW01のスイッチ管理テーブル700において、RP1に接続したバーチャルスイッチVS0のダウンストリーム側ポートの「Port VHN」hは、「VH0」にマッピングされる(702)。また、RP3に接続したバーチャルスイッチVS1のダウンストリーム側ポートの「Port VHN」hは、「VH1」にマッピングされる(704)。
なお、「Bridge」dに関して、ダウンストリーム側とは、図1ではSW00,SW01のエンドポイントデバイス側、アップストリーム側とは、図1ではSW00,SW01のルートポート側のことである。
図8は、第3のスイッチ40(SW10)のスイッチ管理テーブル800である。本例では、EPD50とスイッチ40(SW10,SW11,SW12)を接続するリンクにおいて、RP0をルートポートとするVHに対応するVH番号をVH0とする。同様に、RP1に対応してVH1、RP2に対応してVH2、RP3に対応してVH3とする。本例において、SW10のダウンストリーム側ポートP102は、RPがRP0の場合に「Port VHN」hが「VH0」にマッピングされる(801)。また、ポートP102の「Port VHN」hは、RPがRP1の場合に「VH1」(802)、RPがRP2の場合に「VH2」(803)、RPがRP3の場合に「VH3」(804)にマッピングされる。
図9は、第4のスイッチ40(SW11)のスイッチ管理テーブル900である。本例において、SW11のダウンストリーム側ポートP112は、RPがRP0の場合に「Port VHN」hが「VH0」にマッピングされる(901)。また、ポートP112の「Port VHN」hは、RPがRP1の場合に「VH1」(902)、RPがRP2の場合に「VH2」(903)、RPがRP3の場合に「VH3」(904)にマッピングされる。
図10は、第5のスイッチ40(SW12)のスイッチ管理テーブル1000である。本例において、SW12のダウンストリーム側ポートP122は、RPがRP0の場合に「Port VHN」hが「VH0」にマッピングされる(1001)。また、ポートP122の「Port VHN」hは、RPがRP1の場合に「VH1」(1002)、RPがRP2の場合に「VH2」(1003)、RPがRP3の場合に「VH3」(1004)にマッピングされる。
図10までの設定は、システム・ハードウェア初期設定の値であり、本システムの設計・製造段階で予め設定されている。また、管理者は、具体的なシステム利用例に応じて、図11以降のテーブルの必要項目の値を設定する。
<EPD毎のVFマッピング管理テーブル(1)>
図11〜図13は、EPD50(ED0,ED1,ED2)毎のVFマッピング(VF Mapping)管理テーブル(1100,1200,1300)の説明図である。これらVFマッピング管理テーブルは、EPD50毎のBF内に格納され、MR−PCIMにより設定、管理される。
図11は、第1のEPD50(ED0)(FEI/F102搭載)のVFマッピング管理テーブル1100の説明図である。VFマッピング管理テーブル1100は、項目として、「PF」a、「LVF#」b,「VF State(VF状態)」c,「VF」d,「MVF」eを有する。dとeは、VFとMVFとのマッピングを示す。「LVF#」bにおけるLVFは、ロジカルVF(MR−IOV仕様に基づく用語)である。BF内では、VFはLVFとして管理される。MR−IOV仕様によれば、「LVF#」b,「VF State(VF状態)」c,「MVF」eの対応は、LVFテーブルとしてBF内に格納される。LVFテーブルは、VHに関する情報を保持しない。VFマイグレーション制御のためには、LVFテーブルの情報で十分であるが、本システムでは、LVFテーブルに「PF」aおよび「VF」dの項目が追加されることにより、LVFテーブルを、VHの情報を追加したVFマッピング管理テーブルに拡張している。その結果、本例は、LVFおよびMVFがどのルートポートからアクセス可能なのかを容易に判断することができる。
VH0に属するVF(「VF 0:0,1」)は、その「VF State」cが「Active.Available(A.A)」であり、MVF(「MVF 0,0」)にマッピングされている(1101)。VH1に属するVF(「VF 1:0,1」)は、その「VF State」cが「Inactive.Unavailable(I.U)」であり、MVFにマッピングされていない(「none」)(1102)。VH2に属するVF(「VF 2:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,1」)にマッピングされている(1103)。VH3に属するVF(「VF 3:0,1」)は、その「VF State」cが「I.U」であり、MVFにマッピングされていない(「none」)(1104)。これらのVFマッピングの結果、ED0は、初期状態において、RP0及びRP2からアクセス可能であり、RP1及びRP3からアクセス不可能である。
図12は、第3のEPD50(ED1)(CMI/F104搭載)のVFマッピング管理テーブル1200の説明図である。VH0に属するVF(「VF 0:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,0」)にマッピングされている(1201)。VH1に属するVF(「VF 1:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,1」)にマッピングされている(1202)。VH2に属するVF(「VF 2:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,2」)にマッピングされている(1203)。VH3に属するVF(「VF 3:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,3」)にマッピングされている(1204)。これらのVFマッピングの結果、ED1は、初期状態において、4個のすべてのRP(RP0,RP1,RP2,RP3)からアクセス可能である。
CMI/F104搭載のED1のテーブル設定では、特別に、VF状態がすべて「A.A」である。CMI/F104では、FEI/F102及びBEI/F106とは異なり、全RPからアクセス可能なVFリソースを備える構成とするためである。
図13は、第2のEPD50(ED2)のVFマッピング管理テーブル1300の説明図である。基本的にED1の場合と同様である。VH0に属するVF(「VF 0:0,1」)は、その「VF State」cが「I.U」であり、MVFにマッピングされていない(1301)。VH1に属するVF(「VF 1:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,0」)にマッピングされている(1302)。VH2に属するVF(「VF 2:0,1」)は、その「VF State」cが「I.U」であり、MVFにマッピングされていない(1303)。VH3に属するVF(「VF 3:0,1」)は、その「VF State」cが「A.A」であり、MVF(「MVF 0,1」)にマッピングされている(1304)。これらのVFマッピングの結果、ED2は、初期状態において、RP1及びRP3からアクセス可能であり、RP0及びRP2からアクセス不可能である。
<設定及び利用例>
本実施の形態では、以上のような初期設定に基づき、管理者による設定により、利用例として、RP0とRP2がRPであるVHにおいて、ED0(FEI/F102搭載)とED1(CMI/F104搭載)との間のデータ転送を実行し、RP1とRP3がRPであるVHにおいて、ED2(BEI/F106搭載)とED1(CMI/F104搭載)との間のデータ転送を実行する。図26等は、上記のような利用例を示している。
図26の利用例において、内部ネットワーク(CN)において、データ経路として、ED0のMVF(FEI/F102)とED1のMVF(CMI/F104)とが同じRP(例えばRP0)からアクセス可能に設定され、かつ、ED2のMVF(BEI/F106)とED1のMVF(CMI/F104)とが同じRP(例えばRP3)からアクセス可能に設定されている。このため、ED1は、ED1にアクセスするルートポート数以上のMVFを備え、ED0とED2は、ED1にアクセスするルートポート数の半数以上のMVFを備える。その結果、ED0のMVF(FEI/F102)とED1のMVF(CMI/F104)間、およびED2のMVF(BEI/F106)とED1のMVF(CMI/F104)間で、データ転送が可能となる。
また、内部ネットワーク(CN)において、それぞれプロセッサ21に接続される2個のRC30(RC0,RC1)は、それぞれ2個のRP(第1のRP,第2のRP)を有し、データ経路として、各RC30の第1のRP(RP0,RP2)は、ED0のMVF(FEI/F102)及びED1のMVF(CMI/F104)へアクセス可能に設定され、かつ、各RC30の第2のRP(RP1,RP3)は、ED2のMVF(BEI/F106)及びED1のMVF(CMI/F104)へアクセス可能に設定されている。
例えばCPU0に接続されるRC0においては、RP0からはFEI/F102(ED0)とCMI/F104(ED1)へアクセスし、RP1からはBEI/F106(ED2)とCMI/F104(ED1)へアクセス可能になっている。
本利用例により、FEI/F102とCMI/F104を用いたデータ転送(例えば上位装置からのデータ入出力)と、BEI/F106とCMI/F104を用いたデータ転送(例えばDA15に対するデータ入出力)とを同時並行的に効率よく処理することができる。
本利用例のストレージ装置10では、CM23を介してFEI/F102とBEI/F106との間のデータ転送が行われる。そのため、FEI/F102側とBEI/F106側でVHが異なる前記設定例のようなVHの割り当てが適している。また、CPU0がRC0の2個のRP(RP0,RP1)を使用し、また、CPU1がRC1の2個のRP(RP2,RP3)を使用することにより、各プロセッサ21がFEI/F102側とBEI/F106側の両方のデータ転送を制御可能である。このことも、負荷分散及び冗長性の点で、ストレージ装置に適している。
<内部ネットワークのトポロジ>
図14には、以上で説明したPCIeファブリックの初期設定後における、SC20内部ネットワーク(CN)の仮想的なトポロジを示している。すべてのRP1401は、バーチャルスイッチファブリック(VS Fabric)1402(スイッチ40(VS)に対応)を介して、EPD50(ED0,ED1,ED2)内の、それぞれのVHに割り当てられたVF1406(RP0向けVF,RP1向けVF,RP2向けVF,RP3向けVF)に接続する。VSW Fabric1402と各EPD50(VF1406)との間は、MR−Link(1403,1404,1405)によって接続する。VF1406は、VFマッピング(VF Mapping)1407により、各EPD50のMVF1408(「MVF 0,0」,「MVF 0,1」等)に接続する。本例のPCIeファブリックでは、EPD50毎に各RPに割り当てられた(各VHに割り当てられた)VFが備えられており、各RPが独立して各EPD50内VFにアクセス可能である。但し、実際にEPD50の機能を使用できるVFは、VFマッピングでMVFに接続されたVFのみである。
<フェイルオーバー管理テーブル>
図15は、フェイルオーバー管理テーブル1500(前記FT111)の説明図である。フェイルオーバー管理テーブル1500は、前述のように、フェイルオーバー制御プログラム(FP)110が参照するものであり、CM23の一部に設けられた共有メモリ領域に格納されている。FP110は、各RP(RP0〜RP3)から、フェイルオーバー管理テーブル1500を参照可能であり、本テーブル内で使用可能(「E」:Enable)に設定されたデータ経路を使用して、EPD50(ED0〜ED2)にアクセスする。フェイルオーバー管理テーブル1500が格納されるCM23を接続するED1は、本テーブル内に格納されたデータに変更が生じた場合に、全RP(RP0〜RP3)へ割り込みを送信する。割り込みを受信した各RPは、本テーブルの変更内容を確認し、必要に応じて、各EPD50にアクセスするデータ経路の変更を行う。
フェイルオーバー管理テーブル1500は、項目として、「正常時データ経路」A(a〜d)、「代替データ経路」B(e〜h)、「VF Migration」C(i)、「連累データ経路(一段目リンク障害)」D(j〜i)、「連累データ経路(二段目リンク障害)」E(m〜o)を有する。「正常時データ経路」Aに関し、「S」(ステータス)a、「Root」(RP)b、「ED」(EPD)c、「VF」dを有する。同様に「代替データ経路」Bに関し、「S」e、「Root」f、「ED」g、「VF」hを有する。「連累データ経路(一段目リンク障害)」Dに関し、「Root」(RP)j、「ED」(EPD)k、「VF」lを有する。同様に「連累データ経路(二段目リンク障害)」Eに関し、「Root」m,「ED」n,「VF」oを有する。
図15の設定例では、フェイルオーバー前の正常時データ経路は、図26(例えばデータ経路K1)のようになる。
「正常時データ経路」A(a〜d)は、各RPが各EPD50へアクセスするために使用する、正常時(または初期状態)におけるデータ経路(「正常時データ経路」:第1のデータ経路)とそのステータスを格納する。正常時データ経路における、bはアクセス元RPを、cはアクセス先EPD50を、dはアクセス先EPD50内VFを、aはそのデータ経路のステータスを格納する。ステータスaは、「E」が有効(Enable)、「D」が無効(Disable)である。
「代替データ経路」B(e〜h)は、A(a〜d)に格納した正常時(または初期状態)におけるデータ経路において障害が発生した場合に、そのデータ経路の代替として使用するデータ経路(「代替データ経路」:第2のデータ経路)とそのステータスを格納する。代替データ経路における、fはアクセス元RPを、gはアクセス先EPD50を、hはアクセス先EPD50内VFを、eはそのデータ経路のステータスを格納する。
正常時データ経路に対するステータスaと代替データ経路のステータスeは、データ経路が同一である場合には、同じ値が格納される。
「VF Migration」C(i)は、データ経路のフェイルオーバー(第1から第2のデータ経路への切り替え)の実行のためのVFマイグレーション(VF Migration)の要否(yes/no)の情報を格納する。アクセス先EPD50がED1であるデータ経路に関しては、VFマイグレーションが不要(no)に設定されている。
本実施の形態では、特徴の1つとして、VFマイグレーションを使用してデータ経路のフェイルオーバーを実現するものである。例えば、ED0は、初期状態においてRP0とRP2からアクセス可能である(図26、データ経路K1,K3)。初期状態のデータ経路に障害が発生した場合は、アクセス元RPの変更(及びアクセス先VF変更)とVFマイグレーションの実行の結果、例えば、RP1あるいはRP2からED0へアクセス可能になるようにデータ経路が変更され、障害リンクを回避することができる(図16、図17、図26、図27、K1からK2へのフェイルオーバーの場合)。
図27は、図15の設定に対応したそれぞれの代替データ経路を示す(ED1への経路は省略)。例えばK1に対するK2、K3に対するK4である。正常時データ経路と代替データ経路とで異なるリンクを経由するものである。
また、ED1は、すべてのRP(4個)からのアクセスに対してMVF(4個)がマッピングされているので、あるRPからED1へのアクセスに障害が生じた場合であっても、アクセス元RPを変更するだけで(「VF Migration」が不要)、他のRPからED1へアクセス可能である(ED1ではVFマイグレーション制御機能を有効にする必要は無い)。
「連累データ経路(一段目リンク障害)」D(j〜l)及び「連累データ経路(二段目リンク障害)」E(m〜o)は、Aに格納されたデータ経路に障害が発生した場合に、同時に障害が発生する可能性があるデータ経路(連累データ経路)を格納する。例えば、RP0とSW00を接続するリンク上で障害が発生した場合は、RP0からED0へアクセスするデータ経路の他に、RP0からED1,ED2へアクセスするデータ経路上にも障害が発生すると考えられる。
各RPと、RP接続側スイッチである第1のスイッチ40(SW00)または第2のスイッチ40(SW01)とを接続するリンク(一段目リンク、アップストリーム側リンク)上で障害が発生した場合(一段目リンク障害)には、正常時データ経路に連累して障害が発生するデータ経路(連累データ経路)について、jはアクセス元RPを、kはアクセス先EPD50を、lはアクセス先EPD50内VFを格納する。
RP接続側スイッチであるSW00またはSW01と、EPD50接続側スイッチである第3のスイッチ40(SW10)または第4のスイッチ40(SW11)または第5のスイッチ(SW12)とを接続するリンク(二段目リンク)上で障害が発生した場合(二段目リンク障害)には、正常時データ経路に連累して障害が発生するデータ経路(連累データ経路)について、mはアクセス元RPを、nはアクセス先EPD50を、oはアクセス先EPD50内VFを格納する。
また、本例では、FEI/F102を備えるED0とCMI/F104を備えるED1とが同じVHでデータ転送し、かつ、BEI/F106を備えるED2とCMI/F104を備えるED1とが同じVHでデータ転送する。この転送条件が正常時データ経路及び代替データ経路の両方で成立するように、ストレージ装置10の管理者が、フェイルオーバー管理テーブル1500を設定する。
<フェイルオーバー動作>
図16及び図17は、フェイルオーバー動作の説明図である。前記図1の構成に基づいて、第1のデータ経路K1から第2のデータ経路K2へのフェイルオーバーの場合である。
まず図16において、正常時データ経路として、例えば、RC0内のRP0から第1のスイッチ40(SW00)と第3のスイッチ40(SW10)を通りED0へアクセスする第1のデータ経路K1(リンクL1,L2,L5を経由する経路)を有する。そして、第1のデータ経路K1上の、例えば、SW00とSW10との間のリンクL2に障害が発生した場合を考える。この時、フェイルオーバー管理テーブル1500を参照すると、障害が発生したデータ経路(K1)に対する代替のデータ経路は、RC0内のRP1から第2のスイッチ40(SW01)と第3のスイッチ40(SW10)を通りED0へアクセスする第2のデータ経路K2(リンクL3,L4,L5を経由する経路)であることが分かる。よって、第1のデータ経路K1から第2のデータ経路K2へのフェイルオーバー動作が行われることになる。
図17は、図14で示したCNの仮想的なトポロジにおけるデータ経路変更(及びフェイルオーバーを実現するためのVFマイグレーションの動作)についての説明図である。左側は、RP0から見たトポロジ、右側は、RP1から見たトポロジである。
図16の第1のデータ経路K1(正常→障害状態)は、図17においては、RC0内のRP0からVS Fabric(VS)を経由してED0内の第1のVF1702(「VF 0:0,1」)へのデータ経路に相当する。正常時には、VFマッピング(VF Mapping)1704により、第1のVF1702(「VF 0:0,1」)とMVF1701(「MVF 0,0」)が接続(マッピング)されている。
また、図16の第2のデータ経路K2(代替)は、図17においては、RC0内のRP1からVS Fabric(VS)を経由してED0内の第2のVF1703(「VF 1:0,1」)へのデータ経路に相当する。
前述のように、K1からK2へのフェイルオーバーのために、アクセス元RPは、RP0からRP1へ変更され、更に、VFマイグレーション(VFとMVFのマッピングの変更)が行われる。なお、VFマイグレーションに連動してアクセス先VFが変更される。MR−PCIMは、第2のVF1703(「VF 1:0,1」)とMVF1701(「MVF 0,0」)とを接続(マッピング)するため、VFマイグレーション(VF Migration)を実行する。このVFマイグレーションの実行の結果、前記VFマッピング1704によるMVF1701(「MVF 0,0」)と第1のVF1702(「VF 0:0,1」)との接続が解除され、新たなVFマッピング1705により、MVF1701(「MVF 0,0」)と第2のVF1703(「VF 1:0,1」)とが接続される。本例のVFマイグレーションにより、アクセス先VFは「VF 0:0,1」から「VF 1:0,1」へ変更され、VFマッピング1704の状態からVFマッピング1705の状態へ変更される。結果、第2のデータ経路K2が使用可能になる。
以上のように、本実施の形態において、データ経路のフェイルオーバーは、アクセス元RP変更とVFマイグレーションにより実現されている。
<データ経路フェイルオーバー方法>
図18は、本実施の形態のストレージ装置10における、データ経路フェイルオーバー方法及び処理(1800)のフローである(Sは処理ステップを示す)。処理の概要としては、MR−PCIMがデータ経路上のエラー(障害)を検出し、FP110がFT111を参照してフェイルオーバーの条件を確認し、MR−PCIM及びSR−PCIMがVFマイグレーション制御する。
S1801において、MR−PCIMが、RPとEPD50との間、または2個のEPD50間のデータ転送(EPD50アクセス)における所定回数を超えるエラーを検出すると、その結果を、フェイルオーバー制御プログラム(FP)110へ通知する。
S1802において、FP110は、フェイルオーバー管理テーブル(FT)1500(111)を参照し、障害が発生しているデータ経路のフェイルオーバー条件を確認する(前述の代替データ経路、VF Migration要否、連累データ経路など)。
S1803において、FP110は、FT1500の「VF Migration」Cの項目を参照し、VFマイグレーションの要否を判定する。要(yes)の場合はS1804へ進む。
S1804において、FP110は、FT1500の、障害状態のデータ経路(「正常時データ経路」A)のステータスaを「D」(Disable)に設定する。
S1805において、FP110は、対象EPD50内VFに対する、「VF h:f,s」から「VF a:f,c」へのVFマイグレーション(VF Migration)の実行をMR−PCIMに要求する(なおh,f,s,a,c等は数値)。
S1806において、MR−PCIMは、VFマイグレーション(VF Migration)を実行し、EPD50のVFマッピング(VF Mapping)管理テーブルを更新する。
S1807において、FP110は、FT1500の、代替データ経路(「代替データ経路」B)のステータスeを「E」(Enable)に設定する。
S1808において、未処理の連累データ経路の有無を判定する。未処理の連累データ経路が有る場合はS1802へ戻り、無い場合は終了する。例えばRPとスイッチ40を接続したリンク(アップストリーム側)に障害が発生した場合は、複数のEPD50へのアクセスに障害が発生し、複数回のデータ経路フェイルオーバーの実行が必要となる。この場合にデータ経路フェイルオーバーを行う対象となる連累データ経路は、FT1500の「連累データ経路」D,Eに格納されている。
一方、前記S1803において、VF Migrationが否(no)の場合はS1809に進む。S1809において、障害データ経路が使用中のデータ経路か否かを判定する。使用中のデータ経路は、FT1500のステータスが「E」(Enable)になっている。ステータスが「E」(Enable)の場合はS1810へ進み、「D」(Disable)の場合はS1808へ進む。本例における図15のFT1500の設定では、データ経路フェイルオーバー時のVF Migrationが不要な、各RPからED1(CMI/F104搭載)へのアクセスのデータ経路のステータスは、「E」(Enable)である。
S1810において、FP110は、FT1500の、障害データ経路のステータスを、「D」(Disable)に設定する。
S1811において、MR−PCIMは、アクセス障害が生じているVFを、「Active.Available state(A.A)」から「Active.MigrateOut state(A.M)」に遷移させる。
S1812において、障害VH内で動作するSR−PCIM、またはその代替手段は、アクセス障害が生じているVFを、「A.M」から「Inactive.Unavailable state(I.U)」に遷移させる。この代替手段は、SR−PCIMとVFとの間の通信障害時に、SR−PCIMに替わってVF状態遷移を制御する(実施の形態2として後述)。
<EPD毎のVFマッピング管理テーブル(2)>
図19は、ED0(FEI/F102搭載)のVFマッピング管理テーブル(1100b)の一例(変更後)を示す。図19の状態では、図11のVFマッピング管理テーブル1100の状態に対して、ED0のMVF(「MVF 0,1」)のマッピングを、VH2(VF「VF 2:0,1」)からVH3(VF「VF 3:0,1」)へ変更している(行の1901,1902)。図12に示したように、ED1(CMI/F104搭載)は、ED0と同様にVH3でアクセス可能(「VF State」が「A.A」)なので、図19のマッピング状態でもED0とED1が同じVH3内で動作可能である。しかし、図13に示したようにED2がVH3を使用しているため、FEI/F102側とBEI/F106側のデータ転送が同じVH3内で発生することになる。
図20は、ED2(BEI/F106搭載)のVFマッピング管理テーブル(1300b)の一例を示す。図20の状態では、図13のVFマッピング管理テーブル1300の状態に対して、ED2のMVF(「MVF 0,1」)のマッピングを、VH3(「VF 3:0,1」)からVH2(「VF 2:0,1」)へ変更している(行の2001,2002)。
これらのVF Migration(図19,図20)の結果、FEI/F102を備えるED0とCMI/F104を備えるED1とがVH0とVH3でデータ転送し、かつ、BEI/F106を備えるED2とCMI/F104を備えるED1とがVH1とVH2でデータ転送することになる。このように、FEI/F102とBEI/F106のデータ転送において使用するVHを分離した方が、プロセッサ負荷及びファブリック(内部ネットワーク(CN))内トラフィックの分散などが可能となり効果的である。
図28は、図19と図20のVFマッピング適用時のデータ経路の例を示す(ED1への経路は省略)。
なお、障害発生時に限らず、障害未発生のデータ経路に関して、図13から図20の変更のようなデータ経路変更を、障害データ経路のフェイルオーバーと同様に実行することができる。
(実施の形態2)
次に、図21以降を用いて、実施の形態2について説明する。実施の形態2は、実施の形態1に機能(VF状態遷移手段)を追加した構成である。
<VF状態遷移手段>
前記SR−PCIMによるVF状態遷移に対する代替手段(VF状態遷移手段)について説明する。VFマイグレーション(VF Migration)についてはMR−PCIMが実行するが、VFマイグレーションに必須であるVF状態遷移の一部についてはSR−PCIMが実行する。しかし、データ経路障害発生時などには、SR−PCIMとVFとの間の通信が困難になることが考えられる。そのため、実施の形態2では、SR−PCIMに代わってVFを状態遷移させるVF状態遷移手段を設ける。
図21は、SR−PCIMに代わってVFを状態遷移させることができるEPD51(例えばED0)のブロック構成を示す。EPD51は、図2で示したEPD50(ED0)の構成に対して、まず、ファンクション番号1の1つのBF2102(「BF 0:1」)が追加されている。BF2102(「BF 0:1」)のコロンの後のファンクション番号1は、VFの状態制御用であることを示す。EPD51は、更に、BF2102に付随した4個のPF2103(「PF 0:1」,「PF 1:1」,「PF 2:1」,「PF 3:1」)を備える。また、VF状態(VF State)制御部2104が追加されている。VF状態制御部2104は、PF2103及びVF204及び管理ポート2105に接続される。VF状態制御部2104は、ファンクション番号0の4個のVF204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を状態遷移させることができる。
BF2102及びPF2103は、VF204等に関連するVFの状態遷移を制御可能なファンクションである。BF2102は、EPD51の、MR−IOV仕様に係わり、ファンクション番号1の機能に関する特性を管理する。PF2103は、各RPからアクセス可能なようにVH毎に備えられており、VF状態制御部2104と接続している。各RPは、各VHに割り当てられたファンクション番号1のPFを介して、VF状態制御部2104と通信可能である。
実施の形態2では、EPD51を用いたVF状態遷移及び制御の方法(構成)として、以下の3つを有する。これらを設定等により選択的に使用可能な構成である。なお、いずれか1つの方法のみを備える構成としてもよい。
第1の方法(インバンド通信による方法): VF状態制御部2104は、PF2103と接続することにより、SC20内で動作するプログラム(例えば、当該EPD51と正常に接続されるデータ経路におけるRP上のプロセッサ21が実行するFP110)からの指令により、VF204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を状態遷移させることができる。
あるVH(RP)におけるSR−PCIMによるEPD51内VFへのアクセスができない場合に、正常にアクセス可能な他のVH(RP)において、ファンクション番号1のPFを介して、EPD51内のVF状態制御部2104へアクセスする。例えばED0に対し、RP0からではなく、RP1からアクセスする(PF2103(「PF 1:1」)を利用する)。なお第1の方法のみの構成とする場合、管理ポート2105は必要無い。
第2の方法(アウトバンド通信による方法): また、VF状態制御部2104は、管理ポート2105とネットワークN00を介してSVP190と接続することにより、PCIeファブリック外で動作するプログラムからのアウトバンド通信による命令を受けて、VF204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を状態遷移させることができる。なお第2の方法のみの構成とする場合、BF2102,PF2103は必要無い。
第3の方法(自律機能による方法): 更にまた、VF状態制御部2104は、自律機能(自身でVF状態遷移に関する判断・制御を行う機能)により、VF204(「VF 0:0,1」,「VF 1:0,1」,「VF 2:0,1」,「VF 3:0,1」)を状態遷移させることができる。その際、BF202(「BF 0:0」)に接続されたVF状態制御部2104が、BF202(「BF 0:0」)内のVFマッピング管理テーブルを更新する。なお第3の方法のみの構成とする場合、管理ポート2105は必要無い。
上述の通り、VF状態制御部2104は、ファンクション番号0のVFの状態制御に関して3つの方法を有するが、いずれの方法を選択使用するかについては、例えば、管理者が管理ポート2105を介してEPD51毎にあらかじめ設定しておくこと等が可能である。
<VFマイグレーション処理(1)>
図22(A),(B)は、第1の方法を用いて、EPD51において、ファンクション番号1の機能を用いてファンクション番号0のVFを状態遷移させ、VFマイグレーション(VF Migration)を実行する処理(2200)のフローを示す。
S2201において、実施の形態2におけるFP110等の高位レベルソフトウエアが、MR−PCIMに対して、アクセス障害が発生しているEPD51内VFである「VF h:f,s」から「VF a:f,c」へのVFマイグレーション(VF Migration)を要求する。
VFマイグレーションの実行のための必要条件は、移行先のVFの状態が「Inactive.Unavailable state(I.U)」であり、かつ、移行元のVFの状態が「Active.Available state(A.A)」あるいは「Dormant.MigrateIn state(D.M)」であることである。
S2202において、MR−PCIMは、移行先のVF「VF a:f,c」が「I.U」であるか否かを判定する。Yesの場合はS2203へ進む。Noの場合は、VFマイグレーションの必要条件の不成立のため、エラー終了する。
S2203において、MR−PCIMは、移行元のVF「VF h:f,s」が「A.A」であるか否かを判定する。Yesの場合はS2204へ進む。Noの場合は、S2221へ進む。
S2204において、MR−PCIMは、アクセス障害が生じているEPD51内VFである「VF h:f,s」のVF状態(VF State)を、VF状態エントリ(VF State entry)(VFマッピング管理テーブルの「VF State」cのエントリと同値)を書き換えることにより、「A.A」から「A.M」へ遷移させる(「VH h」において「A.M」へのMigrateOut operationを起動する)。この遷移では、SR VF Migration Status bitをセットする(図22(B)のS2205へ続く)。なお、この動作は、図25の(1)に対応する。
図22(B)、S2205において、MR−PCIM等(MR−PCIM、またはMR−PCIMと通信可能なソフトウエア(FP110等))は、アクセス障害が生じているEPD51と通信可能なVHである「VH n」(n≠h)を選定する。
S2206において、MR−PCIM等は、アクセス障害が生じているEPD51内のVF状態制御部2104とPF2103「PF n:1」を介して通信し、VF状態制御部2104に、VF「VF h:f,s」に対してFLR(Function Level Reset)(ファンクションレベルリセット)を発行させる。なお、この動作は、図25の(2)に対応する。
S2207において、MR−PCIM等は、アクセス障害が生じているEPD51のVF状態制御部2104と、PF2103「PF n:1」(n≠h)を介して通信し、VF「VF h:f,s」のVF状態を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、MR−PCIMへの割り込みを起動する。なお、この動作は、図25の(3)に対応する。
S2208において、上記割り込みを受信したMR−PCIMは、割り込みの原因を特定するため、アクセス障害が発生しているEPD51のVFマッピング管理テーブルをスキャンして、「A.M」から「I.U」へ遷移したVF(「VF h:f,s」)を探す。なお、この動作は、図25の(4)に対応する。
S2224において、MR−PCIMは、VF「VF h:f,s」に関連したVFマッピングエントリ(VF Map entry)の値を保存(save)する。なお、この動作は、図25の(5)に対応する。S2225において、MR−PCIMは、VF「VF h:f,s」に関連したVF Map entryに、「empty slot」(空スロット)を示す0(zero)をセットする。なお、この動作は、図25の(6)に対応する。S2226において、MR−PCIMは、VF「VF a:f,c」に関連したVF Map entryに、S2224で保存した値をセットする。なお、この動作は、図25の(7)に対応する。
S2227において、MR−PCIMは、VF「VF a:f,c」に関連したVF Map entryを書き換えることにより、VF「VF a:f,c」(「VH a」)に対して、「I.U」から「D.M」へのMigrateIn operationを起動する。この遷移では、SR VF Migration bitをセットする。なお、この動作は、図25の(8)に対応する。
S2228において、VF「VF a:f,c」に関連した「VH a」内で動作するSR−PCIMは、VF状態配列(VF State array)をスキャンして「D.M」へ遷移したVF「VF a:f,c」を特定し、そのVF「VF a:f,c」に対してFLRを発行する。なお、この動作は、図25の(9)に対応する。
S2229において、「VH a」で動作するSR−PCIMは、VF「VF a:f,c」の使用を開始する前に、VF「VF a:f,c」のVF状態を、「D.M」から「A.A」へ遷移させる。これにより、VF移行を正常に終了する。なお、この動作は、図25の(10)に対応する。
一方、図22(A)、S2221において、移行元のVF「VF h:f,s」が、「D.M」であるか否かを判定する。Yesの場合はS2222へ進む。Noの場合は、VFマイグレーションの必要条件の不成立のため、終了する。
S2222において、MR−PCIMは、VF「VF h:f,s」に関連したVF State entryを書き換えて、VF「VF h:f,s」のMigrateIn operationを撤回する。その結果、VF「VF h:f,s」は、「D.M」から「I.U」へ遷移する(この後は図23(B)のS2224へ続く)。なお、この動作は、図25の(11)に対応する。
なお、MR−IOV標準仕様におけるS2205〜S2207に相当する処理では、まず、VF「VF h:f,s」に関連したVHである「VH h」で動作するSR−PCIMが、VF State arrayをスキャンして「A.M」へ遷移したVF「VF h:f,s」を特定し、VF「VF h:f,s」の使用を中止し、VF「VF h:f,s」に対してFLRを発行する。次に、SR−PCIMがVF「VF h:f,s」のVF状態を、「A.M」から「I.U」へ遷移させ、そして、その遷移では、MR VF Migration Status bitをセットし、MR−PCIMへの割り込みを起動する。
上記のように、実施の形態2(第1の方法)のフェイルオーバー方法及びVFマイグレーション処理では、S2205〜S2207の処理において、上記MR−IOV標準仕様ではSR−PCIMが処理すべきステップを、EPD51内に設けたVF状態制御部2104を用いて処理する点が特徴である。
<VFマイグレーション処理(2)>
図23は、第2の方法を用いて、EPD51において、MR−PCIMが管理ポート2105とネットワークN00を介したアウトバンド通信を用いて、ファンクション番号1の機能によりファンクション番号0のVFを状態遷移させ、VFマイグレーションを実行する処理(2300)のフローである。
第2の方法において、まず最初は図22(A)のS2201〜S2204等の処理と同じであり、続いて図23において、第1の方法と異なる部分として、S2305、S2306を有する。
S2305において、MR−PCIM等(MR−PCIM、またはMR−PCIMと通信可能なソフトウエア(フェイルオーバー制御プラグラム等))は、アクセス障害が生じているEPD51内VF状態制御部2104とネットワークN00を介したアウトバンド通信を行い、VF状態制御部2104にVF(「VF h:f,s」)に対してFLRを発行させる。
S2306において、MR−PCIM等は、アクセス障害が生じているEPD51のVF状態制御部2104とネットワークN00を介したアウトバンド通信を行い、VF(「VF h:f,s」)のVF状態を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、MR−PCIMへの割り込みを起動する。以降の処理は前述同様である。
上記のように、実施の形態2(第2の方法)のフェイルオーバー方法及びVFマイグレーション処理では、S2305〜S2306において、MR−IOV標準仕様ではSR−PCIMが処理すべきステップを、EPD51内に設けたVF状態制御部2104とアウトバンド通信を用いて処理する点が特徴である。
<VFマイグレーション処理(3)>
図24は、第3の方法を用いて、EPD51において、VF状態制御部2104の自律制御機能が、ファンクション番号0のVFを状態遷移させ、VFマイグレーションを実行する処理(2400)のフローである。
第3の方法において、まず最初は図22(A)のS2201〜S2204等の処理と同じであり、また、S2221〜S2222、図22(B)のS2224〜S2229等の処理も同じであり、続いて図24において、第1の方法と異なる部分として、S2405〜S2410を有する。
S2405において、アクセス障害が生じているEPD51のVF状態制御部2104は、アクセス障害が生じているVHのSR−PCIMと通信可能かを確認する。例えば、RP3からエンドポイントデバイス内のVF(VF3:0,1)へアクセスするデータ経路上に障害が発生した場合は、VF状態制御部2104が、VF(VF3:0,1)と同じVHに属するファンクション番号1のPF(PF3,1)を制御する。VF状態制御部2104は、RP3からVF(VF3:0,1)へのアクセスと同じ物理データ経路を使用する、PF(PF3,1)からRP3へのアクセステストを実施する。その結果から、VH3内で動作するSR−PCIMがVF(VF3:0,1)と通信可能か否かを判定する。
S2406において、アクセス障害が生じているEPD51が障害VH内SR−PCIMと通信可能かを判定する。可能ならばS2409へ進む。不可ならばS2407へ進む。
S2407において、アクセス障害を生じているEPD51のVF状態制御部2104が、「A.M」へ遷移したVF「VF h:f,s」に対してFLRを発行する。
S2408において、アクセス障害が生じているEPD51のVF状態制御部2104が、VF「VF h:f,s」を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、MR−PCIMへの割り込みを起動する。
一方、S2409において、VF「VF h:f,s」に関連した「VH h」で動作するSR−PCIMが、VF State arrayをスキャンして「A.M」へ遷移したVF「VF h:f,s」を特定し、そのVF「VF h:f,s」の使用を中止し、VF「VF h:f,s」に対してFLRを発行する。
S2410において、SR−PCIMがVF「VF h:f,s」を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、MR−PCIMへの割り込みを起動する。
S2411では、割り込みを受信したMR−PCIMは、割り込みの原因を特定するため、「A.M」から「I.U」へ遷移したVF(「VF h:f,s」)を探す。以降の処理は前述同様である。
上記のように、実施の形態2(第3の方法)のフェイルオーバー方法及びVFマイグレーション処理では、S2405〜S2410において、MR−IOV標準仕様ではSR−PCIMが処理すべきステップを、EPD51内に設けたVF状態制御部2104の自律制御により処理する点が特徴である。
<VFマイグレーションの状態遷移>
図25は、補足のため、MR−IOV仕様に基づくVFマイグレーションに係わる状態遷移について示している。VFは、4個の状態(「A.A Active.Available state」,「A.M(Active.MigrateOut state)」,「I.U(Inactive.Unavailable state)」,「D.M(Dormant.MigrateIn state)」)を有する。実線の矢印は、MR−PCIMによる状態遷移を示す。破線の矢印は、SR−PCIMによる状態遷移を示す。「A.A」,「A.M」は、VF active(fully usable by SR)であり、「I.U」は、VF inactive(not usable by SR)であり、「D.M」は、VF Dormant(responds to SR)である。
フェイルオーバー動作の際には、VFマイグレーションに伴うVF状態遷移制御として、(1)でMR−PCIMによる制御により「A.A」から「A.M」へ遷移し、(3)でSR−PCIMによる制御により「A.M」から「U.U」へ遷移する。しかしながら、(3)で「A.M」から「U.U」へ遷移する際、SR−PCIMによる制御(VF状態遷移制御)が、データ経路障害などによって不可能な場合が有り得る。そのために、前述のようにVF状態遷移制御の代替手段を設けている。
以上説明したように、各実施の形態によれば、SC20の内部ネットワーク(CN)に対してMR−IOVを適用したストレージ装置10において、RPからEPDへのデータ経路のフェイルオーバーを、MR−PCIM等により、当該データ経路におけるアクセス元RP変更とアクセス先EPD内VFのVFマイグレーションの動作によって実行可能である。従って、本ストレージ装置10を用いるシステムでは、データ経路に障害が発生した場合でも、他のデータ経路にフェイルオーバーすることができ、高い信頼性が確保される。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、内部ネットワークを持つストレージ装置のみならず、ブレード型サーバ等の計算機及びその内部ネットワーク技術などに対しても広く適用が可能である。
本発明の実施の形態1のストレージ装置のブロック構成を示す図である。 実施の形態1におけるエンドポイントデバイス(ED0)のブロック構成を示す図である。 実施の形態1におけるエンドポイントデバイス(ED1)のブロック構成を示す図である。 実施の形態1におけるスイッチポートタイプ管理テーブルの説明図である。 実施の形態1におけるVH及びVFマッピングポリシー管理テーブルの説明図である。 実施の形態1におけるスイッチ(SW00)管理テーブルの説明図である。 実施の形態1におけるスイッチ(SW01)管理テーブルの説明図である。 実施の形態1におけるスイッチ(SW10)管理テーブルの説明図である。 実施の形態1におけるスイッチ(SW11)管理テーブルの説明図である。 実施の形態1におけるスイッチ(SW12)管理テーブルの説明図である。 実施の形態1におけるED0のVFマッピング管理テーブルの説明図である。 実施の形態1におけるED1のVFマッピング管理テーブルの説明図である。 実施の形態1におけるED2のVFマッピング管理テーブルの説明図である。 実施の形態1における内部ネットワークの仮想的なトポロジの説明図である。 実施の形態1におけるフェイルオーバー管理テーブルの説明図である。 実施の形態1におけるフェイルオーバー動作(代替データ経路への切り替え)の説明図である。 実施の形態1におけるフェイルオーバー動作(VFマイグレーション)の説明図である。 実施の形態1におけるフェイルオーバー処理を示すフロー図である。 実施の形態1におけるED0のVFマッピング管理テーブル(その2)の説明図である。 実施の形態1におけるED2のVFマッピング管理テーブル(その2)の説明図である。 本発明の実施の形態2のストレージ装置におけるエンドポイントデバイスのブロック構成を示す図である。 実施の形態2における第1の方法におけるVFマイグレーション処理(その1)を示すフロー図である。 実施の形態2における第1の方法におけるVFマイグレーション処理(その2)を示すフロー図である。 実施の形態2における第2の方法におけるVFマイグレーション処理を示すフロー図である。 実施の形態2における第3の方法におけるVFマイグレーション処理を示すフロー図である。 MR−IOV仕様に基づくVFマイグレーションに伴うVFの状態遷移についての説明図である。 一実施の形態におけるストレージ装置の利用例(その1)を示す説明図である。 一実施の形態におけるストレージ装置の利用例(その2)を示す説明図である。 一実施の形態におけるストレージ装置の利用例(その3)を示す説明図である。
符号の説明
10…ストレージ装置、15…ディスクアレイ(DA)、20…ストレージコントローラ(SC)及びその内部ネットワーク(CN)、21…プロセッサ(CPU0,CPU1)、22…メモリ(MEM0,MEM1)、23…キャッシュメモリ(CM)、30…ルートコンプレックス(RC)(RC0,RC1)、40…スイッチ(SW00,SW01,SW10,SW11,SW12)、50,51…エンドポイントデバイス(EPD)(ED0,ED1,ED2)、102…フロントエンドインターフェイス(FEI/F)、103,105,107…コンポーネント、104…キャッシュメモリインターフェイス(CMI/F)、106…バックエンドインターフェイス(BEI/F)、108…プログラム(MR−PCIM及びSR−PCIM)、109…プログラム(MR−PCIM)、110…フェイルオーバー制御プログラム(FP)、111…フェイルオーバー制御テーブル(FT)、190…保守端末(SVP)、191…管理ポート、201,301…ポート、202,302…ベースファンクション(BF)、203,303…フィジカルファンクション(PF)、204,304…バーチャルファンクション(VF)、205,305…内部ルーティング制御部、206,306…VFマッピング(VF Mapping)制御部、207,307…ミッションバーチャルファンクション(MVF)、208,308…管理ポート、400…スイッチポートタイプ管理テーブル、500…VH及びVFマッピングポリシー管理テーブル、600,700,800,900,1000…スイッチ管理テーブル、1100,1200,1300,1100b,1300b…VFマッピング(VF Mapping)管理テーブル、1401…ルートポート、1402…バーチャルスイッチファブリック(VSF)、1403,1404,1405…MR−Link、1406…VF、1407…VFマッピング(VF Mapping)、1500…フェイルオーバー管理テーブル、1701…MVF、1702,1703…VF、1704,1705…VFマッピング、2102…BF、2103…PF、2104…VF状態制御部、2105…管理ポート、RP0,RP1,RP2,RP3…ルートポート、P000,P001,P002,P003,P004,P010,P011,P012,P013,P014,P100,P101,P102,P110,P111,P112,P120,P121,P122…ポート、N00…ネットワーク、C00,D00…チャネル、VS0,VS1…バーチャルスイッチ(VS)、K1,K2,K3,K4…データ経路、L1,L2,L3,L4,L5…リンク(スイッチ間リンク)。

Claims (12)

  1. ストレージコントローラ内のコンポーネントがPCI Expressで接続された内部ネットワークを持つストレージ装置であって、
    前記ストレージコントローラ及びその内部ネットワークは、
    全体で複数のルートポートを有し、それぞれが1つ以上のルートポートを有する複数のルートコンプレックスと、
    前記ルートコンプレックス毎に接続される複数のプロセッサと、
    所定のインターフェイスを備え、前記複数のルートポートのそれぞれからアクセス可能な複数のバーチャルファンクションを有するマルチルートアウェアデバイスである、複数のエンドポイントデバイスと、
    前記複数のルートポートと前記複数のエンドポイントデバイスとを接続してデータ経路を構成し複数のポートを備えるマルチルートアウェアスイッチであるスイッチと、を有し、
    前記複数のエンドポイントデバイスの少なくとも1つは、前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを変更するバーチャルファンクションマイグレーションを実行可能であり、
    前記エンドポイントデバイスとして、
    上位装置を接続するためのフロントエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第1のエンドポイントデバイスと、
    記憶装置群を接続するためのバックエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第2のエンドポイントデバイスと、
    キャッシュメモリを接続するためのキャッシュメモリインターフェイスを備える第3のエンドポイントデバイスと、を有し、
    前記スイッチは、前記複数のルートポートと、前記第1及び第2及び第3のエンドポイントデバイスを接続し、
    すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内の一つ以上のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記第1及び第2及び第3のエンドポイントデバイスが設定されており、
    前記複数のルートポートの1つから、前記第1または第2または第3のエンドポイントデバイスの1つへのデータ経路の1つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第1のデータ経路から代替の第2のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理と、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行い、
    前記第3のエンドポイントデバイスは、前記バーチャルファンクションに対してマッピングされるミッションバーチャルファンクションを備え、前記ミッションバーチャルファンクションに対して前記キャッシュメモリインターフェイスが対応付けられ、当該第3のエンドポイントデバイスに備えるミッションバーチャルファンクションの数は、当該第3のエンドポイントデバイスにアクセスするルートポートの数以上であること、を特徴とするストレージ装置。
  2. 請求項記載のストレージ装置において、
    前記ストレージコントローラ及びその内部ネットワークにおいて、
    前記第1のエンドポイントデバイスのミッションバーチャルファンクションとなる前記フロントエンドインターフェイスと前記第3のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスとが同じルートポートからアクセス可能なように設定され、
    前記第2のエンドポイントデバイスのミッションバーチャルファンクションとなる前記バックエンドインターフェイスと前記第3のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスとが同じルートポートからアクセス可能なように設定されていること、を特徴とするストレージ装置。
  3. 請求項記載のストレージ装置において、
    前記複数のルートコンプレックスは、それぞれ、第1のルートポートと第2のルートポートとを有し、
    前記ストレージコントローラ及びその内部ネットワークにおいて、
    各ルートコンプレックスの前記第1のルートポートは、前記第1のエンドポイントデバイスのミッションバーチャルファンクションとなる前記フロントエンドインターフェイス及び前記第3のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスへアクセス可能なように設定され、
    各ルートコンプレックスの前記第2のルートポートは、前記第2のエンドポイントデバイスのミッションバーチャルファンクションとなる前記バックエンドインターフェイス及び前記第3のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスへアクセス可能なように設定されていること、を特徴とするストレージ装置。
  4. 請求項1記載のストレージ装置において、
    前記エンドポイントデバイスは、当該ストレージ装置のデータ読み出しあるいは書き込みに関連するデータ転送のための第1のファンクションと、前記第1のファンクションに付随するバーチャルファンクションの状態遷移を制御可能な第2のファンクションと、を備えること、を特徴とするストレージ装置。
  5. 請求項記載のストレージ装置において、
    前記ストレージコントローラまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
    前記ルートポートからエンドポイントデバイスへのバーチャルハイアラキの構成において、
    前記エンドポイントデバイスは、前記マルチルートPCIマネージャーのプログラムからの前記第2のファンクションへの、データ経路障害が未発生のバーチャルハイアラキにおけるインバンド通信により、前記第1のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
  6. 請求項記載のストレージ装置において、
    前記ストレージコントローラまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
    前記エンドポイントデバイスは、前記マルチルートPCIマネージャーのプログラムからの前記第2のファンクションへのアウトバンド通信により、前記第1のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
  7. 請求項記載のストレージ装置において、
    前記ストレージコントローラに、シングルルートPCIマネージャーのプログラムを備え、
    前記ルートポートからエンドポイントデバイスへのバーチャルハイアラキの構成において、
    前記エンドポイントデバイスは、自律機能により、データ経路障害が発生したバーチャルハイアラキにおける前記シングルルートPCIマネージャーのプログラムと、前記第2のファンクションとの通信可否を判定し、否の場合に前記第1のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
  8. 請求項1記載のストレージ装置において、
    前記ストレージコントローラ及びその内部ネットワークは、
    前記ルートポートとエンドポイントデバイス内バーチャルファンクションとの対応関係を管理するテーブルと、
    前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを管理するテーブルと、
    前記フェイルオーバーの際の前記バーチャルファンクションのマイグレーションを管理するテーブルと、を含む複数のテーブルを管理し、
    前記ストレージコントローラ及びその内部ネットワークは、前記データ経路のフェイルオーバーを実行する処理の際、前記複数のテーブルを参照して、前記データ経路のアクセス元ルートポートを切り替える処理と、前記アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行うこと、を特徴とするストレージ装置。
  9. ストレージコントローラ内のコンポーネントがPCI Expressで接続されたストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法であって、
    前記ストレージコントローラの内部ネットワークは、全体で複数のルートポートと、前記ルートポートを有するルートコンプレックスに接続されるプロセッサと、所定のインターフェイスを備え前記複数のルートポートのそれぞれからアクセス可能な複数のバーチャルファンクションを有する複数のエンドポイントデバイスと、前記複数のルートポートと前記複数のエンドポイントデバイスとを接続してデータ経路を構成し複数のポートを備えるスイッチと、を有し、
    前記複数のエンドポイントデバイスの少なくとも1つは、前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを変更するバーチャルファンクションマイグレーションを実行可能であり、
    前記エンドポイントデバイスとして、
    上位装置を接続するためのフロントエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第1のエンドポイントデバイスと、
    記憶装置群を接続するためのバックエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第2のエンドポイントデバイスと、
    キャッシュメモリを接続するためのキャッシュメモリインターフェイスを備える第3のエンドポイントデバイスと、を有し、
    前記スイッチは、前記複数のルートポートと、前記第1及び第2及び第3のエンドポイントデバイスを接続し、
    前記ストレージコントローラの内部ネットワークは、すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内の一つ以上のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記エンドポイントデバイスが設定されており、
    前記ストレージコントローラの内部ネットワークは、前記複数のルートポートの1つから前記スイッチを介して前記複数のエンドポイントデバイスの1つへのデータ経路の1つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理ステップとして、当該障害状態の第1のデータ経路から代替の第2のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理ステップと、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理ステップとを有し、
    前記第3のエンドポイントデバイスは、前記バーチャルファンクションに対してマッピングされるミッションバーチャルファンクションを備え、前記ミッションバーチャルファンクションに対して前記キャッシュメモリインターフェイスが対応付けられ、当該第3のエンドポイントデバイスに備えるミッションバーチャルファンクションの数は、当該第3のエンドポイントデバイスにアクセスするルートポートの数以上であること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
  10. 請求項記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
    前記ストレージコントローラの内部ネットワークに、シングルルートPCIマネージャーのプログラム、及びフェイルオーバー制御プログラムを備え、
    前記ストレージコントローラの内部ネットワークまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
    前記ストレージコントローラの内部ネットワークは、前記複数のルートポートの1つから前記スイッチを介して前記複数のエンドポイントデバイスの1つへのデータ経路の1つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、
    前記マルチルートPCIマネージャーのプログラムが、前記フェイルオーバー制御プログラムへデータ経路障害発生を通知する処理ステップと、
    前記フェイルオーバー制御プログラムが、前記内部ネットワーク内にあるフェイルオーバー管理テーブルを参照し、上記通知された情報に基づいて前記マルチルートPCIマネージャーのプログラムに前記バーチャルファンクションマイグレーションを要求する処理ステップと、
    前記マルチルートPCIマネージャーが、上記要求に対し、前記バーチャルファンクションマイグレーションを実行し、前記内部ネットワーク内にあるバーチャルファンクションと前記所定のインターフェイスとのマッピングを管理するテーブルを更新する処理ステップと、
    前記フェイルオーバー制御プログラムが、上記バーチャルファンクションマイグレーションの実行に伴い、前記フェイルオーバー管理テーブルを更新する処理ステップと、を有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
  11. 請求項10記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
    前記データ経路における障害が未発生のデータ経路に関して、前記マルチルートPCIマネージャーのプログラムが、前記バーチャルファンクションマイグレーションを実行し、前記バーチャルファンクションマッピング管理テーブルを更新する処理ステップと、
    前記フェイルオーバー制御プログラムが、上記バーチャルファンクションマイグレーションの実行に伴い、前記フェイルオーバー管理テーブルを更新する処理ステップとを有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
  12. 請求項記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
    前記エンドポイントデバイスは、当該ストレージ装置のデータ読み出しあるいは書き込みに関連するデータ転送のための第1のファンクションと、前記第1のファンクションに付随するバーチャルファンクションの状態遷移を制御可能な第2のファンクションと、を備え、
    前記エンドポイントデバイスは、前記シングルルートPCIマネージャーのプログラムまたは前記マルチルートPCIマネージャーのプログラムからの前記第2のファンクションへの通信に基づき、前記第1のファンクションのバーチャルファンクションを状態遷移させる処理ステップを有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
JP2008279101A 2008-10-30 2008-10-30 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法 Expired - Fee Related JP5232602B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2008279101A JP5232602B2 (ja) 2008-10-30 2008-10-30 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
US12/338,173 US8082466B2 (en) 2008-10-30 2008-12-18 Storage device, and data path failover method of internal network of storage controller
AT09251131T ATE519161T1 (de) 2008-10-30 2009-04-20 Speichervorrichtung und datenpfad- ausfallsicherungsverfahren für ein internes netzwerk eines speichersteuergeräts
EP09251131A EP2182443B1 (en) 2008-10-30 2009-04-20 Storage device, and data path failover method of internal network of storage controller
EP11161660A EP2369485B1 (en) 2008-10-30 2009-04-20 Storage device, and data path failover method of internal network of storage controller
CN2009102031126A CN101727297B (zh) 2008-10-30 2009-05-27 存储装置、存储控制器内部网络的数据路径故障切换方法
CN201210154769XA CN102841760A (zh) 2008-10-30 2009-05-27 存储装置、存储控制器内部网络的数据路径故障切换方法
US13/331,205 US8321722B2 (en) 2008-10-30 2011-12-20 Storage device, and data path failover method of internal network of storage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008279101A JP5232602B2 (ja) 2008-10-30 2008-10-30 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法

Publications (3)

Publication Number Publication Date
JP2010108211A JP2010108211A (ja) 2010-05-13
JP2010108211A5 JP2010108211A5 (ja) 2011-03-17
JP5232602B2 true JP5232602B2 (ja) 2013-07-10

Family

ID=41683595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008279101A Expired - Fee Related JP5232602B2 (ja) 2008-10-30 2008-10-30 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法

Country Status (5)

Country Link
US (2) US8082466B2 (ja)
EP (2) EP2182443B1 (ja)
JP (1) JP5232602B2 (ja)
CN (2) CN101727297B (ja)
AT (1) ATE519161T1 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868814B2 (en) * 2009-07-06 2014-10-21 Nec Corporation I/O system, downstream PCI express bridge, interface sharing method, and program
US8402189B2 (en) 2010-05-13 2013-03-19 Hitachi, Ltd. Information processing apparatus and data transfer method
US8677180B2 (en) * 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8645606B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Upbound input/output expansion request and response processing in a PCIe architecture
US8615622B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Non-standard I/O adapters in a standardized I/O architecture
US8417911B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Associating input/output device requests with memory associated with a logical partition
US8416834B2 (en) 2010-06-23 2013-04-09 International Business Machines Corporation Spread spectrum wireless communication code for data center environments
US8615586B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Discovery of logical images at storage area network endpoints
US8671287B2 (en) 2010-06-23 2014-03-11 International Business Machines Corporation Redundant power supply configuration for a data center
US8918573B2 (en) 2010-06-23 2014-12-23 International Business Machines Corporation Input/output (I/O) expansion response processing in a peripheral component interconnect express (PCIe) environment
US8745292B2 (en) 2010-06-23 2014-06-03 International Business Machines Corporation System and method for routing I/O expansion requests and responses in a PCIE architecture
US8645767B2 (en) 2010-06-23 2014-02-04 International Business Machines Corporation Scalable I/O adapter function level error detection, isolation, and reporting
US10015084B2 (en) 2010-08-10 2018-07-03 International Business Machines Corporation Storage area network path management
US8365009B2 (en) * 2010-09-10 2013-01-29 Microsoft Corporation Controlled automatic healing of data-center services
US9135044B2 (en) * 2010-10-26 2015-09-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
US8954808B1 (en) * 2010-11-30 2015-02-10 Symantec Corporation Systems and methods for performing input/output path failovers
US8645746B2 (en) * 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8677176B2 (en) * 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8589723B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US8495252B2 (en) * 2011-01-17 2013-07-23 International Business Machines Corporation Implementing PCI-express memory domains for single root virtualized devices
US8543754B2 (en) * 2011-02-25 2013-09-24 International Business Machines Corporation Low latency precedence ordering in a PCI express multiple root I/O virtualization environment
US8413148B2 (en) * 2011-03-10 2013-04-02 Telefonaktiebolaget L M Ericsson (Publ) Virtualization support in platform management (PLM) information model
US9772858B2 (en) 2011-04-21 2017-09-26 Ineda Systems Inc. Multi-root peripheral component interconnect manager
CN102761566B (zh) * 2011-04-26 2015-09-23 国际商业机器公司 迁移虚拟机的方法和装置
US8838837B2 (en) 2011-06-23 2014-09-16 Microsoft Corporation Failover mechanism
JP5903801B2 (ja) * 2011-08-23 2016-04-13 富士通株式会社 通信装置およびid設定方法
US9311127B2 (en) 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
CN102495814A (zh) * 2011-12-16 2012-06-13 创新科存储技术有限公司 存储设备的控制器之间的通讯方法
US9626207B2 (en) * 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
CN102629225B (zh) * 2011-12-31 2014-05-07 华为技术有限公司 双控制器磁盘阵列、存储系统以及数据存储路径切换方法
US9542350B1 (en) 2012-04-13 2017-01-10 Google Inc. Authenticating shared interconnect fabrics
US9235346B2 (en) 2012-05-04 2016-01-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Dynamic map pre-fetching for improved sequential reads of a solid-state media
US9337865B2 (en) 2012-05-04 2016-05-10 Seagate Technology Llc Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders
US20140006676A1 (en) * 2012-06-28 2014-01-02 Dell Products L.P. Systems and methods for dynamic allocation of information handling resources
US8626967B1 (en) * 2012-06-29 2014-01-07 Emc Corporation Virtualization of a storage processor for port failover
US9092583B2 (en) * 2012-11-16 2015-07-28 Dell Products L.P. Systems and methods for communication between modular information handling systems in a chassis
US9195483B2 (en) 2013-01-28 2015-11-24 Dell Products L.P. Systems and methods for mirroring virtual functions in a chassis configured to receive a plurality of modular information handling systems and a plurality of modular information handling resources
US9298658B2 (en) * 2013-02-26 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter
US9104643B2 (en) * 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
WO2014201623A1 (zh) * 2013-06-18 2014-12-24 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
US10162663B2 (en) * 2014-02-17 2018-12-25 Hitachi, Ltd. Computer and hypervisor-based resource scheduling method
US9003090B1 (en) 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
US9817722B2 (en) * 2014-08-29 2017-11-14 Vmware, Inc. Storage policy-based automation of protection for disaster recovery
US10339110B2 (en) 2015-08-31 2019-07-02 Vmware, Inc. Policy-based selection and configuration of target site resources for data replication
US9842016B2 (en) 2015-11-12 2017-12-12 International Business Machines Corporation Multiple path error data collection in a storage management system
US10042720B2 (en) * 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US10417164B2 (en) * 2016-12-29 2019-09-17 Asmedia Technology Inc. Synchronous transmission device and synchronous transmission method
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
JP2019075032A (ja) * 2017-10-19 2019-05-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびプログラム
CN108984120B (zh) * 2018-06-29 2021-11-09 郑州云海信息技术有限公司 存储设备路径错误的处理方法以及相关装置
US10996971B2 (en) * 2018-07-12 2021-05-04 Verizon Patent And Licensing Inc. Service OAM for virtual systems and services
US10855522B2 (en) 2018-08-13 2020-12-01 Netapp Inc. Dual port storage device emulation
CN111522698B (zh) * 2019-02-03 2023-07-11 比亚迪股份有限公司 前端处理器的自动切换系统及方法
JP6996757B2 (ja) * 2019-03-27 2022-01-17 Necプラットフォームズ株式会社 カード、システム、カードが実行する制御方法及びプログラム
CN113810276A (zh) * 2021-08-31 2021-12-17 锐捷网络股份有限公司 一种段路由故障处理方法、装置、电子设备及存储介质
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
CN115334015B (zh) * 2022-07-04 2024-04-02 深圳市国微电子有限公司 基于PCIe交换芯片的虚拟交换模式控制方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606630B1 (en) * 2000-08-21 2003-08-12 Hewlett-Packard Development Company, L.P. Data structure and method for tracking network topology in a fiber channel port driver
US6888792B2 (en) * 2000-12-07 2005-05-03 Intel Corporation Technique to provide automatic failover for channel-based communications
US6823477B1 (en) * 2001-01-23 2004-11-23 Adaptec, Inc. Method and apparatus for a segregated interface for parameter configuration in a multi-path failover system
AU2002306495A1 (en) * 2001-02-13 2002-08-28 Candera, Inc. Storage virtualization and storage management to provide higher level storage services
US6715098B2 (en) * 2001-02-23 2004-03-30 Falconstor, Inc. System and method for fibrechannel fail-over through port spoofing
WO2002069162A1 (en) * 2001-02-24 2002-09-06 International Business Machines Corporation Twin-tailed fail-over for fileservers maintaining full performance in the presence of a failure
US6904477B2 (en) * 2001-04-13 2005-06-07 Sun Microsystems, Inc. Virtual host controller interface with multipath input/output
US7003688B1 (en) * 2001-11-15 2006-02-21 Xiotech Corporation System and method for a reserved memory area shared by all redundant storage controllers
US6952792B2 (en) * 2002-03-19 2005-10-04 International Business Machines Corporation Failover system for storage area network
US7134040B2 (en) * 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device
US6981174B1 (en) * 2002-07-18 2005-12-27 Extreme Networks, Inc. Method and apparatus for a redundant port
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
JP4107083B2 (ja) * 2002-12-27 2008-06-25 株式会社日立製作所 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム
US8321650B2 (en) * 2003-01-13 2012-11-27 Emulex Design & Manufacturing Corporation Alignment-unit-based virtual formatting methods and devices employing the methods
US7290168B1 (en) * 2003-02-28 2007-10-30 Sun Microsystems, Inc. Systems and methods for providing a multi-path network switch system
JP4220887B2 (ja) * 2003-11-17 2009-02-04 株式会社日立製作所 ディスク装置及びその制御方法
US7257730B2 (en) * 2003-12-19 2007-08-14 Lsi Corporation Method and apparatus for supporting legacy mode fail-over driver with iSCSI network entity including multiple redundant controllers
JP2005332316A (ja) * 2004-05-21 2005-12-02 Ricoh Co Ltd データ分配装置、データ転送装置及び画像処理装置
US7062594B1 (en) * 2004-06-30 2006-06-13 Emc Corporation Root complex connection system
US7644318B2 (en) * 2004-07-14 2010-01-05 Hewlett-Packard Development Company, L.P. Method and system for a failover procedure with a storage system
JP2006107045A (ja) * 2004-10-04 2006-04-20 Hitachi Ltd ストレージ装置
JP4713902B2 (ja) * 2005-03-01 2011-06-29 株式会社日立製作所 ストレージシステム
JP4990505B2 (ja) * 2005-04-04 2012-08-01 株式会社日立製作所 記憶制御装置及びストレージシステム
US7356636B2 (en) * 2005-04-22 2008-04-08 Sun Microsystems, Inc. Virtualized PCI switch
JP4698316B2 (ja) 2005-07-15 2011-06-08 株式会社日立製作所 アクセスパス管理方法及びプログラム
US7865654B2 (en) * 2006-02-28 2011-01-04 Emulex Design And Manufacturing Corporation Programmable bridge header structures
JP4394670B2 (ja) 2006-09-28 2010-01-06 株式会社日立製作所 ディスク制御装置及びストレージシステム
JP5057366B2 (ja) * 2006-10-30 2012-10-24 株式会社日立製作所 情報システム及び情報システムのデータ転送方法
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US7657663B2 (en) * 2006-12-19 2010-02-02 International Business Machines Corporation Migrating stateless virtual functions from one virtual plane to another
US7984454B2 (en) * 2006-12-19 2011-07-19 International Business Machines Corporation Migration of single root stateless virtual functions
US8305879B2 (en) * 2007-03-30 2012-11-06 International Business Machines Corporation Peripheral component switch having automatic link failover
US7779308B2 (en) * 2007-06-21 2010-08-17 International Business Machines Corporation Error processing across multiple initiator network
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US7783818B1 (en) * 2007-12-28 2010-08-24 Emc Corporation Modularized interconnect between root complexes and I/O modules
US7958298B2 (en) * 2008-03-26 2011-06-07 Lsi Corporation System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
US7743189B2 (en) * 2008-05-05 2010-06-22 International Business Machines Corporation PCI function south-side data management
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment

Also Published As

Publication number Publication date
EP2182443B1 (en) 2011-08-03
EP2182443A1 (en) 2010-05-05
US8082466B2 (en) 2011-12-20
US8321722B2 (en) 2012-11-27
CN102841760A (zh) 2012-12-26
US20120089864A1 (en) 2012-04-12
CN101727297A (zh) 2010-06-09
JP2010108211A (ja) 2010-05-13
EP2369485B1 (en) 2013-04-03
ATE519161T1 (de) 2011-08-15
US20100115329A1 (en) 2010-05-06
EP2369485A1 (en) 2011-09-28
CN101727297B (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
JP5232602B2 (ja) ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
KR100793224B1 (ko) Raid 시스템, raid 컨트롤러 및 그 재구성/재복사처리 방법
US8478835B2 (en) Method and system for using shared memory with optimized data flow to improve input/output throughout and latency
JP2694099B2 (ja) 大型耐故障不揮発性複数ポート・メモリー
WO2017162179A1 (zh) 用于存储系统的负载再均衡方法及装置
US11372552B2 (en) Storage device
WO2017162178A1 (zh) 对存储系统的访问控制方法及装置
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
US20190026039A1 (en) Storage system, load rebalancing method thereof and access control method thereof
US7873866B2 (en) Computer system, storage system and configuration management method
WO2011052002A1 (en) Storage system mounted with plurality of processors
US20220179812A1 (en) Method for Improving Reliability of Storage System, and Related Apparatus
KR20050033060A (ko) 네트워크를 이용한 핫 스페어 구성 시스템 및 방법
JP2014106940A (ja) ストレージ装置、およびモジュール間データ転送方法
US20110296103A1 (en) Storage apparatus, apparatus control method, and recording medium for storage apparatus control program
JP6201674B2 (ja) ストレージ制御装置,プログラム及び制御方法
US7913028B2 (en) Data processing system having multiplexed data relaying devices, data processing aparatus having multiplexed data relaying devices, and a method of incorporating data relaying devices in data processing system having multiplexed data relaying devices
WO2016122602A1 (en) Systems and methods for sharing non-volatile memory between multiple access models
JP7315753B2 (ja) ストレージ装置
JP2004164171A (ja) パス冗長化装置及び方法
JP7334423B2 (ja) メモリ制御装置、メモリ制御プログラム、及びメモリ制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees