(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-18
(54)【発明の名称】データセンター内の複数のラックにまたがるトップオブラックスイッチのネットワーク構成
(51)【国際特許分類】
H04L 49/10 20220101AFI20220810BHJP
G06F 13/10 20060101ALI20220810BHJP
G06F 13/14 20060101ALI20220810BHJP
【FI】
H04L49/10
G06F13/10 330C
G06F13/14 330A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021575948
(86)(22)【出願日】2020-06-04
(85)【翻訳文提出日】2021-12-17
(86)【国際出願番号】 US2020036131
(87)【国際公開番号】W WO2020256950
(87)【国際公開日】2020-12-24
(32)【優先日】2019-06-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521552589
【氏名又は名称】サイクステラ・データ・センターズ・インコーポレイテッド
【氏名又は名称原語表記】CYXTERA DATA CENTERS, INC.
【住所又は居所原語表記】BAC COLONNADE OFFICE TOWERS, 2333 PONCE DE LEON BLVD, SUITE 900, CORAL GABLES, FLORIDA 33134, UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】110001818
【氏名又は名称】特許業務法人R&C
(72)【発明者】
【氏名】ロクヘッド,ジェイソン・アンソニー
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA11
5K030HA08
5K030HC13
5K030KA01
5K030KA02
5K030MD04
5K030MD06
(57)【要約】
トップオブラック(TOR)スイッチが、データセンターのネットワークファブリックに接続される。各TORスイッチは、データセンターのそれぞれのラックに対応し、それぞれのラックに取り付けられたコンピューティングデバイスにネットワークファブリックへのアクセスを提供するように構成される。クライアントデバイスからポータルを介して、データセンターの第1のラックを構成する要求が受信される。クライアントデバイスから、第1のラックに取り付けられた第1のコンピューティングデバイスによってアクセスされる第1の仮想ネットワークの構成データが受信される。構成データを受信したことに応答して、第1のラックの第1のTORスイッチが構成され、構成は、第1の仮想ネットワークを第1のTORスイッチに関連付けることを含む。
【特許請求の範囲】
【請求項1】
スイッチをラックに取り付けることであって、前記ラックは、前記スイッチに接続されるサーバを取り付けるように構成される、前記取り付けることと、
前記スイッチをネットワークファブリックに接続することと、
スイッチ構成マネージャによって、クライアントデバイスから、仮想ネットワークを作成する命令を受信することと、
前記命令を受信したことに応答して、前記仮想ネットワークを作成することと、
前記スイッチ構成マネージャによって、前記命令に基づいて、前記仮想ネットワークを前記スイッチに関連付けるように前記スイッチを構成することと、
を含む、方法。
【請求項2】
前記仮想ネットワークは第1の仮想ネットワークであり、前記方法は、
前記クライアントデバイスのユーザインターフェースから、ネットワークのグループを作成する要求を受信することであって、前記グループは前記第1の仮想ネットワークを含む、前記受信することと、
前記要求を受信したことに応答して、前記ネットワークのグループを作成することと、
前記ユーザインターフェースで行われたユーザ選択を受信したことに応答して、前記ネットワークのグループをラックのグループに接続することであって、前記接続することは、各ラック内のそれぞれのサーバによる、前記ネットワークのグループ内の各ネットワークへのアクセスを提供するように、前記ラックのグループ内の各ラックのTORスイッチのポートを自動的に構成することを含む、前記接続することと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記サーバから前記ネットワークファブリックを介して別のラックに取り付けられたサーバにデータを送信するための仮想拡張可能ローカルエリアネットワーク(VXLAN)に、前記仮想ネットワークを変換することをさらに含む、請求項1に記載の方法。
【請求項4】
前記ラックは第1のラックであり、前記サーバは第1のサーバであり、前記スイッチは第1のスイッチであり、前記方法は、
前記スイッチ構成マネージャによって、前記クライアントデバイスから、前記仮想ネットワークを第2のラックに取り付けられた第2のサーバに関連付ける命令を受信することと、
前記仮想ネットワークを前記第2のサーバに関連付ける前記命令を受信したことに応答して、前記VXLANを前記第2のラックの第2のスイッチに関連付けるように前記第2のスイッチを構成することと、をさらに含む、請求項3に記載の方法。
【請求項5】
前記仮想ネットワークは、第1の仮想ネットワークであり、前記方法は、
前記クライアントデバイスから、前記第2のサーバに関連付けられた第2の仮想ネットワークを作成する命令を受信することと、
前記第2の仮想ネットワークを作成する前記命令を受信したことに応答して、前記第2の仮想ネットワークを前記第2のサーバに関連付けるように前記ネットワークファブリックを構成することと、をさらに含む、請求項4に記載の方法。
【請求項6】
前記仮想ネットワークは、第1の仮想ネットワークであり、前記方法は、
前記クライアントデバイスから、前記第1の仮想ネットワーク及び第2の仮想ネットワークを含むグループを作成する命令を受信することと、
前記グループを作成する前記命令を受信したことに応答して、前記ネットワークファブリック内のスイッチの構成データを記憶するデータストアに前記グループに関するデータを記憶することと、
前記クライアントデバイスから、仮想サーバを前記グループに接続する命令を受信することと、
前記仮想サーバを前記グループに接続する前記命令を受信したことに応答して、前記仮想サーバを前記第1の仮想ネットワーク及び前記第2の仮想ネットワークに関連付けるように前記ネットワークファブリックの少なくとも1つのスイッチを構成することと、をさらに含む、請求項1に記載の方法。
【請求項7】
前記ラックは、第1の地理的場所にある第1のデータセンター内の第1のラックであり、前記仮想ネットワークは、第1の仮想ネットワークであり、前記方法は、
前記クライアントデバイスから、第2の仮想ネットワークを作成する命令を受信することと、
前記第2の仮想ネットワークを作成する前記命令を受信したことに応答して、前記第2の仮想ネットワークを作成するように前記ネットワークファブリックを構成することと、
前記第1の仮想ネットワーク及び前記第2の仮想ネットワークを含むグループを作成する命令を受信することと、
前記グループを作成する前記命令を受信したことに応答して、前記スイッチ構成マネージャによって、前記グループ内の前記第1の仮想ネットワーク及び前記第2の仮想ネットワークのメンバーシップを追跡するようにデータストアを更新することと、
前記クライアントデバイスから、第2の地理的場所にある第2のデータセンター内の第2のラックに前記グループを接続する命令を受信することと、
前記グループを前記第2のラックに接続する前記命令を受信したことに応答して、前記第2の仮想ネットワークを前記第2のラックのスイッチに関連付けるように前記ネットワークファブリックを構成することと、をさらに含む、請求項1に記載の方法。
【請求項8】
トップオブラック(TOR)スイッチを少なくとも1つのデータセンターのネットワークファブリックに接続することであって、各TORスイッチは、前記少なくとも1つのデータセンターのそれぞれのラックに対応し、前記それぞれのラックに取り付けられたコンピューティングデバイスに前記ネットワークファブリックへのアクセスを提供するように構成される、前記接続することと、
クライアントデバイスからポータルを介して、前記少なくとも1つのデータセンターの第1のラックを構成する要求を受信することと、
前記クライアントデバイスから、前記第1のラックに取り付けられた第1のコンピューティングデバイスによってアクセスされる少なくとも1つの第1の仮想ネットワークの構成データを受信することと、
前記構成データを受信したことに応答して、前記第1のラックの第1のTORスイッチを構成することであって、前記構成することは、前記少なくとも1つの第1の仮想ネットワークを前記第1のTORスイッチに関連付けることを含む、前記構成することと、を含む、方法。
【請求項9】
前記コンピューティングデバイスは、仮想サーバを実行するように構成される物理サーバであり、前記物理サーバは、第1の仮想サーバを実行するように構成される第1の物理サーバを含み、前記方法は、前記第1のTORスイッチを前記少なくとも1つのデータセンターの第2のラックの第2のTORスイッチに接続するように前記ネットワークファブリックの仮想拡張可能ローカルエリアネットワーク(VXLAN)を構成することをさらに含み、前記VXLANは、前記第1の仮想サーバから前記第2のラックに取り付けられた第2の物理サーバ上で実行される第2の仮想サーバにデータを送信するように構成される、請求項8に記載の方法。
【請求項10】
前記コンピューティングデバイスのそれぞれは、物理サーバ、ネットワークデバイス、またはストレージデバイスであり、
前記第1のTORスイッチは少なくとも1つのポートを備え、前記第1のTORスイッチを構成することは、前記構成データに基づいて前記少なくとも1つのポートを構成することを含む、請求項8に記載の方法。
【請求項11】
前記第1のラックは第2のTORスイッチを備え、前記第1のTORスイッチの第1のポート及び前記第2のTORスイッチの第2のポートは、前記第1のコンピューティングデバイスに接続されるように構成される、請求項8に記載の方法。
【請求項12】
前記第1のTORスイッチはポートを備え、前記第1のTORスイッチを構成することは、仮想ローカルエリアネットワーク(VLAN)を前記ポートに関連付けることを含む、請求項8に記載の方法。
【請求項13】
前記第1のラックの識別子及び前記第1のラックの地理的場所を前記クライアントデバイスのユーザインターフェースに表示させることであって、前記第1のラックの前記識別子はデータストアに記憶され、前記ユーザインターフェースは、ユーザが、前記ネットワークファブリック内に少なくとも1つの仮想ネットワークを作成するように要求することを可能にする、前記表示させることと、
前記作成された少なくとも1つの仮想ネットワークのそれぞれの名前及び識別子を前記データストアに記憶することと、をさらに含む、請求項8に記載の方法。
【請求項14】
前記第1のラックを含むラックが位置する複数の地理的場所のそれぞれについてのポートの利用可能性を前記クライアントデバイスのユーザインターフェースに表示させることをさらに含み、前記ポートのそれぞれは、前記ネットワークファブリックを介したIPサービスまたはコンピューティングサービスのうちの少なくとも1つへの接続を提供する、請求項8に記載の方法。
【請求項15】
前記第1のTORスイッチを構成することは、前記第1のコンピューティングデバイスに前記IPサービスまたはコンピューティングサービスへのアクセスを提供することをさらに含む、請求項14に記載の方法。
【請求項16】
前記クライアントデバイスは、前記クライアントデバイスのユーザインターフェースによって受け取った入力に基づいて前記構成データを生成し、前記入力は、前記第1のラックに対応する前記ユーザインターフェース内のアイコンの選択を含み、前記アイコンの選択は、前記第1のTORスイッチの構成オプションを前記ユーザインターフェースに提示させる、請求項8に記載の方法。
【請求項17】
前記クライアントデバイスのユーザインターフェースから、ネットワークのグループを作成する要求を受信することであって、前記グループは前記少なくとも1つの仮想ネットワークを含む、前記受信することと、
前記要求を受信したことに応答して、前記ネットワークのグループを作成することと、
前記ユーザインターフェースで行われた構成選択を受信したことに応答して、前記ネットワークのグループをラックのグループに接続することであって、前記接続することは、各ラック内のそれぞれのサーバによる、前記ネットワークのグループ内の各ネットワークへのアクセスを提供するように、前記ラックのグループ内の各ラックのTORスイッチのポートを自動的に構成することを含む、前記接続することと、をさらに含む、請求項8に記載の方法。
【請求項18】
前記第1のコンピューティングデバイスは、前記少なくとも1つの仮想ネットワークに接続されるように構成されるポートを有する、請求項8に記載の方法。
【請求項19】
少なくとも1つのデータセンターにおいてデータを伝送するためのネットワークファブリックであって、前記少なくとも1つのデータセンターは、前記ネットワークファブリックに接続されるサーバを取り付けるためのラックを含む、前記ネットワークファブリックと、
前記ネットワークファブリックに接続されたネットワークスイッチであって、各ネットワークスイッチは、前記ラックのうちのそれぞれのラックに対応する、前記ネットワークスイッチと、
前記ネットワークスイッチの構成データを記憶するためのデータストアと、
少なくとも1つの処理デバイスと、
命令を含むメモリと、
を備え、前記命令は、前記少なくとも1つの処理デバイスに、
クライアントデバイスからポータルを介して、前記ネットワークファブリックによって接続された複数のラックでサポートされるコンピューティング環境を作成する要求を受信することであって、前記複数のラックは、前記コンピューティング環境内の第2のラックの物理サーバと通信するように構成される物理サーバを取り付けるための第1のラックを含む、前記受信することと、
前記コンピューティング環境内に少なくとも1つの仮想ネットワークを作成することと、
前記少なくとも1つの仮想ネットワークを前記物理サーバに関連付けるように前記ネットワークスイッチのうちの少なくとも1つを構成することと、を行うように指示するよう構成される、システム。
【請求項20】
前記命令は、前記少なくとも1つの処理デバイスに、
前記クライアントデバイスのユーザインターフェースを介して、前記コンピューティング環境内の新しいコンピューティングデバイスに関連付けられた構成選択を受信することと、
前記構成選択に基づいて、処理リソース、メモリリソース、及びストレージリソースを構成することと、
前記新しいコンピューティングデバイスを前記コンピューティング環境にデプロイすることであって、前記新しいコンピューティングデバイスは、前記少なくとも1つの仮想ネットワークに接続された仮想サーバを実行するように構成される、前記デプロイすることと、を行うように指示するようさらに構成される、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年6月17日に出願され、「NETWORK CONFIGURATION OF TOP-OF-RACK SWITCHES ACROSS MULTIPLE RACKS IN A DATA CENTER」と題された米国特許出願第16/442,997号の優先権を主張し、その開示全体が引用により本明細書に組み込まれている。
【背景技術】
【0002】
本明細書に開示する少なくともいくつかの実施形態は、一般にコンピュータネットワーク構成に関し、より詳細には、データセンター内のネットワークスイッチのネットワーク構成に関するが、これに限定されない。
【0003】
データセンターは、コンピューティングシステム及び関連するネットワーク機器を収容する物理的な施設である。たとえば、サービスプロバイダは、そのコンピュータサーバを1つの物理的な場所に収容して、サーバをより効率的に管理することができる。データセンター内のサーバは、典型的には、インターネットまたはワイドエリアネットワーク(WAN)を介してコンピュータサーバのユーザに接続される。データセンター内のコンピュータサーバは、典型的には、アプリケーションをホストし、サービスを提供する。
【0004】
データセンター内のコンピュータサーバ及び他の関連コンポーネント、たとえば、ネットワークスイッチ、ルータなどは、ラックと呼ばれる金属製のケージに収容される。たとえば、ラックは、コンピュータサーバを収容するためのシャーシを含む。場合によっては、ブレードの形態のコンピュータサーバがシャーシに取り付けられる。ラックは、各ブレードをコンピュータネットワークに接続するネットワークケーブルのワイヤハーネスを有する。他のケーブルは、各ブレードに電力を供給する。
【0005】
場合によっては、ラックに取り付けられた各サーバは、1つまたは複数の仮想マシンをホストするように構成され得る。ラック内のサーバは、トップオブラック(TOR)スイッチデバイスに接続される。TORスイッチは、スパインスイッチまたはスパインアンダーレイファブリックを介して他のTORスイッチに接続される。これにより、複数のテナントネットワークが異なるラックユニット内のホストデバイス間でデータ通信を交換するために使用することができる物理ネットワークが提供される。たとえば、あるラックユニットの仮想マシンから他のラックユニットの仮想マシンにデータのパケットが送信され得る。パケットは、対応するTORスイッチデバイスと、中間のスパインスイッチとの間でルーティングすることができる。TORスイッチは、データセンター環境内のホストデバイスに関連付けられたアドレス情報を記憶するように構成される。
【0006】
TORスイッチは、典型的には、ラック内の物理サーバ(ならびにその物理サーバによってホストされる仮想マシン及び仮想スイッチ)から発信された、及び/またはそれらを宛先とする通信(たとえば、ルーティング及び転送)を管理する。各TORスイッチは、異なるラック内のTORスイッチ間の通信を管理するネットワークコントローラユニットと通信するように構成することができる。場合によっては、アンダーレイファブリックに存在するテナントネットワークを作成、変更、プロビジョニング、及び/または削除することができる。
【0007】
一例では、仮想スイッチ及び仮想マシンが、各物理サーバにおいてハイパーバイザー上で作成及び実行される。各仮想スイッチは、特定の仮想ネットワーク内の仮想マシンの通信を管理するように構成することができる。各仮想マシンは、テナントネットワーク(たとえば、1つまたは複数のVLANを含むレイヤ3サブネット)のメンバーである。
【0008】
一例では、TORスイッチは、ラックに取り付けられた物理サーバとの間でデータパケットを送受信するためのネットワークポートを含む。これらのポートはスイッチの特定用途向け集積回路(ASIC)に結合されており、これは、あるポートで受信したパケットを別のポートを介してシステム内のデバイスに転送することを可能にする。
【0009】
場合によっては、TORスイッチは、ハイパーコンバージドインフラストラクチャ(HCI)コンピューティング環境で使用される。HCIとは、コンピュータ、ネットワーク、及びストレージを単一のソフトウェア定義アーキテクチャに統合するために使用される仮想コンピューティングプラットフォームである。HCIコンピューティング環境は、サーバ及びネットワークスイッチなどの数千のデバイスを含むことができる。HCIサービスを使用して、ネットワークスイッチを構成することができる。一例では、各ネットワークスイッチに対してインターネットプロトコル(IP)アドレスが設定される。一例では、HCI管理サービスは、様々なラックのネットワークスイッチに適用されるネットワーク構成のリストを維持管理する。一例では、管理サービスは、第1のネットワークスイッチに適用されるネットワーク構成のリストにアクセスし、このネットワーク構成を第2のネットワークスイッチに動的に適用する。
【0010】
一例では、第1のネットワークスイッチは、データセンターのラックのスロットに存在する。HCI管理サービスは、データストアまたは他のメモリを使用して、第1のネットワークスイッチに適用されたネットワーク構成を保持する。たとえば、ネットワーク構成には、スイッチ起動構成、管理クラスタ構成、及びワークロード構成が含まれ得る。
【0011】
実施形態を限定ではなく例として添付図面の図に示しており、図面では、同様の参照符号は同様の要素を示す。
【図面の簡単な説明】
【0012】
【
図1】一実施形態による、様々なコンピューティング機器が取り付けられるラックのトップオブラックスイッチを接続するネットワークファブリックを含む例示的なデータセンターを示す図である。
【
図2】一実施形態による、仮想マシンをサポートするハイパーバイザーを実行するサーバハードウェアを含む例示的なサーバを示す図である。
【
図3】一実施形態による、仮想スイッチのポートに接続される仮想マシンを実行する例示的なコンピューティングデバイスを示す図である。
【
図4】一実施形態による、データセンターのネットワークファブリックに接続されたトップオブラックスイッチを構成するための方法を示す図である。
【
図5】一実施形態による、ユーザインターフェースへの入力によってユーザから受信した構成選択に応答して、ネットワークのグループをラックのグループに接続するための方法を示す図である。
【
図6】様々な実施形態で使用することができるコンピューティングデバイスのブロック図である。
【
図7】一実施形態による、コンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0013】
本明細書の少なくともいくつかの実施形態は、データセンター内のネットワークスイッチを構成することに関する。一例では、ネットワークスイッチはトップオブラック(TOR)スイッチである。あるいは、及び/またはさらに、他のタイプのネットワークスイッチを構成することができる。一例では、TORスイッチは、データセンターのネットワークファブリックに接続される。ネットワークファブリックは、データセンターに収容された様々なラックで使用されるTORスイッチを接続する。各ラックには、物理サーバ、ルータなどの様々なコンピューティングハードウェアが取り付けられる。
【0014】
既存のデータセンターに関する重大な問題は、データセンターに情報技術(IT)インフラストラクチャをデプロイする(たとえば、新しいハードウェアサーバ及びそれらのサーバ上で実行されるアプリケーションをプロビジョニングする)のに長い時間を要することである。たとえば、単一のアプリケーションをデプロイするのに3~6か月かかる場合があり、これには、回路をプロビジョニングすることと、コロケーションケージにインフラストラクチャを構築することと、ハイパーバイザーをインストールして構成することと、そのアプリケーションをロードしてテストすることとが含まれる。ネットワーク接続及びサービスをプロビジョニングするための時間によって、新しいワークロードまたはアプリケーションのコロケーションデプロイメントがしばしば制約を受ける。
【0015】
もう1つの問題は、帯域幅要件及び全体的なIT容量要件を数か月以上前に正確に予測することが困難なことである。このため、多くの組織は最初にオーバープロビジョニングを行って、需要の増加に応じて十分な帯域幅及びコンピューティングリソースを確実に利用できるようにしている。
【0016】
以下に説明する様々な実施形態は、上記の技術的問題の1つまたは複数に対する技術的解決策を提供する。一実施形態では、方法は、スイッチをラックに取り付けることであって(たとえば、データセンター内のラックのTORスイッチ)、ラックは、スイッチに接続されるサーバを取り付けるように構成される、取り付けることと、スイッチをネットワークファブリックに接続することと、スイッチ構成マネージャによって、クライアントデバイス(たとえば、データセンターに新しいITインフラストラクチャをデプロイしているサービスプロバイダの顧客のクライアントデバイス)から、仮想ネットワークを作成する命令を受信することと、命令を受信したことに応答して、仮想ネットワークを作成することと、スイッチ構成マネージャによって、命令に基づいて、仮想ネットワークをスイッチに関連付けるようにスイッチを構成することと、を含む。
【0017】
一例では、スイッチ構成マネージャは、上記のラックを含むコンピュータハードウェアのラックを収容するデータセンターのネットワークファブリックに接続されたコンピューティングデバイスによって実行されるソフトウェアである。スイッチ構成マネージャは、データセンターに物理的に配置された全てのラックのTORスイッチを構成する。スイッチ構成マネージャは、データセンターのサービスプロバイダ顧客によって、スイッチ構成マネージャのアプリケーションプログラミングインターフェース(API)を使用してアクセスされる。たとえば、各顧客のクライアントデバイスは、顧客がデータセンターに新しいITインフラストラクチャをデプロイするときに、APIを使用して自身のラックのTORスイッチを構成することができる。
【0018】
1つのケースでは、仮想ネットワークは第1の仮想ネットワークであり、この方法は、クライアントデバイスのユーザインターフェースから、ネットワークのグループを作成する要求を受信することであって、グループは第1の仮想ネットワークを含む、受信することと、要求を受信したことに応答して、ネットワークのグループを作成することと、ユーザインターフェースで行われたユーザ選択を受信したことに応答して、ネットワークのグループをラックのグループに接続することであって、接続することは、各ラック内のそれぞれのサーバによる、ネットワークのグループ内の各ネットワークへのアクセスを提供するように、ラックのグループ内の各ラックのTORスイッチのポートを自動的に構成することを含む、接続することと、をさらに含む。
【0019】
一実施形態では、サービスプロバイダまたは他の顧客には、ユーザインターフェース(UI)及びAPIが提供される。一例では、サービスプロバイダは、クラウドサービスプロバイダ、ソフトウェアアズアサービス(SaaS)プロバイダ、またはマネージドホスティングプロバイダである。UIは、データセンターのネットワークファブリックに接続される顧客ポート、コンピューティングノード、及び他の要素を提示する。顧客はUIを使用して仮想ネットワークまたは仮想ネットワークのグループを作成することができる。顧客はいくつかの仮想ネットワークを、定義したグループにバンドルすることができる(また、任意選択により、そのグループにテキストラベルを割り当てることができる)。そして、顧客はUIを使用して、定義したグループをラック及び他のコンピューティングデバイスの間で接続することができる。データセンター自動化ソフトウェア(たとえば、データセンターの仮想サーバで実行されるもの)は、グループのデータを調べ、必要に応じてグループ内の仮想ネットワークの接続を構成する。
【0020】
一実施形態では、データセンター自動化ソフトウェアは、顧客のラックへのネットワーク接続を管理する。顧客はポータル(たとえば、モバイルデバイスなどのクライアントデバイスで実行されるユーザアプリケーションによって提供されるもの)を使用して、ネットワークのグループをラックのグループに接続することができる。一例では、各ラックは一意のIDを有する。顧客はUIを使用して自身のクライアントデバイスのディスプレイ上で、都市域(metro region)別の場所を含むラックデータを閲覧することができる。顧客はまた、ネットワークファブリックを介してサービスを受けるために使用することができる、(たとえば、都市域または他の地理的地域別の)IP接続インスタンスと、ある都市域または他の地理的地域におけるポートとを閲覧することができる。たとえば、複数のラックが全て同じIP接続インスタンスにアクセスすることができる。ポータルは顧客のクライアントデバイスにエンドポイント及び接続を表示し、ポータルはエンドポイントと接続との間の関係を管理する。
【0021】
一実施形態では、ポータルは、顧客のラックのグループ化メカニズムの顧客による制御を提供する。顧客は自身のラックへのネットワーク接続を管理することができる。一例では、顧客はネットワークのグループをラックのグループに接続するように要求する。そのとき、データセンター自動化ソフトウェアがこれらの接続を構成する。一実施形態では、データセンター自動化ソフトウェアは、上述のスイッチ構成マネージャを含む。
【0022】
一例では、顧客はグループを作成し、ネットワークをそのグループに割り当てる。バックエンドでは、ネットワークとグループとの関連付けは、データセンター自動化ソフトウェアによって追跡される。グループへの新しい接続を確立するための新しい要求が行われると、グループに属する全てのネットワークが検査され、新しい接続を確立するために必要に応じて個々の設定が実施される。
【0023】
一実施形態では、上記のネットワークに接続されるデバイス及びポートが識別される。ネットワークごとに、エンドポイントが決定され、接続を実現するために必要な作業が1つまたは複数のワークフローとして識別される。一例では、ワークフローエンジン(たとえば、データセンターの管理者コンピューティングデバイスの仮想マシン上で実行されるソフトウェア)が、ワークフロー内のタスクを実行する。
【0024】
一実施形態では、コロケーションラックは、従来のアプローチを使用する場合よりも速く顧客に提供することができる。これらのラックは、電源と、各ラックの施錠機構と、データセンターのネットワークファブリックにつながれたネットワークスイッチとを含むスタンドアロンラックである。場合によっては、インターネット接続のためにラック内のサーバにIPトランジットが提供される。一例では、顧客はサービス契約に署名し、その顧客はデータセンターで使用される認証サービスに追加される。認証サービスは、データセンターに対して顧客によるアクセスを管理し、顧客を識別する。顧客はデータセンターの指令センターにログインする(たとえば、指令センターは、上記のスイッチ構成マネージャを含むソフトウェアによって実装することができる)。次いで、顧客はデータセンターの場所を選択し、ある数量のラック(たとえば、1つのラックから所定の限度まで)の注文を指定する。
【0025】
次に、指令センターは様々なアクションを実行する。指令センターは、世界中の様々な地理的なデータセンターの場所における利用可能なラックの在庫のデータベースを維持管理する。顧客の選択に応答して、指令センターは、顧客によって選択された場所で利用可能な在庫からラックを割り当てる。認証サービスは、これらの割り当てられたラックに対応するラック割り当て情報を用いて更新される。
【0026】
選択したラックが位置する各物理データセンター施設のセキュリティシステムが更新されて、顧客がラックに物理的にアクセスすることが許可される。ラックに対して使用される施錠システムは、選択したラックに顧客がアクセスすることを許可するように構成される。場合によっては、IP接続(たとえば、インターネットアクセスを提供するため)がプロビジョニングされ、選択されたラックのTORスイッチに接続される。次いで、ポータルは、選択したラックの場所、ラックのTORスイッチ情報、及びラックのIP接続情報(たとえば、VLAN、サブネット、及びデフォルトゲートウェイ設定情報)を用いて更新される。コロケーションサービスに関する顧客への請求が(たとえば、電子通信によって)開始される。最後に、前述のプロビジョニングが完了すると、電子通信または別の方法で顧客に通知される。
【0027】
指令センターが上記のアクションを実行した後、顧客は様々なアクションを実行することができる。まず、顧客は指令センターにアクセスして、ポータルを介した写真のアップロードまたは撮影を含むユーザセットアップを完了する。一例では、顧客は上記のクライアントデバイスを使用して指令センターにアクセスする。一例では、クライアントデバイスは、カメラを有するモバイルデバイスであり、顧客に関連付けられた社員の写真を撮るために使用される。写真は上記のAPIを介して指令センターにアップロードされる。
【0028】
顧客がデータセンターの場所に物理的に到着すると、顧客は到着したことを警備に告げてバッジを受け取る。バッジは上記で顧客によって事前に提供された写真を含む。顧客は施設に入り、バッジを使用して選択したラックを解錠する。一例では、バッジは、選択されたラックの施錠機構を解錠するために必要なセキュリティ資格情報(credentials)を含む。顧客は選択したラックにコンピューティング機器を設置し、次いでその機器を上記のTORスイッチにケーブル接続する。次いで、顧客は指令センターにアクセスし、TORスイッチのポートを構成する。一例では、顧客が使用することを望む仮想ローカルエリアネットワーク(VLAN)構成でスイッチのポートが構成される。
【0029】
一実施形態では、データセンターの運営者は、ハードウェア機器を購入してラックに設置する。その機器はオンデマンドで顧客が利用できるようになされる。これにより、顧客はピーク需要に合わせて機器を構築する必要がなくなる。一例では、顧客は、この機器によってサポートされるコンピューティングリソースを購入することができる。一例では、購入されるコンピューティングリソースは、ハイパーコンバージドインフラストラクチャ(HCI)に基づいている。たとえば、顧客は上記のポータルを使用してコンピューティングリソースを選択することができる。一例では、コンピューティングリソースは、顧客によってポータルを使用して構成される1つまたは複数の仮想ネットワークに接続される。上記の指令センターは、これらの仮想ネットワークをデータセンターのハードウェア機器に接続するようにTORスイッチを構成する。
【0030】
一実施形態では、オンデマンドのITインフラストラクチャが顧客に提供される。一例では、インフラストラクチャは、オンデマンド消費モデルを使用して提供される。一例では、インフラストラクチャは、物理的に分離されたオンデマンドのハイパーコンバージドインフラストラクチャである。ネットワークファブリックは、データセンター全体にわたるセキュアなレイヤ2ネットワークを介した接続を提供するソフトウェア定義のネットワークファブリックである。顧客は、プライベートまたはパブリッククラウドリソースへの直接接続を有するネットワークプロバイダへのアクセスを要求することができる。
【0031】
一実施形態では、顧客は第1のラックに自身の機器を設置する。顧客は上述のポータルを使用して第1のラックのTORスイッチを構成する。上記の指令センターは、顧客によって要求された構成を実現するようにTORスイッチのポートを構成する。さらに、顧客は、既設の、データセンターの運営者によって所有される第2のラック内の機器を構成してデプロイすることができる。第2のラックは、顧客によるデプロイのための、いわゆる「コンピューティングノード」を提供する機器を含む。一例では、コンピューティングノードは、コンピュータリソース(CPUコアなど)、メモリリソース(RAMなど)、ならびにストレージリソース(ハードディスクドライブ及びソリッドステートディスクなど)を事前構成済みの統合されたアプライアンスへと組み合わせた専用の自己完結型HCIユニットである。コンピューティングノードのグループはクラスタを形成する。
【0032】
一例では、コンピューティングノードは、顧客が所望のハイパーバイザーをデプロイすることができる顧客専用のハードウェアを提供する。顧客は、所望のワークロードを実行するために必要なリソース及び仮想マシンを構成及び管理することができる。一例では、顧客は上記のポータルを使用して、第1のラックの1つまたは複数のサーバを第2のラックの1つまたは複数のサーバに接続する1つまたは複数の仮想ネットワークを作成する。第1のラック及び第2のラックは異なるデータセンターのものとすることができる。
【0033】
一実施形態では、上記のデータセンターのネットワークファブリックは、データセンター全体で顧客及びリソースをリンクするためのソフトウェア定義のネットワークファブリックである。ネットワークファブリックは、仮想拡張可能ローカルエリアネットワーク(VLAN)プロトコルを使用して各顧客のトラフィックが論理的に分離及び保護されるようにするアーキテクチャを使用する。顧客のクライアントデバイスは、上記のAPIを使用して、プライベート仮想レイヤ2ネットワークを定義、プロビジョニング、及び構成することができる。一例では、VXLANを使用して、論理的なサービスが顧客のラック内のサーバに仮想ネットワークとして提供される。一例では、全ての物理接続は、イーサネットレイヤ2インターフェースを用いて提供される。一例では、複数のサービスが単一の物理接続を介して顧客サーバに提供される。一例では、物理接続は、1~10Gbpsで動作するシングルモードファイバを使用して実装される物理ポートである。
【0034】
上記に照らして、データセンター内のネットワークスイッチの自動構成は、1つまたは複数の様々な利点を提供することができる。たとえば、顧客のコロケーションアクセスを自動化して、従来のアプローチを使用するよりも迅速に提供することができる。たとえば、コロケーションアクセスは、顧客による最初の要求を受信してから48時間以内(たとえば、同日内)に提供することができる。たとえば、ラックスイッチへのインターネット接続のデプロイを自動化することができる。たとえば、複数のセキュリティシステム及び複数のラックスイッチを同時に構成することができる。たとえば、複数のラックにまたがるTORスイッチのセルフサービス構成を提供することができる。
【0035】
他の利点は、たとえば、以下の1つまたは複数を含むことができる。
・ハイパーコンバージドインフラストラクチャがより短期間でプロビジョニングされること。
・データセンター内または異なる地理的場所にあるデータセンター間でコロケーション環境及び接続を拡張すること。
・専用ハードウェアを用いた、顧客による自身のネットワーク及びコンピューティング環境に対する完全な制御が維持されること。
・単一の物理ネットワーク接続を介して複数のサービスを提供することにより、複雑さが軽減されること。
【0036】
図1は、一実施形態による、様々なコンピューティング機器が取り付けられるラック103、155のトップオブラック(TOR)スイッチ105、157を接続するネットワークファブリック101を含む例示的なデータセンターを示している。ラック103に取り付けられるコンピューティング機器は、TORスイッチ105に加え、サーバ107、109、及びルータ113も含む。ラック103は、追加の機器を取り付けることができるスロット111を有する(たとえば、スロット111及び/または他のスロットは、データセンターの顧客が顧客所有の機器をラック103に設置するために使用することができる)。
【0037】
TORスイッチ105は、メモリ106と、通信(たとえば、データパケット)を送受信するための様々なポート(たとえば、ポート108)とを含む。メモリ106は、ポータル133を介して受信された顧客の要求に応答して、ネットワークファブリック101を介してスイッチ構成マネージャ127によって実施されるネットワーク構成(たとえば、ポート接続割り当て)を記憶する。TORスイッチ105の様々なポートは、ルータ113及び/またはサーバ107、109に接続される。TORスイッチ105の他のポートは、ネットワークファブリック101の1つまたは複数の仮想ネットワーク121、123に接続される。一実施形態では、ラック103とネットワークファブリック101との間の全ての通信は、物理ファイバポート104(たとえば、シングルモードファイバを使用して実装されるもの)を通過する。
【0038】
ラック155には、TORスイッチ157、サーバ165、167、及びルータ163を含むコンピュータ機器が取り付けられる。ラック155は、追加の機器を追加するためのスロット169を含む。TORスイッチ157は、メモリ159と、ポート161を含む様々なポートとを含む。ラック103の場合と同様に、ネットワークファブリック101との間の全ての通信は、物理ファイバポート153を通過する。また、ラック103の場合と同様に、メモリ159は、スイッチ構成マネージャ127によって自動的に実施されるTORスイッチ157の構成に関するデータを記憶するために使用される。一例では、この構成は、クライアントデバイス137のユーザインターフェースにおいて顧客によって行われた選択に応答して実施される。
図1のデータセンターは、物理ファイバポート及び/または他のタイプの接続を使用してネットワークファブリック101に接続された他の多数のラックを含むことができる。
【0039】
ネットワークファブリック101の仮想ネットワーク121、123は、様々なタイプの物理ネットワークスイッチ上にオーバーレイすることができる。一実施形態では、ネットワークファブリック101は、ラック103のサーバからラック155などの別のラックに取り付けられたサーバにデータを送信するための仮想拡張可能ローカルエリアネットワーク(VXLAN)142を実装するために使用されるネットワークスイッチ147を備える。一例では、TORスイッチ105に接続された仮想ネットワークは、サーバ107からサーバ165にデータを送信するためのVXLAN142に変換される。VXLAN142は、TORスイッチ157に接続された他の仮想ネットワークにデータを送信するために使用される。VXLAN142は、スイッチ構成マネージャ127によって、サーバ間の前述の接続を実現するように構成することができる。一実施形態では、この構成は、サーバ107を含む仮想ネットワークにサーバ165を追加するというクライアントデバイス137からの要求に応答して実施される。
【0040】
一実施形態では、ネットワークファブリック101は、物理スイッチングファブリックの一部としてスパインスイッチ139を含む。スパインスイッチ139は、スパインスイッチ139を構成するためにスイッチ構成マネージャ127によって使用することができる管理ポート141を含む。
【0041】
一例では、ネットワークファブリック101は、リーフ-スパインデータセンタースイッチングファブリックである。一例では、ネットワークファブリック101は、ソフトウェア定義ネットワーク(SDN)コントローラベースのデータセンタースイッチングファブリックである。一例では、スイッチングファブリックは、全てのワークロード(たとえば、物理、仮想マシン、及びコンテナ)とオーケストレーションソフトウェアの選択とをサポートする。スイッチングファブリックは、レイヤ2(L2)スイッチングとレイヤ3(L3)ルーティングとを提供する。一例では、スイッチングファブリックは、スケーラブルで回復力があり、単一障害点がなく、及び/またはヘッドレスモード動作をサポートする。
【0042】
一実施形態では、コンピューティングデバイス115(たとえば、サーバまたは仮想マシン)が、ネットワークファブリック101に接続される。コンピューティングデバイス115はハイパーコンバージド管理サービス117を実行し、これを使用して、ラック103及び/またはラック155を含む様々なラックによって提供されるコンピューティングリソース、メモリリソース、及び/またはストレージリソースを割り当てることができる。データストア119は、このリソースの割り当てに関するデータを記憶するために使用される。
【0043】
一実施形態では、顧客は自身の機器をラック103に設置する。顧客は、クライアントデバイス137を使用して、データセンター内の自身のコンピューティング環境に追加するための追加のリソースの要求を送る。この要求に応答して、ハイパーコンバージド管理サービス117は、顧客が使用するためにラック155内のサーバのリソースを割り当てる。一例では、顧客のワークロードを処理するために、ラック155上で仮想マシンが作成される。
【0044】
一実施形態では、コンピューティングデバイス125が、ネットワークファブリック101に接続される。スイッチ構成マネージャ127は、コンピューティングデバイス125上で実行され、データセンターの様々な管理機能(たとえば、上述の機能)を実行する。スイッチ統合マネージャ127によって実行される機能の一部は、ポータル133を介してクライアントデバイス137から外部ネットワーク135越しに受信した通信に応答する。クライアントデバイス137は、これらの通信のためにスイッチ構成マネージャ127のAPI132を使用する。クライアントデバイス137はまた、API132を使用して、スイッチ構成マネージャ127から通信を受信する。一例では、通信のうちの1つまたは複数は、クライアントデバイス137のユーザインターフェースに情報を表示させる。一例では、ユーザインターフェースは、この情報を使用して、データセンターの顧客のコンピューティング環境の構成を表示する。
【0045】
一実施形態では、クライアントデバイス137からの通信に応答して、スイッチ構成マネージャ127は、ネットワークファブリック101の様々な仮想ネットワーク(たとえば、仮想ネットワーク121、123、及び/またはVXLAN142)を作成及び/または構成する。一例では、特定の仮想ネットワークが、顧客によってクライアントデバイス137を使用して指定されたグループに割り当てられる。仮想ネットワークの作成及び/または構成(たとえば、グループ(複数可)への仮想ネットワークの割り当て)に関するデータは、データストア131に記憶される。
【0046】
一実施形態では、データセンターの顧客は、クライアントデバイス137を使用して、自身のコンピューティング環境内の1つまたは複数のラックのインターネット接続を要求することができる。たとえば、顧客は、サーバ107、109が使用するためのインターネット接続を提供するように要求することができる。インターネット接続に関するクライアントデバイス137との通信もまた、API132を使用して実行することができる。この要求に応答して、インターネット構成マネージャ129は、このインターネット接続を提供するようにIPサービス143を構成することができる。インターネット構成マネージャ129は、インターネット接続を提供するIPサービス143にサーバ107、109が接続されるようにTORスイッチ105を構成するためにスイッチ構成マネージャ127によって必要とされる構成データを伝達する。このインターネット接続に関する構成データも、データストア131に記憶することができる。
【0047】
一実施形態では、顧客は、1つまたは複数の電気通信キャリア145を自身のコンピューティング環境内のラック(たとえば、ラック103またはラック155)に接続するように要求することができる。
【0048】
一実施形態では、顧客は、ラック103またはラック155内のサーバをソフトウェア定義のワイドエリアネットワーク(SD-WAN)149に接続するように要求することができる。一例では、SD-WAN149は顧客によって、自身のコンピュータネットワークを長距離にわたって拡張するため、遠隔地の支社をデータセンター及び相互に接続するため、ならびに/あるいは様々なビジネス機能を実行するために必要なアプリケーション及びサービスを提供するために使用される。
【0049】
一実施形態では、顧客はコンピューティングサービス151を要求することができる。一例では、コンピューティングサービス151は、顧客のコンピューティング環境で使用するために作成される1つまたは複数の仮想マシンを含む。一例では、仮想マシンは、データセンターのラック内のサーバ上で作成及び実行される。たとえば、ハイパーコンバージド管理サービス117は、これらの仮想マシンを作成及び管理することができる。
【0050】
他の例では、コンピューティングサービス151は、ストレージリソースを含む。ストレージリソースは、データセンターのラックに取り付けられた(たとえば、ラック155に取り付けられた)不揮発性メモリデバイスとすることができる。
【0051】
一実施形態では、仮想化制御システム(たとえば、ハイパーコンバージド管理サービス117によって実装されるか、またはコンピューティングデバイス115によって別の方法で実装されるもの)は、データセンターのサーバ、ストレージ、及びネットワークハードウェアリソースを抽象化して、顧客がアクセスすることができるより粒度の細かい仮想サーバ、仮想ストレージ、仮想ネットワークリソースの割り当てを提供する。顧客が自身の新しい環境を構成することを可能にする顧客コンソールプロビジョニングインターフェースが仮想化制御システムに結合される。一例では、仮想化制御システムは、クライアントデバイス137から受信した要求に応答する。
【0052】
一実施形態では、ポータル133はウェブポータルである。クライアントデバイス137は、顧客/ユーザが指定したネットワーク接続を新しいコンピューティング環境に関連付けることを可能にするユーザインターフェースを提供する。新しいコンピューティング環境は、ユーザインターフェースで指定されたいくつかの仮想マシンに関連付けることができる。
【0053】
一実施形態では、顧客はユーザインターフェースを使用して、多数の仮想環境(これらは複数の物理データセンターに物理的にまたがり得る)にわたって、自身の仮想リソースを作成、プロビジョニング、及び管理することができる。たとえば、一部の仮想サーバは第1の物理データセンターのハードウェア上に物理的に配置され、他の仮想サーバは第2の物理データセンターに物理的に配置される。一例では、複数の仮想化制御システム及び複数の地理的場所にまたがるデータセンター資産の抽象化されたビューが顧客に提示されるので、物理的な場所の違いは顧客とは無関係である。
【0054】
一実施形態では、上記のユーザインターフェースにより、顧客/ユーザは、新しく作成した環境にネットワークを追加することが可能になる。このネットワークには名前及びVLAN識別子が付与される。顧客は新しい仮想サーバを作成して、新しい環境内に配置することができる。顧客は、作成中の新しい仮想サーバに関連付けられるように、処理リソース、メモリリソース、及びストレージリソースを構成することができる。そして、新しいサーバを顧客の環境にデプロイすることができる。
【0055】
一実施形態では、顧客はユーザインターフェースを使用して、新しい仮想サーバの構成タスクを実行する(たとえば、サーバ名を提供する、仮想サーバに関連付けるプロセッサの数を選択する、仮想サーバに関連付けるシステムメモリの量を選択する)。顧客は、新しいサーバに関連付けるオペレーティングシステムを選択する。
【0056】
一実施形態では、顧客は仮想サーバのグループを作成することができる。たとえば、顧客はサーバを機能別(たとえば、ウェブサーバのグループ、SQLサーバのグループ)に整理することができる。顧客は、仮想サーバ(たとえば、サーバ107またはサーバ165上で実行される仮想マシン)に関連付ける特定の仮想ネットワーク(たとえば、仮想ネットワーク121)を選択し、次いで、仮想サーバのIPアドレス及びDNS設定の詳細を提供する。
【0057】
一実施形態では、顧客が(たとえば、IPサービス143に関連付けられた)IPアドレスのブロックを購入した後、パブリックIPアドレスをクライアントデバイス137のユーザインターフェースに表示することができる。他の表示画面によって、ユーザは、構成済みの異なる仮想サーバへのプライベートIPの割り当てを調べることができる。
【0058】
一実施形態では、クライアントデバイス137上のユーザインターフェースを使用して、インターネットサービスを作成することができる。ユーザはパブリックIPアドレス及びプロトコルを選択する。次いで、ユーザはポート値及びサービス名を選択し得る。サービスの説明が提供され得る。そのIPアドレスにプロビジョニングされているインターネットサービスのリストをインターフェースに表示することができる。プロビジョニングされたサービスは、たとえば、FTPサービス、SMTPサービスなどを含むことができる。各サービス内には、作成済みの、特定のインターネットサービスに関連付けられたノード(仮想サーバなど)に加え、プロトコル及びポートが一覧表示される。
【0059】
一例では、スイッチ構成マネージャ127は、上記の顧客環境にアクセスすることができる(たとえば、顧客環境にネットワークを追加するため)。
【0060】
図2は、一実施形態による、
図1のサーバ107を示している。サーバ107は、ハイパーバイザー209を実行するサーバハードウェア201を含む。ハイパーバイザー209は、仮想マシン213、215をサポートする。サーバハードウェア201は、プロセッサ203、メモリ205、及びネットワークインターフェースコントローラ(NIC)207を含む。NIC207は、サーバ107をTORスイッチ105のポートに接続する。TORスイッチ105の他のポートは、ネットワークファブリック101に接続される。
【0061】
仮想マシン213、215は、一般に、TORスイッチ105を使用してネットワークファブリック101と通信する。仮想マシン213は仮想NIC217を有し、仮想マシン215は仮想NIC219を有する。一実施形態では、仮想NIC217、219は、仮想マシン213、215をネットワークファブリック101の1つまたは複数の仮想ネットワーク121に接続する。一例では、仮想マシン213は、ネットワークファブリック101のVLAN223に関連付けられる。
【0062】
たとえば、VLAN223は、サーバ107をラック103に自身で設置したデータセンターの顧客によって作成済みであり得る。一例では、スイッチ構成マネージャ127が、クライアントデバイス137からの1つまたは複数の通信に応答して、TORスイッチ105の1つまたは複数のポートを構成した後に、顧客がサーバ107を設置する。一例では、ラック103の施錠機構により、TORスイッチ105のこの構成がスイッチ構成マネージャ127によって完了するまで、顧客の入室が許可されない。
【0063】
ハイパーバイザー209はまた、仮想スイッチ211をサポートする。仮想マシン213、215は、仮想スイッチ211のポートに接続される。一例では、仮想スイッチ211はまた、1つまたは複数のポートがネットワークファブリック101のVLAN221に関連付けられている。
【0064】
図3は、一実施形態による、仮想スイッチ301の様々なポートに接続される仮想マシン303、305、307を実行する例示的なコンピューティングデバイス300を示している。コンピューティングデバイス300は、
図2のサーバ107の一例である。
【0065】
仮想スイッチ301のポートは、様々なグループ(たとえば、ポートグループA、B、C、D、E)で提供される。一例では、仮想マシン303、305は、仮想NIC309、311を介してポートグループAに接続される。仮想マシン307は、仮想NIC313を介してポートグループEに接続される。
【0066】
一例では、各ポートグループは仮想ネットワークに対応する。仮想スイッチ300は、
図2の仮想スイッチ211の一例である。一例では、各ポートグループは、
図2のVLAN223のうちの1つに対応する。
【0067】
一例では、コンピューティングデバイス300は、
図1のコンピューティングデバイス125の一例である。スイッチ構成マネージャ127及び/またはインターネット構成マネージャ129は、仮想マシン303、305、及び/または307を使用して実装することができる。一例では、仮想マシン307は、API132を使用してクライアントデバイス137と通信するためのポータル133を実装するために使用される。
【0068】
一実施形態では、コンピューティングデバイス300は、
図1のコンピューティングサービス151を実装するために使用される。たとえば、顧客はクライアントデバイス137を使用して、仮想マシン303、305、307のうちの1つまたは複数を顧客のコンピューティング環境に割り当てるように要求することができる。この要求に応答して、顧客のコンピューティング環境の1つまたは複数の仮想ネットワークが、仮想マシン303、305、307のうちの1つまたは複数に接続される。一例では、ポートグループAは、顧客によってクライアントデバイス137を使用して要求される仮想マシンのグループに対応する。一例では、ポートグループAは、顧客の要求に応答して作成されるグループに対応する。
【0069】
図4は、一実施形態による、ネットワークファブリック(たとえば、
図1のデータセンターのネットワークファブリック101)に接続されたトップオブラックスイッチ(たとえば、
図1のTORスイッチ105)を構成するための方法を示している。たとえば、
図4の方法は、
図1、
図2、及び
図3のシステムに実装することができる。
【0070】
図4の方法は、ハードウェア(たとえば、処理デバイス、回路、専用ロジック、プログラマブルロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(たとえば、処理デバイス上で走らせるもしくは実行される命令)、またはそれらの組み合わせを含むことができる処理ロジックによって実行することができる。
【0071】
いくつかの実施形態では、
図4の方法は、
図1のコンピューティングデバイス125の1つまたは複数のプロセッサによって少なくとも部分的に実行される。一実施形態では、コンピューティングデバイス125は、
図6または
図7(以下を参照)のプロセッサ及びメモリを使用して実装される。
【0072】
特定の並びまたは順序で示しているが、特に指定がない限り、処理の順序は変更することができる。したがって、図示した実施形態は単なる例として理解されるべきであり、図示した処理は異なる順序で実行することができ、一部の処理は並行して実行することができる。さらに、様々な実施形態では、1つまたは複数の処理を省略することができる。したがって、全ての実施形態において全ての処理が必要とされるわけではない。他の処理フローも可能である。
【0073】
ブロック401において、TORスイッチがデータセンターのネットワークファブリックに接続される。各TORスイッチはデータセンターのラックに対応し、ラックに取り付けられた1つまたは複数のコンピューティングデバイスにネットワークファブリックへのアクセスを提供するように構成される。一例では、TORスイッチは、
図1のTORスイッチ105及び157であり、ネットワークファブリックはネットワークファブリック101である。一例では、ラックに取り付けられたコンピューティングデバイスは、ルータ113及びサーバ107を含み、これらは、ラックが顧客に割り当てられた後に、顧客によって取り付けられる。このラックの割り当ては、顧客がクライアントデバイス137を使用してラックを要求した後に行われる。
【0074】
ブロック403において、クライアントデバイスからポータルを介して要求が受信される。この要求は、データセンターの第1のラックを構成するためのものである。一例では、クライアントデバイスはクライアントデバイス137であり、ポータルはポータル133である。
【0075】
ブロック405において、クライアントデバイスから構成データが受信される。構成データは、第1のラックに取り付けられた第1のコンピューティングデバイスによってアクセスされる1つまたは複数の仮想ネットワークに関するものである。一例では、構成データは、顧客が仮想ネットワークのそれぞれに接続することを望むデバイス及びポートの指定を含む。一例では、構成データは、インターネット接続に関連するIPアドレス(たとえば、IPサービス143によって提供されるもの)を含む。一例では、構成データは、サブネットマスク及びゲートウェイの識別情報(たとえば、ルータを設定する際に使用するためのもの)を含む。一例では、仮想ネットワークは、
図1の仮想ネットワーク121及び123を含む。
【0076】
ブロック407において、構成データを受信したことに応答して、第1のラックの第1のTORスイッチが構成される。この構成は、1つまたは複数の仮想ネットワークを第1のTORスイッチに関連付けることを含む。一例では、スイッチ構成マネージャ127は、ラック103のTORスイッチ105を構成する。この構成は、仮想ネットワーク121をTORスイッチ105に関連付けることを含む。
【0077】
一実施形態では、方法は、スイッチ(たとえば、TORスイッチ105)をラック(たとえば、ラック103)に取り付けることであって、ラックは、スイッチに接続されるサーバ(たとえば、サーバ107)を取り付けるように構成される、取り付けることと、スイッチをネットワークファブリック(たとえば、ネットワークファブリック101)に接続することと、スイッチ構成マネージャ(たとえば、スイッチ構成マネージャ127)によって、クライアントデバイス(たとえば、クライアントデバイス137)から、仮想ネットワーク(たとえば、仮想ネットワーク121のうちの1つ)を作成する命令を受信することと、命令を受信したことに応答して、仮想ネットワークを作成することと、スイッチ構成マネージャによって、命令に基づいて、仮想ネットワークをスイッチに関連付けるようにスイッチを構成することと、を含む。
【0078】
一実施形態では、この方法は、サーバからネットワークファブリックを介して別のラックに取り付けられたサーバにデータを送信するための仮想拡張可能ローカルエリアネットワーク(たとえば、VXLAN142のうちの1つ)に、仮想ネットワークを変換することをさらに含む。
【0079】
一実施形態では、ラックは第1のラックであり、サーバは第1のサーバであり、スイッチは第1のスイッチである。この方法は、スイッチ構成マネージャによって、クライアントデバイスから、仮想ネットワークを第2のラック(たとえば、ラック155)に取り付けられた第2のサーバに関連付ける命令を受信することと、仮想ネットワークを第2のサーバに関連付ける命令を受信したことに応答して、VXLANを第2のラックの第2のスイッチ(たとえば、TORスイッチ157)に関連付けるように第2のスイッチを構成することと、をさらに含む。
【0080】
一実施形態では、仮想ネットワークは、第1の仮想ネットワークであり、この方法は、クライアントデバイスから、第2のサーバに関連付けられた第2の仮想ネットワークを作成する命令を受信することと、第2の仮想ネットワークを作成する命令を受信したことに応答して、第2の仮想ネットワークを第2のサーバに関連付けるようにネットワークファブリックを構成することと、をさらに含む。
【0081】
一実施形態では、仮想ネットワークは、第1の仮想ネットワークであり、この方法は、クライアントデバイスから、第1の仮想ネットワーク及び第2の仮想ネットワークを含むグループを作成する命令を受信することと、グループを作成する命令を受信したことに応答して、ネットワークファブリック内のスイッチの構成データを記憶するデータストア(たとえば、データストア131)にグループに関するデータを記憶することと、クライアントデバイスから、仮想サーバをグループに接続する命令を受信することと、仮想サーバをグループに接続する命令を受信したことに応答して、仮想サーバを第1の仮想ネットワーク及び第2の仮想ネットワークに関連付けるようにネットワークファブリックの少なくとも1つのスイッチを構成することと、をさらに含む。
【0082】
一実施形態では、ラックは、第1の地理的場所にある第1のデータセンター内の第1のラックであり、仮想ネットワークは、第1の仮想ネットワークである。この方法は、クライアントデバイスから、第2の仮想ネットワークを作成する命令を受信することと、第2の仮想ネットワークを作成する命令を受信したことに応答して、第2の仮想ネットワークを作成するようにネットワークファブリックを構成することと、第1の仮想ネットワーク及び第2の仮想ネットワークを含むグループを作成する命令を受信することと、グループを作成する命令を受信したことに応答して、スイッチ構成マネージャによって、グループ内の第1の仮想ネットワーク及び第2の仮想ネットワークのメンバーシップを追跡するようにデータストア(たとえば、データストア131)を更新することと、クライアントデバイスから、第2の地理的場所にある第2のデータセンター内の第2のラックにグループを接続する命令を受信することと、グループを第2のラックに接続する命令を受信したことに応答して、第2の仮想ネットワークを第2のラックのスイッチに関連付けるようにネットワークファブリックを構成することと、をさらに含む。
【0083】
一実施形態では、方法は、トップオブラック(TOR)スイッチを少なくとも1つのデータセンター(たとえば、
図1のデータセンター)のネットワークファブリックに接続することであって、各TORスイッチは、少なくとも1つのデータセンターのそれぞれのラックに対応し、それぞれのラックに取り付けられたコンピューティングデバイスにネットワークファブリックへのアクセスを提供するように構成される、接続することと、クライアントデバイスからポータル(たとえば、ポータル133)を介して、少なくとも1つのデータセンターの第1のラックを構成する要求を受信することと、クライアントデバイスから、第1のラックに取り付けられた第1のコンピューティングデバイスによってアクセスされる少なくとも1つの第1の仮想ネットワークの構成データを受信することと、構成データを受信したことに応答して、第1のラックの第1のTORスイッチを構成することであって、構成することは、少なくとも1つの第1の仮想ネットワークを第1のTORスイッチに関連付けることを含む、構成することと、を含む。
【0084】
一実施形態では、コンピューティングデバイスは、仮想サーバ(たとえば、仮想マシン213、215)を実行するように構成される物理サーバ(たとえば、
図2のサーバ107)であり、物理サーバは、第1の仮想サーバを実行するように構成される第1の物理サーバを含み、この方法は、第1のTORスイッチを少なくとも1つのデータセンターの第2のラックの第2のTORスイッチに接続するようにネットワークファブリックの仮想拡張可能ローカルエリアネットワーク(VXLAN)を構成することをさらに含み、VXLANは、第1の仮想サーバから第2のラックに取り付けられた第2の物理サーバ上で実行される第2の仮想サーバにデータを送信するように構成される。
【0085】
一実施形態では、コンピューティングデバイスのそれぞれは、物理サーバ、ネットワークデバイス、またはストレージデバイスであり、第1のTORスイッチは少なくとも1つのポートを備え、第1のTORスイッチを構成することは、構成データに基づいて少なくとも1つのポートを構成することを含む。
【0086】
一実施形態では、第1のラックは第2のTORスイッチを備える。第1のTORスイッチの第1のポート及び第2のTORスイッチの第2のポートは、第1のコンピューティングデバイスに接続されるように構成される。
【0087】
一実施形態では、第1のTORスイッチはポートを備え、第1のTORスイッチを構成することは、仮想ローカルエリアネットワーク(VLAN)をポートに関連付けることを含む。
【0088】
一実施形態では、この方法は、第1のラックの識別子及び第1のラックの地理的場所をクライアントデバイスのユーザインターフェースに表示させることであって、第1のラックの識別子はデータストアに記憶され、ユーザインターフェースは、ユーザが、ネットワークファブリック内に少なくとも1つの仮想ネットワークを作成するように要求することを可能にする、表示させることと、作成された少なくとも1つの仮想ネットワークのそれぞれの名前及び識別子をデータストアに記憶することと、をさらに含む。
【0089】
一実施形態では、この方法は、第1のラックを含むラックが位置する複数の地理的場所のそれぞれについてのポートの利用可能性をクライアントデバイスのユーザインターフェースに表示させることをさらに含み、ポートのそれぞれは、ネットワークファブリックを介したIPサービス(たとえば、IPサービス143)またはコンピューティングサービス(たとえば、コンピューティングサービス151)のうちの少なくとも1つへの接続を提供する。
【0090】
一実施形態では、第1のTORスイッチを構成することは、第1のコンピューティングデバイスにIPサービスまたはコンピューティングサービスへのアクセスを提供することをさらに含む。
【0091】
一実施形態では、クライアントデバイスは、クライアントデバイスのユーザインターフェースによって受け取った入力に基づいて構成データを生成する。入力は、第1のラックに対応するユーザインターフェース内のアイコンの選択を含み、アイコンの選択は、第1のTORスイッチの構成オプションをユーザインターフェースに提示させる。
【0092】
一実施形態では、第1のコンピューティングデバイスは、少なくとも1つの仮想ネットワークに接続されるように構成されるポートを有する。
【0093】
図5は、一実施形態による、ユーザインターフェースへの入力によってユーザから受信した構成選択に応答して、ネットワークのグループをラックのグループに接続するための方法を示している。たとえば、
図5の方法は、
図1、
図2、及び
図3のシステムに実装することができる。
【0094】
図5の方法は、ハードウェア(たとえば、処理デバイス、回路、専用ロジック、プログラマブルロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(たとえば、処理デバイス上で走らせるもしくは実行される命令)、またはそれらの組み合わせを含むことができる処理ロジックによって実行することができる。
【0095】
いくつかの実施形態では、
図5の方法は、
図1のコンピューティングデバイス125の1つまたは複数のプロセッサによって少なくとも部分的に実行される。一実施形態では、コンピューティングデバイス125は、
図6または
図7(以下を参照)のプロセッサ及びメモリを使用して実装される。
【0096】
特定の並びまたは順序で示しているが、特に指定がない限り、処理の順序は変更することができる。したがって、図示した実施形態は単なる例として理解されるべきであり、図示した処理は異なる順序で実行することができ、一部の処理は並行して実行することができる。さらに、様々な実施形態では、1つまたは複数の処理を省略することができる。したがって、全ての実施形態において全ての処理が必要とされるわけではない。他の処理フローも可能である。
【0097】
ブロック501において、クライアントデバイスから要求が受信される。この要求は、クライアントデバイスのユーザインターフェースに提供される入力に基づいている。この要求はネットワークのグループを作成するためのものであり、このグループは1つまたは複数の仮想ネットワークを含む。一例では、クライアントデバイスはクライアントデバイス137である。一例では、この入力は、データセンターの顧客によって提供される。顧客は、このグループに割り当てられる名前を提供し得る。
【0098】
ブロック503において、要求を受信したことに応答して、ネットワークのグループが作成される。一例では、ネットワークのグループは、スイッチ構成マネージャ127によって作成される。グループに割り当てられた仮想ネットワークは、データストア131に記憶される。
【0099】
ブロック505において、ユーザインターフェースで行われた構成選択を受信したことに応答して、ネットワークのグループはラックのグループに接続される。接続することは、各ラックのサーバによる、ネットワークのグループ内の各ネットワークへのアクセスを提供するように、グループラック内の各ラックのTORスイッチのポートを自動的に構成することを含む。一例では、ネットワークのグループは、スイッチ構成マネージャ127によってラックのグループに接続される。たとえば、ネットワークファブリック101ならびにTORスイッチ105及び157は、グループの各ネットワークをラック103及び155に接続するように構成される。一例では、ネットワークのグループは、仮想ネットワーク121及び/または123を含む。
【0100】
一実施形態では、方法は、スイッチ構成マネージャ(たとえば、スイッチ構成マネージャ127)によって、クライアントデバイス(たとえば、クライアントデバイス137)から、仮想ネットワーク(たとえば、仮想ネットワーク121のうちの1つ)を作成する命令を受信することと、命令を受信したことに応答して、仮想ネットワークを作成することと、スイッチ構成マネージャによって、命令に基づいて、仮想ネットワークをスイッチに関連付けるようにスイッチ(たとえば、TORスイッチ105)を構成することと、を含む。
【0101】
一実施形態では、仮想ネットワークは第1の仮想ネットワークであり、この方法は、クライアントデバイスのユーザインターフェースから、ネットワークのグループを作成する要求を受信することであって、グループは第1の仮想ネットワークを含む、受信することと、要求を受信したことに応答して、ネットワークのグループを作成することと、ユーザインターフェースで行われたユーザ選択を受信したことに応答して、ネットワークのグループをラック(たとえば、ラック105及び157)のグループに接続することであって、接続することは、各ラック内のそれぞれのサーバによる、ネットワークのグループ内の各ネットワーク(たとえば、仮想ネットワーク121)へのアクセスを提供するように、ラックのグループ内の各ラックのTORスイッチ(たとえば、TORスイッチ105及び157)のポートを自動的に構成することを含む、接続することと、をさらに含む。
【0102】
一実施形態では、方法は、ネットワークを介して、少なくとも1つのデータセンターの第1のラックを構成する要求を受信することと、ネットワークを介して、第1のラックに取り付けられた第1のコンピューティングデバイスによってアクセスされる少なくとも1つの第1の仮想ネットワークの構成データを受信することと、構成データを受信したことに応答して、第1のラックの第1のTORスイッチを構成することであって、構成することは、少なくとも1つの第1の仮想ネットワークを第1のTORスイッチに関連付けることを含む、構成することと、を含む。
【0103】
一実施形態では、この方法は、クライアントデバイスのユーザインターフェースから、ネットワークのグループを作成する要求を受信することであって、グループは少なくとも1つの仮想ネットワークを含む、受信することと、要求を受信したことに応答して、ネットワークのグループを作成することと、ユーザインターフェースで行われた構成選択を受信したことに応答して、ネットワークのグループをラックのグループに接続することであって、接続することは、各ラック内のそれぞれのサーバによる、ネットワークのグループ内の各ネットワークへのアクセスを提供するように、ラックのグループ内の各ラックのTORスイッチのポートを自動的に構成することを含む、接続することと、をさらに含む。
【0104】
一実施形態では、システムは、少なくとも1つのデータセンターにおいてデータを伝送するためのネットワークファブリックであって、少なくとも1つのデータセンターは、ネットワークファブリックに接続されるサーバを取り付けるためのラックを含む、ネットワークファブリックと、ネットワークファブリックに接続されたネットワークスイッチ(たとえば、TORスイッチ105、157)であって、各ネットワークスイッチは、ラックのうちのそれぞれのラックに対応する、ネットワークスイッチと、ネットワークスイッチの構成データを記憶するためのデータストア(たとえば、データストア131)と、少なくとも1つの処理デバイスと、命令を含むメモリと、を備え、命令は、少なくとも1つの処理デバイスに、クライアントデバイスからポータルを介して、ネットワークファブリックによって接続された複数のラック(たとえば、ラック103、155)でサポートされるコンピューティング環境を作成する要求を受信することであって、複数のラックは、コンピューティング環境内の第2のラックの物理サーバと通信するように構成される物理サーバを取り付けるための第1のラックを含む、受信することと、コンピューティング環境内に少なくとも1つの仮想ネットワーク(たとえば、仮想ネットワーク121)を作成することと、少なくとも1つの仮想ネットワークを物理サーバに関連付けるようにネットワークスイッチのうちの少なくとも1つを構成することと、を行うように指示するよう構成される。
【0105】
一実施形態では、命令は、少なくとも1つの処理デバイスに、クライアントデバイスのユーザインターフェースを介して、コンピューティング環境内の新しいコンピューティングデバイスに関連付けられた構成選択を受信することと、構成選択に基づいて、処理リソース、メモリリソース、及びストレージリソースを構成することと、新しいコンピューティングデバイスをコンピューティング環境にデプロイすることであって、新しいコンピューティングデバイスは、少なくとも1つの仮想ネットワークに接続された仮想サーバを実行するように構成される、デプロイすることと、を行うように指示するようさらに構成される。
【0106】
図6は、様々な実施形態で使用することができるコンピューティングデバイスのブロック図を示している。
図6では様々なコンポーネントを示しているが、それらのコンポーネントを相互接続する特定のアーキテクチャまたは方法を表すことを意図していない。コンポーネントの数がより少ないまたは多い他のシステムも使用され得る。一実施形態では、コンピューティングデバイスはサーバである。一実施形態では、いくつかのサーバが使用され得、各サーバが別々のコンピューティングシステム上に存在し得、あるいは1つまたは複数のサーバが、様々な組み合わせで、同じコンピューティングデバイス上で実行され得る。
【0107】
図6において、コンピューティングデバイス8201は、マイクロプロセッサ(複数可)8203及びメモリ8208を相互に接続する相互接続8202(たとえば、バス及びシステムコアロジック)を含む。マイクロプロセッサ8203は、
図6の例ではキャッシュメモリ8204に結合される。
【0108】
相互接続8202は、マイクロプロセッサ(複数可)8203及びメモリ8208を相互に接続し、また、それらをディスプレイコントローラ及びディスプレイデバイス8207に相互接続し、入力/出力コントローラ(複数可)8206を介して入力/出力(I/O)デバイス8205などの周辺デバイスに相互接続する。典型的なI/Oデバイスには、マウス、キーボード、モデム、ネットワークインターフェース、プリンタ、スキャナ、ビデオカメラ、及び当技術分野でよく知られている他のデバイスが含まれる。
【0109】
相互接続8202は、様々なブリッジ、コントローラ、及び/またはアダプタを介して互いに接続された1つまたは複数のバスを含み得る。一実施形態では、I/Oコントローラ8206は、USB周辺機器を制御するためのUSB(ユニバーサルシリアルバス)アダプタ、及び/またはIEEE1394周辺機器を制御するためのIEEE1394バスアダプタを含む。
【0110】
メモリ8208は、ROM(読み取り専用メモリ)、揮発性RAM(ランダムアクセスメモリ)、及び不揮発性メモリ、たとえば、ハードドライブ、フラッシュメモリなどを含み得る。
【0111】
揮発性RAMは、典型的には、メモリ内のデータをリフレッシュまたは保持するために継続的に電力を必要とするダイナミックRAM(DRAM)として実装される。不揮発性メモリは、典型的には、ソリッドステートドライブ、磁気ハードドライブ、磁気光学ドライブ、光学ドライブ(DVD RAMなど)、またはシステムから電力が取り除かれた後もデータを保持する他のタイプのメモリシステムである。不揮発性メモリはまた、ランダムアクセスメモリであり得る。
【0112】
不揮発性メモリは、コンピューティングデバイスの残りのコンポーネントに直接結合されたローカルデバイスとすることができる。モデムまたはイーサネットインターフェースなどのネットワークインターフェースを介してコンピューティングデバイスに結合されたネットワークストレージデバイスなど、コンピューティングデバイスから離れた不揮発性メモリも使用することができる。
【0113】
一実施形態では、
図6に示すコンピューティングデバイスは、コンピューティングデバイス115、コンピューティングデバイス125、TORスイッチ105、サーバ107、及び/または他のサーバを実装するために使用される。
【0114】
他の実施形態では、
図6に示すコンピューティングデバイスは、アプリケーションがインストールされたまたはインストールされるユーザ端末またはモバイルデバイスを実装するために使用される。ユーザ端末は、たとえば、ラップトップまたはノートブックコンピュータ、あるいはパーソナルデスクトップコンピュータの形態であり得る。
【0115】
いくつかの実施形態では、1つまたは複数のサーバは、複数のデータ処理システムのピアツーピアネットワーク、または分散コンピューティングシステムのネットワークのサービスと置き換えることができる。ピアツーピアネットワーク、または分散コンピューティングシステムは、集合的にコンピューティングデバイスと見なすことができる。
【0116】
本開示の実施形態は、マイクロプロセッサ(複数可)8203及び/またはメモリ8208を介して実装することができる。たとえば、説明した機能は、部分的にマイクロプロセッサ(複数可)8203内のハードウェアロジックを介して、また、部分的にメモリ8208に記憶された命令を使用して実装することができる。いくつかの実施形態は、マイクロプロセッサ(複数可)8203を使用して、メモリ8208に記憶された追加の命令なしで実装される。いくつかの実施形態は、1つまたは複数の汎用マイクロプロセッサ(複数可)8203によって実行するための、メモリ8208に記憶された命令を使用して実装される。したがって、本開示は、ハードウェア及び/またはソフトウェアの特定の構成に限定されない。
【0117】
図7は、一実施形態による、コンピューティングデバイスのブロック図を示している。一実施形態では、
図7のコンピューティングデバイスは、クライアントデバイス137を実装するために使用される。
図7において、コンピューティングデバイスは、提示デバイス9229、ユーザ入力デバイス9231、プロセッサ9233、メモリ9227、位置識別ユニット9225、及び通信デバイス9223を接続する相互接続9221を含む。
【0118】
図7では、位置識別ユニット9225は、地理的場所を識別するために使用される。位置識別ユニット9225は、コンピューティングデバイスの現在の位置を自動的に特定するための、全地球測位システム(GPS)受信機などの衛星測位システム受信機を含み得る。
【0119】
図7では、通信デバイス9223は、サーバと通信して、構成データ及び/またはコンピューティングデバイスのカメラからの画像を含むデータを提供するように構成される。一実施形態では、ユーザ入力デバイス9231は、ユーザデータまたはコンテンツを受け取るまたは生成するように構成される。ユーザ入力デバイス9231は、テキスト入力デバイス、静止画像カメラ、ビデオカメラ、及び/またはサウンドレコーダなどを含み得る。
結び
【0120】
本開示は、上述の方法を実行し、上述のシステムを実装する様々なデバイスを含み、上述のシステムには、これらの方法を実行するデータ処理システムが含まれ、本開示はまた、データ処理システム上で実行された場合に、システムにこれらの方法を実行させる命令を含むコンピュータ可読媒体を含む。
【0121】
本説明及び図面は例示的なものであり、限定的なものと解釈されるべきではない。完全な理解を提供するために、多数の具体的な詳細を説明している。しかしながら、特定の例では、説明を分かりにくくしないように、よく知られている詳細または従来の詳細については説明していない。本開示の一実施形態(one embodiment)または一実施形態(an embodiment)への参照は、必ずしも同じ実施形態への参照ではなく、そのような参照は少なくとも1つを意味する。
【0122】
本明細書における「一実施形態(one embodiment)」または「一実施形態(an embodiment)」への参照は、その実施形態に関連して説明する特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書中の様々な場所における「一実施形態では(in one embodiment)」という句の出現は、必ずしも全てが同じ実施形態を指しているわけではなく、他の実施形態とは相互に排他的な別個または代替の実施形態を指しているわけでもない。さらに、いくつかの実施形態によって示され得るが、他の実施形態によっては示されない様々な特徴を説明している。同様に、いくつかの実施形態の要件であり得るが、他の実施形態の要件ではない様々な要件を説明している。
【0123】
本明細書で使用する場合、「~に結合された」は、一般に、電気、光、磁気などの接続を含む、有線または無線を問わない、間接的な通信接続または直接的な通信接続(たとえば、介在するコンポーネントのないもの)とすることができるコンポーネント間の接続を指す。
【0124】
本説明では、様々な機能及び動作は、説明を簡略化にするためにソフトウェアコードによって実行されるもの、またはそれによって引き起こされるものとして説明し得る。しかしながら、そのような表現が意味することは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、グラフィックプロセッサ、及び/またはフィールドプログラマブルゲートアレイ(FPGA)などの1つまたは複数のプロセッサによりコードを実行することによって、それらの機能がもたらされることであるということを当業者は認識するであろう。あるいは、または組み合わせて、これらの機能及び動作は、ソフトウェア命令の有無にかかわらず、専用の回路(たとえば、論理回路)を使用して実装することができる。実施形態は、ハードワイヤード回路を使用してソフトウェア命令なしで、またはソフトウェア命令と組み合わせて実装することができる。したがって、本技術は、ハードウェア回路及びソフトウェアのいずれの特定の組み合わせにも限定されず、コンピューティングデバイスによって実行される命令のいずれの特定のソースにも限定されない。
【0125】
いくつかの実施形態は、完全に機能するコンピュータ及びコンピュータシステムで実装することができるが、様々な実施形態は、様々な形態のコンピューティング製品として配布されることが可能であり、実際に配布を実施するために使用される特定のタイプの機械またはコンピュータ可読媒体に関わりなく、適用されることが可能である。
【0126】
開示した少なくともいくつかの態様は、少なくとも部分的にソフトウェアで具現化することができる。すなわち、本技術は、コンピューティングデバイスまたは他のシステムにおいて、マイクロプロセッサなどのそのプロセッサが、ROM、揮発性RAM、不揮発性メモリ、キャッシュ、またはリモートストレージデバイスなどのメモリに含まれる命令のシーケンスを実行したことに応答して、実施され得る。
【0127】
実施形態を実装するために実行されるルーチンは、オペレーティングシステム、ミドルウェア、サービス提供プラットフォーム、SDK(ソフトウェア開発キット)コンポーネント、ウェブサービス、または「コンピュータプログラム」と呼ばれる他の特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスの一部として実装され得る。これらのルーチンの呼び出しインターフェースは、API(アプリケーションプログラミングインターフェース)としてソフトウェア開発コミュニティに公開することができる。コンピュータプログラムは、典型的には、コンピュータ内の様々なメモリ及びストレージデバイスに様々な時間に配置され、コンピュータ内の1つまたは複数のプロセッサによって読み出されて実行された場合に、様々な態様を含む要素を実行するために必要な動作をコンピュータに実施させる1つまたは複数の命令を含む。
【0128】
機械可読媒体は、コンピューティングデバイスによって実行された場合に、このデバイスに様々な方法を実施させるソフトウェア及びデータを記憶するために使用することができる。実行可能なソフトウェア及びデータは、たとえば、ROM、揮発性RAM、不揮発性メモリ、及び/またはキャッシュを含む様々な場所に記憶され得る。このソフトウェア及び/またはデータの各部分は、これらのストレージデバイスのいずれか1つに記憶され得る。さらに、データ及び命令は、集中型サーバまたはピアツーピアネットワークから取得することができる。データ及び命令の異なる部分は、異なる時間に、及び異なる通信セッションで、または同じ通信セッションで異なる集中型サーバ及び/またはピアツーピアネットワークから取得することができる。データ及び命令は、アプリケーションの実行前に、その全体を取得することができる。あるいは、データ及び命令の各部分は、実行のために必要となったときに、ジャストインタイムで動的に取得することができる。したがって、特定の瞬間にデータ及び命令の全体が機械可読媒体上にある必要はない。
【0129】
コンピュータ可読媒体の例には、とりわけ、記録可能及び記録不可能なタイプの媒体、たとえば、揮発性及び不揮発性メモリデバイス、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリデバイス、ソリッドステートドライブ記憶媒体、リムーバブルディスク、磁気ディスク記憶媒体、光学記憶媒体(たとえば、コンパクトディスク読み取り専用メモリ(CD ROM)、デジタルバーサタイルディスク(DVD)など)が含まれるが、これらに限定されない。コンピュータ可読媒体は、命令を記憶し得る。
【0130】
一般に、有形または非一時的な機械可読媒体は、機械(たとえば、コンピュータ、モバイルデバイス、ネットワークデバイス、パーソナルデジタルアシスタント、製造ツール、1つまたは複数のプロセッサのセットを有するデバイスなど)によってアクセス可能な形態で情報を提供する(たとえば、記憶する)メカニズムを含む。
【0131】
様々な実施形態では、本技術を実装するために、ハードワイヤード回路がソフトウェア命令と組み合わせて使用され得る。したがって、本技術は、ハードウェア回路及びソフトウェアのいずれの特定の組み合わせにも限定されず、コンピューティングデバイスによって実行される命令のいずれの特定のソースにも限定されない。
【0132】
図面の一部ではいくつかの動作を特定の順序で示しているが、順序に依存しない動作は並べ替えられ得、他の動作は組み合わせられたり、分割されたりし得る。いくつかの並べ替えまたは他のグループ化について具体的に言及しているが、その他は当業者には明らかであるので、代替案の網羅的なリストは提示しない。さらに、段階(stages)がハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせで実装できることを認識されたい。
【0133】
上述の明細書では、本開示をその特定の例示的な実施形態に関して説明してきた。以下の特許請求の範囲に記載するより広範な思想及び範囲から逸脱することなく、様々な修正が加えられ得ることは明らかであろう。したがって、本明細書及び図面は、限定的な意味ではなくて例示的な意味のものとみなされるべきである。
【0134】
本明細書に記載した様々な実施形態は、多種多様な異なるタイプのコンピューティングデバイスを使用して実装することができる。本明細書で使用する場合、「コンピューティングデバイス」の例には、サーバ、集中型コンピューティングプラットフォーム、複数のコンピューティングプロセッサ及び/またはコンポーネントのシステム、モバイルデバイス、ユーザ端末、車両、パーソナル通信デバイス、ウェアラブルデジタルデバイス、電子キオスク、汎用コンピュータ、電子ドキュメントリーダー、タブレット、ラップトップコンピュータ、スマートフォン、デジタルカメラ、住宅用家電製品、テレビ、またはデジタル音楽プレーヤーが含まれるが、これらに限定されない。コンピューティングデバイスの追加の例には、いわゆる「モノのインターネット」(IOT)の一部であるデバイスが含まれる。そのような「モノ」は、それらの所有者または管理者と時折やり取りし得、所有者または管理者は、モノを監視したり、これらのモノの設定を変更したりし得る。場合によっては、そのような所有者または管理者は、「モノ」デバイスに関してユーザの役割を果たす。いくつかの例では、ユーザの主要なモバイルデバイス(たとえば、Apple iPhone(登録商標))は、ユーザによって装着されるペアリングされた「モノ」デバイス(たとえば、Apple watch)に関する管理者サーバであり得る。
【0135】
いくつかの実施形態では、コンピューティングデバイスは、たとえば、デスクトップコンピュータ、ラップトップコンピュータ、ネットワークサーバ、モバイルデバイス、またはメモリ及び処理デバイスを含む他のコンピューティングデバイスとして実装されるホストシステムとすることができる。ホストシステムは、メモリサブシステムを含むか、またはこれに結合することができ、それによってホストシステムは、メモリサブシステムに対してデータを読み書きすることができる。ホストシステムは、物理ホストインターフェースを介してメモリサブシステムに結合することができる。
【0136】
物理ホストインターフェースの例には、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバチャネル、シリアル接続SCSI(SAS)、ダブルデータレート(DDR)メモリバスなどが含まれるが、これらに限定されない。物理ホストインターフェースを使用して、ホストシステムとメモリサブシステムとの間でデータを伝送することができる。ホストシステムはさらに、メモリサブシステムがPCIeインターフェースによってホストシステムと結合される場合に、NVMエクスプレス(NVMe)インターフェースを利用して、メモリサブシステムのメモリコンポーネントにアクセスすることができる。物理ホストインターフェースは、メモリサブシステムとホストシステムとの間で制御、アドレス、データ、及び他の信号を受け渡すためのインターフェースを提供することができる。一般に、ホストシステムは、同じ通信接続、複数の別々の通信接続、及び/または通信接続の組み合わせを介して、複数のメモリサブシステムにアクセスすることができる。
【0137】
一実施形態では、ホストシステムは、処理デバイス及びコントローラを含む。ホストシステムの処理デバイスは、たとえば、マイクロプロセッサ、グラフィックス処理ユニット、中央処理装置(CPU)、FPGA、プロセッサの処理コア、実行ユニットなどとすることができる。一例では、処理デバイスは、FPGAとマイクロプロセッサとを組み合わせた単一のパッケージとすることができ、マイクロプロセッサがほとんどの処理を行うが、ある所定の特定のタスクをFPGAブロックに渡す。一例では、処理デバイスは、論理合成を使用して実装されるマイクロプロセッサコアであるソフトマイクロプロセッサ(ソフトコアマイクロプロセッサまたはソフトプロセッサとも呼ばれるもの)である。ソフトマイクロプロセッサは、プログラマブルロジック(たとえば、ASIC、FPGA、またはCPLD)を含む様々な半導体デバイスを介して実装することができる。
【0138】
いくつかの例では、コントローラは、メモリコントローラ、メモリ管理ユニット、及び/またはイニシエータである。一例では、コントローラは、ホストシステムとメモリサブシステムとの間で結合されたバスを介した通信を制御する。
【0139】
一般に、コントローラは、メモリコンポーネントへの所望のアクセスのためのコマンドまたは要求をメモリサブシステムに送ることができる。コントローラは、メモリサブシステムと通信するためのインターフェース回路をさらに含むことができる。インターフェース回路は、メモリサブシステムから受け取った応答をホストシステム用の情報に変換することができる。ホストシステムのコントローラは、メモリサブシステムのコントローラと通信して、メモリコンポーネントでのデータの読み出し、データの書き込み、またはデータの消去などの動作、及び他のそのような動作を実行することができる。
【0140】
いくつかの例では、コントローラを処理デバイスと同じパッケージに統合することができる。他の例では、コントローラは、処理デバイスのパッケージから分けられる。コントローラ及び/または処理デバイスは、1つまたは複数の集積回路ならびに/あるいはディスクリートコンポーネント、バッファメモリ、キャッシュメモリ、あるいはそれらの組み合わせなどのハードウェアを含むことができる。コントローラ及び/または処理デバイスは、マイクロコントローラ、専用の論理回路(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、または他の適切なプロセッサとすることができる。
【0141】
メモリコンポーネントは、異なるタイプの不揮発性メモリコンポーネント及び/または揮発性メモリコンポーネントの任意の組み合わせを含むことができる。不揮発性メモリコンポーネントの例には、否定論理積(NAND)タイプのフラッシュメモリが含まれる。各メモリコンポーネントは、シングルレベルセル(SLC)またはマルチレベルセル(MLC)(たとえば、トリプルレベルセル(TLC)またはクアッドレベルセル(QLC))などのメモリセルの1つまたは複数のアレイを含むことができる。いくつかの実施形態では、特定のメモリコンポーネントは、メモリセルのSLC部分及びMLC部分の両方を含むことができる。各メモリセルは、ホストシステムによって使用される1ビット以上のデータ(データブロックなど)を記憶することができる。NANDタイプのフラッシュメモリなどの不揮発性メモリコンポーネントについて説明しているが、メモリコンポーネントは、揮発性メモリなどの他の任意のタイプのメモリに基づくことができる。
【0142】
いくつかの実施形態では、メモリコンポーネントは、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、相変化メモリ(PCM)、マグネトランダムアクセスメモリ(MRAM)、スピン転移トルク(STT)-MRAM、強誘電体ランダムアクセスメモリ(FeTRAM)、強誘電体RAM(FeRAM)、導電性ブリッジRAM(CBRAM)、抵抗性ランダムアクセスメモリ(RRAM)、酸化物ベースのRRAM(OxRAM)、否定論理和(NOR)フラッシュメモリ、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、ナノワイヤベースの不揮発性メモリ、メモリスタテクノロジを組み込んだメモリ、及び不揮発性メモリセルのクロスポイントアレイとすることができるが、これらに限定されない。不揮発性メモリのクロスポイントアレイは、バルク抵抗の変化に基づいて、積層可能な交差格子状のデータアクセスアレイと組み合わせて、ビット記憶を行うことができる。さらに、多くのフラッシュベースのメモリとは対照的に、クロスポイント不揮発性メモリは、不揮発性メモリセルを事前に消去せずに不揮発性メモリセルをプログラムすることができるインプレース書き込み動作を実行することができる。さらに、メモリコンポーネントのメモリセルは、データを記憶するために使用されるメモリコンポーネントの単位を指すことができるメモリページまたはデータブロックとしてグループ化することができる。
【0143】
メモリサブシステムのコントローラは、メモリコンポーネントと通信して、(たとえば、コントローラによってコマンドバスでスケジュールされたコマンドに応答して)メモリコンポーネントでのデータの読み出し、データの書き込み、またはデータの消去などの動作、及び他のそのような動作を実行することができる。コントローラは、ローカルメモリに記憶された命令を実行するように構成される処理デバイス(プロセッサ)を含むことができる。コントローラのローカルメモリは、メモリサブシステムとホストシステムとの間の通信の処理を含む、メモリサブシステムの動作を制御する様々な処理、動作、ロジックフロー、及びルーチンを実行するための命令を記憶するように構成される組み込みメモリを含むことができる。いくつかの実施形態では、ローカルメモリは、メモリポインタ、フェッチされたデータなどを記憶するメモリレジスタを含むことができる。ローカルメモリはまた、マイクロコードを記憶するための読み取り専用メモリ(ROM)を含むことができる。例示的なメモリサブシステムはコントローラを含むが、本開示の他の実施形態では、メモリサブシステムはコントローラを含まなくてもよく、代わりに外部制御(たとえば、外部ホストによって、またはメモリサブシステムとは別のプロセッサもしくは他のコントローラによって提供されるもの)に依存することができる。
【0144】
一般に、コントローラはホストシステムからコマンドまたはオペレーションを受け取ることができ、コマンドまたはオペレーションを命令または適切なコマンドに変換して、メモリコンポーネントへの所望のアクセスを実現することができる。コントローラは、たとえば、ウェアレベリング動作、ガベージコレクション動作、エラー検出及びエラー訂正コード(ECC)動作、暗号化動作、キャッシュ動作、ならびにメモリコンポーネントに関連付けられた論理ブロックアドレスと物理ブロックアドレスとの間のアドレス変換などの他の動作を担当することができる。コントローラは、物理ホストインターフェースを介してホストシステムと通信するためのホストインターフェース回路をさらに含むことができる。ホストインターフェース回路は、ホストシステムから受け取ったコマンドをメモリコンポーネントにアクセスするコマンド命令に変換するとともに、メモリコンポーネントに関連する応答をホストシステム用の情報に変換することができる。
【0145】
メモリサブシステムはまた、図示していない追加の回路またはコンポーネントを含むことができる。いくつかの実施形態では、メモリサブシステムは、キャッシュまたはバッファ(たとえば、DRAMまたはSRAM)と、アドレスをコントローラから受け取り、そのアドレスをデコードしてメモリコンポーネントにアクセスすることができるアドレス回路(たとえば、行デコーダ及び列デコーダ)とを含むことができる。
【国際調査報告】