JP2022541921A - 記憶システムの信頼性を向上させる方法及び関連機器 - Google Patents

記憶システムの信頼性を向上させる方法及び関連機器 Download PDF

Info

Publication number
JP2022541921A
JP2022541921A JP2022504161A JP2022504161A JP2022541921A JP 2022541921 A JP2022541921 A JP 2022541921A JP 2022504161 A JP2022504161 A JP 2022504161A JP 2022504161 A JP2022504161 A JP 2022504161A JP 2022541921 A JP2022541921 A JP 2022541921A
Authority
JP
Japan
Prior art keywords
controller
controllers
target
data
mirror
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.)
Granted
Application number
JP2022504161A
Other languages
English (en)
Other versions
JP7358613B2 (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2022541921A publication Critical patent/JP2022541921A/ja
Application granted granted Critical
Publication of JP7358613B2 publication Critical patent/JP7358613B2/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/2056Error 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 by mirroring
    • G06F11/2058Error 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 by mirroring using more than 2 mirrored copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/2056Error 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 by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/2056Error 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 by mirroring
    • G06F11/2071Error 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 by mirroring using a plurality of controllers
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

記憶システムの信頼性を向上させる方法及び関連機器が提供される。記憶システムは、第1の制御装置と第2の制御装置を含む。該方法は、ターゲットコントローラにより、書き込み要求を受信するステップであり、書き込み要求は書き込まれるべきデータを含み、ターゲットコントローラは第1の制御装置に属する、ステップと、ターゲットコントローラにより、書き込まれるべきデータをターゲットコントローラのメモリに書き込むステップと、ターゲットコントローラにより、書き込まれるべきデータをターゲットコントローラのミラーコントローラのメモリに書き込むステップであり、少なくとも1つのミラーコントローラが第2の制御装置に属する、ステップを含む。この解決策によれば、書き込まれるべきデータは、複数の制御装置にわたり書き込まれ、記憶され得る。ある制御装置が不良であるとき、ホストは依然として別の制御装置にアクセスして、サービスが中断されないことを保証することができる。これは、記憶システムの信頼性と可用性を効果的に向上させる。

Description

本出願は、コンピュータ分散記憶システム技術の分野に関し、特に、記憶システムの信頼性を向上させる方法及び関連機器に関する。
現在、分散データ記憶アーキテクチャは、クラウドコンピューティングプラットフォーム、ビッグデータプラットフォームなどにますます広く適用されている。分散記憶技術は、記憶装置が複数の記憶コントローラを含むことを意味し、データが記憶装置に書き込まれるとき、データは、複数の記憶コントローラを使用することにより記憶装置に書き込まれ得る。
データを書き込むとき、分散記憶システムは通常、データを分散させ、データを異なるコントローラのメモリに書き込む。さらに、各コントローラのメモリに書き込まれるデータについて、コントローラ故障に起因してデータがアクセス不能になること又は失われることを防止するために、複数のコピーがさらに構成される。コントローラが故障しているとき、データは、コピーがあるため依然としてアクセス可能である。
現在、分散記憶システムでは、記憶制御装置がメモリから分離される方法が用いられている。ターゲットデータを記憶する記憶コントローラと、ターゲットデータのコピーと共に構成された記憶コントローラとの双方が不良である(faulty)、あるいは、ターゲットデータを記憶する記憶コントローラに対応する記憶制御装置が不良に起因して故障している(fails)場合、ターゲットデータはアクセスすることができず、記憶制御装置に接続されたメモリ内のデータにもアクセスすることができない。結果的に、ホストサービスは中断され、記憶システムの信頼性が低減される。
したがって、記憶制御装置が不良であるとき、ホストサービスが中断されないことを保証し、記憶システムの信頼性を向上させる方法は、現在、緊急に解決される必要のある技術的問題である。
本出願は、記憶システムの信頼性を向上させる方法及び関連機器を提供して、記憶制御装置が不良に起因して故障しているときにホストサービスが中断されないことを保証し、それにより、記憶システムの信頼性と可用性を効果的に向上させる。
第1の態様によれば、記憶システムの信頼性を向上させる方法が提供される。記憶システムは、第1の制御装置及び第2の制御装置を含む。当該方法は、ターゲットコントローラにより、書き込み要求を受信するステップであり、書き込み要求は書き込まれるべきデータを含み、ターゲットコントローラは第1の制御装置に属する、ステップと、ターゲットコントローラにより、書き込まれるべきデータをターゲットコントローラのメモリに書き込むステップと、ターゲットコントローラにより、書き込まれるべきデータをターゲットコントローラのミラーコントローラのメモリに書き込むステップであり、少なくとも1つのミラーコントローラが第2の制御装置に属する、ステップを含む。
任意で、書き込まれるべきデータがターゲットコントローラのメモリ及びターゲットコントローラのミラーコントローラのメモリに書き込まれた後、ターゲットコントローラは、書き込み完了メッセージをホストに送信する。書き込み完了メッセージは、書き込まれるべきデータが成功裏に書き込まれたことを示すために使用される。
本出願のこの実施形態において、書き込み要求で運ばれる書き込まれるべきデータが書き込まれるとき、書き込まれるべきデータは、ターゲットコントローラのメモリに書き込まれる必要があるだけでなく、ターゲットコントローラのミラーコントローラのメモリに書き込まれる必要もある。さらに、ミラーコントローラは、ターゲットコントローラと同じ制御装置内でないコントローラを有する。このようにして、書き込まれるべきデータを異なる制御装置に書き込むことができることが保証され得、それにより、いずれかの制御装置が不良であるとき、ホストは別の制御装置を使用することにより、書き込まれるべきデータに依然としてアクセスすることができる。これは、ホストサービスの連続性を保証し、記憶システムの信頼性と可用性を向上させる。
第1の態様を参照し、可能な一実装において、第1の制御装置及び第2の制御装置は記憶装置に接続される。第1の制御装置が不良であるとき、ホストは、第2の制御装置を使用することにより記憶装置にアクセスする。
本出願のこの実施形態において、第1の制御装置及び第2の制御装置は、記憶装置に同時にアクセスしてもよい。このようにして、制御装置のいずれか1つが不良であるとき、ホストは、他の制御装置を使用することにより記憶装置に依然としてアクセスして、ホストサービスの連続性を保証し、記憶システムの信頼性を向上させることができる。
第1の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成する。バックアップコントローラグループはN個のコントローラを含む。Nは2以上の整数である。バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、プライマリコントローラが、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択し、新しいターゲットコントローラは、書き込み要求を受信するように構成され、プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラであり、プライマリコントローラは、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングする。Mは1以上N未満の整数である。
本出願のこの実施形態において、ターゲットコントローラを含む複数のコントローラが不良であるとき、プライマリコントローラは、ターゲットコントローラのミラーコントローラから新しいターゲットコントローラを選択し、新しいターゲットコントローラのための新しいミラーコントローラを確立して、複数のコントローラが不良であるときにホストがターゲットデータに依然としてアクセスできることを保証し得る。これは、ホストサービスが中断されないことを保証し、記憶システムの信頼性を向上させる。
第1の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成する。バックアップコントローラグループはN個のコントローラを含む。Nは2以上の整数である。バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含まないとき、プライマリコントローラが、ターゲットコントローラのためのM個の新しいミラーコントローラを確立し、ターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングする。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。Mは1以上N未満の整数である。
本出願のこの実施形態において、ターゲットコントローラを含まない複数のコントローラが不良であるとき、プライマリコントローラは、ターゲットコントローラのための新しいミラーコントローラを確立して、ターゲットコントローラが複数のミラーコントローラを有し続けることができ、複数のコントローラが不良であるときにホストがターゲットデータに依然としてアクセスできることを保証し得る。これは、ホストサービスが中断されないことを保証し、記憶システムの信頼性を向上させる。
第1の態様を参照し、可能な一実装において、Nは3に等しい。
第1の態様を参照し、可能な一実装において、第1の制御装置が不良であるとき、第2の制御装置内にある、ターゲットコントローラの1つのミラーコントローラが新しいターゲットコントローラとして使用され、新しいターゲットコントローラのためにミラーコントローラが確立され、新しいターゲットコントローラのメモリ内のデータは新しいミラーコントローラのメモリにミラーリングされる。
本出願のこの実施形態において、各制御装置内のコントローラは、別の制御装置内にミラーコントローラを有する。制御装置が不良であるとき、プライマリコントローラは、別の制御装置内にある、ターゲットコントローラのミラーコントローラを、新しいターゲットコントローラにアップグレードし、新しいターゲットコントローラのためのミラーコントローラを確立する。このようにして、制御装置が不良であるとき、ホストはターゲットデータに依然としてアクセスすることができる。これは、ホストサービスの連続性を保証し、記憶システムの信頼性と可用性を向上させる。
第2の態様によれば、記憶制御システムが提供される。記憶制御システムは、第1の制御装置及び第2の制御装置を含む。第1の制御装置は、ターゲットコントローラを含む。ターゲットコントローラは、書き込み要求を受信するように構成された受信モジュールであり、書き込み要求は書き込まれるべきデータを含む、受信モジュールと、書き込まれるべきデータをターゲットコントローラのメモリに書き込むように構成された処理モジュールと、を含む。処理モジュールはさらに、書き込まれるべきデータをターゲットコントローラのミラーコントローラのメモリに書き込むように構成される。少なくとも1つのミラーコントローラが、第2の制御装置に属する。
第2の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システムは、プライマリコントローラを含む。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。プライマリコントローラは、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、プライマリコントローラにより、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択するように構成されたトラブルシューティングモジュールであり、新しいターゲットコントローラは、書き込み要求を受信するように構成される、トラブルシューティングモジュールと、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールと、を含む。Mは、1以上N未満の整数である。
第2の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システムは、プライマリコントローラをさらに含む。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。プライマリコントローラは、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含まないとき、プライマリコントローラにより、ターゲットコントローラのためのM個の新しいミラーコントローラを確立するように構成されたトラブルシューティングモジュールと、ターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールと、を含む。Mは1以上N未満の整数である。
第2の態様を参照し、可能な一実装において、Nは3に等しい。
第2の態様を参照し、可能な一実装において、第1の制御装置が不良であるとき、第2の制御装置内にある、ターゲットコントローラの1つのミラーコントローラが、新しいターゲットコントローラとして使用され、新しいターゲットコントローラのためにミラーコントローラが確立され、新しいターゲットコントローラのメモリ内のデータは新しいミラーコントローラのメモリにミラーリングされる。
第3の態様によれば、記憶制御システムが提供される。記憶制御システムは、第1の制御装置及び第2の制御装置を含む。第1の制御装置は、ターゲットコントローラを含む。ターゲットコントローラは、プロセッサ及びメモリを含む。プロセッサは、メモリに記憶されたコンピュータ命令を実行して、ターゲットコントローラが第1の態様又は第1の態様の実装のいずれか1つで提供された方法を実行することを可能にする。
第3の態様を参照し、可能な一実装において、記憶制御システムは、プライマリコントローラを含む。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。プライマリコントローラは、プロセッサ及びメモリを含む。プロセッサは、メモリに記憶されたコンピュータ命令を実行して、プライマリコントローラが第1の態様又は第1の態様の実装のいずれか1つで提供された方法を実行することを可能にする。
第4の態様によれば、コンピュータ記憶媒体が提供される。コンピュータ記憶媒体はコンピュータプログラムを記憶する。コンピュータプログラムがプロセッサにより実行されると、第1の態様又は第1の態様の実装のいずれか1つで提供される方法の手順が実装され得る。
第5の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品はコンピュータ命令を含む。コンピュータプログラムがコンピュータにより実行されると、コンピュータは、第1の態様又は第1の態様の実施のいずれか1つで提供される方法の手順を実行可能にされる。
本出願の一実施形態による直列接続モデルの概略図である。 本出願の一実施形態による並列接続モデルの概略図である。 本出願の一実施形態による記憶システムの概略構造図である。 本出願の一実施形態による、デュアルコピーデータストレージの概略図である。 本出願の一実施形態による適用シナリオの概略図である。 本出願の一実施形態による記憶システムの信頼性を向上させる方法の概略フローチャートである。 本出願の一実施形態によるマルチコピーデータ書き込みの概略図である。 図6A-1及び図6A-2は、本出願の一実施形態による2つのコントローラの同時故障の概略図である。 図6A-1及び図6A-2は、本出願の一実施形態による2つのコントローラの同時故障の概略図である。 図6B-1及び図6B-2は、本出願の一実施形態による、制御装置が不良である概略図である。 図6B-1及び図6B-2は、本出願の一実施形態による、制御装置が不良である概略図である。 図6C-1~図6C-4は、本出願の一実施形態によるコントローラの順次的な故障の概略図である。 図6C-1~図6C-4は、本出願の一実施形態によるコントローラの順次的な故障の概略図である。 図6C-1~図6C-4は、本出願の一実施形態によるコントローラの順次的な故障の概略図である。 図6C-1~図6C-4は、本出願の一実施形態によるコントローラの順次的な故障の概略図である。 本出願の一実施形態による制御装置の信頼性モデルの概略図である。 本出願の一実施形態による記憶システムの信頼性モデルの概略図である。 本出願の一実施形態による記憶制御システムの概略構造図である。 本出願の一実施形態による別の記憶制御システムの概略構造図である。
以下では、添付の図面を参照して本出願の実施形態における技術的解決策について明確かつ完全に説明する。明らかに、説明される実施形態は、本出願の実施形態の全てではなく、一部に過ぎない。創造的努力なしに本出願の実施形態に基づいて当業者により得られる全て他の実施形態は、本出願の保護範囲内に入るものとする。
当業者がより良く理解するのを助けるために、本出願におけるいくつかの用語及び関連する技術が、添付の図面を参照して最初に説明される。
ペリフェラルコンポーネントインターコネクトエクスプレス(peripheral component interconnect express、PCIe)は、高速シリアルポイントツーポイントデュアルチャネル高帯域幅通信に使用される。接続された装置は、排他的チャネル帯域幅を割り当てられ、バス帯域幅を共有しない。したがって、データ転送速度が高い。任意の2つのPCIe装置間の接続は、リンクと呼ばれ、1つ以上のチャネルのセットから確立される。
スモールコンピュータシステムインターフェース(small computer system interface、SCSI)は、コンピュータとインテリジェントデバイス(ハードディスク、CD-ROMドライブ、プリンタ、スキャナなど)との間のシステムレベルのインターフェースに使用される独立したプロセッサ標準である。SCSIインターフェースはユニバーサルインターフェースである。SCSIバスは、ホストアダプタ及びSCSI周辺機器コントローラに接続され得る。1つのSCSIバスに取り付けられる複数の周辺機器は、同時に作動してもよい。SCSIインターフェースは、データを同期的又は非同期的に通信することができる。SCSIインターフェースは、独立した高速SCSIカードを使用することによりデータ読み取り/書き込み動作を制御し、それにより、中央処理装置(central processing unit、CPU)は、待ち時間を浪費する必要がない。これは、システムの全体的な性能を向上させ得る。
シリアルアタッチトSCSI(serial attached SCSI、SAS)は、シリアル技術を使用してより高い転送速度を達成し、接続を短縮することにより内部空間を改善し、シリアルアドバンストテクノロジアタッチメント(serial advanced technology attachment、SATA)ハードディスクと互換性のある次世代SCSI技術である。SASはポイントツーポイント構造であり、ディスクとコントローラとの間の直接接続を確立し得る。さらに、SAS構造は優れたスケーラビリティを有し、最大16384個のディスク装置に接続してもよい。各SASは、入力に2つ、出力に2つの、4つのケーブルを有する。データは、同時に読み取られ、書き込まれてもよい。
不揮発性メモリエクスプレス(non-volatile memory express、NVMe)は、論理装置インターフェース仕様であり、フラッシュストレージのために設計された、シリアルアドバンストホストコントローラインターフェース(serial ATA advanced host controller interface、AHCI)と同様のプロトコルである。NVMeの本質は、コンピュータと記憶装置との間に複数のパスを確立することである。複数のパスは、実際には複数のキューである。NVMeプロトコルは、最大64k個のキューをサポートすることができ、同時性と性能を大幅に向上させる。
ダイレクトメモリアクセス(direct memory access、DMA)は、I/O切り替えがハードウェアにより完全に実行される作動方式である。この方式では、DMAコントローラは、CPUからバスの全制御を引き継ぎ、データは、CPUを通過することなくメモリとIO装置との間で直接交換される。DMAは、大量のデータが通信されるとき、CPUのオーバヘッドを低減し得る。DMAコントローラは、メモリアクセスアドレスを生成し、メモリアクセスプロセスを制御するために使用される。転送速度が高く、CPUは基本的に介入せず、初期化及び完了の間のみ参加する。CPUと周辺機器が並列に作動し、したがって、効率が比較的高い。
リモートダイレクトメモリアクセス(remote direct memory access、RDMA)は、リモートホストのオペレーティングシステムカーネルをバイパスしてリモートホストのメモリ内のデータにアクセスする技術である。オペレーティングシステムがバイパスされるため、RDMAは、ネットワークを介してシステムからリモートホストのメモリにデータを迅速に移動させる。したがって、大量のCPUリソースが節約され得、システムスループットが改善され、外部メモリ複製及びコンテキスト切り替えのオーバヘッドが除去され、メモリ帯域幅が解放されてアプリケーションシステム性能を向上させることができる。
データコピーは、記憶されたデータの冗長データである。具体的には、システム可用性を向上させるために、異なる記憶装置に同じデータが記憶される。データのプライマリコピーを記憶する記憶装置が不良である場合、サービスの連続性を保証するために、データのコピーを記憶する別の記憶装置にアクセスしてデータを取得することができる。
故障率(failure rate)は不良率とも呼ばれ、エンジニアリングシステム又はコンポーネントがどれほどの頻度で故障するかである。故障率は、通常、時間あたりの故障数量で測定され、文字λで表される。平均故障間隔(mean time between failure、MTBF)は、現在の故障から次の故障までに修理可能装置によりとられる平均時間である。λ=1/MTBFである。平均修理時間(mean time to repair、MTTR)は、装置が不良状態から作動状態に変わるときの平均修理時間である。可用性(availability、A)は、タスクが開始されるときにシステム、サブシステム、又は装置が指定された動作可能又はコミット可能な状態にある度合いである。換言すれば、可用性は、システムが作動可能な状態にある時間の割合である。A=MTBF/(MTBF+MTTR)である。システムの可用性を計算するために、単一ユニットのMTBFを単一ユニットの故障率に基づいて計算して、単一ユニットの可用性を計算し、次いで、システムの全体可用性が直列及び並列接続モデルに基づいて計算される。図1Aを参照する。図1Aは、直列接続モデルの概略図である。ユニット1、ユニット2、...、及びユニットNが直列に接続されている。ユニット1の可用性はA1であり、ユニット2の可用性はA2であり、...、ユニットNの可用性はAnである。したがって、システム全体の可用性は、A=A1*A2*...*Anである。図1Bは、並列接続モデルの概略図である。並列接続モデルは、直列接続モデルより複雑である。並列接続モデルにおける冗長ユニットは、プライマリ及びセカンダリ冗長ユニット、並びに負荷分担冗長ユニットに分類される。図1Bのユニット1、ユニット2、...、及びユニットNがプライマリ及びセカンダリ冗長ユニットであり、各ユニットの可用性がaである場合、システム全体の可用性は、A=1-{C*{1-a*(N+1-N*a)}/N+(1-C)*(1-a)/N}である。Cは、切り替え率、すなわち、プライマリユニットからセカンダリユニットに成功裏に切り替える確率を表す。C=C1*C2である。C1は、プライマリユニットの不良検出率を表す。C2は、セカンダリユニットの不良検出率を表す。詳細には、各ユニットが1つの冗長ユニットのみを有する、すなわちN=1である場合、式は、A=a+C*a*(1-a)として簡素化され得る。図1Bのユニット1、ユニット2、...、及びユニットNが負荷分担冗長ユニットであり、各ユニットの可用性がaである場合、システム全体の可用性は、A=1-{C*{1-a*(N+1-N*a)}/N+(1-C)*(1-aN+1)/(N+1)}である。Cは、各ユニットの不良検出率を示す。
一般に、システムスケーラビリティを向上させるために、エンタープライズ記憶システムは、通常、複数の制御記憶ノードを相互接続して統一された分散システムを形成し、アプリケーションにストレージサービスを提供する。具体的には、図2Aを参照し、図2Aは記憶システムの概略構造図である。図2Aに示すように、装置210は、ストレージサービス、例えば、ホスト又はサーバを使用する装置である。装置210は、制御装置220及び制御装置230に接続される。制御装置220は、複数のコントローラを含む。この実施形態では、4つのコントローラが説明のために一例として用いられる。4つのコントローラは、コントローラ221、コントローラ222、コントローラ223、及びコントローラ224であり、PCIeインターフェースを介して互いに接続される。制御装置230もまた、複数のコントローラを含む。この実施形態では、また、4つのコントローラが説明のために一例として用いられる。4つのコントローラは、コントローラ231、コントローラ232、コントローラ233、及びコントローラ234であり、また、PCIeインターフェースを介して互いに接続される。システムの信頼性を向上させるために、コントローラは、デュアルリンク冗長方式で互いに接続される。制御装置220は、さらに、PCIeインターフェースを介してデュアルリンク冗長方式で制御装置230に接続される。制御装置220及び制御装置230は、ストレージアレイでもよい。制御装置220及び制御装置230に含まれるコントローラは、中央処理装置CPUにメモリを加えた構造を使用してもよい。CPUは、メモリ内のプログラムを呼び出して、対応する機能を実行する。代替的に、コントローラは、独立した制御チップ、例えばフィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)でもよく、プログラムは、FPGAに焼き込まれる。制御装置220は、SASインターフェースを介してメモリ240に接続される。制御装置230は、SASインターフェースを介してメモリ250に接続される。システムの信頼性を向上させるために、制御装置220とメモリ240との間の接続、及び制御装置230とメモリ250との間の接続は、デュアルリンク冗長方式で実施される。メモリ240及びメモリ250は、データを記憶する装置、例えばストレージアレイである。メモリ240は、拡張ボード241、拡張ボード242、及びN個の記憶媒体を含む。Nは、1より大きい正の整数である。拡張ボード241は、メモリ240を制御することを担う。拡張ボード242は、拡張ボード241の冗長拡張ボードである。拡張ボード241が不良であるとき、拡張ボード242は、拡張ボード241の働きを引き継いで、システム全体の信頼性を向上させる。メモリ250の構造は、メモリ240の構造と一貫性があり、メモリ250は、拡張ボード251、拡張ボード252、及びN個の記憶媒体を含む。
実際の適用では、システム信頼性とコントローラ性能を保証するために、記憶システムに対してメモリデュアルコピー技術が用いられる。具体的には、各コントローラのメモリに書き込まれたデータは、同じ制御装置に属する別のコントローラのメモリにバックアップされる。図2Bに示すように、データAはコントローラ221に記憶され、データAのコピーデータA1はコントローラ222に記憶される。データBはコントローラ222に記憶され、データBのコピーデータB1はコントローラ221に記憶される。データEはコントローラ231に記憶され、データEのコピーデータE1はコントローラ232に記憶される。データHはコントローラ234に記憶され、データHのコピーデータH1はコントローラ233に記憶される。コントローラ221が不良に起因して故障している場合、装置210はコントローラ221に記憶されたデータにアクセスすることができない。具体的には、装置210は、データA及びデータB1にアクセスすることができない。コントローラ222が、データAのコピーデータA1を記憶しているため、装置210は、コントローラ222にアクセスすることによりデータA1にアクセスすることができる。このようにして、サービスは中断されない。
コントローラ221及びコントローラ222の双方が不良であるか、又は制御装置220が不良である場合、装置210はデータA及びデータA1にアクセスできず、サービスは中断される可能性がある。
さらに、各制御装置内のコントローラは、制御装置に接続されたメモリにのみアクセスすることができる。例えば、制御装置220内のコントローラ221は、メモリ240内のデータのみにアクセスすることができ、メモリ250内のデータにアクセスすることはできず、なぜならば、制御装置220はメモリ250に接続されていないためである。同様に、制御装置230内のコントローラ231は、メモリ250内のデータのみにアクセスすることができ、メモリ240内のデータにアクセスすることはできない。したがって、電力障害又はハードウェア不良に起因していずれかの制御装置が故障しているとき、制御装置内のコントローラ内のデータと制御装置に接続されたメモリ内のデータはアクセスすることができない。結果的に、ホスト上のサービスは中断され、あるいは故障する。例えば、制御装置220が不良であるとき、装置210は、装置220及びメモリ240内のデータにアクセスすることができない。結果的に、装置210上のサービスは中断され、あるいは故障する。
制御装置及びメモリはSASリンク又はNVMeリンクを介して接続されてもよく、各制御装置は複数のメモリにさらに接続されてもよいことに留意されたい。さらに、制御装置及びメモリは、同じ物理的装置上に配置されてもよい。例えば、メモリ240及び制御装置220は、同じ物理的装置上に配置されてもよい。確かに、制御装置及びメモリは代替的に、異なる物理的装置上に別個に配置されてもよい。
上述の問題を解決するために、本出願は、記憶システムの信頼性を向上させる方法及び関連機器を提供して、制御装置が不良であるときにホストサービスの連続性を保証し、それにより、記憶システムの信頼性及び可用性を向上させる。
図3を参照する。図3は、本出願の一実施形態による可能な適用シナリオである。この適用シナリオにおいて、ホスト310は、制御装置320及び制御装置330に接続される。ホスト310は、光ファイバを介して制御装置320及び制御装置330に接続されてもよく、あるいはイーサネット(ethernet)などのネットワークを介して制御装置320及び制御装置330に接続されてもよい。さらに、制御装置320及び制御装置330は、2つのスイッチカード(図3には示されていない)を有する。スイッチカードの一方はプライマリスイッチカードであり、他方のスイッチカードはセカンダリスイッチカードである。制御装置320及び制御装置330内の全てのコントローラは、プライマリスイッチカードに接続される必要がある。プライマリスイッチカードは、ある制御装置内のコントローラと別の制御装置内のコントローラとの間の通信、及び制御装置内のコントローラとメモリ340との間の通信をサポートするように構成される。プライマリスイッチカードが不良であるとき、セカンダリスイッチカードがプライマリスイッチカードの働きを引き継いで、システムの信頼性を保証する。制御装置320は、複数のコントローラを含む。この実施形態において、制御装置320が4つのコントローラ、例えば、コントローラ321、コントローラ322、コントローラ323、及びコントローラ324を含む一例が説明のために用いられる。制御装置330もまた、複数のコントローラを含む。この実施形態において、制御装置330もまた4つのコントローラ、例えば、コントローラ331、コントローラ332、コントローラ333、及びコントローラ334を含む一例が説明のために用いられる。制御装置320及び制御装置330内の全てのコントローラ間の接続、及び制御装置320と制御装置330との間の接続は、RDMAチャネルを介して実施される。コントローラ間のデータは、CPUを通過することなくピアエンドに直接通信され得る。確かに、接続は代替的に、PCIeインターフェースを介して実施されてもよい。制御装置320及び制御装置330は、RDMAチャネルを介してメモリ340に別個に接続される。換言すれば、メモリ340は、制御装置320及び制御装置330により共有される。具体的には、制御装置320及び制御装置330は、メモリ340内のデータに同時にアクセスすることができる。メモリ340は、CPU341及びメモリ342を含む記憶サーバ(すなわち、記憶ノード)でもよく、コントローラによるアクセスのためのデータを記憶するように構成されたN個の記憶媒体を含む。Nは、1より大きい正の整数である。メモリ340のメモリ342はプログラム命令を記憶する。CPU341は、プログラム命令を呼び出してメモリ340を管理及び制御し、例えば、メモリ340上の関連する構成を実行し、あるいはメモリ340をアップグレードする。制御装置内の全てのコントローラは、ホストにより送出されたIOを受信し、IO内に搬送されたアドレスに基づいて、IOを処理するターゲットコントローラを決定するように構成され得る。ターゲットコントローラが、ホストにより送出されたIOを受信したコントローラである場合、ターゲットコントローラは、IOを直接処理する。ターゲットコントローラが、ホストにより送出されたIOを受信したコントローラでない場合、コントローラはIOをターゲットコントローラに転送し、ターゲットコントローラがIOを処理する。
システムの信頼性を向上させるために、全ての接続にデュアルリンク冗長性が使用されることに留意されたい。具体的には、コントローラ間、制御装置間、及び制御装置とメモリとの間の各接続に2つのRDMAチャネルが使用される。さらに、ホスト310は、さらなる制御装置にさらに接続されてもよく、制御装置は、複数の共有メモリにさらに接続されてもよい。さらに、各コントローラは少なくとも1つのミラーコントローラを含み、少なくとも1つのミラーコントローラは別の制御装置に属する。具体的には、各コントローラに記憶されたデータは別のコントローラにバックアップされ、少なくとも1つのコントローラは別の制御装置に属する。例えば、コントローラ321のミラーコントローラには、コントローラ322及びコントローラ331が含まれる。コントローラ321に記憶されたデータAがバックアップされる場合、コントローラ322及びコントローラ331は、対応して、データAのコピーデータA1及びコピーデータA2を記憶する。コントローラ321及びコントローラ322は制御装置320に属し、コントローラ331は第2の制御装置330に属する。このようにして、データAは複数の制御装置にわたって記憶される。各コントローラのミラーコントローラは予め設定される。各コントローラと、各コントローラに対応するミラーコントローラは、バックアップコントローラグループを形成する。
制御装置内のコントローラが不良である、又は制御装置が不良であるとき、データが複数の制御装置にわたりバックアップされるため、ホストは別の制御装置内のバックアップデータに依然としてアクセスできることが容易に理解される。これはサービス連続性を保証する。さらに、複数の制御装置がメモリを共有する。このようにして、制御装置が不良である場合でも、ホストは依然として、別の制御装置内のコントローラを使用することによりメモリ内のデータにアクセスして、ホスト上のサービスが中断されず又は故障しないことを保証し得る。これは、システムの信頼性と可用性を効果的に向上させる。
図3に示す適用シナリオに基づき、以下では、図4を参照して、本出願の一実施形態による記憶システムの信頼性を向上させる方法について説明する。図4に示すように、本方法は、これらに限られないが以下のステップを含む。
S410:ターゲットコントローラが書き込み要求を受信する。
具体的には、ターゲットコントローラは、ホストに接続された任意の制御装置内の任意のコントローラであってよい。例えば、図3における関連する説明を参照し、ターゲットコントローラは、制御装置320内のコントローラ321でもよい。詳細には、ターゲットコントローラが、ホストにより送出されたIOを現在受信しているコントローラであるとき、ターゲットコントローラは、ホストにより送信された書き込み要求を直接受信する。ターゲットコントローラが、ホストにより送出されたIOを現在受信しているコントローラでないとき、ターゲットコントローラは、コントローラにより転送された書き込み要求を受信する。
さらに、書き込み要求は、ホストにより書き込まれる必要のある、書き込まれるべきデータ(to-be-written data)を含む。
S420:ターゲットコントローラが、書き込まれるべきデータをターゲットコントローラのメモリに書き込む。
具体的には、ターゲットコントローラは、CPU及びメモリを含む制御チップでもよい。書き込み要求を受信した後、ターゲットコントローラは、書き込み要求をパースする(parsing)ことにより、書き込み要求で運ばれた書き込まれるべきデータを取得し、書き込まれるべきデータをターゲットコントローラのメモリに書き込む。
S430:ターゲットコントローラが、書き込まれるべきデータをターゲットコントローラのミラーコントローラのメモリに書き込む。
図3に示すように、本発明のこの実施形態において、各コントローラは、ミラーコントローラを備え、少なくとも1つのミラーコントローラは、ターゲットコントローラと同じ制御装置に属さない。したがって、書き込まれるべきデータをメモリに書き込んだ後、ターゲットコントローラは、書き込まれるべきデータをミラーコントローラのメモリにさらに書き込む。コントローラがRDMAを介して接続されるため、ターゲットコントローラは、書き込まれるべきデータを、RDMAを介してターゲットコントローラのミラーコントローラのメモリに直接書き込むことができる。
データはRDMAチャネルを介して任意の2つのコントローラ間で通信され、データはCPUを通過しないことを理解されたい。これは、コントローラのCPU性能と通信効率を向上させる。
例えば、図5を参照する。図5は、本出願の一実施形態によるマルチコピーデータ書き込みの概略図である。図5に示すように、コントローラ521のミラーコントローラは、コントローラ522及びコントローラ532である。したがって、コントローラ521は、まず、データAをコントローラ521のメモリに書き込み、次いで、データAのコピーデータA1及びA2をコントローラ522のメモリ及びコントローラ532のメモリにそれぞれ書き込む。コントローラ523のミラーコントローラは、コントローラ524及びコントローラ534である。データBをコントローラ523のメモリに書き込んだ後、コントローラ523は、データBのコピーデータB1をコントローラ524のメモリに書き込み、データBのコピーデータB2をコントローラ534のメモリに書き込む。同様に、コントローラ531のミラーコントローラは、コントローラ522及びコントローラ532である。データCをコントローラ531のメモリに書き込んだ後、コントローラ531は、データCのコピーデータC1をコントローラ532のメモリに書き込み、データCのコピーデータC2をコントローラ522のメモリに書き込む。コントローラ533のミラーコントローラは、コントローラ524及びコントローラ534である。データDをコントローラ534のメモリに書き込んだ後、コントローラ533は、データDのコピーデータD1をコントローラ534のメモリに書き込み、データDのコピーデータD2をコントローラ524のメモリに書き込む。
詳細には、全ての相互接続されたコントローラの中に、プライマリコントローラがある。プライマリコントローラは、全てのコントローラから選択された任意のコントローラであってよく、全てのコントローラのミラーリング関係、すなわち、どのミラーコントローラが各コントローラのためのものであるかを管理するように構成される。別のコントローラは、ミラーリング関係のバックアップを有する。プライマリコントローラが不良であり、作動できないとき、残りのコントローラから新しいプライマリコントローラが選択されて、前のプライマリコントローラの働きを引き継ぎ、全てのコントローラのミラーリング関係を管理する。さらに、プライマリコントローラにより管理されるミラーリング関係において、あまりに多くのコントローラのミラーコントローラが同じコントローラに設定されることは避けられる。プライマリコントローラは、コントローラ間の負荷分散を実施するために、分散アルゴリズムなどに従ってミラーリング関係を設定してもよい。
例えば、図5を参照する。コントローラ521は、ターゲットコントローラである。コントローラ522及びコントローラ532は、ターゲットコントローラのミラーコントローラである。コントローラ521がデータAをコントローラ521のメモリに書き込んだ後、データAのコピーデータA1及びA2は、それぞれ、コントローラ522のメモリ及びコントローラ532のメモリに書き込まれる。
S440:ターゲットコントローラが、書き込み完了メッセージをホストに送信する。
具体的には、書き込まれるべきデータをターゲットコントローラのメモリ及びターゲットコントローラのミラーコントローラのメモリに書き込んだ後、ターゲットコントローラは、書き込み完了メッセージをホストに送信して、書き込まれるべきデータがターゲットコントローラのメモリ及びターゲットコントローラのミラーコントローラのメモリに成功裏に書き込まれたことをホストに通知する。
可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、プライマリコントローラは、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択し、新しいターゲットコントローラは、書き込み要求を受信するように構成され、プライマリコントローラは、ホストから書き込み要求を受信し、書き込み要求を新しいターゲットコントローラに転送するように構成され、プライマリコントローラは、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングする。Mは1以上N未満の整数である。
具体的には、全ての制御装置内のあらゆる2つのコントローラが、それぞれの状態を検知するために、互いにハートビートパケットを周期的に送信する。コントローラが、予め設定された期間内に別のコントローラにより送信されたハートビートパケットを受信しない場合、コントローラが不良であると決定され得る。この場合、プライマリコントロールは、各コントローラのミラーリング関係を再調整する必要がある。ハートビート期間と予め設定された期間は、実際の要件に基づいて設定されてよい。これは、本出願において限定されない。例えば、図5において、制御装置520及び制御装置530内の8つのコントローラは、互いにハートビートパケットを送信する。コントローラ521が、予め設定された期間内に、コントローラ522により送信されたハートビートパケットを受信しない場合、コントローラ521は、コントローラ522が不良であると決定してもよい。
任意で、プライマリコントローラは、管理されたコントローラのミラーコントローラのプライオリティを設定してもよい。具体的には、ターゲットコントローラが不良であるとき、より高いプライオリティを有するミラーコントローラが、プライオリティに基づいて、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラから選択される。任意で、プライマリコントローラは、より高いプライオリティを有するコントローラとして、ターゲットコントローラと同じ制御装置内にあるミラーコントローラを設定してもよい。確かに、より高いプライオリティを有するコントローラは代替的に、別の条件、例えば、コントローラの物理的状態及びバックアップ電力関係に基づいて設定されてもよい。これは、本出願において限定されない。例えば、図5において、コントローラ522とコントローラ532の双方がコントローラ521のミラーコントローラであるが、コントローラ522のプライオリティはコントローラ532のミラーコントローラより高い。したがって、コントローラ521が不良であるとき、プライマリコントローラは、コントローラ522を新しいターゲットコントローラとして選択する。代替的に、プライマリコントローラは、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラをランダムに選択する。新しいターゲットコントローラを決定するためにプライマリコントローラにより使用される方法は、本出願において限定されない。
さらに、ターゲットコントローラを含むM個のコントローラが不良であるとき、プライマリコントローラは、残りのミラーコントローラから新しいターゲットコントローラを決定し、新しいターゲットコントローラのためにM個の新しいミラーコントローラを確立して、バックアップコントローラグループ内のコントローラの数量が依然として前と同じであり(すなわち、N個のコントローラ)、新しいターゲットコントローラ内のデータがM個の新しいミラーコントローラにミラーリングされることを保証する。さらに、ホストコントローラは、ホストから書き込み要求を受信し、次いで、書き込み要求を新しいターゲットコントローラに転送することができる。新しいターゲットコントローラは、書き込み要求内の書き込まれるべきデータを、新しいターゲットコントローラのメモリ及び新しいターゲットコントローラのミラーコントローラ(M個の新しいミラーコントローラを含む)のメモリに書き込む。
任意で、Nの値は3である。具体的には、ターゲットコントローラは2つのミラーコントローラを含み、ターゲットコントローラと、ミラーコントロールの少なくとも1つは、異なる制御装置に配置される。
可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含まないとき、プライマリコントローラは、ターゲットコントローラのためのM個の新しいミラーコントローラを確立し、ターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングする。Mは1以上N未満の整数である。
具体的には、ターゲットコントローラを含まない、バックアップコントローラグループ内のM個のコントローラが不良であるとき、プライマリコントローラは、グローバルミラーリング関係を更新する。具体的には、プライマリコントローラは、ターゲットコントローラのためのM個の新しいミラーコントローラを直接確立して、バックアップコントローラグループ内のコントローラの数量が依然としてNであることを保証し、ターゲットコントローラ内のデータをM個の新しいミラーコントローラにミラーリングする。
任意で、Nの値は3である。具体的には、ターゲットコントローラは2つのミラーコントローラを含み、ターゲットコントローラと、ミラーコントロールの少なくとも1つは、異なる制御装置に配置される。
例えば、図6A-1及び図6A-2を参照する。図6A-1及び図6A-2に示すように、制御装置520及び制御装置530が正常に動作するとき、コントローラ521、コントローラ522、及びコントローラ532は、バックアップコントローラグループを形成し、それぞれ、データAと、データAのコピーデータA1、及びA2を記憶する。コントローラ522、コントローラ531、及びコントローラ532は、別のバックアップコントローラグループを形成し、それぞれ、データCと、データCのコピーデータC1、及びC2を記憶する。コントローラ521及びコントローラ522が不良であるとき、データAについて、データAのターゲットコントローラはコントローラ521である。コントローラ522及びコントローラ532がデータAのコピーデータA1及びA2を記憶しているため、コントローラ521及びコントローラ522が同時に不良であるとき、プライマリコントローラは、コントローラ532を新しいターゲットコントローラとして選択する。換言すれば、コントローラ532に記憶されたデータは、データAに変更される。プライマリコントローラは、新しいミラーリング関係を再確立する。コントローラ532が新しいターゲットコントローラとして決定された後、データAのコピーデータA1及びA2はそれぞれ、コントローラ531及びコントローラ523にミラーリングされる。換言すれば、コントローラ523及びコントローラ531は、コントローラ532のミラーコントローラである。同様に、データCについて、データCのターゲットコントローラはコントローラ531である。コントローラ522がデータCのコピーデータC2を記憶しているため、コントローラが不良であるとき、プライマリコントローラは、ターゲットコントローラ531のための新しいミラーコントローラを確立して、新しいミラーリング関係を確立する。プライマリコントローラは、データCのコピーデータをコントローラ524にミラーリングする。換言すれば、コントローラ524及びコントローラ532は、ターゲットコントローラ531のミラーコントローラである。
前述では、各ターゲットコントローラが2つのミラーコントローラのみを含む一例を用いることにより説明されていることを理解されたい。確かに、各ターゲットコントローラは、より多くのミラーコントローラをさらに含んでもよい。ターゲットコントローラの具体的な実装論理及びプロセスは、前述におけるものと同じである。簡潔さのために、詳細はここで再度説明されない。
2つのコントローラが同時に不良であるとき、ターゲットデータ(例えば、データA)がバックアップされ、ターゲットデータのコピーデータが3つの異なるコントローラに記憶されているため、ホストはターゲットデータに依然としてアクセスし得ることが習得され得る。これは、ホストサービスの連続性を保証し、記憶システム全体の信頼性と可用性を向上させる。さらに、制御装置内のプライマリコントローラはさらに、新しいミラーリング関係を再確立し、新しいターゲットコントローラ又はミラーコントローラとして不良でないコントローラを決定して、ターゲットデータ及びターゲットデータのコピーデータが依然として3つの異なるコントローラに記憶され得ることを保証し得る。
可能な一実装において、第1の制御装置が不良であるとき、第2の制御装置内にある、ターゲットコントローラの1つのミラーコントローラが、新しいターゲットコントローラとして使用され、新しいターゲットコントローラのためにミラーコントローラが確立され、新しいターゲットコントローラのメモリ内のデータは新しいミラーコントローラのメモリにミラーリングされる。
具体的には、第1の制御装置が不良であるとき、プライマリコントローラは、グローバルミラーリング関係を再度更新する必要がある。第1の制御装置内の各コントローラは、第2の制御装置内に少なくとも1つのミラーコントローラを有する。したがって、プライマリコントローラは、第2の制御装置内のミラーコントローラの1つを新しいターゲットコントローラとして選択し、次いで、新しいターゲットコントローラのための新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータを新しいミラーコントローラのメモリにミラーリングすることができる。本発明のこの実施形態では、第1の制御装置内のコントローラ、又は第2の制御装置内のコントローラが、プライマリコントローラとして選択され得る。分散システムにおけるプライマリコントローラを選択する方法は従来技術において提供されており、詳細は本明細書で説明されない。
例えば、図6B-1及び図6B-2を参照する。図6B-1及び図6B-2に示すように、制御装置520及び制御装置530が正常に動作するとき、データAについて、データAのターゲットコントローラはコントローラ521であり、コントローラ532はデータAのコピーデータA2を記憶し、それにより、コントローラ532はコントローラ521のミラーコントローラである。データBについて、データBのターゲットコントローラはコントローラ523であり、コントローラ534はデータBのコピーデータB2を記憶し、それにより、コントローラ534はコントローラ523のミラーコントローラである。制御装置520が不良であるとき、データAについて、プライマリコントローラは、新しいターゲットコントローラとしてコントローラ532を使用し、コントローラ532に記憶されたデータはデータAに変更され、プライマリコントローラは、新しいミラーリング関係を再確立し、データAのコピーデータA1及びA2をそれぞれコントローラ531及びコントローラ533にミラーリングする。データBについて、プライマリコントローラは、新しいターゲットコントローラとしてコントローラ534を使用し、新しいミラーリング関係を再確立し、データBのコピーデータB1及びB2をそれぞれコントローラ531及びコントローラ533にミラーリングする。データCについて、プライマリコントローラは、新しいミラーリング関係を直接確立し、データCのコピーデータC2をコントローラ534にミラーリングする。データDについて、プライマリコントローラはまた、新しいミラーリング関係を直接確立し、データDのコピーデータD2をコントローラ532にミラーリングする。
前述では、一例として2つの制御装置のみを用いることにより説明されていることを理解されたい。より多くの制御装置が存在する場合、具体的な実装論理は前述におけるものと一貫性があり、詳細はここで再度説明されない。
制御装置が不良であるとき、制御装置内の全てのコントローラが別の制御装置内に少なくとも1つのミラーコントローラを有する、すなわち、制御装置内の全てのデータが別の制御装置内にバックアップされているため、ホストは別の制御装置にアクセスすることにより不良の制御装置内のデータに依然としてアクセスし得ることが習得され得る。これは、ホストサービスの連続性を保証し、記憶システムの信頼性と可用性を向上させる。
第1の制御装置が4つのコントローラを含み、第2の制御装置が4つのコントローラを含むシナリオにおいて、本発明で提供される方法は、7つのコントローラが不良であるときにサービスが中断されないことをサポートし得る。詳細については、図6C-1~図6C-4に示す実施形態を参照する。図6C-1~図6C-4に示すように、制御装置520及び制御装置530が正常に動作するとき、コントローラ521はデータAを記憶し、コントローラ522及びコントローラ532はデータAのコピーデータA1及びA2をそれぞれ記憶する。コントローラ523はデータBを記憶し、コントローラ524及びコントローラ534はデータBのコピーデータB1及びB2をそれぞれ記憶する。コントローラ531はデータCを記憶し、コントローラ532及びコントローラ522はデータCのコピーデータC1及びC2をそれぞれ記憶する。コントローラ533はデータDを記憶し、コントローラ534及びコントローラ524はデータDのコピーデータD1及びD2をそれぞれ記憶する。コントローラ521が不良であるとき、プライマリコントローラは、新しいミラーリング関係を確立し、データAのターゲットコントローラとしてコントローラ522を使用し、データAのコピーデータA1を第3のコントローラ523にミラーリングする。他のコントローラ間のミラーリング関係は変わらないままである。さらに、コントローラ522も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ523を使用し、データAのコピーデータA1をコントローラ524にミラーリングする。データCのコピーデータC2はコントローラ524に再ミラーリングされる。他のコントローラ間のミラーリング関係は変わらないままである。さらに、コントローラ523も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ524を使用し、データAのコピーデータA1をコントローラ534にミラーリングする。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ524を使用し、データBのコピーデータB1をコントローラ532にミラーリングする。他のコントローラ間のミラー関係は変わらないままである。さらに、コントローラ524も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ534を使用し、データAのコピーデータA1をコントローラ531にミラーリングする。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ532を使用し、データBのコピーデータB1をコントローラにミラーリングする。プライマリコントローラは、データCのコピーデータC2をコントローラ534に再ミラーリングする。プライマリコントローラは、データDのコピーデータD2をコントローラ532に再ミラーリングする。別のミラーリング関係は変わらないままである。さらに、コントローラ531も不良である。プライマリコントローラは、データAのコピーデータA1をコントローラ533に再ミラーリングする。プライマリコントローラは、データBのコピーデータB1をコントローラ533に再ミラーリングする。プライマリコントローラは、データCのターゲットコントローラとしてコントローラ532を使用し、データCのコピーデータC1をコントローラ533にミラーリングする。別のミラーリング関係は変わらないままである。さらに、コントローラ532も不良である。この場合、2つのコントローラ、すなわち、コントローラ533及びコントローラ534のみが残されている。したがって、プライマリコントローラにより管理されるミラーリング関係において、各ターゲットコントローラは、1つのミラーコントローラのみを含む。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ533を使用する。コントローラ533は、データCのターゲットコントローラ及びデータDのターゲットコントローラとしても使用される。コントローラ534が、データBのコピーデータB1、データCのコピーデータC1、及びデータDのコピーデータD1を記憶するため、プライマリコントローラは、新しいミラーリング関係を確立する必要はない。さらに、コントローラ533も不良である。全てのコントローラのうちのコントローラ534のみが残されている。全てのデータは、コントローラ534にのみ記憶することができ、バックアップすることはできない。換言すれば、プライマリコントローラは、新しいミラーコントローラを確立することができず、コントローラ534は、データA、データB、データC、及びデータDのターゲットコントローラとして使用される。
コントローラが順次不良であるとき、ホストがターゲットデータに正常にアクセスできることを保証するために、連続的なミラーリングを通して更新されたミラーリング関係が連続的に確立されることが習得され得る。1つのコントローラのみが作動する場合でも、ホストはターゲットデータに依然としてアクセスし得る。これは、ホストサービスの連続性を保証する。
前述では、コントローラ間のミラーリング関係の変化を説明するために、各コントローラが順次不良である一例を単に用いていることに留意されたい。確かに、複数のコントローラが同時に不良である適用シナリオ、又は複数のコントローラが同時不良又は順次不良である適用シナリオも存在する。コントローラのミラーリング関係の具体的な変更論理は、前述との一貫性がある。簡潔さのために、詳細はここで再度説明されない。
さらに、記憶システムの可用性に対する本出願の影響をより良く説明するために、記憶システムが2つの制御装置と8つのコントローラを含む一例が説明のために用いられる。図7を参照する。図7は、制御装置の信頼性モデルの概略図である。図7に示すように、モデルは、4つの並列なコントローラ、2つの並列なバックアップ電力ユニット、2つの並列な電力モジュール、2つの並列なファン、1つのバックプレーン、及び2つの並列な管理モジュールを含み、これらは直列に接続されている。図2B及び図5に示すシナリオにおける各制御装置の可用性は、別個に計算される。前述の2つのシナリオでは、他のコンポーネントは一貫性があり、接続関係も一貫性があることに留意されたい。したがって、制御装置の可用性は、コントローラの関連冗長性にのみ基づいて計算され得る。各コントローラの可用性は、0.999989496であると仮定され、図2Bの各制御装置の可用性は、式1を使用して計算される。式1は、以下のように示される。
Figure 2022541921000002
式1において、aは各コントローラの可用性を示す。Cは切り替え率を示す。計算を通して得られる制御装置の可用性は、0.999998950である。
図5の各制御装置の可用性は、式2を使用することにより計算される。式2は以下のように示される。
Figure 2022541921000003
式2において、Nは、各コントローラの冗長コントローラの数量(すなわち、ミラーコントローラの数量)を示す。計算を通して得られる制御装置の可用性は、0.999999475である。
図5における制御装置の可用性は、図2Bにおける制御装置の可用性より高いことが習得され得る。したがって、図5の制御装置の信頼性はより高い。
さらに、図8を参照する。図8は、記憶システムの信頼性モデルの概略図である。図8に示すように、モデルは、2つの並列な制御装置、X個の直列のハードディスク、及びY個の直列のディスクグループを含む。2つの制御装置、X個のハードディスク、及びY個のディスクグループは、直列に接続されている。図2B及び図5の記憶システム全体の可用性は、図8に示すモデルを使用することにより計算される。図2B及び図5に示すシナリオでは、他のコンポーネントは一貫性があり、接続関係も一貫性があることを理解されたい。したがって、記憶システム全体の可用性は、制御装置のみに基づいて計算されてもよい。図2Bに示すシナリオでは、各制御装置は別のものから独立していることに留意されたい。具体的には、1つの制御装置が不良であるとき、記憶システム全体が作動できない。したがって、制御装置は直列接続モデルであることが仮定され、図2Bにおける記憶システムの可用性は式3を使用することにより計算される。式3は以下のように示される。
Figure 2022541921000004
式3において、A1及びA2は各制御装置の可用性を示す。全ての制御装置が同じであるため、A1とA2の値は同じであり、0.999998950である。したがって、記憶システム全体の可用性は、0.999997900である。
しかしながら、図5に示すシナリオでは、各制御装置は別のものに関連づけられている。1つの制御装置が不良である場合でも、他の制御装置はホストアクセスを依然としてサポートすることができ、記憶システム全体が正常に作動することができる。したがって、制御装置は並列接続モデルであることが仮定され、図5における記憶システムの可用性は式4を使用することにより計算する。式4は次のとおりである。
Figure 2022541921000005
式4において、aは各制御装置の可用性を示す。Cは切り替え率を示す。計算を通して得られる記憶システム全体の可用性は、0.999999475である。
図5の記憶システムの可用性は、図2Bの記憶システムの可用性より一層高いことが習得され得る。換言すれば、本出願の実施形態で提供される解決策は、制御装置及び記憶システムの可用性を効果的に向上させ、記憶システムの信頼性を向上させ、ホストサービスの連続性を保証することができる。
本出願の実施形態における方法は上記で詳細に説明されている。本出願の実施形態における解決策をより良く実施することを容易にするために、解決策を実施する際に協働するように使用される対応関連機器が以下にさらに提供される。
図9を参照する。図9は、本出願の一実施形態による記憶制御システムの概略構造図である。図9に示すように、記憶制御システム900は、第1の制御装置9100及び第2の制御装置9200を含む。第1の制御装置9100は、ターゲットコントローラ9110を含む。ターゲットコントローラ9110は、受信モジュール9111及び処理モジュール9112を含む。
受信モジュール9111は、書き込み要求を受信するように構成される。書き込み要求は、書き込まれるべきデータを含む。
処理モジュール9112は、書き込まれるべきデータをターゲットコントローラ9110のメモリに書き込むように構成される。
処理モジュール9112はさらに、書き込まれるべきデータをターゲットコントローラ9110のミラーコントローラのメモリに書き込むように構成される。少なくとも1つのミラーコントローラが、第2の制御装置9200に属する。
可能な一実装において、ターゲットコントローラ9110とターゲットコントローラ9110のミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システム900は、プライマリコントローラ9210を含む。プライマリコントローラ9210は、別のコントローラを管理するように構成された、第1の制御装置9100及び第2の制御装置9200内のコントローラから選択されたコントローラである。プライマリコントローラ9210は、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、プライマリコントローラ9210により、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択するように構成されたトラブルシューティングモジュール9211であり、新しいターゲットコントローラは、書き込み要求を受信するように構成される、トラブルシューティングモジュール9211と、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュール9212であり、Mは1以上N未満の整数である、ミラーリングモジュール9212を含む。
可能な一実装において、Nは3に等しい。
可能な一実装において、第1の制御装置9100が不良であるとき、第2の制御装置9200内にある、ターゲットコントローラ9110の1つのミラーコントローラが、新しいターゲットコントローラとして使用され、新しいターゲットコントローラのためにミラーコントローラが確立され、新しいターゲットコントローラのメモリ内のデータは新しいミラーコントローラのメモリにミラーリングされる。
前述のターゲットコントローラ及びプライマリコントローラの構造、並びに記憶制御システムの信頼性を向上させる処理プロセスは例示に過ぎず、特定の制限を構成すべきではないことを理解されたい。ターゲットコントローラ及びプライマリコントローラ内のモジュールは、必要に応じて追加され、縮小され、あるいは組み合わせられてもよい。さらに、ターゲットコントローラ及びプライマリコントローラ内のモジュールの動作及び/又は機能は、それぞれ、図4に記載される方法の対応する手順を実施するために使用される。簡潔さのために、詳細はここで再度説明されない。
図10を参照する。図10は、本出願の一実施形態による別の記憶制御システムの概略構造図である。図10に示すように、記憶制御システム100は、第1の制御装置1100及び第2の制御装置1200を含む。第1の制御装置1100は、ターゲットコントローラ1110を含む。ターゲットコントローラ1110は、プロセッサ1111、通信インターフェース1112、及びメモリ1113を含む。プロセッサ1111、通信インターフェース1112、及びメモリ1113は、内部バス1114を介して接続される。
可能な一実装において、記憶制御システム100は、プライマリコントローラ1210を含む。プライマリコントローラ1210は、別のコントローラを管理するように構成された、第1の制御装置1100及び第2の制御装置1200内のコントローラから選択されたコントローラである。プライマリコントローラ1210は、プロセッサ1211、通信インターフェース1212、メモリ1213を含む。プロセッサ、通信インターフェース1212、及びメモリ1213は、内部バス1214を介して接続される。
受信モジュール9111により実施される機能は具体的に通信インターフェース1112により実施されてもよく、処理モジュール9112により実施される機能は具体的にプロセッサ1111により実施されてもよく、トラブルシューティングモジュール9211及びミラーモジュール9212により実施される機能は具体的にプロセッサ1211により実施されてもよいことを理解されたい。
メモリ1113は、プログラムコード及びデータを記憶するように構成され得、それにより、プロセッサ1111は、メモリ1113に記憶されたプログラムコード及びデータを呼び出して、受信モジュール9111及び/又は処理モジュール9112の機能を実施する。プロセッサ1111は、メモリ1113に記憶されたプログラムコード及びデータを呼び出して、図4に記載される方法の対応する手順を実施することができる。
メモリ1213は、プログラムコード及びデータを記憶するように構成され得、それにより、プロセッサ1211は、メモリ1213に記憶されたプログラムコード及びデータを呼び出して、トラブルシューティングモジュール9211及び/又はミラーリングモジュール9212の機能を実施する。プロセッサ1211は、メモリ1213に記憶されたプログラムコード及びデータを呼び出して、図4に記載される方法の対応する手順を実施することができる。
ターゲットコントローラ1110及びプライマリコントローラ1210は各々、内蔵処理論理を有する論理装置、例えば、FPGA又はデジタル信号プロセッサ(digital signal processor、DSP)を使用することにより実施されてもよいことに留意されたい。さらに、ターゲットコントローラ1110及びプライマリコントローラ1210は、図10に示されるものより多くの又は少ないコンポーネントを含んでもよく、あるいは異なるコンポーネント構成方式を有してもよい。
図10に示すターゲットコントローラ1110及びプライマリコントローラ1210による記憶制御システムの信頼性を向上させる処理プロセスについては、図1~図8の関連する説明を参照することを理解されたい。簡潔さのため、詳細はここで再度説明されない。
本出願の一実施形態は、コンピュータ読取可能記憶媒体をさらに提供する。コンピュータ読取可能記憶媒体は命令を記憶する。命令がコンピュータ又はプロセッサ上で実行されると、コンピュータ又はプロセッサは、前述の実施形態で記録された方法のうちのいずれか1つのステップの一部又は全部を実行可能にされる。
本出願の一実施形態は、コンピュータプログラムをさらに提供する。コンピュータプログラムは命令を含む。コンピュータプログラムがコンピュータにより実行されると、コンピュータは、記憶システムの信頼性を向上させる方法のうちのいずれか1つのステップの一部又は全部を実行可能にされる。
前述の実施形態では、各実施形態の説明はそれぞれの焦点を有する。ある実施形態において詳細に説明されていない部分については、別の実施形態における関連する説明を参照する。
簡潔な説明のために、前述の方法の実施形態は一連の動作として表されていることに留意されたい。しかしながら、本出願によれば、いくつかのステップは別の順序で又は同時に実行され得るため、当業者は、本出願が記載された動作の順序に限定されないことを理解すべきである。さらに、本明細書に記載された実施形態は全て例示的な実施形態に属し、関連する動作及びモジュールは必ずしも本出願により必要とされないことが、当業者により理解されるべきである。
本出願で提供されるいくつかの実施形態において、開示される装置は別の方法で実施され得ることを理解されたい。例えば、記載された装置の実施形態は単なる例である。例えば、ユニットへの分割は単なる論理的な機能分割であり、実際の実装において他の分割でもよい。例えば、複数のユニット又はコンポーネントが組み合わせられ、又は別のシステムに統合されてもよく、あるいは、いくつかの特徴は無視されてもよく、又は実行されなくてもよい。さらに、表示され又は論じられた相互結合、直接結合、又は通信接続は、いくつかのインターフェースを介して実施されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的又は別の形態で実施されてもよい。
別個の部分として説明された前述のユニットは、物理的に別個でも又はそうでなくてもよく、ユニットとして表示された部分は、物理的ユニットでも又はそうでなくてもよく、1つの位置に配置されてもよく、あるいは複数のネットワークユニット上に分散されてもよい。ユニットの一部又は全部は、実施形態の解決策の目的を達成するために、実際の要件に基づいて選択されてもよい。
さらに、本出願の実施形態における機能ユニットは1つの処理ユニットに統合されてもよく、あるいは、ユニットの各々は物理的に単独で存在してもよく、あるいは、2つ以上のユニットが1つのユニットに統合される。統合ユニットは、ハードウェアの形態で実施されてもよく、あるいはソフトウェア機能ユニットの形態で実施されてもよい。
第2の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システムは、プライマリコントローラを含む。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。プライマリコントローラは、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択するように構成されたトラブルシューティングモジュールであり、新しいターゲットコントローラは、書き込み要求を受信するように構成される、トラブルシューティングモジュールと、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールと、を含む。Mは、1以上N未満の整数である。
第2の態様を参照し、可能な一実装において、ターゲットコントローラとターゲットコントローラのミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システムは、プライマリコントローラをさらに含む。プライマリコントローラは、別のコントローラを管理するように構成された、第1の制御装置及び第2の制御装置内のコントローラから選択されたコントローラである。プライマリコントローラは、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含まないとき、ターゲットコントローラのためのM個の新しいミラーコントローラを確立するように構成されたトラブルシューティングモジュールと、ターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールと、を含む。Mは1以上N未満の整数である。
以下では、添付の図面を参照して本出願の実施形態における技術的解決策について明確に説明する。明らかに、説明される実施形態は、本出願の実施形態の全てではなく、一部に過ぎない。創造的努力なしに本出願の実施形態に基づいて当業者により得られる全て他の実施形態は、本出願の保護範囲内に入るものとする。
不揮発性メモリエクスプレス(non-volatile memory express、NVMe)は、論理装置インターフェース仕様であり、フラッシュストレージのために設計された、シリアルATAアドバンストホストコントローラインターフェース(serial ATA advanced host controller interface、AHCI)と同様のプロトコルである。NVMeの本質は、コンピュータと記憶装置との間に複数のパスを確立することである。複数のパスは、実際には複数のキューである。NVMeプロトコルは、最大64k個のキューをサポートすることができ、同時性と性能を大幅に向上させる。
ダイレクトメモリアクセス(direct memory access、DMA)は、I/O切り替えがハードウェアにより実行される作動方式である。この方式では、DMAコントローラは、CPUからバスの全制御を引き継ぎ、データは、CPUを通過することなくメモリとIO装置との間で直接交換される。DMAは、大量のデータが通信されるとき、CPUのオーバヘッドを低減し得る。DMAコントローラは、メモリアクセスアドレスを生成し、メモリアクセスプロセスを制御するために使用される。転送速度が高く、CPUは基本的に介入せず、初期化及び完了の間のみ参加する。CPUと周辺機器が並列に作動し、したがって、効率が比較的高い。
故障率(failure rate)は不良率とも呼ばれ、エンジニアリングシステム又はコンポーネントがどれほどの頻度で故障するかである。故障率は、通常、時間あたりの故障数量で測定され、文字λで表される。平均故障間隔(mean time between failures、MTBF)は、現在の故障から次の故障までに修理可能装置によりとられる平均時間である。λ=1/MTBFである。平均修理時間(mean time to repair、MTTR)は、装置が不良状態から作動状態に変わるときの平均修理時間である。可用性(availability、A)は、タスクが開始されるときにシステム、サブシステム、又は装置が指定された動作可能又はコミット可能な状態にある度合いである。換言すれば、可用性は、システムが作動可能な状態にある時間の割合である。A=MTBF/(MTBF+MTTR)である。システムの可用性を計算するために、単一ユニットのMTBFを単一ユニットの故障率に基づいて計算して、単一ユニットの可用性を計算し、次いで、システムの全体可用性が直列及び並列接続モデルに基づいて計算される。図1Aを参照する。図1Aは、直列接続モデルの概略図である。ユニット1、ユニット2、...、及びユニットNが直列に接続されている。ユニット1の可用性はA1であり、ユニット2の可用性はA2であり、...、ユニットNの可用性はAnである。したがって、システム全体の可用性は、A=A1*A2*...*Anである。図1Bは、並列接続モデルの概略図である。並列接続モデルは、直列接続モデルより複雑である。並列接続モデルにおける冗長ユニットは、プライマリ及びセカンダリ冗長ユニット、並びに負荷分担冗長ユニットに分類される。図1Bのユニット1、ユニット2、...、及びユニットNがプライマリ及びセカンダリ冗長ユニットであり、各ユニットの可用性がaである場合、システム全体の可用性は、A=1-{C*{1-a*(N+1-N*a)}/N+(1-C)*(1-a)/N}である。Cは、切り替え率、すなわち、プライマリユニットからセカンダリユニットに成功裏に切り替える確率を表す。C=C1*C2である。C1は、プライマリユニットの不良検出率を表す。C2は、セカンダリユニットの不良検出率を表す。詳細には、各ユニットが1つの冗長ユニットのみを有する、すなわちN=1である場合、式は、A=a+C*a*(1-a)として簡素化され得る。図1Bのユニット1、ユニット2、...、及びユニットNが負荷分担冗長ユニットであり、各ユニットの可用性がaである場合、システム全体の可用性は、A=1-{C*{1-a*(N+1-N*a)}/N+(1-C)*(1-aN+1)/(N+1)}である。Cは、各ユニットの不良検出率を示す。
一般に、システムスケーラビリティを向上させるために、エンタープライズ記憶システムは、通常、複数の制御記憶ノードを相互接続して統一された分散システムを形成し、アプリケーションにストレージサービスを提供する。具体的には、図2Aを参照し、図2Aは記憶システムの概略構造図である。図2Aに示すように、装置210は、ストレージサービス、例えば、ホスト又はサーバを使用する装置である。装置210は、制御装置220及び制御装置230に接続される。制御装置220は、複数のコントローラを含む。この実施形態では、4つのコントローラが説明のために一例として用いられる。4つのコントローラは、コントローラ221、コントローラ222、コントローラ223、及びコントローラ224であり、PCIeインターフェースを介して互いに接続される。制御装置230もまた、複数のコントローラを含む。この実施形態では、また、4つのコントローラが説明のために一例として用いられる。4つのコントローラは、コントローラ231、コントローラ232、コントローラ233、及びコントローラ234であり、また、PCIeインターフェースを介して互いに接続される。システムの信頼性を向上させるために、コントローラは、デュアルリンク冗長方式で互いに接続される。制御装置220は、さらに、PCIeインターフェースを介してデュアルリンク冗長方式で制御装置230に接続される。制御装置220及び制御装置230は、ストレージアレイでもよい。制御装置220及び制御装置230に含まれるコントローラは、中央処理装置CPUにメモリを加えた構造を使用してもよい。CPUは、メモリ内のプログラムを呼び出して、対応する機能を実行する。代替的に、コントローラは、独立した制御チップ、例えばフィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)でもよく、プログラムは、FPGAに焼き込まれる。制御装置220は、SASインターフェースを介してメモリ240に接続される。制御装置230は、SASインターフェースを介してメモリ250に接続される。システムの信頼性を向上させるために、制御装置220とメモリ240との間の接続、及び制御装置230とメモリ250との間の接続は、デュアルリンク冗長方式で実施される。メモリ240及びメモリ250は、データを記憶する装置、例えばストレージアレイである。メモリ240は、拡張ボード241、拡張ボード242、及びN個の記憶媒体を含む。Nは、1より大きい正の整数である。拡張ボード241は、メモリ240を制御することを担う。拡張ボード242は、拡張ボード241の冗長拡張ボードである。拡張ボード241が不良であるとき、拡張ボード242は、拡張ボード241の働きを引き継いで、システム全体の信頼性を向上させる。メモリ250の構造は、メモリ240の構造と一貫性があり、メモリ250は、拡張ボード251、拡張ボード252、及びN個の記憶媒体を含む。
図3を参照する。図3は、本出願の一実施形態による可能な適用シナリオである。この適用シナリオにおいて、ホスト310は、制御装置320及び制御装置330に接続される。ホスト310は、光ファイバを介して制御装置320及び制御装置330に接続されてもよく、あるいはイーサネット(Ethernet)などのネットワークを介して制御装置320及び制御装置330に接続されてもよい。さらに、制御装置320及び制御装置330は、2つのスイッチカード(図3には示されていない)を有する。スイッチカードの一方はプライマリスイッチカードであり、他方のスイッチカードはセカンダリスイッチカードである。制御装置320及び制御装置330内の全てのコントローラは、プライマリスイッチカードに接続される必要がある。プライマリスイッチカードは、ある制御装置内のコントローラと別の制御装置内のコントローラとの間の通信、及び制御装置内のコントローラとメモリ340との間の通信をサポートするように構成される。プライマリスイッチカードが不良であるとき、セカンダリスイッチカードがプライマリスイッチカードの働きを引き継いで、システムの信頼性を保証する。制御装置320は、複数のコントローラを含む。この実施形態において、制御装置320が4つのコントローラ、例えば、コントローラ321、コントローラ322、コントローラ323、及びコントローラ324を含む一例が説明のために用いられる。制御装置330もまた、複数のコントローラを含む。この実施形態において、制御装置330もまた4つのコントローラ、例えば、コントローラ331、コントローラ332、コントローラ333、及びコントローラ334を含む一例が説明のために用いられる。制御装置320及び制御装置330内の全てのコントローラ間の接続、及び制御装置320と制御装置330との間の接続は、RDMAチャネルを介して実施される。コントローラ間のデータは、CPUを通過することなくピアエンドに直接通信され得る。確かに、接続は代替的に、PCIeインターフェースを介して実施されてもよい。制御装置320及び制御装置330は、RDMAチャネルを介してメモリ340に別個に接続される。換言すれば、メモリ340は、制御装置320及び制御装置330により共有される。具体的には、制御装置320及び制御装置330は、メモリ340内のデータに同時にアクセスすることができる。メモリ340は、CPU341及びメモリ342を含む記憶サーバ(すなわち、記憶ノード)でもよく、コントローラによるアクセスのためのデータを記憶するように構成されたN個の記憶媒体を含む。Nは、1より大きい正の整数である。メモリ340のメモリ342はプログラム命令を記憶する。CPU341は、プログラム命令を呼び出してメモリ340を管理及び制御し、例えば、メモリ340上の関連する構成を実行し、あるいはメモリ340をアップグレードする。制御装置内の全てのコントローラは、ホストにより送出されたIOを受信し、IO内に搬送されたアドレスに基づいて、IOを処理するターゲットコントローラを決定するように構成され得る。ターゲットコントローラが、ホストにより送出されたIOを受信したコントローラである場合、ターゲットコントローラは、IOを直接処理する。ターゲットコントローラが、ホストにより送出されたIOを受信したコントローラでない場合、コントローラはIOをターゲットコントローラに転送し、ターゲットコントローラがIOを処理する。
システムの信頼性を向上させるために、全ての接続にデュアルリンク冗長性が使用されることに留意されたい。具体的には、コントローラ間、制御装置間、及び制御装置とメモリとの間の各接続に2つのRDMAチャネルが使用される。さらに、ホスト310は、さらなる制御装置にさらに接続されてもよく、制御装置は、複数の共有メモリにさらに接続されてもよい。さらに、各コントローラは少なくとも1つのミラーコントローラを含み、少なくとも1つのミラーコントローラは別の制御装置に属する。具体的には、各コントローラに記憶されたデータは別のコントローラにバックアップされ、少なくとも1つのコントローラは別の制御装置に属する。例えば、コントローラ321のミラーコントローラには、コントローラ322及びコントローラ331が含まれる。コントローラ321に記憶されたデータAがバックアップされる場合、コントローラ322及びコントローラ331は、対応して、データAのコピーデータA1及びコピーデータA2を記憶する。コントローラ321及びコントローラ322は制御装置320に属し、コントローラ331は制御装置330に属する。このようにして、データAは複数の制御装置にわたって記憶される。各コントローラのミラーコントローラは予め設定される。各コントローラと、各コントローラに対応するミラーコントローラは、バックアップコントローラグループを形成する。
具体的には、ターゲットコントローラは、ホストに接続された任意の制御装置内の任意のコントローラであってよい。例えば、図3における関連する説明を参照し、ターゲットコントローラは、制御装置320内のコントローラ321でもよい。詳細には、ターゲットコントローラが、ホストにより送出されたIOを現在受信しているコントローラであるとき、ターゲットコントローラは、ホストにより送信された書き込み要求を直接受信する。ターゲットコントローラが、ホストにより送出されたIOを現在受信しているコントローラでないとき、ターゲットコントローラは、コントローラにより転送された書き込み要求を受信する。
具体的には、全ての制御装置内のあらゆる2つのコントローラが、それぞれの状態を検知するために、互いにハートビートパケットを周期的に送信する。コントローラが、予め設定された期間内に別のコントローラにより送信されたハートビートパケットを受信しない場合、コントローラが不良であると決定され得る。この場合、プライマリコントローは、各コントローラのミラーリング関係を再調整する必要がある。ハートビート期間と予め設定された期間は、実際の要件に基づいて設定されてよい。これは、本出願において限定されない。例えば、図5において、制御装置520及び制御装置530内の8つのコントローラは、互いにハートビートパケットを送信する。コントローラ521が、予め設定された期間内に、コントローラ522により送信されたハートビートパケットを受信しない場合、コントローラ521は、コントローラ522が不良であると決定してもよい。
さらに、ターゲットコントローラを含むM個のコントローラが不良であるとき、プライマリコントローラは、残りのミラーコントローラから新しいターゲットコントローラを決定し、新しいターゲットコントローラのためにM個の新しいミラーコントローラを確立して、バックアップコントローラグループ内のコントローラの数量が依然として前と同じであり(すなわち、N個のコントローラ)、新しいターゲットコントローラ内のデータがM個の新しいミラーコントローラにミラーリングされることを保証する。さらに、プライマリコントローラは、ホストから書き込み要求を受信し、次いで、書き込み要求を新しいターゲットコントローラに転送することができる。新しいターゲットコントローラは、書き込み要求内の書き込まれるべきデータを、新しいターゲットコントローラのメモリ及び新しいターゲットコントローラのミラーコントローラ(M個の新しいミラーコントローラを含む)のメモリに書き込む。
任意で、Nの値は3である。具体的には、ターゲットコントローラは2つのミラーコントローラを含み、ターゲットコントローラと、ミラーコントローの少なくとも1つは、異なる制御装置に配置される。
任意で、Nの値は3である。具体的には、ターゲットコントローラは2つのミラーコントローラを含み、ターゲットコントローラと、ミラーコントローの少なくとも1つは、異なる制御装置に配置される。
例えば、図6A-1及び図6A-2を参照する。図6A-1及び図6A-2に示すように、制御装置520及び制御装置530が正常に動作するとき、コントローラ521、コントローラ522、及びコントローラ532は、バックアップコントローラグループを形成し、それぞれ、データAと、データAのコピーデータA1、及びA2を記憶する。コントローラ522、コントローラ531、及びコントローラ532は、別のバックアップコントローラグループを形成し、それぞれ、データCと、データCのコピーデータC1、及びC2を記憶する。データAについて、データAのターゲットコントローラはコントローラ521である。コントローラ522及びコントローラ532がデータAのコピーデータA1及びA2を記憶しているため、コントローラ521及びコントローラ522が同時に不良であるとき、プライマリコントローラは、コントローラ532を新しいターゲットコントローラとして選択する。換言すれば、コントローラ532に記憶されたデータは、データAに変更される。プライマリコントローラは、新しいミラーリング関係を再確立する。コントローラ532が新しいターゲットコントローラとして決定された後、データAのコピーデータA1及びA2はそれぞれ、コントローラ531及びコントローラ523にミラーリングされる。換言すれば、コントローラ523及びコントローラ531は、コントローラ532のミラーコントローラである。同様に、データCについて、データCのターゲットコントローラはコントローラ531である。コントローラ522がデータCのコピーデータC2を記憶しているため、コントローラ522が不良であるとき、プライマリコントローラは、ターゲットコントローラ531のための新しいミラーコントローラを確立して、新しいミラーリング関係を確立する。プライマリコントローラは、データCのコピーデータをコントローラ524にミラーリングする。換言すれば、コントローラ524及びコントローラ532は、ターゲットコントローラ531のミラーコントローラである。
第1の制御装置が4つのコントローラを含み、第2の制御装置が4つのコントローラを含むシナリオにおいて、本発明で提供される方法は、7つのコントローラが不良であるときにサービスが中断されないことをサポートし得る。詳細については、図6C-1~図6C-4に示す実施形態を参照する。図6C-1~図6C-4に示すように、制御装置520及び制御装置530が正常に動作するとき、コントローラ521はデータAを記憶し、コントローラ522及びコントローラ532はデータAのコピーデータA1及びA2をそれぞれ記憶する。コントローラ523はデータBを記憶し、コントローラ524及びコントローラ534はデータBのコピーデータB1及びB2をそれぞれ記憶する。コントローラ531はデータCを記憶し、コントローラ532及びコントローラ522はデータCのコピーデータC1及びC2をそれぞれ記憶する。コントローラ533はデータDを記憶し、コントローラ534及びコントローラ524はデータDのコピーデータD1及びD2をそれぞれ記憶する。コントローラ521が不良であるとき、プライマリコントローラは、新しいミラーリング関係を確立し、データAのターゲットコントローラとしてコントローラ522を使用し、データAのコピーデータA1をコントローラ523にミラーリングする。他のコントローラ間のミラーリング関係は変わらないままである。さらに、コントローラ522も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ523を使用し、データAのコピーデータA1をコントローラ524にミラーリングする。データCのコピーデータC2はコントローラ524に再ミラーリングされる。他のコントローラ間のミラーリング関係は変わらないままである。さらに、コントローラ523も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ524を使用し、データAのコピーデータA1をコントローラ534にミラーリングする。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ524を使用し、データBのコピーデータB1をコントローラ532にミラーリングする。他のコントローラ間のミラー関係は変わらないままである。さらに、コントローラ524も不良である。プライマリコントローラは、データAのターゲットコントローラとしてコントローラ534を使用し、データAのコピーデータA1をコントローラ531にミラーリングする。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ532を使用し、データBのコピーデータB1をコントローラ531にミラーリングする。プライマリコントローラは、データCのコピーデータC2をコントローラ534に再ミラーリングする。プライマリコントローラは、データDのコピーデータD2をコントローラ532に再ミラーリングする。別のミラーリング関係は変わらないままである。さらに、コントローラ531も不良である。プライマリコントローラは、データAのコピーデータA1をコントローラ533に再ミラーリングする。プライマリコントローラは、データBのコピーデータB1をコントローラ533に再ミラーリングする。プライマリコントローラは、データCのターゲットコントローラとしてコントローラ532を使用し、データCのコピーデータC1をコントローラ533にミラーリングする。別のミラーリング関係は変わらないままである。さらに、コントローラ532も不良である。この場合、2つのコントローラ、すなわち、コントローラ533及びコントローラ534のみが残されている。したがって、プライマリコントローラにより管理されるミラーリング関係において、各ターゲットコントローラは、1つのミラーコントローラのみを含む。プライマリコントローラは、データBのターゲットコントローラとしてコントローラ533を使用する。コントローラ533は、データCのターゲットコントローラ及びデータDのターゲットコントローラとしても使用される。コントローラ534が、データBのコピーデータB1、データCのコピーデータC1、及びデータDのコピーデータD1を記憶するため、プライマリコントローラは、新しいミラーリング関係を確立する必要はない。さらに、コントローラ533も不良である。全てのコントローラのうちのコントローラ534のみが残されている。全てのデータは、コントローラ534にのみ記憶することができ、バックアップすることはできない。換言すれば、プライマリコントローラは、新しいミラーコントローラを確立することができず、コントローラ534は、データA、データB、データC、及びデータDのターゲットコントローラとして使用される。
可能な一実装において、ターゲットコントローラ9110とターゲットコントローラ9110のミラーコントローラは、バックアップコントローラグループを形成する。バックアップコントローラグループは、N個のコントローラを含む。Nは2以上の整数である。記憶制御システム900は、プライマリコントローラ9210を含む。プライマリコントローラ9210は、別のコントローラを管理するように構成された、第1の制御装置9100及び第2の制御装置9200内のコントローラから選択されたコントローラである。プライマリコントローラ9210は、バックアップコントローラグループ内のM個のコントローラが不良であり、M個のコントローラがターゲットコントローラを含むとき、新しいターゲットコントローラとしてターゲットコントローラのミラーコントローラからコントローラを選択するように構成されたトラブルシューティングモジュール9211であり、新しいターゲットコントローラは、書き込み要求を受信するように構成される、トラブルシューティングモジュール9211と、新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、新しいターゲットコントローラのメモリ内のデータをM個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュール9212であり、Mは1以上N未満の整数である、ミラーリングモジュール9212を含む。

Claims (15)

  1. 記憶システムの信頼性を向上させる方法であって、前記記憶システムは第1の制御装置及び第2の制御装置を含み、当該方法は、
    ターゲットコントローラにより、書き込み要求を受信するステップであり、前記書き込み要求は書き込まれるべきデータを含み、前記ターゲットコントローラは前記第1の制御装置に属する、ステップと、
    前記ターゲットコントローラにより、前記書き込まれるべきデータを前記ターゲットコントローラのメモリに書き込むステップと、
    前記ターゲットコントローラにより、前記書き込まれるべきデータを前記ターゲットコントローラのミラーコントローラのメモリに書き込むステップであり、少なくとも1つのミラーコントローラが前記第2の制御装置に属する、ステップと、
    を含む方法。
  2. 前記第1の制御装置及び前記第2の制御装置は記憶装置に接続され、当該方法は、
    前記第1の制御装置が不良であるとき、前記第2の制御装置を使用することにより前記記憶装置にアクセスするステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記ターゲットコントローラと前記ターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成し、前記バックアップコントローラグループはN個のコントローラを含み、Nは2以上の整数であり、
    当該方法は、
    前記バックアップコントローラグループ内のM個のコントローラが不良であり、前記M個のコントローラが前記ターゲットコントローラを含むとき、プライマリコントローラにより、新しいターゲットコントローラとして前記ターゲットコントローラの前記ミラーコントローラからコントローラを選択するステップであり、前記新しいターゲットコントローラは、前記書き込み要求を受信するように構成され、前記プライマリコントローラは、別のコントローラを管理するように構成された、前記第1の制御装置及び前記第2の制御装置内のコントローラから選択されたコントローラである、ステップと、
    前記プライマリコントローラにより、前記新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、前記新しいターゲットコントローラのメモリ内のデータを前記M個の新しいミラーコントローラにミラーリングするステップであり、Mは1以上N未満の整数である、ステップと、
    をさらに含む、請求項1又は2に記載の方法。
  4. 前記ターゲットコントローラと前記ターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成し、前記バックアップコントローラグループはN個のコントローラを含み、Nは2以上の整数であり、
    当該方法は、
    前記バックアップコントローラグループ内のM個のコントローラが不良であり、前記M個のコントローラが前記ターゲットコントローラを含まないとき、プライマリコントローラにより、前記ターゲットコントローラのためのM個の新しいミラーコントローラを確立し、前記ターゲットコントローラの前記メモリ内のデータを前記M個の新しいミラーコントローラにミラーリングするステップであり、前記プライマリコントローラは、別のコントローラを管理するように構成された、前記第1の制御装置及び前記第2の制御装置内のコントローラから選択されたコントローラであり、Mは1以上N未満の整数である、ステップと、
    をさらに含む、請求項1又は2に記載の方法。
  5. Nは3に等しい、請求項3又は4に記載の方法。
  6. 前記第1の制御装置が不良であるとき、前記第2の制御装置内にある、前記ターゲットコントローラの1つのミラーコントローラが、新しいターゲットコントローラとして使用され、前記新しいターゲットコントローラのためにミラーコントローラが確立され、前記新しいターゲットコントローラのメモリ内のデータは前記新しいミラーコントローラのメモリにミラーリングされる、請求項1又は2に記載の方法。
  7. 記憶制御システムであって、第1の制御装置及び第2の制御装置を含み、前記第1の制御装置はターゲットコントローラを含み、前記ターゲットコントローラは、
    書き込み要求を受信するように構成された受信モジュールであり、前記書き込み要求は書き込まれるべきデータを含む、受信モジュールと、
    前記書き込まれるべきデータを前記ターゲットコントローラのメモリに書き込むように構成された処理モジュールであり、
    前記処理モジュールはさらに、前記書き込まれるべきデータを前記ターゲットコントローラのミラーコントローラのメモリに書き込むように構成され、少なくとも1つのミラーコントローラが前記第2の制御装置に属する、処理モジュールと、
    を含む、記憶制御システム。
  8. 前記ターゲットコントローラと前記ターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成し、前記バックアップコントローラグループはN個のコントローラを含み、Nは2以上の整数であり、当該記憶制御システムは、プライマリコントローラを含み、前記プライマリコントローラは、別のコントローラを管理するように構成された、前記第1の制御装置及び前記第2の制御装置内のコントローラから選択されたコントローラであり、前記プライマリコントローラは、
    前記バックアップコントローラグループ内のM個のコントローラが不良であり、前記M個のコントローラが前記ターゲットコントローラを含むとき、前記プライマリコントローラにより、新しいターゲットコントローラとして前記ターゲットコントローラの前記ミラーコントローラからコントローラを選択するように構成されたトラブルシューティングモジュールであり、前記新しいターゲットコントローラは、前記書き込み要求を受信するように構成される、トラブルシューティングモジュールと、
    前記新しいターゲットコントローラのためのM個の新しいミラーコントローラを確立し、前記新しいターゲットコントローラのメモリ内のデータを前記M個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールであり、Mは1以上N未満の整数である、ミラーリングモジュールと、
    を含む、請求項7に記載の記憶制御システム。
  9. 前記ターゲットコントローラと前記ターゲットコントローラのミラーコントローラはバックアップコントローラグループを形成し、前記バックアップコントローラグループはN個のコントローラを含み、Nは2以上の整数であり、当該記憶制御システムは、プライマリコントローラをさらに含み、前記プライマリコントローラは、別のコントローラを管理するように構成された、前記第1の制御装置及び前記第2の制御装置内のコントローラから選択されたコントローラであり、前記プライマリコントローラは、
    前記バックアップコントローラグループ内のM個のコントローラが不良であり、前記M個のコントローラが前記ターゲットコントローラを含まないとき、前記プライマリコントローラにより、前記ターゲットコントローラのためのM個の新しいミラーコントローラを確立するように構成されたトラブルシューティングモジュールと、
    前記ターゲットコントローラの前記メモリ内のデータを前記M個の新しいミラーコントローラにミラーリングするように構成されたミラーリングモジュールであり、Mは1以上N未満の整数である、ミラーリングモジュールと、
    を含む、請求項7に記載の記憶制御システム。
  10. Nは3に等しい、請求項8又は9に記載の記憶制御システム。
  11. 前記第1の制御装置が不良であるとき、前記第2の制御装置内にある、前記ターゲットコントローラの1つのミラーコントローラが、新しいターゲットコントローラとして使用され、前記新しいターゲットコントローラのためにミラーコントローラが確立され、前記新しいターゲットコントローラのメモリ内のデータは前記新しいミラーコントローラのメモリにミラーリングされる、請求項7に記載の記憶制御システム。
  12. 記憶制御システムであって、第1の制御装置及び第2の制御装置を含み、前記第1の制御装置はターゲットコントローラを含み、前記ターゲットコントローラはプロセッサ及びメモリを含み、前記プロセッサは、前記メモリに記憶されたコンピュータ命令を実行して、前記ターゲットコントローラが請求項1乃至6のうちいずれか1項に記載の方法を実行することを可能にする、記憶制御システム。
  13. 当該記憶制御システムはプライマリコントローラを含み、前記プライマリコントローラは、別のコントローラを管理するように構成された、前記第1の制御装置及び前記第2の制御装置内のコントローラから選択されたコントローラであり、前記プライマリコントローラはプロセッサ及びメモリを含み、前記プロセッサは、前記メモリに記憶されたコンピュータ命令を実行して、前記プライマリコントローラが請求項1乃至6のうちいずれか1項に記載の方法を実行することを可能にする、請求項12に記載の記憶制御システム。
  14. コンピュータ記憶媒体であって、コンピュータプログラムを記憶し、前記コンピュータプログラムがプロセッサにより実行されると、請求項1乃至6のうちいずれか1項に記載の方法が実施される、コンピュータ記憶媒体。
  15. コンピュータプログラム製品であって、コンピュータ命令を含み、前記コンピュータ命令がコンピュータにより実行されると、前記コンピュータは請求項1乃至6のうちいずれか1項に記載の方法を実行可能にされる、コンピュータプログラム製品。
JP2022504161A 2019-07-22 2019-07-22 記憶システムの信頼性を向上させる方法及び関連機器 Active JP7358613B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/097167 WO2021012169A1 (zh) 2019-07-22 2019-07-22 一种提高存储系统可靠性的方法和相关装置

Publications (2)

Publication Number Publication Date
JP2022541921A true JP2022541921A (ja) 2022-09-28
JP7358613B2 JP7358613B2 (ja) 2023-10-10

Family

ID=74192830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022504161A Active JP7358613B2 (ja) 2019-07-22 2019-07-22 記憶システムの信頼性を向上させる方法及び関連機器

Country Status (6)

Country Link
US (1) US20220179812A1 (ja)
EP (1) EP3995963A4 (ja)
JP (1) JP7358613B2 (ja)
CN (1) CN112543922A (ja)
BR (1) BR112022001182A2 (ja)
WO (1) WO2021012169A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003526B (zh) * 2021-12-30 2022-04-01 中科声龙科技发展(北京)有限公司 访问片内存储控制单元的写数据通路的方法及电路
CN114003181B (zh) * 2022-01-04 2022-05-20 苏州浪潮智能科技有限公司 数据写镜像系统、方法、装置、电子设备及存储介质
CN117632808B (zh) * 2024-01-24 2024-04-26 苏州元脑智能科技有限公司 多控存储阵列、存储系统、数据处理方法以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120330898A1 (en) * 2011-06-22 2012-12-27 Bk Girish Kumar Automatic discovery of cache mirror partners in an n-node cluster
JP2016177578A (ja) * 2015-03-20 2016-10-06 株式会社日立製作所 管理システム、サーバ装置、およびデータ管理方法
JP2017091025A (ja) * 2015-11-05 2017-05-25 富士通株式会社 ストレージシステムおよび監視装置
US20170220249A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055865B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Managing write requests to data sets in a primary volume subject to being copied to a secondary volume
CN101833422B (zh) * 2010-03-08 2012-01-04 成都市华为赛门铁克科技有限公司 磁盘阵列的数据处理方法及设备
US8732520B2 (en) * 2011-04-06 2014-05-20 Lsi Corporation Clustered array controller for global redundancy in a SAN
US8924954B2 (en) * 2011-11-22 2014-12-30 Huawei Technologies Co., Ltd. Application software installation method and application software installation apparatus
CN103488435B (zh) * 2013-09-24 2017-08-04 华为技术有限公司 Raid子系统及其数据读写方法
US9513827B1 (en) * 2015-05-21 2016-12-06 Intetrnational Business Machines Corporation Determining adjustments of storage device timeout values based on synchronous or asynchronous remote copy state
CN105159802B (zh) * 2015-09-15 2019-09-24 浪潮(北京)电子信息产业有限公司 一种控制器切换方法及装置
US10162775B2 (en) * 2015-12-22 2018-12-25 Futurewei Technologies, Inc. System and method for efficient cross-controller request handling in active/active storage systems
US10496320B2 (en) * 2015-12-28 2019-12-03 Netapp Inc. Synchronous replication
CN107168820B (zh) * 2017-04-01 2020-12-08 华为技术有限公司 一种数据镜像方法及存储系统
CN108664354A (zh) * 2017-04-01 2018-10-16 华为技术有限公司 一种数据镜像方法及存储系统
CN109739696B (zh) * 2018-12-13 2022-05-13 北京计算机技术及应用研究所 一种双控存储阵列固态硬盘缓存加速方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120330898A1 (en) * 2011-06-22 2012-12-27 Bk Girish Kumar Automatic discovery of cache mirror partners in an n-node cluster
JP2016177578A (ja) * 2015-03-20 2016-10-06 株式会社日立製作所 管理システム、サーバ装置、およびデータ管理方法
JP2017091025A (ja) * 2015-11-05 2017-05-25 富士通株式会社 ストレージシステムおよび監視装置
US20170220249A1 (en) * 2016-01-29 2017-08-03 Netapp, Inc. Systems and Methods to Maintain Consistent High Availability and Performance in Storage Area Networks

Also Published As

Publication number Publication date
EP3995963A4 (en) 2022-07-27
BR112022001182A2 (pt) 2022-03-29
JP7358613B2 (ja) 2023-10-10
CN112543922A (zh) 2021-03-23
US20220179812A1 (en) 2022-06-09
EP3995963A1 (en) 2022-05-11
WO2021012169A1 (zh) 2021-01-28

Similar Documents

Publication Publication Date Title
CN110312999B (zh) 基于软件配置/策略分发的PCIe盘阵列的动态划分
KR102457091B1 (ko) Nvme-of 이더넷 ssd에서 데이터 복제를 제공하기 위한 시스템 및 방법
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US9542320B2 (en) Multi-node cache coherency with input output virtualization
US20220179812A1 (en) Method for Improving Reliability of Storage System, and Related Apparatus
US10146632B2 (en) Efficient mechanism to replicate data for multiple controllers
US20080005470A1 (en) System and method for sharing sata drives in active-active raid controller system
US20110231602A1 (en) Non-disruptive disk ownership change in distributed storage systems
KR102199424B1 (ko) 솔리드 스테이트 드라이브 및 그것을 포함하는 스토리지 시스템
US9547616B2 (en) High bandwidth symmetrical storage controller
WO2017167106A1 (zh) 存储系统
US20170220255A1 (en) Write request processing method, processor, and computer
US7650463B2 (en) System and method for RAID recovery arbitration in shared disk applications
US8402195B2 (en) Storage system mounted with plurality of processors
US8108580B1 (en) Low latency synchronous replication using an N-way router
CN111147274B (zh) 为集群解决方案创建高度可用的仲裁集的系统和方法
CN112262372A (zh) 跨多个故障域的存储系统
JP5511546B2 (ja) フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
RU2810634C2 (ru) Способ повышения надежности систем хранения данных и соответствующее устройство
US7020754B1 (en) Method and system for maintaining data integrity using dual write operations
US10503678B1 (en) Fabric management system and method
US10289308B2 (en) Architecture and method for an interconnected data storage system using a unified data bus
CN117632808B (zh) 多控存储阵列、存储系统、数据处理方法以及存储介质
US11366618B2 (en) All flash array server and control method thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230524

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230927

R150 Certificate of patent or registration of utility model

Ref document number: 7358613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150