Динамическое выделение сетевых адресов

Иллюстрации

Показать все

Изобретение относится к средствам динамического выделения сетевых адресов. Технический результат заключается в увеличении эффективности выделения сетевых адресов. Получают, посредством по меньшей мере одного вычислительного устройства, данные, указывающие на переконфигурацию по меньшей мере одного из множества вычислительных устройств, входящих в подразделение сети, причем упомянутому подразделению назначено выделение сетевых адресов, при этом при переконфигурации изменяется количество экземпляров виртуализированных машин, размещенных на упомянутом по меньшей мере одном вычислительном устройстве. Определяют, посредством упомянутого по меньшей мере одного вычислительного устройства, следует ли снять назначение первого поднабора упомянутого выделения сетевых адресов по меньшей мере частично на основе переконфигурации упомянутого по меньшей мере одного из множества вычислительных устройств. Динамически снимают, посредством упомянутого по меньшей мере одного вычислительного устройства, назначение первого поднабора упомянутого выделения сетевых адресов в ответ на указанное определение. Переконфигурируют, посредством упомянутого по меньшей мере одного вычислительного устройства, маршрутизатор для упомянутого подразделения для объявления о втором поднаборе выделения сетевых адресов. 8 н. и 36 з.п. ф-лы, 5 ил.

Реферат

Перекрестная ссылка на родственную заявку

Нижеследующая заявка испрашивает приоритет и преимущество заявки на патент США, поименованной «ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ СЕТЕВЫХ АДРЕСОВ», поданной 18 сентября 2012 и имеющей номер заявки 13/621,891, содержание которой полностью включено в данный документ посредством ссылки.

Уровень техники изобретения

Сетевые устройства могут соотноситься с одним или большим количеством сетевых адресов на сетевой интерфейс. Сетевые адреса содействуют маршрутизации данных к сетевым устройствам и от них. Сетевые адреса Интернет Протокола (ЕР) соотносятся с масками подсетей, которые указывают часть сетевого адреса, которая соответствует префиксу маршрутизации, и часть сетевого адреса, которая соответствует идентификатору узла для подсети. Подсеть является логически видимым подразделением IP-сети. Подсети могут быть размещены логически в иерархическую структуру, тем самым разделяя пространство сетевых адресов в древовидную структуру маршрутизации. Исчерпание сетевых адресов является потенциальной проблемой для IP версии 4 с учетом того, что длина сетевых адресов составляет только 32 бита. IP версии 6 использует 128-битовые адреса и таким образом не является столь легко восприимчивой к исчерпанию адресов. Тем не менее, несмотря на проблемы исчерпания адресов IP версии 4 продолжают широко использоваться.

Краткое описание чертежей

Многие аспекты настоящего раскрытия могут быть лучше поняты со ссылкой на нижеследующие чертежи. Компоненты на чертежах не обязательно выполняются в масштабе, вместо этого делается акцент на ясном изображении принципов действия данного раскрытия. Кроме того, на чертежах одинаковые ссылочные позиции обозначают соответствующие части повсюду на разных видах.

Фиг. 1 показывает чертеж функционирующего через сеть окружения согласно различным вариантам осуществления настоящего раскрытия.

Фиг. 2 показывает чертеж одного примера, предоставляемого для размещения вычислительного окружения, используемого в функционирующем через сеть окружении по Фиг. 1, согласно различным вариантам осуществления настоящего раскрытия.

Фиг. 3 и 4 показывают блок-схемы последовательностей операций, изображающими примеры функциональных выполнений, реализуемых в качестве частей службы выделения адресов, исполняемой в вычислительном окружении в функционирующем через сеть окружении по Фиг. 1, согласно различным вариантам осуществления настоящего раскрытия.

Фиг. 5 показывает принципиальную блок-схему, на которой приведено одно примерное изображение вычислительного окружения, используемого в функционирующем через сеть окружении по Фиг. 1, согласно различным вариантам осуществления настоящего раскрытия.

Подробное описание изобретения

Настоящее раскрытие относится к динамическому назначению сетевых адресов сетевым устройствам на основе потребности. Исчерпание сетевых адресов является серьезной проблемой в Интернет Протоколе (IP) версии 4 и других возможных протоколах связи. Труднее становится получать общедоступные IP-адреса, и осуществляется тщательное управление их выделением. Даже частные сети IP могут столкнуться с проблемами исчерпания адресов. Большие частные сети обычно используют, например, адресное пространство «10.0.0.0/8» (представленное в системе обозначение бесклассовой междоменной маршрутизации (CIDR)), которое использует восьмибитовый префикс сети и 24-разрядный идентификатор узла и предусматривает почти 17 миллионов адресов (приблизительно 224 адреса).

Может показаться, что такое существенное количество является неисчерпаемым для организации. Однако, если выделением сетевых адресов не управлять надлежащим образом, то могут возникнуть проблемы исчерпания. Например, в организации могут безыскусно выбирать выделение адресного пространства в виде сети «/22» для каждой стойки в центрах обработки данных организации. Сеть «/22» предусматривает приблизительно 1024 {то есть 210) адресов. Организация, использующая такую схему выделения, будет ограничена 16384 (или 214) стойками, имеющими выделения «/22» внутри адресного пространства «10.0.0.0/8». Такое ограничение может представлять настоящую проблему для больших организаций.

Такая проблема может сложиться, если сеть дополнительно имеет иерархическую структуру. Продемонстрируем на примере: в сети может находиться некоторое количество агрегационных маршрутизаторов и некоторое количество стоек за каждым из агрегационных маршрутизаторов. Предположим, что сеть «/15» была выделена каждому агрегационному маршрутизатору. Это предусматривает выделение приблизительно 131072 (или 217) адресов каждому маршрутизатору, которые могут быть дополнительно разделены на выделения 128 (или 27) стойкам с 1024 адресами каждой. Кроме того, в пределах адресного пространства «10.0.0.0/8» может быть 128 (или 2) таких агрегационных маршрутизаторов. Проблемы масштабируемости могут возникнуть для общего количества агрегационных маршрутизаторов и/или количества стоек на агрегационный маршрутизатор.

Такая жесткая схема выделения сетевых адресов, обсуждаемая в примере выше, может не иметь смысла, если некоторые стойки используют меньше 1024 адресов. Если бы конкретная стойка использовала только 256 адресов, то было бы расточительным выделять 1024 адреса конкретной стойке. Однако, когда стойка конфигурируется заранее, невозможно знать, сколько адресов в конечном счете будет использоваться, особенно когда в стойке может использоваться переменное количество копий машин. В качестве верхней границы может быть выбрано такое большое количество, как 1024, тем самым приводя к неэффективности при выделении. Дополнительно, в некоторых случаях, верхняя граница может быть слишком малой для стоек, которые конфигурируются плотно.

Различные варианты осуществления настоящего раскрытия предусматривают динамическое выделение сетевых адресов на основе потребности для преодоления этой неэффективности и трудностей масштабируемости. Ручная, фиксированная конфигурация сетевых адресов, может быть заменена автоматической, динамической конфигурацией, которая распознает динамический характер использования адресов внутри подразделений сети, имеющих переменное количество копий машин. Начальное количество сетевых адресов может быть выделено согласно начальной физической конфигурации стойки или другого подразделения сети. Дополнительные выделения сетевых адресов могут производиться в отношении подразделения сети по мере необходимости для удовлетворения потребности. В последующем обсуждении предоставляется общее описание системы и ее компонентов, за которым следует обсуждение их функционирования.

На фиг. 1 изображено сетевое окружение 100 согласно различным вариантам осуществления. Сетевое окружение 100 включает предоставляемое для размещения вычислительное окружение 103 и вычислительное окружение 106, осуществляющие связь посредством передачи данных через сеть 109. Сеть 109 включает, например, Интернет, внутреннюю сеть, внешнюю сеть, глобальные сети (WAN), локальные сети (LAN), проводные сети, беспроводные сети или другие подходящие сети и т.д., или любое сочетание двух или большего количества таких сетей.

Предоставляемое для размещения вычислительное окружение 103 может содержать множество стоек 112а…112N, которым может быть предоставлена возможность соединения с сетью 109 посредством одного или большего количества агрегационных маршрутизаторов 115. Стойки 112, несмотря на такую формулировку («стойки») в описании, могут соответствовать другим подразделениям предоставляемого для размещения вычислительного окружения 103, например центрам обработки данных, комнатам внутри центров обработки данных, группированиям стоек, группированием вычислительного оборудования и так далее. Каждая из стоек 112 может включать множество вычислительных устройств 118а…118N и маршрутизатор 121. Такой маршрутизатор 121 может соответствовать стоечному маршрутизатору верхнего уровня (TOR (top-of-rack) маршрутизатору) или другому устройству, которое предоставляет возможность соединения с сетью 109 соответствующей стойке 112. Маршрутизаторы 121 могут использовать такой протокол маршрутизации, как протокол (RIP) обмена информацией о маршрутизации, протокол первоочередного открытия кратчайших маршрутов (OSPF) или другие протоколы маршрутизации. Маршрутизаторы 121 могут в некоторых случаях быть ограничены некоторым количеством отдельных выделений сетевых адресов, о которых может быть объявлено.

Вычислительные устройства 118а могут соответствовать вычислительным устройствам, имеющим процессор и запоминающую схему, которые используются для предоставления вычислительных служб пользователям согласно эффективной модели вычислений. С этой целью конкретное вычислительное устройство 118а может включать, например, множество копий 124а…124N машин. Размещение копий 124 машин внутри вычислительного устройства 118 может производиться для одного пользователя или множества пользователей. Как будет описано, различные копии 124 машин могут иметь различные характеристики. Данное вычислительное устройство 118 может переконфигурироваться динамически, чтобы иметь любое количество копий 124 машин.

Следует отметить, что различные стойки 112 могут иметь различные типы и количества вычислительных устройств 118. Некоторые вычислительные устройства 118 могут иметь относительно больше вычислительных ресурсов, например, большее запоминающее устройство, более мощный(ые) процессор(ы), более быстрое хранилище данных и т.д., или различные сочетания вычислительных ресурсов. Дополнительно, вычислительные устройства 118 могут иметь различные типы и количества копий 124 машин.

Каждой из стоек 112 может быть назначено одно или большее количество выделений сетевых адресов для возможности соединения с сетью 109. В некоторых случаях, такие выделения сетевых адресов могут быть объединены (агрегированы) в выделение, предоставляемое соответствующему агрегационному маршрутизатору 115, тем самым предоставляя иерархическую структуру части сети 109 в предоставляемом для размещения вычислительном окружении 103. Предоставляемое для размещения вычислительное окружение 103 может иметь множество агрегационных маршрутизаторов 115, обслуживающих различные стойки 112 или подразделения сети 109. Агрегационные маршрутизаторы 115 могут использовать такой протокол маршрутизации, как OSPF или другие протоколы маршрутизации. Агрегационные маршрутизаторы 115 в некоторых случаях могут быть ограничены упомянутым количеством отдельных выделений сетевых адресов, о которых может быть объявлено.

Вычислительное окружение 106 может содержать, например, компьютер-сервер или любую другую систему, предоставляющую вычислительную возможность. Альтернативно вычислительное окружение 106 может использовать множество вычислительных устройств, которые могут использоваться, и которые выполнены, например, в одной или большего количества групп серверов или групп компьютеров или в других вариантах выполнения. Такие вычислительные устройства могут располагаться в одной установке или могут быть распределены по многим различным географическим местоположениям. Например, вычислительное окружение 106 может включать множество вычислительных устройств, которые совместно могут содержать ресурс облачных вычислений, ресурс грид-вычислений и/или любой другой вариант исполнения распределенных вычислений. В некоторых случаях вычислительное окружение 106 может соответствовать эластичному вычислительному ресурсу, при котором выделяемые функциональные возможности обработки, сети, хранения или других связанных с вычислениями ресурсов могут изменяться во времени.

Различные приложения и/или другая функциональность могут исполняться в вычислительном окружении 106 согласно различным вариантам осуществления. Кроме того, в хранилище 125 данных хранятся различные данные, которые доступны для вычислительного окружения 106. Как можно догадаться, хранилище 125 данных может представлять собой множество хранилищ 125 данных. Данные, хранящиеся в хранилище 125 данных, например, соотносятся с функционированием различных приложений и/или функциональных объектов, описываемых ниже.

Компоненты, исполняемые в вычислительном окружении 106, например, включают службу 127 выделения адресов, службу 130 наблюдения за сетью и другие приложения, службы, процессы, системы, механизмы или функциональные средства, не обсуждаемые подробно в данном документе. Служба 127 выделения адресов исполняется для создания назначений 131 выделений адресов из адресов сети 109 для предоставляемого для размещения вычислительного окружения 103. Назначения 131 выделений адресов могут соответствовать начальным назначениям (например, при первоначальном конфигурировании стойки 112) или последующим назначениям на основе потребности (например, потребности, созданной при переконфигурации вычислительных устройств 118 в стойке 112). Служба 127 выделения адресов может управлять высвобождениями выделений адресов, которые используются не полностью, либо неполное использование которых прогнозируемо. Дополнительно, служба 127 выделения адресов может быть выполнена с возможностью объединения выделений адресов для высвобождения пространства выделения адресов или для содействия агрегированию выделений. В различных вариантах осуществления служба 127 выделения адресов может быть разделена на две или большее количество служб, например, в которых одна служба включает бизнес-логику для определения, назначать ли или высвобождать ли выделения, а другая служба выполняет реализацию в предоставляемом для размещения вычислительном окружении 103.

Служба 130 наблюдения за сетью может исполняться для наблюдения за различными аспектами предоставляемого для размещения вычислительного окружения 103. К таким аспектам могут относиться потребление ресурсов, использование сетевых адресов, история потребления ресурсов, история использования сетевых адресов, скорости увеличений или уменьшений потребления ресурсов или использования адресов и так далее. Данные, создаваемые службой 130 наблюдения за сетью в результате такого наблюдения, могут соответствовать входным данным для службы 127 выделения адресов. Такие входные данные могут позволить службе 127 выделения адресов принимать решение в отношении того, назначать ли дополнительные выделения сетевых адресов, высвобождать ли существующие выделения сетевых адресов, объединять ли или агрегировать ли выделения сетевых адресов и так далее.

Данные, хранящиеся в хранилище 125 данных, включают, например, данные 133 топологии сети, выделения 136 адресов, историю 139 выделений адресов, данные 142 о типе устройств, данные 145 об использовании устройств, пользовательские данные 148 и другие возможные данные. Данные 133 топологии сети могут включать информацию относительно физической и логической топологии сети предоставляемого для размещения вычислительного окружения 103. Такая информация может включать данные относительно стоек 112 или других подразделений сети, вычислительных устройств 118 в стойках 112, маршрутизаторов 121, агрегационных маршрутизаторов 115 и так далее.

Выделения 136 адресов описывают блоки сетевых адресов, которые были назначены агрегационным маршрутизаторам 115, маршрутизаторам 121, вычислительным устройствам 118, копиям 124 машин и/или другим компонентам предоставляемого для размещения вычислительного окружения 103. В качестве неограничивающего примера, выделение 136 адресов может указывать, что адреса в блоке «10.1.2.0/27» были назначены конкретному маршрутизатору 121, связанному со стойкой 112.

История 139 выделений адресов может указывать историю выделений 136 адресов, которые были произведены для конкретных компонентов в предоставляемом для размещения вычислительном окружении 103. В качестве неограничивающего примера история 139 выделений адресов может указывать, что маршрутизатору 121 для конкретной стойки 112 было назначено пять адресных блоков «/27», причем каждую неделю назначался один блок. Таким образом из истории 139 выделений адресов могут быть определены историческая потребность и скорость выделений адресов.

Данные 142 о типе устройств указывают характеристики различных вычислительных устройств 118 и копий 124 машин. Например, вычислительное устройство 118 конкретного типа устройства может быть выполнено с возможностью вмещения пяти копий 124 машин большого типа, десяти копий 124 машин среднего типа или двадцати копий 124 машин малого типа. Данные 145 об использовании устройств могут указывать текущие конфигурации и использование сетевых адресов для различных вычислительных устройств 118.

Например, данные 145 об использовании устройств могут указывать, что текущее вычислительное устройство 118 разделено на три копии 124 машин большого типа, при этом два из копий 124 машин используют два сетевых адреса, а один из копий 124 машин использует пять сетевых адресов. Данные 145 об использовании устройств могут также включать историю и скорость использования сетевых адресов для предыдущих и существующих копий 124 машин. Такие данные могут быть сопоставлены с пользовательскими данными 148, чтобы определить использование копии и сетевого адреса для конкретных пользователей в предоставляемом для размещения вычислительном окружении 103.

На фиг. 2 изображен один пример предоставляемого для размещения вычислительного окружения 103 согласно различным вариантам осуществления. Предоставляемое для размещения вычислительное окружение 103 включает множество вычислительных устройств 203а, 203b … 203n, множество вычислительных устройств 206а, 206b … 206n и хранилище 209 данных. Такие компоненты предоставляемого для размещения вычислительного окружения 103 могут осуществлять связь посредством передачи данных друг другу и/или внешним вычислительным устройствам посредством сети 109 (Фиг. 1). Такие вычислительные устройства 203 и 206 могут располагаться в одной установке или могут быть распределены по многим различным географическим местоположениям.

Вычислительные устройства 203 и 206 соответствуют вычислительным устройствам 118 (Фиг. 1). Вычислительные устройства 203 и 206 могут соответствовать отличающимся аппаратным платформам в различных вариантах осуществления. Соответственно, вычислительные устройства 203 и 206 могут иметь отличающиеся аппаратные конфигурации ресурсов, например центральные блоки (CPU) обработки, которые предоставляют ресурсы обработки общего назначения, блоки (GPU) графической обработки, которые предоставляют ресурсы для обработки графики, системное запоминающее устройство, характеристики хранения данных, такие как емкость, ширина полосы пропускания в хранилище и операции (IOPS) ввода-вывода в хранилище в секунду, ширина полосы пропускания сети и/или другие характеристики аппаратного обеспечения. В одном варианте осуществления все вычислительные устройства 203а, 203b … 203n могут иметь первую аппаратную конфигурацию, в то время как все вычислительные устройства 206а, 206b … 206n могут иметь вторую аппаратную конфигурацию.

Например, вычислительные устройства 203 могут иметь некоторое соотношение первого типа ресурса со вторым типом ресурса, в то время как вычислительные устройства 206 могут иметь другое соотношение первого типа ресурса со вторым типом ресурса. В одном конкретном примере вычислительные устройства 203 могут иметь запоминающее устройство относительно большой емкости, в то время как вычислительные устройства 206 могут иметь относительно большое количество ресурсов CPU. В другом конкретном примере вычислительные устройства 203 могут иметь относительно большое количество ресурсов CPU, в то время как вычислительные устройства 206 могут иметь относительно большое количество ресурсов GPU. Несмотря на то что изображено только два набора вычислительных устройств 203 и 206, подразумевается, что может присутствовать любое количество наборов вычислительных устройств 203 и 206, имеющих различные аппаратные конфигурации.

В качестве неограничивающего примера пользователь, который планирует управлять хранилищем данных, которое будет отвечать на большое количество запросов на малый объем данных, может предпочесть иметь вычислительное устройство 203, 206 с относительно высокой величиной IOPS в хранилище по отношению к ширине полосы пропускания к хранилищу. В отличие от этого, пользователь, который планирует управлять архивом резервного копирования данных, может предпочесть иметь вычислительное устройство 203, 206 с относительно высокой величиной ширины полосы пропускания к хранилищу по отношению к IOPS в хранилище. Архив резервного копирования данных может не отвечать на много запросов, но когда запрос принят, может быть предпочтена большая ширина полосы пропускания для переноса данных из архива резервного копирования данных.

На каждом вычислительном устройстве 203, 206 может исполняться одна или большее количество копий (MI) машин. Копия машины может соответствовать фактической машине или виртуальной машине. Копия виртуальной машины является виртуализированной вычислительной системой или программной реализацией физической вычислительной системы. Виртуальные машины могут предусматривать многие и/или различные окружения операционных систем, которые запущены одновременно в одной системе, имеющей схему процессора и запоминающее устройство. В качестве неограничивающего примера множество копий окружения операционной системы Linux® могут исполняться одновременно с множеством копий окружения операционной системы Microsoft® Windows® в одной системе. Каждой копией машины могут управлять различные пользователи, которые могут иметь административный доступ только к своей(им) собственной(ым) копии(ям) и никакого доступа к копиям других пользователей. Множество копий машин могут фактически исполняться одновременно в вычислительной системе, включающей параллельные процессоры, несмотря на то что может казаться, что множество копий исполняются одновременно в многопоточной вычислительной системе с количеством процессоров меньшим, чем количество копий.

Могут быть доступны различные типы копий машин. В примере на фиг. 2 вычислительные устройства 203 могут поддерживать три типа копий машин: IM 212 большого типа, ГМ 215 среднего типа и IM 218 малого типа, каждый из которых может быть соотнесен с отличающимися конфигурациями ресурсов. В качестве неограничивающего примера каждая копия IM 212 большого типа может иметь четыре блока, эквивалентных CPU, системное запоминающее устройство с 15 Гбайт и хранилище данных с 1000 Гбайт. Каждый копий ГМ 215 среднего типа может иметь два блока, эквивалентных CPU, системное запоминающее устройство с 10 Гбайт и хранилище данных с 600 Гбайт. Кроме того, каждая копия ГМ 218 малого типа может иметь один блок, эквивалентный CPU, системное запоминающее устройство с 5 Гбайт и хранилище данных с 250 Гбайт. В примере на фиг. 2 вычислительные устройства 206 могут также поддерживать три типа копий машин, а именно, ГМ 221 большого типа, ГМ 224 среднего типа и IM 227 малого типа. ГМ 221 большого типа, ГМ 224 среднего типа и ГМ 227 малого типа могут иметь те же самые соответствующие конфигурации, что и IM 212 большого типа, IM 215 среднего типа и IM 218 малого типа, или могут иметь другие конфигурации по необходимости. В качестве неограничивающего примера копия IM 221 большого типа может иметь четыре блока, эквивалентных CPU, системное запоминающее устройство с 20 Гбайт и хранилище данных с 1000 Гбайт.

Не подразумевается, что пример трех типов копий машин для каждого типа вычислительного устройства 203, 206 является ограничивающим. В различных вариантах осуществления может присутствовать больше или меньше типов копий машин для каждого типа вычислительного устройства 203, 206. В одном варианте осуществления копия машины может содержать выделение всего вычислительного устройства 203, 206 без виртуализации.

В примере на фиг. 2 одна копия IM 212 большого типа исполняется в вычислительном устройстве 203а, две копии IM 215а, 215b среднего типа исполняются в вычислительном устройстве 203b, одна копия IM 215с среднего типа и две копии IM 218а, 218b малого типа исполняются в вычислительном устройстве 203n, одна копия IM 221 большого типа исполняется в вычислительном устройстве 206а, три копии IM 224а, 224b, 224с среднего типа исполняются в вычислительном устройстве 206b и одна копия IM 224d среднего типа и четыре копии IM 227а, 227b, 227с, 227d малого типа исполняются в вычислительном устройстве 206n. Каждая копия машины может быть соотнесена с пользователем, однако и любой пользователь может быть соотнесен с любым количеством копий машин.

В различных вариантах осуществления пользователь может обладать возможностью запуска новых копий машин и/или прекращения действия копий машин динамическим образом. Таким образом, предоставляемое для размещения вычислительное окружение 103 может предоставлять эластичную вычислительную возможность пользователю, которая может изменяться во времени. В качестве неограничивающего примера пользователь, размещающий нечасто посещаемый сетевой сайт в копии машины, может внезапно получить наплыв обращений к сетевой страничке, когда происходит упоминание о сетевом сайте по телевидению, или ссылка на него размещается на популярном сетевом сайте. Увеличение трафика к сетевому сайту может перегрузить вычислительную возможность копии машины, приводя к плохому функционированию и доступности сетевого сайта. Чтобы справиться с трафиком к сетевому сайту, пользователь может запустить новые копии машин и/или перейти к копии машины с большим количеством ресурсов и лучшим функционированием. Пользователь может также конфигурировать дополнительные сетевые адреса или меньшее количество сетевых адресов для конкретных копий машин по необходимости. Оператору предоставляемого для размещения вычислительного окружения 103 может потребоваться гарантирование того, что запасная вычислительная возможность доступна в предоставляемом для размещения вычислительном окружении 103 для размещения таких новых копий машин. В то же время слишком большая запасная вычислительная возможность может быть дорогостоящей и ресурсно-неэффективной.

Различные приложения и/или другая функциональность могут исполняться в копиях машин и в вычислительных устройствах 203, 206 согласно различным вариантам осуществления. Кроме того, в хранилище 209 данных хранятся различные данные, которые доступны для вычислительных устройств 203, 206. Как можно догадаться, хранилище 209 данных может представлять собой множество хранилищ 209 данных. Данные, хранящиеся в хранилище 209 данных, включают, например, данные 230 образов машин, пользовательские данные 233 и другие возможные данные.

Данные 230 образов машин могут включать данные, используемые для запуска копии машины. Данные 230 образов машин могут включать один или большее количество образов дисков окружения операционной системы. Некоторые из образов дисков могут быть предварительно сконфигурированы для использования любым пользователем или поднабором пользователей, в то время как другие могут быть настроены для конкретного пользователя или поднабора пользователей. В одном варианте осуществления один образ диска может загружаться множеством копий машин.

Пользовательские данные 233 могут включать характерные для пользователя данные. В одном варианте осуществления все данные пользовательской конфигурации для копии машины хранятся в пользовательских данных 233. По такому принципу, такие данные легко могут совместно использоваться многими копиями машин. В качестве неограничивающего примера пользовательские данные 233 могут включать сетевые странички, которые должны обслуживаться одним или большим количеством серверов сетевых страничек, в копиях машин, связанных с пользователем. Однако следует понимать, что в некоторых вариантах осуществления характерные для пользователя данные могут храниться внутри локального хранилища данных, связанного с копией машины.

Вернемся теперь к фиг. 1, на которой предоставлено общее описание функционирования различных компонентов сетевого окружения 100. Для начала, агрегационному маршрутизатору 115 может быть предоставлено начальное выделение сетевых адресов для сети 109. Стойка 112 или другое подразделение могут быть сконфигурированы для предоставляемого для размещения вычислительного окружения 103 за агрегационным маршрутизатором 115. В различных вариантах осуществления между стойкой 112 и агрегационным маршрутизатором 115 может находиться множество других маршрутизаторов и функционирующее через сеть аппаратное обеспечение. В некоторых вариантах осуществления маршрутизатор 121 в стойке 112 может соединяться с сетью 109 без агрегационного маршрутизатора 115.

Стойка 112 может быть первоначально выполнена с некоторым набором вычислительных устройств 118. В некоторых случаях одно или большее количество вычислительных устройств 118 может быть первоначально выполнено с возможностью размещения в себе одной или большего количества копий 124 машин. В некоторых случаях одно или большее количество вычислительных устройств 118 может не иметь никакой начальной конфигурации по копиям 124 машин. Все физическое пространство внутри стойки 112 первоначально может быть занято, либо физическое пространство внутри стойки 112 может быть доступным. Служба 127 выделения адресов назначает выделения сетевых адресов стойке 112 по меньшей мере частично на основе конфигурации назначения по умолчанию, типов устройств для каждого - из вычислительных устройств 118 в стойке 112, исторической скорости назначения или скорости использования адресов для данных типов вычислительных устройств 118, исторической скорости назначения или скорости использования адресов для пользователя(ей), связанного(ых) с вычислительными устройствами 118, и/или других факторов.

В качестве неограничивающего примера стойка 112 может быть первоначально сконфигурирована с 20 вычислительными устройствами 118 некоторого типа. В ответ на количество вычислительных устройств 118, тип вычислительных устройств 118 и/или других данных служба 127 выделения адресов может принять решение о назначении стойке 112 блока «/27» из 32 адресов. С этой целью, служба 127 выделения адресов может автоматически конфигурировать маршрутизатор 121 для объявления о данном конкретном блоке адресов, тем самым реализовывая выделение. Служба 127 выделения адресов может выбрать конкретный блок адресов изнутри большего блока адресов (например, «/22» или другого блока), который был выделен соответствующему агрегационному маршрутизатору 115.

Продолжим с неограничивающим примером: может случиться так, что каждое из упомянутых 20 вычислительных устройств 118 первоначально выполнено с возможностью использования одного соответствующего адреса из блока «/27». Различные адреса в данном блоке могут быть зарезервированы, например, номер сети, адрес шлюза, широковещательный адрес и так далее. Когда стойка 112 переконфигурирована, использование адресов может возрасти. Дополнительные вычислительные устройства 118 могут быть добавлены к стойке 112, дополнительные копии 124 машин могут быть добавлены к вычислительным устройствам 118, пользователи могут запросить дополнительные сетевые адреса для своих копий 124 машин или вычислительных устройств 118, и/или могут иметь место другие переконфигурации. Служба 130 наблюдения за сетью может наблюдать за топологией сети, выделениями адресов, использованием устройств, включающее использование адресов, и/или другую информацию относительно предоставляемого для размещения вычислительного окружения 103. Данные, связанные с переконфигурацией и указывающие на нее, могут храниться в данных 133 топологии сети, истории 139 выделений адресов, данных 142 о типе устройств, данных 145 об использовании устройств и так далее. Такие данные, указывающие на переконфигурацию, могут предоставляться напрямую в службу 127 выделения адресов в некоторых вариантах осуществления. Для гарантирования того, что выделения адресов производятся до исчерпания адресов, могут быть установлены пороговые величины.

Например, служба 127 выделения адресов может получить данные, которые указывают, что переконфигурация стойки 112 привела в результате к увеличенному количеству копий 124 машин. Следовательно, служба 127 выделения адресов может принять решение о назначении еще одного блока «/27» сетевых адресов данной конкретной стойке 112. Данный блок сетевых адресов в некоторых случаях может быть выбран в качестве поднабора адресов, выделенных агрегационному маршрутизатору 115. После назначения служба 127 выделения адресов может автоматически переконфигурировать маршрутизатор 121 для реализации дополнительного выделения адресов.

Служба 127 выделения адресов может быть выполнена с возможностью предпочтения смежных выделений, если таковые имеются. В некоторых случаях, по меньшей мере частично на основе истории 139 выделений адресов, пользовательских данных 148 и/или других факторов служба 127 выделения адресов может первоначально зарезервировать неприсвоенные выделения адресов, которые являются смежными с некоторым назначением, причем резервирование осуществляется для возможного будущего использования. Если потребность в других стойках 112 приводит к дополнительным назначениям, то такое зарезервированное выделение по необходимости может быть назначено другим стойкам. Таким образом, могут потребоваться несмежные назначения.

Если производятся назначения смежных выделений, то служба 127 выделения адресов может быть выполнена с возможностью объединения назначений. Например, если для двух сетей «/27» произведены смежные выделения, то служба 127 выделения адресов может быть выполнена с возможностью свертывания упомянутых двух выделений «/27» в одно выделение «/26». Аналогичным образом, если для четырех сетей «/27» произведены смежные выделения, то служба 127 выделения адресов может быть выполнена с возможностью свертывания упомянутых четырех выделений «/27» в одно выделение «/25». В одном варианте осуществления посредством объединения смежных выделений дополнительные адреса, которые являлись предварительно зарезервированными адресами для меньших выделений (например, номер сети, широковещательный адрес и т.д.), могут стать присваиваемыми вычислительным устройствам 118. Посредством выполнения такого агрегирования или суммирования маршрутов могут быть снижены потребности маршрутизации в маршрутизаторах 121 и агрегационных маршрутизаторах 115.

В одном варианте осуществления маршрутизатор 121 (или агрегационный маршрутизатор 115) может быть выполнен с возможностью объявления о маршрутах, которые не назначены вычислительным устройствам 118 для целей агрегирования. Например, три смежных выделения 136 адресов для блоков «/27» могут быть назначены конкретной стойке 112. Данные выделения 136 адресов могут быть агрегированы в один блок «/25» несмотря на включение одного неприсвоенного блока «/27» вовнутрь блока «/25» для того, чтобы упростить маршрутизацию объявлений. Неприсвоенный блок «/27» может быть зарезервирован для будущего использования стойкой 112 или может быть впоследствии отделен для использования другой стойкой 112 в зависимости от потребности.

В то время как некоторые переконфигурации в стойках 112 могут привести к возросшему использованию адресов, другие переконфигурации могут привести к уменьшенному использованию адресов. Например, стойка 112, которой предварительно было назначено выделение 136 адресов блока «/22», теперь может использовать только 400 адресов, которые могут умещаться внутри блока «/23». Такое уменьшенное использование может возникнуть, когда меньшее количество копий 124 машин размещается на получаемых вычислительных устройствах 118, которые стали относительно меньше задействоваться. Следовательно, служба 127 выделения адресов может высвободить еще один блок «/23» из исходного выделения «/22». Для обеспечения гистерезисной петли могут использоваться пороговые величины. Гистерезисная петля может потребоваться для исключения высвобождения выделения, которое может использоваться в пределах короткого времени. Например, использование адресов может временно опуститься ниже 512 для блока «/22», но «/23» может не высвобождаться, пока использование адресов не окажется ниже 450.

В некоторых случаях, адреса внутри блока, который должен быть высвобожден, могу