【文献】
堀 賢治、他2名,ネットワークの動的な構成に対応したIPルータ自動設定方式の実装と評価 Implementation and Evaluation of Automatic Configuration Method of IP Routers in Dynamically Changing Network,情報処理学会研究報告 2004-DSM-33,日本,社団法人情報処理学会,2004年 5月14日,第2004巻 第46号,pp.99-104
【文献】
松浦 孝康,ホントがわかる 実学的TCP/IP講座 第2回,日経NETWORK 第25号,日本,日経BP社,2002年 4月22日,pp.084-089
(58)【調査した分野】(Int.Cl.,DB名)
前記第2のネットワークアドレス割り付けが、前記コンピューティングデバイスの前記再構成に準じて、前記コンピューティングデバイスによってホストされるマシンインスタンスの増加した量に少なくとも部分的に基づいて、次いで割り当てられる、請求項1に記載のシステム。
前記第2のネットワークアドレス割り付けが、前記コンピューティングデバイスと関連付けられたネットワークアドレス割り当て速度に少なくとも部分的に基づいて、次いで割り当てられる、請求項1に記載のシステム。
前記第1のネットワークアドレス割り付けが、前記コンピューティングデバイスの各々に対するそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づく、請求項1に記載のシステム。
前記第2のネットワークアドレス割り付けが、前記第1のネットワークアドレス割り付けとの前記第2のネットワークアドレス割り付けの隣接関係に少なくとも部分的に基づいて選択される、請求項1に記載のシステム。
前記第1のネットワークアドレス割り付けおよび前記第2のネットワークアドレス割り付けが、前記第2のネットワークアドレス割り付けが実装されたことに応答して、前記サブ分割部分に割り当てられる、請求項1に記載のシステム。
前記第1のネットワークアドレス割り付けが、前記第2のネットワークアドレス割り付けが実装されたことに応答して前記サブ分割部分に割り当てられることがもはやない、請求項1に記載のシステム。
少なくとも1つのコンピューティングデバイスによって、ネットワークのサブ分割部分であって、ネットワークアドレス割り付けを割り当てられる、サブ分割部分に含まれる複数のコンピューティングデバイスのうちの少なくとも1つの再構成を示すデータを、獲得することであって、前記再構成は前記少なくとも1つのコンピューティングデバイスによってホストされるマシンインスタンスの量を変更する、獲得することと、
前記少なくとも1つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの第1のサブ集合の割り当てを解除するかどうかを、前記コンピューティングデバイスのうちの前記少なくとも1つの前記再構成に少なくとも部分的に基づいて判定することと、
前記少なくとも1つのコンピューティングデバイスによって、前記判定に応答して、前記ネットワークアドレス割り付けの前記第1のサブ集合の前記割り当てを解除することと、
前記少なくとも1つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの代わりに前記ネットワークアドレス割り付けの第2のサブ集合を公示するために、前記サブ分割部分に対するルータを再構成することと、を含む、
方法。
前記再構成が、前記コンピューティングデバイスのうちの前記少なくとも1つによってホストされるマシンインスタンスの量の減少に対応する、請求項11に記載の方法。
前記少なくとも1つのコンピューティングデバイスによって、マシンインスタンスの前記量が前記ネットワークアドレス割り付けの前記第1のサブ集合を解除するしきい値を満たすかどうかを判定することをさらに含む、請求項12に記載の方法。
前記ルータを自動的に再構成する前に、前記少なくとも1つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの前記第2のサブ集合中の第2のネットワークアドレスの代わりに、前記ネットワークアドレス割り付けの前記第1のサブ集合中の第1のネットワークアドレスを用いるために、前記サブ分割部分中の前記コンピューティングデバイスのうちの1つを自動的に再構成することをさらに含む、請求項11に記載の方法。
前記少なくとも1つのコンピューティングデバイスにおいて、前記サブ分割部分に含まれる前記コンピューティングデバイスのうちの少なくとも1つの後続の再構成を示すデータを獲得することと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記コンピューティングデバイスのうちの前記少なくとも1つの前記後続の再構成に少なくとも部分的に基づいて、別のネットワークアドレス割り付けを前記サブ分割部分に割り当てることと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記ネットワークアドレス割り付けの前記第2のサブ集合に加えて、他のネットワークアドレス割り付けを公示するために、前記サブ分割部分に対する前記ルータを自動的に再構成することと、をさらに含む、請求項11に記載の方法。
【発明を実施するための形態】
【0007】
本開示の様々な態様は、次の図面を参照すればより良く理解することが可能である。図面中の構成要素は、必ずしも原寸に比例していないが、その代わり、本開示の原理を明瞭に示すことを強調している。そのうえ、図面中で、同様の数値は、いくつかの図面にわたって対応する部分を示している。
【0008】
本開示は、ネットワークアドレスを、デマンドに基づいてネットワークデバイスに動的に割り当てることに関する。ネットワークアドレスの在庫枯渇は、インターネットプロトコル(IP)バージョン4と、潜在的には他の通信プロトコルにとって、深刻な問題である。公的アクセス可能なIPアドレスは入手するのが困難であり、それらの割り当ては注意深く管理される。私的IPネットワークでさえも、アドレス在庫枯渇問題に直面している。大規模な私的ネットワークは、一般的には、例えば、「10.0.0.0/8」アドレス空間(クラスレスドメイン間ルーティング(CIDR)表記法によって表される)を用いるが、これは、8ビットのネットワークプレフィックスと、24ビットのホスト識別子とを用い、ほぼ1千700万のアドレス(約2
24個のアドレス)を提供する。
【0009】
このようなかなりの量は、組織にとっては無尽蔵に見え得る。しかしながら、ネットワークアドレス割り付けが良好に管理されないと、アドレス枯渇問題が起こり得る。例えば、組織は、組織のデータセンター中の各々のラックに対して「/22」ネットワーク用のアドレス空間を割り当てることを深く考えずに選定し得る。「/22」ネットワークは、約1024(すなわち、2
10)のアドレスを提供する。このような割り当て方式を用いる組織は、「10.0.0.0/8」アドレス空間内で「/22」の割り当て量を有する16,384(すなわち2
14)のラックに制限されうる。このような制限は、大きな組織にとっては大問題を提示し得る。
【0010】
この問題は、ネットワークをさらに階層的に構造化した場合に悪化し得る。例えば、ネットワーク中のある数の集約ルータが存在して、これらの集約ルータの各々の後方にある量のラックが存在するということがあり得る。各々の集約ルータに対して「/15」のネットワークが割り当てられると仮定する。これで、各々に1024のアドレスが割り当てられる128(すなわち2
7)のラックにさらに分割される各々のルータに約131,072(すなわち2
17)のアドレスが割り当てられることになる。また、「10.0.0.0/8」アドレス空間内に、128(すなわち2
7)個のこのような集約ルータが存在しうる。この総数の集約ルータおよび/または集約ルータ1つ当たりのこの数のラックに、拡張可能性の問題が起こり得る。
【0011】
上述した例で検討されているような厳格なネットワークアドレス割り付け方式は、一部のラックが1024未満のアドレスを用いている場合には意味をなさないということがあり得る。特定のラックがたった256のアドレスしか用いない場合、1024のアドレスをこの特定のラックに対して割り当てることは無駄でありうる。しかしながら、ラックを初期構成するとき、特に可変数のマシンインスタンスがラック中で用いられ得るときには、どれほど多くのアドレスが究極的に用いられるかは、周知であり得ない。1024などの多量の値を上限として用いると、それにより、割り当てが非効率になり得る。さらに、一部の場合では、この上限が、密に構成されたラックにとっては低すぎるということがあり得る。
【0012】
本開示の様々な実施形態は、これらの非効率性および拡張可能性の難問を克服するために、デマンドに基づいてネットワークアドレスの動的な割り当てを提供する。ネットワークアドレスの手動の固定した構成は、可変数のマシンインスタンスを有するネットワークサブ分割部分内でのアドレス使用法の動的な性質を認識する自動的で動的な構成に置き換えられ得る。初期数のネットワークアドレスが、ラックまたは他のネットワークサブ分割部分の初期の物理的構成に従って割り当てられ得る。さらなるネットワークアドレスの割り当てが、デマンドを満たすために必要なときに、ネットワークサブ分割部分に対してなされ得る。次の解説において、本システムおよびその構成要素の概説を提供し、その後でそれらの動作を解説する。
【0013】
図1を参照して、様々な実施形態に関わるネットワーク化された環境100が示されている。ネットワーク化された環境100は、ネットワーク109を介してデータ通信状態にあるホストされたコンピューティング環境103とコンピューティング環境106とを含む。ネットワーク109は、例えば、インターネット、イントラネット、エクストラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、または他の適切なネットワークなどまたは2つ以上のこのようなネットワークの任意の組み合わせを含む。
【0014】
ホストされたコンピューティング環境103は、1つ以上の集約ルータ115を介してネットワーク109に対して接続され得る複数のラック112a、...、112Nを備え得る。「ラック」と記述されるが、ラック112は、ホストされたコンピューティング環境103の他のサブ分割部分、例えば、データセンター、データセンター内の部屋、ラックの群、コンピュータ装置の群などに対応し得る。ラック112の各々が、複数のコンピューティングデバイス118a、...、118Nと、ルータ121とを含み得る。ルータ121は、トップオブラック(TOR)ルータ、または、それぞれのラック112に対してネットワーク109への接続性を提供する他のデバイスに対応し得る。ルータ121は、ルーティング情報プロトコル(RIP)、開放最短経路第一(OSPF)、または他のルーティングプロトコルなどのルーティングプロトコルを用い得る。ルータ121は、一部の場合では、公示することが可能な分離したネットワークアドレス割り付けの数によって制約され得る。
【0015】
コンピューティングデバイス118aは、ユーティリティコンピューティングモデルに従ってコンピューティングサービスを顧客に提供するために用いられるプロセッサおよびメモリ回路を有するコンピューティングデバイスに対応し得る。この目的のため、特定のコンピューティングデバイス118aは、例えば複数のマシンインスタンス124a、・・・、124Nを含み得る。コンピューティングデバイス118内のマシンインスタンス124は、1人の顧客または複数の顧客に対してホストされ得る。説明されるように、異なるマシンインスタンス124は、異なる特徴を有し得る。所与のコンピューティングデバイス118は、任意の数のマシンインスタンス124を有するように動的に再構成され得る。
【0016】
異なるラック112は、異なるタイプおよび量のコンピューティングデバイス118を有し得ることに留意されたい。一部のコンピューティングデバイス118は、比較的より多くのコンピューティング資源、例えば、より多くのメモリ、より強力なプロセッサ(複数可)、より速いデータ記憶など、またはコンピューティング資源の異なる組み合わせを有し得る。さらに、コンピューティングデバイス118は、異なるタイプおよび量のマシンインスタンス124を有し得る。
【0017】
ラック112の各々は、ネットワーク109に対する接続性のための1つ以上のネットワークアドレス割り付けを割り当てられ得る。一部の例では、このようなネットワークアドレス割り付けは、それぞれの集約ルータ115に与えられる割り付けに集約され、それにより、ホストされるコンピューティング環境103中のネットワーク109の部分に対して階層的構造を提供し得る。ホストされるコンピューティング環境103は、異なるラック112またはネットワーク109のサブ分割部分にサービス提供する複数の集約ルータ115を有し得る。集約ルータ115は、OSPFまたは他のルーティングプロトコルなどのルーティングプロトコルを用い得る。集約ルータ115は、一部の場合では、公示することが可能な分離したネットワークアドレス割り付けの数によって制約され得る。
【0018】
コンピューティング環境106は、例えば、サーバコンピュータまたは、コンピューティング能力を提供する他のシステムを備え得る。代替的には、コンピューティング環境106は、例えば、1つ以上のサーババンクもしくはコンピュータバンクまたは他の配列に配列された用いられ得る複数のコンピューティングデバイスを用い得る。このようなコンピューティングデバイスは、単一の設置物中に置かれ得るまたは多くの異なる地理的位置に分配され得る。例えば、コンピューティング環境106は、クラウドコンピューティング資源、グリッドコンピューティング資源、および/または他の任意の分配されたコンピューティング装置を一緒に備え得る複数のコンピューティングデバイスを含み得る。一部の例では、コンピューティング環境106は、処理、ネットワーク、記憶、または他のコンピューティング関連の資源の配分された能力が時間と共に変化し得る柔軟性のあるコンピューティング資源に対応し得る。
【0019】
様々なアプリケーションおよび/または他の機能性が、様々な実施形態に従って、コンピューティング環境106中で実行され得る。また、様々なデータが、コンピューティング環境106にとってアクセス可能なデータストア125に記憶される。データストア125は、理解することが可能なように、複数のデータストア125によって表され得る。データストア125に記憶されるデータは、例えば、以下に説明する様々なアプリケーションおよび/または機能エンティティの動作と関連付けられる。
【0020】
コンピューティング環境106上で実行される構成要素は、例えば、アドレス割り付けサービス127、ネットワーク監視サービス130、および、本明細書には詳述されない他のアプリケーション、サービス、プロセス、システム、エンジン、もしくは機能性を含む。アドレス割り付けサービス127は、ホストされるコンピューティング環境103に対するネットワーク109上のアドレスのアドレス割り付け割り当て131を生成するために実行される。アドレス割り付け割り当て131は、初期割り当て(例えば、ラック112が初期構成されるとき)、またはデマンド(例えば、ラック112中のコンピューティングデバイス118の再構成によって作成されるデマンド)に基づく後続の割り当てに対応し得る。アドレス割り付けサービス127は、十分利用されないまたは十分利用されないと予測されるアドレス割り付けの解除を管理し得る。さらに、アドレス割り付けサービス127は、アドレス割り付け空間を解除するためまたは割り付けの集約を容易化するために、アドレス割り付けを統合するように構成され得る。様々な実施形態では、アドレス割り付けサービス127は、例えば1つのサービスが割り付けを割り当てるまたは解除するかどうかを判定するためのビジネス論理を含み、別のサービスがホストされたコンピューティング環境103中での実装を実施する2つ以上のサービスに分割され得る。
【0021】
ネットワーク監視サービス130は、ホストされるコンピューティング環境103の様々な態様を監視するために実行され得る。このような態様は、資源消費、ネットワークアドレス利用、資源消費履歴、ネットワークアドレス利用履歴、資源消費もしくはアドレス利用の増加もしくは減少速度、などに関し得る。このような監視の結果としてネットワーク監視サービス130によって生成されたデータは、アドレス割り付けサービス127に対する入力に対応し得る。このような入力は、さらなるネットワークアドレス割り付けを割り当てるか、既存のネットワークアドレス割り付けを解除するか、ネットワークアドレス割り付けを統合もしくは集約するかどうかなどに関して、アドレス割り付けサービス127が判断することを許容する。
【0022】
データストア125に記憶されるデータは、例えば、ネットワークトポロジーデータ133、アドレス割り付け136、アドレス割り付け履歴139、デバイスタイプデータ142、デバイス使用データ145、顧客データ148、および潜在的に他のデータを含む。ネットワークトポロジーデータ133は、ホストされるコンピューティング環境103の物理的および論理的ネットワークトポロジーに関する情報を含み得る。このような情報は、ラック112もしくは他のネットワークサブ分割部分、ラック112中のコンピューティングデバイス118、ルータ121、集約ルータ115などに関するデータを含み得る。アドレス割り付け136は、ホストされるコンピューティング環境103の集約ルータ115、ルータ121、コンピューティングデバイス118、マシンインスタンス124、および/または他の構成要素に対して指定されたネットワークアドレスのブロックを記述する。非制限的な例として、アドレス割り付け136は、ブロック「10.1.2.0/27」中のアドレスがラック112と関連する特定のルータ121に指定されたことを示し得る。
【0023】
アドレス割り付け履歴139は、ホストされるコンピューティング環境103中の特定の構成要素に実行されたアドレス割り付け136の履歴を示し得る。非制限的な例として、アドレス割り付け履歴139は、特定のラック112に対するルータ121が、1つのブロックが全ての週を割り当てられる5つの「/27」アドレスブロックを割り当てられたことを示し得る。したがって、アドレス割り付け履歴139から、アドレス割り付けに対する履歴デマンドおよび速度が判定され得る。
【0024】
デバイスタイプデータ142は、様々なコンピューティングデバイス118およびマシンインスタンス124の特徴を示す。例えば、特定のデバイスタイプのコンピューティングデバイス118は、5つの大型タイプのマシンインスタンス124、10個の中型タイプのマシンインスタンス124、または20個の小型タイプのマシンインスタンス124を収容することが可能であり得る。デバイス使用データ145は、様々なコンピューティングデバイス118の現在の構成およびネットワークアドレス利用を示し得る。
【0025】
例えば、デバイス使用データ145は、現在のコンピューティングデバイス118は、3つの大型タイプのマシンインスタンス124に仕切られていることを示し得るが、ここで、マシンインスタンス124のうちの2つが2つのネットワークアドレスを用いていて、マシンインスタンス124のうちの1つが5つのネットワークアドレスを用いている。デバイス使用データ145はまた、以前および既存のマシンインスタンス124に対するネットワークアドレス使用履歴および速度を含み得る。このようなデータは、ホストされるコンピューティング環境103中の特定の顧客に対するネットワークアドレスおよびインスタンスの利用を判定するために、顧客データ148と相互関連付けられ得る。
【0026】
図2を参照すると、様々な実施形態に関わるホストされるコンピューティング環境103の1つの例が示されている。ホストされるコンピューティング環境103は、複数のコンピューティングデバイス203a、203b、・・・、203n、複数のコンピューティングデバイス206a、206b、・・・、206n、およびデータストア209を含む。ホストされるコンピューティング環境103のこのような構成要素は、ネットワーク109(
図1)を介して、互いとおよび/または外部コンピューティングデバイスとデータ通信状態にあり得る。このようなコンピューティングデバイス203および206は、単一の設置物中に置かれ得るまたは多くの異なる地理的位置中に分散され得る。
【0027】
コンピューティングデバイス203および206は、コンピューティングデバイス118(
図1)に対応する。コンピューティングデバイス203および206は、様々な実施形態中の異なるハードウエアプラットフォームに対応し得る。したがって、コンピューティングデバイス203および206は、例えば、汎用の処理資源を提供する中央処理ユニット(CPU)、グラフィック処理資源を提供するグラフィック処理ユニット(GPU)、システムメモリ、容量、記憶帯域幅、1秒あたりの記憶入/出力動作(IOPS)などのデータ記憶特徴、ネットワーク帯域幅および/またはハードウエア特徴の資源の異なるハードウエア構成を有し得る。1つの実施形態では、全てのコンピューティングデバイス203a、203b、・・・、203nは、第1のハードウエア構成を有し得るが、全てのコンピューティングデバイス206a、206b、・・・、206nは、第2のハードウエア構成を有し得る。
【0028】
例えば、コンピューティングデバイス203は、第2のタイプの資源に対する第1のタイプの資源の比を有し、コンピューティングデバイス206は、第2のタイプの資源に対する第1のタイプの資源の異なる比を有し得る。ある具体的な例では、コンピューティングデバイス203は、比較的多量のメモリを有し、コンピューティングデバイス206は、比較的多量のCPU資源を有し得る。別の具体的な例では、コンピューティングデバイス203は、比較的多量のCPU資源を有し、コンピューティングデバイス206は、比較的多量のGPU資源を有し得る。コンピューティングデバイス203および206の2つの集合のみを示したが、異なるハードウエア構成を有するコンピューティングデバイス203および206の任意の数の集合が存在し得ることが理解される。
【0029】
非制限的な例として、少量のデータに対する多量の照会に対応するデータストアを作動させようとしている顧客は、記憶帯域幅を越える比較的高い記憶IOPS能力を持つコンピューティングデバイス203、206を有することを好み得る。それに対して、データバックアップアーカイブを作動させようとしている顧客は、記憶IOPSを超える比較的高い記憶帯域幅能力を持つコンピューティングデバイス203、206を有することを好み得る。データバックアップアーカイブは、多くの要求には応答し得ないが、要求が受信されたとき、データバックアップアーカイブからで他を転送するために、多量の帯域幅が、好まれ得る。
【0030】
コンピューティングデバイス203、206の各々は、1つ以上のマシンインスタンス(MI)を実行し得る。マシンインスタンスは、実際のマシンまたは仮想マシンに対応し得る。仮想マシンインスタンスは、仮想化されたコンピュータシステム、または、物理的なコンピューティングシステムのソフトウエア実装物である。仮想マシンは、プロセッサ回路およびメモリを有する単一のシステム上で同時に作動するために、複数のおよび/または異なるオペレーティングシステム環境を用意し得る。非制限的な例として、Linux(登録商標)のオペレーティングシステム環境の複数のインスタンスは、Microsoft(登録商標)のWindows(登録商標)オペレーティングシステム環境の複数のインスタンスと共に、1つのシステム上で同時に実行され得る。各々のマシンインスタンスは、それら自身のインスタンス(複数可)にのみ管理アクセス可能であるが、他の顧客のインスタンスにはアクセス不可能であり得る異なる顧客によって制御され得る。複数のマシンインスタンスは、実際には、並列プロセッサを含むコンピュータシステム上で同時に実行され得るが、複数のインスタンスは、インスタンスよりも少なくプロセッサを持つマルチスレッドのコンピュータシステム上で同時に実行されるように見え得る。
【0031】
異なるタイプのマシンインスタンスが利用可能であり得る。
図2の例では、コンピューティングデバイス203は、3つのタイプのマシンインスタンス、すなわち、MI大型212、MI中型215、およびMI小型218をサポートし得るが、それらの各々が異なる資源構成と関連付けられ得る。非制限的な例として、各々のMI大型212インスタンスは、4つのCPU同等ユニット、15GBのシステムメモリ、および1,000GBのデータストレージを有し得る。各々のMI中型215インスタンスは、2つのCPU同等ユニット、10GBのシステムメモリ、および600GBのデータストレージを有し得る。また、各々のMI小型218インスタンスは、1つのCPU同等ユニット、5GBのシステムメモリ、および250GBのデータストレージを有し得る。
図2の例では、コンピューティングデバイス206はまた、3つのタイプのマシンインスタンス、すなわち、MI大型221、MI中型224、およびMI小型227をサポートし得る。MI大型221、MI中型224、およびMI小型227は、MI大型212、MI中型215、およびMI小型218と同じそれぞれの構成を有するまたは、所望次第で異なる構成を有し得る。非制限的な例として、MI大型221インスタンスは、4つのCPU同等ユニット、20GBのシステムメモリ、および1,000GBのデータストレージを有し得る。
【0032】
各々のタイプのコンピューティングデバイス203、206に対する3つのタイプのマシンインスタンスの例は、制限的であることを意図しない。様々な実施形態では、各々のタイプのコンピューティングデバイス203、206に対してより多いまたはより少ないタイプのマシンインスタンスが存在し得る。1つの実施形態では、マシンインスタンスは、仮想化なしのコンピューティングデバイス203、206の全体の割り付けを備え得る。
【0033】
図2の例では、1つのMI大型212インスタンスは、コンピューティングデバイス203a上で実行されていて、2つのMI中型215a、215bインスタンスは、コンピューティングデバイス203b上で実行されていて、1つのMI中型215cインスタンスおよび2つのMI小型218a、218bインスタンスは、コンピューティングデバイス203n上で実行されていて、1つのMI大型221インスタンスは、コンピューティングデバイス206a上で実行されていて、3つのMI中型224a、224b、224cインスタンスは、コンピューティングデバイス206b上で実行されていて、1つのMI中型224dインスタンスおよび4つのMI小型227a、227b、227c、227dインスタンスは、コンピューティングデバイス206n上で実行されている。どの顧客もいずれかの数のマシンインスタンスと関連付けられ得るが、各々のマシンインスタンスは、顧客と関連付けられ得る。
【0034】
様々な実施形態では、顧客は、新しいマシンインスタンスを動的に立ち上げるおよび/または終了させることが可能であり得る。したがって、ホストされるコンピューティング環境103は、顧客に時間と共に変化することが可能な弾性的なコンピューティング能力を提供し得る。非制限的な例として、マシンインスタンス上の頻繁には訪問しないネットワークサイトをホストしている顧客には、このネットワークサイトがテレビ上で言及されたりまたは人気のあるネットワークサイト上にリンクされたりしたときに、ネットワークページヒットが突然として殺到し得る。ネットワークサイトのトラヒックのこの増加は、マシンインスタンスのコンピューティング能力を圧倒して、ネットワークサイトの性能および利用可能性が悪化し得る。ネットワークサイトのトラヒックに対応するために、顧客は、新しいマシンインスタンスを立ち上げる、および/またはより多い資源およびより良好な性能を持つマシンインスタンスに移行する場合がある。顧客はまた、必要に応じて、特定のインスタンスに対してさらなるまたはより少ないネットワークアドレスを構成し得る。ホストされるコンピューティング環境103のオペレータは、このような新しいマシンインスタンスを収容するために、スペアのコンピューティング能力が、ホストされるコンピューティング環境103中で利用可能であることを保証する必要があり得る。同時に、あまりに多くのスペアコンピューティング能力は経費がかかり、資源的に非効率であり得る。
【0035】
様々なアプリケーションおよび/または他の機能性は、これらのマシンインスタンス中でおよび様々な実施形態に関わるコンピューティングデバイス203、206中で実行され得る。また、様々なデータが、コンピューティングデバイス203、206にとってアクセス可能なデータストア209に記憶される。データストア209は、理解することが可能なように、複数のデータストア209によって表され得る。データストア209に記憶されるデータは、例えば、マシンイメージデータ230、顧客データ233、および潜在的に他のデータを含む。
【0036】
マシンイメージデータ230は、マシンインスタンスを立ち上げるために用いられるデータを含み得る。マシンイメージデータ230は、オペレーティングシステム環境の1つ以上のディスクイメージを含み得る。これらのディスクイメージの一部は、任意の顧客または顧客のサブ集合によって用いられるように事前構成され得るが、他のそれらは特定の顧客または顧客のサブ集合用にカスタマイズされ得る。1つの実施形態では、1つのディスクイメージは、複数のマシンインスタンスによってロードされ得る。
【0037】
顧客データ233は、顧客固有のデータを含み得る。1つの実施形態では、マシンインスタンスに対する全ての顧客構成データは、顧客データ233に記憶される。このように、このようなデータは、多くのマシンインスタンス中で容易に共有され得る。非制限的な例として、顧客データ233は、顧客と関連付けられたマシンインスタンス上で実行されている1つ以上のネットワークページサーバによって提供されるネットワークページを含み得る。しかしながら、一部の実施形態では、顧客固有データは、マシンインスタンスと関連付けられたローカルデータストレージ内に記憶され得ることが理解される。
【0038】
ここで、
図1を参照すると、ネットワーク環境100の様々な構成要素の動作の一般的な説明が提供されている。最初に、集約ルータ115は、ネットワーク109のネットワークアドレスの初期割り付けを与えられ得る。ラック112または他のサブ分割部分は、集約ルータ115の後方の、ホストされるコンピューティング環境103用に構成され得る。複数の他のルータおよびネットワーキングハードウエアが、様々な実施形態では、ラック112と集約ルータ115との間に介在され得る。一部の実施形態では、ラック112中のルータ121は、集約ルータ115無しでネットワーク109に結合され得る。
【0039】
ラック112は、コンピューティングデバイス118の集合で初期構成される。一部の場合では、コンピューティングデバイス118のうちの1つ以上が、1つ以上のマシンインスタンス124をホストするように初期構成され得る。一部の場合では、コンピューティングデバイス118のうちの1つ以上が、マシンインスタンス124中への初期構成を有しないことがあり得る。ラック112内の物理的空間の全てが初期に占有されていてもよく、または、ラック112内の物理的空間が利用可能であってもよい。アドレス割り付けサービス127は、ネットワークアドレス割り付けを、デフォルトの割り当て構成、ラック112中のコンピューティングデバイス118の各々のデバイスタイプ、コンピューティングデバイス118のタイプの履歴的割り当て速度もしくはアドレス使用速度、コンピューティングデバイス118と関連付けられた顧客(複数可)の履歴的割り当て速度もしくはアドレス使用速度、および/または他の要因に少なくとも部分的に基づいて、ラック112に割り当てる。
【0040】
非制限的な例として、ラック112は、あるデバイスタイプの20のコンピューティングデバイス118で初期構成され得る。コンピューティングデバイス118の数、コンピューティングデバイス118のタイプ、および/または他のデータに応答して、アドレス割り付けサービス127は、ラック112に32のアドレスの「/27」ブロックを割り当てることを決定し得る。この目的のため、アドレス割り付けサービス127は、この特定のアドレスブロックを公示し、それにより割り付けを実装するようにルータ121を自動的に構成し得る。アドレス割り付けサービス127は、対応する集約ルータ115に割り付けられたより大きいアドレスブロック(例えば、「/22」または他のブロック)内から特定のアドレスブロックを選択し得る。
【0041】
非制限的な例を継続して、20のコンピューティングデバイス118の各々が「/27」ブロックから1つの対応するアドレスを用いるように初期構成されるということがあり得る。ブロック中の様々なアドレスは、ネットワーク番号、ゲートウェイアドレス、ブロードキャストアドレスなどとして留保され得る。ラック112が再構成されるに連れて、アドレス利用が高まり得る。さらなるコンピューティングデバイス118は、ラック112に追加され得るし、さらなるマシンインスタンス124は、コンピューティングデバイス118に追加され得るし、顧客は、それらのマシンインスタンス124もしくはコンピューティングデバイス118に対するさらなるネットワークアドレスを要求し得るし、および/または他の再構成が発生し得る。ネットワーク監視サービス130は、ネットワークトポロジー、アドレス割り付け、アドレス利用を含むデバイス使用、および/またはホストされるコンピューティング環境103に関する他の情報を監視し得る。再構成と関連付けられたデータおよびこれを示すデータは、ネットワークトポロジーデータ133、アドレス割り付け履歴139、デバイスタイプデータ142、デバイス使用データ145などに記憶され得る。再構成を示すこのようなデータは、一部の実施形態では、アドレス割り付けサービス127に直接に提供され得る。アドレスの在庫枯渇以前にアドレス割り付けが実施されることを保証するようにしきい値が設定され得る。
【0042】
例えば、アドレス割り付けサービス127は、ラック112の再構成の結果、マシンインスタンス124の量が増加したことを示すデータを獲得し得る。結果として、アドレス割り付けサービス127は、別の「/27」ネットワークアドレスブロックを特定のラック112に割り当てることを決定し得る。ネットワークアドレスのブロックは、一部の場合では、集約ルータ115に割り付けられたアドレスのサブ集合として選択され得る。割り当てられると、アドレス割り付けサービス127は、さらなるアドレス割り付けを実装するようにルータ121を自動的に再構成し得る。
【0043】
アドレス割り付けサービス127は、利用可能であれば隣接する割り付けを好むように構成され得る。一部の場合では、アドレス割り付け履歴139、顧客データ148、および/または他の要因に少なくとも部分的に基づいて、アドレス割り付けサービス127は、割り当てに隣接する未割当のアドレス割り付けをまず留保し得るが、この場合、留保物は将来の使用のためである。他のラック112におけるデマンドがさらなる割り当てにつながる場合、このような留保された割り付けは、必要であれば他のラックに割り当てられ得る。したがって、隣接しない割り当てが必要であり得る。
【0044】
隣接する割り付け割り当てがなされた場合、アドレス割り付けサービス127は、割り当てを統合するように構成され得る。例えば、2つの「/27」ネットワークが隣接して割り付けられた場合、アドレス割り付けサービス127は、2つの「/27」割り付けを1つの「/26」割り付けにロールアップするように構成され得る。同様に、4つの「/27」ネットワークが隣接して割り付けられた場合、アドレス割り付けサービス127は、4つの「/27」割り付けを1つの「/25」割り付けにロールアップするように構成され得る。1つの実施形態では、隣接する割り付けを組み合わせることによって、より小さい割り付け用の以前に留保されたアドレス(例えば、ネットワーク番号、ブロードキャストアドレスなど)であったさらなるアドレスが、コンピューティングデバイス118に対して割り当て可能となり得る。このルート集約または要約を実施することによって、ルータ121および集約ルータ115に対するルーティングデマンドが軽減され得る。
【0045】
1つの実施形態では、ルータ121(または集約ルータ115)は、集約目的ではコンピューティングデバイス118に割り当てられなかったルートを公示するように構成され得る。例えば、「/27」ブロックに対する3つの隣接するアドレス割り付け136が、特定のラック112に割り当てられ得る。アドレス割り付け136は、ルーティング上の公示を簡略化するために、「/25」ブロック内に1つの未割当の「/27」ブロックを含むにもかかわらず、1つの「/25」ブロックに集約され得る。未割当の「/27」ブロックは、ラック112による将来の使用のために留保され得る、または、デマンド次第では、別のラック112による使用のために、後で分離され得る。
【0046】
ラック112中での一部の再構成は、より大きいアドレス利用に導き得るが、他の再構成は、アドレス利用の減少に導き得る。例えば、以前に「/22」ブロックのアドレス割り付け136を割り当てられたラック112は、今では、「/23」ブロック内に適合しうる400のアドレスを用いていることがあり得る。このような利用の減少は、比較的電力不足となったコンピューティングデバイス118を獲得することに、より少ないマシンインスタンス124がホストされているときに、発生し得る。結果として、アドレス割り付けサービス127は、オリジナルの「/22」割り付けから別の「/23」を解除し得る。ヒステリシスを提供するために、しきい値が用いられ得る。ヒステリシスは、短時間内で使用されうる割り付けを解除することを回避するためには望ましくあり得る。例えば、アドレス利用は、「/22」ブロックの場合は512未満に一時的に低下し得るが、「/23」は、アドレス利用が450未満になるまでは解除され得ない。
【0047】
一部の場合、解除されるブロック内のアドレスは既に使用中であり得る。このような場合、アドレス利用サービス127は、コンピューティングデバイス118の、解除されるブロック中のアドレスから保持されるブロック中のアドレスへの移行を始動するように構成され得る。一部の場合、コンピューティングデバイス118を1つのアドレスから別のアドレスに移動させることは望ましくないということがあり得るし、また、アドレス割り付け136の部分を解除することを差し控える結果となり得る。例えば、「/22」ブロック中の400アドレスのみが用いられ得るとはいえ、既存のアドレス利用のため、アドレス割り付けサービス127は、「/24」ブロックのみを解除し得る。アドレス割り付けサービス127は、問題となるルーティングテーブルのオーバーヘッドを回避するために、アドレス割り付け136を多くの小さいブロックに分割することを防止するしきい値で構成され得る。
【0048】
上述した例は、集約ルータ115に割り当てられたアドレス割り付け136にも拡張され得る。集約ルータ115の後方にあるホストされるコンピューティング環境103の部分は、ネットワーク109のサブ分割部分と考えられ得る。この目的のため、ネットワークアドレスのブロックは、予測されるまたは実際のデマンド、例えば、集約ルータ115によってサービス提供されるラック112、コンピューティングデバイス118、マシンインスタンス124などに少なくとも部分的に基づいて、集約ルータ115に割り付けられ得る。実際のまたは予測されるネットワークアドレスは時間と共に増加または減少し、それにより、結果として、さらなるアドレス割り付け136が割り当てられたり、または、既存のアドレス割り付け136が再割り当てのために解除されたりし得る。
【0049】
次に
図3を参照すると、様々な実施形態に関わるアドレス割り付けサービス127の一部分の動作の1つの例を提供するフローチャートが示されている。
図3のフローチャートは、本明細書に説明するように、単に、アドレス割り付けサービス127の部分の動作を実装するために用いられ得る多くの異なるタイプの機能配列の例を提供することが理解される。代替例として、
図3のフローチャートは、1つ以上の実施形態に関わるコンピューティング環境106(
図1)中に実装される方法のステップの例を示すものとして見られ得る。
【0050】
ボックス303から始めると、アドレス割り付けサービス127は、ネットワーク109(
図1)のサブ分割部分の初期構成を判定する。このサブ分割部分は、ラック112(
図1)、所与の集約ルータ115(
図1)の後方のホストされるコンピューティング環境103(
図1)の一部分、または別のサブ分割部分に対応し得る。この目的のため、アドレス割り付けサービス127は、ネットワーク109のトポロジー、コンピューティングデバイス118(
図1)およびそれらのデバイスタイプ、構成されているマシンインスタンス124(
図1)、マシンインスタンス124と関連付けられた顧客などを判定するために、ネットワーク監視サービス130(
図1)によって収集されたデータを参照し得る。
【0051】
ボックス306で、アドレス割り付けサービス127は、第1のアドレス割り付け136(
図1)を、初期構成に少なくとも部分的に基づいて、サブ分割部分に割り当てる。例えば、アドレス割り付け136は、コンピューティングデバイス118の各々のそれぞれのデバイスタイプ、ネットワークアドレスに対する投影されたデマンド、および/または他の要因に少なくとも部分的に基づいて判定され得る。ボックス309で、アドレス割り付けサービス127は、ルータ121(
図1)(または、場合によっては集約ルータ115)を、第1のアドレス割り付け136を実装するように構成する。
【0052】
ボックス312で、アドレス割り付けサービス127は、サブ分割部分中のコンピューティングデバイス118の再構成を示す、例えば、ネットワーク監視サービス130からデータを獲得する。例えば、さらなるコンピューティングデバイス118が追加され得るし、コンピューティングデバイス118は、より強力なコンピューティングデバイス118によって置き換えられ得るし、コンピューティングデバイス118は、より多くのマシンインスタンス124で再構成され得るし、コンピューティングデバイス118は、多くのネットワークアドレスを使用する傾向がある顧客用に再構成され得るし、などである。
図3の場合では、再構成は、実際のまたは予測されるアドレス利用の増加を示す。ボックス315では、アドレス割り付けサービス127は、第2のアドレス割り付け136をサブ分割部分に対して、再構成に少なくとも部分的に基づいて割り当てる。第2のアドレス割り付け136は、例えば、第1のアドレス割り付け136との隣接関係に基づいて選択され得る。例えば、「10.1.0.0/24」は、「10.1.1.0/24」と隣接している。隣接関係は、特定のサブネットマスク内に適合するアドレス割り付け136の能力に依存し得る。第2のアドレス割り付け136のサイズは、例えば、アドレス割り当て、割り付け、または利用の速度に基づいて判定され得る。
【0053】
ボックス318では、アドレス割り付けサービス127は、第1および第2のアドレス割り付け136を集約すべきであるかどうかを判定する。例えば、「10.1.0.0/24」は、「10.1.1.0/24」と集約されて、「10.1.1.0/23」を生成し得る。一部の実施形態では、非隣接のアドレス割り付け136が集約され得る。アドレス割り付けサービス127が、第1および第2のアドレス割り付け136を集約しないと決定すると、アドレス割り付けサービス127は、ボックス321に移動して、第2のアドレス割り付け136を個別の経路として公示するように、ルータ121(または、場合によっては集約ルータ115)を構成する。アドレス割り付けサービス127は次に、ボックス324へと続行する。
【0054】
代わりに、アドレス割り付けサービス127が、第1および第2のアドレス割り付け136を集約すべきであると決定すると、アドレス割り付けサービス127は、ボックス318からボックス327へと続行し、第1のアドレス割り付け136を第2のアドレス割り付け136と組み合わせる。ボックス330で、アドレス割り付けサービス127は、組み合わされたアドレス割り付け136を公示するように、ルータ121(または、場合によっては、集約ルータ115)を構成する。アドレス割り付けサービス127は次に、ボックス324に続く。
【0055】
ボックス324で、アドレス割り付けサービス127は、別の再構成が発生したかどうかを判定する。別の再構成が発生していれば、アドレス割り付けサービス127は、ボックス312に戻って、この再構成を示すデータを獲得する。別の再構成が発生していなければ、アドレス割り付けサービス127のその部分は終了する。
【0056】
ここで
図4に目を転じると、様々な実施形態に関わるアドレス割り付けサービス127の別の部分の動作の1つの例を提供するフローチャートが示されている。
図4のフローチャートは、本明細書に説明するように、アドレス割り付けサービス127の部分の動作を実装するために用いられ得る多くの異なるタイプの機能配列の例を単に提供することが理解される。代替例として、
図4のフローチャートは、1つ以上の実施形態に関わるコンピューティング環境106(
図1)中に実装される方法のステップの例を示すものとして見られ得る。
【0057】
ボックス403から始めると、アドレス割り付けサービス127(
図1)は、ネットワーク109(
図1)のサブ分割部分(例えば、ラック112(
図1)、集約ルータ115(
図1)の後方にあるホストされるコンピューティング環境103(
図1)の一部分など)の中のコンピューティングデバイス118(
図1)の再構成を示すデータを、例えばネットワーク監視サービス130(
図1)から獲得する。例えば、コンピューティングデバイス118は、除去され得るし、コンピューティングデバイス118は、より少ないマシンインスタンス124で再構成され得るし、コンピューティングデバイス118は、より少ないネットワークアドレスを使用する傾向がある顧客用に再構成され得るし、などである。
図4の場合では、再構成は、実際のまたは予測されるアドレス利用の減少を示す。
【0058】
ボックス406では、アドレス割り付けサービス127は、サブ分割部分に対するアドレス利用がしきい値未満であるかどうかを判定する。未満でなければ、アドレス割り付けサービス127は、ボックス409に進み、アドレス割り付け136(
図1)の解除は発生しない。未満であれば、アドレス割り付けサービス127は、ボックス406からボックス412へと続行し、サブ分割部分に対するアドレス割り付け136の少なくとも一部分が解除可能であるかどうかを判定する。例えば、アドレス割り付け136には、現在使用中のアドレスが存在し得て、移動させることが不可能であり、それにより、アドレス割り付け136は、潜在的に解除不可能とされる。アドレス割り付け136は解除不可能であれば、アドレス割り付けサービス127は、ボックス409へと続行する。
【0059】
アドレス割り付け136が解除可能であれば、アドレス割り付けサービス127は、ボックス412からボックス415に移行して、アクティブ状態のアドレス割り付けを移動させるかどうか判定する。移動させないのであれば、アドレス割り付けサービス127はボックス418へと続行する。その代わりに、アクティブ状態のアドレス割り当てを移動させるのであれば、アドレス割り付けサービス127は、ボックス415からボックス421へと続行し、アクティブ状態のアドレス割り当てを、アドレス割り付け136の解除可能なサブ集合から退避させ。これには、関連するコンピューティングデバイス118の自動的な再構成、コンピューティングデバイス118と関連付けられた顧客の通知などが伴い得る。
【0060】
ボックス418では、アドレス割り付けサービス127は、アドレス割り付け136のサブ集合を解除する。ボックス424では、アドレス割り付けサービス127は、解除されていないアドレス割り付け136のサブ集合を公示するようにルータ121(または、場合によっては、集約ルータ115)を再構成する。アドレス割り付け136が「10.1.1.0/23」である非制限的な例として、アドレス割り当ては、「10.1.1.0/24」から退避されてもよく、そして「10.1.1.0/24」が解除されてもよい。「10.1.0.0/24」への経路は、次いで公示され得る。解除されたアドレス割り付け136のサブ集合が、別のサブ集合と集約されないと、それは、次に、その結果として新たな経路が何も公示されない場合となり得る。アドレス割り付けサービス127は、ボックス409に進む。
【0061】
ボックス409で、アドレス割り付けサービス127は、別の再構成が発生したかどうかを判定する。別の再構成が発生した場合、アドレス割り付けサービス127は、ボックス403に戻って、この再構成を示すデータを獲得する。別の再構成が発生していない場合、アドレス割り付けサービス127のその部分が終了する。
【0062】
図5を参照すると、本開示の実施形態に関わるコンピューティング環境106の略ブロック図が示されている。コンピューティング環境106は、1つ以上のコンピューティングデバイス500を含む。各々のコンピューティングデバイス500は、双方ともがローカルインターフェース509に結合される、例えば、プロセッサ503およびメモリ506を有する少なくとも1つのプロセッサ回路を含む。この目的のため、各々のコンピューティングデバイス500は、例えば、少なくとも1つのサーバコンピュータまたは同様のデバイスを備え得る。ローカルインターフェース509は、理解されるように、例えば、随伴するアドレス/制御バスまたは他のバス構造を持つデータバスを備え得る。
【0063】
プロセッサ503によって実行可能なデータといくつかの構成要素との双方が、メモリ506に記憶されている。特に、メモリ506に記憶されて、プロセッサ503によって実行可能なのは、アドレス割り付けサービス127、ネットワーク監視サービス130、および潜在的に他のアプリケーションである。また、データストア125および他のデータもメモリ506に記憶され得る。加えて、オペレーティングシステムがメモリ506に記憶されて、プロセッサ503によって実行可能である。
【0064】
理解されるように、メモリ506に記憶されて、プロセッサ503によって実行可能な他のアプリケーションが存在し得ることが理解される。本明細書に説明した任意の構成要素がソフトウエアという形態で実装される場合には、例えば、C、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Flash(登録商標)、または他のプログラミング言語などのいくつかのプログラミング言語のうちの任意の1つが用いられ得る。
【0065】
いくつかのソフトウエア構成要素が、メモリ506に記憶されてプロセッサ503によって実行可能である。この点で、「実行可能」という用語は、究極的にはプロセッサ503によって作動されることが可能な形態にあるプログラムファイルを意味する。実行可能なプログラムの例は、例えば、メモリ506のランダムアクセス部分にロードしてプロセッサ503によって作動されることが可能な形式でマシンコードに変換することが可能なコンパイルされたプログラム、メモリ506のランダムアクセス部分にロードしてプロセッサ503によって作動されることが可能なオブジェクトコードなどの適当な形式で表現され得るソースコード、または、プロセッサ503によって実行される命令をメモリ506のランダムアクセス部分中に発生するために、別の実行可能なプログラムによって解釈され得るソースコードなど、であり得る。実行可能なプログラムは、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)もしくはデジタルバーサタイルディスクなどの光ディスク、フロッピー(登録商標)ディスク、磁気テープ、または他のメモリ構成要素を含むメモリ506の任意の部分または構成要素中に記憶され得る。
【0066】
メモリ506は、本明細書では、揮発性および不揮発性のメモリと、データ記憶構成要素との双方を含むものと定義される。揮発性構成要素は、電源喪失時のデータ値を保持しないものである。不揮発性構成要素は、電源喪失時のデータを保持するものである。したがって、メモリ506は、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード読み取り装置によってアクセスされるメモリカード、関連付けられたフロッピー(登録商標)ディスクドライブを介してアクセスされるフロッピー(登録商標)ディスク、光ディスクドライブによってアクセスされる光ディスク、適当なテープドライブによってアクセスされる磁気テープ、および/または他のメモリ構成要素、またはこれらのメモリ構成要素の任意の2つ以上の組み合わせを含み得る。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、もしくは磁気ランダムアクセスメモリ(MRAM)、または他のこのようなデバイスを含み得る。ROMは、例えば、プログラム可能リードオンリーメモリ(PROM)、消去可能なプログラム可能リードオンリーメモリ(EPROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、または他の同様のメモリデバイスを含み得る。
【0067】
また、それぞれ、プロセッサ503は、複数のプロセッサ503および/または複数のプロセッサコアを表し得るし、メモリ506は、並列処理回路中で動作する複数のメモリ506を表し得る。このような場合、ローカルインターフェース509は、複数のプロセッサ503のうちの任意の2つ間、任意のプロセッサ503とメモリ506のうちのいずれかとの間、またはメモリ506のうちの任意の2つの間などでの通信を容易化する適切なネットワークであり得る。ローカルインターフェース509は、例えば、負荷均衡化を実施することを含む、この通信を調整するように設計されたさらなるシステムを含み得る。プロセッサ503は、電気的構造または何らかの他の利用可能な構造のものであり得る。
【0068】
アドレス割り付けサービス127、ネットワーク監視サービス130、および、本明細書に説明する他の様々なシステムは、上述したように、ソフトウエアまたは汎用ハードウエアによって実行されるコードに具現化され得るとはいえ、代替例として、これらはまた、専用のハードウエアまたはソフトウエア/汎用のハードウエアおよび専用のハードウエアの組み合わせに具現化され得る。専用のハードウエアに具現化された場合、各々は、いくつかの技術のうちの任意の1つまたはこれらの組み合わせを用いる回路または状態機械として実装することが可能である。これらの技術は、これには限られないが、1つ以上のデータ信号が印加されると様々な論理機能を実装するための論理ゲートを有するディスクリート論理回路、適当な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)、または他の構成要素などを含み得る。このような技術は、当業者にとっては一般的に周知であり、結果として、本明細書では詳述しない。
【0069】
図3および4のフローチャートは、アドレス割り付けサービス127の部分の実装例の機能性および動作を示す。ソフトウエアに具現化された場合、各々のブロックは、指定された論理機能(複数可)を実装するためのプログラム命令を含むコードのモジュール、セグメント、または部分を表し得る。これらのプログラム命令は、プログラミング言語で記述された人間読み取り可能ステートメントを含むソースコード、または、コンピュータシステムもしくは他のシステム中のプロセッサ503などの適切な実行システムによって認識可能な数値命令を含むマシンコードという形態で具現化され得る。これらのマシンコードは、ソースコードなどから変換され得る。ハードウエアに具現化された場合、各々のブロックは、指定された論理機能(複数可)を実装するための回路またはいくつかの相互接続された回路を表し得る。
【0070】
図3および4のフローチャートは、具体的な実行順序を示しているが、実行順序は示されているそれとは異なり得ることが理解される。例えば、2つ以上のブロックの実行順序は、図示する順序に対して入れ替えられ得る。また、
図3および4に連続して示す2つ以上のブロックは、同時並行にまたは部分的同時並行性で実行され得る。さらに、一部の実施形態では、
図3および4に示す1つ以上のブロックは、飛ばしたりまたは省略したりされ得る。加えて、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、向上されたユーティリティ、計算法、性能測定、またはトラブルシューティング支援を提供する目的で、本明細書に記載する論理フローに追加し得る。全てのこのような変更例は本開示の範囲内にあると理解される。
【0071】
また、ソフトウエアまたはコードを含む、アドレス割り付けサービス127およびネットワーク監視サービス130を含む、本明細書に記載する任意のロジックまたはアプリケーションは、例えば、コンピュータシステムまたは他のシステム中のプロセッサ503などの命令実行システムで用いられるまたはこれと接続して用いられる任意の非一時的なコンピュータ読み取り可能媒体に具現化することが可能である。この意味では、ロジックは、例えば、コンピュータ読み取り可能媒体からフェッチして命令実行システムによって実行することが可能な命令および宣言を含むステートメントを含み得る。本開示の文脈では、「コンピュータ読み取り可能媒体」は、命令実行システムで用いられるまたはこれを接続して用いられる、本明細書に記載するロジックまたはアプリケーションを含む、記憶する、または保つことが可能な任意の媒体でありうる。
【0072】
本開示の様々な実施形態を、次の付記に照らして説明することが可能である:
1.少なくとも1つのコンピューティングデバイス中で実行可能なプログラムを具現化する非一時的なコンピュータ読み取り可能媒体であって、
第1のネットワークアドレス割り付けを、複数のコンピューティングデバイスを含むネットワークのサブ分割部分に対して、コンピューティングデバイスの各々のそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいてまず割り当てるコードと、
第1のネットワークアドレス割り付けを実装するように、サブ分割部分に対するルータを構成するコードと、
増加した量のマシンインスタンスをホストするため、コンピューティングデバイスの再構成を示すデータを獲得するコードと、
第2のネットワークアドレス割り付けを、ネットワークのサブ分割部分に対して、コンピューティングデバイスの再構成に少なくとも部分的に基づいて、次いで割り当てるコードと、
第2のネットワークアドレス割り付けを実装するように、サブ分割部分に対するルータを再構成するコードと、
減少した量のマシンインスタンスをホストするために、サブ分割部分に含まれるコンピューティングデバイスの後続の再構成を示すデータを獲得するコードと、
サブ分割部分に割り当てられた第3のネットワークアドレス割り付けを、コンピューティングデバイスの後続の再構成に少なくとも部分的に基づいて解除するコードと、
第3のネットワークアドレス割り付けの公示を排除するように、サブ分割部分に対するルータを再構成するコードと、を備える、非一時的コンピュータ読み取り可能媒体。
2.第3のネットワークアドレス割り付けが解除されたことに応答して、コンピューティングデバイスのうちの1つを、異なるネットワークアドレスを用いるように再構成するコードをさらに備える、付記1に記載の非一時的コンピュータ読み取り可能媒体。
3.第3のネットワークアドレス割り付けが、第1のネットワークアドレス割り付けまたは第2のネットワークアドレス割り付けのサブ集合である、付記1に記載の非一時的コンピュータ読み取り可能媒体。
4.
少なくとも1つのコンピューティングデバイスと、
少なくとも1つのコンピューティングデバイスによって実行可能なアドレス割り付けサービスであって、
ネットワークのサブ分割部分であって、複数のコンピューティングデバイスを含む、サブ分割部分に対して第1のネットワークアドレス割り付けをまず割り当て、
サブ分割部分に対するルータを、第1のネットワークアドレス割り付けを実装するように構成し、
コンピューティングデバイスの再構成を示すデータを獲得し、
次いで、第2のネットワークアドレス割り付けを、コンピューティングデバイスの再構成に少なくとも部分的に基づいて、ネットワークのサブ分割部分に割り当て、かつ
サブ分割部分に対するルータを、第2のネットワークアドレス割り付けを実装するように再構成するように構成された、アドレス割り付けサービスと、を備える、システム。
5.コンピューティングデバイスが、可変量のネットワークアドレスを用いる複数のマシンインスタンスを含む、付記4に記載のシステム。
6.第2のネットワークアドレス割り付けが、コンピューティングデバイスの再構成に準じて、コンピューティングデバイスによってホストされるマシンインスタンスの増加した量に少なくとも部分的に基づいて、次いで割り当てられる、付記4に記載のシステム。
7.第2のネットワークアドレス割り付けが、コンピューティングデバイスと関連付けられたネットワークアドレス割り当て速度に少なくとも部分的に基づいて次いで割り当てられる、付記4に記載のシステム。
8.第1のネットワークアドレス割り付けが、コンピューティングデバイスの各々のそれぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいている、付記4に記載のシステム。
9.アドレス割り付けサービスが、
それぞれのコンピューティングデバイスタイプに少なくとも部分的に基づいて、コンピューティングデバイスのうちの少なくとも1つに対するマシンインスタンスの量を予測するようにさらに構成され、
第1のネットワークアドレス割り付けが、予測されたマシンインスタンスの量に少なくとも部分的に基づく、付記8に記載のシステム。
10.サブ分割部分がラックに対応し、ルータがラックと関連付けられたルータに対応する、付記4に記載のシステム。
11.第2のネットワークアドレス割り付けが、第1のネットワークアドレス割り付けとの第2のネットワークアドレス割り付けの隣接関係に少なくとも部分的に基づいて選択される、付記4に記載のシステム。
12.第1のネットワークアドレス割り付けおよび第2のネットワークアドレス割り付けが、第2のネットワークアドレス割り付けが実装されたことに応答して、サブ分割部分に割り当てられる、付記4に記載のシステム。
13.第1のネットワークアドレス割り付けと、第2のネットワークアドレス割り付けとが隣接している、付記12に記載のシステム。
14.第1のネットワークアドレス割り付けと、第2のネットワークアドレス割り付けとが隣接していない、付記12に記載のシステム。
15.第2のネットワークアドレス割り付けが実装されたことに応答して、第1のネットワークアドレス割り付け、第2のネットワークアドレス割り付け、ならびに第1のネットワークアドレス割り付けおよび第2のネットワークアドレス割り付けに隣接していて、かつサブ分割部分に対しては未割当の第3のネットワークアドレス割り付けを含む隣接するネットワークアドレス割り付けを公示するように、ルータが構成される、付記14に記載のシステム。
16.第1のネットワークアドレス割り付けが、第2のネットワークアドレス割り付けが実装されたことに応答してサブ分割部分に割り当てられることがもはやない、付記4に記載のシステム。
17.第2のネットワークアドレス割り付けが、第1のネットワークアドレス割り付けを含む、付記4に記載のシステム。
18.少なくとも1つのコンピューティングデバイスによって、ネットワークのサブ分割部分であって、ネットワークアドレス割り付けを割り当てられる、サブ分割部分に含まれる複数のコンピューティングデバイスのうちの少なくとも1つの再構成を示すデータを獲得することと、
前記少なくとも1つのコンピューティングデバイスによって、前記ネットワークアドレス割り付けの第1のサブ集合の割り当てを解除するかどうかを、前記コンピューティングデバイスのうちの前記少なくとも1つの再構成に少なくとも部分的に基づいて判定することと、
少なくとも1つのコンピューティングデバイスによって、判定に応答して、ネットワークアドレス割り付けの第1のサブ集合の割り当てを解除することと、
少なくとも1つのコンピューティングデバイスによって、ネットワークアドレス割り付けの代わりにネットワークアドレス割り付けの第2のサブ集合を公示するために、サブ分割部分に対するルータを再構成することと、を含む、方法。
19.再構成が、コンピューティングデバイスのうちの少なくとも1つによってホストされるマシンインスタンスの量の減少に対応する、付記18に記載の方法。
20.少なくとも1つのコンピューティングデバイスによって、マシンインスタンスの量がネットワークアドレス割り付けの第1のサブ集合を解除するしきい値を満たすかどうかを判定することをさらに含む、付記19に記載の方法。
21.ルータを自動的に再構成する前に、少なくとも1つのコンピューティングデバイスによって、ネットワークアドレス割り付けの第2のサブ集合中の第2のネットワークアドレスの代わりにネットワークアドレス割り付けの第1のサブ集合中の第1のネットワークアドレスを用いるために、サブ分割部分中のコンピューティングデバイスのうちの1つを自動的に再構成することをさらに含む、付記18に記載の方法。
22.ネットワークアドレス割り付けの第1のサブ集合と、ネットワークアドレス割り付けの第2のサブ集合とが、隣接している、付記18に記載の方法。
23.ネットワークアドレス割り付けの第1のサブ集合と、ネットワークアドレス割り付けの第2のサブ集合とが、隣接していない、付記18に記載の方法。
24.少なくとも1つのコンピューティングデバイスにおいて、サブ分割部分に含まれるコンピューティングデバイスのうちの少なくとも1つの後続の再構成を示すデータを獲得するステップと、
少なくとも1つのコンピューティングデバイスにおいて、コンピューティングデバイスのうちの少なくとも1つの後続の再構成に少なくとも部分的に基づいて、別のネットワークアドレス割り付けをサブ分割部分に割り当てるステップと、
少なくとも1つのコンピューティングデバイスにおいて、ネットワークアドレス割り付けの第2のサブ集合に加えて、他のネットワークアドレス割り付けを公示するために、サブ分割部分に対するルータを自動的に再構成するステップと、をさらに含む、付記18に記載の方法。
【0073】
コンピュータ読み取り可能媒体は、例えば、磁気、光、または半導体の媒体の多くの物理的媒体のうちの任意の1つを備えることが可能である。適切なコンピュータ読み取り可能媒体のより具体的な例は、これに限られないが、磁気テープ、磁気フロッピディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクを含みうる。また、コンピュータ読み取り可能媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)または磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であり得る。加えて、コンピュータ読み取り可能媒体は、リードオンリーメモリ(ROM)、プログラム可能リードオンリーメモリ(PROM)、消去可能なプログラム可能リードオンリーメモリ(EPROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、または他のタイプのメモリデバイスであり得る。
【0074】
本開示の上述した実施形態は、本開示の原理の明瞭な理解のために記述された、単に可能な実装例であることが強調されるべきである。多くの変更および修正が、本開示の精神および原理から実質的に逸脱することなく、上述した実施形態(複数可)になされ得る。全てのこのような修正および変更は、本明細書において本開示の範囲内に含まれ、かつ次の特許請求の範囲によって保護されることを意図するものである。
【0075】
関連出願の相互参照
以下の出願は、出願番号13/621、891号を有する、2012年9月18日に出願された、「DYNAMICALLY ALLOCATING NETWORK ADDRESSES」という題名の米国特許出願に対する優先権およびその恩典を主張するものであり、当該出願は、その全体が参照により本明細書に組み込まれる。