JP6001773B2 - ネットワークストレージシステムにおける無停止のコントローラの交換 - Google Patents

ネットワークストレージシステムにおける無停止のコントローラの交換 Download PDF

Info

Publication number
JP6001773B2
JP6001773B2 JP2015520366A JP2015520366A JP6001773B2 JP 6001773 B2 JP6001773 B2 JP 6001773B2 JP 2015520366 A JP2015520366 A JP 2015520366A JP 2015520366 A JP2015520366 A JP 2015520366A JP 6001773 B2 JP6001773 B2 JP 6001773B2
Authority
JP
Japan
Prior art keywords
controller
computing device
system identifier
identifier data
storage devices
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.)
Active
Application number
JP2015520366A
Other languages
English (en)
Other versions
JP2015525424A (ja
Inventor
クマー エルプラ,スラヴァナ
クマー エルプラ,スラヴァナ
ガーグ,ヴァルン
チャイタニャ ヴェニ,サクシ
チャイタニャ ヴェニ,サクシ
Original Assignee
ネットアップ,インコーポレイテッド
クマー エルプラ,スラヴァナ
クマー エルプラ,スラヴァナ
ガーグ,ヴァルン
チャイタニャ ヴェニ,サクシ
チャイタニャ ヴェニ,サクシ
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 ネットアップ,インコーポレイテッド, クマー エルプラ,スラヴァナ, クマー エルプラ,スラヴァナ, ガーグ,ヴァルン, チャイタニャ ヴェニ,サクシ, チャイタニャ ヴェニ,サクシ filed Critical ネットアップ,インコーポレイテッド
Publication of JP2015525424A publication Critical patent/JP2015525424A/ja
Application granted granted Critical
Publication of JP6001773B2 publication Critical patent/JP6001773B2/ja
Active 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、概してネットワークストレージシステムに関し、特にネットワークストレージシステムにおけるコントローラの交換に関する。
ストレージエリアネットワーク(SAN:storage area network)環境は、しばしばデュアルコントローラモデルを使用することにより動作する複数のストレージデバイスを含む。多くの場合、このようなストレージデバイスは、ディスクの少なくとも1つのアレイを含むことがあり、これはRAID(redundant array of independent disks)として分類され得る。コントローラがしばしば高可用性(HA:High Availability)ペアと呼ばれるこのようなデュアルコントローラモデル構成のもとで、個々のコントローラは、ストレージデバイスの様々なボリューム又はアレイの主コントローラ又は“オーナー(owner)”としてシステムノードを動作させるように割り当てられ得る。これらのコントローラはまた、故障又はコントローラを交換する他の理由の場合に、代替又はペアのコントローラからストレージデバイスのボリュームを引き継ぐ。
HAペアにおけるシステムコントローラの交換又はスワップアウト(取り替え)は、一般的に周知であり、典型的には、コントローラヘッド、NVRAMカード及び/又は或る場合には全体のコントローラの交換を含む。このような手順は、しばしば“ヘッドスワップ(headswap)”と呼ばれ、HA及びRAIDが属し得る大きいSANでなくても、しばしば少なくともHAペア及びこれに割り当てられたRAIDの全体の動作のかなりの中断を生じる。例えば、ヘッドスワップに対する一般的な手法は、スワップにより影響を受けたシステムノードをメンテナンスモードにブートし、ディスク再割り当て動作を実行することを含む。これは有効であるが、影響を受けたノードにより保持されるストレージがこの処理の間に一般的に利用不可能になるという点で中断がある。
ヘッドスワップに対する他の手法は、あまり中断しない結果になる可能性がある。例えば、HAペアのコントローラにおけるヘッドスワップは、交換されていないシステムコントローラによる交換ノードの引き継ぎを含む。このように、影響を受けたノードにより保持されるストレージのボリューム及びデバイスは、残りのコントローラにより引き継がれ、ヘッドスワップ処理中に少なくとも利用可能になる。除去するコントローラを新たにインストールされるコントローラにスワップアウトするために、複数のステップが手動で実行される。古いコントローラのこのスワップアウトが終了した後に、手動のディスク再割り当て動作が実行され、残りのシステムコントローラから新たにインストールされたコントローラへ影響を受けたノードの復旧が提供される。
不都合なことに、このような無停止であるが主に手動の処理から生じ得る複数の問題が存在する。HAペアのシステムによるヘッドスワップの検出は、しばしば、アグリゲート(aggregate)がフォーリン(foreign)であるというRAIDアシミレーション(assimilation)検出に依存し、ディスク所有権を一致させるためのアグリゲートの所有権のクリーンアップはこのような場合にのみ生じる。或る場合には、このことはヘッドスワップ検出を信頼性の低いものにする可能性がある。更に、このような手動のヘッドスワップ手順は、ユーザによる新たなコントローラシステムの識別子の正確な入力に依存する。この手動のID登録処理中に何らかのエラーが発生した場合、ヘッドスワップは失敗し、交換ノードは完全にリブートされなければならない。更に、コントローラ及びストレージ動作からの復旧が同時に行われる場合、問題が生じる可能性があり、ディスクが動作中に再割り当てされる場合、マルチディスクのパニックが生じる可能性があり、一般的には複数のヘッドスワップに対するサポートは存在しない。
ヘッドスワップのための多くのネットワークストレージシステム、デバイス及び方法は、一般的には過去にうまく機能してきたが、常に改善の要求が存在する。特に、要求されるものは、前述の問題を克服する自動の無停止且つ高信頼性の方法でシステムコントローラにおけるヘッドスワップ手順を提供することができるネットワークストレージシステム及び方法である。
ネットワークに基づくストレージシステムにおいてより良いヘッドスワップを実現する改善したシステム及び方法を提供することが、この開示の利点である。このような改善したシステム及び方法は、HAペアのコントローラヘッド、NVRAMカード及び/又は全体のシステムコントローラを自動的、無停止且つ高信頼性の方法で交換することができる。特に、開示の実施例は、コントローラがヘッドスワップ処理を認識し、それに応じてヘッドスワップを行うように、HAペアのコントローラがブート又はヘッドスワップ処理の早期にこれらのシステム識別子を交換する更に自動的なヘッドスワップ手順を含む。更に、復旧は、交換コントローラが円滑にブートアップ及び一体化することができるように、適切なシステム識別子を反映するためにディスク及びRAID所有権を迅速に更新することを含む。
この開示の様々な実施例では、ネットワークに基づくストレージシステムは、複数の物理ストレージデバイスと、複数のシステムコントローラとを含んでもよい。複数の物理ストレージデバイスは、少なくともストレージデバイスの第1及び第2のアグリゲートを含み、各ストレージデバイスは、属するシステムコントローラを示すように構成されたその所有権部分を含む。複数のシステムコントローラは、それぞれと、複数のストレージデバイスと、別のホストサーバとそれぞれ通信する少なくとも第1及び第2のシステムコントローラを含んでもよく、システムコントローラのそれぞれは、ストレージデバイスのそれぞれのアグリゲートを制御し、別のホストサーバから受信したコマンドに基づいて複数のストレージデバイスに読み書きするシステムノードとして指定されるように適合されてもよい。特に、第1のシステムコントローラは、第1のシステムノードを制御し、後に第2のシステムノードを制御する別の第3のシステムコントローラで、元々は第2のシステムノードを制御する第2のシステムコントローラの自動ホットスワップ交換を実現するように構成されてもよい。第1のシステムコントローラは、第2のコントローラの自動ホットスワップ交換の間に第2のシステムノードの制御を引き継いでもよい。更に、第1のシステムコントローラはまた、自動ホットスワップ交換の間に自動的に別の第3のコントローラとシステム識別子を交換してもよい。
様々な他の実施例では、冗長ストレージアレイ環境で動作するように適合された第1のネットワークに基づくストレージシステムコントローラは、複数のモジュールを含んでもよい。第1のモジュールは、別のホストサーバから受信したコマンドに基づいて、第1のアグリゲートに構成された第1の複数のストレージデバイスのそれぞれへの読み書きを制御する第1のシステムノードの動作を実現するように適合されてもよい。第2のモジュールは、高可用性ペアの構成において別の第2のコントローラとの相互作用を実現するように適合されてもよく、別の第2のコントローラは、別のホストサーバから受信したコマンドに基づいて、第2のアグリゲートに構成された第2の複数のストレージデバイスのそれぞれへの読み書きを制御する第2のシステムノードの動作を実現する。第3のモジュールは、後に第2のシステムノードを動作させる別の第3のコントローラで、別の第2のコントローラの自動ホットスワップ交換を実現するように適合されてもよい。これは、第1のシステムコントローラが別の第2のシステムコントローラの自動ホットスワップ交換の間に第2のシステムノードの制御を引き継ぐことを第3のモジュールが実現することにより実現されてもよい。更に、第2又は第3のモジュールのうち少なくとも1つは、自動ホットスワップ交換の間に自動的にシステム識別子を別の第3のコントローラと交換するように更に適合されてもよい。
更に別の実施例では、ネットワークに基づくストレージシステムにおいてコントローラを無停止で交換する様々な方法が提供される。このような方法は、交換コントローラにおいて自動ホットスワップ交換手順の存在を検出し、元のシステムコントローラにおいて自動ホットスワップ交換手順の存在を検出し、ただし、元のシステムコントローラと交換コントローラは、コントローラの高可用性ペアとして動作するように構成され、ストレージデバイスのアグリゲートの各ストレージデバイスが交換コントローラにより所有されることを反映するように、ストレージデバイスのアグリゲートの各ストレージデバイスの第1の所有権部分を更新し、交換コントローラをブートアップし、それぞれのストレージデバイスの更新された第1の所有権部分を一致させるように、ストレージデバイスのアグリゲートの各ストレージデバイスの第2の所有権部分を更新することを含んでもよい。
本発明の一実施例によるHAコントローラペア及び複数のストレージデバイスを有する例示的なネットワークに基づくストレージシステムのブロック図 本発明の一実施例による複数のモジュールを有する例示的なHAコントローラのブロック図 本発明の一実施例に従って引き継ぎ及び復旧手順を受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な処理のブロック図及びテーブル 本発明の一実施例に従ってヘッドスワップを受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な処理のブロック図及びテーブル 本発明の一実施例に従ってヘッドスワップを受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な別の処理のブロック図及びテーブル 本発明の一実施例に従って影響を受けたHAペアの残りのコントローラの観点からネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の方法のフローチャート 本発明の一実施例に従って新たなコントローラの観点からネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の方法のフローチャート 本発明の一実施例に従ってネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の全体の方法のフローチャート
本発明の他の装置、方法、特徴及び利点は、以下の図面及び詳細な説明の考察から当業者に明らかになる。全てのこのような更なるシステム、方法、特徴及び利点は、この説明に含まれ、本発明の範囲内にあり、特許請求の範囲により保護されることを意図する。
含まれる図面は説明目的のものであり、ネットワークに基づくストレージシステムにおいて無停止のコントローラ交換を実現する開示された発明のデバイス、システム及び方法の可能な構成及び配置の例を提供するためのものである。これらの図面は、本発明の要旨及び範囲から逸脱することなく当業者により本発明に対して行われ得る形式及び詳細における変更を制限するものではない。
本発明による装置及び方法の例示的な用途がこの部分に記載される。これらの例は、単に背景を追加し、本発明の理解を役立てるために提供される。従って、これらの特定の詳細の一部又は全部なしに本発明が実施されてもよいことは、当業者に明らかである。他にも、不要に本発明を曖昧にすることを回避するため、周知の処理ステップは詳細には記載されていない。他の用途も可能であるため、以下の説明は限定として解釈されるべきではない。
以下の詳細な説明では、説明の一部を形成し、本発明の特定の実施例を例示により示す添付図面に参照が行われる。これらの実施例は、当業者が本発明を実施することを可能にするのに十分に詳細に記載されるが、これらの例は限定的ではないことが分かる。このため、他の実施例が使用されてもよく、本発明の要旨及び範囲を逸脱することなく変更が行われてもよい。
この開示は、ネットワークに基づくストレージシステムにおいて無停止のコントローラ交換を実現するデバイス、システム及び方法に関する。好ましくは、このようなデバイス、システム及び方法は、HAペアのコントローラヘッド、NVRAMカード及び/又は全体のシステムコントローラを自動的、無停止且つ高信頼性の方法で交換することができる。様々な実施例では、更に自動的なヘッドスワップ手順は、全てのコントローラがヘッドスワップ処理を認識し、それに応じて動作するように、HAペアのコントローラがブート又はヘッドスワップ処理の早期にこれらのシステム識別子を交換することを含む。更に、新たな交換コントローラへの復旧は、交換コントローラが円滑にブートアップ及び一体化することができるように、適切なシステム識別子を反映するためにディスク及びRAID所有権を迅速に更新することを含んでもよい。ここに開示された様々な例は、HAペア内のヘッドスワップの特定の側面に着目するが、ここに開示された様々な原理及び実施例は、必要に応じて、ネットワークに基づくストレージアプリケーション及びシステムの他のコントローラ構成にも適用可能であることが分かる。
図1を参照すると、HAコントローラペア及び複数のストレージデバイスを有する例示的なネットワークに基づくストレージシステムがブロック図形式で示されている。システム100は、複数のコントローラ120へのリンク113、115を通じた通信を実現する複数のポート112、114を有するホスト又はサーバ110を含んでもよい。コントローラ120は、ホスト100との通信を実現するポート122、124と、ストレージデバイス130とのリンク136、138を通じた通信を実現する更なるポート136、138とを有するコントローラ120A、120BのHAペアを含んでもよい。内部接続又はリンク121は、HAコントローラ120A、120のポート125A、125Bの間の通信を実現してもよい。ストレージデバイス130は、HAコントローラペア120により制御されるアグリゲート又はRAIDに構成されてもよく、複数のストレージデバイス又はボリューム130A、130Bを含んでもよい。特に、HAコントローラ120Aは、ストレージデバイス又はボリューム130Aのセットのオーナー又はコントローラとして指定され得る第1のシステムノードを動作させてもよく、HAコントローラ120Bは、ストレージデバイス又はボリューム130Bの別のセットのオーナー又はコントローラとして指定され得る第2のシステムノードを動作させてもよい。容易に分かるように、HAコントローラのコントローラ及びストレージデバイス構成に関する他の特徴及び詳細も含まれてもよい。
次に図2に進むと、複数のモジュールを有する例示的なHAコントローラが同様にブロック図形式で示されている。コントローラ220は、図1に前述したHAペアのようなHAペアの一部でもよい。複数のポート及びリンクは、コントローラ220を複数の他のシステムコンポーネントに結合してもよい。例えば、ポート221及び関連するリンク225は、別の相手又はペアのHAコントローラに結合してもよく、ポート222及び関連するリンク213は、別のホストに結合してもよく、ポート226及び関連するリンク227は、別のストレージアレイ又はストレージデバイスのアグリゲートに結合してもよい。HAコントローラ220内の複数のモジュール240、250、260、270は、無停止の自動ヘッドスワップ手順に関連するものを含む複数の機能を実現してもよい。それぞれのモジュール240、250、260、270は、必要に応じて、他のモジュール及び/又は様々な別のシステム構成要素と通信又は相互作用するように適合されてもよい。
例えば、第1のモジュール240は、別のホストサーバから受信したコマンドに基づいて第1のアグリゲート又はボリュームに構成された第1の複数のストレージデバイスのそれぞれへの読み書きを制御する第1のシステムノードの動作を実現するように適合されてもよい。第2のモジュール250は、高可用性ペアの構成において別の第2のコントローラとの相互作用を実現するように適合されてもよい。この場合も同様に、別の第2のコントローラは、別のホストサーバから受信したコマンドに基づいて、第2のアグリゲート又はボリュームに構成された第2の複数のストレージデバイスのそれぞれへの読み書きを制御する第2のシステムノードを動作させるように構成されてもよい。第3のモジュール260は、後に第2のシステムノードを動作させる別の第3のコントローラで、別の第2のコントローラの自動ホットスワップ交換を実現するように適合されてもよい。これは、第3のシステムコントローラが別の第3のコントローラとの別の第2のコントローラの自動ホットスワップ交換の間に第2のシステムノードの制御を引き継ぐことにより少なくとも部分的に実現される。更に、第2又は第3のモジュールのうち少なくとも1つは、自動ホットスワップ交換の間に自動的にシステム識別子を別の第3のコントローラと交換するように更に適合されてもよい。第4のモジュール270は、別の第3のコントローラが自動ホットスワップの間に故障した場合、自動ホットスワップ交換を中止し、ストレージユニットの第2のアグリゲート又はボリュームの全ての制御を第1のシステムコントローラに戻すことを実現するように適合されてもよい。モジュール240、250、260、270の様々な詳細及び特徴は、以下に詳細に提供される。
分かるように、HAコントローラペアを有する典型的なネットワークに基づくストレージシステムは、一般的に、ディスクがコントローラにより動作されるノードに割り当てられたときに、適切なコントローラの“nvram_system_ID”又は他の適切なシステム識別子をそのディスクの所有権部分又は領域に書き込むことにより動作する。ディスクのこの所有権部分又は領域は、特に如何なる数の適切な方法で呼ばれてもよいが、ここでは、説明の目的でディスクの“SANOWN”領域又は部分と呼ばれる。この処理は、割り当てられたディスクについて行われ、どのノード又はコントローラがディスクを所有しているかのマッピングを確立するのに役立てることができる。この同じ情報はまた、アグリゲートのオーナーを識別するRAIDラベルにキャッシュされる。従って、NVRAMカード、コントローラヘッド及び/又は全体のコントローラが交換(すなわち、ヘッドスワップ)されると常に、これらのディスク上の所有権も変更する。
コントローラのフェイルオーバ(CFO:controller failover)、ストレージのフェイルオーバ(SFO:storage failover)又は双方を含んでもよいヘッドスワップを行う1つの手法は、まず交換ノードをメンテナンスモードにブートすることである。これは、典型的には、新たなコントローラのNVRAM ID又は他の識別子はディスクに格納された識別子とは異なるため、交換されたコントローラが通常の動作で有効にブートアップできない理由で行われる。交換ノード及び新たなコントローラはメンテナンスモード及びオフラインであるため、ディスク再割り当て動作は、古い交換されるコントローラにより所有されるディスクのリストを取得し、新たなコントローラの識別子を反映するようにそれぞれのSANOWNを変更するように実行されてもよい。前述のように、この処理は、影響を受けたディスクのストレージが全体の処理の間に利用不可能であるという点で中断がある。
このような中断は、例えばHAペアの残りのコントローラに対して、交換されている除去するコントローラにより所有されたストレージデバイス又はボリュームを引き継がせることにより、回避されてもよい。例えば、コントローラのHAペアがコントローラA及びBを含み、コントローラBは、新たなコントローラCに交換される場合、Aは、BがCにより交換されている間に、Bにより所有されたストレージの引き継ぎを実行する。BからCへのディスク再割り当ては、Aが対象のストレージを制御している間に実行され、その後、復旧がAからCに実行される。前述のように、この処理は、自分のセットの問題を生じ得る。
例えば、SANOWNは、ディスク所有権を扱う役目をする主モジュールでもよく、RAIDもディスク所有権をキャッシュしてもよい。所有権の不一致に対処するために、これらの2つのレイヤの間にプロトコルが展開されている。ディスクの所有権が変更すると常に、SANOWNは、そのディスクの偽の削除及び追加イベントをエミュレートし、また、通知をRAIDに送信する。RAIDは、このような通知を受信すると、適切な動作を行う。典型的には、RAIDプロトコルは、アグリゲートに属するディスクが同じノードにより所有されることを要求する。これらのディスクの1つのディスク所有権が変更すると、そのディスクはアグリゲートから除去されるべきである。或るシーケンスでは、ディスク再割り当ては、相手のディスクの所有権をBからCに変更させ、次に、アグリゲートの一部であるものも含む、ディスクの削除及び追加イベントを生成する。これは、RAIDに対して、アグリゲートがそのディスクの全てを見失うことを想定させてもよく、Aにおけるパニックを生じる可能性がある。これは、元の基本的な処理よりも大きい中断を生じる可能性がある。
この特定の問題は、ディスク再割り当て処理の間に通知を送信しないことにより回避され得るが、このような回避は、SANOWN及びRAID所有権の値が異なるという実質的又は完全に不一致の状態にする。異なる所有権の値が実現されているため、RAIDによる内部スキャンを起動するいずれかの動作がシステムパニックを生じるという点で、この不一致の状態は不安定になる可能性がある。更に、前述の回避はまた、ユーザが手動で新たなコントローラのシステム識別子を入力するというような、かなりの量の手動の介入を必要とする。このような処理は、不便あり、新たなシステムの誤入力によるユーザエラーの傾向もある。これは、試みられたヘッドスワップ処理の故障を生じる。何れの場合であっても、更に自動の高信頼性の無停止の更に良いヘッドスワップ手法が好ましい。
このような改善した手法は、所有権をRAIDレイヤにキャッシュし続けつつ、所有権の不一致を改善した方法で調整する。これらの手法は、一般的に、ヘッドスワップ処理の早期にシステム識別子を交換すること、アグリゲートがオフラインのときに所有権を更新すること、2つの相手が存在する過渡的な条件に対処するノードの機能、及び更に信頼性の高いエラー回復機構により特徴付けられ得る。特定の例では、改善したヘッドスワップ手順は、次の5つの一般的な順序のステップを含んでもよい。
・コントローラCでのヘッドスワップ検出
・コントローラAでのヘッドスワップ検出
・CFO復旧の間の所有権の更新
・CFO復旧の後のコントローラCのブートシーケンス
・SFO復旧の間の所有権の更新
この場合も同様に、これらのステップにおいて、コントローラ“A”及び“B”がHAペアを構成するシステムを反映し、システムコントローラ“B”は新たな又は交換システムコントローラ“C”により交換されており、次に、システムコントローラ“C”は新たなHAペアを形成するように“A”とペアになる。
コントローラCでのヘッドスワップ検出に関して、新たにインストールされたシステムコントローラCがブートアップし、コントローラCにより所有されるコントローラCに取り付けられた何らかのディスクが存在するか否かを検出するために、SANOWNを調べる。取り付けられたディスクがコントローラCにより所有されていない場合、この新たなコントローラは通常通りリブートする。しかし、改善したヘッドスワップ手順では、コントローラCは、リブートの決定を行う前に、そのHA相手のコントローラ(すなわち、コントローラA)の状態を検査する。従って、コントローラCは、相互接続を介してコントローラAの状態を読み取り、コントローラA(すなわち、そのHA相手)が引き継ぎモードにあるか否かを決定する。相互接続がダウンしている場合又はコントローラAが引き継ぎモードではない場合、コントローラCは通常通りリブートする。
コントローラAが引き継ぎモードにあると決定された場合、コントローラCは、“復旧待ち”状態になり、リブートしない。コントローラAからの復旧を待機しつつ、新たなコントローラCは、相互接続を介してそのシステム識別子をコントローラAに送信し続ける。コントローラCが復旧を待機している間、コントローラAは、Aにより引き継がれる前にどのコントローラがAにとってHA相手のコントローラであったかを示すシステム識別子をコントローラCに送信してもよい。コントローラAにより送信されたこのシステム識別子がコントローラCのシステム識別子に一致しない場合、コントローラCは、除去されたコントローラBの交換コントローラであり、ヘッドスワップ検出手順が進行中であることを決定することができる。
コントローラAでのヘッドスワップ検出に関して、コントローラAが引き継ぎモードにある間に、残りのシステムコントローラAは、相互接続リンクでそのHA相手の状態を繰り返しポーリングする。従って、コントローラAは、相互接続を介してコントローラCの状態を読み取り、コントローラC(すなわち、そのHA相手)が“復旧待ち”モードにあるか否かを決定する。コントローラCにとってのHA相手(すなわち、この場合のコントローラC)は、“復旧待ち”モード又は状態にあることが決定された場合、且つ、HA相手が元のHA相手(すなわち、古いコントローラB)の識別子に一致しないシステム識別子を送信した場合、コントローラAは、その現在のHA相手のコントローラが交換コントローラであり、ヘッドスワップ手順が進行中であることを決定することができる。
次に、新たなコントローラCがその“復旧待ち”モード又は状態にある間に、残りのコントローラAは、復旧手順を開始する。この復旧手順は、除去されたコントローラBにより元々は所有されており、現時点で残りのコントローラAにより引き継がれているストレージデバイス又はボリュームを受け取り、これらのストレージユニットをコントローラCに提供するように定められる。この復旧は2つの段階に分割されてもよい。まず、復旧のCFO段階は、CFOアグリゲートがコントローラAでオフラインにされ、コントローラCに復旧されることを含んでもよく、その後、コントローラCが更にブートアップする。コントローラCが完全にブートアップすると、復旧の次のSFO段階は、SFOアグリゲートがコントローラAでオフラインにされ、コントローラCに復旧されることを含んでもよい。
CFO復旧の間の所有権の更新に関して、コントローラAは、Bにより所有されたCFOアグリゲートをオフラインにし、復旧処理を開始する。この処理において、コントローラAは、CFOアグリゲートディスクのSANOWN所有権をBからCに変更し、コントローラA自体のHA相手のシステム識別子をCに更新する。重要なことに、コントローラAがコントローラB及びコントローラCの双方により現在所有されているディスクの混合(mixture)に対処することができるように、コントローラAは、古いコントローラBのシステム識別子の認識を保持する。このブートアップの間に、コントローラCは、ローカルのヘッドスワップ状態にあることを認識するようになり、CFOアグリゲートディスクのRAID所有権もCに更新される。
CFO復旧後のコントローラCのブートシーケンスに関して、コントローラCは、そのHA相手(すなわち、コントローラA)が引き継ぎモードから出た後に、コントローラCのシステム識別子を反映する所有権の値を有するディスクを見つけ続ける。コントローラCは、何も発見されなくなるまでこのようなディスクを見つけ続ける。ローカルのヘッドスワップ処理が進行中のブートアップの間に、コントローラCは、RAID所有権をそのシステム識別子に更新する。これが完了した後に、影響を受けたストレージデバイス又はボリュームは、オンラインに戻されてもよく、コントローラCのブートアップが続いてもよい。コントローラCが完全にブートアップすると、適用可能ないずれかのSFOアグリゲートディスクを受け入れる用意ができる。
最後に、SFO復旧の間の所有権の更新に関して、コントローラCが完全にブートアップすると、SFO復旧が起動される。これは、コントローラAがコントローラBにより前に所有されていたSFOアグリゲートを1つずつオフラインにし、SFOアグリゲートの全てのディスクのSANOWN及びRAID所有権をCに更新することを含んでもよい。コントローラAが全てのSFOアグリゲートディスクをその新たなHA相手のコントローラCに復旧した後で、Aは、その古い相手のコントローラBのシステム識別子について忘れる。コントローラAは、相手のヘッドスワップ情報をクリアし、コントローラCは、ローカルのヘッドスワップ情報をクリアし、ヘッドスワップが完了する。
この場合も同様に、コントローラAは、第1のアグリゲートに構成された第1の複数のストレージデバイスのそれぞれへの読み書きを制御する第1のシステムノードの動作を実現するように適合された第1のモジュールと、高可用性ペアの構成における別の第2のコントローラとの相互作用を実現するように適合された第2のモジュールとを含むような、多くの方法における典型的なHAペアのコントローラでもよい。前述のように、コントローラAの第3のモジュールは、別の第2のコントローラの自動ホットスワップ交換の間に第2のシステムノードの制御を引き継ぐことにより、別の第3のコントローラで別の第2のコントローラの自動ホットスワップ交換を実現するように適合されてもよい。
改善したヘッドスワップ手順の様々な利点が実現されてもよい。1つの利点は、ほとんど又は実質的に全てのヘッドスワップ手順が自動化されることを提供し、これは、手動のユーザ介入及びこのような行為から生じ得る可能性のあるエラーを低減又は除去し得る。このことは、ヘッドスワップ処理におけるHAコントローラの間のシステム識別子の早期の交換により少なくとも部分的に実現されてもよい。更に、ストレージオブジェクト又はアグリゲートが短い間にオフラインであるときにディスク所有権の変更が実行され、このことは、データ信頼性を改善しつつエラーを最小化する。他の利点は、古いコントローラシステムの識別子及び新たなコントローラシステムの識別子が永続的にシステムに記憶されることを提供し、このことは、ヘッドスワップ手順の間のいずれかのノードにおける故障が正常に扱われ得るという点で改善したエラー回復を可能にする。
このようなエラー回復は、ヘッドスワップ手順の間にいずれかのノードにおける故障が永続的なデータ停止を生じないことを確保し得る。このようなエラー回復のための適切なプロトコル又はルールは、例えば、コントローラCがCFO復旧の後であるがヘッドスワップが完了する前に故障することを含んでもよい。このような状況において、コントローラAは、影響を受けたノードの引き継ぎを再び実行し、SANOWN/RAID所有権の全てを一貫した状態に戻してもよい。従って、一貫した状態は、所有権をBに戻すことを含み、引き継ぎ及びデータが再びコントローラAにより提供される。ある時間の後に、コントローラC又は他の交換コントローラがインストールされ、ブートアップされる。そのときに、新規のヘッドスワップ周期が行われる。コントローラAに関して、このようなエラー回復は、例えば、コントローラCが自動ホットスワップの間に故障したときに、自動ホットスワップ交換を中断し、影響を受けたアグリゲートの全ての制御をコントローラAに戻すことを実現するように適合された第4のモジュールにより制御されてもよい。
他のエラー回復の例として、コントローラAは、CFO復旧の後であるがヘッドスワップが完了する前に、場合によっては故障することがある。このような状況では、新たなコントローラCが引き継いでもよい。コントローラCは、引き継ぎの一部として、唯一の相手(すなわち、コントローラA)のみに対処する必要があるため、コントローラCは、古いコントローラBにより前に所有されていた残りのアグリゲートの所有権のクリーンアップを行う(すなわち、ディスク所有権をBからCに変更する)。
次に図3A〜3Cを参照すると、引き継ぎ及び復旧手順を受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な処理が、ブロック図及びテーブル形式で示されている。図3Aは、引き継ぎ前の構成300を示しており、A及びBは、HAペアの2つのノードであり、AがBを引き継ぐ。引き継ぎ前のBのCFO及びSFOアグリゲートの所有権は、全ての値について“B”としてテーブルに反映されている。次に、図3Bは、引き継ぎ後の構成302を示しており、AがBのボリュームを引き継いでいる。図示のように、SFOアグリゲートのSANOWN現在オーナー及びRAIDオーナーは、BからAに変更している。次に、図3Cは、AからBへの復旧中の構成304を示している。このような復旧は2段階の処理であり、必要に応じて、全てのCFOアグリゲートが一緒に復旧され、必要に応じて、SFOアグリゲートが1つずつ復旧されることが続く。この特定の構成304から分かるように、CFOアグリゲートの所有権に変更は存在しないが、CFOアグリゲートはAからBに変更される。
図4A〜4Cは、ヘッドスワップを受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な処理をブロック図及びテーブル形式で示している。容易に分かるように、図4A〜4Cに示す図及びフォーマットは、除去するコントローラBが新たなコントローラCによりヘッドスワップされる通常の処理を反映する。図4Aは、Bに属するディスクの所有権を新たなコントローラCに変更するためにコントローラAで“ディスク再割り当て”を実行することを含む構成400を示している。図4Bは、図4Aによりディスクが再割り当てされた後に復旧を発行することを含む構成402を示している。特に、ブートアップしている新たなコントローラは、SANOWN及びRAID所有権の間の不一致を検出してもよく、SANOWN所有権を一致させるようにRAID所有権を更新してもよい。従って、コントローラCでの所有権の変更は、RAID所有権の値がBからCに更新されることを含む。図4Cは、引き継ぎコントローラがSANOWN及びRAID所有権を相互に一致させるように更新するSFO復旧の構成404を示している。この場合、SFO所有権の値はAからCに変更される。
次に図5A〜5Bに続き、別の実施例によるヘッドスワップを受けているHAコントローラペアによるストレージデバイスの所有権の指定の例示的な別の処理が同様にブロック図及びテーブル形式で示されている。5つの一般的なステップ及びその詳細における前述の改善したヘッドスワップ処理により、図5Aは、改善した復旧手順を含む構成500を提供する。この手順において、SANOWN及びRAID所有権は復旧中に変更される。図示のように、コントローラAでの復旧中に、SANDOWNホーム及び現在オーナーはBからCに変更される。また、コントローラCでのブートアップ中に、RAIDオーナーはBからCに変更される。図5Bは、コントローラCが完全にブートアップした後にSFOアグリゲートが復旧する構成502を示している。図示のように、SANOWN及びRAID所有権は、全てCを反映するように変更される。
この場合も同様に、前述の改善したヘッドスワップ手順は、無停止であり、自動的であり、信頼性が高い。これらの全ては、HAペアのコントローラの間のシステム識別子の早期の交換、HAペアのコントローラがヘッドスワップが進行中であることを認識できること、及び識別子の不一致又は他の問題が生じたときにコントローラを単にリブートすることの拒否に少なくとも部分的によるものである。
次に図6〜8を参照すると、前述の改善した処理及び特徴に従ってヘッドスワップを実行する様々な方法が提供される。まず、図6は、影響を受けたHAペアの残りのコントローラの観点からネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の方法のフローチャートを提供する。特に、このような方法は、前述に詳細に提供される様々なネットワーク、システム、コントローラ、ストレージデバイス及びこれらの様々な特徴のいずれかの使用を含んでもよい。更に、このフローチャートに示す各方法のステップは必ずしも必要であるとは限らず、ここに示されない更なるステップが含まれてもよいことが容易に分かる。更に、或る実施例では、ステップの順序は、必要に応じて再配置されてもよい。例えば、或る場合には、ステップ610は、ステップ612の後に行われてもよく、ステップ612と同時に行われてもよい。
開始ステップ600で始まり、処理ステップ602において、HAペアの第1のコントローラは、引き継ぎモードで動作する。次の判断ステップ604において、第1のコントローラが属するHAペアからの相手のコントローラからシステム識別子が受信されたか否かの調査が行われる。そうでない場合、方法は処理ステップ602に戻り、第1のコントローラは引き継ぎモードで動作し続ける。しかし、ステップ604においてペアのコントローラからシステム識別子が受信された場合、方法は判断ステップ606に進み、受信したシステム識別子が第1のシステムコントローラのファイル上に既にある相手のシステム識別子と一致するか否かの調査が行われる。システム識別子が一致した場合、方法は処理ステップ608に進み、ヘッドスワップが行われていないことが決定され、古いHAペアのコントローラへの通常の復旧手順が行われる。次に、方法はステップ608から終了ステップ624に進む。
しかし、受信したシステム識別子が判断ステップ606においてファイル上に既にあるものと一致しない場合、方法は処理ステップ610に進み、ヘッドスワップ処理又はモードが進行中であることが認識又は“検出”される。処理ステップ612において、古い交換されたコントローラからのシステム識別子は、新たなコントローラに送信され、その後、判断ステップ614において、復旧手順が開始されたか否かについて調査が行われる。そうでない場合、復旧が実際に開始されるまで、方法はステップ614にループバックする。復旧が開始された後に、方法はステップ616に進み、新たなコントローラのシステム識別子が第1のコントローラの相手のメールボックス又は同様のエントリに書き込まれる。その後、処理ステップ618において、第1のコントローラは、新たなシステム識別子の影響を受けたディスク所有権を更新する。第1のコントローラの状態は、古い交換されたコントローラにより前に所有されたディスク又はボリュームの復旧を受けたものとして、新たなコントローラの存在及びその状態を反映するように適切に更新される。処理ステップ622においてヘッドスワップモードを出て、HAコントローラペアの通常の動作及びそれぞれ制御されるボリュームが行われる。方法は終了ステップ624で終了する。
次に、図7は、新たなコントローラの観点からネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の方法のフローチャートを提供する。この場合も同様に、この方法は、前述に詳細に提供される様々なネットワーク、システム、コントローラ、ストレージデバイス及びこれらの様々な特徴のいずれかの使用を含んでもよい。示される各ステップは必ずしも必要であるとは限らず、更なるステップが含まれてもよく、或る実施例ではステップの順序が必要に応じて再配置されてもよいことが容易に分かる。開始ステップ700で始まり、処理ステップ702において、新たなコントローラ又は交換コントローラは、その新たな位置でブートアップし始める。ブート処理の早期に、判断ステップ704において、実際に新たなコントローラにより所有されている新たなコントローラに取り付けられた何らかのディスクが存在するか否かの調査が行われる。そうである場合、方法は処理ステップ706に進み、RAIDアシミレーション及び通常のブート処理が行われる。この時点で引き継ぎ又は普及は生じず、方法はステップ706から終了ステップ730に進む。
判断ステップ704においてコントローラにより所有されるディスクが実際に存在しない場合、方法は判断ステップ708に進み、HAペアの相手のコントローラが引き継ぎモードであるか否かについて調査が行われる。そうでない場合、方法は処理ステップ702に戻り、ステップ702〜704が繰り返される。判断ステップ708において相手のコントローラが引き継ぎモードであると決定された場合、方法は処理ステップ710に進み、新たなコントローラは、そのシステム識別子をペアの相手のコントローラに送信する。ステップ712において、システム識別子がそれに応じて相手のコントローラから返信されたか否かの調査が行われる。そうでない場合、システム識別子が相手のコントローラから実際に返信されるまで、方法は処理ステップ710にループバックする。この場合も同様に、相手のコントローラからのこのシステム識別子は、引き継ぎモードが生じる前に、現在の引き継ぎモードにある相手のコントローラとペアになっていたコントローラのシステム識別子を表す。
システム識別子がステップ712において受信された後に、以下の判断ステップ714において、受信したシステム識別子がブートアップ中のコントローラのシステム識別子と一致するか否かの調査が行われる。システム識別子が一致する場合、ブートアップ中のコントローラは、それが元の相手のコントローラであり、ヘッドスワップは行われていないことを認識し、方法は処理ステップ702に戻る。しかし、システム識別子が一致しない場合、方法は処理ステップ716に進み、ヘッドスワップが進行中であることが認識又は“検出”される。そして復旧が待機される。次の処理ステップ718において、復旧処理が開始され、方法は処理ステップ720に進み、全てのディスクが発見される。次の処理ステップ722において、アグリゲートの所有権がディスク所有権に一致するように変更され、その後、処理ステップ724においてヘッドスワップが完了し、ヘッドスワップモードを出る。方法は終了ステップ726で終了する。
最後に図8を参照すると、ネットワークに基づくストレージシステムにおいてコントローラを交換する例示的な無停止の全体の方法のフローチャートが提供される。特に、このような方法は、前述の様々なネットワークに基づくストレージシステムコントローラ又は他のコンポーネントの使用又は動作を含んでもよい。この場合にも同様に、このフローチャートに示す各方法のステップは必ずしも必要であるとは限らず、ここに示されない更なるステップが含まれてもよいことが容易に分かる。更に、ステップの正確な順序は様々な用途に応じて変更されてもよい。例えば、ステップ802及び804は逆になってもよく、同時に実行されてもよい。
開始ステップ800で始まり、処理ステップ802において、ヘッドスワップ又はシステムコントローラのホットスワップの存在が新たに導入された(例えば、交換)HAペアのコントローラで検出される。処理ステップ804において、ヘッドスワップ又はホットスワップの存在は、元のHAペアのコントローラでも検出され、その後、処理ステップ806において、元のコントローラは、新たに導入された相手のコントローラにその状態をポーリングする。以下の処理ステップ808において、元のコントローラは、復旧待ちとして新たな相手のコントローラの状態を検出し、その後、処理ステップ810において、元のコントローラは、新たな相手のコントローラのシステム識別子を受信する。
次の処理ステップ812において、ストレージデバイスのアグリゲートにおける各ストレージデバイスの第1の所有権部分は、アグリゲートの各ストレージデバイスが新たに導入されたコントローラ又は交換コントローラにより現在所有されていることを反映するように更新される。処理ステップ814において、新たに導入されたコントローラはブートアップされ、その後、処理ステップ816において、ストレージデバイスのそれぞれの第2の所有権部分が、新たに導入されたコントローラの所有権を反映するように更新される。方法は終了ステップ818で終了するように進む。示されていない更なるステップが含まれてもよい。例えば、元のコントローラが古い交換されたコントローラの識別子を新たに導入されたコントローラに送信すること及び/又はヘッドスワップ又は復旧手順を開始する前に受信した識別子が格納された識別子に一致するか否かを決定することが含まれてもよい。他の方法のステップは、必要に応じて、図6及び7に示す方法からの前述のステップの1つ以上を含んでもよい。
前述の発明は、明瞭性及び理解の目的で例示として詳細に記載されているが、前述の発明は、本発明の要旨又は基本的特徴を逸脱することなく、複数の他の特定の変形例及び実施例に具現されてもよいことが分かる。様々な変更及び変形が行われてもよく、本発明は、前述の詳細により限定されず、むしろ特許請求の範囲により規定されることが分かる。

Claims (18)

  1. コントローラの交換の方法を実行するための命令を格納した機械実行可能コードを有する機械読み取り可能媒体を含むメモリと、
    前記メモリに結合されたプロセッサと
    を有するネットワークストレージコンピューティングデバイスであって、
    前記プロセッサは、前記機械実行可能コードを実行し、前記プロセッサに対して、
    複数のストレージデバイスに関連するコントローラコンピューティングデバイスからシステム識別子データを受信させ、前記受信したシステム識別子データは、前記複数のストレージデバイスに対する所有権を示し、
    前記受信したシステム識別子データと相手のシステム識別子データとを比較させ、
    前記受信したシステム識別子データと前記相手のシステム識別子データとの間の比較が、前記受信したシステム識別子データが前記相手のシステム識別子データに一致しないことを示す場合、前記相手のシステム識別子データを第2のコントローラコンピューティングデバイスに送信させ、
    前記相手のシステム識別子データを送信した後に、復旧手順が前記第2のコントローラコンピューティングデバイスで開始されているときを決定するために、前記第2のコントローラコンピューティングデバイスにポーリングさせ、前記復旧手順は、前記コントローラコンピューティングデバイスから前記第2のコントローラコンピューティングデバイスに前記複数のストレージデバイスの所有権を移すことを有し、
    前記復旧手順が開始された後に、前記受信したシステム識別子データでコントローラの状態を更新させ、前記更新されたコントローラの状態は、前記第2のコントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示すように構成されるネットワークストレージコンピューティングデバイス。
  2. 前記コントローラの状態の前記更新は、前記第2のコントローラコンピューティングデバイスがオンラインで利用可能な状態の間に実行され、前記第2のコントローラコンピューティングデバイスは、前記オンラインで利用可能な状態のときにコマンドを受信可能である、請求項1に記載のデバイス。
  3. 機械実行可能コードを有し、方法を実行するための命令を格納した機械読み取り可能媒体であって、
    前記機械実行可能コードは、少なくとも1つの機械により実行された場合、前記機械に対して、
    複数のストレージデバイスに関連するコントローラコンピューティングデバイスからシステム識別子データを受信させ、前記受信したシステム識別子データは、前記複数のストレージデバイスに対する所有権を示し、
    前記受信したシステム識別子データと相手のシステム識別子データとを比較させ、
    前記受信したシステム識別子データと前記相手のシステム識別子データとの間の比較が、前記受信したシステム識別子データが前記相手のシステム識別子データに一致しないことを示す場合、前記相手のシステム識別子データを第2のコントローラコンピューティングデバイスに送信させ、
    前記相手のシステム識別子データを送信した後に、復旧手順が前記第2のコントローラコンピューティングデバイスで開始されているときを決定するために、前記第2のコントローラコンピューティングデバイスにポーリングさせ、前記復旧手順は、前記コントローラコンピューティングデバイスから前記第2のコントローラコンピューティングデバイスに前記複数のストレージデバイスの所有権を移すことを有し、
    前記復旧手順が開始された後に、前記受信したシステム識別子データでコントローラの状態を更新させ、前記更新されたコントローラの状態は、前記第2のコントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示す機械読み取り可能媒体。
  4. 前記コントローラの状態の前記更新は、前記第2のコントローラコンピューティングデバイスがオンラインで利用可能な状態の間に実行され、前記第2のコントローラコンピューティングデバイスは、前記オンラインで利用可能な状態のときにコマンドを受信可能である、請求項3に記載の媒体。
  5. ネットワークストレージコンピューティングデバイスにより、複数のストレージデバイスに関連するコントローラコンピューティングデバイスからシステム識別子データを受信するステップであり、前記受信したシステム識別子データは、前記複数のストレージデバイスに対する所有権を示すステップと、
    前記ネットワークストレージコンピューティングデバイスにより、前記受信したシステム識別子データと相手のシステム識別子データとを比較するステップと、
    前記ネットワークストレージコンピューティングデバイスにより、前記受信したシステム識別子データと前記相手のシステム識別子データとの間の比較が、前記受信したシステム識別子データが前記相手のシステム識別子データに一致しないことを示す場合、前記相手のシステム識別子データを第2のコントローラコンピューティングデバイスに送信するステップと、
    前記ネットワークストレージコンピューティングデバイスにより、前記相手のシステム識別子データを送信した後に、復旧手順が前記第2のコントローラコンピューティングデバイスで開始されているときを決定するために、前記第2のコントローラコンピューティングデバイスにポーリングするステップであり、前記復旧手順は、前記コントローラコンピューティングデバイスから前記第2のコントローラコンピューティングデバイスに前記複数のストレージデバイスの所有権を移すことを有するステップと、
    前記ネットワークストレージコンピューティングデバイスにより、前記復旧手順が開始された後に、前記受信したシステム識別子データでコントローラの状態を更新するステップであり、前記更新されたコントローラの状態は、前記第2のコントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示すステップと
    を有する方法。
  6. 前記ネットワークストレージコンピューティングデバイスにより、前記第2のコントローラコンピューティングデバイスから相手のコントローラの状態を取得するステップであり、前記相手のコントローラの状態は、前記復旧手順が開始されていること又は前記第2のコントローラコンピューティングデバイスが前記復旧手順を待っていることを有する、請求項5に記載の方法。
  7. 前記コントローラの状態の前記更新は、前記第2のコントローラコンピューティングデバイスがオンラインで利用可能な状態の間に実行され、前記第2のコントローラコンピューティングデバイスは、前記オンラインで利用可能な状態のときにコマンドを受信可能である、請求項5に記載の方法。
  8. 前記ネットワークストレージコンピューティングデバイスにより、前記システム識別子データが前記相手のシステム識別子データに一致する場合、システム識別子データの少なくとも1つの問い合わせを前記第2のコントローラコンピューティングデバイスに送信するステップを更に有する、請求項5に記載の方法。
  9. 前記ネットワークストレージコンピューティングデバイスにより、前記システム識別子データを前記第2のコントローラコンピューティングデバイスに送信した後に、前記第2のコントローラコンピューティングデバイスから承認を取得するステップを更に有する、請求項5に記載の方法。
  10. 前記複数のストレージデバイスは、前記コントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示すストレージ所有権データを有し、
    前記ネットワークストレージコンピューティングデバイスにより、前記複数のストレージデバイスが前記第2のコントローラコンピューティングデバイスにより所有されることを示すように、前記複数のストレージデバイスの前記ストレージ所有権データを更新するステップであり、前記ストレージ所有権データは、前記複数のストレージデバイスのそれぞれの個々のデバイスデータ又は前記複数のストレージデバイスのアグリゲーションのRAID(Redundant Array of Independent Disks)データを有するステップを更に有する、請求項5に記載の方法。
  11. 前記プロセッサは、
    前記第2のコントローラコンピューティングデバイスから相手のコントローラの状態を取得し、前記相手のコントローラの状態は、前記復旧手順が開始されていること又は前記第2のコントローラコンピューティングデバイスが前記復旧手順を待っていることを有するように、
    前記メモリに格納されたプログラム命令を有するプログラム命令を実行可能であるように更に構成される、請求項1に記載のデバイス。
  12. 前記プロセッサは、
    前記システム識別子データが前記相手のシステム識別子データに一致する場合、システム識別子データの少なくとも1つの問い合わせを前記第2のコントローラコンピューティングデバイスに送信するように、
    前記メモリに格納されたプログラム命令を有するプログラム命令を実行可能であるように更に構成される、請求項1に記載のデバイス。
  13. 前記プロセッサは、
    前記システム識別子データを前記第2のコントローラコンピューティングデバイスに送信した後に、前記第2のコントローラコンピューティングデバイスから承認を取得するように、
    前記メモリに格納されたプログラム命令を有するプログラム命令を実行可能であるように更に構成される、請求項1に記載のデバイス。
  14. 前記複数のストレージデバイスは、前記コントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示すストレージ所有権データを有し、
    前記プロセッサは、
    前記複数のストレージデバイスが前記第2のコントローラコンピューティングデバイスにより所有されることを示すように、前記複数のストレージデバイスの前記ストレージ所有権データを更新し、前記ストレージ所有権データは、前記複数のストレージデバイスのそれぞれの個々のデバイスデータ又は前記複数のストレージデバイスのアグリゲーションのRAID(Redundant Array of Independent Disks)データを有するように、
    前記メモリに格納されたプログラム命令を有するプログラム命令を実行可能であるように更に構成される、請求項1に記載のデバイス。
  15. 機械実行可能コードを有し、方法を実行するための命令を更に格納し、
    前記機械実行可能コードは、少なくとも1つの機械により実行された場合、前記機械に対して、
    前記第2のコントローラコンピューティングデバイスから相手のコントローラの状態を取得させ、前記相手のコントローラの状態は、前記復旧手順が開始されていること又は前記第2のコントローラコンピューティングデバイスが前記復旧手順を待っていることを有する、請求項3に記載の媒体。
  16. 機械実行可能コードを有し、方法を実行するための命令を更に格納し、
    前記機械実行可能コードは、少なくとも1つの機械により実行された場合、前記機械に対して、
    前記システム識別子データが前記相手のシステム識別子データに一致する場合、システム識別子データの少なくとも1つの問い合わせを前記第2のコントローラコンピューティングデバイスに送信させる、請求項3に記載の媒体。
  17. 機械実行可能コードを有し、方法を実行するための命令を更に格納し、
    前記機械実行可能コードは、少なくとも1つの機械により実行された場合、前記機械に対して、
    前記システム識別子データを前記第2のコントローラコンピューティングデバイスに送信した後に、前記第2のコントローラコンピューティングデバイスから承認を取得させる、請求項3に記載の媒体。
  18. 前記複数のストレージデバイスは、前記コントローラコンピューティングデバイスによる前記複数のストレージデバイスの所有権を示すストレージ所有権データを有し、
    機械実行可能コードを有し、方法を実行するための命令を更に格納し、
    前記機械実行可能コードは、少なくとも1つの機械により実行された場合、前記機械に対して、
    前記複数のストレージデバイスが前記第2のコントローラコンピューティングデバイスにより所有されることを示すように、前記複数のストレージデバイスの前記ストレージ所有権データを更新させ、前記ストレージ所有権データは、前記複数のストレージデバイスのそれぞれの個々のデバイスデータ又は前記複数のストレージデバイスのアグリゲーションのRAID(Redundant Array of Independent Disks)データを有する、請求項3に記載の媒体。
JP2015520366A 2012-06-25 2013-06-24 ネットワークストレージシステムにおける無停止のコントローラの交換 Active JP6001773B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/532,312 2012-06-25
US13/532,312 US9367412B2 (en) 2012-06-25 2012-06-25 Non-disruptive controller replacement in network storage systems
PCT/US2013/047335 WO2014004381A2 (en) 2012-06-25 2013-06-24 Non-disruptive controller replacement in network storage systems

Publications (2)

Publication Number Publication Date
JP2015525424A JP2015525424A (ja) 2015-09-03
JP6001773B2 true JP6001773B2 (ja) 2016-10-05

Family

ID=49775482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015520366A Active JP6001773B2 (ja) 2012-06-25 2013-06-24 ネットワークストレージシステムにおける無停止のコントローラの交換

Country Status (5)

Country Link
US (1) US9367412B2 (ja)
EP (1) EP2864888B1 (ja)
JP (1) JP6001773B2 (ja)
CN (1) CN104718536B (ja)
WO (1) WO2014004381A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160011929A1 (en) * 2014-07-08 2016-01-14 Netapp, Inc. Methods for facilitating high availability storage services in virtualized cloud environments and devices thereof
US9632890B2 (en) 2014-07-08 2017-04-25 Netapp, Inc. Facilitating N-way high availability storage services
US9507678B2 (en) 2014-11-13 2016-11-29 Netapp, Inc. Non-disruptive controller replacement in a cross-cluster redundancy configuration
TWI561028B (en) * 2015-06-12 2016-12-01 Synology Inc Method for managing a storage system, and associated apparatus
US10855515B2 (en) * 2015-10-30 2020-12-01 Netapp Inc. Implementing switchover operations between computing nodes
US10872074B2 (en) 2016-09-30 2020-12-22 Microsoft Technology Licensing, Llc Distributed availability groups of databases for data centers
DE102017100618A1 (de) * 2017-01-13 2018-07-19 HELLA GmbH & Co. KGaA Kontrollsystem für ein Kraftfahrzeug, Kraftfahrzeug, Verfahren zur Kontrolle eines Kraftfahrzeugs, Computerprogrammprodukt und computerlesbares Medium
US10732903B2 (en) * 2018-04-27 2020-08-04 Hewlett Packard Enterprise Development Lp Storage controller sub-LUN ownership mapping and alignment
US10884888B2 (en) 2019-01-22 2021-01-05 International Business Machines Corporation Facilitating communication among storage controllers
CN109901954B (zh) * 2019-02-25 2022-08-16 浙江大华技术股份有限公司 存储设备和资源管理方法
US11068279B2 (en) 2019-03-04 2021-07-20 International Business Machines Corporation Concurrent replacement of distributed conversion and control assembly

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412045B1 (en) * 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US6219697B1 (en) 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
US5975738A (en) 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
US7032029B1 (en) 2000-07-07 2006-04-18 Schneider Automation Inc. Method and apparatus for an active standby control system on a network
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US6874100B2 (en) * 2001-07-12 2005-03-29 Digi-Data Corporation Raid system with multiple controllers and proof against any single point of failure
US6763398B2 (en) * 2001-08-29 2004-07-13 International Business Machines Corporation Modular RAID controller
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
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
US6941396B1 (en) 2003-02-19 2005-09-06 Istor Networks, Inc. Storage controller redundancy using bi-directional reflective memory channel
US20050092727A1 (en) * 2003-03-20 2005-05-05 Fraley Peter D. Independent electronics equipment heater using phase width modulation
US8443119B1 (en) * 2004-02-26 2013-05-14 Symantec Operating Corporation System and method for disabling auto-trespass in response to an automatic failover
US7444541B2 (en) * 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
US7395390B2 (en) * 2006-07-12 2008-07-01 Inventec Corporation System for backing up cache memory in a double backup server structure
CN101202658A (zh) * 2006-12-14 2008-06-18 英业达股份有限公司 多主机系统的服务接管系统及方法
JP4475598B2 (ja) * 2007-06-26 2010-06-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP5187017B2 (ja) * 2008-06-18 2013-04-24 富士通株式会社 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
US9164689B2 (en) 2009-03-30 2015-10-20 Oracle America, Inc. Data storage system and method of processing a data access request
CN101651559B (zh) * 2009-07-13 2011-07-06 浪潮电子信息产业股份有限公司 一种存储服务在双控制器存储系统中故障切换的方法
US20110153905A1 (en) 2009-12-23 2011-06-23 Hitachi, Ltd. Method and apparatus for i/o path switching
US20110231602A1 (en) 2010-03-19 2011-09-22 Harold Woods Non-disruptive disk ownership change in distributed storage systems
US8839030B2 (en) * 2011-09-09 2014-09-16 Lsi Corporation Methods and structure for resuming background tasks in a clustered storage environment
US9037799B2 (en) * 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache

Also Published As

Publication number Publication date
EP2864888A2 (en) 2015-04-29
CN104718536A (zh) 2015-06-17
WO2014004381A3 (en) 2014-04-10
US9367412B2 (en) 2016-06-14
EP2864888A4 (en) 2016-05-04
CN104718536B (zh) 2018-04-13
WO2014004381A2 (en) 2014-01-03
JP2015525424A (ja) 2015-09-03
US20130346790A1 (en) 2013-12-26
EP2864888B1 (en) 2017-10-04

Similar Documents

Publication Publication Date Title
JP6001773B2 (ja) ネットワークストレージシステムにおける無停止のコントローラの交換
US20230409447A1 (en) Techniques for lif placement in san storage cluster synchronous disaster recovery
US7650446B2 (en) Storage system for back-end communications with other storage system
US7840662B1 (en) Dynamically managing a network cluster
US8566635B2 (en) Methods and systems for improved storage replication management and service continuance in a computing enterprise
EP1370945B1 (en) Failover processing in a storage system
RU2596585C2 (ru) Способ отправки данных, способ приема данных и устройство хранения данных
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
CN106843749B (zh) 写入请求处理方法、装置及设备
US20030145130A1 (en) Array controller ROM cloning in redundant controllers
US20110078494A1 (en) Management method and system for managing replication by taking into account cluster
US10185636B2 (en) Method and apparatus to virtualize remote copy pair in three data center configuration
US20150331753A1 (en) Method and apparatus of disaster recovery virtualization
WO2021004256A1 (zh) 一种节点故障时进行节点切换的方法及相关设备
US10152270B2 (en) Storage system
JP2016119062A (ja) ストレージ装置、ストレージシステムおよびストレージ制御プログラム
US10353613B2 (en) Computer system and control method therefor for handling path failure
JP4305007B2 (ja) 系切り替えシステムおよびその処理方法並びにその処理プログラム
JP7179810B2 (ja) クラスタシステム、クラスタシステムのフェイルオーバー制御方法
US10656867B2 (en) Computer system, data management method, and data management program
JP5233756B2 (ja) 情報処理装置、識別情報設定プログラム、識別情報設定方法
JP2017041110A (ja) マルチコンピュータシステム,管理装置および管理プログラム
JP2016115281A (ja) ストレージ制御装置及びストレージ制御プログラム
JP2005141381A (ja) 記憶装置システム
TWI709036B (zh) 回復基本輸入輸出系統組態參數的方法及伺服系統

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160419

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: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160901

R150 Certificate of patent or registration of utility model

Ref document number: 6001773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250