(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-24
(54)【発明の名称】ネットワークストレージ上のクォーラムコンポーネントの設定
(51)【国際特許分類】
G06F 11/20 20060101AFI20250117BHJP
G06F 3/06 20060101ALI20250117BHJP
G06F 13/10 20060101ALI20250117BHJP
【FI】
G06F11/20 669
G06F3/06 301Z
G06F13/10 340A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024541886
(86)(22)【出願日】2022-02-04
(85)【翻訳文提出日】2024-07-11
(86)【国際出願番号】 US2022015168
(87)【国際公開番号】W WO2023149887
(87)【国際公開日】2023-08-10
(81)【指定国・地域】
(71)【出願人】
【識別番号】520155228
【氏名又は名称】ヒタチ ヴァンタラ エルエルシー
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】デ・ラ・トッレ, ジョナサン
(72)【発明者】
【氏名】タン, ケビン
(72)【発明者】
【氏名】スワルツ, ダン
(72)【発明者】
【氏名】ルオン, ダン
(72)【発明者】
【氏名】ロメロ, ポール
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC02
(57)【要約】
いくつかの例では、第1ネットワークストレージのコンピューティングデバイスが、仮想マシンイメージと、データを複製する第2及び第3ネットワークストレージのクォーラムコンポーネントを作成するための実行可能命令とを受信する。コンピューティングデバイスは、コンピューティングデバイス上に仮想マシンを実装する。更に、コンピューティングデバイスは、仮想マシンを実装することに基づいて、実行可能命令を実行して、ストレージデバイス上に論理ボリュームを作成し、且つ論理ボリュームにおいて、第2及び/又は第3ネットワークストレージからのクォーラム情報を受信するためのターゲットボリュームを作成する。仮想マシンがクォーラム情報を受信するために、仮想マシンと第2及び第3ネットワークストレージとの間に接続が確立される。仮想マシンは、少なくとも1つのターゲットボリュームにクォーラム情報を格納する。
【特許請求の範囲】
【請求項1】
1以上のネットワークを介して第2ネットワークストレージ及び第3ネットワークストレージと通信することができるコンピューティングデバイスを含む第1ネットワークストレージであって、データは、前記第2ネットワークストレージと前記第3ネットワークストレージとの間で複製される第1ネットワークストレージを含み、
前記コンピューティングデバイスは、
前記コンピューティングデバイスによって、仮想マシンイメージと、クォーラムコンポーネントを作成するための実行可能命令とを受信することと、
前記コンピューティングデバイスによって、前記仮想マシンイメージに基づいて、前記コンピューティングデバイス上に仮想マシンを実装することと、
前記仮想マシンを実装することに少なくとも基づいて、前記コンピューティングデバイスによって、
前記コンピューティングデバイスに関連するストレージデバイス上に論理ボリュームを作成するためと、
前記論理ボリュームにおいて、前記第2ネットワークストレージ又は前記第3ネットワークストレージの少なくとも一方からクォーラム情報を受信するための少なくとも1つのターゲットボリュームを作成するためであって、前記クォーラム情報は、前記第2ネットワークストレージ又は前記第3ネットワークストレージのうちの少なくとも一方の動作条件を示す、前記ターゲットボリュームを作成するための前記実行可能命令を実行することであって、
第1接続は、前記第2ネットワークストレージから第1クォーラム情報を受信するために前記仮想マシンと前記第2ネットワークストレージとの間に確立され、第2接続は、前記第3ネットワークストレージから第2クォーラム情報を受信するために、前記仮想マシンと前記第3ネットワークストレージの間に確立される、ことと、
前記仮想マシンによって、前記第1クォーラム情報又は前記第2クォーラム情報のうちの少なくとも一方を前記少なくとも1つのターゲットボリュームに格納することと
を含む動作を実行するように構成される、システム。
【請求項2】
前記動作は、
前記第1ネットワークストレージに関連するサービスプロバイダに関連するレポジトリから、前記仮想マシンイメージと、前記クォーラムコンポーネントを作成するための前記実行可能命令とを受信すること
を更に含む、請求項1に記載のシステム。
【請求項3】
前記動作は、前記コンピューティングデバイスによって、
前記論理ボリュームを作成する前に、前記論理ボリュームを作成するために使用するストレージデバイスを識別し、
前記ストレージデバイスをパーティショニングして、パーティションを作成し、
前記パーティション上に前記論理ボリュームを作成する
ための前記実行可能命令を実行することを更に含む、請求項1に記載のシステム。
【請求項4】
前記動作は、前記コンピューティングデバイスによって、
前記論理ボリュームのためのファイルシステムを作成し、
前記ファイルシステムのためのマウントポイントを作成し、
前記ファイルシステムをマウントする
ための前記実行可能命令を実行することを更に含む、請求項1に記載のシステム。
【請求項5】
前記ターゲットボリュームは、インターネットスモールコンピュータシステムズインターフェース(iSCSI)ターゲットボリュームである、請求項1に記載のシステム。
【請求項6】
前記動作は、前記コンピューティングデバイスによって、前記iSCSIターゲットボリュームを論理ユニット番号上にマッピングするための前記実行可能命令を実行することを更に含む、請求項5に記載のシステム。
【請求項7】
第1クォーラム情報を受信するために前記仮想マシンと前記第2ネットワークストレージとの間に前記第1接続を確立することは、前記仮想マシンと前記第2ネットワークストレージとの間にインターネットスモールコンピュータシステムズインターフェース(iSCSI)パスを確立することを含む、請求項1に記載のシステム。
【請求項8】
前記動作は、前記コンピューティングデバイスによって、
前記第2ネットワークストレージに関連するiSCSI修飾名(IQN)を決定し、
前記第2ネットワークストレージに関連する前記IQNに少なくとも基づいて、前記iSCSIパスを確立するための前記実行可能命令を実行することを更に含む、請求項7に記載のシステム。
【請求項9】
前記動作は、
前記コンピューティングデバイスによって、ユーザコンピューティングデバイスに、前記ユーザコンピューティングデバイスにユーザインターフェースを提示させる情報を送信することと、
前記コンピューティングデバイスによって、前記ユーザインターフェースを介して、クォーラムボリュームを追加する命令の指示を受信することと、
前記クォーラムボリュームを追加する前記命令の前記指示に基づいて、
新しいボリュームのための空きストレージスペースを決定することと、
前記新しいボリューム及び論理ユニット番号を前記空きストレージスペースに関連付けることと
を更に含む、請求項1に記載のシステム。
【請求項10】
前記動作は、
前記コンピューティングデバイスによって、ユーザコンピューティングデバイスに、前記ユーザコンピューティングデバイスにユーザインターフェースを提示させる情報を送信することと、
前記コンピューティングデバイスによって、前記ユーザインターフェースを介して、クォーラムボリュームを削除する命令の指示を受信することと、
前記ユーザコンピューティングデバイスに、前記クォーラムボリュームの識別子の要求を送信することと、
前記ユーザコンピューティングデバイスからの返答において受信したボリューム識別子に基づいて、前記ボリューム識別子に対応するボリュームを削除することと
を更に含む、請求項1に記載のシステム。
【請求項11】
前記第1ネットワークストレージのサイトは、前記第2ネットワークストレージのサイト又は前記第3ネットワークストレージのサイトのうちの少なくとも一方から地理的に遠隔にある、請求項1に記載のシステム。
【請求項12】
第1ネットワークストレージのコンピューティングデバイスによって、仮想マシンイメージと、第2ネットワークストレージ及び第3ネットワークストレージのクォーラムコンポーネントを作成するための実行可能命令とを受信することであって、データが、前記第2ネットワークストレージと前記第3ネットワークストレージとの間で複製される、ことと、
前記コンピューティングデバイスによって、前記仮想マシンイメージに基づいて、前記コンピューティングデバイス上に仮想マシンを実装することと、
前記仮想マシンを実装することに少なくとも基づいて、前記コンピューティングデバイスによって、
前記コンピューティングデバイスに関連するストレージデバイス上に論理ボリュームを作成するためと、
前記論理ボリュームにおいて、前記第2ネットワークストレージ又は前記第3ネットワークストレージの少なくとも一方からのクォーラム情報を受信するための少なくとも1つのターゲットボリュームを作成するためであって、前記クォーラム情報が、前記第2ネットワークストレージ又は前記第3ネットワークストレージのうちの少なくとも一方の動作条件を示す前記ターゲットボリュームを作成するための前記実行可能命令を実行することであって、
第1接続は、前記第2ネットワークストレージから第1クォーラム情報を受信するために前記仮想マシンと前記第2ネットワークストレージとの間に確立され、第2接続は、前記第3ネットワークストレージから第2クォーラム情報を受信するために、前記仮想マシンと前記第3ネットワークストレージの間に確立される、ことと、
前記仮想マシンによって、前記第1クォーラム情報又は前記第2クォーラム情報のうちの少なくとも一方を前記少なくとも1つのターゲットボリュームに格納することと
を含む、方法。
【請求項13】
前記第1ネットワークストレージに関連するサービスプロバイダに関連するレポジトリから、前記仮想マシンイメージと、前記クォーラムコンポーネントを作成するための前記実行可能命令とを受信すること
を更に含む、請求項12に記載の方法。
【請求項14】
第1ネットワークストレージのコンピューティングデバイスによって前記コンピューティングデバイスを、動作を実行するように構成するために実行可能な1つ以上のプログラムを格納する1以上の非一時的コンピュータ可読媒体であって、
前記動作は、
前記コンピューティングデバイスによって、仮想マシンイメージと、第2ネットワークストレージ及び第3ネットワークストレージのクォーラムコンポーネントを作成するための実行可能命令とを受信することであって、データは、前記第2ネットワークストレージと前記第3ネットワークストレージとの間で複製される、ことと、
前記コンピューティングデバイスによって、前記仮想マシンイメージに基づいて、前記コンピューティングデバイス上に仮想マシンを実装することと、
前記仮想マシンを実装することに少なくとも基づいて、前記コンピューティングデバイスによって、
前記コンピューティングデバイスに関連するストレージデバイス上に論理ボリュームを作成するためと、
前記論理ボリュームにおいて、前記第2ネットワークストレージ又は前記第3ネットワークストレージのうちの少なくとも一方からのクォーラム情報を受信するための少なくとも1つのターゲットボリュームを作成するためであって、前記クォーラム情報が、前記第2ネットワークストレージ又は前記第3ネットワークストレージの少なくとも一方の動作条件を示す前記ターゲットボリュームを作成するための前記実行可能命令を実行することであって、
第1接続は、前記第2ネットワークストレージからの第1クォーラム情報を受信するために前記仮想マシンと前記第2ネットワークストレージとの間に確立され、第2接続は、前記第3ネットワークストレージから第2クォーラム情報を受信するために、前記仮想マシンと前記第3ネットワークストレージの間に確立される、ことと、
前記仮想マシンによって、前記第1クォーラム情報又は前記第2クォーラム情報のうちの少なくとも一方を前記少なくとも1つのターゲットボリュームに格納することと
を含む動作を実行するように前記コンピューティングデバイスを構成する、1つ以上の非一時的コンピュータ可読媒体。
【請求項15】
前記動作は、
前記第1ネットワークストレージに関連するサービスプロバイダに関連するレポジトリから、前記仮想マシンイメージと、前記クォーラムコンポーネントを作成するための前記実行可能命令とを受信すること
を更に含む、請求項14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データストレージの技術分野に関する。
【背景技術】
【0002】
組織や他のエンティティは、データ損失のリスクを最小限に抑えるストレージ機能を要求することがある。例えば、災害が発生した場合には、ある組織はデータもデータへのアクセスも失うことがあり、ひいては機能する能力を失うことがある。歴史的に、ストレージソリューションは、故障したシステムから失われたデータを復旧するのに必要な時間を短縮することを重視している。しかしながら、現在、組織には、データ損失がゼロである可能性が極めて高い復旧ソリューションを実装することについて相当な圧力がある。更に、ビジネス取引がますますコンピュータによって完全に行われるようになっているため、災害後に失われたデータを手動で復旧するための典型的なビジネス手順を実装することが一層難しくなっている。多くの組織において、これらのリスクは許容されなくなっている。その結果、永久的なデータ損失及び/又は長期にわたるサービス停止の可能性を減らすことが、ビジネス上の優先事項となっている。
【発明の概要】
【課題を解決するための手段】
【0003】
いくつかの実装形態では、第1ネットワークストレージのコンピューティングデバイスは、仮想マシンイメージと、データを複製する第2ネットワークストレージ及び第3ネットワークストレージのクォーラムコンポーネントを作成するための実行可能命令とを受信する。コンピューティングデバイスは、仮想マシンイメージに基づいて、コンピューティングデバイス上に仮想マシンを実装する。更に、仮想マシンを実装することに基づいて、コンピューティングデバイスは、実行可能命令を実行して、コンピューティングデバイスに関連するストレージデバイス上に論理ボリュームを作成し、且つ論理ボリュームに、第2ネットワークストレージ及び/又は第3ネットワークストレージからクォーラム情報を受信するための少なくとも1つのターゲットボリュームを作成する。仮想マシンがクォーラム情報を受信するための接続が、仮想マシンと第2ネットワークストレージ及び第3ネットワークストレージとの間に確立される。仮想マシンは、少なくとも1つのターゲットボリュームにクォーラム情報を格納する。
【図面の簡単な説明】
【0004】
詳細な説明は、添付の図面を参照しながら、記載される。図面では、参照番号の最も左にある数字は、その参照番号が最初に登場する図面を示す。異なる図面における同じ参照番号の使用は、類似又は同一である項目又は特徴を示す。
【0005】
【
図1】
図1は、いくつかの実装形態に係るクォーラムコンポーネントを利用する複数のネットワークストレージにデータを格納することができるシステムのアーキテクチャ例を示す。
【0006】
【
図2】
図2は、いくつかの実装形態に係るネットワークストレージ上でクォーラムコンポーネントを設定するために実行され得るプロセス例を示すフロー図である。
【0007】
【
図3】
図3は、いくつかの実装形態に係るクォーラムコンポーネントとの相互作用を含むプロセス例を示すフロー図である。
【0008】
【
図4】
図4は、いくつかの実装形態に係るクォーラムコンポーネントを設定するために使用され得るユーザインターフェース例を示す。
【0009】
【
図5】
図5は、いくつかの実装形態に係るクォーラムコンポーネントを有するネットワークストレージの構成例の選択されたコンポーネントを示す。
【0010】
【
図6】
図6は、いくつかの実装形態に係る複製を実行するネットワークストレージの構成例の選択されたコンポーネントを示す。
【0011】
【
図7】
図7は、本明細書で説明されるシステムの機能のいくつかを実装するために使用され得る1以上のサービスコンピューティングデバイスの選択されたコンポーネント例を示す。
【0012】
【
図8】
図8は、いくつかの実装態様に係る管理デバイスの選択されたコンポーネント例を示す。
【発明を実施するための形態】
【0013】
本明細書におけるいくつかの実装形態は、データ複製で使用するクォーラムコンポーネントを提供するように、遠隔のネットワークストレージにおいて仮想マシンをデプロイし、仮想マシンを自動的に設定するための技法及び構成を対象とする。例えば、本明細書における技法は、クォーラムコンポーネントを遠隔でデプロイして設定する際のユーザエラーを大幅に削減又は排除することができる迅速且つ効率的なプロセスを提供する。更に、いくつかの例は、クォーラムコンポーネントを作成及び削除するため、並びにクォーラムコンポーネントに関連する他の様々な操作を実行するためにユーザが利用し得るユーザインターフェースを提供する。
【0014】
いくつかの例では、1以上のサービスコンピューティングデバイスは、ネットワークストレージ間で非同期又は同期データ複製を実行する基礎となる物理ストレージシステムを有する複数のネットワークストレージを含む仮想ストレージを利用する。例えば、第1ネットワークストレージは、第1地理的位置にある第1サイトに配置された第1物理ストレージシステムを含んでもよい。第2物理ストレージシステムは、第1地理的位置から遠隔にあってもよい第2地理的位置にある第2サイトに配置された第2ネットワークストレージを含んでもよい。いくつかの例では、第2地理的位置は、第1地理的位置にある第1ネットワークストレージに影響を及ぼす災害が、第2地理的位置にある第2ネットワークストレージに影響を及ぼす可能性がなく、その逆もまた同様であるように、別の都市、別の州、別の国などのように第1地理的位置から十分に遠隔にあってもよい。第1ネットワークストレージ及び第2ネットワークストレージは、互いにデータを複製して、データ損失からデータを保護してもよい。
【0015】
加えて、クォーラムコンポーネントは、第1サイト及び第2サイトから地理的に遠隔にある第3地理的位置にある第3サイトに配置された第3物理ストレージシステムを含む第3ネットワークストレージにおいて設置されてもよい。例えば、クォーラムコンポーネントは、第1ネットワークストレージ及び第2ネットワークストレージ上のデータボリュームの同期複製されたコピーを維持するのを助ける情報を格納してもよい少なくとも1つのクォーラムボリュームを含んでもよい。一例として、第1ネットワークストレージ及び第2ネットワークストレージのそれぞれは、クォーラムコンポーネントにアクセスして、互いの状態を確認してもよい。クォーラムコンポーネントは、パス障害、ネットワークストレージのいずれかの障害などの、第1ネットワークストレージと第2ネットワークストレージとの間における複製障害を検出するために使用されてもよい。いくつかの例では、クォーラムコンポーネントは、オペレーティングシステム(OS)とクォーラム設定及び変更プログラムとを含んでもよい仮想マシンイメージを使用して設定される仮想マシン上に常駐してもよい。本明細書におけるクォーラムコンポーネントは、オンプレミスのクォーラムコンポーネントに代わる、地理的に遠隔にある代替手段を提供し、それにより単一障害点を回避してもよい。
【0016】
本明細書における実装形態は、最小限のコマンドを用いて、且つ合理化された仕方で、地理的に離れたサイトにあるクォーラムコンポーネントを遠隔で設定できる一方で、クォーラムコンポーネントの設定中にユーザエラーがもたらされる可能性を著しく低減することを可能にする。加えて、本明細書における技法は、クォーラムボリュームをクォーラムコンポーネントとして機能するようにデプロイして設定するのに必要な時間を短縮することができ、且つデータ複製ソリューションを設定して動作させるための全体的な労力及びコストを削減することができる。更に、本明細書における実装形態は、ユーザがクォーラムコンポーネントの適切なボリュームサイズを設定することを確保し、設定プロセスにおいて正しいIPアドレスが使用されることを確保し、適格なインターネットスモールコンピュータシステムズインターフェース(iSCSI)名が使用されることを確保し、クォーラムボリュームとして機能するようにボリュームをパーティショニングするときに適切なパーティションが作成されることを確保することができる。例えば、ChadalapakaらによるRFC 7143 IETF Trust,April 2014に記載されているように、iSCSIは、データストレージ設備をリンクするためのインターネットプロトコル(IP)ベースのストレージネットワーキング規格である。iSCSIは、TCP/IPネットワーク上でSCSIコマンドを運ぶことにより、ストレージデバイスへのブロックレベルのアクセスを提供する。iSCSIプロトコルは、クライアント(別名「イニシエータ」)が、ネットワークを介して、遠隔のコンピューティングデバイス上のストレージデバイス(ターゲット)にSCSIコマンドを送信することを許容する。
【0017】
議論のために、いくつかの例示的な実装形態は、1以上のサービスコンピューティングデバイスが、データ複製を可能にし、データの完全性を維持し、障害を検出するためにクォーラムコンポーネントと通信する複数のネットワークストレージと通信する環境において説明される。しかしながら、本明細書における実装形態は、提供される特定の例に限定されるものではなく、本明細書の開示を検討すれば当業者には明らかになるように、他のタイプのコンピューティングシステムアーキテクチャ、他のタイプのストレージ環境、他のタイプのクライアント構成、他のタイプのデータなどに拡張されてもよい。
【0018】
図1は、いくつかの実装形態に係るクォーラムコンポーネントを利用する複数のネットワークストレージにデータを格納することができるシステム100のアーキテクチャ例を示す。システム100は、1以上のネットワーク106などを介して、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2などの複数のネットワークストレージ104と通信することができる、又は接続される1以上のサービスコンピューティングデバイス102を含む。少なくとも第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)は、更に、1以上のネットワーク106を介して第3ネットワークストレージ104(3)と通信することができる。ネットワークストレージ104(1)~104(3)はそれぞれ、複数の指定されたストレージデバイスを、他のネットワークストレージ104(1)~104(3)のそれぞれとは別個に管理する1以上のコンピューティングデバイス(
図1に示さず)を備えてもよい。例えば、ネットワークストレージ104は、AMAZON WEB SERVICES(登録商標)、MICROSOFT AZURE(登録商標)、GOOGLE CLOUD(登録商標)などの様々なサービスプロバイダから利用可能な商業的に利用可能なクラウドストレージを含んでもよい。或いは、いくつかの例では、ネットワークストレージ104のうちの1つ以上は私有のストレージシステムを含んでもよい。ネットワークストレージ104の例の詳細については、
図5及び
図6に関して後述する。
【0019】
更に、上述のように、第1ネットワークストレージ104(1)は、第1地理的位置にある第1サイト105(1)に物理的に配置されてもよく、第2ネットワークストレージ104(2)は、第1地理的位置から遠隔にある第2地理的位置にある第2サイトに物理的に配置されてもよい。例えば、第2地理的位置は、別の都市、別の州、別の国などのように、第1サイト105(1)にある第1ネットワークストレージ104(1)に影響を及ぼす災害が、第2サイト105(2)にある第2ネットワークストレージ104(2)に影響を及ぼす可能性がなく、その逆もまた同様であるように、第1地理的位置から十分に遠隔にあってもよい。同様に、第3ネットワークストレージ104(3)は、第1サイト105(1)及び第2サイト105(2)から同様に地理的に遠隔にある第3地理的位置にある第3サイト105(3)に物理的に配置されてもよい。
【0020】
いくつかの例では、サービスコンピューティングデバイス102は、ネットワーク106を介して1以上のクライアントデバイス108と通信することができる。例えば、サービスコンピューティングデバイス102は、更に後述するように、クライアントデバイス108がデータを格納することを可能にするため、並びに他の管理及び制御機能を実行するためのストレージサービスをクライアントデバイス108に提供するアクセスノード、サーバノード、管理ノード、及び/又は他のタイプのサービスノードであってよい。
【0021】
ネットワークストレージ104及びサービスコンピューティングデバイス102はまた、ネットワーク106を介して少なくとも1つの管理デバイス110と通信できてもよい。例えば、管理デバイス110は、ネットワークストレージ104及び/又はサービスコンピューティングデバイス102を設定するために使用されてもよい。クライアントデバイス108及び管理デバイス110は、更に後述するように、様々なタイプのコンピューティングデバイスのいずれかであってよい。
【0022】
1以上のネットワーク106は、インターネットなどの広域ネットワーク、イントラネットなどのローカルエリアネットワーク(LAN)、セルラネットワークなどの無線ネットワーク、Wi-Fiなどのローカル無線ネットワーク、及び/若しくはBLUETOOTH(登録商標)などの近距離無線通信、ファイバチャネル、光ファイバ、イーサネット、若しくは他の任意のそのようなネットワークを含む有線ネットワーク、直接有線接続、又はこれらの任意の組み合わせを含む、任意の適切なネットワークを含んでもよい。したがって、1以上のネットワーク106は、有線通信技術及び/又は無線通信技術の両方を含んでもよい。このような通信に使用されるコンポーネントは、ネットワークのタイプ、選択された環境、又はその両方に少なくとも部分的に依存し得る。このようなネットワークを介した通信のためのプロトコルは周知であるため、本明細書では詳述しない。一例として、ネットワーク106は、LAN、ストレージエリアネットワーク(SAN)、ファイバチャネルネットワークなどのプライベートネットワークを含んでもよい。追加的に、ネットワーク106は、インターネットを含んでもよいパブリックネットワーク、又はパブリックネットワーク及びプライベートネットワークの組み合わせを含んでもよい。本明細書における実装形態は、ネットワーク106としていかなる特定のタイプのネットワークにも限定されるものではない。
【0023】
いくつかの例では、サービスコンピューティングデバイス102は、クライアントデバイス108を介してクライアントユーザ112にストレージ及びデータ管理サービスをそれぞれ提供するように構成されてもよい。いくつかの非限定的な例として、クライアントユーザ112は、会社、企業、組織、政府機関、学術機関などのための機能を実行するユーザを含んでもよく、機能は、いくつかの例では、非常に大量のデータの格納を含んでもよい。とはいえ、本明細書における実装形態は、システム100、並びに本明細書で説明される他のシステム及び構成のいかなる特定の使用法又は用途にも限定されるものではない。例えば、いくつかの例では、クライアントデバイス108は、含まれなくてもよし、全く異なるタイプのクライアントデバイスであってもよい。
【0024】
それぞれのクライアントデバイス108は、デスクトップ、ラップトップ、タブレットコンピューティングデバイス、モバイルデバイス、スマートフォン、ウェアラブルデバイス、端末、及び/又はネットワークを介してデータを送信することができる他の任意のタイプのコンピューティングデバイスなど、任意の適切なタイプのコンピューティングデバイスであってよい。クライアントユーザ112は、それぞれのユーザアカウント、ユーザログイン認証情報などを通じて、クライアントデバイス108に関連付けられてもよい。更に、クライアントデバイス108は、1以上のネットワーク106を介して、別個のネットワークを介して、又は任意の他の適切なタイプの通信接続を介して、サービスコンピューティングデバイス102と通信するように構成されてもよい。本明細書の開示を利用すれば、多数の他の変形形態が当業者には明らかになるはずである。
【0025】
いくつかの実装形態では、それぞれのクライアントデバイス108は、ネットワークストレージ104上に格納するためのユーザデータを送信するため、及び/又は書き込み動作、読み取り動作、削除動作などのデータ命令を通じてネットワークストレージ104からの格納されたデータを受信するためなど、サービスコンピューティングデバイス102で実行可能なクライアントウェブアプリケーション116と通信するためなど、クライアントデバイス108上で実行され得るクライアントアプリケーション114のそれぞれのインスタンスを含んでもよい。いくつかのケースでは、アプリケーション114は、ブラウザを含んでもよく、又はブラウザを介して動作してもよいが、他のケースでは、アプリケーション114は、1以上のネットワーク106を介して、クライアントウェブアプリケーション116、又はサービスコンピューティングデバイス102上の他のアプリケーションとの通信を可能にする通信機能を有する任意の他のタイプのアプリケーションを含んでもよい。したがって、サービスコンピューティングデバイス102は、それぞれのクライアントデバイス108にストレージを提供してもよい。
【0026】
加えて、管理デバイス110は、デスクトップ、ラップトップ、タブレットコンピューティングデバイス、モバイルデバイス、スマートフォン、ウェアラブルデバイス、端末、及び/又はネットワークを介してデータを送信することができる他の任意のタイプのコンピューティングデバイスなど、任意の適切なタイプのコンピューティングデバイスであってもよい。管理者120は、それぞれの管理者アカウント、管理者ログイン認証情報などを通じて、管理デバイス110に関連付けられてもよい。更に、管理デバイス110は、1以上のネットワーク106を介して、別個のネットワークを介して、又は任意の他の適切なタイプの通信接続を介して、ネットワークストレージ104及びサービスコンピューティングデバイス102と通信可能であってもよい。
【0027】
更に、管理デバイス110は、ネットワークストレージ104を管理するための管理命令を送信するためのアプリケーションなど、ネットワークストレージ104(1)、104(2)、及び104(3)上のそれぞれの管理ウェブアプリケーション124(1)、124(2)、及び124(3)と通信するためのインスタンスなど、管理デバイス110上で実行され得る管理者アプリケーション122のそれぞれのインスタンスを含んでもよい。管理命令は、第1ネットワークストレージ104(1)と第2ネットワークストレージ104(2)との間の複製を設定するため、並びにネットワークストレージ104(1)及び104(2)上の他のストレージ機能を設定するためだけではなく、第3ネットワークストレージ104(3)上のクォーラムコンポーネント126を設定するためのクォーラム設定命令125を送信することを含んでもよい。更に、ウェブアプリケーションは、管理デバイス110に遠隔管理機能を提供する1つのタイプのアプリケーションとして説明されるが、本明細書の開示を利用すれば当業者には明らかなように、これらの機能を実行するために、任意の多数の他のタイプのソフトウェア構成が採用されてもよい。
【0028】
加えて、サービスコンピューティングデバイス102はまた、管理デバイス110がサービスコンピューティングデバイス102によって実行される動作を構成することを可能にするために、管理ウェブアプリケーション127又は他のアプリケーションを含んでもよい。いくつかのケースでは、管理者アプリケーション122は、ブラウザを含んでもよく又はブラウザを介して動作してもよい、他のケースでは、管理者アプリケーション122は、1以上のネットワーク106を介して、管理ウェブアプリケーション124、127、又はネットワークストレージ104若しくはサービスコンピューティングデバイス102上の他のアプリケーションとの通信を可能にする通信機能を有する任意の他のタイプのアプリケーションを含んでもよい。
【0029】
サービスコンピューティングデバイス102は、ネットワークストレージ104(1)及び/又は104(2)に格納されるデータ130を送信するため、並びにネットワークストレージ104(1)及び/又は104(2)から要求されたデータ130を取得するためなど、ネットワークストレージ104(1)及び104(2)へのアクセスを提供してもよいストレージ管理プログラム128を実行してもよい。更に、ストレージ管理プログラム128は、仮想ストレージ131をクライアントデバイス108に提示してもよい。例えば、仮想ストレージ131は、ネットワークストレージ104(1)及び104(2)によって実際に提供される物理ストレージに基づいてもよく、仮想ストレージ131はサービスコンピューティングデバイス102にローカルに利用可能であるように提示されるという意味で仮想的であってもよい。加えて、ストレージ管理プログラム128は、データ保持期間、データ保護レベル、データ複製などを管理するなどのために、システム100によって格納されたデータ130を管理してもよい。
【0030】
ネットワークストレージ104(1)及び104(2)は、それぞれのネットワークストレージ104(1)及び104(2)におけるそれぞれのデータ130(1)及び130(2)の格納を管理するために、ストレージプログラム140(1)及び140(2)のインスタンスをそれぞれ実行してもよい。例えば、ストレージプログラム140は、サービスコンピューティングデバイス102におけるストレージ管理プログラム128からデータ130を受信してもよく、ネットワークストレージ104における1以上のストレージデバイス上にデータ130を格納してもよく、クライアントの読み出し要求などに応じて、要求されたデータを取得して、ストレージ管理プログラム128に送信してもよい。ストレージプログラム140はまた、ストレージ管理プログラム128及び/又は管理者アプリケーション122に対して、特定の1つのネットワークストレージ104上にある特定のストレージプログラム140によって管理されるそれぞれのストレージデバイスに関する性能情報、容量使用情報などの情報を提供してもよい。
【0031】
加えて、ストレージプログラム140(1)及び140(2)は、第1ネットワークストレージ104(1)と第2ネットワークストレージ104(2)との間でデータ複製144を実行するように構成されたデータ複製プログラム142(1)及び142(2)をそれぞれ含み、実行し、アクセスし、又はさもなければこれと共存してもよい。例えば、データ複製プログラム142(1)及び142(2)は、第1ネットワークストレージ104(1)と第2ネットワークストレージ104(2)との間で非同期又は同期データ複製を実行するようにネットワークストレージ104(1)及び104(2)を設定してもよい。加えて、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)はそれぞれ、1以上のネットワーク106を介して、第3ネットワークストレージ104(3)上のクォーラムコンポーネント126と通信するためのクォーラム通信プログラム146(1)及び146(2)をそれぞれ含んでもよい。いくつかのケースでは、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)は、クォーラム情報148を送信及び/又は受信するなどために、仮想プライベートネットワーク(VPN)などを介してクォーラムコンポーネント126と通信してもよい。
【0032】
上述のように、第3ネットワークストレージ104(3)上にクォーラムコンポーネント126を設定する場合など、管理デバイス110は、クォーラムコンポーネント126をホストするために、第3ネットワークストレージ104(3)上に仮想マシン150を設定して構成するためのクォーラム設定命令125を第3ネットワークストレージ104(3)に送信してもよい。仮想マシン150が第3ネットワークストレージ104(3)上に実装されているとき、1以上のクォーラムボリューム154を構成するためのクォーラムプログラム152は仮想マシン上で実行されてもよい。この例では、クォーラムコンポーネント126は、1以上のクォーラムボリューム154と、ネットワークストレージ104(1)及び104(2)のiSCSIターゲットとして構成された仮想マシン150とを含む。例えば、クォーラムプログラム152は、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)からクォーラム情報148を受信し得る少なくとも1つのクォーラムボリューム154を設定するために、仮想マシン150の開始時に実行されるBASHスクリプトを含んでもよい。BASHはUNIX(登録商標)のシェル及びコマンド言語である。その結果、管理ユーザ120は、管理デバイス110において構成情報を手動で入力する必要がなく、その結果、クォーラムボリューム154の誤設定を防止することができ、これにより、クォーラムボリューム154による余分なストレージスペースの不必要な使用又はクォーラムボリューム154の他の不適切な設定を防止し得る。
【0033】
加えて、仮想マシン150は、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)と通信するためのiSCSIターゲットとして設定されもよい。1つの非限定的な例として、仮想マシン150は、あるバージョンのLINUX(登録商標)オペレーティングシステムを使用して実装されてもよく、LINUX SCSIターゲットとして構成されてもよい。一例として、仮想マシン150をiSCSIターゲットとして構成するために、targetcliなどのソフトウェアがクォーラムプログラム152によって採用されてもよい。例えば、targetcliは、米国カリフォルニア州サンタクララのDatera,Inc.によって開発されたシングルノードLINUX IO管理シェルである。
【0034】
更に後述するように、クォーラムプログラム152はまた、管理ユーザ120がクォーラムコンポーネント126を管理できるようにするユーザインターフェースを生成して提示するための命令を含む。例えば、クォーラムプログラム152は、クォーラムボリュームの追加、クォーラムボリュームの削除、IQN(iSCSI修飾名)ノードの追加、IQNノードの削除、現在のポータルのリフレッシュ、チャレンジハンドシェイク認証プロトコル(CHAP)認証の有効化、現在の設定の表示などの動作を可能にするための機能をユーザインターフェースに提供してもよい。ユーザインターフェース及びそれによって実行される機能の更なる詳細については、例えば
図3及び
図4に関して後述する。
【0035】
図2及び
図3は、いくつかの実装形態に係るトラフィック配分を最適化及び制御するための例示的なプロセス200を示すフロー図である。プロセスは、動作のシーケンスを表す論理フロー図においてブロックの集合として示され、動作の一部又は全部は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装されてもよい。ソフトウェアの文脈において、ブロックは、1以上のプロセッサによって実行されると、記載された動作を実行するようにプロセッサをプログラムする、1以上のコンピュータ可読媒体に格納されたコンピュータ実行可能命令を表してもよい。一般に、コンピュータ実行可能命令は、特定の機能を実行したり、特定のデータタイプを実装したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが説明される順序は、限定として解釈されるべきではない。説明される任意の数のブロックは、プロセス又は代替的なプロセスを実施するために任意の順序で、及び/又は並列に組み合わせることができ、またブロックのすべてが実行される必要はない。議論のために、プロセスは、本明細書における例における環境、フレームワーク、及びシステムを参照して説明されるが、プロセスは、他の多種多様な環境、フレームワーク、及びシステムで実装されてもよい。
【0036】
図2は、いくつかの実装形態に係るネットワークストレージ上でクォーラムコンポーネントを設定するために実行されてもよい例示的なプロセス200を示すフロー図である。いくつかのケースでは、プロセス200は、ネットワークストレージ104(3)によって、例えば、ネットワークストレージ104(3)のコンピューティングデバイスが仮想マシン150を設定し、クォーラムプログラム152を実行することによって、少なくとも部分的に実行されてもよい。一例として、仮想マシン150は、コンピューティングデバイス上に設定されてもよく、その後、クォーラムプログラム152を実行してもよい。
【0037】
202において、ターゲットネットワークストレージ104(3)のコンピューティングデバイスは、コンピューティングデバイス上に仮想マシンをデプロイするために仮想マシンイメージ及びクォーラムプログラムパッケージを使用してもよい。例えば、仮想マシンイメージ及びクォーラムプログラムパッケージは、クラウドマーケットプレイス又は他のレポジトリなどのネットワークストレージ104(3)に関連するレポジトリから取得されてもよい。例えば、管理デバイス110は、
図1に関して上述したものなどの仮想マシンのデプロイを開始するために第3ネットワークストレージ104(3)のコンピューティングデバイス上の管理ウェブアプリケーション124(3)と対話してもよい。或いは、他の例では、仮想マシンイメージ及びクォーラムプログラムパッケージは、管理デバイス110からアップロードされてもよい。いくつかの例では、仮想マシンはLINUX(登録商標)サーバとして実装されてもよいが、本明細書における実装形態は、いかなる特定のオペレーティングシステム又は仮想マシンのタイプにも限定されるものではない。更に、仮想マシンイメージは、仮想マシンに関して、割り当てるメモリの量、プロセッサの仕様、割り当てるストレージの容量など、プリセットの仕様を含んでもよい。
【0038】
204において、仮想マシンの立ち上げに続いて、コンピューティングデバイスは、第1ネットワークストレージ及び第2ネットワークストレージのユーザデータのiSCSIポートのアレイIQN(iSCSI修飾名)を読み取ることによって、クォーラムコンポーネントの設定を開始してもよい。例えば、ユーザがIQN情報をユーザデータボックスに入力した後、仮想マシンは、必要なパッケージをダウンロードし、targetcliを有効化し、仮想マシンをクォーラムコンポーネントの一部として機能するように設定するためのコマンドを実行するBASHスクリプトを実行してもよい。例えば、クォーラムプログラム152は、ストレージアレイ上、すなわち第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)上のiSCSIポートのIQNを取得するためのユーザ入力又は他のユーザデータを受信してもよい。
【0039】
206において、IQN情報が受信された後、コンピューティングデバイスは、クォーラムコンポーネントの設定が既に実行されたか否かを判定してもよい。既に実行されていた場合、プロセスは208に進む。未だ実行されていない場合、プロセスは210に進む。
【0040】
208において、クォーラムコンポーネントの設定が既に実行されている場合、コンピューティングデバイスは、設定プロセスの実行を停止して終了してもよい。
【0041】
210において、クォーラムコンポーネントの設定が未だ実行されていない場合、コンピューティングデバイスは、クォーラムボリュームを作成するためのディスクを識別してもよい。
【0042】
212において、コンピューティングデバイスは、識別されたディスクをパーティショニングして、少なくとも閾値サイズの新しいパーティションを作成し、新しいパーティション上にボリュームグループを作成してもよい。
【0043】
214において、コンピューティングデバイスは、ボリュームグループの容量を使用するクォーラムボリュームとして、論理ボリュームを作成してもよい。例えば、論理ボリュームは、ボリュームグループの容量の100パーセントに及んでもよい。
【0044】
216において、コンピューティングデバイスは、クォーラムボリュームのためのファイルシステムを作成してもよく、ファイルシステムのためのマウントポイントを作成してもよく、ファイルシステムをマウントしてもよい。
【0045】
218において、コンピューティングデバイスは、targetcliを有効化してもよく、クォーラムボリューム内に指定されたサイズの少なくとも1つのiSCSIターゲットボリュームを作成してもよい。いくつかの非限定的な例として、iSCSIターゲットボリュームサイズは、いくつかの用途において、10GB、13GB、15GBなどであってもよい。
【0046】
220において、コンピューティングデバイスは、クォーラム仮想マシンIQN及び仮想マシンのIPアドレスを識別してもよい。
【0047】
222において、コンピューティングデバイスは、アレイIQNのためのtargetcliエントリを追加してもよい。例えば、第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)はそれぞれ、独自のアレイIQNを有してもよい。
【0048】
224において、コンピューティングデバイスは、追加すべき別のアレイIQNがあるか否かを判定してもよい。追加すべき別のアレイIQNがある場合、プロセスは222に戻る。追加すべき別のアレイIQNがない場合、プロセスは226に進む。例えば、クォーラムボリュームを使用する2つのネットワークストレージ104(1)及び104(2)がある場合、2つのアレイIQNが入力される。
【0049】
226において、コンピューティングデバイスは、iSCSIターゲットボリュームをそれぞれのLUNにマッピングしてもよい。
【0050】
228において、iSCSIパスは、それぞれのVPNなどを介して、仮想マシン150と第1ネットワークストレージ104(1)及び第2ネットワークストレージ104(2)との間におけるクォーラム接続として確立されてもよい。
【0051】
上述のプロセス200は、プリセットの仕様(例えば、メモリ、CPU、ストレージサイズ)を有する仮想マシンイメージを、サービスプロバイダマーケットプレイス又は他のレポジトリから直接デプロイし、指定されたコンピューティングデバイス上で仮想マシンを用いてクォーラム設定プログラムを遠隔で実行することによって、クラウドストレージ又は他のネットワークストレージ104上でクォーラムコンポーネントを構成するプロセスを大幅に簡素化する。本プロセスは、ユーザ入力を最小限に抑え、設定中のコマンドラインを回避し、設定を実行するユーザは、クォーラムコンポーネントの初期設定を実行するために新しいインターフェースを学ぶ必要がない。例えば、本プロセスは、IQNを決定するためにユーザデータを使用してもよく、仮想マシンイメージの立ち上げ時にクォーラムプログラム152の一部として実行されるBASHスクリプトなどによって設定プロセスが自動化されるため、ユーザはコマンドを入力する必要がない。
【0052】
図3は、いくつかの実装形態に係るクォーラムコンポーネントとの対話を含む例示的なプロセス300を示すフロー図である。いくつかの例では、プロセス300は、例えば、ネットワークストレージ104(3)のコンピューティングデバイス上にデプロイされた仮想マシン上のクォーラムプログラムの実行によって等により、ネットワークストレージ104(3)のコンピューティングデバイスによって実行されてもよい。
【0053】
302において、コンピューティングデバイスは、ユーザインターフェースにメニューオプションを提示することに応じて、ユーザ入力を受信してもよい。例えば、コンピューティングデバイスは、ユーザインターフェースへの以上の入力を受信するために、ユーザインターフェースを管理デバイス110上に提示させてもよい。
【0054】
304において、入力がクォーラムボリュームを追加するコマンドである場合、プロセスは306に進む。
【0055】
306において、コンピューティングデバイスは、新しいクォーラムボリュームのための空きスペースをストレージ内で見つけてもよい。
【0056】
308において、コンピューティングデバイスは、ボリュームの最大数に到達したか否かを判定してもよい。ボリュームの最大数に到達した場合、プロセスは302に戻る。ボリュームの最大数に到達していない場合、プロセスは310に進む。
【0057】
310において、コンピューティングデバイスは、ボリューム及び対応するLUNを、空きスペースに関連付けて、新しいクォーラムボリュームを提供する。いくつかの例では、新しいクォーラムボリュームは、
図2に関して上述したように生成されてもよい。
【0058】
312において、入力がクォーラムボリュームを削除するコマンドである場合、プロセスは314に進む。
【0059】
314において、コンピューティングデバイスは、クォーラムボリュームがあるか否かを判定する。クォーラムボリュームがある場合、プロセスは316に進む。クォーラムボリュームがない場合、プロセスは302に戻る。
【0060】
316において、既存のクォーラムボリュームがある場合、コンピューティングデバイスは、削除するクォーラムボリュームのIDをユーザに尋ねる。
【0061】
318において、クォーラムボリュームのIDを受信したことに応じて、コンピューティングデバイスは、クォーラムボリューム及び対応するLUNを削除する。
【0062】
320において、入力がIQNを追加するコマンドである場合、プロセスは322に進む。
【0063】
322において、コンピューティングデバイスは、追加するIQNをユーザに尋ねる。
【0064】
324において、コンピューティングデバイスは、アクティブ制御リスト(ACL)ディレクトリに替え、iSCSIイニシエータIDを作成する。例えば、イニシエータIDは、伝送制御プロトコル(TCP)ベースのインターネットプロトコル(IP)ネットワークなどを通して、コンピューティングデバイスが外部iSCSIストレージアレイにデータを送信することを可能にする。
【0065】
326において、入力がIQNを削除するコマンドである場合、プロセスは328に進む。
【0066】
328において、コンピューティングデバイスは、削除するIQNをユーザに尋ねる。
【0067】
330において、コンピューティングデバイスは、ユーザによって削除するように要求されたIQNを削除する。
【0068】
332において、入力がポータルをリフレッシュするコマンドである場合、プロセスは334に進む。
【0069】
334において、コンピューティングデバイスは、現在のポータルを削除する。
【0070】
336において、コンピューティングデバイスは、ユーザの現在のIPアドレスを取得する。例えば、コンピューティングデバイスは、getUserIPコマンドを使用して、ユーザのIPアドレスを取得してもよい。
【0071】
338において、コンピューティングデバイスは、getUserIPコマンドを通して取得したIPアドレスを使用してポータルを作成する。
【0072】
340において、入力がチャレンジハンドシェイク認証プロトコル(CHAP)を有効化するコマンドである場合、プロセスは342に進む。例えば、CHAPは、クォーラムコンポーネントが配置されるネットワークストレージ104(3)のサービスプロバイダなどの認証エンティティに対して管理ユーザを認証する。CHAPは、特定のタイプのハッキング攻撃に対する防護を提供してもよく、プレーンなパスワード認証プロトコルよりも優れたセキュリティを提供してもよい。
【0073】
342において、コンピューティングデバイスは、既存のACLの設定を検証してもよい。
【0074】
344において、コンピューティングデバイスは、認証の詳細をユーザに尋ねてもよい。
【0075】
346において、コンピューティングデバイスは、ユーザによって選択されたIQNにCHAPセキュリティを適用してもよい。例えば、仮想マシンは、ユーザに認証キーのセットをすべてのクォーラム又は特定のクォーラムボリュームに適用させることを許容することによって、CHAP認証を有効化するプロセスを自動化してもよい。
【0076】
348において、入力がクォーラムコンポーネントの現在の設定を表示するコマンドである場合、プロセスは350に進む。
【0077】
350において、コンピューティングデバイスは、要求元デバイスに情報を送信して、要求元デバイスのディスプレイ上に現在の設定を提示させてもよい。例えば、コンピューティングデバイスは、設定に変更を加えるプロセスを合理化するために、設定に関する情報を取得するための解析を実行してもよい。仮想マシンは、ユーザがメニューからオプションを選択することを可能にし、bashスクリプトに通常ユーザが手動で実行しなければならないコマンドを実行させることによって、あらゆる変更を自動化してもよい。
【0078】
本明細書で説明されるプロセス例は、議論のために提供されたプロセスの例に過ぎない。本明細書の開示を検討すれば、多数の他の変形形態が当業者には明らかになるはずである。追加的に、本明細書における開示は、プロセスを実行するための適切なフレームワーク、アーキテクチャ、及び環境のいくつかの例を記載しているが、本明細書における実装形態は、示し論じた特定の例に限定されるものではない。更に、本開示は、説明したように、また図面に示したように、様々な例示的な実装形態を提供する。しかしながら、本開示は、本明細書で説明し図示した実装態様に限定されるものではなく、当業者に知られている、又は知られることになる他の実装態様にも拡張し得る。
【0079】
図4は、いくつかの実装形態に係るクォーラムコンポーネントを設定するために使用されてもよい例示的なユーザインターフェース400を示している。一例として、ユーザインターフェース400は、ネットワークストレージ104(3)のコンピューティングデバイス上で実行されるクォーラムプログラムから受信された情報に基づいて、管理デバイス110のディスプレイ上に提示されてもよい。この例では、ユーザインターフェースはコマンドラインインターフェースであるが、他の例では、ユーザインターフェースはグラフィカルユーザインターフェース、タッチスクリーンユーザインターフェースなどであってもよい。
【0080】
ユーザインターフェース400は、カーソルプロンプト404におけるユーザ入力によって選択されてもよい複数のコマンド1~9を含む。コマンド[1]~[7]は、
図3に関して上述したコマンド304、312、320、326、332、340、及び348にそれぞれ対応する。例えば、ユーザがコマンドプロンプト404において「1」を入力した場合、
図3のブロック306から310が実行されてもよい。同様に、ユーザがコマンドプロンプト404において「2」を入力した場合、
図3のブロック314~318が実行されてもよく、以下同様であってもよい。したがって、本明細書における実装形態は、所望の構成オプションを選択するためのメニューの使用を通じて、クォーラムコンポーネントの自動化されたデプロイ後の設定のための複数のオプションを含むユーザインターフェース400を提供する。
【0081】
加えて、ユーザインターフェース400は、ヘルプメニューにアクセスするためにコマンドプロンプト404において入力されてもよいコマンド番号[8]に対応するヘルプコマンドを含む。更に、ユーザインターフェース400は、ユーザインターフェース400を終了するためにコマンドプロンプト404において入力されてもよい終了コマンド[9]を含む。更に、ユーザインターフェースの一例を
図4に関して記載したが、本明細書における開示を利用すれば当業者には多数の変形形態が明らかなはずである。
【0082】
図5は、いくつかの実装形態に係るクォーラムコンポーネント126を有するネットワークストレージ104(3)の例示的な設定の選択されたコンポーネントを示している。本例では、ネットワークストレージ104(3)は、1以上のストレージコンピューティングデバイス502を備えてもよく、ストレージコンピューティングデバイス502は、任意の数の仕方で具現化されてもよい1以上のサーバ又は他のタイプのコンピューティングデバイスを備えてもよい。例えば、サーバの場合、プログラム、他の機能コンポーネント、及びデータは、単一のサーバ、サーバのクラスタ、サーバファーム又はデータセンタ、クラウドホスト型コンピューティングサービスなどに実装されてもよいが、他のコンピュータアーキテクチャが追加的又は代替的に使用されてもよい。複数のストレージコンピューティングデバイス502は、一緒に配置されても、別個に配置されてもよく、例えば、仮想サーバ、サーババンク、及び/又はサーバファームとして編成されてもよい。説明される機能は、単一の主体又は企業のサーバによって提供されてもよいし、複数の異なる主体又は企業のサーバ及び/又はサービスによって提供されてもよい。ストレージコンピューティングデバイス502はそれぞれ、1以上のプロセッサ504、1以上のコンピュータ可読媒体506、及び1以上の通信インターフェース508を含んでもよい。ストレージコンピューティングデバイス502は、更に後述するように、ストレージ510と通信してもよい。
【0083】
各プロセッサ504は、単一の処理ユニットであってもよいし、複数の処理ユニットであってもよく、単一若しくは複数のコンピューティングユニット、又は複数の処理コアを含んでもよい。プロセッサ504は、1以上の中央処理ユニット、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、ステートマシン、論理回路、及び/又は動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。一例として、プロセッサ504は、本明細書で説明されるアルゴリズム及びプロセスを実行するように特にプログラム又は構成された任意の適切なタイプの1以上のハードウェアプロセッサ及び/又は論理回路を備えてもよい。プロセッサ504は、コンピュータ可読媒体506に格納されたコンピュータ可読命令をフェッチして実行するように構成されてもよく、この命令は、本明細書で説明される機能を実行するようにプロセッサ504をプログラムしてもよい。
【0084】
コンピュータ可読媒体506は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するための任意のタイプの技術で実装された揮発性メモリ及び不揮発性メモリ、並びに/又は取り外し可能及び取り外し不可能な媒体を含んでもよい。例えば、コンピュータ可読媒体506は、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリ、若しくは他のメモリ技術、光ストレージ、ソリッドステートストレージ、磁気ディスクストレージ、又は所望の情報を格納するために使用されてもよく、またコンピューティングデバイスによってアクセスされてもよい任意の他の媒体を含んでもよい。ストレージコンピューティングデバイス502の設定によっては、コンピュータ可読媒体506は、言及される場合、非一時的コンピュータ可読媒体がエネルギー、キャリア信号、電磁波、及び/又は信号自体などの媒体を除外する限りにおいて、有形の非一時的媒体であってもよい。いくつかのケースでは、コンピュータ可読媒体506は、後述するストレージ510のストレージの一部を含んでもよい。
【0085】
コンピュータ可読媒体506は、プロセッサ504によって実行可能な任意の数の機能コンポーネントを格納するために使用されてもよい。多くの実装形態において、これらの機能コンポーネントは、プロセッサ504によって実行可能であり、実行されると、本明細書においてストレージコンピューティングデバイス502に属するとされる動作を実行するようにプロセッサ504を特にプログラムする命令又はプログラムを含む。コンピュータ可読媒体506に格納される機能コンポーネントは、管理ウェブアプリケーション124(3)、仮想マシンイメージ及びクォーラムプログラムパッケージ509、仮想マシンイメージ及びクォーラムプログラムパッケージ509に基づいて確立されてもよい仮想マシン、並びにクォーラムプログラム152を含んでもよく、これらのそれぞれが、1以上のコンピュータプログラム、アプリケーション、実行可能コード、実行可能スクリプト、又はそれらの一部を含んでもよい。更に、本例ではこれらのプログラムは一緒に図示されているが、使用中、これらのプログラムの一部又は全部が別個のストレージコンピューティングデバイス502で実行されてもよい。
【0086】
一例として、仮想マシンイメージ及びクォーラムプログラムパッケージ509は、管理ユーザ120によって、第3ネットワークストレージ104(3)に関連するレポジトリから取得されてもよい。例えば、第3ネットワークストレージ104(3)は、第3ネットワークストレージ104(3)において使用するためのプログラムパッケージにユーザがアクセスできるようにする仮想マーケットプレイス又は他のレポジトリ511などの仮想マシンイメージ及びクォーラムプログラムパッケージ509を含んでもよい。いくつかのケースでは、レポジトリ511は、ネットワークストレージ104(3)と同じサイト105(3)に配置されてもよく、サービスとしてネットワークストレージも提供するサービスプロバイダと関連していてもよい。他のケースでは、レポジトリ511は、ネットワークストレージ104(3)及びサイト105(3)から遠隔に配置されてもよい、異なるサービスプロバイダに関連していてもよい。いずれの状況においても、
図1に関して上述した管理ユーザ120は、レポジトリ511を使用して仮想マシンイメージ及びクォーラムプログラムパッケージ509にアクセスして、ネットワークストレージ104(3)にある指定されたストレージコンピューティングデバイス502上に仮想マシン150及びクォーラムプログラム152をインストールしてもよい。或いは、別の例として、仮想マシンイメージ及びクォーラムプログラムパッケージ509は、管理デバイス110からなど、管理ユーザ120によってアップロードされてもよい。仮想マシンイメージ及びクォーラムプログラムパッケージ509は、ストレージコンピューティングデバイス502上に仮想マシン150をインストールするためのオペレーティングシステムイメージを含んでもよい。更に、仮想マシン150は、クォーラムプログラム152をホストしてもよく、クォーラムプログラム152をストレージ510上でクォーラムボリューム154を自動的に設定するための実行することを可能にしてもよい。
【0087】
加えて、ストレージコンピューティングデバイス502はまた、プログラム、ドライバなど、並びに機能コンポーネントによって使用又は生成されるデータを含んでもよい他の機能コンポーネント及びデータ、を含んでもよく、又はこれらを維持してもよい。更に、ストレージコンピューティングデバイス502は、他の多くの論理コンポーネント、プログラムコンポーネント、及び物理コンポーネントを含んでもよく、これらのうちの上述したものは、本明細書における議論に関連する例に過ぎない。
【0088】
1以上の通信インターフェース508は、1以上のネットワーク106などを介して、様々な他のデバイスとの通信を可能にするための1以上のソフトウェア及びハードウェアコンポーネントを含んでもよい。例えば、通信インターフェース508は、本明細書の他の箇所で更に列挙されるように、LAN、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi-Fi)及び有線ネットワーク(例えば、ファイバチャネル、光ファイバ、イーサネット)、直接接続、並びにBLUETOOTH(登録商標)などの近距離通信などのうちの1以上を介した通信を可能にしてもよい。
【0089】
ネットワークストレージ104(3)に関連するストレージ510は、1以上のトレイ、ラック、エクステントグループ、又は他のタイプのストレージデバイス516のアレイ514上に1以上のクォーラムコンポーネント126として1以上のクォーラムボリューム154を格納するためのストレージ150に関連する1以上のコントローラ512を含んでもよい。例えば、コントローラ152は、消去コード保護構成、若しくはRAID構成、JBOD構成などの他の様々な構成のいずれかの構成などにあるアレイ514を設定するため、及び/又はストレージデバイス516に基づいて、ストレージエクステント、論理ユニットなどを提示するため、並びに基礎となる物理ストレージデバイス516上に格納されたデータを管理するなどのためにアレイ514を制御してもよい。ストレージデバイス516は、ハードディスクドライブ、ソリッドステートドライブ、光学ドライブ、磁気テープ、それらの組み合わせなど、任意のタイプのストレージデバイスであってもよい。
【0090】
図6は、いくつかの実装形態に係る複製を実行するネットワークストレージ104(1)及び104(2)の設定例の選択されたコンポーネントを示す。ネットワークストレージ104(1)及び104(2)は、
図5のネットワークストレージ104(3)に関して上述したものと同様のハードウェア構成を備えてもよいが、異なる機能コンポーネント及びデータを含んでもよい。例えば、図示のように、ネットワークストレージ104(1)及び104(2)のコンピュータ可読媒体506に格納された機能コンポーネントは、管理ウェブアプリケーション124及びストレージプログラム140を含んでもよく、管理ウェブアプリケーション124及びストレージプログラム140は、データ複製プログラム142及びクォーラム通信プログラム146を含んでもよく、これらのそれぞれは、1以上のコンピュータプログラム、アプリケーション、実行可能コード、実行可能スクリプト、又はそれらの一部を含んでもよい。更に、本例ではこれらのプログラムを一緒に図示しているが、使用中、これらのプログラムの一部又は全部は別個のストレージコンピューティングデバイス502で実行されてもよい。
【0091】
例えば、ストレージプログラム140は、それぞれのネットワークストレージ104(1)又は104(2)に関連するストレージ510上のデータ130の格納を管理するために、1以上のプロセッサ504によって実行されてもよい。例えば、コントローラ152は、消去コード保護構成、若しくはRAID構成、JBOD構成などの他の様々な構成のいずれかの構成などにあるアレイ514を設定するため、ストレージプログラム140に、ストレージエクステント、論理ユニットなどを提示するため、基礎となる物理ストレージデバイス516上に格納されたデータを管理するなどのためにアレイ514を制御してもよい。ストレージデバイス516は、ハードディスクドライブ、ソリッドステートドライブ、光学ドライブ、磁気テープ、それらの組み合わせなど、任意のタイプのストレージデバイスであってよい。
【0092】
図7は、本明細書で説明されるシステムの機能の一部を実装するために使用されてもよい1以上のサービスコンピューティングデバイス102の選択されたコンポーネント例を示している。サービスコンピューティングデバイス102は、1以上のサーバ又は任意の数の仕方で具現化されてもよい他のタイプのコンピューティングデバイスを含んでもよい。例えば、サーバの場合、プログラム、他の機能コンポーネント、及びデータは、単一のサーバ、サーバのクラスタ、サーバファーム又はデータセンタ、クラウドホスト型コンピューティングサービスなどに実装されてもよいが、他のコンピュータアーキテクチャが追加的又は代替的に使用されてもよい。複数のサービスコンピューティングデバイス102は、一緒に配置されても、別個に配置されてもよく、例えば、仮想サーバ、サーババンク、及び/又はサーバファームとして編成されてもよい。説明される機能は、単一の主体又は企業のサーバによって提供されてもよいし、複数の異なる主体又は企業のサーバ及び/又はサービスによって提供されてもよい。
【0093】
図示の例において、サービスコンピューティングデバイス102は、1以上のプロセッサ702、1以上のコンピュータ可読媒体704、及び1以上の通信インターフェース706を含む、又はそれらに関連付けられてもよい。それぞれのプロセッサ702は、単一の処理ユニットであってもよいし、複数の処理ユニットであってもよく、単一若しくは複数のコンピューティングユニット、又は複数の処理コアを含んでもよい。プロセッサ702は、1以上の中央処理ユニット、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、グラフィックスプロセッシングユニット、ステートマシン、論理回路、及び/又は動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。一例として、プロセッサ702は、1以上のハードウェアプロセッサ及び/又は本明細書で説明されるアルゴリズム及びプロセスを実行するように特にプログラム又は構成された任意の適切なタイプの論理回路を含んでもよい。プロセッサ702は、コンピュータ可読媒体704に格納されたコンピュータ可読命令をフェッチして実行するように構成されてもよく、この命令は、本明細書で説明される機能を実行するようにプロセッサ702をプログラムしてもよい。
【0094】
コンピュータ可読媒体704は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するための任意のタイプの技術で実装された揮発性メモリ及び不揮発性メモリ、並びに/又は取り外し可能及び取り外し不可能な媒体を含んでもよい。例えば、コンピュータ可読媒体704は、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリ、若しくは他のメモリ技術、光ストレージ、ソリッドステートストレージ、磁気テープ、及び磁気ディスクストレージ、又は所望の情報を格納するために使用され得る、またコンピューティングデバイスによってアクセスされ得る任意の他の媒体を含んでもよい。更に、いくつかの例では、コンピュータ可読媒体704は、ネットワークストレージ104(1)及び104(2)を含み、これらは、本明細書の他の箇所で説明するように、ストレージアレイ、ネットワークアタッチトストレージ、ストレージエリアネットワーク、クラウドストレージなどを含んでもよい。
【0095】
サービスコンピューティングデバイス102の設定によっては、コンピュータ可読媒体704は、非一時的コンピュータ可読媒体がエネルギー、キャリア信号、電磁波、及び/又は信号自体などの媒体を除外すると言及される場合において、有形の非一時的媒体であってもよい。いくつかのケースでは、コンピュータ可読媒体704はサービスコンピューティングデバイス102と同じ場所にあってもよいが、他のケースでは、コンピュータ可読媒体704はサービスコンピューティングデバイス102から部分的に遠隔にあってもよい。
【0096】
コンピュータ可読媒体704は、プロセッサ702によって実行可能な任意の数の機能コンポーネントを格納するために使用されてもよい。多くの実装形態において、これらの機能コンポーネントは、プロセッサ702によって実行可能であり、実行されると、本明細書においてサービスコンピューティングデバイス102に属するとされる動作を実行するようにプロセッサ702を特にプログラムする命令又はプログラムを含む。コンピュータ可読媒体704に格納された機能コンポーネントは、クライアントウェブアプリケーション116、管理ウェブアプリケーション127、及びストレージ管理プログラム128を含んでもよく、これらのそれぞれは、1以上のコンピュータプログラム、アプリケーション、実行可能コード、又はそれらの一部を含んでもよい。更に、本例ではこれらのプログラムを一緒に図示しているが、使用中、これらのプログラムの一部又は全部は別個のサービスコンピューティングデバイス102で実行されてもよい。
【0097】
加えて、コンピュータ可読媒体704は、本明細書で説明される機能及びサービスを実行するために使用されるデータ、データ構造、及び他の情報を格納してもよい。例えば、コンピュータ可読媒体704は、仮想ストレージ131を提供するためのメタデータ又は他の情報を含む1以上のデータ構造を格納してもよい。サービスコンピューティングデバイス102はまた、プログラム、ドライバなどを含んでもよい他の機能コンポーネント及びデータ、並びに機能コンポーネントによって使用又は生成されるデータを含んでもよい、又はこれらを維持してもよい。更に、サービスコンピューティングデバイス102は、他の多くの論理コンポーネント、プログラムコンポーネント、及び物理コンポーネントを含んでもよく、これらのうちの上述したものは、本明細書における議論に関連する例に過ぎない。
【0098】
1以上の通信インターフェース706は、1以上のネットワーク106などを介して、様々な他のデバイスとの通信を可能にするための1以上のソフトウェア及びハードウェアコンポーネントを備えてもよい。例えば、通信インターフェース706は、本明細書の他の箇所で更に列挙されるように、LAN、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi-Fi)及び有線ネットワーク(例えば、ファイバチャネル、光ファイバ、イーサネット)、直接接続、並びにBLUETOOTH(登録商標)などの近距離通信などのうちの1以上を介した通信を可能にしてもよい。
【0099】
図8は、いくつかの実装態様に係る管理デバイス110の選択されたコンポーネント例を示す。管理デバイス110は、デスクトップ、ラップトップ、タブレットコンピューティングデバイス、モバイルデバイス、スマートフォン、ウェアラブルデバイス、端末、ワークステーション、サーバ、及び/又はネットワークを介してデータを送信することができる他の任意のタイプのコンピューティングデバイスなど、いくつかの異なるタイプのコンピューティングデバイスのいずれかを含んでもよい。
【0100】
図8の例では、管理デバイス110は、少なくとも1つのプロセッサ802、1以上のコンピュータ可読媒体804、1以上の通信インターフェース806、及び1以上の入出力(I/O)デバイス808などのコンポーネントを含む。それぞれのプロセッサ802は、それ自体、1以上のプロセッサ又は処理コアを備えてもよい。例えば、プロセッサ802は、1以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理ユニット、グラフィックスプロセッサ、ステートマシン、論理回路、及び/又は動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。いくつかのケースでは、プロセッサ802は、1以上のハードウェアプロセッサ及び/又は本明細書で説明されるアルゴリズム及びプロセスを実行するように特にプログラム又は構成された任意の適切なタイプの論理回路であってもよい。プロセッサ802は、コンピュータ可読媒体804に格納されたコンピュータ可読プロセッサ実行可能命令をフェッチして実行するように構成され得る。
【0101】
管理デバイス110の設定によっては、コンピュータ可読媒体804は、有形の非一時的コンピュータ記憶媒体の一例であってもよく、コンピュータ可読プロセッサ実行可能命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するための任意のタイプの技術で実装された揮発性及び不揮発性メモリ、並びに/又は取り外し可能及び取り外し不可能な媒体を含んでもよい。コンピュータ可読媒体804は、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリ、ソリッドステートストレージ、磁気ディスクストレージ、光学ストレージ、及び/又は他のコンピュータ可読媒体技術を含んでもよい。更に、いくつかのケースでは、管理デバイス110は、ストレージアレイ、ネットワークアタッチトストレージ、ストレージエリアネットワーク、クラウドストレージ、又は情報を格納するために使用され得、且つプロセッサ802によって直接又は別のコンピューティングデバイス若しくはネットワークを通じてアクセスされ得る任意の他の媒体などの外部ストレージにアクセスしてもよい。したがって、コンピュータ可読媒体804は、プロセッサ802によって実行され得る命令、モジュール、又はコンポーネントを格納することができるコンピュータ記憶媒体であってもよい。更に、非一時的コンピュータ可読媒体に言及する場合、非一時的コンピュータ可読媒体はエネルギー、キャリア信号、電磁波、及び信号自体などの媒体を除く。
【0102】
コンピュータ可読媒体804は、プロセッサ802によって実行可能な任意の数の機能コンポーネントを格納及び維持するために使用されてもよい。いくつかの実装形態では、これらの機能コンポーネントは、プロセッサ802によって実行可能であり、実行されると、上記で管理デバイス110に属するとされた動作及びサービスを実行するための動作ロジックを実装する命令又はプログラムを含む。コンピュータ可読媒体804に格納された管理デバイス110の機能コンポーネントは、上述のように、管理デバイス110がネットワークストレージ104及びサービスコンピューティングデバイス102と対話することを可能にしてもよい管理アプリケーション122を含んでもよい。
【0103】
加えて、コンピュータ可読媒体804はまた、機能コンポーネントによって使用される、データ、データ構造などを格納してもよい。いくつかの例では、管理デバイス110は、仮想マシンイメージ及びクォーラムプログラムパッケージ509のコピーを格納してもよく、これは、このプログラムパッケージ509が第3ネットワークストレージ104(3)のレポジトリにおいて利用可能ではない場合などに、管理デバイス110によって第3ネットワークストレージ104(3)にアップロードされてもよい。管理デバイス110のタイプに応じて、コンピュータ可読媒体804はまた、任意選択で、アプリケーション、プログラム、ドライバなどを含んでもよい他のモジュール及びデータ812、並びに機能コンポーネントによって使用又は生成されるデータなど、他の機能コンポーネント及びデータを含んでもよい。更に、管理デバイス110は、他の多くの論理コンポーネント、プログラムコンポーネント、及び物理コンポーネントを含んでもよく、これらのうちの説明したものは、本明細書における議論に関連する例に過ぎない。
【0104】
通信インターフェース806は、ネットワーク106などを介して、又は直接、様々な他のデバイスとの通信を可能にするための1以上のインターフェース及びハードウェアコンポーネントを含んでもよい。例えば、通信インターフェース806は、本明細書の他の箇所で更に列挙されるように、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi-Fi)及び有線ネットワーク、並びにBLUETOOTH(登録商標)、BLUETOOTH(登録商標)low energyなどの近距離通信のうちの1以上を介した通信を可能にしてもよい。
【0105】
管理デバイス110は、1以上のI/Oデバイス808を更に含んでもよい。I/Oデバイス808は、ユーザインターフェース400を管理ユーザ120に提示するためのディスプレイを含んでもよい。いくつかの例では、ディスプレイは入力デバイスとしてタッチスクリーンを含んでもよい。I/Oデバイス108は、スピーカ、マイクロフォン、カメラ、及び様々なユーザ制御装置(例えば、ボタン、ジョイスティック、キーボード、キーパッド、タッチパッド、マウスなど)、触覚出力デバイスなどを更に含んでもよい。追加的に、管理デバイス110は、図示されていない他の様々なコンポーネントを含んでもよく、その例としては、取り外し可能なストレージ、バッテリ及び電力制御ユニットなどの電源などが挙げられる。更に、クライアントコンピューティングデバイス108は、管理デバイス110について説明したものと同様のハードウェア構造及びコンポーネントを含んでもよいが、1以上の異なる機能コンポーネントを有する。
【0106】
本明細書で説明される様々な命令、方法、及び技法は、本明細書において、コンピュータ可読媒体に格納され、プロセッサによって実行されるコンピュータプログラム及びアプリケーションなど、コンピュータ実行可能命令の一般的な文脈で考えられてよい。一般に、プログラム及びアプリケーションという用語は同義で使用されてもよく、特定のタスクを実行したり特定のデータタイプを実装したりするための命令、ルーチン、スクリプト、モジュール、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含んでもよい。これらのプログラム、アプリケーションなどは、ネイティブコードとして実行されてもよいし、仮想マシン又は他のジャストインタイムコンパイル実行環境などでダウンロードされて実行されてもよい。一般に、プログラム及びアプリケーションの機能は、様々な実装形態において所望に応じて組み合わされたり、分散されたりされてもよい。これらのプログラム、アプリケーション、及び技法の実装形態は、コンピュータ記憶媒体に格納されてもよいし、何らかの形態の通信媒体を介して伝送されてもよい。
【0107】
主題は、構造的特徴及び/又は方法論的行為に特化した表現で記載されているが、添付の特許請求の範囲において定義される主題は、必ずしも記載された特定の特徴又は動作に限定されるものではないことを理解されたい。むしろ、特定の特徴及び動作は、特許請求の範囲を実装するための形態例として開示されている。
【国際調査報告】