(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-30
(54)【発明の名称】オペレーティングシステムベースのストレージ方法およびシステム
(51)【国際特許分類】
G06F 3/06 20060101AFI20240123BHJP
G06F 13/10 20060101ALI20240123BHJP
G06F 9/50 20060101ALI20240123BHJP
【FI】
G06F3/06 301Z
G06F13/10 340A
G06F9/50 120Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023544647
(86)(22)【出願日】2022-01-25
(85)【翻訳文提出日】2023-09-04
(86)【国際出願番号】 IL2022050104
(87)【国際公開番号】W WO2022157784
(87)【国際公開日】2022-07-28
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-01-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523279534
【氏名又は名称】ボリュームズ テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】アミット,ジョナサン
(57)【要約】
利用されていない利用可能なDASを利用することで、信頼性の高いデータストレージ機能と、様々な条件や関心事に適応した柔軟性を提供することによって入手可能である、信頼性の高いデータストレージ機能及び様々な条件及び関心事に適応した柔軟性を提供できる、信頼性が高く、高速で、コスト効率が高く、包括的なソリューションを提供するために、利用されていない利用可能なハードウェアリソースを利用することを可能にする効率的なデータストレージシステム及び方法。前記憶媒体を備え、データプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバ、データプレーン(DP)ネットワークを通してリモートリソース(複数可)にアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、及び各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、ターゲットサーバの記憶媒体の指定された部分がDPネットワークに公開されており、オーケストレータは、前記サーバの内部に組み込まれたオペレーティングシステムのストレージスタックコンポーネント(SS)及び標準ストレージスタック(SSS)を調整することによって、記憶媒体の指定された部分を利用するように指定され、イニシエータサーバが、DPネットワークを介してターゲットサーバと対話するように構成されるようにする。
【選択図】
図6
【特許請求の範囲】
【請求項1】
データストレージシステムであって、
(i)記憶媒体を備え、データプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバと、
(ii)前記データプレーン(DP)ネットワークを通してリモートリソース(複数可)にアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのイニシエータサーバと、
(iii)各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータと、を含み、
前記ターゲットサーバの前記記憶媒体の指定された部分が、前記DPネットワークに公開されており、
前記オーケストレータが、前記イニシエータサーバが前記DPネットワークを介して前記ターゲットサーバと対話するように構成されるように、前記サーバの内部に組み込まれた前記オペレーティングシステムのストレージスタックコンポーネント(SS)及び標準ストレージスタック(SSS)を調整することによって、前記記憶媒体の前記指定された部分を利用するように指定される、前記システム。
【請求項2】
少なくとも1つのイニシエータサーバが、マルチパス接続を使用して少なくとも2つのターゲットサーバと対話するように構成されている、請求項1に記載のシステム。
【請求項3】
前記イニシエータサーバと前記ターゲットサーバとの間の前記調整が、各サーバにインストールされたCPオーケストレータを使用して実行される、請求項1に記載のシステム。
【請求項4】
前記DPネットワークを介してアクセス可能なターゲットサーバまたはイニシエータサーバと、前記オーケストレータとの間の通信が、各前記サーバにインストールされた指定のソフトウェアコンポーネントを使用して行われる、請求項1に記載のシステム。
【請求項5】
前記イニシエータサーバが、複数のターゲットサーバの前記記憶媒体の複数の指定された部分に由来するデータの冗長性を提供するように構成された独立ディスク冗長アレイ(RAID)ストレージスタックコンポーネント(SSC)を利用するように構成されている、請求項1に記載のシステム。
【請求項6】
前記RAID SSCが、少なくとも2つのターゲットサーバの前記記憶媒体の前記指定された部分に由来する複数のイニシエータパスの結合に由来するデータの冗長性を提供するように構成されている、請求項5に記載のシステム。
【請求項7】
前記ターゲットサーバが異なる場所に配置され、前記オーケストレーションが異なるレジリエンスドメインに亘って割り当てられる、請求項6に記載のシステム。
【請求項8】
異なるレジリエンスドメインを考慮しながら割り当てられる前記オーケストレーションがまた、システムバランスの維持を考慮する、請求項7に記載のシステム。
【請求項9】
前記オーケストレータが、管理プロトコルを使用して前記サーバと対話するように構成されている、請求項1に記載のシステム。
【請求項10】
前記記憶媒体の前記指定された部分が、論理ボリュームマネージャ(LVM)SSCを使用して割り当てられる、請求項1に記載のシステム。
【請求項11】
前記記憶媒体が、ソリッドステートドライブ(SSD)ベースである、請求項1に記載のシステム。
【請求項12】
前記記憶媒体が、ストレージクラスメモリ(SCM)ベースである、請求項1に記載のシステム。
【請求項13】
前記記憶媒体が、ランダムアクセスメモリ(RAM)ベースである、請求項1に記載のシステム。
【請求項14】
前記記憶媒体が、ハードディスクドライブ(HHD)ベースである、請求項1に記載のシステム。
【請求項15】
前記オーケストレータが、物理コントローラである、請求項1に記載のシステム。
【請求項16】
前記オーケストレータが、クラウドベースのサービス(SaaS)である、請求項1に記載のシステム。
【請求項17】
各サーバの前記動作が、全体的または部分的に、データ処理ユニット(DPU)によって実装され得る、請求項1に記載のシステム。
【請求項18】
データストレージシステムを動作させる方法であって、
(i) 少なくとも1つのイニシエータサーバ及び少なくとも1つのターゲットサーバと対話するように構成された少なくとも1つのオーケストレータを使用するステップであって、前記オーケストレータがコントロールプレーン(CP)ネットワークを制御するように指定されている、前記ステップと、
(ii)前記オーケストレータの内部に組み込まれ、様々なシステムの動作パラメータの前記選択を最適化するように構成されたリソース管理計算を使用するステップと、
(iii)前記オーケストレータを使用して、データプレーン(DP)ネットワークを介してアクセス可能なデータをホストする前記ターゲットサーバにインストールされたオペレーティングシステムを制御するステップであって、前記ターゲットサーバが永続的な記憶媒質を利用するために記憶媒体を備える、前記ステップと、
(iv)前記オペレーティングシステムのLVMを使用し、前記記憶媒体を複数のパーティションに分割するステップと、
(v)前記DPネットワークを介して前記記憶媒体のパーティション(複数可)にアクセスして消費するよう指定された少なくとも1つのイニシエータサーバにインストールされたオペレーティングシステムを使用して、リモートメディアの容量及びパフォーマンスを利用するステップとを含む、前記方法。
【請求項19】
前記記憶媒体が、永続的な記憶媒質を利用するように構成されている、請求項18に記載の方法。
【請求項20】
前記オペレーティングシステムが、マルチパスコンポーネントを利用することによって単一の記憶媒体パーティションを単一のネットワークデバイスとして利用するために、少なくとも2つのネットワークパスをマージするように構成されている、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータデータの記憶方法およびシステムに関し、より詳細には、コンピュータデータ記憶管理効率およびハードウェアの冗長性を高めるための論理的なアーキテクチャの概念の使用および実装に関する。
【背景技術】
【0002】
現在のコンピューティングシステムは、ローカルであっても、リモートであっても、またはクラウドベース(コンテナパッケージ、プライベート/パブリック/マルチクラウドシステムなど)であっても、それらの適切な動作のためにこれまで以上に広範なデータストレージソリューションを必要とするため、データストレージとデータバックアップ機能の提供は重要な懸念事項である。通常、そのようなデータの提供と管理は、指定されたデータセンターによって行われ、提供され、従来、使用中または使用予定のデータストレージの提供は、物理的なデータ記憶コンポーネント、つまりハイブリッドハードディスクドライブ(HHD)、ソリッドステートドライブ(SSD)などをスタックすることによって提供されている。
【0003】
該データ記憶コンポーネントをスタックすることにより、「ストレージアレイ」(またはディスクアレイ)と呼ばれるものが作成され、ブロックベースのストレージ、ファイルベースのストレージ、オブジェクトストレージなどに使用される。ストレージアレイは、サーバにデータを記憶するのではなく、ローカル/中央制御システムによって制御される、大量のデータを記憶できる複数のドライブを集合で使用する。
【0004】
従来、ストレージアレイ制御システムは、容量、スペースの割り当て、ボリュームの管理、スナップショット、エラーの識別と追跡、暗号化、圧縮などを追跡するために複数のストレージサービスを提供する。この種のサービスは、大量のコンピューティング容量、メタデータ、データストレージ、アクセラレータなどが必要である。したがって、そのようなサービスには広範なインフラストラクチャの指定、予算枠、およびリソースが必要である。
【0005】
一般に、ストレージアレイはシステムサーバの動作性から分離されており、専用のハードウェアでシステムとアプリケーションの動作を実装するように構成されている。例えば、一般的なストレージアレイのハードウェアアーキテクチャには、サーバスタック、ストレージアレイスタック、メディアI/Oデバイスが含まれる場合がある。I/Oデバイスは、ストレージスタックを介してサーバと通信するように構成されている。
【0006】
従来のストレージアレイによって提供されるサービスの1つは、システム障害の場合にデータを保護するために、複数のHDDまたはSSDの異なる場所に同じデータを保存する方法として、独立ディスクの冗長アレイ(RAID)を提供することである。RAIDレベルは様々で、全体的なパフォーマンスの向上とストレージ容量の増加を目的としている場合があるが、すべてが冗長性を提供することを目的としているわけではない。
【0007】
RAID構成は通常、ストライピング、ミラーリング、またはパリティの技術を使用して、複数の汎用コンピュータHDDから大規模で信頼性の高いデータストアを作成する。例えば、RAID5は、分散型パリティを備えたブロックレベルのストライピングからなる。単一のドライブに障害が発生した場合、データが失われないように、分散型パリティから後続の読み取りを計算できる。RAID6は、別のパリティブロックを追加することでRAID5を拡張する。したがって、それはすべてのメンバーディスクに分散された2つのパリティブロックによるブロックレベルのストライピングを使用する。通常、RAID5/6は、パリティの計算に関連するオーバーヘッドにより、書き込み動作のパフォーマンスにペナルティが課される。現在のRAID5/6は、RAIDアレイごとに1つのコアでのみ実行される。すべてのパリティの計算は単一のコアによって実行される。マルチコアでRAIDを使用するには、同じストリップへの並列書き込みを防ぐのにI/Oごとにロックする必要があるため、パフォーマンスが大幅に低下する。高帯域幅の新しいSSDドライブは、システムにある1つのコアがパリティの計算を実行し、フル活用されているため、現在のRAID5/6で使用するとき書き込みパフォーマンスが制限される。マルチコアプロセッサは、あたかもコンピュータが複数のプロセッサを備えているかのように、それぞれがプログラム命令を読み取って実行する、コアと呼ばれる2つ以上の別個の処理ユニットを備えたコンピュータプロセッサ集積回路であることに留意されたい。最新のサーバには、サーバごとに100を超えるコアが含まれる場合がある。一方、RAIDは一般に、データの冗長性、パフォーマンスの向上、またはその両方を目的として、複数の物理ディスクドライブコンポーネントを1つ以上の論理ユニットに結合するデータストレージ仮想化テクノロジーと呼ばれる。
【0008】
RAID1は、パリティまたはストライピングのないデータミラーリングからなる。RAID1アーキテクチャでは、データは2つのドライブに同一に書き込まれるため、ドライブの「ミラーリングされたセット」が作成される。少なくとも1つのドライブが機能している限り、アレイは動作し続ける。
【0009】
論理ボリュームマネージャ(LVM)は、ボリュームのスナップショットの提供、つまり、特定の時点でのデータのコピーの作成を可能にする。
【0010】
リモートレプリケーションは、データの保護または災害復旧を目的として、生産データを遠隔地にあるデバイスにコピーするプロセスである。
【0011】
リモートレプリケーションは同期または非同期のいずれかであり得る。同期レプリケーションは、プライマリサイトとセカンダリサイトに同時にデータを書き込む。特徴として、非同期レプリケーションは、セカンダリサイトへのデータの書き込みが遅くなりながら遅延が発生する。非同期レプリケーションは相対的に長い距離でも動作するように設計されており、必要な帯域幅が少ないため、これは、多くの場合、災害復旧により適しているオプションとなる。ただし、非同期レプリケーションでは、ターゲットデバイスのデータがソースデータと同期していないため、システム停止時にデータが失われるリスクがある。最近のほとんどのエンタープライズデータストレージベンダーは、ハイエンドおよびミッドレンジのストレージアレイにレプリケーションソフトウェアを搭載している。共通のハードウェアの動作の共通性を可能にするために、データ管理へのアプローチとしてソフトウェアデファインドストレージ(SDS)の実践が確立され、それにおいて、データストレージリソースが基礎となる物理ストレージハードウェアから抽象化され、それによって利用可能なハードウェアおよびデータストレージリソースの柔軟な活用を提供することが可能になる。
【0012】
SDSはまた、当技術分野ではハイパーコンバージドインフラストラクチャ(HCI)とも呼ばれ、通常は商用の既製のサーバで実行される。従来のインフラストラクチャとHCIの主な違いは、HCIでは、ストレージエリアネットワークと基盤となるストレージ抽象化の両方が、ハードウェアにおいて物理的ではなく仮想的にソフトウェアで実装されることである。ストレージアレイとSDSソリューションは通常、データストレージとそのトラフィックを管理および制御するための統合ストレージソフトウェアスタックを含む。
【0013】
該統合ソフトウェアスタックは、データの保護(例えば、バックアップ、冗長性、リカバリなど)、高可用性、スペースの割り当て、データの削減、データのバックアップ、データのリカバリなどのストレージ保守サービスを提供する。実際には、統合ソフトウェアスタックは、その制御、管理、施行、および保守用に専用のストレージアレイリソースを必要とする。このようなリソースでは、ストレージスタックコード、制御プロトコル、ノード相互接続プロトコル、障害ドメイン、パフォーマンス、スタックモデル、およびクラスタ内のノード数などの問題に対処する必要がある。これらのサービスと要件は従来、ストレージアレイごとにローカルに提供されており、更新、管理、全体的な管理が必要である。
【0014】
上で開示した統合ソフトウェアの構築と保守は、とりわけ、数多くのクライアントに(メディア側とサーバ側の両方で)様々なサービスを提供する必要があるため、非常にコストがかかる可能性がある。統合ソフトウェアはまた高い信頼性を備えているべきであり、コードは効率的である必要がある。それにもかかわらず、現在のストレージアレイは、信頼性、品質、パフォーマンスにおいて課題に直面する傾向がある。
【0015】
一般的な中央ストレージアレイは多数のクライアントにサービスを提供するように構成されているため、たとえ大きな計算能力がそれに割り当てられるとしても、その能力は該多数のクライアント間で分割される。その中心性により、ストレージアレイまたはスタッククラスタで発生するエラーや誤動作は、システム全体のパフォーマンスに直ちに影響を与える。現在のコンピューティングシステムでは、データストレージ専用のストレージアレイやスタッククラスタの数は、サーバシステム専用のリソースに比べて大幅に少なく、利用可能性も低く、その結果、業界は、データストレージのサービスではなくサーバのサービスで遥かに多くの「実績」を獲得している(例えば、サーバ関連のコードがより頻繁にデバッグされ、より効率的になり、そのため、エラーが少なくなる傾向にある)。
【0016】
さらに、このような統合ソフトウェアの保守は、技術の進歩(複数可)に合わせた継続的な維持と更新が必要である。したがって、統合ソフトウェアスタック動作の現在の品質とパフォーマンスが常に最適であるとは限らない。
【0017】
LinuxやWindows Serverなどの最新のオペレーティングシステムは、堅牢な内部ストレージコンポーネントの集合[(直接接続ストレージ-(DAS))]を含み、それは、設計要件のため、あるいはストレージアレイまたはデータスタッククラスタに起因する欠点のため、中央ストレージシステムが必要でない、または望ましくないときに、直接ローカルサービス(暗号化、圧縮、RAIDなど)を可能にする。
【0018】
ストレージコンポーネントはカーネル層に実装されており、即時アクセスが保証されるため、OSおよび/またはアプリケーションの高いパフォーマンスが保証される。DASは、DASに記憶されているデータへのアクセスを直接妨げるサーバ通信障害の直接的な悪影響による、固有の欠点があるため、ほとんどの場合、重要ではないアプリケーションに限定される。したがって、原則として、企業は重要なアプリケーションにDASを使用しない。それにもかかわらず、現在の最新のサーバおよびオペレーティングシステムは、DAS機能をサポートするために必要なサービスを組み込むように設計されている。
【0019】
オペレーティングシステムの成熟度により、企業での使用を目的とした安定したコンポーネントが提供されるが、DASの信頼性の制限により、ストレージアレイへの依存が依然として高い優先度の検討事項となっている。
【0020】
該直接ローカルサービス(暗号化、圧縮、RAIDなど)を容易にするためにOSサーバシステムに含まれる原コンポーネントは、現在、基本的なオペレーティングシステムDASのアプリケーションにのみ使用されている。それにも関わらず、サービスを可能にするこのようなコンポーネントの多くがOSサーバに存在するが、今日では、それらは従来のストレージアレイシステムで利用できるデータ管理および制御サービスの完全なスイートを可能にしていない。
【0021】
ストレージアレイとSDSソリューションは通常、統合ストレージソフトウェアスタックを使用して構築される。また、それらはコントローラ間のリモートリソースを接続するために独自のプロトコルを一般的に使用する。
【0022】
LinuxやWindows Serverなどの最新のオペレーティングシステムは、堅牢なストレージコンポーネントの集合を含んでいる。ストレージコンポーネントは通常、カーネル層に実装されるため、高いパフォーマンスが得られる。
【0023】
同じサーバ内でローカルオペレーティングシステムコンポーネントをスタックすることは一般に実現可能である。ただし、他のサーバ位置するリモートリソースをスタックすることは、現時点では不可能である。
【0024】
RAIDは、データの冗長性、パフォーマンスの向上、またはその両方を目的として、複数の物理ディスクドライブコンポーネントを1つ以上の論理ユニットに結合するデータストレージ仮想化テクノロジーである。
【0025】
従来、ホットスペアは、データを含まない完全に機能するドライブであるRAID1、RAID5、またはRAID6ボリュームグループのスタンバイドライブとして機能する。現在のストレージシステムでは、ボリュームグループのドライブに障害が発生すると、コントローラは障害が発生したドライブからホットスペアにデータを自動的に再構築する。
【0026】
ストレージアレイのドライブに障害が発生した場合、物理的なスワップを必要とせずに、ホットスペアドライブが、障害が発生したドライブと自動的に置き換えられる。ドライブに障害が発生したときにホットスペアドライブが使用可能な場合、コントローラは冗長データを使用して、障害が発生したドライブからホットスペアドライブにデータを再構築する。
【0027】
ボリュームスナップショットは、特定の時点でのボリュームの内容を表すために使用される。スナップショットは通常、データの保護のために作成されるが、それらはアプリケーションソフトウェアのテストやデータマイニングにも使用できる。ストレージスナップショットは、人的ミスやデータの破損により情報が失われた場合の災害復旧にも使用できる。
【0028】
整合性グループは、特定のストレージアレイのベースボリュームの集合である。スナップショットイメージのソースであるこれらのベースボリュームは、通常、整合性グループのメンバーボリュームと呼ばれる。整合性グループの目的は、複数のボリュームの同時スナップショットイメージを取得し、それにより特定の時点でのボリュームの集合のコピーを取得することである。
【0029】
ほとんどのミッドレンジおよびハイエンドのストレージアレイは、ストレージアレイ内のボリューム内にスナップショット整合性グループを作成する。
【0030】
ローカルスナップショットの取得は、単一ボリュームのローカルスナップショットを取得できる論理ボリュームマネージャ(LVM)を含むサーバオペレーティングシステムによって可能になる。分散型ストレージシステムでは、ボリュームが複数のサーバおよび複数のLVMに分散されているため、通常、整合性グループの取得または作成は不可能またはサポートされていない。
【0031】
サービス品質(QoS)は、マルチテナントまたはエンタープライズインフラストラクチャでビジネスにとって重要なアプリケーションに対して一貫したプライマリストレージパフォーマンスを提供したいと望んでいる企業やサービスプロバイダーにとって、重要な実現テクノロジーである。
【0032】
複数の作業負荷が限られたリソースを共有する場合、QoSはそのリソースの共有方法を制御するよう補助し、最もノイズの多い近隣(アプリケーション)が同じシステムの他のすべてのアプリケーションのパフォーマンスを中断させるのを防ぐ。
【0033】
ストレージアレイでは、帯域幅と1秒あたりの入出力操作(IOPS)を制限して、ボリュームごとにQoSを設定できる。通常、分散型サーバを備えた共有ドライブストレージスタックでは、ストレージアレイのようにQoSを実施できる単一のポイントはない。
【0034】
ディスクのクローン作成は、パーティションまたはハードドライブ全体のイメージを作成するプロセスである。これは、ドライブを他のコンピュータにコピーすること、およびバックアップや復旧の目的で有用であり得る。
【0035】
通常、コピーは、ホストがデータにアクセスし続けるときの特定の時点で行われる。ほとんどのミッドレンジおよびハイエンドのストレージアレイは、ストレージアレイ内のボリュームのクローンを作成する機能を含んでいる。ストレージアレイではなくサーバで管理されているボリュームには、ソースとターゲットが異なるエンティティに存在する可能性があるため、クローンを作成する機能がない。
【0036】
論理ボリューム管理(LVM)はストレージ仮想化の一種で、システム管理者に従来のパーティショニングよりも柔軟なディスクストレージ領域の管理方法を提供する。このタイプの仮想化ツールは、オペレーティングシステムのデバイスドライバスタック内にある。これは、物理ボリューム(PV)を物理エクステント(PE)に分割することによって機能する。PEは論理エクステント(LE)にマッピングされ、その後論理エクステント(LE)はボリュームグループ(VG)にプールされる。これらのグループは、仮想ディスクパーティションとして機能する論理ボリューム(LV)に共にリンクされており、LVMを使用してそのように管理できる。
【0037】
シックプロビジョニングは、一般的に行われているタイプのストレージ事前割り当てである。シックプロビジョニングでは、仮想ディスクの作成時に、仮想ディスクストレージ容量の全量が物理ストレージに事前に割り当てられる。シックプロビジョニングされた仮想ディスクは、データストアでそれに割り当てられたすべてのスペースを最初から消費するため、そのスペースを他のボリュームが使用することはできない。
【0038】
シンプロビジョニングは、もう1つの一般的に行われているタイプのストレージ事前割り当てである。シンプロビジョニングされた仮想ディスクは、最初に必要なスペースのみを消費し、需要の増加に応じて時間の経過と共に大きくなる。シンプロビジョニングは、比較的小さなチャンクで割り当てられるシン割り当てのメタデータを保持するために、遥かに多くのRAMを消費する。シンプロビジョニングは、bツリーデータ構造を経由する必要があるため、集中的なランダムアクセスを促進して論理アドレスを物理アドレスに変換するために必要なI/Oで遥かに多くのCPUを消費する。共有ストレージは、複数のサーバによって共有またはアクセスされるストレージリソースの一種である。
【0039】
Linuxのクラスタ化論理ボリュームマネージャ(CLVM)は、LVMに対するクラスタリング拡張機能のセットである。これらの拡張機能により、コンピュータのクラスタがLVMを使用して共有ストレージ(SAN上など)を管理できるようになる。CLVMは、論理ボリュームの構成中に物理ストレージへのアクセスをロックし、クラスタ化されたロックサービスを使用して共有ストレージを管理することで、ユーザが共有ストレージに論理ボリュームを構成できるようにする。
【0040】
通常、クラスタの構成と保守は複雑なタスクである。さらに、単一ノードの誤動作がクラスタ全体の健全性に影響を与える可能性がある。また、一般にOSディストリビューションでは、クラスタリング用のライセンス料金が別途必要になる。
【0041】
スモールコンピュータシステムインターフェース(SCSI)は、コンピュータと周辺機器の間で物理的に接続してデータを転送するための一連の標準である。iSCSIはInternet Small Computer Systems Interfaceの略である。iSCSIは、トランスポートコントロールプロトコル(TCP)の上位で動作するトランスポート層プロトコルである。これにより、TCP/IPネットワークを介したiSCSIイニシエータとストレージターゲットとの間のブロックレベルのSCSIデータ転送が可能になる。
【0042】
論理ユニット番号(LUN)は、ファイバーチャネル(FC)やiSCSIなど、SCSIプロトコルまたはSCSIをカプセル化するストレージエリアネットワークプロトコルによってアドレス指定されるデバイスである論理ユニットを識別するために使用される番号である。
【0043】
新しいデバイスを追加する場合、バスで新しいデバイスを見つけるために再スキャンプロセスが必要である。再スキャンプロセスは、すべてのホストバスアダプタ(HBA)を調べる必要がある。各HBAでは、すべてのSCSIターゲットを調べる必要がある。各ターゲットで、すべてのLUN番号を調べて、新しいデバイスが存在するかどうか確認を試みる必要がある。それぞれのLUNの確認は、タイムアウトになるまで待ってから続行する必要がある。
【0044】
再スキャンプロセスはまた、デバイスを取り外した時にも実行される。HBA、ターゲット、LUNの数に応じて、通常、再スキャンプロセスには最大10分かかることがある。
【0045】
NVMe(不揮発性メモリエクスプレス)は、エンタープライズシステムおよびクライアントシステムとソリッドステートドライブ(SSD)間のデータ転送を高速化するために作成されたホストコントローラインターフェースおよびストレージプロトコルである。
【0046】
NVMe over Fabrics(NVMe-oF)は、ホストコンピュータとターゲットのソリッドステートストレージデバイスまたはシステムの間で、イーサネット、ファイバチャネル(FC)、またはInfiniBandなどのネットワークを介して、データを転送するための不揮発性メモリのエクスプレスメッセージベースのコマンドを可能にするために設計されたテクノロジー仕様である。NVMeバスには、SCSIバスに関して実行されるのと同様の再スキャンプロセスが必要であり、同様に長いスキャン時間がかかる。
【0047】
サーバは通常、NVMeおよびSCSI標準プロトコルを使用して、様々なHBAおよびプロトコルテクノロジーを使用してネットワーク経由でリモートデバイスを接続し、一方で、リソースを公開するサーバは一般にターゲットと呼ばれ、リソースを消費するサーバはイニシエータと呼ばれる。
【0048】
「自己暗号化ドライブ」(SED)という用語は通常、フルディスク暗号化が組み込まれたHDD、SSDなどの記憶媒体のテクノロジーを指すときに使用される。「OPAL」という用語は、Trusted Computing Groupによって開発された自己暗号化ドライブの一連の仕様を表すために一般的に使用されている。
【0049】
現在入手可能な自己暗号化SSD/HDDの多くは、Trusted Computing Group(TCG)によって開発された「OPAL 2.0」暗号化とエンタープライズ規格を実装している。TCG規格のEnterprise SASバージョンは、「TCG Enterprise」ドライブと呼ばれる。規格に従って製造されたハードウェアは、相応にラベル付けがされている。
【0050】
ドライブのロック解除は、オペレーティングシステムの実行中に、ソフトウェアユーティリティを使用して、起動前の認証環境で、または電源投入時にBIOSベースのATAパスワードを使用して実行できる。キーの管理はディスクコントローラ内で行われ、暗号化キーは通常128ビットまたは256ビットのAdvanced Encryption Standard(AES)である。
【0051】
TCG「OPAL2.0」標準仕様に準拠した自己暗号化ドライブ(最新の自己暗号化ドライブのほぼすべて)は、認証キーと第2レベルのデータ暗号化キーによるキーの管理を実装している。データ暗号化キーは、データが実際に暗号化/復号されるキーである。認証キーは、データ暗号化キーを復号する(次にデータを復号する)ユーザ向けの第1レベルのパスワード/パスフレーズである。このアプローチには次のような特有の利点がある。
● これにより、ユーザはディスクの既存の暗号化データを失うことなくパスフレーズを変更できる。
● セキュリティの脅威に迅速かつ簡単に対応し、侵害されたパスフレーズを取り消すことができ、それにより、セキュリティが向上する。それはまた、ほぼ瞬時の、暗号的に安全なディスク全体の消去を容易にする。
【0052】
ハードウェアセキュリティモジュール(HSM)は、強力な認証のためにデジタルキーを保護および管理し、暗号化処理を提供する物理コンピューティングデバイスである。これらのモジュールは従来、プラグインカード、またはコンピュータまたはネットワークサーバに直接的に接続される外部デバイスの形式で提供される。
【0053】
サーバでキー用の特別なストレージを使用している場合でも、一度キーがサーバのメインメモリ内に存在しなければならないため、サーバでキーインメモリのエクスプロイトが実行される可能性がある。
【0054】
トンネリングプロトコルは、あるネットワークから別のネットワークへのデータの移動を可能にする通信プロトコルである。これには、カプセル化と呼ばれるプロセスを通じて、プライベートネットワーク通信をパブリックネットワーク経由で送信できるようにすることが含まれる。
【0055】
トンネリングでは、おそらく標準として暗号化と共に、トラフィックデータを別の形式に再パッケージ化することが関与するため、トンネルを通過するトラフィックの性質を隠すことができる。
【0056】
通常、ストレージコントローラは、ストレージソフトウェアを実行するストレージアレイのコンピューティング部分である。ストレージコントローラに障害が発生すると、ストレージソフトウェアが実行できなくなり、アレイがオフラインになる。その結果、データのアクセス性を維持するために冗長ストレージコントローラは重要である。一般的なアクティブ/アクティブアプローチでは、LUNとボリュームをサポートするために両方のコントローラが利用できる。どちらのストレージコントローラにもLUNを割り当てることができる。コントローラに障害が発生した場合、残っているコントローラはそれ自身と障害が発生したコントローラのLUNをサポートできる。
【0057】
ターゲットポートグループサポート(TPGS)とも呼ばれる非対称論理ユニットアクセス(ALUA)は、SCSIデバイスのパスの優先順位付けを定めるSCSIの概念とコマンドのセットである。非対称名前空間アクセス(ANA)は、ホストオペレーティングシステムのマルチパスI/O(MPIO)またはマルチパススタックへのパス状態を監視および通信するためのNVMeプロトコル機能であり、ANA経由で通信される情報を使用して、イニシエータとターゲット間の複数のパスを選択および管理する。
【0058】
通常、エンタープライズのハイエンドおよびミッドレンジのストレージアレイは、デュアルコントローラのグループで構築される。一方のコントローラは特定のボリュームに対してストレージスタック動作を実行でき、他方はIOを転送するだけである。IO転送はインターコネクトを使用して行われる。コントローラ間の専用リンクまたはネットワーク経由のいずれかによるものである。ホストは両方のコントローラに接続されている。コントローラは、ALUAまたはANAを使用して、そのボリュームのサービングコントローラの優先パスについてホストを更新する。ストレージアレイは、デュアルコントローラ、相互接続、およびフェイルオーバーのサポートを含む統合ストレージスタックで構築されている。オペレーティングシステムには、このようなホストサービス用に設計および使用される、堅牢かつ複雑で高価なストレージスタックコンポーネントのセットが含まれている。
【0059】
したがって、現在利用可能なストレージシステムの提示された欠点と機能制限/要件には、信頼性の高いデータストレージ機能と様々な条件や懸念事項に適応した柔軟性を提供し、したがってユーザの様々なニーズや利用可能なインフラストラクチャに合わせたリアルタイムの動作を提供することができる、信頼性が高く、高速で、コスト効率が高く、包括的なソリューションを提供する、より優れた、より効率的なデータストレージシステムおよび方法を提供する余地が残されている。
【発明の概要】
【0060】
本発明は、信頼性の高いデータストレージ機能および様々な条件および懸念事項に適応した柔軟性を提供できる、信頼性が高く、高速で、コスト効率が高く、包括的なソリューションを提供するために、利用されていない利用可能なハードウェアリソースを利用することを可能にする効率的なデータストレージシステムおよび方法を提供する。
【0061】
本発明の一態様によれば、そのようなシステムおよび方法は、信頼性の高いデータストレージ機能および様々な条件および懸念事項に適応した柔軟性を提供できる、信頼性が高く、高速で、コスト効率が高く、包括的なソリューションを提供するために、利用されていない利用可能なDASを活用することにより取得される。
【0062】
以下の実施形態およびその態様は、範囲を限定するものではなく、例示および説明を意図するシステム、デバイス、および方法と関連して説明および図示される。様々な実施形態では、上述の問題のうちの1つまたは複数が軽減または解消されているが、他の実施形態は他の利点または改善を目的としている。
【0063】
本発明の一態様によれば、データストレージが提供され、記憶媒体を備え、データプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバ、データプレーン(DP)ネットワークを通してリモートリソース(複数可)にアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、および各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、ターゲットサーバの記憶媒体の指定された部分がDPネットワークに公開されており、オーケストレータは、イニシエータサーバが、DPネットワークを介してターゲットサーバと対話するように構成されるように、前記サーバの内部に組み込まれたオペレーティングシステムのストレージスタックコンポーネント(SS)および標準ストレージスタック(SSS)を調整することによって、記憶媒体の指定された部分を利用するように指定される。
【0064】
本発明の別の態様によれば、データストレージが提供され、記憶媒体を備え、データプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバ、データプレーン(DP)ネットワークを通してリモートリソース(複数可)にアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、および各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、オーケストレータは、記憶媒体の内部に記憶されたブロックデバイスをマッピングおよび認識するためにCPを利用するように構成され、ブロックデバイスは、オーケストレータによってDPネットワークに公開されるように構成され、オーケストレータは、DPネットワークを介してブロックデバイスをイニシエータサーバに転送するように構成されている。
【0065】
本発明のさらに別の態様によれば、データストレージが提供され、記憶媒体を備え、データプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバ、記憶媒体を備え、データプレーン(DP)ネットワークを通してリモートリソース(複数可)にアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、および各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、結合された記憶媒体は、共有のドライブストレージスタックを形成し、オーケストレータは、共有ドライブストレージスタックの動作性と状態を監視および検査するためにCPを利用するように構成され、さらに、前記共有ドライブストレージスタックの内部に記憶されているブロックデバイス(複数可)の適切な動作を監視、記録および検査するように構成され、オーケストレータは、共有のドライブストレージスタックに影響を与える誤動作を特定するように構成され、オーケストレータは、共有ドライブストレージスタックを形成する少なくとも1つの動作可能なリモート記憶媒体の同時かつ調整された使用を管理することによる、非集中型の再構築手順を実行するように構成されている。
【0066】
本発明のさらに別の態様によれば、データストレージが提供され、ストレージボリュームを備え、データプレーン(DP)ネットワークを通してアクセス可能で公開可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも2つのサーバ、各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、各サーバは、それ自身のDPコンポーネントを管理するように構成され、オーケストレータは、少なくとも1つの整合性グループスナップショットを取得するためにCPを利用するように構成され、特定の時点でボリュームの一貫するスナップショットを提供するために、IOの一時停止と再開を管理するようにさらに構成されている。
【0067】
本発明のさらに別の態様によれば、データストレージが提供され、ストレージボリュームを備え、データプレーン(DP)ネットワークを通してアクセス可能で公開可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも2つのサーバ、各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、少なくとも2つのストレージボリュームが分散型ストレージスタックを作成し、各サーバが独自のボリュームに由来するローカルQoS DPを管理および実施するように構成され、オーケストレータは、分散型ストレージスタックの内部でQoS CP制限を集中的に調整および実施するように構成されている。
【0068】
本発明の別の態様によれば、データストレージが提供され、記憶媒体ボリュームを備え、少なくとも1つのターゲットコンポーネントを使用してデータプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つのターゲットサーバ、記憶媒体ボリュームを備え、少なくとも1つのオーケストレータコンポーネントを使用してデータプレーン(DP)ネットワークを通して記憶されたデータにアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、および各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、オーケストレータは、ターゲットサーバに記憶されたボリュームのデータスナップショットを作成するように構成され、データスナップショットは、イニシエータコンポーネントを通じてターゲットサーバに公開されるよう構成され、ターゲットサーバのボリュームのクローンがイニシエータサーバのボリュームに作成されるように構成される。
【0069】
本発明のさらに別の態様によれば、データストレージが提供され、LVMストレージボリュームを備え、データプレーン(DP)ネットワークを通してアクセス可能で公開可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも2つのサーバ、各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、サーバ間の同期が、クラスタリングを必要とせずに、オーケストレータを使用して実行され、オーケストレータは、並列動作をキューに入れ、1つのサーバに属するストレージボリュームのみが所定の時間に動作を実行するように構成されている。
【0070】
本発明のさらに別の態様によれば、データストレージが提供され、記憶媒体ボリュームを備え、少なくとも1つのターゲットコンポーネントを使用してデータプレーン(DP)ネットワークを通してアクセス可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのターゲットサーバ、少なくとも1つのイニシエータコンポーネントを使用してデータプレーン(DP)ネットワークを通して記憶されたデータにアクセスして公開するように指定されたオペレーティングシステムを実行するように構成された少なくとも1つのイニシエータサーバ、および各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、オーケストレータは、ターゲットサーバ側およびイニシエータサーバ側を調整し、リモートデバイスのアタッチメントを再スキャン/バススキャンを必要とせずに実行するように構成されている。
【0071】
本発明のさらに別の態様によれば、データストレージが提供され、ストレージボリュームを備え、データプレーン(DP)ネットワークを通してアクセス可能で公開可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも1つの暗号化サーバ、各前記サーバと対話するように構成され、前記DPネットワークのコントロールプレーン(CP)を制御するように指定された、少なくとも1つのオーケストレータ、を含み、オーケストレータは、キーがサーバとは別に記憶されるように、そのデータベースに少なくとも1つのキーを記憶することによって暗号化を管理するように構成され、オーケストレータは、キーをサーバに公開することなく、トンネルを使用してサーバにキーを配信するように構成されている。
【0072】
本発明のさらに別の態様によれば、データストレージが提供され、RAID1ストレージボリュームを備え、データプレーン(DP)ネットワークを通してアクセス可能で公開可能なデータをホストするように指定されたオペレーティングシステムを実行するように構成された、少なくとも2つのサーバを含み、サーバは互いに遠隔に配置され、RAID1は、少なくとも2つのサーバの2つのボリュームを接続した状態で、リモートレプリケーション手順に利用されるように構成される。
【0073】
いくつかの実施形態によれば、少なくとも1つのイニシエータサーバは、マルチパス接続を使用して少なくとも2つのターゲットサーバと対話するように構成され、イニシエータサーバとターゲットサーバとの間の調整は、各サーバにインストールされたCPオーケストレータを使用して実行でき、DPネットワーク経由でアクセス可能なターゲットサーバまたはイニシエータサーバとオーケストレータの間の通信は、各前記サーバにインストールされた指定されたソフトウェアコンポーネントを使用して実行され、イニシエータサーバは、複数のターゲットサーバで記憶媒体の複数の指定された部分に由来するデータ冗長性を提供するように構成された独立ディスク冗長アレイ(RAID)ストレージスタックコンポーネント(SSC)を利用するように構成され、RAID SSCは、少なくとも2つのターゲットサーバの記憶媒体の指定された部分に由来する組み合わされた複数のイニシエータパスに由来するデータ冗長性を提供するように構成でき、ターゲットサーバは異なる場所に配置され得て、オーケストレーションは異なるレジリエンスドメイン全体に割り当てられ、異なるレジリエンスドメインを考慮しながら割り当てられたオーケストレーションはまた、システムバランスの維持を考慮し、オーケストレータは、管理プロトコルを使用してサーバと対話するように構成でき、記憶媒体の指定された部分は、論理ボリュームマネージャ(LVM)SSCを使用して割り当てられ、記憶媒体は、ソリッドステートドライブ(SSD)ベース、ストレージクラスメモリ(SCM)ベース、ランダムアクセスメモリ(RAM)ベース、ハードディスクドライブ(HHD)ベース、物理コントローラまたはクラウドベースのサービス(SaaS)であることができる一方、各サーバの動作は、全体または部分的に、データ処理ユニット(DPU)によって実装され得る。
【0074】
本発明のいくつかの実施形態が、本明細書において、添付の図面を参照しながら説明される。この説明は、図面と共に、当業者に対して、いくつかの実施形態がどのように実施され得るかを明白にするものである。図面は例示的な説明を目的としており、本発明の基本的な理解に必要な以上に実施形態の構造の細部を詳細に示そうとしていない。
【図面の簡単な説明】
【0075】
図面において、
【
図1】従来のストレージアレイシステムの概略図となる。
【
図2】従来のストレージアレイシステムの概略図となる。
【
図3】従来のクラウドベースのデータ管理システムとなる。
【
図4】いくつかの実施形態による、従来のストレージアレイシステムと本発明の主題であるデータストレージシステムとの間の一般的な比較の概略図となる。
【
図5B】本発明のいくつかの実施形態による、データストレージシステムの概略図となる。
【
図6】本発明のいくつかの実施形態による、データストレージシステムの概略図となる。
【
図7】本発明のいくつかの実施形態による、ストレージシステムの一般的なアーキテクチャの概略図となる。
【
図8】本発明のいくつかの実施形態による、マルチパス接続をさらに備える従来のストレージアレイターゲットおよびイニシエータサーバの概略図となる。
【
図9】本発明のいくつかの実施形態による、ストレージアレイ接続の概略図となる。
【
図10】本発明のいくつかの実施形態による、
図8および
図9に示したストレージシステムによって実行されるサーバ間のリモートブロックデバイス接続のオーケストレーション手順の概略図となる。
【
図11】ホットスペアを有する従来のRAID5の概略図となる。
【
図12】RAIDホットスペア再構築の概略図となる。
【
図13】従来のホットスペアロジックアレイの交換手順の概略図となる。
【
図14】本発明のいくつかの実施形態による、共有ドライブの監視および復旧動作、または非集中型再構築システムおよびプロセスの概要の概略図となる。
【
図15】従来の整合性グループスナップショットシステムの概略図となる。
【
図16】本発明のいくつかの実施形態による、分散型スナップショット整合性グループシステムの概略図となる。
【
図17】ストレージアレイにおける従来のストレージQoSの概略図となる。
【
図18】ボリューム間の従来のストレージQoSの概略図となる。
【
図19】本発明のいくつかの実施形態による、共有のドライブストレージスタックの分散型QoSの概略図となる。
【
図20】クローンを備えた従来のエンタープライズストレージアレイシステムの概略図となる。
【
図21】未割り当てデータによるボリューム全体のクローン作成システムの概略図となる。
【
図22】本発明のいくつかの実施形態による、リモートオンラインボリュームのクローンの分散型システムの概略図となる。
【
図23】ボリューム部分を割り当てるように構成された従来の論理ボリュームマネージャLVMの概略図となる。
【
図24】ボリューム部分を割り当てるように構成された従来の論理ボリュームマネージャLVMの別の概略図となる。
【
図25】従来の論理ボリュームエクステントおよびメタデータシステムの概略図となる。
【
図26】サーバ間の従来の共有ストレージの概略図となる。
【
図27】従来のクラスタ化された論理ボリュームマネージャの概略図となる。
【
図28】本発明のいくつかの実施形態による、クラスタのない分散型論理ボリュームマネージャの概略図となる。
【
図29】SCSIバスシステムの従来のレイアウトの概要の概略図となる。
【
図30】従来の複数チャネルの論理ユニットシステムの概略図となる。
【
図31】従来のIPネットワーク上のiSCSIバスの概略図となる。
【
図32】本発明のいくつかの実施形態による、再スキャンを伴わない調整されたリモートデバイスアタッチメントシステム/プロセスの概略図となる。
【
図33】従来の自己暗号化ドライブ(SED)ロジックの概略図となる。
【
図34】従来のプロトコルトンネルの概略図となる。
【
図35】2つのサーバ間のトンネルを使用する従来のペイロードカプセル化の別の表現の概略図となる。
【
図36】本発明のいくつかの実施形態による、トンネルによるリモート自己暗号化ドライブ制御の概略図となる。
【
図37】従来のRAID1-データミラーリングシステムの概略図となる。
【
図38】従来の非同期レプリケーションシステムの概略図となる。
【
図39】従来の同期レプリケーションシステムの概略図となる。
【
図40】本発明のいくつかの実施形態による、RAID1システムを使用する同期レプリケーションの概略図となる。
【
図41】本発明のいくつかの実施形態による、LVMスナップショットおよびRAID1システムを使用する非同期レプリケーションの概略図となる。
【
図42】本発明のいくつかの実施形態による、データストレージシステムの概略図となる。
【
図43】マルチコアのスケーラブルなRAIDパリティの概略図となる。
【
図44】サーバ間のボリュームのフェイルオーバーの概略図となる。
【発明を実施するための形態】
【0076】
以下の詳細な説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が述べられている。しかし、本発明がこれらの具体的な詳細を用いずに実施され得ることが、当業者により理解される。他の例では、周知の方法、手順、および構成要素、モジュール、ユニット、および/または回路は、本発明を曖昧にしないように、詳細には説明されていない。一実施形態に関して説明したいくつかの特徴または要素は、他の実施形態に関して説明した特徴または要素と組み合わせることができる。明確にするために、同じまたは類似の特徴または要素についての説明を繰り返さない場合がある。
【0077】
本発明の実施形態はこの点に限定されないが、例えば、「処理する」、「計算する(computingおよびcalculating)」、「判定する」、「確立する」、「分析する」、「確認する」、「設定する」、「受信する」など用語を用いる記述は、コンピュータのレジスタおよび/またはメモリの内部で物理(例えば、電子)量として表されるデータを、コンピュータのレジスタおよび/またはメモリ、あるいは動作および/またはプロセスを実行する命令を記憶できる他の情報の非一時的記憶媒体内部の物理量として同様に表される他のデータに操作および/または変換する、コントローラ、コンピュータ、コンピューティングプラットフォーム、コンピューティングシステム、または他の電子コンピューティングデバイスの動作(複数可)および/またはプロセス(複数可)を指し得る。
【0078】
明示的に述べられていない限り、本明細書に記載される方法の実施形態は、特定の順番または順序に制約されない。さらに、記載された方法の実施形態またはその要素のいくつかは、同時に、同じ時点で、または並行して発生または実行され得る。
【0079】
本明細書で使用される場合、「コントローラ」という用語は、中央処理装置(CPU)またはマイクロプロセッサを備え、またいくつかの入出力(I/O)ポートを備えることができる任意のタイプのコンピューティングプラットフォームまたはコンポーネントを指す。
【0080】
これより
図1を参照すると、これは従来のストレージアレイシステム10を概略的に示す。図示のように、ストレージアレイ102(例えば、Dell EMCデータストレージおよびバックアップアレイ、または他のいずれかの市販のデータストレージシステムであってもよい)は、データを記憶し、複数のサーバ100へのデータアクセスを提供するように構成された複数の記憶媒体104を含む。いくつかの実施形態によれば、ストレージアレイ102は、ストレージアレイ102およびその中に組み込まれた記憶媒体104の動作を制御および管理するように指定された様々なストレージ/制御コンポーネントを含むオペレーティングシステムによって動作可能であり得る。
【0081】
いくつかの実施形態によれば、該従来のストレージアレイシステム10は、ストレージアレイ102の標準コントロールプレーン(CP)を使用して、サーバ100にいずれかの追加のCPソフトウェアをインストールすることを回避するように構成され得る。いくつかの実施形態によれば、ストレージアレイ102にインストールされ、ストレージおよび制御コンポーネントを含むオペレーティングシステムは、例として、RedHat、SuSEなどLinuxベースのディストリビューション、またはMicrosoft Windowsサーバであってもよい。
【0082】
これより
図2を参照すると、これは従来のストレージアレイシステム10を概略的に示す。図示のように、ストレージアレイ102は、データを記憶し、複数のサーバ100へのデータアクセスを提供するように構成された複数の記憶媒体スタック104を含む。いくつかの実施形態によれば、ストレージアレイ102は、データプレーンDP106およびコントロールプレーンCP108のコンポーネントおよびプロトコルを含み、CP108のコンポーネントおよびプロトコルは、DP106のコンポーネントおよびプロトコルの様々な動作を制御するように構成される。通常、ストレージソリューションのDPとCPは共に結合されるが、統合されたストレージソフトウェアが、データサービス、例えばデータの保護、高い可用性、スペースの割り当て、および/またはデータの削減を監視するだけでなく、ボリュームの作成、ドライブの障害の処理、スナップショットのロールバックなどの制御サービスも監視するこのような結合は、非効率性と欠点をもたらす。
【0083】
これより
図3を参照すると、これは従来のクラウドベースのデータ管理システム20を概略的に示す。図示のように、様々なタスクを実行し、信頼性の高いデータの割り当てと記憶を確実にするために、様々なコンポーネントおよびプロトコルが指定されている。該コンポーネントおよびプロトコルは、技術の進歩に合わせて更新するだけでなく、恒常的なデバッグと保守を必要とする。したがって、統合されたクラウドベースのデータ管理システム20の現在の質および性能は、大量なリソースの犠牲のもとで実現される。いくつかの実施形態によれば、クラウドベースのデータ管理システム20は、ソリッドステートドライブ(SSD)データセンターのソリューションであってもよく、これは、そのメディアストレージがクラウドベースのストレージアレイの一部を形成するSSDスタッキングであることを意味する。
【0084】
これより
図4を参照すると、これは、いくつかの実施形態による、従来のストレージアレイシステム10と、本発明の一態様であるデータストレージシステム30との間の一般的な比較を概略的に示す。図示のように、また前に開示したように、従来のストレージアレイシステム10は、複数のサーバ100にデータを記憶し、データアクセスを提供するように構成された複数の記憶媒体スタック104を含むストレージアレイ102を備える。
【0085】
いくつかの実施形態によれば、データストレージシステム30は、サーバ200の集合を指定し、それらの記憶媒体スタック204を利用して(OSの機能性に悪影響を与えることなく、または実質的に影響を与えずに)エンタープライズストレージアレイとして動作するように構成され得、そのためデータストレージシステム30は、従来ストレージアレイ102を使用して一般的なストレージアレイシステム10によって提供されていたサービスを、該サーバ200で直接提供することができる。
【0086】
いくつかの実施形態によれば、データストレージシステム30はまた、共通のストレージアレイではこれまで利用できなかったさらなる機能を追加するように構成されている。例えば、ストレージスタック204は、指定されたパーティションに分割することができ、各記憶媒体204が、様々なサーバ200から生成されたデータを記憶し、そのデータへのアクセスを提供する専用の複数の指定領域を提供できるようにすることができ、記憶媒体スタック204は、サーバ200の内部に組み込まれているため、ストレージアレイ102の必要性を排除し、結合されたDPネットワークがデータストレージシステム30によって作成され、実装され、利用される。
【0087】
これより
図5Aおよび
図5Bを参照するが、これらは、いくつかの実施形態によるデータストレージシステム30を概略的に示す。図示のように、また前に開示したように、データストレージシステム30はサーバ200の集合を備え、それらの記憶媒体スタック204を利用してエンタープライズストレージアレイとして動作するように構成される。
【0088】
いくつかの実施形態によれば、データストレージシステム30は、いずれかのサードパーティのソフトウェアコンポーネントまたはスクリプトをインストールすることなく、そのような目的を達成するように構成され得る。当該の取り組みは、専用のストレージアレイユニットの代わりにサーバ(複数可)200のストレージスタック204を使用することによって得ることができる。
【0089】
いくつかの実施形態によれば、少なくとも1つのオーケストレータ206が、該サーバ200のそれぞれと対話するように構成され、DP208ネットワークのCP210を制御するように指定される。いくつかの実施形態によれば、DP208は、各サーバ200の内部に組み込まれた記憶媒体204に記憶される。
【0090】
いくつかの実施形態によれば、Linuxベースのオペレーティングシステムなどの様々なオペレーティングシステムがサーバ(複数可)200にインストールされ、DP208またはCP210に関連する様々なコンポーネントおよびプロトコルを含むことができる。オーケストレータ206は、サーバ(複数可)200内にすでに組み込まれているコンポーネントおよびプロトコルを使用して、指定された外部ストレージアレイユニットなしに、データストレージおよびデータバックアップ機能を提供するために、これらのすでにインストールされているコンポーネントを調整するように構成され得る。
【0091】
いくつかの実施形態によれば、サーバのストレージスタック204の制御インターフェース(複数可)は、標準インターフェース(複数可)、例えば、Linux用のセキュアシェルプロトコル(SSH)、Windowsサーバ用のPowerShell Remoting Protocol(PSRP)などを介して動作可能であってもよい。
【0092】
いくつかの実施形態によれば、ストレージデータ転送のためのサーバ(複数可)200間の通信は、オペレーティングシステムの標準的なコンポーネントを利用する、iSCSI、ファイバチャネル、NVMeOF、FC-NVMeなどの標準プロトコルを使用して実行され得るが、これらに限定されない一方、オーケストレータ206は、そのようなプロトコルおよび他の標準的な利用可能なコンポーネントおよび機能を使用して、強化された動作性を提供するように構成されている。
【0093】
いくつかの実施形態によれば、集中型または複数のオーケストレータ(複数可)206は、標準管理インターフェースを介して様々な異なるサーバ200に接続するように構成され得る。いくつかの実施形態によれば、1つの集中型オーケストレータまたは複数のオーケストレータ206が、様々なストレージオーケストレーションタスクを実行するように特に適応され得る。
【0094】
いくつかの実施形態によれば、オーケストレータ206の数は、データストレージシステム30(例えば、大規模なデータセンターであってもよい)の一部を形成するサーバ200の全体的な可能性に応じて、また該サーバ200の必要な可用性の割合に応じて、決定され得る。
【0095】
いくつかの実施形態によれば、オーケストレータ206は、様々な手段によって実装されてもよく、例えば、これは(1つ以上のサーバ200の)サーバにインストールされたソフトウェアとして、仮想マシンとして、コンテナなどとして、実装され得る。
【0096】
いくつかの実施形態によれば、オーケストレータ206は、ストレージオーケストレーションタスクの外部からの開始のために、公開されたアプリケーションプログラミングインターフェース(API)を有し得、各記憶媒体204の健全性を定期的に監視し、ハードウェアの問題の特定などをするように構成され得る。いくつかの実施形態によれば、オーケストレータ206はまた、標準制御インターフェースを介して各記憶媒体204からのデータを表すカウンタによってパフォーマンスデータ(負荷、待ち時間、変動、関係など)を収集するように構成することもできる。
【0097】
いくつかの実施形態によれば、サーバ(複数可)200の各コンポーネントからの収集されたパフォーマンスカウンタは、将来の動作改善にフィードバックされるパフォーマンススナップショット(複数可)を提供するために集約される。オーケストレータ206の動作と集約されたパフォーマンスカウンタを組み合わせることで、独自のタスク管理、健全性の監視、およびシステムメンテナンスが可能になる。
【0098】
これより
図6を参照するが、これは、いくつかの実施形態によるデータストレージシステム40を概略的に示す。図示のように、データストレージシステム40は、記憶媒体304をさらに備え、オペレーティングシステム(例えば、Red Hat、SuseなどのLinuxベースのオペレーティングシステム)を実行するように構成され得る少なくとも1つのターゲットサーバ300を含み得、該オペレーティングシステムは、DPネットワークを介してアクセス可能なデータをホストするように指定されている。
【0099】
いくつかの実施形態によれば、少なくとも1つのイニシエータサーバ302は、オペレーティングシステム(例えば、Red Hat、SuseなどのLinuxベースのオペレーティングシステム)を実行するように構成され得、それにおいて、該オペレーティングシステムは、DPネットワーク経由でリモートリソース(複数可)にアクセスして公開されるように指定される。
【0100】
いくつかの実施形態によれば、少なくとも1つのオーケストレータ306は、該DPネットワークのCPを制御するために、該ターゲットサーバ(複数可)300および/またはイニシエータサーバ(複数可)302のそれぞれと対話するように構成され得る。いくつかの実施形態によれば、ターゲットサーバ300の一部を形成する記憶媒体304の指定された部分は、DPネットワークに公開されてもよい、換言すれば、指定された物理空間は、DPネットワークが使用する記憶空間に寄与するためにリザーブおよび指定される。
【0101】
いくつかの実施形態によれば、オーケストレータ306は、該ターゲット/イニシエータサーバ(複数可)300/302の内部に組み込まれたオペレーティングシステムのストレージスタック(SS)コンポーネントおよび標準ストレージスタック(SSS)を調整することによって、記憶媒体の指定された部分を利用するように構成され、これにより、イニシエータサーバ302は、DPネットワークを介してターゲットサーバ300と対話するように構成される。
【0102】
いくつかの実施形態によれば、データストレージシステム40は、以下のステップを実行するように指定されてもよい。
【0103】
● ターゲットサーバ300の一部を形成するターゲットの記憶媒体304にインストールされ、DPネットワークを介してアクセス可能なデータをホストするように指定されたオペレーティングシステムを使用し、該記憶媒体304が永続的な記憶媒質を利用するために使用される、
● 記憶媒体304を複数のパーティションに分割するためにオペレーティングシステムの論理ボリュームマネージャ(LVM)を使用する、
● 少なくとも1つのイニシエータサーバ302にインストールされたオペレーティングシステムを使用して、DPネットワークを介して記憶媒体304のパーティション(複数可)にアクセスして消費し、リモートメディアの容量およびパフォーマンスを利用する、
● 該ターゲットサーバ(複数可)300およびイニシエータサーバ(複数可)302のそれぞれと対話するように構成されたオーケストレータ306を使用し、該オーケストレータ306が、該DPネットワークのCPを制御するように指定される、
● オペレーティングシステムを使用して少なくとも2つのネットワークパスを結合し、マルチパスコンポーネントを作成することで単一の記憶媒体パーティションを単一のネットワークデバイスとして利用し、このように、冗長性と効率性の強化を可能にする。
【0104】
いくつかの実施形態によれば、上で開示されたステップは、オペレーティングシステムによって実行され、例えばプロセッサコアおよび/またはメモリページ、および様々な種類の帯域幅などのリソースに関して競合する計算に影響を与えるように構成された動的割り当ておよび割り当て解除の機能を提供するために、リソース管理コンポーネント(複数可)を使用することをさらに含んでもよい。いくつかの実施形態によれば、上で開示したステップの目的は、利用可能な有限のリソースに従って応答性を最適化するようにリソースを割り当てることである。
【0105】
いくつかの実施形態によれば、また上で開示したように、少なくとも1つのイニシエータサーバ302は、マルチパス接続を使用して少なくとも2つのターゲットサーバ300と対話するように構成される。いくつかの実施形態によれば、マルチパス接続を使用して、接続の信頼性を向上および強化し、より広い帯域幅を提供することができる。
【0106】
いくつかの実施形態によれば、イニシエータサーバ(複数可)302とターゲットサーバ(複数可)300との間の調整、またはその逆は、CPを管理するように構成され、さらに各サーバに物理的にインストールされるように構成されたローカルオーケストレータ307のコンポーネントを使用して実行され得る。いくつかの実施形態によれば、ローカルオーケストレータ307を各サーバにインストールすることは、データストレージシステム40を利用する柔軟な方法を提供することができ、また、データストレージシステム40にクライアントのサーバの内部ソフトウェアおよびプロセスへのアクセスを提供する必要性を排除することができる。いくつかの実施形態によれば、オーケストレータ306に関して本明細書で開示されている動作および機能はまた、ローカルオーケストレータ307に適用することができ、またその逆も同様である。
【0107】
いくつかの実施形態によれば、オーケストレータ306と、ターゲットサーバ300またはイニシエータサーバ302との間の通信は、該サーバの各々にインストールされた指定のソフトウェアコンポーネントを利用することによって、DPネットワークを介して実行され得る。
【0108】
いくつかの実施形態によれば、イニシエータサーバ302は、複数のターゲットサーバ300の内部に組み込まれた記憶媒体304の複数の指定された部分に由来するデータの冗長性を提供するように構成された独立ディスク冗長アレイ(RAID)ストレージスタックコンポーネント(SSC)を利用するように構成されている。
【0109】
いくつかの実施形態によれば、RAID SSCは、少なくとも2つのターゲットサーバ300の記憶媒体304の指定された部分に由来する複数のイニシエータパスの結合に由来するデータの冗長性を提供するようにさらに構成される。
【0110】
いくつかの実施形態によれば、ターゲットサーバ300は、異なる部屋、建物、さらには国などの異なる場所に配置されてもよい。この場合、オーケストレータ306によって実行されるオーケストレーション手順は、異なるレジリエンスドメインに亘って割り当てられる。例えば、オーケストレータ306は、サイバーセキュリティ、自然災害、財務予測などに関する様々なパラメータを考慮し、適宜データフローを迂回させることができる。いくつかの実施形態によれば、オーケストレータ306によって実行され、サーバの割り当てを利用するように構成された該オーケストレーション手順は、許容可能なシステムバランスパラメータを維持することを考慮して実行される。
【0111】
いくつかの実施形態によれば、オーケストレータ306は、施行プロトコルを使用してサーバ(複数可)300/302と対話するように構成され得る。いくつかの実施形態によれば、記憶媒体304の指定された部分は、論理ボリュームマネージャ(LVM)SSCを使用して割り当てられ得る。いくつかの実施形態によれば、記憶媒体304は、ソリッドステートドライブ(SSD)ベース、ストレージクラスメモリ(SCM)ベース、ランダムアクセスメモリ(RAM)ベース、ハードディスクドライブ(HHD)ベースなどであってもよい。
【0112】
いくつかの実施形態によれば、オーケストレータ306は、物理コントローラデバイスであってもよく、またはクラウドベースのサービス(SaaS)であってもよく、オーケストレータ306が物理デバイスであるか否かに関係なく、データストレージおよびトラフィックを相互接続されたサーバにおいて命令および配置するように構成され得る。
【0113】
いくつかの実施形態によれば、各サーバ(複数可)300/302の動作は、全体的または部分的に、データ処理装置(DPU)によって実装されてもよく、該DPUは、加速カードなどの加速ハードウェアであってもよく、ハードウェア加速は、汎用の中央処理装置(CPU)で実行されるソフトウェアと比較して、特定の機能をより効率的に実行するために使用され得るため、汎用CPUで実行されるソフトウェアで計算できるデータのいずれかの変換はまた、カスタムメイドのハードウェア、または何らかの両方の組み合わせで計算できる。
【0114】
いくつかの実施形態によれば、データストレージシステム30は、物理サーバと仮想サーバの両方で動作可能であるだけでなく、従来のITシステム(サーバおよびデータセンターなど)、プライベートクラウド、パブリッククラウド、マルチクラウド環境、コンテナ、仮想マシン、ベアメタルシステム、およびそれらのいずれかの組み合わせで使用することができる。
【0115】
いくつかの実施形態によれば、従来のSDSの下では、ストレージスタックコードは独自のソフトウェアに依存し、別個の独立したインストールおよびメンテナンスを必要とするが、データストレージシステム30/40は、前述のオーケストレータ206/306を使用することと組み合わされる、既にインストールされているオペレーティングシステムの機能に依存するように構成される。
【0116】
いくつかの実施形態によれば、従来のSDSの下では、コントロールプロトコルは独自のソフトウェアに依存し、別個の独立したインストールおよびメンテナンスを必要とするが、データストレージシステム30/40は、前述のオーケストレータ206/306を使用するオペレーティングシステムの機能に依存するように構成される。
【0117】
従来のSDSの下では、ノード相互接続は独自のソフトウェアに依存することになるが、いくつかの実施形態によれば、データストレージシステム30/40は、上で論じたオーケストレータ206/306を使用して標準ストレージプロトコルに依存するように構成される。
【0118】
従来のSDSの下では、ストレージアレイシステム10を制御するスタックモデルは単一の独自のコードを使用し、DPとCPの両方をインターリーブするコンポーネントを有するが、いくつかの実施形態によれば、データストレージシステム30/40は、CPをエミュレートし、(とりわけ)DP上でその実際の操作を実行するために、上で開示したオーケストレータ206/306を使用しながらダミーデータプレーンを実行するために、オペレーティングシステムを利用するように構成される。
【0119】
上で開示された様々な実施形態のいくつかの利点は、例えば、データストレージシステム30/40の下では無制限であると予想されるクラスタ内のノードの数に関して、従来のSDS動作と比較した場合に、超高性能を促進することができる。
【0120】
述べたように、SDNを含む従来のネットワークに実装する場合、DPとCPをストレージと互いに結合することは、特定の欠点と非効率性がある。いくつかの実施形態によれば、SDNは、DPをストレージから切り離し、CPをストレージから切り離すように構成され得る。いくつかの実施形態によれば、ストレージシステムは、ネットワークのCPからデータを転送および保存するためのダミーデバイスを用いて構築され得、これはネットワークを介してトラフィックがどのように流れるかを制御する一方、SDNが、他のデカップリング手段よりも、はるかに安価な機器、機敏性および無制限のパフォーマンスを可能にするものと考えられる。さらなるデータプレーンリソースを柔軟に追加できるため、SDNを使用したこのようなデカップリングは、制限のないスケーラビリティと、処理されるクラスタへの限定的な影響に起因する生存率の向上を実現する。いくつかの実施形態によれば、データ容量、帯域幅、およびIOPSがCPサービスの使用率に影響しないため、単一のオーケストレータを提供して、巨大なクラスタにストレージサービスを提供することができる。このように分離されたDPは、プロトコル、RAID、暗号化、QoS制限、スペースの割り当て、データの削減などの様々なデータサービスに利用できる。一方、このように分離されたCPは、ボリュームのライフサイクル(作成、削除、サイズ変更など)、ストレージプール管理、スナップショット調整-整合性グループ、障害の監視、パフォーマンス監視、障害の処理などの様々なストレージサービスや調整に利用できる。
【0121】
いくつかの実施形態によれば、データストレージシステム40は、SDNベースのCPおよびCD、ならびにストレージデカップリングを取得するために以下のステップを実行するように指定され得る。
【0122】
サーバ300のうちの1つのストレージCP304を使用して、ストレージDPを作成する。サーバ302のストレージCPを使用して、ストレージDPを作成し、該サーバ300に接続し、公開されたドライブチャンクを消費する。
● 別のサーバ300のストレージCPを使用してストレージDPを作成する。
● サーバ302のストレージCPを使用して、ストレージDPeを作成し、該別のサーバ300に接続し、公開されたドライブチャンクを消費する。サーバ302のストレージcCPを使用して、マルチパス、RAID、暗号化、圧縮、重複排除、LVM、およびレプリケーションサービスを含むストレージDPを作成する。
【0123】
これより
図7を参照すると、これは本発明のいくつかの実施形態によるストレージシステム30/40の一般的なアーキテクチャを概略的に示す。図示のように、様々なコンポーネントが対話し、DPネットワーク上で分散型ストレージとバックアップ機能を提供するように構成されている。例えば、オーケストレーションのジョブは様々なスタックコンポーネントに影響を与える可能性があり、これらは次第に、SSH、PSRP、Amazon AWS、Microsoft Azure、またはGoogle Cloudなどの様々なクラウドコンピューティングプラットフォーム/暗号化ネットワークプロトコル/アプリケーションプログラミングインターフェースを通じて変換され、利用される。
【0124】
これより
図8を参照すると、これは、ストレージアレイ50を概略的に示し、図示のように、ターゲットサーバおよびイニシエータサーバ(
図10に示す)が、シングルパスまたはマルチパス接続を通じて通信するように構成される。いくつかの実施形態によれば、論理接続(垂直のチューブ状の線として示される)により、ターゲットサーバとイニシエータサーバは通信し、データストレージから論理ユニット番号(LUN)を消費できるようになる。いくつかの実施形態によれば、イニシエータサーバは、ネットワークインターフェースカード(NIC)または任意の適切なコンポーネント/プロトコルを使用してターゲットサーバからLUNを消費するように構成される。いくつかの実施形態によれば、LUNの消費/転送に使用されるプロトコルは、iSCSI、NVMeなどといった標準的な通信プロトコルである。いくつかの実施形態によれば、ストレージアレイ50は、両方のデータ方向を制御しながら、自動化されたオーケストレーション手順を使用することによって、このデータ転送を制御することを可能にする。いくつかの実施形態によれば、ブロックデバイス(複数可)/LUNを公開および消費する手順は、オーケストレータ702(
図10に示す)によって実行されるように指定される。
【0125】
これより
図9を参照すると、これは、ストレージアレイ50の一部を形成することができるマルチパスストレージアレイ60の様々な接続の概略図となる。図示のように、マルチパスストレージアレイ60は、ホストバスアダプタ(HBA)(または同等のNIC)を使用して転送ブロックデバイスを構成する様々なスイッチおよびアダプタを備える。いくつかの実施形態によれば、これは、複数のネットワーク接続を提供する2つのパスを形成することによって実行され得る。いくつかの実施形態によれば、両方のスイッチは互いに接続されてもよい(図示せず)。
【0126】
これより
図10を参照すると、これは、ストレージシステム50によって実行されるサーバ間の接続を介したリモートブロックデバイスのオーケストレーション手順70となる。図示のように、1つのソースサーバ700からのリモートブロックデバイス(複数可)は、別の宛先サーバ704に接続され、例えばスタッキング目的のために指定され得る一方、集中型オーケストレータ702は、リモートブロックデバイスの接続を調整するように構成される。
【0127】
いくつかの実施形態によれば、リモートブロックデバイスは、マルチパス接続を使用してサーバ704に公開され、転送されるように構成される。いくつかの実施形態によれば、オーケストレータ702はまた、アラートを提供し、様々な障害を処理するように構成される。いくつかの実施形態によれば、コントローラ702は、RAIDなどのスタッキングを可能にするために、サーバ700または704のいずれかにおけるリモートブロックデバイスの特定のブロックデバイス名を識別するように構成される。
【0128】
いくつかの実施形態によれば、サーバ700は、サーバ700が様々なプロトコルを使用して他のサーバに接続できるようにする通信プロトコルである、ネットワークのルールおよび接続性のルールデータベースを有するように構成される。いくつかの実施形態によれば、オーケストレーション手順70は、使用しているオーケストレーション手順70を形成するコンポーネントをオーケストレータ702にマッピングすることによって、特定のブロックデバイスをサーバ704に送信することを可能にする。いくつかの実施形態によれば、オーケストレータ702は、例えばNVMe、Iscsiなど、サーバ700と704の間での通信を行う際に最も効率的である通信プロトコルを判定するために、該ネットワークのルールおよび接続性のルールを検討するように構成される。
【0129】
いくつかの実施形態によれば、ネットワークのルールのセットは、データトラフィックに使用されるIPネットワークを識別するように指定される。いくつかの実施形態によれば、接続性のルールのセットは、サーバ700と704の間の好ましいプロトコルを識別するように指定される。いくつかの実施形態によれば、オーケストレータ702は、各サーバの異なるネットワークのルールおよびそのアドレスを列挙するように構成されている。いくつかの実施形態によれば、オーケストレータ702は、列挙の情報、ネットワークのルール、および接続性のルールを使用して、各サーバでどのネットワークカードを使用するか、各サーバでどのアドレスを使用するか、およびどのストレージプロトコルを使用するかを決定するように構成される。
【0130】
いくつかの実施形態によれば、ソースサーバ700に記憶されたブロックデバイスは、ソースサーバ700のDPネットワークへのストレージターゲットを有していながら、最初に公開されるように指定される。いくつかの実施形態によれば、宛先サーバ704のネットワークパスごとに複数のイニシエータが作成されるように構成される。いくつかの実施形態によれば、マルチパス接続は、宛先サーバ704のイニシエータを通して利用されるように構成される。
【0131】
いくつかの実施形態によれば、オーケストレータ702は、宛先サーバ704のイニシエータおよびマルチパスコンポーネントのエラーを定期的に確認するように構成され、エラーが識別された場合、アラートがトリガされ、ユーザまたはアプリケーションによって処理される。
【0132】
いくつかの実施形態によれば、宛先サーバ704のブロックデバイス名は、例えばHBAアドレス、LUNなど、ソースターゲットアドレスからの情報を使用して識別されるように指定される。
【0133】
いくつかの実施形態によれば、ストレージアレイ50/60/70は、リモートサーバ間のリモート通信および識別を提供するように構成され、さらに、マルチパスの使用中にネットワークエラーを識別し、オーケストレータ702を利用しながらこの手順を実行するように構成されている。いくつかの実施形態によれば、ストレージアレイ50は、シングルパス接続を使用することによって動作可能であり得る。
【0134】
いくつかの実施形態によれば、オーケストレーション手順70の監視は、監視の中央プロセスによって実行される。例えば、オーケストレータ702は、ストレージアレイ50全体に関する誤動作を認識することができ、これにより、例えば、利用可能な二次データパス、冗長性の決定、バックアップの検討などが提供され得る。
【0135】
いくつかの実施形態によれば、オーケストレーション手順70は、システムを構成する様々なブロックデバイスの識別プロセスを可能にするように構成される。この手順は、ターゲットサーバ700とイニシエータサーバ704の両方によって利用されるように構成されている。従来の方法は、再スキャン手順を実行することによってシステムに接続された新しいハードウェアを識別するために、長い認識プロセスを必要としているが、いくつかの実施形態によれば、オーケストレーション手順70は、例えばオーケストレータ702に公開される様々なIPアドレスにより、デバイスを認識することを可能にする、迅速な再スキャン手順などを可能にする。いくつかの実施形態によれば、オーケストレーション手順70は、ストレージシステム50を制御および管理するために、様々な範囲または「ホワイトリスト」または「ブラックリスト」を提供するように構成される。いくつかの実施形態によれば、RAIDフォルダなどのリモートドライブは、データの冗長性とバックアップサービスを提供するように構成されている。いくつかの実施形態によれば、RAIDが分散化/非集中化されているため、いくつかのバックアップおよび冗長性のスキームが適用され得る。いくつかの実施形態によれば、オーケストレーション手順は、障害が生じたストレージの再構築を担う。
【0136】
いくつかの実施形態によれば、ドライブの分散的な使用は、障害の検出、ホットスペアの割り当て、各RAIDの再構築のプロセス、および各RAIDからの不良なドライブのフェイルの際に、特別な調整を必要とする。
【0137】
これより
図11を参照すると、これは、ホットスペア80を有する従来のRAID5となる。図示のように、RAID5にはパリティ(ストレージシステムのエラーを検出する一般的な方法)があり、影響を受けていない残りのディスクを結合することで、特定のストレージディスクを再構築できる。パリティは、様々な理由で失われた欠損データを再構築できる複数のディスク間の組み合わせであり、このようにデータ再構築機能を提供する。該システムは、スペアの空のデータを提供するように構成されたスペアディスクを含むこともできる。
【0138】
これより
図12を参照すると、これは、従来のRAID5/RAID1+0ホットスペア再構築81となる。図示のように、再構築プロセスは、RAIDの全フォルダからのパリティを利用して実行される相互の読み取りを使用して再実行でき、RAID1+0では、データは二重に保存され、そのため、パリティは必要ではなく、読み取りが、関連データを保存するドライブを利用することにより実行される。
【0139】
これより
図13を参照すると、これは、RAIDシステム82における従来の交換プロセスとなり、図示のように、ホットスペアディスクは、スペアディスクと交換するように構成されている。このプロセスには、交換用の空きのスペアディスクが必要である。
【0140】
これより
図14を参照すると、これは、共有ドライブの監視および復旧動作または非集中型再構築システムおよびプロセス83の概要となっており、図示のように、サーバ800は、ディスク1およびスペアディスク2を備え、サーバ802は、ディスク3を備え、サーバ806は、RAID(ボリューム)1を備え、サーバ808は、RAID(ボリューム)2を構え、すべてが結合されて共有ドライブのストレージスタックを形成する。いくつかの実施形態によれば、オーケストレータ804は、故障の場合にディスク1およびディスク3を再構築するように指定される。例えば、ディスク1が故障した場合、ディスク2は、RAIDに記憶されたデータを使用して再構築されるべきであり、この場合、サーバ806および808は、組み合わせられた調整動作を適用することによって、故障したディスク2を共にかつ同時に再構築するように構成される。
【0141】
いくつかの実施形態によれば、サーバ806は、例えば「スポット」のデータ部分を構築し、サーバ808は「ストライプ」のデータ部分を構築する。いくつかの実施形態によれば、このプロセスは複雑であり、とりわけ他のステップがある中でも、故障したディスクを外し、スペアディスクを接続することを含む。
【0142】
いくつかの実施形態によれば、システムおよびプロセス83は、共有ドライブを使用する分散型ストレージが、組み合わせて調整された方法で故障したドライブを処理できるように構成されている。
【0143】
いくつかの実施形態によれば、ドライブに亘り単一のRAIDコントローラを有するストレージアレイとは異なり、システムおよびプロセス83は、異なるサーバで同じドライブを共有する複数のRAIDコンポーネントを有する分散型ストレージスタックを表す。
【0144】
いくつかの実施形態によれば、該共有されたドライバのストレージスタックの分散された使用は、障害の検出、ホットスペアディスクの割り当て、各RAIDの再構築のプロセス、および各RAIDからの不良なドライブの故障などの際に、特別な調整を必要とし得る。
【0145】
いくつかの実施形態によれば、共有ドライブのストレージスタックは、システムおよび動作83によって提供され、ディスクの通常の動作を維持するように指定された集中型オーケストレータ804によって監視される。
【0146】
いくつかの実施形態によれば、共有ドライブのストレージスタックが提供され、集中型オーケストレータ804は、故障したディスクを使用するように指定されたすべてのサーバ800~808によって使用されるホットスペアディスクを割り当てるように構成される。
【0147】
いくつかの実施形態によれば、共有ドライブのストレージスタックは、故障したディスクが検出されたときに、集中型オーケストレータ804を利用することによって、復旧アクションを実行するように構成される。
【0148】
いくつかの実施形態によれば、ドライブの障害は、完全な障害である場合もあれば、特定の論理ブロックの範囲の障害である場合もある。システムおよび動作83のように、複数のサーバ間でドライブを共有するように構成された分散型ストレージスタックでは、一部のサーバのみがエラーに遭遇し得、対して他のサーバはドライブを十分に機能しているものとみなす。
【0149】
いくつかの実施形態によれば、システムおよび動作83は、集中型オーケストレータ804によるサーバのイニシエータおよびRAIDレベルのそれぞれの監視を可能にし、ドライブが障害に遭遇した場合に単一の集中決定を下す能力を提供する。
【0150】
いくつかの実施形態によれば、ストレージプールからのホットスペアディスクの割り当ては、集中型オーケストレータ804で、またはそれによって動作されるため、故障したドライブを使用するすべての異なるサーバ(800~808)は、同じ新しいスペアディスクを使用することになる。
【0151】
いくつかの実施形態によれば、例として、システムおよび動作83によって利用されるように構成された再構築プロセスは、以下のステップを使用して実行され得る。
● 各サーバ(800~808)のイニシエータ層は、ブロックデバイスの健全性(I/Oエラーや応答時間など)について監視される。
● オーケストレータ804は、全サーバのドライブの健全性の情報を蓄積するように構成されている。
● オーケストレータ804は、ドライブの障害を認識するように構成されている。
● オーケストレータ804は、ストレージプールから新しいホットスペアディスクを割り当てるように構成されている。
● オーケストレータ804は、選択されたスペアディスクを各RAIDコンポーネントに追加するように各サーバ(800~808)に指示するように構成されている。
● オーケストレータ804は、各サーバ(800~808)に、各RAIDコンポーネントの障害が発生したディスクをフェイルさせるように指示するように構成されている。
● 各サーバ(800~808)のRAIDは、ドライブフェイルプロセスを実行し、有効なデータで新しいスペアドライブチャンクを再構築するように構成されている。有効なデータは、可能であればフェイルされたドライブから、またはRAIDミラー/パリティから使用されるように構成されている。
● オーケストレータ804は、各サーバRAIDコンポーネントの再構築プロセスを監視するように構成されている。
● 各サーバ(800~808)のすべてのRAIDがフェイルされたドライブチャンク(複数可)の再構築を完了すると、フェイルされたドライブはオフラインになり、ユーザはそれを交換するように指示される。
【0152】
整合性グループは、アプリケーションを表すボリュームのグループである。ウイルスによって引き起こされる可能性のある障害のインスタンスでは、整合性グループのスナップショットは、整合性グループのすべてのボリュームと一致する、障害が発生する前の正確な瞬間をキャプチャするように構成される。
【0153】
これより
図15を参照すると、これは、従来の整合性グループスナップショットシステム84の概要となる。図示のように、3つのボリュームv1、v2、およびv3がグループ「cg1」を作成し、1つ以上のアプリケーションを表し得る1つの整合性グループに属する。特定の時点でスナップショットが取得され、すべてのボリュームグループのスナップショットである「sg2」が作成される。すべてのボリュームが同じ場所に配置されているため、スナップショットは集中型コントローラを使用して取得される。
【0154】
これより
図16を参照すると、これは、本発明のいくつかの実施形態による、分散型スナップショット整合性グループシステム85の概要となる。図示のように、各サーバ900、902、および906は、それ自体のDPを管理するように構成され、それ自体のLVNおよびメディアストレージを備える。言い換えれば、CPは集中型であるが、DPは集中型ではない。
【0155】
前に開示したように、システム85は、複数のサーバにおけるボリュームのディストリビューションが整合性グループでスナップショットを形成し、特定の時点でのボリュームの集合のコピーを確保することを可能にする。
【0156】
いくつかの実施形態によれば、オーケストレータ904は、スナップショットの取得を調整するように構成され、CPを使用して整合性グループのスナップショットの取得を調整することができる。いくつかの実施形態によれば、I/Oの一時停止および機能性の再開が、整合性のあるスナップショットを実施するために使用され得る。
【0157】
いくつかの実施形態によれば、
図16に示す整合性グループ85では、サーバ900はボリューム1を備え、902はボリューム2を備え、906はボリューム3を備える。例えば、オーケストレータ904は、ボリューム1とファイルシステム間のI/Oの動作を停止するように構成され得る。
【0158】
いくつかの実施形態によれば、そのような例示されたコンステレーションにおける整合性グループのスナップショットを取得することは、以下のステップを含むことになる。
● オーケストレータ904は、ボリューム1へのI/Oを一時停止するようにサーバ900に指示することができる。
● オーケストレータ904は、ボリューム2へのI/Oを一時停止するようにサーバ902に指示することができる。
● オーケストレータ904は、ボリューム3へのI/Oを一時停止するようにサーバ906に指示することができる。
● オーケストレータ904は、すべてのサーバが一時停止を確認するまで待機するように構成されており、短いタイムアウト後にサーバが応答しなかった場合、スナップショットはキャンセルされ、I/Oは再開される。
● オーケストレータ904は、サーバ900のLVMにボリューム1のスナップショットを作成するように指示することができる。
● オーケストレータ904は、サーバ902のLVMにボリューム2のスナップショットを作成するよう指示することができる。
● オーケストレータ904は、サーバ906のLVMにボリューム3のスナップショットを作成するよう指示することができる。
● オーケストレータ904は、すべてのサーバがスナップショットを確認するまで待機し得、短いタイムアウト後にサーバが応答しなかった場合、スナップショットはキャンセルされ、スナップショットは削除され、I/Oは再開される。
● オーケストレータ904は、サーバ900のボリュームに、ボリューム1へのI/Oを再開するように指示する。
● オーケストレータ904は、サーバ902のボリュームに、ボリューム2へのI/Oを再開するように指示する。
● オーケストレータ904は、サーバ906のボリュームに、ボリューム3へのI/Oを再開するように指示する。
【0159】
いくつかの実施形態によれば、いくつかの該動作は、スナップショットの時間を短縮するために並行して実行され得る。
【0160】
いくつかの実施形態によれば、すべてのボリューム(
図16のボリューム1、2、および3)でI/Oが一時停止され、その後にのみスナップショットが取得されるため、整合した時点を有するスナップショットが生成される。これは、従来のシステムでは集中型アレイのみにリザーブされていた分散型ボリュームの機能性を作成することによって実現される。
【0161】
いくつかの実施形態によれば、オーケストレータ904は、サーバの1つが誤動作するかタイムアウトした場合に、整合性グループスナップショットからバックオフすることができる。
【0162】
いくつかの実施形態によれば、オーケストレータ904は、分散型ボリュームの整合性グループのスナップショットを削除する、分散型ボリュームの整合性グループのスナップショットをロールバックする、整合性グループを有する分散型ボリュームのスナップショットをスケジュールするなどを行うように構成される。
【0163】
これより次に
図17を参照すると、これは、ストレージアレイシステム86における従来のストレージQoSの概要となる。図示のように、図面の右側には3つのボリュームが表示されており、それぞれがストレージオブジェクト/ボリュームを制御するQoSを提供する異なるIOPSレート管理を有し、その結果、すべてのアプリケーション/ボリュームは、システムのパフォーマンスの向上につながる可能性のあるシステムリソースの管理対象部分を受け取る。図面の左側には、QoSのないシステムが表示され、このシステムでは、すべてのアプリケーション/ボリュームが一般的な管理を行わずに共通のリソースを消費するため、システム全体のパフォーマンスに悪影響を与える可能性がある。
【0164】
これより
図18を参照すると、これは、ボリューム間の従来のストレージQoSシステム87の概要となる。図示のように、QoSがないと、すべてのアプリケーション/ボリュームが一般的な管理を行わずに共通リソースを消費するため、システム全体のパフォーマンスに悪影響を与える可能性がある。QoSを使用すると、すべてのアプリケーション/ボリュームがシステムリソースの管理対象部分を受け取り、システムのパフォーマンスの向上につながる可能性がある。
【0165】
これより
図19を参照すると、これは、共有ドライブを備えた分散型ストレージスタックにおいてQoSを強化するための設計を提供する共有のドライブストレージスタックの分散型QoSシステム88の概要となる。図示のように、共有ボリュームは、様々なボリュームまたはサーバ1000、1002、および1006から構築される。いくつかの実施形態によれば、各サーバは、分散型QoS制限(ターゲットとLVMとの間にインストールされる)を備え、集中型オーケストレータ1004は、各サーバのQoSによって適用される数学的制限を制御するように構成される。
【0166】
いくつかの実施形態によれば、書き込み手順が実行されると、QoSの制限には複雑な計算が必要であり、オーケストレータ1004は、例えば、RAIDスキームに従って該計算を実行することによって、このタスクを提供するように適合される。
【0167】
いくつかの実施形態によれば、オーケストレータ1004は、QoS CPを調整するように構成され、一方、各サーバはローカルQoS DPを実施する。いくつかの実施形態によれば、共有のドライブストレージスタックが提供され、従来の集中型ストレージアレイと同等のQoS機能性を可能にする。
【0168】
いくつかの実施形態によれば、共有のドライブストレージスタックは、オーケストレータ1004が各ジャンクションにおけるQoS制限を調整するように構成される設計で提供される。
【0169】
いくつかの実施形態によれば、特定のボリュームに対してQoSを実施することが要求されると、オーケストレータ1004は、そのボリュームに使用されるRAIDスキームに基づいて、各バックエンドドライブの必要なQoSを計算するように構成され、その後、オーケストレータ1004は、使用されるCPに、各サーバ1000、1002、および/または1006の各ドライブ/ボリュームのQoS制限を分散させる。
【0170】
いくつかの実施形態によれば、RAID0、RAID1、およびRAID5は、異なるQoSの計算を必要とする。以下の例は、RAIDスキームに基づいた計算を表している。
● RAID0では、IOPSと帯域幅はアレイのドライブ要素の数で除算される。
● RAID1では、要求に応じて各ドライブに対してIOPSと帯域幅が設定される。
● RAID10では、IOPSと帯域幅はアレイのドライブ要素の数で除算され、レジリエンスセットで除算される。
● RAID5では、帯域幅はドライブ数で除算して1を減算した値になる。IOPSはドライブ数で除算して3を乗算する。
【0171】
いくつかの実施形態によれば、サーバ1000、1002、および1006のボリュームが共有ボリュームグループの一部である場合、オーケストレータ1004は、グループの各ボリューム要素のIOPSおよび帯域幅制限を合計するように構成される。いくつかの実施形態によれば、結合された数は、バックエンドドライブ/ボリュームに適用されるように構成される。いくつかの実施形態によれば、ボリューム制限を実施するために、別のQoS層をローカルサーバに追加することができる。
【0172】
いくつかの実施形態によれば、ボリュームが共有されたボリュームグループに追加されると、オーケストレータ1004は、制限を再計算し、各QoS要素を更新するように構成される。いくつかの実施形態によれば、ボリュームが共有されたボリュームグループから削除されると、オーケストレータ1004は、制限、および各QoS要素の更新を再計算するように構成される。
【0173】
いくつかの実施形態によれば、複数のイニシエータが、各サーバ1000、1002、および1006へのネットワークパスごとに作成されるように構成される。
【0174】
これより
図20を参照すると、これは、従来のクローンシステムを備えたエンタープライズストレージアレイ89の概要となる。図示のように、サーバ1007は、スナップショットのクローン作成を実行し、クローンサーバ1008に記憶されるスナップショットバージョンを作成するようにさらに構成されたアプリケーションデータを使用してデータのクローンを作成するように構成された生産サーバである。ディスクのクローン作成は、パーティションまたはハードドライブ全体のイメージを作成するプロセスである。これは、ドライブを他のコンピュータにコピーすること、およびバックアップや復旧の目的で有用であり得る。
【0175】
これより
図21を参照すると、これは、未割り当てデータによるボリューム全体のクローン作成システム90の概要となる。図示のように、左から右にクローン作成されるボリュームは部分的に空になり、クローンが作成されると、クローンのボリュームの一部も空のままである。
【0176】
これより
図22を参照すると、これは、本発明のいくつかの実施形態による、リモートオンラインボリュームのクローンの分散型システム91の概要となる。図示のように、システム91は、ネットワークを通して、あるソースサーバ1009から別の宛先サーバ1011へのボリュームのクローン作成を可能にするが、一方で、ボリュームがオンラインであり、オーケストレータ1010が両方のサーバにCPを通してクローンプロセスを調整するように構成され、ソースボリューム(サーバ1009に属する)の割り当てられたブロックのみがコピーされている。
【0177】
いくつかの実施形態によれば、オーケストレータ1010は、データ割り当てをクエリし、それをコピービットマップとして宛先サーバ1011に渡すように構成される。いくつかの実施形態によれば、オーケストレータ1010は、CPを介してサーバ間のボリュームクローン作成を調整するように構成される。いくつかの実施形態によれば、オーケストレータ1010は、サーバ1009のソースボリューム上の割り当てられたブロックをクエリし、コピーするブロックを宛先サーバ1011に指示するように構成されている。
【0178】
いくつかの実施形態によれば、サーバ1009のソースボリューム内の割り当てられたブロックのみがコピーされる。オーケストレータ1010は、割り当てデータをクエリし、それをコピービットマップとして宛先サーバ1011に渡すように構成されている。いくつかの実施形態によれば、オンラインボリュームのクローンを作成するために、ソースサーバ1009の論理ボリュームマネージャ(LVM)を使用して、ソースボリュームのある時点のスナップショットを作成する。
【0179】
いくつかの実施形態によれば、RAID1は、ゼロコピーで変換された変更ビットマップを使用して、ボリュームのカーネル内コピーに使用することができる。いくつかの実施形態によれば、ユーザ空間コマンドはまた、コピーに使用することができる
【0180】
いくつかの実施形態によれば、例として、
図22に示されるシステム91は、以下のステップを使用してリモートクローンを実行および実証するように構成され得る。
● オーケストレータ1010は、サーバ1009のLVMコンポーネントにソースボリュームのある時点のスナップショットを作成するよう要求する。
● オーケストレータ1010は、サーバ1009のターゲットコンポーネントにソースボリュームのスナップショットをネットワーク経由で公開するよう要求する。
● オーケストレータ1010は、サーバ1011のイニシエータコンポーネントに対して、ネットワーク経由で第1のアダプタを介して公開されたボリュームに接続するように要求する。
● オーケストレータ1010は、サーバ1011のイニシエータコンポーネントに対して、ネットワーク経由で第2のアダプタを介して公開されたボリュームに接続するように要求する。
● オーケストレータ1010はサーバ1011のマルチパスコンポーネントに、2つのイニシエータを介してソースボリュームスナップショットへの信頼できる接続を作成するよう要求する。
● オーケストレータ1010はサーバ1011に、空の宛先ボリュームの作成を要求する。
● オーケストレータ1010は、カーネル内でのレプリケート用のRAID1の作成をサーバ1011に要求する。リモートソースボリュームスナップショットとローカル宛先はRAID1メンバーとして追加できる。
● オーケストレータ1010は、ソースボリュームのスナップショットの割り当てチャンクをサーバ1009にクエリする。
● オーケストレータ1010は、ソースボリュームのスナップショットの割り当てチャンクを、RAID1レプリケーションへのビットマップとしてサーバ1011に渡す。
● オーケストレータ1010は、サーバ1011のRAID1コンポーネントの進行状況を監視する。
● オーケストレータ1010は、サーバ1011のRAID1のコピーが完了するのを待機する。
● オーケストレータ1010はサーバ1011にRAID1コンポーネントの削除を要求する。
● オーケストレータ1010はサーバ1011にマルチパスコンポーネントの削除を要求する。
● オーケストレータ1010はサーバ1011にアダプタ1のイニシエータを削除するよう要求する。
● オーケストレータ1010はサーバ1011にアダプタ2のイニシエータを削除するよう要求する。
● オーケストレータ1010は、サーバ1009に対して、公開されたソースボリュームのスナップショットのターゲットを削除するように要求する。
● オーケストレータ1010は、サーバ1009に、LVMボリューム1のスナップショットの削除を要求する。
【0181】
これより
図23を参照すると、これは、ボリューム部分を割り当てるように構成された従来の論理ボリュームマネージャ(LVM)92を概略的に示す。図示のように、論理ボリュームから物理ボリュームへの変換中に割り当てとデータ転送が実行され、同じサーバで接続および使用されるLVMを作成する。
【0182】
これより
図24を参照すると、これは、ボリューム部分を割り当てるように構成された従来のLVM92の別の図(93として記されている)を概略的に示す。図示のように、論理ボリュームから物理ボリュームへの変換中に割り当ておよびデータ転送が実行され、同じサーバで接続および使用されるLVMを作成する。
【0183】
これより
図25を参照すると、これは、従来の論理ボリュームエクステントおよびメタデータシステム94を概略的に示す。図示のように、I/Oは物理エクステントをLEからPEにマッピングし、論理チャンクと物理チャンクの間の内部マッピングを担うように構成されている。
【0184】
これより
図26を参照すると、これは、システムサーバ95間の従来の共有ストレージを概略的に示す。
【0185】
これより
図27を参照すると、これは、従来のクラスタ化された論理ボリュームマネージャ96を概略的に示す。図示のように、同じ共有ストレージを共有するサーバのバッチ、それらの間の同期は、クラスタシステムを使用して実行される。
【0186】
これより
図28を参照すると、これは、いくつかの実施形態による、クラスタのない分散型論理ボリュームマネージャシステム97を概略的に示す。図示のように、分散型LVMは、クラスタリングの動作を必要としない共有ストレージに提供される。
【0187】
いくつかの実施形態によれば、集中型オーケストレータ1017は、共有ストレージの分散型論理ボリュームマネージャに亘るエクステントの割り当てを制御するように構成される。
【0188】
いくつかの実施形態によれば、システム97は、クラスタを使用せずに共有バックエンドストレージでLVM1018などを適用し、実行する間に、該サーバ間でメタデータの整合性を維持するように構成される。
【0189】
いくつかの実施形態によれば、集中型オーケストレータ1017は、分散型LVMを管理する唯一のリソースとなるように構成される。オーケストレータ1017はさらに、分散型LVMの並列動作をキューに入れ、一度に1つの動作のみが実行されるのを確実にするように構成される。
【0190】
いくつかの実施形態によれば、オーケストレータ1017は、バックエンドストレージおよびLVMを共有するすべてのサーバ1015、1016、1018などにLVMエクステント割り当てコマンドを送信し、RAMのキャッシュされたメタデータがすべてのサーバに亘って整合性があることを保証するように構成される。
【0191】
いくつかの実施形態によれば、オーケストレータ1017は、LVMエクステントの割り当て/割り当て解除を必要とするすべての動作を次のように調整するように構成される。
● ボリュームの作成
● ボリュームの削除
● ボリュームのサイズ変更
【0192】
システム97は、すべてのサーバのLVMを制御する集中型コントローラを示している。一方、ボリューム2のサイズがどのように変更されるかは、次のように示され得る。
【0193】
● ボリューム2のサイズを変更する要求が、サーバ1016に送信される。
● オーケストレータ1017は、他のLVMエクステント動作がオーケストレータ1017で応答を待機しているかどうかを確認する。
● LVMで実行されている待機中の要求がある場合、オーケストレータ1017は要求をキューに入れる。
● オーケストレータ1017は、ボリューム2のサイズを変更する要求をサーバ1016に送信する。
● オーケストレータ1017は、キャッシュされたメタデータが整合性があることを確実にするために、ボリューム2のサイズを変更する要求をサーバ1015に送信する。
【0194】
いくつかの実施形態によれば、オーケストレータ1017は、キャッシュされたメタデータが整合性があることを確実にするために、ボリューム2のサイズを変更する要求をサーバ1018に送信するように構成される。
【0195】
これより
図29を参照すると、これは、SCSIバスシステム98の従来のレイアウトの概要を概略的に示す。図示のように、論理バスはスキャンされるように構成されている。従来、これは時間のかかるプロセスである。
【0196】
これより
図30を参照すると、これは、従来の複数チャネルの論理ユニットシステム99を概略的に示す。図示のように、すべてのバスをスキャンする必要性を強調する別のバスシステムが示されている。この遅いプロセスは、新たな最新の分散型システムには適合しない。
【0197】
これより
図31を参照すると、これは、IPネットワーク100に亘る従来のiSCSIバスを概略的に示す。図示のように、ネットワークバスでは、すべてのバスをスキャンするために多くの遅いプロセスを実行する必要がある。
【0198】
これより
図32を参照すると、これは、本発明のいくつかの実施形態による、再スキャンを伴わない調整されたリモートデバイスアタッチメントシステム/プロセス101を概略的に示す。図示のように、分散型システム101では、作業負荷がサーバからサーバに移動し得て、ボリュームもそれに伴って移動するはずである。オーケストレータ1021がシステムの両側、つまり公開側と消費側を制御するため、システム101は異なって実行することができる。例えば、オーケストレータ1021はサーバ1019に接続されており、そのバスパラメータを備えており、それが全サーバに接続されているため、再スキャンの必要なく、システムのすべてのサーバ(1019、1020、1022など)からバスの位置情報を特定して渡すことができる。
【0199】
いくつかの実施形態によれば、システム101は、バススキャンを全く行わずに、リモートストレージデバイスを、別のサーバに、迅速に接続できるようにする。
【0200】
いくつかの実施形態によれば、オーケストレータ1021は、デバイスのアタッチメントを調整し、特定のバスIDのターゲットをセットアップし、イニシエータに必要なバスIDを提供するように指定される。イニシエータはバスIDを使用してデバイスをオペレーティングシステムに接続する。いくつかの実施形態によれば、すべての情報がオーケストレータ1021から、またはこれによって保持され、提供されるため、スキャンは必要ない。
【0201】
いくつかの実施形態によれば、デバイスが公開されていない場合、オーケストレータ1021は、特定のバスIDを有するターゲットからそれを削除するように構成され、特定のバスIDのデバイスをオペレーティングシステムから削除するようにイニシエータに指示する。
【0202】
いくつかの実施形態によれば、リモートボリュームは、オーケストレータ1021によって調整されるイニシエータバススキャンなしで、ターゲットサーバ(1019、1020)によって公開され、イニシエータサーバ1022によって消費され得る。
【0203】
いくつかの実施形態によれば、リモートボリュームは、オーケストレータ1021によって調整されるイニシエータバススキャンなしで、それぞれターゲットサーバ(1019、1020)およびイニシエータサーバ1022の内部に存在するターゲットおよびイニシエータによって削除され得る。
【0204】
いくつかの実施形態によれば、オーケストレータ1021は、デバイスのアタッチメントを調整し、特定のバスIDのターゲットをセットアップし、イニシエータに必要なバスIDを提供するように構成される。いくつかの実施形態によれば、イニシエータはバスIDを使用してデバイスをオペレーティングシステムに接続する。すべての情報は既知であり、オーケストレータ1021から渡されるため、スキャンは必要ない。
【0205】
いくつかの実施形態によれば、デバイスが公開されていない場合、オーケストレータ1021は、特定のバスIDを有するターゲットからそれを削除し、特定のバスIDのデバイスをオペレーティングシステムから削除するようにイニシエータに指示する。
【0206】
いくつかの実施形態によれば、イニシエータサーバ1022のデバイス名は、例えば、その上に他のストレージコンポーネントをスタックすることを可能にするために、バスIDも使用して検出されるように構成される。
【0207】
いくつかの実施形態によれば、システム101は、例えば、新しいリモートデバイスを接続するように構成されている。
● オーケストレータ1021はサーバ1019に接続し、そのターゲット構成を読み取る。
● オーケストレータ1021は、サーバ1019の構成でサーバ1022の空きの論理ユニット番号(LUN)を見つける。
● オーケストレータ1021は、LUN IDを使用してサーバ1022に新しいターゲットを設定する。
● オーケストレータ1021はサーバ1019のHBAのアドレスを確認する。
● オーケストレータ1021は、サーバ1022でサーバ1019のHBAのアドレスのターゲットIDを見つける。
● オーケストレータ1021は、オペレーティングシステムで使用するために、LUN IDとターゲットIDを使用してサーバ1022に新しいデバイスをセットアップする。
● オーケストレータ1021は、LUN IDとターゲットIDを使用して、オペレーティングシステムによって使用されるブロックデバイス名を見つける。
【0208】
いくつかの実施形態によれば、リモートボリュームは、イニシエータバススキャンを必要とせずに、オーケストレータ1021によって行われる調整により、ターゲットおよびイニシエータによって削除され得る。
【0209】
いくつかの実施形態によれば、オーケストレータ1021は、ターゲット情報を使用して、イニシエータオペレーティングシステムによって使用されるブロックデバイス名を特定するように構成され得る。
【0210】
これより
図33を参照すると、これは、従来の自己暗号化ドライブ(SED)ロジック102を概略的に示す。図示のように、従来のSEDコンポーネントは、正しいパスワードが挿入されたときにドライブがキーを提供できるように構成されている。このように、従来のアーキテクチャでは、キーとパスワードはデータと共にドライブ内に記憶される。
【0211】
これより
図34を参照すると、これは、従来のプロトコルトンネル103を概略的に示す。図示のように、暗号化されていないシステムでデータを安全に配信するために、暗号化されたトンネルは特定のポイントから別のポイントに開かれるように構成されている。
【0212】
これより
図35を参照すると、これは、システム内の2つのポイントから暗号化されたデータを配信するように構成された、2つのサーバ間のトンネルを使用する従来のペイロードカプセル化の別の表現を概略的に示す。
【0213】
これより
図36を参照すると、これは、本発明のいくつかの実施形態による、トンネルによるリモート自己暗号化ドライブ制御を概略的に示す。図示のように、開示されている分散型システムは、キーをドライブとは別に記憶するように構成されている。いくつかの実施形態によれば、データはサーバ1023に記憶され得て、キー/パスワードはオーケストレータ1024に記憶され得て、システムは、トンネルを開き、ドライブ(例えば、ドライブのRAMなど)に記憶する必要なくトンネルを介してキーを配信することによって、暗号化されない。いくつかの実施形態によれば、該分散型システムは、複数のキーを記憶し、複数のドライブに亘って構成されることができる。いくつかの実施形態によれば、通信はSEDプロトコルを使用して行われてもよい。
【0214】
いくつかの実施形態によれば、前に開示したように、該システムおよび方法は、リモートサーバからネットワークを介してトンネリング自己暗号化ドライブ(SED)プロトコルを利用することを可能にし、この目標は、オーケストレータ1024の集中型の保護されたデータベースにキーを記憶することによって達成され得る一方で、SEDプロトコルは、暗号化トンネリングを使用してネットワーク上でカプセル化される。
【0215】
いくつかの実施形態によれば、自己暗号化ドライブ(SED)は、ローカルサーバの制御ユーティリティを必要とせずに、SED動作用のトンネルを介して、リモートサーバにより制御される。いくつかの実施形態によれば、自己暗号化ドライブ(SED)のキーは、集中型キーデータベースに記憶され、提供される。
【0216】
いくつかの実施形態によれば、自己暗号化ドライブ(SED)のキーは、サーバのキーインメモリのエクスプロイトに公開されることなく、トンネルを介してドライブに直接通過するように構成される。
【0217】
いくつかの実施形態によれば、SEDプロトコルは、暗号化されたトンネリングを使用してネットワーク上でカプセル化される。例えば、Linux Secured Shell(SSH)プロトコル、Windows PowerShell Remoting Protocol(PSRP)を使用する。
【0218】
いくつかの実施形態によれば、SED通信は、特別なツールを必要とせずに、ドライブと直接行われる。例えば、ドライブとのRAW通信にはSCSIドライブ用のLinuxsg_rawユーティリティを使用し、NVMeドライブにはadmin-passthruコマンドでLinux NVMeユーティリティを使用し、Windows IOCTL_ATA_PASS_THROUGH_DIRECTを使用する。
【0219】
いくつかの実施形態によれば、この新しいアプローチは、例えば、現在サーバによって使用されているローカルのSEDプロトコルに比べて多くの利点を有する可能性がある。例えば、
● SEDユーティリティ(オペレーティングシステムには標準としては存在しない)をインストールして保守する必要はない。
● ローカルサーバにハードウェアセキュリティモジュール(HSM)は必要ない。
● キーはいかなる時点でもローカルサーバに公開されることはなく、攻撃者に漏洩する、または盗まれることはない。
● キーは、論理的および物理的に遥かに簡単に保護可能な集中データベースに保存される。
【0220】
いくつかの実施形態によれば、該システムは、以下のステップを使用してリモート自己暗号化ドライブ制御を提供するように構成されている。
● オーケストレータ1024は、キーデータベースに新しいキーを生成する。
● オーケストレータ1024とサーバ1023との間にトンネルが作成される。
● 証明書がオーケストレータ1024に記憶される。
● オーケストレータ1024とドライブの間にトンネルが作成される。
● 証明書がオーケストレータ1024に記憶される。
● オーケストレータ1024の自己暗号化ドライブプロトコルハンドラは、トンネルを介してドライブSEDプロトコルコンポーネントとリモート通信する。
● SEDプロトコルハンドラは、安全な暗号化チャネルを介してキーをドライブに渡す。
● SEDプロトコルハンドラはドライブのロックを有効にする。
【0221】
いくつかの実施形態によれば、該システムは、以下のステップを使用してサーバ再起動プロセス後のリモート自己暗号化ドライブ制御を提供するように構成されている。
● オーケストレータ1024がサーバの再起動を検出する
● オーケストレータ1024は、キーデータベースからサーバドライブキーをフェッチする。
● オーケストレータ1024とリモートサーバの間にトンネルが作成される。
● 記憶されている証明書が検証される。
● オーケストレータ1024とドライブの間にトンネルが作成される。
● 記憶されている証明書が検証される。
● オーケストレータ1024の自己暗号化ドライブプロトコルハンドラが、トンネルを介してドライブSEDプロトコルコンポーネントとリモート通信する。
● SEDプロトコルハンドラが、安全な暗号化チャネルを介してキーをドライブに渡す。
● SEDプロトコルハンドラがドライブのロックを解除する。
【0222】
これより
図37を参照すると、これは、従来のRAID1-データミラーリングシステムを概略的に示す。図示のように、バックアップRAID1は、データの二重バックアップを複製して保存するように構成されている。
【0223】
これより
図38を参照すると、これは、従来の非同期レプリケーションシステムを概略的に示す。図示のように、バックアップのプロセス中にデータが失われない。
【0224】
これより
図39を参照すると、これは、従来の同期レプリケーションシステムを概略的に示す。図示のように、レプリケーションは過去の特定の時点に制限されているが、依然として一定期間が失われる可能性があり、それでも、レプリケーションは整合性があるはずである。
【0225】
いくつかの実施形態によれば、標準的なRAID1コンポーネントを使用して、少なくとも1つのリモートサイトにデータを複製する。一般的なRAID1コンポーネントは、2つのドライブ間でデータをミラーリングするために設計、構築、および使用されるが、本発明は、コンポーネントにいずれかの実質的な変更を加えることなく、RAID1を使用してデータをリモートサイトに複製することを提案する。いくつかの実施形態によれば、同期レプリケーションと非同期レプリケーションの両方を使用して、RAID1コンポーネントに本発明を容易にさせることができる。
【0226】
いくつかの実施形態によれば、標準のRAID1コンポーネントを使用してリモートサイトに複製されるストレージボリュームは、同期モードで動作する。
【0227】
これより
図40を参照すると、これは、本発明のいくつかの実施形態による、RAID1システムを使用する同期レプリケーションを概略的に示す。図示のように、オペレーティングシステムのコンポーネントは、すべての書き込みを2つに分割し、サーバ1025および1026に記憶するために利用される。このようにして、同期レプリケーションを実現できる。いくつかの実施形態によれば、オーケストレータ(図示せず)がこの動作を管理することができる。いくつかの実施形態によれば、該サーバは互いに実質的に遠隔に配置され得る。
【0228】
いくつかの実施形態によれば、ストレージスタックは、RAID1コンポーネントとの同期レプリケーションに使用され、RAID1が元々設計されていたサーバ1026、1027の2つのドライブを接続する代わりに、1つの物理ドライブだけがRAID1に接続され、一方で、少なくとも別のドライブは、マルチパス、イニシエータ、およびターゲットコンポーネントにより例示されるようなストレージコンポーネントを介してリモートディスクに接続される。
【0229】
いくつかの実施形態によれば、サーバのボリュームから発生する各書き込み動作は、
図39に示すスタックを介してローカルディスクとリモートディスクの両方に書き込まれる。RAID1ロジックは、通常、ディスク間でデータをミラーリングするように設計されているのに対し、本発明による変更は、2番目のディスクがリモートターゲットとしてローカルに設定されるため、このような動作によく適している。
【0230】
いくつかの実施形態によれば、ネットワークの切断の場合、RAID1ビットマップは、同期していなかった変更を追跡し、リモートサーバが接続されたときにそれらを同期し直す。このような動作は、事実上、ミラードライブの引き抜きに対して動作するRAID1と同じになる。
【0231】
本発明の別の実施形態では、リモートサイトに複製されるストレージボリュームは、非同期モードで、RAID1コンポーネントと結合されたLVMスナップショットを使用する。
【0232】
これより
図41を参照すると、これは、本発明のいくつかの実施形態による、LVMスナップショットおよびRAID1を使用するサーバ1027と1028との間の非同期レプリケーション手順を概略的に示す。
【0233】
いくつかの実施形態によれば、非同期レプリケーションに使用されるストレージスタックはRAID1コンポーネントである。スナップショットには論理ボリュームマネージャ(LVM)が使用される。スナップショットは、特定の時点での変更をグループとして同期するために必要である。いくつかの実施形態によれば、以前の同期からの変更は、LVMスナップショットの差分によって、またはストレージスタック追跡層、例えば、Linuxにおけるdm-eraなどによって追跡される。
【0234】
いくつかの実施形態によれば、以前の同期からの変更はRAID1ビットマップに変換され、RAID1コンポーネントに送信される。
【0235】
いくつかの実施形態によれば、同期レプリケーションと同様に、RAID1の1つのレッグはローカルLVMスナップショットに接続され、少なくとも別のドライブは、マルチパス、イニシエータ、およびターゲットコンポーネントによって例示されるようなストレージコンポーネントを介してLVMスナップショットを削除するために接続される。
【0236】
いくつかの実施形態によれば、RAID-1が再同期を試みるとき、ビットマップ情報により、RAID1はローカルスナップショットから変更されたデータを読み取り、それをサーバ2のリモートスナップショットに書き込むことができる。非同期レプリケーションネットワークが切断された場合、ビットマップがRAID1のコンポーネントによって更新され続けるので、再開することができる。いくつかの実施形態によれば、リモートサイトのスナップショットにより、完了しなかった部分的なレプリケーションのロールバックが可能になる。いくつかの実施形態によれば、RAID1およびLVMコンポーネントのカーネル実装は、コピーゼロ、高い帯域幅、低いCPU使用率、およびコンテキストスイッチがなく、ネットワークを介して1つのローカルボリュームスナップショットとリモートボリュームスナップショットを接続することを保証する。
【0237】
いくつかの実施形態によれば、非同期レプリケーション手順は、LVMスナップショットデルタメタデータまたは変更追跡情報を使用して、最後の非同期レプリケーションからの変更を追跡するように構成される。変更リストをRAID1ビットマップに変換し、最後の非同期動作からの変更のみを複製する。
【0238】
本発明の別の態様によれば、LVMにおけるスペースの割り当ては、シック割り当てエクステントグループが割り当てられながら、一般に実施されるシンプロビジョニングと同様の漸進的な方法で実行されるように構成される。このような構成では、シック割り当てに一般的に起因する低いRAM使用量と低いCPUリソースの利点を享受すると同時に、シン割り当てを使用したプログレッシブな割り当てに一般的に関連する利点も享受する。
【0239】
いくつかの実施形態によれば、2層のLVMスタックが提案される。1つは物理ドライブの上位に位置するシック割り当てを有する。もう1つは、ボリュームの下位にあるシン割り当ての下位の論理ボリュームマネージャである。いくつかの実施形態によれば、LVMの下位層の空きスペースを監視するコントローラが提供され、これにより、オーケストレータが上位層(複数可)により多くのエクステントを自動的に割り当てることができるようになる。一般にクラウドLVMはシック動作でのみデータを割り当てるが、提案された構成の使用はクラウド管理ストレージにも適用でき、そのため、パブリッククラウドで使用された容量のみの支払いが可能になることが理解されよう。このような2層のLVMスタックにより、下層のボリュームはすべてのスペースを参照できるようになるが、上層のLVMは容量の一部のみを割り当てる。
【0240】
本発明の別の態様によれば、RAIDパリティ動作に複数のプロセッサコアを使用し、新しいSSDドライブを最大帯域幅まで利用することができ、それにより関連するRAIDをロックや同期なしにコア間でスケール変更できる。いくつかの実施形態によれば、コアおよびRAID構成により、すべてのコアを並列に使用できるだけでなく、標準的なパリティRAIDが実行されるため、RAIDのサイズを変更する機能も可能になる。マルチコアのスケーラブルなRAIDパリティはまた、故障したドライブの特別な処理、スペアの交換、および健全性の監視も必要とするが、いくつかの実施形態によれば、そのような構成はコアインスタンスに亘って集約される。いくつかの実施形態によれば、ロックなしで複数のコアでスケール変更および実行するパリティRAIDが提供される。いくつかの実施形態によれば、オンラインでサイズ変更できるマルチコアパリティRAIDが提供される。
【0241】
マルチコアのスケーラブルなRAIDパリティの例を示す
図43を参照する。LVMは、各ドライブをサブドライブのボリュームに分割するために使用される。各ドライブが分割されるサブドライブボリュームの数は、RAIDロジックに並行して使用されるコアの数である。
図43に例示のように、RAIDには3つのコアが使用されるため、各ドライブは3つの論理ボリュームに分割される。レベル5または6の個別のパリティRAIDが各コアに作成される。
図43に例示のように、3つのコアは3つの個別のRAID5のインスタンスを作成する。各インスタンスは、各物理ボリュームから1つずつ、サブドライブボリュームで実行される。コアのパリティRAIDは、ホストが別のLVMを使用して使用できるように、単一のボリュームにマージされる。このような例示的な設計および構成により、すべてのコアを並行して使用できるだけでなく、標準パリティRAIDと同様にRAIDのサイズを変更する機能も可能になる。
【0242】
RAIDのサイズを変更するために、次の手順を実行できる。
● LVMの下位層が、物理ボリュームを拡張する。
● LVMの下位層では、追加のサイズをコア数で除算した分だけ、各サブドライブボリュームを拡張する。
● 各コアのRAID5が拡張される。
● LVMの上位層が、各コアの各物理ボリュームを拡張する。
● LVMの上位層が、ボリュームサイズを拡張する。
【0243】
本発明の別の態様によれば、標準的なオペレーティングシステムを実行する2つのサーバのセットがデュアルストレージコントローラとして設定され、標準的なオペレーティングシステムコンポーネントを使用して相互接続転送チャネルが2つのサーバ間に作成される。いくつかの実施形態によれば、ボリュームサービングノードの優先順位は、オペレーティングシステムターゲットを使用してホストに公開される。いくつかの実施形態によれば、オペレーティングシステムのNVMeイニシエータコンポーネントのコンポーネントを使用して、ボリュームサービスサーバからボリューム転送サーバへのフェイルオーバーが実行される。オペレーティングシステムのストレージターゲットコンポーネントは1つのサーバで使用され、別のサーバのストレージイニシエータコンポーネントと組み合わせて相互接続を作成する。相互接続は、エンタープライズストレージアレイで実行されるのと同様のトラフィックを転送するために使用されるが、いくつかの実施形態によれば、オペレーティングシステムのマルチパスドライバは、別のノードにフェイルオーバーしながらトラフィックをキューイングするという異なる目的に対して再利用される。マルチパスドライバは、パス障害のサポート用に設計されたキューを含む。
【0244】
例として、オペレーティングシステムのデバイスマッパー「リニア」は、ボリュームストレージスタックとインターコネクト転送の間の切り替えという別の目的に対して再利用される。「リニア」デバイスマッパーを適用することは有利である、なぜならスタッキングコンポーネントはそれらすべてを削除しないといずれの変更もできないからである。「リニア」デバイスマッパーを使用すると、その上位のコンポーネントを変更せずにスタックコンポーネントを変更できる。ボリュームサービングサーバが変更された場合、またはサーバ障害が発生した場合に、フェイルオーバーが発生する可能性がある。
【0245】
図44を参照すると、次のステップを使用したサーバ1からサーバ2へのボリュームのフェイルオーバーを示している。
● マルチパスドライバを使用してサーバ1でIOをキューに入れる。
● マルチパスドライバを使用してサーバ2でIOをキューに入れる。
● サーバ1の共有ドライブからボリュームスタックを削除する。
● サーバ2の共有ドライブからボリュームスタックを作成する。
● サーバ1のスイッチを変更して、デバイスマッパーリニアを使用してインターコネクト経由で転送を実行する。
● サーバ2のスイッチを変更して、デバイスマッパーリニアを使用してボリュームスタックを実行する。
● サーバ1のターゲットを変更して、非優先パスを公開する。
● サーバ2のターゲットを変更して、優先パスを公開する。
● サーバ1のキューを解放する。
● サーバ2のキューを解放する。
【0246】
本発明を特定の実施形態を参照して説明してきたが、この説明は限定的な意味で解釈されることを意図したものではない。開示された実施形態の様々な変更、および本発明の代替実施形態は、本発明の説明を参照すると、当業者には明白である。したがって、付属の請求項は、本発明の範囲に入るそのような変更を網羅することが企図される。
【国際調査報告】