ПЕРЕНОС СЛУЖБ ЧЕРЕЗ ГРАНИЦЫ КЛАСТЕРОВ
SERVICE MIGRATION ACROSS CLUSTER BOUNDARIES

УРОВЕНЬ ТЕХНИКИ
[0001] Крупные центры обработки больших объемов данных, как правило, содержат организованные кластеры аппаратных машин, выполняющих наборы стандартных программных пакетов, такие как сетевые обслуживающие узлы, обслуживающие узлы баз данных, и тому подобное. С целью обеспечения отказоустойчивости и администрирования машины в центре обработки данных, как правило, разбиваются на несколько кластеров, которые независимо контролируются и администрируются при помощи платформы, которая координирует ресурсы для программных приложений. В одном варианте осуществления платформой может быть Контроллер Структуры (Fabric Controller) Windows Azure™, например, который предоставляет, поддерживает, контролирует, и распоряжается виртуальными машинами (ВМ) и физическими обслуживающими узлами, которые составляют центр обработки данных.
[0002] В существующих центрах обработки данных каждый абонент разворачивается на отдельном кластере на весь свой жизненный цикл, что позволяет администрировать развертывание абонентов при помощи одной платформы. Эта конфигурация, однако, может ограничивать рост абонента, поскольку расширение ограничивается машинами в пределах одного кластера. Жесткая связь между абонентами и кластерами требует от операторов центра обработки данных сохранять функциональные возможности для кластера на уровне, который будет отвечать потенциальным будущим потребностям абонентов, развернутых на этом кластере. Часто это приводит к тому, что кластеры работают с низким текущим коэффициентом использования в ожидании возможных будущих требований. Даже когда поддерживаются избыточные функциональные возможности, это только повышает вероятность того, что будущие требования абонента будут обеспечены. Нет никакой гарантии, что запрос масштабирования абонента будет ограничен зарезервированными функциональными возможностями и, следовательно, иногда абонент может не получить необходимые функциональные возможности.
[0003] Ограничение службы одним кластером создает также и единую точку отказа для этой службы. Если платформа, управляющая этим кластером, выходит из строя, то весь кластер выходит из строя, и все службы, поддерживаемые на кластере, будут недоступны.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Настоящий раздел «Сущность изобретения» приводится для того, чтобы в упрощенной форме представить выбор концепций, которые ниже дополнительно описаны в разделе «Подробное описание изобретения». Этот раздел «Сущность изобретения» не предназначен для выявления ключевых признаков или основных признаков заявленного предмета изобретения, а также не предназначен для использования с целью ограничения объема заявленного предмета изобретения.
[0005] Варианты осуществления настоящего изобретения позволяют службе абонентов перемещаться между несколькими кластерами с перерывом в работе или без этого. Служба связывается с конкретным IP-адресом в кластере. Пользователи получают доступ к службе, используя доменное имя, которое переводится в IP-адрес при помощи системы доменных имен (DNS - domain name system) или другой службы сетевого расположения. IP-адрес службы может изменяться или не изменяться при перемещении службы между кластерами.
[0006] Служба может быть перенесена с перерывом в работе посредством подготовки нового экземпляра службы на новом кластере, ожидания готовности нового экземпляра, остановки после этого исходного экземпляра и установления указания DNS-имени упомянутой службы на IP-адрес, соответствующий новому развертыванию службы на новом кластере.
[0007] В соответствии с другим вариантом, служба может быть перенесена на новый кластер с перерывом в работе и может оставлять за собой исходный IP-адрес. Это позволило бы избежать необходимости перепрограммирования DNS и связанных с этим задержек при повторной загрузке промежуточного буфера DNS.
[0008] Дополнительный альтернативный вариант для переноса службы состоит в том, чтобы выполнить перенос без перерыва в работе, перемещая службу по частям таким образом, чтобы служба всегда выполнялась на каком-то одном или на обоих кластерах в течение всего перемещения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] В целях дополнительного пояснения вышеупомянутых и других преимуществ и признаков вариантов осуществления настоящего изобретения более подробное описание вариантов осуществления настоящего изобретения предоставлено ниже со ссылкой на прилагаемые чертежи. Следует понимать, что эти чертежи изображают лишь типичные варианты осуществления настоящего изобретения и не должны, следовательно, рассматриваться как ограничивающие его объем. Настоящее изобретение будет описано и объяснено с дополнительной конкретизацией и подробностями с использованием прилагаемых чертежей, на которых:
[0010] Фиг. 1 является структурной схемой, иллюстрирующей устройство переноса абонента, которое используется для перемещения служб по разным кластерам.
[0011] Фиг. 2 иллюстрирует перенос службы, который имеет перерыв в работе службы и требует перепрограммирования DNS.
[0012] Фиг. 3 иллюстрирует перенос службы, который имеет перерыв в работе службы, но который сохраняет IP-адрес службы.
[0013] Фиг. 4 иллюстрирует перенос службы, который устраняет перерыв в работе и сохраняет IP-адрес службы.
[0014] Фиг. 5 иллюстрирует пример подходящей вычислительной и сетевой среды для устройства переноса абонента.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0015] Фиг. 1 является структурной схемой, иллюстрирующей средство 11 переноса абонента, которое используется для перемещения служб по разным кластерам 12, 13. Средство 11 переноса абонента соединено со всеми кластерами в центре обработки данных. После того как оператор центра обработки данных принимает решение о перемещении службы между кластерами, например, чтобы сбалансировать коэффициент использования или чтобы соответствовать требованиям абонента, средство 11 переноса абонента идентифицирует надлежащий целевой кластер для службы. Выбор целевого кластера может быть основан на таких факторах, как коэффициент использования потенциальных целевых кластеров, текущие требования к обслуживанию, предъявляемые службой, и т.д. После идентификации целевого кластера средство 11 переноса абонента перемещает службы посредством создания/удаления экземпляров на ВМ 14, 15 на исходном и новом кластере.
[0016] Средство 11 переноса абонента задает, выполняется ли перенос с перерывом в работе или без этого, по выбору оператора. Средство 11 переноса абонента может запросить обновление DNS-записей, если службе назначается новый IP-адрес, или может переместить IP-адрес на новый кластер, если служба поддерживает тот же самый адрес. Присутствие службы является взаимоисключающим во время переноса. Например, при переносе службы средство 11 переноса абонента гарантирует, что никогда не выполняется одновременно два экземпляра службы с точки зрения потребителя.
[0017] Фиг. 2 иллюстрирует перенос службы, который имеет перерыв в работе службы и требует перепрограммирования DNS, согласно одному варианту осуществления. Средство 21 переноса абонента идентифицировало службу, выполняющуюся на кластере 22, которая должна быть перемещена на кластер 23. Старой службе назначен старый IP-адрес на кластере 22. На этапе 201 средство 21 переноса абонента идентифицирует и копирует служебные артефакты, такие как код, биты, сертификаты, модели и т.д. из кластера 22. С использованием этих артефактов новая служба создается на этапе 202 на кластере 23, но служба не запускается.
[0018] Средство 21 переноса абонента предписывает новому кластеру 23 провести подготовку новой службы, на этапе 203. Кластер 23 выбирает подходящие узлы и устанавливает машины ВМ для выполнения службы, на этапе 204. Новый IP-адрес на кластере 23 назначается для новой службы. Кластер 23 не запускает службу в этот момент. Средство 21 переноса абонента ждет, на этапе 206, проведения подготовки службы на новом кластере, о чем извещается, например, на этапе 205.
[0019] После проведения подготовки новой службы средство 21 переноса абонента останавливает старую службу на этапе 207 а затем запускает новую службу на этапе 208. Старая служба удаляется из кластера 22 на этапе 209, что освобождает место для других служб, выполняющихся на этом кластере, для их расширения или добавления.
[0020] Затем средство переноса абонента обновляет центральную DNS-запись, на этапе 210, так что устанавливается указание доменного имени для службы на подходящий новый IP-адрес на кластере 23. Обновления DNS-записи могут быть выполнены одновременно с этапами 207 и 208, пока старая служба останавливается, а новая служба запускается.
[0021] Существует период между остановкой старой службы на этапе 207 и запуском новой службы на этапе 208, когда служба не будет доступна пользователям. Кроме того, если пользователи получают доступ к службе, используя доменное имя, то может быть дополнительная задержка, пока DNS-записи обновляются со старого IP-адреса на новый IP-адрес для доменного имени службы. Поскольку DNS поддерживает много локальных промежуточных кэшей, распределенных по сети Интернет, требуется время для обновления всех этих промежуточных кэшей. После обновления центральных DNS-записей локальные промежуточные кэши DNS очищаются и обновляются с использованием нового IP-адреса. Пока не произойдут эти обновления, пользователи будут направляться на старый кластер 22, на котором служба больше не выполняется и, следовательно, попытки использовать службу будут неудачными.
[0022] Фиг. 3 иллюстрирует перенос службы, который имеет перерыв в работе службы, но который сохраняет IP-адрес службы, согласно одному варианту осуществления. Средство 31 переноса абонента идентифицировало службу, выполняющуюся на кластере 32, которая должна быть перемещена на кластер 33. Старой службе назначен IP-адрес на кластере 32. На этапе 301 средство 31 переноса абонента идентифицирует и копирует служебные артефакты, такие как код, биты, сертификаты, модели и т.д., из кластера 32. С использованием этих артефактов, новая служба создается на этапе 302 на кластере 33, но служба не запускается.
[0023] Средство 31 переноса абонента предписывает новому кластеру 33 провести подготовку новой службы, на этапе 303. Кластер 33 выбирает подходящие узлы и устанавливает машины ВМ для выполнения службы, на этапе 304. Кластер 33 не запускает службу в этот момент. Средство 31 переноса абонента ждет, на этапе 306, проведения подготовки службы на новом кластере, о чем извещается, например, на этапе 305.
[0024] После проведения подготовки новой службы средство 31 переноса абонента останавливает старую службу, на этапе 307. На этапе 308 IP-адрес для службы удаляется из кластера 32.
[0025] IP-адрес для службы добавляется в кластер 33 на этапе 309, и новая служба на кластере 33 запускается на этапе 310.
[0026] Наконец, старая служба удаляется из кластера 32 на этапе 311, что освобождает место для других служб, выполняющихся на этом кластере, для их расширения или добавления.
[0027] Поскольку IP-адрес для службы не изменился, средство переноса абонента не должно обновлять DNS-записи, как требовалось в процессе, показанном на Фиг. 2. Таким образом, существует период между остановкой старой службы на этапе 307 и запуском новой службы на этапе 310, когда служба не будет доступна пользователям. Однако, как только новая служба запущена, пользователи могут по-прежнему получить доступ к службе, используя доменное имя, без ожидания какого-то времени задержки из-за обновления DNS-записи. Локальные кэши DNS будут правильными, поскольку доменное имя для службы по-прежнему будет связано с тем же самым IP-адресом для службы.
[0028] Фиг. 4 иллюстрирует перенос службы, который устраняет перерыв в работе и сохраняет IP-адрес службы, согласно одному варианту осуществления. Средство 41 переноса абонента идентифицировало службу, выполняющуюся на кластере 42, которая должна быть перемещена на кластер 43. Старой службе назначен старый IP-адрес на кластере 42. На этапе 401 средство 41 переноса абонента идентифицирует и копирует служебные артефакты, такие как код, биты, сертификаты, модели, и т.д., из кластера 42. С использованием этих артефактов новая служба создается на этапе 402 на кластере 43, но служба не запускается.
[0029] Средство 41 переноса абонента предписывает новому кластеру 43 провести подготовку новой службы, на этапе 403. Кластер 43 выбирает подходящие узлы и устанавливает машины ВМ для выполнения службы, на этапе 404. Один и тот же IP-адрес используется для службы как на кластере 42, так и на кластере 43. Средство 41 переноса абонента ждет, на этапе 406, проведения подготовки службы на новом кластере, о чем извещается, например, на этапе 405.
[0030] После проведения подготовки новой службы средство 41 переноса абонента останавливает часть старой службы, на этапе 407. Затем средство 41 переноса абонента запускает соответствующую часть новой службы, на этапе 408. Сеть также обновляется по мере необходимости, на этапе 408, чтобы соединить запущенные части старой и новой службы, а так же подсистемы балансировки нагрузки и другие компоненты обеспечения маршрутизации, чтобы позволить им устанавливать указание на запущенную службу на всех кластерах 42, 43. В отличие от процессов, показанных на Фиг. 2 и 3, только часть службы (например, выбранное число ВМ или экземпляров) останавливается на этапе 407, а затем запускается на этапе 408. Средство переноса абонента ждет, на этапе 409, когда часть, которая была запущена на новом кластере, будет готова для использования.
[0031] После того как новая часть готова на этапе 409, средство переноса абонента повторяет (410) этапы 407-409 для следующей части службы. Эти этапы продолжаются в цикле 410, пока вся служба не будет по частям перемещена со старого кластера 42 на новый кластер 43. В одном варианте осуществления служба, требующая одной области обновления, перемещается за один раз во время каждого прохода цикла 410. Абонент может быть готов потерять область модификации во время модификаций службы, так что эти сегменты могут использоваться, чтобы разделить службу для переноса между кластерами.
[0032] После перемещения всех частей службы в цикле 410 старая служба удаляется из кластера 42, на этапе 411.
[0033] Поскольку IP-адрес для службы не изменился, средство переноса абонента не должно обновлять DNS-записи, как это делалось в процессе, показанном на Фиг. 2. Отсутствует период, в течение которого служба остановлена на обоих кластерах. Соответственно, служба всегда будет доступна пользователям без перерыва в работе.
[0034] Фиг. 5 иллюстрирует пример подходящей вычислительной и сетевой среды, в которой могут быть реализованы примеры, изображенные на Фиг. 1-4. Например, средство 11 переноса абонента и/или ВМ 14, 15 могут быть размещены на одной или нескольких вычислительных системах 500. Вычислительная системная среда 500 является лишь одним примером подходящей вычислительной среды и не предполагает указания на какое-либо ограничение области применения или функциональных возможностей настоящего изобретения. Множество таких вычислительных систем 500 могут быть сгруппированы для поддержки кластеров 11, 12 в центре обработки данных, например. Настоящее изобретение способно работать с многочисленными другими вычислительными системными средами или конфигурациями общего или специального назначения. Примеры общеизвестных вычислительных систем, сред и/или конфигураций, которые могут быть пригодны для использования с настоящим изобретением, включают в себя, но не ограничиваются этим: персональные компьютеры, служебные компьютеры, карманные или портативные устройства, планшетные устройства, многопроцессорные системы, системы на базе микропроцессоров, телевизионные абонентские приставки, программируемую бытовую электронику, сетевые ПК, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, и тому подобное.
[0035] Настоящее изобретение может быть описано в общем контексте исполняемых компьютером инструкций, таких как программные модули, исполняемые компьютером. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Настоящее изобретение также может быть осуществлено на практике в распределенных вычислительных средах, когда задачи выполняются удаленными устройствами обработки, которые взаимосвязаны через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены на локальных и/или удаленных компьютерных носителях данных, в том числе запоминающих устройствах.
[0036] Обратимся к Фиг. 5, иллюстративная система для реализации различных аспектов настоящего изобретения может включать в себя вычислительное устройство общего назначения в форме компьютера 500. Компоненты могут включать в себя, но не ограничиваются этим, различные аппаратные компоненты, такие как блок 501 обработки, хранилище 502 данных, такое как системная память, и системную шину 503, которая подсоединяет различные системные компоненты, в том числе хранилище 502 данных, к блоку 501 обработки. Системная шина 503 может быть любой из нескольких типов шинных структур, в том числе шиной памяти или устройством управления памятью, шиной периферийных устройств и локальной шиной, использующей любую из множества шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину Промышленной Стандартной Архитектуры (ISA - Industry Standard Architecture), шину Микроканальной Архитектуры (MCA -Micro Channel Architecture), шину Расширенной ISA (EISA - Enhanced ISA), локальную шину стандарта Ассоциации по стандартам в области видеоэлектроники (VESA - Video Electronics Standards Association), и шину Взаимодействия Периферийных Компонентов (PCI - Peripheral Component Interconnect), также известную как шина второго уровня.
[0037] Компьютер 500, как правило, включает в себя множество машиночитаемых носителей 504. Машиночитаемые носители 504 могут быть любыми доступными носителями, к которым можно получить доступ при помощи компьютера 500, и включают в себя как энергозависимые, так и энергонезависимые носители, а также съемные и несъемные носители, но не включают в себя передаваемые сигналы. В качестве примера, но не ограничения, машиночитаемые носители 504 могут содержать компьютерные носители данных и средства связи. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но не ограничиваются этим, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или память, изготовленную по другой технологии, CD-ROM, цифровые универсальные диски (DVD - digital versatile disk) или другое хранилище на оптических дисках, магнитные кассеты, магнитную ленту, хранилище на магнитных дисках или другие магнитные устройства хранения данных, или любой другой носитель, который может использоваться для хранения требуемой информации, и к которому можно получить доступ при помощи компьютера 500. Средства связи, как правило, воплощают машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или иной транспортный механизм, и включают в себя любые средства доставки информации. Термин «модулированный сигнал данных» означает сигнал, у которого одна или более его характеристик установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, средства связи включают в себя проводные среды передачи данных, такие как проводная сеть или прямое проводное соединение, и беспроводные среды передачи данных, такие как акустические, РЧ, инфракрасные и другие беспроводные среды передачи данных. Любые комбинации из вышеперечисленного тоже могут подпадать под определение машиночитаемых носителей. Машиночитаемые носители могут быть воплощены в виде компьютерного программного продукта, такого как программное обеспечение, сохраненное на компьютерных носителях данных.
[0038] Хранилище данных или системная память 502 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, такие как постоянное запоминающее устройство (ПЗУ) и оперативное запоминающее устройство (ОЗУ). Базовая система ввода/вывода (БСВВ, BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в пределах компьютера 500, например, во время начальной загрузки, как правило, хранится в ПЗУ. ОЗУ, как правило, содержит данные и/или программные модули, которые непосредственно доступны для блока 501 обработки и/или которыми он оперирует в данный момент. В качестве примера, но не ограничения, в хранилище 502 данных помещается операционная система, прикладные программы, и другие программные модули и программные данные.
[0039] Хранилище 502 данных также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. Лишь в качестве примера хранилищем 502 данных может быть накопитель на жестких дисках, который считывает или записывает на несъемный, энергонезависимый магнитный носитель, накопитель на магнитных дисках, который считывает или записывает на съемный, энергонезависимый магнитный диск, и накопитель на оптических дисках, который считывает или записывает на съемный, энергонезависимый оптический диск, такой как CD-ROM или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в иллюстративной операционной среде, включают в себя, но не ограничиваются этим, кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопители и связанные с ними компьютерные носители данных, описанные выше и показанные на Фиг. 5, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 500.
[0040] Пользователь может вводить команды и информацию посредством интерфейса 505 пользователя или других устройств ввода, таких как планшет, электронный цифровой преобразователь, микрофон, клавиатура и/или координатно-указательное устройство, обычно называемое мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода могут включать в себя рычажный указатель, игровую панель, спутниковую антенну, сканирующее устройство и тому подобное. Дополнительно, голосовой ввод данных, ввод посредством жестов с помощью рук или пальцев или другой естественный пользовательский интерфейс (NUI - natural user interface) тоже может использоваться с подходящими устройствами ввода, такими как микрофон, камера, планшет, сенсорная панель, перчатка или другой чувствительный элемент. Эти и другие устройства ввода часто соединяются с блоком 501 обработки через интерфейс 505 ввода данных пользователем, который подсоединяется к системной шине 503, но может соединяться при помощи других интерфейсных и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB - universal serial bus). Монитор 506 или устройство отображения другого типа также соединяется с системной шиной 503 через интерфейс, такой как видеоинтерфейс. Монитор 506 также может быть совмещен с сенсорной экранной панелью или тому подобным. Следует отметить, что монитор и/или сенсорная экранная панель могут быть физически подсоединены к корпусу, в который вмонтировано вычислительное устройство 500, например, в персональном компьютере планшетного типа. Помимо этого компьютеры, такие как вычислительное устройство 500, также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители и печатающее устройство, которые могут соединяться через выходной периферийный интерфейс, или тому подобное.
[0041] Компьютер 500 может работать в сетевой среде или в среде облачных вычислений, используя логические соединения 507 с одним или более удаленными устройствами, такими как удаленный компьютер. Удаленный компьютер может быть персональным компьютером, обслуживающим узлом, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом, и, как правило, включает в себя многие или все элементы, описанные выше применительно к компьютеру 500. Логические соединения, изображенные на Фиг. 5, включают в себя одну или более локальных вычислительных сетей (ЛВС) и одну или более глобальных вычислительных сетей (ГВС), но могут также включать в себя и другие сети. Такие сетевые среды представляют собой обычное явление в офисах, корпоративных компьютерных сетях, сетях интранет и Интернет.
[0042] При использовании в сетевой среде или в среде облачных вычислений компьютер 500 может быть соединен с общедоступной или частной сетью через сетевой интерфейс или устройство 507 сопряжения. В некоторых вариантах осуществления устройство модуляции/демодуляции или другое средство для установления связи по сети. Устройство модуляции/демодуляции, которое может быть внутренним или внешним, может быть соединено с системной шиной 503 посредством сетевого интерфейса 507 или другого подходящего механизма. Беспроводной сетевой компонент, например, содержащий интерфейс и антенну, может быть подсоединен к сети через специальное устройство, такое как точка доступа или одноранговый компьютер. В сетевой среде программные модули, изображенные применительно к компьютеру 500, или их части могут храниться на удаленном запоминающем устройстве. Можно понять, что продемонстрированные сетевые соединения являются иллюстративными, и могут быть использованы другие средства установления линии связи между компьютерами.
[0043] Несмотря на то что предмет изобретения был описан в терминах, предназначенных для структурных признаков и/или относящихся к методике действий, нужно понимать, что предмет изобретения, определяемый в прилагаемой формуле изобретения, не обязательно ограничивается конкретными признаками или действиями, описанными выше. Скорее, конкретные признаки и действия, описанные выше, раскрываются как типовые формы реализации формулы изобретения.