|
|
|||||||||||||||||||||||||||||
|
Создание Linux- и Windows-образов для частных облаков OpenStackИсточник: wwwibmcom
В статье предлагается новый способ построения образов Linux® и Windows® для частных облаков, созданных с помощью облачной операционной системы OpenStack. Нынешние методы создания образов для сред OpenStack являются весьма обременительными и трудоемкими. Авторы статьи предлагают интерактивную, основанную на самообслуживании методику, которая упрощает построение образов как операторам частных облаков, так и их конечным пользователям Облачная операционная система OpenStack с открытым исходным кодом - это функционально насыщенная, обладающая высокой степенью масштабируемости платформа для всех типов облачных вычислений. На OpenStack базируются несколько публичных облачных сервисов, а также реализации частных облаков во многих организациях. Однако платформе OpenStack по-прежнему не хватает многих функций для частных облаков, особенно для сред, ориентированных на разработку и тестирование. К примеру, построение образов является весьма непростым процессом. В данной статье предлагается новый, более совершенный метод создания образов для частных облаков OpenStack. Мы проверили этот новый метод на платформе QEMU/KVM, однако теоретически он также применим для других гипервизорных платформ. Прежде чем рассматривать новый метод, коротко напомним, как в настоящее время создаются образы в OpenStack. Существующие способы создания образов в среде OpenStackПроцессы создания Linux-образов или Windows-образов в OpenStack состоят из нескольких трудоемких шагов. Linux-образыВ официальном руководстве OpenStack Virtual Machine Image Guide детально описано семь требований, которые должны быть удовлетворены, чтобы Linux-образ был полностью функционален в облаке OpenStack (некоторые из этих требований можно выполнить посредством установки пакета Linux-образы можно создавать в ручном режиме или с помощь соответствующих инструментов (VMBuilder, Oz или imagefactory) для конкретных дистрибутивов. Вне зависимости от используемого метода, чтобы приступить к созданию собственного Linux-образа, вам потребуются следующие элементы.
Если все необходимые условия выполнены, можно приступать к созданию собственных Linux-образов согласно следующим обобщенным шагам.
Windows-образыВеб-сайт OpenStack до сих пор не содержит подробного примера создания Windows-образов. Чтобы создаваемые вами Windows-образы были полностью функциональными, необходимо как минимум выполнить следующие шаги.
Для большинства вариантов использования частного облака последние два шага в этом списке не обязательны. Кроме того, разбиение диска на разделы и изменение размеров root-раздела при начальной загрузке можно осуществить вручную или с помощью скрипта. Чтобы Windows-образы могли работать в облаке OpenStack, необходимо установить драйвер VirtIO. Кроме того, необходимо установить пакет драйверов VirtIO-Win. После удовлетворения вышеописанных минимальных требований процесс создания Windows-образа выглядит следующим образом.
В качестве альтернативного варианта выполните следующие шаги.
НедостаткиНесмотря на некоторые преимущества (такие как широкая доступность инструментов с открытым исходным кодом для создания Linux-образов), нынешние методы создания образов для OpenStack нельзя назвать простыми. Создание Windows-образов может показаться несколько проще, чем создание Linux-образов, поскольку нет необходимости изменять образы с помощью таких инструментов, как Создание как Linux-, так и Windows-образов для частного облака является трудоемкой работой для конечных пользователей - и даже для опытных облачных операторов. Более того, организация может не располагать достаточными ресурсами для создания образов конечными пользователями - например, дополнительным гипервизором KVM/QEMU, который требуется для создания Linux-образов. В описываемом сценарии создание всех образов, которые требуются конечным пользователям, превратилось бы в сложнейшую задачу для облачных операторов. И, наконец, новые образы необходимо загружать в сервис образов OpenStack. Этот процесс может занимать много времени в зависимости от производительности сети между источником образа и сервисом образов платформы OpenStack. По этой же причине неоднократная верификация новых образов также может занимать много времени. Предлагаемый новый метод построения образов для OpenStackЕсли бы платформа OpenStack позволяла пользователям создавать образы в диалоговом режиме, то им было бы гораздо легче создавать такие образы, которые бы полностью удовлетворяли их потребности. Мы предлагаем новый метод создания образов, при котором пользователи создают новые образы в диалоговом режиме с помощью информационной панели OpenStack, предоставляемой облачный сервисом. При наличии такой возможности конечные пользователи не нуждаются в дополнительном гипервизоре и не обязаны сами загружать образы в сервис образов платформы OpenStack. Пользователю достаточно иметь файлы ISO-образов CD/DVD-дисков для установки ОС. Концептуальное представлениеВ концептуальном смысле идеальный процесс создания нового образа для платформы OpenStack применительно к конечным пользователям выглядит следующим образом.
Предварительные условияЧтобы гарантировать успешное создание образов с помощью нового метода, необходимо соблюдение нескольких условий.
Теперь мы продемонстрируем осуществимость нового метода. Анализ осуществимостиДва самых важных аспекта нашего нового метода - как осуществляется поддержка ISO-образа и как осуществляется сборка блочного устройства для экземпляра, запущенного из ISO-образа. Нынешняя поддержка ISO-образовПлатформа OpenStack поддерживает ISO-образы. Запуск экземпляра из ISO-образа также поддерживается. Однако установка гостевой ОС из ISO-образа в экземпляр, запущенный из ISO-образа, поддерживается недостаточно полно. Чтобы установка оказалась успешной, должны быть соблюдены определенные строгие условия.
При соблюдении всех этих условий гостевую ОС из ISO-образа можно успешно установить на временном диске экземпляра, запущенного из этого ISO-образа. И, конечно, вы сможете работать под управлением гостевой ОС, как и с другими экземплярами. Однако нынешний механизм OpenStack для снимка экземпляра не позволяет успешно преобразовать экземпляр в снимок экземпляра или в образ экземпляра. Снимок экземпляра будет включать только root-диск экземпляра. Другие блочные устройства (block device), в том числе временные диски и тома, будут проигнорированы. Нынешний порядок операций для сборки блочных устройств экземпляраНа рис. 1 показан порядок операций для сборки блочных устройств в среде OpenStack Nova в случае начальной загрузки KVM/QEMU-экземпляра из ISO-образа. Нынешний порядок операций для сборки блочных устройств
Пояснения по потоку работ на рис. 1.
На первый взгляд вышеописанный порядок операций позволяет создать новый образ виртуальной машины "с нуля". Однако получаемый в этом случае образ является копией исходного ISO-образа. Это объясняется тем, что в снимок включается только root-диск (первое блочное устройство экземпляра, фактически это CD-ROM экземпляра, если он был запущен из ISO-образа), а временный диск игнорируется. Таким образом, на нынешней платформе OpenStack вы сможете запустить экземпляры из ISO-образа и установить ОС в ISO-образе для запущенных экземпляров со сконфигурированным временным диском, однако вы не сможете сделать снимок временного диска с установленной ОС. Чтобы преодолеть эту проблему, необходимо скорректировать порядок операций по сборке блочных устройств экземпляра. Предлагаемый новый порядок операций для сборки блочных устройств экземпляраВы можете изменить сборку блочного устройства таким образом, чтобы создавать временный диск, который имеет надлежащие размеры и гарантированно настроен как root-диск для экземпляров, запущенных из ISO-образа. После таких изменений root-диск, включенный в снимок экземпляра, будет временным диском с установленной ОС - а это именно то, что нам нужно. На рис. 2 показан порядок операций для сборки блочных устройств в случае начальной загрузки экземпляра из ISO-образа после внесений изменений в драйвер Измененный порядок операций для сборки блочных устройств
Измененный порядок операций по сборке блочного устройства при запуске экземпляра из ISO-образа выглядит следующим образом.
Как было указано в разделе Нынешняя поддержка ISO-образов, снимок экземпляра включает только корневой диск экземпляра, вне зависимости от типа этого корневого диска. В измененном потоке работ корневой диск - это новый дисковый файл, созданный Nova; он содержит гостевую ОС, установленную с CD-ROM-устройства с образом ОС (второй диск экземпляра). Когда мы и планировали, результатом является снимок нового экземпляра, установленного из ISO-образа ОС - вместо копии исходного ISO-образа. Подтверждение концепцииЧтобы убедиться в том, что новый метод создания образов работает как планировалось, мы внесли определенные модификации в программный код Nova - главным образом, в драйвер Для подтверждения нашей концепции мы использовали следующую среду. Аппаратные средства:
Программное обеспечение.
Мы протестировали измененный код в одноузловой среде RDO Grizzly, в многоузловой среде установки RDO Grizzly и в среде на основе официального релиза OpenStack Grizzly. Тестирование и результатыВ этом разделе описывается простой процесс тестирования, а также некоторые примеры тестирования, которые мы выполнили с измененным модулем Nova с целью создания образов виртуальной машины с помощью нашего нового метода. Процесс тестированияПроцесс тестирования состоит из следующих шагов.
Результаты тестированияПосле внесения изменений в драйвер Блочные устройства экземпляров, запущенных из ISO-образа<disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk.newos'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk'/> <target dev='hda' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/var/lib/nova/instances/290124e3-a267-4223-bd69-661fac2035eb/disk.virtio'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk>
В таблице 1 показаны результаты тестирования для нескольких распространенных операционных систем. Результаты тестирования
ЗаключениеНаш новый метод создания образов обладает следующими преимуществами:
... и недостатками:
В настоящее время в большинстве публичных облачных сервисов типа IaaS на базе OpenStack экземплярам предоставляется корневой диск фиксированного размера в базовом образе и - при посредстве сервиса томов - дополнительное дисковое пространство для экземпляров. В частных облаках большая часть требований к экземплярам направлена на такие аспекты, как установленное программное обеспечение связующего уровня, версии/редакции гостевых ОС, flavor-шаблоны для экземпляров и т.п. Как и в публичных облачных сервисах, требования к размеру дискового хранилища могут быть удовлетворены посредством предоставления корневого диска фиксированного среднего размера и достаточного количества томов. По указанной причине возможность разбиения дисков на разделы и изменения размера корневого раздела при начальной загрузке не являются насущной необходимостью для большинства частных облаков. На сегодняшний день OpenStack - это популярная глобальная платформа для облачных операционных систем с открытым исходным кодом. Она упрощает реализацию разнообразных облачных решений - функционально насыщенных и обладающих высокой степенью масштабируемости. Результаты нашей работы, представленные в этой статье, доказывают, что на базе платформы OpenStack вполне возможна реализация новых опций, - и что OpenStack действительно является открытой и гибкой средой, а не просто программным продуктом. Загрузка
|
|