ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ СЕТЕВЫХ АДРЕСОВ
DYNAMIC ALLOCATION OF NETWORK ADDRESSES

Перекрестная ссылка на родственную заявку
Нижеследующая заявка испрашивает приоритет и преимущество заявки на патент США, поименованной «ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ СЕТЕВЫХ АДРЕСОВ», поданной 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.
В некоторых случаях, адреса внутри блока, который должен быть высвобожден, могут уже использоваться. В таких случаях служба 127 использования адресов может быть выполнена с возможностью инициирования перехода вычислительных устройств 118 из адресов в блоке, который должен быть высвобожден, в адреса в блоке, который будет сохранен действующим. В некоторых вариантах осуществления перемещение вычислительных устройств 118 из одного адреса в другой может быть нежелательным и может вызвать в результате воздержание от высвобождения частей выделения 136 адресов. Например, несмотря на то что в блоке «/22» могут использоваться только 400 адресов, вследствие существующего использования адресов, служба 127 выделения адресов может высвободить только блок «/24». Служба 127 выделения адресов может быть сконфигурирована с пороговыми величинами для предотвращения разбиения выделений 136 адресов на многочисленные малые блоки, чтобы избежать проблематичных издержек в таблице маршрутизации.
Примеры, обсужденные выше, также могут распространяться на выделения 136 адресов, назначенных агрегационным маршрутизаторам 115. Часть предоставляемого для размещения вычислительного окружения 103, которая находится за агрегационным маршрутизатором 115, можно считать подразделением сети 109. С этой целью, блоки сетевых адресов могут быть выделены агрегационному маршрутизатору 115 по меньшей мере частично на основе прогнозируемой или фактической потребности, например, стойкам 112, вычислительным устройствам 118, копиям 124 машин и т.д., которые обслуживаются агрегационным маршрутизатором 115. Фактическая или прогнозируемая потребность в сетевых адресах может возрастать или спадать со временем, тем самым приводя в результате к тому, что будут назначены дополнительные выделения 136 адресов, или к тому, что существующие выделения 136 адресов будут высвобождаться для переназначения.
На фиг. 3 изображена блок-схема последовательности операций, которая предоставляет один пример функционирования части службы 127 выделения адресов согласно различным вариантам осуществления. Следует понимать, что блок-схема последовательности операций по фиг. 3 предоставляет всего лишь один пример из множества различных типов функциональных выполнений, которые могут использоваться для реализации функционирования части службы 127 выделения адресов, описываемой в данном документе. В качестве альтернативного варианта, блок-схема последовательности операций по фиг. 3 может быть рассмотрена как изображающая пример этапов способа, реализуемого в вычислительном окружении 106 (Фиг. 1), согласно одному или большему количеству вариантов осуществления.
Способ начинается на этапе 303, на котором служба 127 выделения адресов определяет начальную конфигурацию подразделения сети 109 (Фиг. 1). Подразделение может соответствовать стойке 112 (Фиг. 1), части предоставляемого для размещения вычислительного окружения 103 (Фиг. 1), которая находится за данным агрегационным маршрутизатором 115 (Фиг. 1), или другое подразделение. С этой целью служба 127 выделения адресов может обратиться к данным, собранным службой 130 наблюдения за сетью (Фиг. 1), для определения топологии сети 109, вычислительных устройств 118 (Фиг. 1) и их типов устройств, копий 124 машин (Фиг. 1), которые сконфигурированы, пользователей, связанных с копиями 124 машин, и так далее.
На этапе 306 служба 127 выделения адресов назначает первое выделение 136 адресов (Фиг. 1) упомянутому подразделению по меньшей мере частично на основе начальной конфигурации. Например, выделение 136 адресов может быть определено по меньшей мере частично на основе соответствующего типа устройства для каждого из вычислительных устройств 118, имеющейся потребности в сетевых адресах и/или других факторах. На этапе 309 служба 127 выделения адресов конфигурирует маршрутизатор 121 (Фиг. 1) (или агрегационный маршрутизатор 115, в зависимости от обстоятельств) для реализации первого выделения 136 адресов.
На этапе 312 служба 127 выделения адресов получает данные, например, от службы 130 наблюдения за сетью, которые указывают на переконфигурацию вычислительных устройств 118 в подразделении. Например, могут быть добавлены дополнительные вычислительные устройства 118, вычислительные устройства 118 могут быть заменены более мощными вычислительными устройствами 118, вычислительные устройства 118 могут быть переконфигурированы на большее количество копий 124 машин, вычислительные устройства 118 могут быть переконфигурированы для пользователей, которые стремятся использовать много сетевых адресов, и так далее. В случае фиг. 3 переконфигурация указывает увеличение фактического или прогнозируемого использования адресов. На этапе 315 служба 127 выделения адресов назначает второе выделение 136 адресов подразделению по меньшей мере частично на основе переконфигурации. Второе выделение 136 адресов может быть выбрано, например, на основе смежности с первым выделением 136 адресов. Например, «10.1.0.0/24» является смежным с «10.1.1.0/24». Смежность может зависеть от возможности выделений 136 адресов умещаться внутри конкретной маски подсети. Размер второго выделения 136 адресов может быть определен, например, на основе скорости назначения, выделения или использования адресов.
На этапе 318 служба 127 выделения адресов определяет, агрегировать ли первое и второе выделения 136 адресов. Например, «10.1.0.0/24» может быть агрегировано с «10.1.1.0/24» для создания «10.1.1.0/23». В некоторых вариантах осуществления могут быть агрегированы несмежные выделения 136 адресов. Если служба 127 выделения адресов определяет не агрегировать первое и второе выделения 136 адресов, то служба 127 выделения адресов переходит на этап 321 и конфигурирует маршрутизатор 121 (или агрегационный маршрутизатор 115, в зависимости от обстоятельств) для объявления о втором выделении 136 адресов в качестве отдельного маршрута. Затем служба 127 выделения адресов переходит на этап 324.
Если, вместо этого, служба 127 выделения адресов определяет, что первое и второе выделения 136 адресов должны быть агрегированы, то служба 127 выделения адресов переходит с этапа 318 на этап 327 и объединяет первое выделение 136 адресов со вторым выделением 136 адресов. На этапе 330 служба 127 выделения адресов конфигурирует маршрутизатор 121 (или агрегационный маршрутизатор 115, в зависимости от обстоятельств) для объявления об объединенном выделении 136 адресов. Затем служба 127 выделения адресов переходит на этап 324.
На этапе 324 служба 127 выделения адресов определяет, произошла ли еще одна переконфигурация. Если еще одна переконфигурация произошла, то служба 127 выделения адресов возвращается на этап 312 и получает данные, которые указывают на данную переконфигурацию. Если еще одной переконфигурации не произошло, то данная часть службы 127 выделения адресов завершает свое действие.
Теперь обратимся к фиг. 4, на которой изображена блок-схема последовательности операций, которая предоставляет один пример функционирования другой части службы 127 выделения адресов согласно различным вариантам осуществления. Следует понимать, что блок-схема последовательности операций на фиг. 4 предоставляет всего лишь один пример из множества различных типов функциональных выполнений, которые могут использоваться для реализации функционирования части службы 127 выделения адресов, описываемой в данном документе. В качестве альтернативного варианта блок-схема последовательности операций по фиг. 4 может быть рассмотрена как изображающая пример этапов способа, реализуемого в вычислительном окружении 106 (Фиг. 1), согласно одному или большему количеству вариантов осуществления.
Способ начинается на этапе 403, на котором служба 127 выделения адресов (Фиг. 1) получает данные, например, от службы 130 наблюдения за сетью (Фиг. 1), которые указывают на переконфигурацию вычислительных устройств 118 (Фиг. 1) в подразделении сети 109 (Фиг. 1) (например, стойке 112 (Фиг. 1), части предоставляемого для размещения вычислительного окружения 103 (Фиг. 1) за агрегационным маршрутизатором 115 (Фиг. 1) и т.д.). Например, вычислительные устройства 118 могут быть удалены, вычислительные устройства 118 могут быть переконфигурированы на меньшее количество копий 124 машин, вычислительные устройства 118 могут быть переконфигурированы для пользователей, которые стремятся использовать меньше сетевых адресов и так далее. В случае с фиг. 4 на переконфигурацию указывает уменьшение фактического или прогнозируемого использования адресов.
На этапе 406 служба 127 выделения адресов определяет, находится ли использование адресов для подразделения ниже пороговой величины. Если нет, то служба 127 выделения адресов переходит на этап 409, и никакого высвобождения выделения 136 адресов (Фиг. 1) не происходит. Если да, то служба 127 выделения адресов переходит с этапа 406 на этап 412 и определяет, является ли по меньшей мере часть выделения 136 адресов для подразделения высвобождаемой. Например, выделение 136 адресов может быть заполнено адресами, которые используются в настоящее время и не могут быть перемещены, то есть делая выделение 136 адресов потенциально не высвобождаемым. Если выделение 136 адресов не высвобождаемо, то служба 127 выделения адресов переходит на этап 409.
Если выделение 136 адресов высвобождаемо, то служба 127 выделения адресов переходит с этапа 412 на этап 415 и определяет, следует ли переместить задействованные назначения адресов. Если нет, то служба 127 выделения адресов переходит на этап 418. Если, вместо этого, задействованные назначения адресов должны быть перемещены, то служба 127 выделения адресов переходит с этапа 415 на этап 421 и перемещает задействованные назначения адресов из высвобождаемого поднабора выделения 136 адресов. Это может повлечь автоматическую переконфигурацию вовлеченных вычислительных устройств 118 с уведомлением пользователей, связанных с вычислительными устройствами 118, и т.д.
На этапе 418 служба 127 выделения адресов высвобождает поднабор выделения 136 адресов. На этапе 424 служба 127 выделения адресов переконфигурирует маршрутизатор 121 (или агрегационный маршрутизатор 115, в зависимости от обстоятельств) для объявления о невысвобожденном поднаборе выделения 136 адресов. В качестве неограничивающего примера в котором выделение 136 адресов представляет собой «10.1.1.0/23», назначения адресов могут быть перемещены из «10.1.1.0/24», и «10.1.1.0/24» может быть высвобождено. О маршруте к «10.1.0.0/24» может впоследствии быть объявлено. Если высвобожденный поднабор выделения 136 адресов не агрегируется с другим поднабором, то это может быть случаем, при котором в результате не объявляется ни о каком новом маршруте. Служба 127 выделения адресов переходит на этап 409.
На этапе 409 служба 127 выделения адресов определяет, произошла ли еще одна переконфигурация. Если еще одна переконфигурация произошла, то служба 127 выделения адресов возвращается на этап 403 и получает данные, которые указывают на данную переконфигурацию. Если еще одной переконфигурации не произошло, то данная часть службы 127 выделения адресов завершает свое действие.
На фиг. 5 изображена принципиальная блок-схема вычислительного окружения 106 согласно одному варианту осуществления настоящего раскрытия. Вычислительное окружение 106 включает одно или большее количество вычислительных устройств 500. Каждое вычислительное устройство 500 включает по меньшей мере одну схему процессора, например, имеющую процессор 503 и запоминающее устройство 506, оба из которых соединены с локальным интерфейсом 509. С этой целью каждое вычислительное устройство 500 может содержать, например, по меньшей мере один компьютер-сервер или подобное устройство. Как можно догадаться, локальный интерфейс 509 может содержать, например, шину данных с сопроводительной шиной адресов/управления или другой шинной структурой.
В запоминающем устройстве 506 хранятся как данные, так и несколько компонентов, которые исполняются процессором 503. В частности в запоминающем устройстве 506 хранятся и исполняются процессором 503 служба 127 выделения адресов, служба 130 наблюдения за сетью и другие возможные приложения. Также в запоминающем устройстве 506 могут храниться хранилище 125 данных и другие данные. Кроме того, операционная система может храниться в запоминающем устройстве 506 и исполняться процессором 503.

Некоторое количество компонентов программного обеспечения хранятся в запоминающем устройстве 506 и исполняются процессором 503. В этом отношении, термин «исполняется» означает файл программы, который находится в виде, который в итоге может быть запущен процессором 503. Примерами исполняемых программ может быть, например, скомпилированная программа, которая может быть преобразована в машинный код в формате, который может быть загружен в часть с произвольным доступом запоминающего устройства 506 и запущен процессором 503, исходный код, который может быть выражен в надлежащем формате, таком как объектный код, который способен загружаться в часть с произвольным доступом запоминающего устройства 506 и исполняться процессором 503, или исходный код, который может быть интерпретирован другой исполняемой программой для создания команд в части с произвольным доступом запоминающего устройства 506, чтобы исполняться процессором 503, и т.д. Исполняемая программа может храниться в любой части или компоненте запоминающего устройства 506, включающего, например, запоминающее устройство (RAM) с произвольным доступом, постоянное запоминающее устройство (ROM), накопитель на жестких дисках, твердотельный накопитель, карту флэш-памяти с интерфейсом USB, карту памяти, оптический диск, такой как компакт-диск (CD) или цифровой универсальный диск (DVD), гибкий диск, магнитную ленту или другие компоненты запоминающего устройства.
Запоминающее устройство 506 понимается в данном документе как включающее как запоминающее устройство кратковременного и долговременного хранения, так и компоненты хранилища данных. Компоненты кратковременного хранения представляют собой компоненты, которые не сохраняют значения данных после отключения энергоснабжения. Компоненты долговременного хранения представляют собой компоненты, которые сохраняют данные после отключения энергоснабжения. Таким образом, запоминающее устройство 506 может содержать, например, запоминающее устройство (RAM) с произвольным доступом, постоянное запоминающее устройство (ROM), накопители на жестких дисках, твердотельные накопители, карты флэш-памяти с интерфейсом USB, карты памяти, к которым осуществляется доступ через считыватель карт памяти, гибкие диски, к которым осуществляется доступ через связанный дисковод для гибких дисков, оптические диски, к которым осуществляется доступ через оптический дисковод, магнитные ленты, к которым осуществляется доступ через надлежащее лентопротяжное устройство, и/или другие компоненты запоминающего устройства, или сочетание любых двух или большего количества из этих компонентов запоминающего устройства. Кроме того, RAM может содержать, например, статическое запоминающее устройство (SRAM) с произвольным доступом, динамическое запоминающее устройство (DRAM) с произвольным доступом или магнитное запоминающее устройство (MRAM) с произвольным доступом и другие такие устройства. ROM может содержать, например, программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) или другое подобное запоминающее устройство.
Кроме того, процессор 503 может представлять собой множество процессоров 503 и/или множество ядер процессора, а запоминающее устройство 506 может представлять собой множество запоминающих устройств 506, которые функционируют параллельно схемам обработки. В таком случае локальный интерфейс 509 может быть подходящей сетью, которая содействует связи между любыми двумя из множества процессоров 503, между любым процессором 503 и любым из запоминающих устройств 506, или между любыми двумя из запоминающих устройств 506, и т.д. Локальный интерфейс 509 может содержать дополнительные системы, разработанные для координирования данной связи, включая, например, выполнение балансировки нагрузки. Процессор 503 может иметь электрическую или некоторую другую доступную конструкцию.
Несмотря на то что служба 127 выделения адресов, служба 130 наблюдения за сетью и другие различные системы, описанные в данном документе, могут быть воплощены в программном обеспечении или коде, исполняемом аппаратным обеспечением общего назначения, как обсуждалось выше, в качестве альтернативного варианта то же самое из упомянутого может также быть воплощено в выделенном аппаратном обеспечении или сочетании программного обеспечения/аппаратного обеспечения общего назначения и выделенного аппаратного обеспечения. При воплощении в выделенном аппаратном обеспечении, каждое из упомянутого может быть реализовано в качестве схемы или конечного автомата, который использует любую из технологий или сочетание многих технологий. Такие технологии могут включать без ограничения дискретные логические схемы, имеющие логические вентили для реализации различных логических функций после подачи одного или большего количества сигналов данных, специализированные интегральные схемы (ASIC), имеющие подходящие логические элементы, программируемые вентильные матрицы (FPGA) или другие компоненты, и т.д. Такие технологии в целом хорошо известны специалистам в уровне техники и, следовательно, не описываются подробно в данном документе.
В блок-схемах последовательностей операций на фиг. 3 и 4 изображены функциональность и действие варианта реализации частей службы 127 выделения адресов. При воплощении в программном обеспечении каждый блок может представлять собой модуль, сегмент или часть кода, который содержит команды программы для реализации заданной(ых) логической(их) функции(й). Команды программы могут быть воплощены в виде исходного кода, который содержит удобно воспринимаемые человеком утверждения, записанные на языке программирования или в машинном коде, который содержит численные команды, распознаваемые подходящей системой исполнения, такой как процессор 503 в компьютерной системе или другой системе. Машинный код может преобразовываться из исходного кода и т.д. При воплощении в аппаратном обеспечении, каждый блок может представлять собой схему или некоторое количество взаимосвязанных систем для реализации заданной(ых) логической(их) функции(ий).
Несмотря на то что в блок-схемах последовательностей операций на фиг. 3 и 4 изображен конкретный порядок исполнения, следует понимать, что порядок исполнения может отличаться от того, который изображен. Например, порядок исполнения двух или большего количества этапов может быть перемешан относительно изображенного порядка. Кроме того, два или большее количество этапов, изображенных последовательно на фиг. 3 и 4, могут исполняться параллельно или частично параллельно. Дополнительно, в некоторых вариантах осуществления один или большее количество этапов, изображенных на фиг. 3 и 4, могут быть пропущены или опущены. Кроме того, любое количество счетчиков, переменных состояния, предупреждающих семафоров или сообщений может быть добавлено к логической последовательности операций, описанной в данном документе, с целью расширения использования, учета, измерения функционирования или обеспечения средств поиска и устранения неисправностей и т.д. Следует понимать, что все такие изменения находятся в объеме настоящего раскрытия.
Кроме того, любая логика или приложение, описанные в данном документе, включая службу 127 выделения адресов и службу 130 наблюдения за сетью, которые содержат программное обеспечение или код, могут быть воплощены в любом постоянном считываемом компьютером носителе для использования системой исполнения команд или совместно с системой исполнения команд, такой как, например, процессор 503 в вычислительной системе или другой системе. В этом смысле, логика может содержать, например, утверждения, включающие команды и объявления, которые могут быть извлечены из считываемого компьютером носителя и исполнены системой исполнения команд. В контексте настоящего раскрытия «машиночитаемый носитель» может быть любым носителем, который может содержать, хранить или поддерживать логику или приложение, описанные в данном документе, для использования системой исполнения команд или совместно с системой исполнения команд.
Различные варианты осуществления раскрытия могут быть описаны в виде следующих пунктов:
1. Постоянный машиночитаемый носитель, воплощающий в себе программу, исполняемую по меньшей мере в одном вычислительном устройстве и содержащую:
код, который первоначально назначает первое выделение сетевых адресов подразделению сети, включающему множество вычислительных устройств, по меньшей мере частично на основе соответствующего типа вычислительного устройства для каждого из вычислительных устройств;
код, который конфигурирует маршрутизатор для подразделения для реализации первого выделения сетевых адресов;
код, который получает данные, указывающие на переконфигурацию вычислительных устройств для размещения в себе увеличенного количества копий машин;
код, который впоследствии назначает второе выделение сетевых адресов подразделению сети по меньшей мере частично на основе переконфигурации вычислительных устройств;
код, который переконфигурирует маршрутизатор для подразделения для реализации второго выделения сетевых адресов;
код, который получает данные, указывающие на последующую переконфигурацию вычислительных устройств, содержащихся в подразделении, для размещения уменьшенного количества копий машин;
код, который высвобождает третье выделение сетевых адресов, назначенное подразделению, по меньшей мере частично на основе последующей переконфигурации вычислительных устройств; и
код, который переконфигурирует маршрутизатор для подразделения для исключения объявления о третьем выделении сетевых адресов.
2. Постоянный машиночитаемый носитель по п. 1, дополнительно содержащий код, который переконфигурирует одно из вычислительных устройств для использования другого сетевого адреса в ответ на третье высвобождаемое выделение сетевых адресов.
3. Постоянный машиночитаемый носитель по п. 1, в котором третье выделение сетевых адресов является поднабором первого выделения сетевых адресов или второго выделения сетевых адресов.
4. Система, содержащая:
по меньшей мере одно вычислительное устройство; и
службу выделения адресов, исполняемую упомянутым по меньшей мере одним вычислительным устройством, при этом служба выделения адресов выполнена с возможностью:
первоначального назначения первого выделения сетевых адресов подразделению сети, причем подразделение включает множество вычислительных устройств;
конфигурирования маршрутизатора для подразделения для реализации первого выделения сетевых адресов;
получения данных, указывающих на переконфигурацию вычислительных устройств;
последующего назначения второго выделения сетевых адресов подразделению сети по меньшей мере частично на основе переконфигурации вычислительных устройств; и
переконфигурации маршрутизатора для подразделения для реализации второго выделения сетевых адресов.
5. Система по п. 4, в которой вычислительные устройства включают множество копий машин, которые используют переменное количество сетевых адресов.
6. Система по п. 4, в которой второе выделение сетевых адресов впоследствии назначается по меньшей мере частично на основе увеличенного количества копий машин, размещаемых на вычислительных устройствах, в соответствии с переконфигурацией вычислительных устройств.
7. Система по п. 4, в которой второе выделение сетевых адресов впоследствии назначается по меньшей мере частично на основе скорости назначения сетевых адресов, связанной с вычислительными устройствами.
8. Система по п. 4, в которой первое выделение сетевых адресов основано по меньшей мере частично на соответствующем типе вычислительного устройства для каждого из вычислительных устройств.
9. Система по п. 8, в которой служба выделения адресов дополнительно выполнена с возможностью:
прогнозирования количества копий машин по меньшей мере для одного из упомянутых вычислительных устройств по меньшей мере частично на основе соответствующего типа вычислительного устройства; и
в которой первое выделение сетевых адресов основано по меньшей мере частично на спрогнозированном количестве копий машин.
10. Система по п. 4, в которой подразделение соответствует стойке, а маршрутизатор соответствует связанному со стойкой маршрутизатору.
11. Система по п. 4, в которой второе выделение сетевых адресов выбирается по меньшей мере частично на основе смежности второго выделения сетевых адресов с первым выделением сетевых адресов.
12. Система по п. 4, в которой первое выделение сетевых адресов и второе выделение сетевых адресов назначаются подразделению в ответ на реализуемое второе выделение сетевых адресов.
13. Система по п. 12, в которой первое выделение сетевых адресов и второе выделение сетевых адресов являются смежными.
14. Система по п. 12, в которой первое выделение сетевых адресов и второе выделение сетевых адресов являются несмежными.
15. Система по п. 14, в которой, в ответ на второе реализуемое выделение сетевых адресов, маршрутизатор выполнен с возможностью объявления о смежном выделении сетевых адресов, которое включает первое выделение сетевых адресов, второе выделение сетевых адресов и третье выделение сетевых адресов, которое смежно с первым выделением сетевых адресов и вторым выделением сетевых адресов и не присвоено подразделению.
16. Система по п. 4, в которой первое выделение сетевых адресов больше не назначается подразделению в ответ на реализуемое второе выделение сетевых адресов.
17. Система по п. 4, в которой второе выделение сетевых адресов включает первое выделение сетевых адресов.
18. Способ, содержащий этапы, на которых:
получают, посредством по меньшей мере одного вычислительного устройства, данные, указывающие на переконфигурацию по меньшей мере одного из множества вычислительных устройств, содержащихся в подразделении сети, причем подразделению назначено выделение сетевых адресов;
определяют, посредством упомянутого по меньшей мере одного вычислительного устройства, высвободить ли назначение первого поднабора выделения сетевых адресов, по меньшей мере частично на основе переконфигурации упомянутого по меньшей мере одного из вычислительных устройств;
высвобождают, посредством упомянутого по меньшей мере одного вычислительного устройства, назначение первого поднабора выделения сетевых адресов в ответ на указанное определение; и
переконфигурируют, посредством упомянутого по меньшей мере одного вычислительного устройства, маршрутизатор для подразделения для объявления о втором поднаборе выделения сетевых адресов вместо выделения сетевых адресов.
19. Способ по п. 18, в котором переконфигурация соответствует уменьшению количества копий машин, размещаемых на упомянутом по меньшей мере одном из вычислительных устройств.
20. Способ по п. 19, дополнительно содержащий этап, на котором определяют, посредством упомянутого по меньшей мере одного вычислительного устройства, удовлетворяет ли количество копий машин пороговой величине для высвобождения первого поднабора выделения сетевых адресов.
21. Способ по п. 18, дополнительно содержащий этап, на котором автоматически переконфигурируют, посредством упомянутого по меньшей мере одного вычислительного устройства, одно из вычислительных устройств в подразделении для использования первого сетевого адреса в первом поднаборе выделения сетевых адресов вместо второго сетевого адреса во втором поднаборе выделения сетевых адресов перед автоматическим переконфигурированием маршрутизатора.
22. Способ по п. 18, в котором первый поднабор выделения сетевых адресов и второй поднабор выделения сетевых адресов являются смежными.
23. Способ по п. 18, в котором первый поднабор выделения сетевых адресов и второй поднабор выделения сетевых адресов являются не смежными.
24. Способ по п.18, дополнительно содержащий этапы, на которых:
получают, в упомянутом по меньшей мере одном вычислительном устройстве, данные, указывающие на последующую переконфигурацию по меньшей мере одного из вычислительных устройств, содержащихся в подразделении;
назначают, в упомянутом по меньшей мере одном вычислительном устройстве, другое выделение сетевых адресов подразделению по меньшей мере частично на основе последующей переконфигурации упомянутого по меньшей мере одного из вычислительных устройств; и
автоматически переконфигурируют, в упомянутом по меньшей мере одном вычислительном устройстве, маршрутизатор для подразделения для объявления о другом выделении сетевых адресов в дополнение ко второму поднабору выделения сетевых адресов.
Машиночитаемый носитель может содержать любой из множества физических носителей, таких как, например, магнитные, оптические или полупроводниковые носители. Более конкретные примеры подходящего считываемого компьютером носителя включают без ограничения магнитные ленты, магнитные гибкие дискеты, накопители на жестких магнитных дисках, карты памяти, твердотельные накопители, карты флэш-памяти с интерфейсом USB или оптические диски. Кроме того, машиночитаемый носитель может быть запоминающим устройством (RAM) с произвольным доступом, включающим, например, статическое запоминающее устройство (SRAM) с произвольным доступом и динамическое запоминающее устройство (DRAM) с произвольным доступом или магнитное запоминающее устройство (MRAM) с произвольным доступом. Кроме того, машиночитаемый носитель может быть постоянным запоминающим устройством (ROM), программируемым постоянным запоминающим устройством (PROM), стираемым программируемым постоянным запоминающим устройством (EPROM), электрически стираемым программируемым постоянным запоминающим устройством (EEPROM) или другим типом запоминающего устройства.
Следует подчеркнуть, что вышеописанные варианты осуществления настоящего раскрытия являются всего лишь возможными примерами вариантов реализации, сформулированными для ясного понимания принципов действия данного раскрытия. Без существенного отступления от сущности и принципов данного раскрытия с вышеописанным(и) вариантом(ами) осуществления может быть совершено множество изменений и модификаций. Подразумевается, что все такие модификации и изменения в данном документе содержатся в объеме данного раскрытия и защищаются нижеследующей формулой изобретения.