Вычисления в облаке: перенос виртуальных машин в облако

Работа виртуальных машин в Windows Azure сочетает преимущества виртуализации и облачных вычислений.

Джошуа Хоффман (Joshua Hoffman)

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

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

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

С введением роли виртуальной машины (ВМ) в платформе Windows Azure эти мощные концепции совместно используются для размещения виртуальной инфраструктуры в облаке. В скором времени вы сможете создавать виртуальные машины для Windows Azure и выполнять их развертывание в облаке, в котором можно использовать гибкую и масштабируемую инфраструктуру и соответствующее снижение издержек.

В настоящий момент доступна только бета-версия роли ВМ Windows Azure. Подробные сведения о программе бета-тестирования можно узнать на сайте Windows Azure Compute. Для регистрации в программе бета-тестирования посетите раздел «Beta Programs» (Программы бета-тестирования) на портале управления Windows Azure. Поскольку пока доступна только бета-версия роли ВМ, содержащаяся в данном документе, может быть изменена.

Создание приложений для облака

Роль ВМ для Windows Azure схожа с другими серверными ролями. ВМ в Windows Azure работают под управлением ОС Windows Server. Различие роли ВМ в том, что можно создавать, настраивать и управлять образом сервера в соответствие с вашими требованиями и спецификациями.

Существует ряд операционных различий, которые следует иметь в виду при запуске ВМ в Windows Azure, а не на локальном оборудовании. Прежде всего, некоторые сетевые функции ограничены. Например, для использования протокола UDP (User Datagram Protocol) необходимо также использовать Windows Azure Connect. Кроме того, экземпляр роли ВМ в Windows Azure не имеет постоянного состояния.

Рекомендуется использовать службы Windows Azure в постоянном состоянии, записав их в объект blob или на диск Windows Azure. Подробнее об этом см. в статье «Разработка адаптера для роли ВМ в Windows Azure».

Данные, записанные в локальном каталоге хранения ресурсов, сохраняются при повторном создании экземпляра сервера. Однако эти данные могут быть потеряны в случае кратковременно сбоя в Windows Azure, что потребует переноса экземпляра роли ВМ на другое оборудование.

Учитывая эти условия, процесс создания ВМ для Windows Azure сходен с созданием любой другой ВМ. Начните с создания базового виртуального жесткого диска (VHD), создав пустой VHD с помощью Hyper-V Manager, изменив существующий VHD или преобразовав установку физического сервера в VHD. (Дополнительные сведения см. в статье «Источники новых виртуальных машин».)

Базовый образ содержит ОС (которая должна быть Windows Server 2008 R2), все изменения ОС и необходимые приложения. Необходимо разрешить роль Hyper-V в Server Manager, а также установить Windows Azure SDK (который включает компоненты интеграции Windows Azure). Также не помешает включить установочный Windows Server 2008 R2 (обычно ISO-файл) в базовый образ, на случай, если он потребуется для таких задач, как установка дополнительных компонентов.

Затем установите компоненты интеграции Windows Azure. Они требуются на каждом образе сервера, чтобы они могли быть загружены в Windows Azure. Эти компоненты запускаются при каждом запуске ОС, и они интегрируют ОС роли ВМ с Windows Azure.

Компоненты работают с балансировщиком нагрузки для сообщения состояния экземпляров. Компоненты также инициализируют ВМ путем установки сертификатов и создания каталогов локальных ресурсов на основе параметров определения службы. Подробные этапы установки компонентов описаны в статье «Установка компонентов интеграции Windows Azure».

Разработка «адаптера» — это следующий дополнительный шаг процесса создания образа. При разработке и загрузке специального образа сервера вы устанавливаете и настраиваете программное обеспечение для работы в динамической среде Windows Azure. Может потребоваться указать сведения о конфигурации для приложения, которые могут быть недоступны во время разработки. Их необходимо получить во время выполнения. Рекомендуется настроить приложения для динамической среды, написав адаптер, взаимодействующий с Windows Azure и подготавливающий и выполняющий приложение.

Написать адаптер можно двумя способами:

  • Можно написать адаптер, выполняющийся на этапе specialization. Это происходит при настройке ОС после первой загрузки образа сервера в Windows Azure или после повторного создания образа экземпляра. Можно создать этот адаптер без написания кода, используя один из двух подходов. Выполнение сценария из файла ответов или поставщика, написанного для инструмента System Preparation (sysprep). Подробные сведения см. в разделе «Создание проекта установки для адаптера» на странице «Разработка адаптера для роли ВМ в Windows Azure» в библиотеке MSDN.
  • Можно написать адаптер как службу Windows, автоматически запускающуюся при каждом запуске ОС. Этот тип адаптера можно написать с помощью управляемого или собственного кода. Он использует API среды выполнения службы Windows Azure для сбора динамических данных из среды Windows Azure. Подробные сведения см. в разделе «Определение действий при запуске адаптера» на странице «Разработка адаптера для роли ВМ в Windows Azure» в библиотеке MSDN.

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

После завершения процесса установки и настройки, последний этап создания образа — его подготовка к загрузке в Windows Azure. Для этого используется инструмент sysprep. Инструмент sysprep «обобщает» образ, удаляя все уникальные идентификаторы безопасности (SID), чтобы система Windows Azure могла снова установить их для определенных экземпляров при развертывании машины. Для завершения последнего этапа подготовки образа выполните следующее.

  • Откройте окно командной строки как администратор.
  • Перейдите в каталог %windir%\system32\sysprep и запустите sysprep.exe.
  • В диалоговом окне System Preparation Tool выберите Enter System Out-of-Box Experience (OOBE) (Введите системный OOBE (Out-of-Box Experience)) для System Cleanup Action (Действие очистки системы).
  • Убедитесь, что выбрано Generalize (Обобщение).
  • Выберите Shutdown (Завершение работы) для Shutdown Options (Режимы завершения работы).
  • Нажмите кнопку ОК.

По завершении работы инструмента sysprep работа ВМ будет завершена. Теперь можно приступить к развертыванию.

Развертывание ВМ в Windows Azure

Первый этап развертывания образа системы — настройка сертификатов служб и управления. При загрузке файла .vhd в Windows Azure он использует сертификат x.509, сохраненный как файл .cer, для проверки подлинности (называется сертификатом управления на портале управления Windows Azure). Также необходим сертификат обмена личной информацией, сохраненный как файл .pfx (называется сертификатом службы на портале управления Windows Azure), если планируется удаленный доступ к экземпляру роли ВМ.

Вы можете заверять эти сертификаты самостоятельно. Другими словами, их не требуется приобретать у стороннего поставщика. Их можно создавать с помощью инструмента makecert.exe. Подробные инструкции по созданию сертификатов содержатся в статье «Создание сертификата для роли

После создания сертификата его можно добавить на портале управления Windows Azure. Выберите Hosted Services, Storage Accounts & CDN (Размещенные службы, учетные записи хранилищ и CDN), затем выберите Management Certificates (Сертификаты управления) или Hosted Services (Размещенные службы) (для сертификатов служб).

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

  1. Войдите в систему портала управления.
  2. Выберите Hosted Services, Storage Accounts & CDN (Размещенные службы, учетные записи хранилищ и CDN), затем Management Certificates (Сертификаты управления).
  3. На панели «Properties» (Свойства) можно найти отпечаток сертификата в разделе Thumbprint (Отпечаток). Идентификатор подписки находится в разделе Subscription ID (Идентификатор подписки).

После нахождения отпечатка сертификата и идентификатора подписки можно загрузить VHD.

Чтобы загрузить образ, выполните следующее.

  1. Откройте окно командной строки Windows Azure SDK как администратор.
  2. Перейдите в каталог, в котором сохранен образ VHD.
  3. Установите строку подключения со следующей команде и замените SubscriptionId и CertThumbprint значениями из подписки:

csupload Set-Connection "SubscriptionId=SubscriptionId; CertificateThumbprint=CertThumbprint"

  1. Загрузите VHD с помощью следующей команды и замените имя файла VHD и отображаемое имя:

csupload Add-VMImage –LiteralPath VHDName.vhd –Location LocationValue –Name DisplayedNameInPortal

Появится диалоговое окно для инструмента Windows Azure VHD Verification Tool. Этот инструмент проверяет, что ОС находится в правильном состоянии и готово к загрузке в Windows Azure. Нажмите «OK», чтобы продолжить процесс загрузки.

Имейте в виду, что –LiteralPath и –Location (или –AffinityGroup), это обязательные параметры. Параметр –Name необязателен. Расположение группы по интересам должно соответствовать расположению или группе по интересам, определенной для соответствующей размещенной службы.

Создание модели служб — последний этап развертывания. Для работы экземпляра роли ВМ в Windows Azure необходимо определить модель служб, создав определение службы и файлы конфигурации службы. Подробные инструкции см. в статье в библиотеке MSDN «Создание и развертывание модели служб роли ВМ».

После того, как ВМ работает в Windows Azure, необходимо сохранить локальную копию исходного VHD в безопасном месте. При необходимости внесения изменений VHD в будущем, например, для применения обновлений или обновления приложений, можно использовать различные диски. Подробные инструкции по использованию различных дисков для обслуживания ВМ доступны в статье: “Приступая к изменению образа сервера для роли ВМ в Windows Azure.”

 

Joshua Hoffman

Джошуа Хоффман (Joshua Hoffman)* — бывший главный редактор журнала* TechNet Magazine. Сейчас он является независимым автором и консультантом по технологиям и маркетингу в сфере потребительского спроса. Также Хоффман является главным редактором сайта ResearchAccess.com, посвященного развитию и привлечению новых специалистов в сообщество исследования рынка. Он живет в Нью-Йорке.

Материалы по теме