Что такое виртуализация KVM. Основы виртуализации и введение в KVM Что возможно использовать через kvm

Допустим ты молодой, но всё ещё бедный студент, А значит из всех возможных платформ ты имеешь лишь ПК на Windows и PS4. В один прекрасный день ты решаешься взяться за ум и стать программистом, но мудрые люди в интернете сообщили тебе, что нормальным инженером без Linux не стать. Установить Fedora своей основной и единственной системой ты не можешь, потому что Windows всё ещё нужен для игр и вконтактика, а установить Linux второй системой на жёсткий диск тебе мешает страх или отсутствие опыта.

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

Или, вот скажем, у тебя уже борода и очки, ты технический директор, и тебя не устраивает, что чтобы разработчики получили для развёртывания нового приложения новый сервер нужно ждать аж два месяца. Как в таких условиях быстро двигаться вперёд?

А, может, ты и вовсе архитектор, который спроектировал новую сложную систему для обработки бизнес аналитики. В систему твою входят такие вещи, как ElasticSearch, Kafka, Spark и много чего ещё, и каждый компонент должен жить отдельно, настраиваться по уму и общаться с другими компонентами. Как хороший инженер, ты понимаешь, что недостаточно просто установить весь этот зоопарк прямо себе на систему. Нужно попробовать развернуть максимально близкое к будущему production окружение, и желательно так, чтобы твои наработки потом бесшовно заработали на production серверах.

И что же делать во всех этих непростых ситуациях? Правильно: использовать виртуализацию.

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

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

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

Подходы к виртуализации

Независимо от подхода и технологии, при использовании виртуализации всегда существует host-машина и установленный на ней гипервизор, управляющий guest-машинами.

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

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

Существует три способа взаимодействия виртуальных машин с железом:

Динамическая трансляция

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

Паравиртуализация

В случае с паравиртуализацией исходный код гостевой ОС специально изменяется так, чтобы все инструкции выполнялись максимально эффективно и безопасно. При этом виртуалка всегда в курсе, что она - виртуалка. Из плюсов - улучшенная производительность. Из минусов - таким образом нельзя виртуализовать, например, MacOS или Windows, или любой другую ОС, к исходникам которой нет доступа. Паравиртуализация в той или иной форме используется, например, в Xen и KVM.

Аппаратная виртуализация

Разработчики процессоров вовремя осознали, что архитектура x86 плохо подходит для виртуализации, так как изначально была заточена под одну ОС за раз. Поэтому, уже после того как появились динамическая трансляция от VMWare и паравиртуализация от Xen, Intel и AMD начали выпускать процессоры с аппаратной поддержкой виртуализации.

Особого прироста производительности это поначалу не дало,так как главным фокусом первых релизов было улучшение архитектуры процессоров. Однако, теперь, спустя больше 10 лет после появления Intel VT-x и AMD-V, аппаратная виртуализация ничем не уступает и даже в чём-то превосходит другие решения.

Аппаратную виртуализацию использует и требует KVM (Kernel-based Virtual Machine), которую мы и будем использовать в дальнейшем.

Kernel-based Virtual Machine

KVM - это решение для виртуализации, встроенное прямо в ядро Linux, не уступающее остальным решениям в функциональности и превосходящее их в удобстве использования. Более того, KVM - open source технология, которую, тем не менее, на всех парах двигает вперёд (как в плане написания кода, так и в плане маркетинга) и внедряет в свои продукты Red Hat.

Это, кстати, одна из многих причин, почему мы настаиваем на Red Hat дистрибутивах.

Создатели KVM изначально сфокусировались на поддержке аппаратной виртуализации и не стали переизобретать многие вещи. Гипервизор, по сути, это маленькая операционная система, которая должна уметь работать с памятью, с сетью и т.п. Linux уже отлично умеет всё это делать, поэтому использование ядра Linux в качестве гипервизора - логичное и красивое техническое решение. Каждая виртуальная машина KVM -это всего лишь отдельный Linux процесс, безопасность обеспечивается при помощи SELinux/sVirt, ресурсы управляются при помощи CGroups.

Мы ещё поговорим о SELinux и CGroups в другой статье, не пугайся, если не знаешь таких слов.

KVM не просто работает как часть ядра Linux: начиная с версии ядра 2.6.20 KVM является основной составляющей Linux. Иными словами, если у вас стоит Linux, то у вас уже есть KVM. Удобно, правда?

Стоит сказать, что в сфере публичных облачных платформ Xen доминирует чуть больше, чем полностью. Например, AWS EC2 и Rackspace используют именно Xen. Обусловлено это тем, что Xen появился раньше всех и первый достиг достаточного уровня производительности. Но есть и хорошие новости: в ноябре 2017 , который постепенно заменит Xen для крупнейшего облачного провайдера.

Несмотря на то, что KVM использует аппаратную виртуализацию, для некоторых драйверов I/O устройств KVM может использовать паравиртуализацию, что обеспечивает прирост производительности для определённых сценариев использования.

libvirt

Мы уже почти дошли до практической части статьи, осталось только рассмотреть ещё один open source инструмент: libvirt.

libvirt - это набор инструментов, предоставляющий единый API к множеству различных технологий виртуализации. Используя libvirt вам впринципе без разницы, что там за “бакенд”: Xen, KVM, VirtualBox или что-то ещё. Более того, можно использовать libvirt внутри Ruby (а ещё Python, C++ и много чего ещё) программ. Ещё можно удалённо по защищённым каналам подключаться к виртуальным машинам.

Разработкой libvirt, кстати, занимается Red Hat. Ты уже установил себе Fedora Workstation основной системой?

Создадим виртуалку

libvirt - это просто API, а вот как с ним взаимодействовать решать пользователю. Вариантов куча . Мы воспользуемся несколькими стандартными утилитами. Напоминаем: мы настаиваем на использовании Red Hat дистрибутивов (CentOS, Fedora, RHEL) и команды ниже были протестированы именно на одной из этих систем. Для других дистрибутивов Linux возможны небольшие отличия.

Сначала проверим, поддерживается ли аппаратная виртуализация. На самом деле, работать будет и без её поддержки, только гораздо медленнее.

egrep --color = auto "vmx|svm|0xc0f" /proc/cpuinfo # если не выведется ничего, значит поддержки нет:(

Так как KVM то модуль ядра Linux, то нужно проверить, загружен ли он уже, и если нет, то загрузить.

lsmod | grep kvm # kvm, kvm_intel, kvm_amd. Если ничего не выводит, значит, нужно загрузить нужные модули # Если модуль не загружен modprobe kvm modprobe kvm_intel # или modprobe kvm_amd

Возможна ситуация, что аппаратная виртуализация выключена в BIOS. Поэтому если модули kvm_intel/kvm_amd не подгружаются, то проверь настройки BIOS.

Теперь установим необходимые пакеты. Проще всего сделать это, установив сразу группу пакетов:

yum group list "Virtual*"

Список групп зависит от используемой ОС. У меня группа называлась Virtualization . Для управления виртуальными машинами из командой строки используется утилита virsh . Проверь, есть ли у тебя хотя бы одна виртуалка командой virsh list . Скорее всего нет.

Если не нравится командная строка, то ещё есть virt-manager - весьма удобный GUI для виртуалок.

virsh умеет создавать виртуалки только из XML файлов, формат которых можно изучить в документации libvirt . К счастью, ещё есть virt-manager и команда virt-install . С GUI ты и сам разберёшься, а вот пример использования virt-install:

sudo virt-install --name mkdev-vm-0 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --memory = 1024 --vcpus = 1 \ --disk size = 8

Вместо указания размера диска, можно создать его заранее через virt-manager, или через virsh и XML файл. Я использовал выше образ с Centos 7 minimal, который легко найти на сайте Centos .

Теперь остаётся один важный вопрос: как подсоединиться к созданной машине? Проще всего это сделать через virt-manager - достаточно дважды кликнуть по созданной машине и откроется окно с SPICE соединением. Там тебя ждёт экран установки ОС.

Кстати, KVM умеет nested virtualization: виртуалки внутри виртуалку. We need to go deeper!

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

Но где взять такой файл? Не писать же его с нуля? Разумеется, нет: так как мы уже установили внутри нашей виртуалки Centos 7, то нам нужно просто подсоединиться к ней и найти файл /root/anaconda-ks.cfg - это Kickstart конфиг для того, чтобы создать копию уже созданной ОС. Нужно просто скопировать его и отредактировать содержимое.

Но просто скопировать файл скучно, поэтому мы добавим в него ещё кое-что. Дело в том, что по умолчанию у нас не получится подсоединиться к консоли созданной виртуалки из командой строки host-машины. Чтобы сделать это, нужно отредактировать конфиг загрузчика GRUB. Поэтому в самый конец Kickstart файла добавим следующую секцию:

%post --log = /root/grubby.log /sbin/grubby --update-kernel = ALL --args = "console=ttyS0" %end

%post , как не сложно догадаться, выполнится после установки ОС. Команда grubby обновит конфиг GRUB, добавив возможность подключаться к консоли.

Кстати, ещё можно указать возможность подключения через консоль прямо во время создания виртуалки. Для этого в команду virt-install нужно передать ещё один аргумент: --extra-args="console=ttyS0" . После этого можно устанавливать саму ОС в интерактивном текстовом режиме из терминала твоей host машины, подключившись к виртуалке через virsh console сразу после её создания. Это особенно удобно, когда создаёшь виртуалки на железном удалённом сервере.

Теперь можно применить созданный конфиг! virt-install позволяет при создании виртуалки передавать дополнительные аргументы, в том числе путь к Kickstart файлу.

sudo virt-install --name mkdev-vm-1 \ --location ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso \ --initrd-inject /path/to/ks.cfg \ --extra-args ks = file:/ks.cfg \ --memory = 1024 --vcpus = 1 --disk size = 8

После того, как вторая виртуалка будет создана (полностью автоматически), ты сможешь подключиться к ней из командой строки командой virsh console vm_id . vm_id можно узнать из списка всех виртуалок командой virsh list .

Одно из преимуществ использования KVM/libvirt - потрясающая документация, в том числе создаваемая компанией Red Hat . Дорогому читателю предлагается с должной любознательностью изучить её.

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

Что дальше?

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

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

Каким бы мощным и богатым на сервисы не был AWS, его основа - это виртуальные машины поверх Xen. Каждый раз, когда ты создаёшь новый дроплет на DigitalOcean , ты создаёшь виртуалку. Практически все сайты, которыми ты пользуешься, размещены на виртуальных машинах. Простота и гибкость виртуалок позволяет не только строить production-системы, но и в десятки раз облегчает локальную разработку и тестирование, особенно когда в системе задействовано множество компонентов.

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

Гипервизоры (технологии виртуализации) существуют более 30 лет и за это время сумели стать одним из главных «винтиков» в составе облачной экосистемы. Многие компании, подбирающие решения для виртуализации, останавливают свой выбор на двух популярных гипервизорах - VMware и KVM. Предлагаем разобраться какой же из них лучше. Но для начала немного теории.

Что такое гипервизор?

Гипервизор - это программа, отделяющая операционную систему от железа. Гипервизоры виртуализируют ресурсы сервера (процессор, память, диск, сетевые интерфейсы и др.), позволяя использовать их как свои собственные, и создают на основе одного сервера несколько отдельных виртуальных машин. Каждая созданная виртуальная машина изолируется от соседей, чтобы не влиять на работу других. Для работы гипервизора необходима поддержка виртуализации: для процессоров Intel на процессоре Intel VT, а для процессоров AMD на AMD-V.

Гипервизоры делятся на два типа: первые работают непосредственно с сервером, а операционная система пользователей работает поверх гипервизора. Эти гипервизоры могут предоставлять некоторым пользователям функции управления сервером и большинство предприятий используют именно такие гипервизоры.

Гипервизоры второго типа, также известные как размещенные гипервизоры (Hosted Hypervisor), работают с операционной системой, установленной на сервере. А операционные системы для новых пользователей создаются поверх гипервизора.

Настольные гипервизоры, такие как Oracle VirtualBox или VMware Workstation, являются гипервизорами второго типа, а VMware и KVM – первого. VMware и KVM устанавливаются непосредственно на сервер и не требуют установки какой-либо операционной системы.

VMware vSphere

Перед покупкой VMware vSphere можно попробовать поработать в пробной версии (60 дней), после чего необходимо покупать лицензию, либо мириться с ограничениями бесплатной версии.

В бесплатной версии, которая называется VMware Free vSphere Hypervisor, нет ограничений для хоста по процессорам и памяти, зато есть ряд других:

  • API продукта доступно только для чтения;
  • виртуальная машина не может иметь более 8 ядер;
  • ее нельзя использовать вместе с Veeam для создания резервных копий;
  • подключение к vCenter Server не поддерживается;
  • не поддерживается и высокая доступность, а также технологии VM Host Live Migration и VM Storage Live Migration.

Продукт от VMware отличается от аналогов поддержкой большого количества операционных систем - Windows, Linux, Solaris, FreeBSD, Netware, MacOS и других.

Установка дистрибутива VMware на сервер очень проста: достаточно загрузиться с CD, флешки или через PXE. К тому же поддерживаются сценарии, позволяющие автоматизировать процесс инсталляции программного обеспечения, настройку сети и подключения к vCenter Server.

Немаловажно и наличие специального конвертера VMware vCenter Converter , позволяющего использовать в ESXi образы MS Virtual Server, Virtual PC, Hyper-V, а также физические серверы и образы дисковых разделов, созданных такими программами как Acronis True Image, Norton Ghost и другими.

У VMware vSphere есть встроенная интеграция с Microsoft Active Directory, то есть аутентификацию пользователей в частном или гибридном облаке можно производить при помощи доменных служб Microsoft. Гибкое распределение ресурсов позволяет использовать горячее добавление CPU, ОЗУ и жесткого диска (в том числе изменять размер текущего жесткого диска без перезагрузки).

VMware Fault Tolerate - технология VMware, предназначенная для защиты виртуальных машин с помощью кластеров непрерывной доступности. При отказе хоста (сервера ESXi) с основной (Primary) рабочей копией виртуальной машины, защищенная виртуальная машина мгновенно переключится на «вторичную» (Secondary) или «теневую» копию, работающую на другом сервере ESXi. Для машин, защищенных VMware Fault Tolerance, происходит постоянное (в реальном времени) копирование всего состояния памяти и процессорных инструкций с основной копии на «теневую». При сбое основного хоста ESXi, пользователи даже не заметят процесса переключения на второй узел. Именно этим Fault Tolerance отличается от High Availability. В High Availability при отказе физического сервера виртуальные машины будут перезапущены на других узлах, и пока операционные системы перезагружаются пользователи не смогут получить доступ к виртуальным серверам.

Кроме VMware Foult Tolerate, лицензия VMware vCloud Suite Enterprise обеспечивает высокую доступность, отказоустойчивость и восстановление после аварий с помощью функций vSphere HA, vMotion, Storage vMotion, и vCenter Site Recovery Manager.

Для уменьшения плановых остановок в обслуживании серверов или систем хранения данных (СХД), функции vMotion и Storage vMotion в онлайн-режиме переносят виртуальные машины и их диски без остановки работы приложений и пользователей. Функция vSphere Replication поддерживает разные варианты репликации vCenter Site Recovery Manager (SRM) для защиты от крупных аварий. SRM обеспечивает централизованное планирование послеаварийного восстановления, автоматические Failover и Failback с резервного сайта или из облака vCloud, а также тестирование послеаварийного восстановления без прерывания работы приложений.

К особенностям этого гипервизора стоит отнести избирательность к железу - перед установкой необходимо тщательно проверить имеющееся оборудование на совместимость с нужной версией ESXi. Для этого на сайте VMware есть специальная .

Лицензирование продуктов VMware имеет свои особенности. Дополнительную путаницу добавляют периодические изменения (от версии к версии vSphere) в лицензионной политике VMware. Существует несколько пунктов, которые нужно учесть перед приобретением лицензий VMware vSpere:

  • лицензирование гипервизора выполняется по числу физических процессоров (CPU). Каждый CPU сервера требует отдельной лицензии vSphere (ядра не являются физическими процессорами и не учитываются в лицензировании);
  • доступный функционал сервера ESXi определяется установленной на нем лицензией vSphere. Подробное руководство по лицензиям есть на ;
  • для каждой купленной лицензии vShpere необходимо приобретать пакет сервисной поддержки (минимум на год);
  • VMware не накладывает ограничения на количество памяти (RAM), установленной на сервере, и на количество запущенных виртуальных машин.

Управлять множеством хостов с гипервизорами ESXi, СХД и сетевым оборудованием можно с помощью еще одного продукта VMware - Vcenter Server. Подключаемые модули клиента vSphere, предоставляемые партнерами VMware, дают IT-администраторам возможность управлять сторонними элементами в дата-центре непосредственно из этой консоли. Поэтому пользователи vCenter могут выполнять резервное копирование, защищать данные, управлять серверами, сетями и безопасностью непосредственно из интерфейса vCenter. В этой же консоли можно настроить триггеры, которые оповестят о возникших проблемах, и получить данные о работе всей инфраструктуры в виде графиков или таблиц.

KVM

KVM - простой в использовании, легкий, нетребовательный к ресурсам и довольно функциональный гипервизор. Он позволяет за минимальные сроки развернуть площадку виртуализации и организовать виртуализацию под управлением операционной системы Linux. В процессе работы KMV осуществляет доступ к ядру операционной системы через специальный модуль (KVM-Intel или KVM-AMD). Изначально KVM поддерживал только процессоры x86, но современные версии KVM поддерживают самые разные процессоры и гостевые операционные системы, в том числе Linux, BSD, Solaris, Windows и др. Кстати, все Wiki-ресурсы (MediaWiki, Wikimedia Foundation, Wikipedia, Wikivoyage, Wikidata, Wikiversity) используют именно этот гипервизор.

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

KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и другие образы, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другое железо.

Благодаря поддержке немодифицированных образов VMware, физический сервер можно легко виртуализовать при помощи все той же утилиты VMware vServer Converter, а затем перенести полученный файл в гипервизор.

Установка KVM в операционной системе Linux заключается в инсталляции пакета KVM и библиотеки виртуализации Libvirt, а также в тщательной настройке среды виртуализации. В зависимости от используемой на хосте операционной системы необходимо настроить мост или подключение к VNC-консоли, с помощью которой виртуальные машины будут взаимодействовать с хостом.

Администрировать KVM сложнее, так как прозрачный доступ к файлам, процессам, консолям и сетевым интерфейсам отсутствует, это приходится настраивать самостоятельно. Перестройка параметров VM в KVM (CPU, RAM, HDD) не очень удобна и требует дополнительных действий, включающих перезагрузку ОС.

Сам проект не предлагает удобных графических инструментов для управления виртуальными машинами, только утилиту Virsh, реализующую все необходимые функции. Для удобного управления виртуальными машинами можно дополнительно установить пакет Virt-Manager.

У KVM нет встроенных инструментов, подобных Fault Tolerate для VMware, поэтому единственный способ создать кластер высокой доступности - использовать сетевую репликацию при помощи DRDB. Кластер DRBD поддерживает только два узла, а узлы синхронизируются без шифрования. То есть для более безопасной связи необходимо использовать VPN-соединение.

Кроме того, для построения кластера высокой доступности понадобится программа Heartbeat, которая позволяет обмениваться служебными сообщениями о своем состоянии узлам в кластере, и Pacemaker - менеджер ресурсов кластера.

Гипервизор KVM распространяется как продукт с открытым исходным кодом, а для корпоративных пользователей существует коммерческое решение Red Hat Virtualization (RHEL), основанное на KVM и платформе управления виртуальной инфраструктурой oVirt.

Несомненным преимуществом этого гипервизора является то, что он способен работать на любом сервере. Гипервизор довольно неприхотлив к ресурсам, что позволяет с легкостью использовать его для задач тестирования.

Следует учесть, что у KVM нет службы поддержки. Если что-то не получится, можно рассчитывать на форумы и помощь сообщества. Или перейти на RHEL.

Так что же выбрать?

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

KVM обычно более масштабируем, чем VMware, в первую очередь потому что vSphere имеет некоторые ограничения на серверы, которыми он может управлять. Кроме того, VMware добавила большое количество сетей хранения данных (SAN) для поддержки различных поставщиков. Эта функция означает, что VMware имеет больше вариантов хранения, чем KVM, но также усложняет поддержку хранилища VMware при расширении.

KVM обычно является наиболее популярным гипервизором для компаний, которые стремятся сократить стоимость внедрения и менее заинтересованы в функциях корпоративного уровня.

Исследования показали, что совокупная стоимость владения KVM, как правило, на 39 процентов ниже, чем у VMware, хотя фактическая совокупная стоимость владения зависит от специфичных факторов, таких как эксплуатационные параметры и рабочая нагрузка площадки.

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

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

Эту заметку я пишу для того, чтобы продемонстрировать пошаговую установку и настройку виртуальной машины в Linux на базе KVM. Ранее я уже писал про виртуализацию, где использовал замечательный .

Сейчас передо мной встал вопрос аренды хорошего сервера с большим объёмом оперативной памяти и объёмным жестким диском. Но запускать проекты прямо на хост-машине не хочется, поэтому буду разграничивать их по отдельным небольшим виртуальным серверам с ОС Linux или docker-контейнерам (о них расскажу в другой статье).

Все современные облачные хостинги работают по такому же принципу, т.е. хостер на хорошем железе поднимает кучу виртуальных серверов, которые мы привыкли называть VPS/VDS, и раздаёт их пользователям, либо автоматизирует этот процесс (привет, DigitalOcean).

KVM (kernel-based virtual machine) это программное обеспечения для Linux, использующее аппаратные средства x86-совместимых процессоров для работы с технологией виртуализации Intel VT/AMD SVM.

Установка KVM

Все махинации по созданию виртуальной машины я буду проводить на ОС Ubuntu 16.04.1 LTS. Чтобы проверить поддерживает ли ваш процессов аппаратную виртуализацию на базе Intel VT/AMD SVM, выполняем:

Grep -E "(vmx|svm)" /proc/cpuinfo

Если терминал непустой, то значит всё в порядке и KVM можно устанавливать. Ubuntu официально поддерживает только гипервизор KVM (входит в состав ядра Linux) и советует использовать библиотеку libvirt в качестве инструмента по управлению им, что мы и будем делать дальше.

Проверить поддержку аппаратной виртуализации в Ubuntu также можно через команду:

В случае успеха, вы увидите что-то вроде этого:

INFO: /dev/kvm exists KVM acceleration can be used

Устанавливаем пакеты для работы с KVM:

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Если у вас есть доступ к графической оболочке системы, то можно установить GUI менеджер libvirt:

Sudo apt-get install virt-manager

Пользоваться virt-manager достаточно просто (не сложнее VirtualBox), поэтому в этой заметке речь пойдёт про консольный вариант установки и настройки виртуального сервера.

Установка и настройка виртуального сервера

В консольном варианте установки, настройки и управлением системой, незаменимым инструментом является утилита virsh (надстройка над библиотекой libvirt). У неё большое количество опций и параметров, подробное описание можно получить так:

Man virsh

или вызвать стандартный "help":

Virsh help

Я всегда придерживаюсь следующих правил при работе с виртуальными серверами:

  1. Храню iso образы ОС в каталоге /var/lib/libvirt/boot
  2. Храню образы виртуальных машин в каталоге /var/lib/libvirt/images
  3. Явно задаю каждой новой виртуальной машине свой статичный IP адрес через DHCP сервер гипервизора.

Приступим к установке первой виртуалки (64-битной серверной убунте 16.04 LTS):

Cd /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Скачав образ запускаем установку:

Sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604.img,size=20,bus=virtio

Переводя все эти параметры на "человеческий язык", то получается, что мы создаём виртуальную машину с ОС Ubuntu 16.04, 1024 МБ ОЗУ, 1 процессором, стандартной сетевой картой (виртуальная машина будет ходить в интернет как-будто из-за NAT), 20 ГБ HDD.

Стоит обратить внимание на параметр --os-variant , он указывает гипервизору под какую именно ОС следует адаптировать настройки.
Список доступных вариантов ОС можно получить, выполнив команду:

Osinfo-query os

Если такой утилиты нет в вашей системе, то устанавливаем:

Sudo apt-get install libosinfo-bin

После запуска установки, в консоли появится вот такая надпись:

Domain installation still in progress. You can reconnect to the console to complete the installation process.

Это нормальная ситуация, продолжать установку мы будем через VNC.
Смотрим на каком порту он был поднят у нашей виртуалки (в соседнем терминале, например):

Virsh dumpxml ubuntu1604 ... ...

Порт 5900, на локальном адресе 127.0.0.1. Чтобы подключиться к VNC, необходимо использовать Port Forwarding через ssh. Перед тем как это сделать, убедитесь, что tcp forwarding разрешён у демона ssh. Для этого идём в настройки sshd:

Cat /etc/ssh/sshd_config | grep AllowTcpForwarding

Если ничего не нашлось или вы видите:

AllowTcpForwarding no

То правим конфиг на

AllowTcpForwarding yes

и перезагружаем sshd.

Настройка Port forwarding

Выполняем команду на локальной машине:

Ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

Здесь мы настроили ssh port forwarding с локального порта 5900 на серверный порт 5900. Теперь уже можно подключиться к VNC, используя любой VNC-клиент. Я предпочитаю UltraVNC из-за простоты и удобства.

После успешного подключения, на экране отобразится стандартное окно приветствия начала установки Ubuntu:

После завершения установки и привычной перезагрузки, появится окно входа в систему. Авторизовавшись, определяем IP адрес новоиспечённой виртуалки, чтобы позже сделать его статичным:

Ifconfig

Запоминаем и идём на хост машину. Вытаскиваем mac-адрес "сетевой" карты виртуалки:

Virsh dumpxml ubuntu1604 | grep "mac address"

Запоминаем наш mac адрес:

Редактируем сетевые настройки гипервизора:

Sudo virsh net-edit default

Ищем DHCP, и добавляем вот это:

Должно получиться что-то вроде этого:

Для того, чтобы настройки вступили в силу, необходимо перезагрузить DHCP сервер гипервизора:

Sudo virsh net-destroy default sudo virsh net-start default sudo service libvirt-bin restart

После этого перегружаем виртуальную машину, теперь она всегда будет иметь заданный ей IP адрес - 192.168.122.131.

Есть и другие способы задать виртуалке статичный IP, например, напрямую редактируя сетевые настройки внутри гостевой системы, но тут уже как душе вашей будет угодно. Я лишь показал вариант, который сам предпочитаю использовать.

Чтобы подключиться к терминалу виртуальной машины, выполняем:

Ssh 192.168.122.131

Машина готова к бою.

Virsh: список команд

Чтобы посмотреть запущенные виртуальные хосты (все доступные можно получить добавив --all):

Sudo virsh list

Перезагрузить хост можно:

Sudo virsh reboot $VM_NAME

Остановить виртуальную машину:

Sudo virsh stop $VM_NAME

Выполнить halt:

Sudo virsh destroy $VM_NAME

Sudo virsh start $VM_NAME

Отключение:

Sudo virsh shutdown $VM_NAME

Добавить в автозапуск:

Sudo virsh autostart $VM_NAME

Очень часто требуется склонировать систему, чтобы в будущем использовать её как каркас для других виртуальных ОС, для этого используют утилиту virt-clone.

Virt-clone --help

Она клонирует существующую виртуалку и изменяет host-sensitive данные, например, mac address. Пароли, файлы и прочая user-specific информация в клоне остаётся прежней. Если на клонируемой виртуалке IP адрес был прописан вручную, то могут возникнуть проблемы с доступом по SSH на клон из-за конфликта (2 хоста с одинаковым IP).

Помимо установки виртуалки через VNC, также возможен вариант с X11Forwarding через утилиту virt-manager. В Windows, например, для этого можно использовать Xming и PuTTY.

Мы в Cloud4Y считаем лидирующим решением для виртуализации продукты VmWare. Тем не менее, мы интересуемся и другими решениями, в том числе, Xen и KVM. И вот что мы заметили: существует не так уж много информации, позволяющей сравнить эти гипервизоры: последние дельные исследования, которые мы нашли в сети, относятся к 2012 году и, конечно, уже не могут считаться актуальными. Сегодня мы представим вашему вниманию тоже не самое новое, но, на наш взгляд, достаточно полезное исследование, посвященное производительности гипервизоров KVM и Xen.

Гипервизор KVM

Да простят нас гуру виртуализации, но для начала мы напомним читателям, что такое гипервизор и для чего он нужен. Для выполнения разных по смыслу задач (разработки программного обеспечения, хостинга и т. п.) проще всего использовать виртуальные машины: они позволят иметь несколько разных ОС с соответствующей программной средой. Для простоты работы с виртуальными машинами применяются гипервизоры — программные средства, позволяющие быстро развертывать, останавливать и запускать ВМ. KVM является одним из наиболее широко распространенных гипервизоров.


KVM — это ПО, позволяющее организовывать виртуализацию на основе ПК под управлением ОС Linux и похожих. С недавнего времени KVM считается составляющей Linux-ядра и развивается параллельно ему. Этот гипервизор может использоваться только в системах, где виртуализация поддерживается аппаратно — с помощью процессоров Intel и AMD.


В процессе работы KVM осуществляет доступ к ядру напрямую посредством процессор-специфичного модуля (kvm-intel или kvm-amd). К тому же, в состав комплекса включено основное ядро — kvm.ko и элементы UI, включая широко распространенный QEMU. KVM дает возможность напрямую работать с файлами ВМ и дисковыми образами. Каждая виртуальная машина обеспечивается своим изолированным пространством.

Гипервизор Xen

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

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

Суть исследования

Тестирование основано на использовании двух серверов SuperMicro, у каждого из которых четырехядерный процессор Intel Xeon E3-1220 с тактовой частотой 3,10 Гц, 24GB Kingston DDR3 RAM и четырьмя драйверами Western Digital RE-3 160GB (RAID 10). Версии BIOS идентичны.
Для хостинга и виртуальных машин мы взяли Fedora 20 (с SELinux). Вот взятые нами версии ПО:

  • Kernel: 3.14.8
  • Для KVM: qemu-kvm 1.6.2
  • Для Xen: xen 4.3.2
Все корневые файловые системы — XFS с конфигурацией по умолчанию. Виртуальные машины созданы с помощью virt-Manager с использованием настроек по умолчанию, применимых к KVM и Xen. Виртуальные диски использовали raw-образы и было выделено 8 Гб РАМ с 4 vCPU (виртуальными процессорами). ОС, запущенные на Xen, использовали PVHVM.

Пояснения

Кто-то из вас может начать возмущаться — мол, владелец Fedora 20, Red Hat, тратит значительное количество усилий на поддержку именно KVM. Уточним: Red Hat не делали значительных продвижений по части Xen долгие годы.


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

Исследование проводилось на процессорах Intel, поэтому его результаты могут отличаться для AMD и ARM.

Результаты

Тесты для виртуальных машин, установленных непосредственно на «железо», то есть, без операционной системы (далее — «железо»), послужили основой для тестирования виртуальных машин. Отклонение в производительности между двумя серверами без виртуализации составило 0.51% или менее.


Производительность KVM упала в пределах 1,5% по сравнению с «железом» практически во всех тестах. Только два теста показали иной результат: один из них — тест 7-Zip , где KVM показал себя на 2,79% медленнее, чем «железо». Странно, что KVM был на 4,11% быстрее в тесте PostMark (который симулировал сильно загруженный почтовый сервер). Производительность Xen сильнее отличалась от производительности «железа», чем в ситуации с KVM. В трех тестах Xen отличался на 2,5% от скорости «железа», в остальных тестах он оказался еще медленнее.

В тесте PostMark Xen был медленнее на 14.41%, чем «железо». При перезапуске результаты теста отличались от первоначальных на 2%. Лучший тест для KVM, MAFFT, оказался вторым в списке худших для Xen.

Вот краткий итог тестирования:

Best Value Bare Metal KVM Xen
Timed MAFFT Alignment lower 7.78 7.795 8.42
Smallpt lower 160 162 167.5
POV-Ray lower 230.02 232.44 235.89
PostMark higher 3667 3824 3205
OpenSSL higher 397.68 393.95 388.25
John the Ripper (MD5) higher 49548 48899.5 46653.5
John the Ripper (DES) higher 7374833.5 7271833.5 6911167
John the Ripper (Blowfish) higher 3026 2991.5 2856
CLOMP higher 3.3 3.285 3.125
C-Ray lower 35.35 35.66 36.13
7-Zip higher 12467.5 12129.5 11879

Если вы хотите увидеть результаты полностью, пройдите по ссылке .

Вместо заключения

В нашем тестировании KVM был почти всегда на 2% медленнее, чем «железо». Xen оказался на 2,5% медленнее в трех тестах из десяти, а в остальных и того хуже: на 5-7%. Хотя KVM показал себя с лучшей стороны в тесте PostMark, следует отметить, что мы провели всего один I/O тест, и для получения более достоверной картины стоит провести еще несколько.


Для выбора правильного гипервизора необходимо правильно оценить характер своих нагрузок. Если ваши нагрузки предполагают меньший объем для процессора и больший для I/O, то можно провести больше I/O тестов. Если же вы работаете, в основном, с аудио и видео, попробуйте тесты x264 или mp3.

Как справедливо заметил mister_fog , в 2007 Citrix выкупила не исходный код Xen, а компанию XenSource, которая была основана разработчиками Xen и занималась коммерческим развитием этого открытого проекта. .


На днях вышел интересный отчет компании Principled Technologies, специализирующейся, в том числе, на всякого рода тестировании аппаратно-программных сред. В документе " " рассказывается о том, что на одном и том же оборудовании с помощью гипервизора ESXi можно запустить больше виртуальных машин, чем на гипервизоре KVM платформы RHEV.

Понятное дело, что исследование ангажированное (хотя бы, если посмотреть на заголовок), но поскольку таких документов не так много, мы решили обратить на него внимание.

Для тестирования использовался стоечный сервер Lenovo x3650 M5, на котором в виртуальных машинах работала СУБД Microsoft SQL Server 2016 с нагрузкой типа OLTP. В качестве основного показателя производительности использовался OPM (orders per minute), отображающий количественную оценку исполненных транзакций.

Если не использовать техники Memory Overcommit, то результат выполнения на 15 виртуальных машинах одного хоста в числе OPM примерно одинаковый на обоих гипервизорах:

А вот когда происходит увеличение числа виртуальных машин, то vSphere показывает себя значительно лучше:

Крестиками отмечены машины, которые на RHV просто не запустились, консоль продукта выдала вот такую ошибку:

Несмотря на включение техник оптимизации памяти в Red Hat Virtualization Manager (RHV-M), таких как memory ballooning и kernel shared memory, шестнадцатая виртуальная машина все равно отказывалась запускаться на KVM:

Ну а на vSphere продолжали наращивать число ВМ, пока не уперлись в недостаток ресурсов:

Получилось, что с техниками overcommit на vSphere получилось запустить 24 виртуальных машины, а на RHV - всего 15 штук. По итогу сделали вывод, что на VMware vSphere в 1,6 раза можно запустить больше виртуальных машин:

Не сказать, что это объективное тестирование, но очевидно, что ESXi в данном случае работает лучше KVM с точки зрения всяких оптимизаций памяти и прочих ресурсов ВМ.


Таги: VMware, Red Hat, Performance, RHV, vSphere, ESXi, KVM
Таги: KVM, oVirt, Open Source, Update

Напомним, что RHEV основана на гипервизоре Kernel-based Virtual Machine (KVM) и поддерживает открытую облачную архитектуру OpenStack. Давайте посмотрим, что нового появилось в обновленном RHEV версии 3.4.

Инфраструктура

  • Сервис настройки SNMP для поддержки сторонних систем мониторинга.
  • Сохранение настроек облачной инсталляции RHEV для возможности ее восстановления при сбое или для целей тиражирования в других облаках.
  • Переписаны и улучшены сервисы аутентификации RHEV.
  • Возможность горячего добавления процессора в ВМ (Hot Plug CPU). Тут нужна поддержка со стороны ОС.
  • Нерутовые юзеры теперь имеют доступ к логам.
  • Новый установщик, основанный на TUI (textual user interface).
  • Поддержка IPv6.
  • Возможность выбора соединения с консолью ВМ в режиме Native Client или noVNC.
  • Возможность изменения некоторых настроек запущенной виртуальной машины.
  • Полная поддержка RHEL 7 в качестве гостевой ОС.
  • Возможность включения/отключения KSM (Kernel Samepage Merging) на уровне кластера.
  • Возможность перезагрузки ВМ из RHEVM или консольной командой.

Сетевое взаимодействие

  • Более плотная интеграция с инфраструктурой OpenStack:
    • Улучшения безопасности и масштабируемости для сетей, развернутых с помощью Neutron .
    • Поддержка технологии Open vSwitch (расширяемый виртуальный коммутатор) и возможностей SDN -сетей.
  • Network Labels - метки, которые можно использовать при обращении к устройствам.
  • Корректный порядок нумерации виртуальных сетевых адаптеров (vNIC).
  • Поддержка iproute2.
  • Единая точка конфигурации сетевых настроек множества хостов в указанной сети.

Возможности хранилищ

  • Смешанные домены хранилищ (mixed storage domains) - возможность одновременного использования дисковых устройств из хранилищ iSCSI, FCP, NFS, Posix и Gluster для организации хранения виртуальных машин.
  • Multiple Storage Domains - возможность распределить диски одной виртуальной машины по нескольким хранилищам в пределах датацентра.
  • Возможность указания дисков, которые будут участвовать в создании снапшотов, а также тех, которые не будут.
  • Улучшен механизм восстановления ВМ из резервной копии - теперь есть возможность указать снапшот состояния, в которое хочется откатиться.
  • Асинхронное управление задачами Gluster-хранилищ.
  • Read-Only Disk for Engine - эта функция дает средству управления Red Hat Enterprise Virtualization Manager возможность использовать диски только для чтения.
  • Доступ по нескольким путям (multipathing) для хранилищ iSCSI.

Средства виртуализации

  • Агенты гостевых ОС (ovirt-guest-agent) для OpenSUSE и Ubuntu.
  • SPICE Proxy - возможность использовать прокси-серверы для доступа пользователей к своим ВМ (если они, например, находятся за пределами инфраструктурной сети).
  • SSO (Single Sign-On) Method Control - возможность переключаться между различными механизмами сквозной аутентификации. Пока есть только два варианта: guest agent SSO и без SSO.
  • Поддержка нескольких версий одного шаблона виртуальной машины.

Улучшения планировщика и средств обеспечения уровня обслуживания

  • Улучшения планировщика виртуальных машин.
  • Группы Affinity/Anti-Affinity (правила существования виртуальных машин на хостах - размещать машины вместе или раздельно).
  • Power-Off Capacity - политика электропитания, позволяющая выключить хост и подготовить его виртуальные машины к миграции в другое место.
  • Even Virtual Machine Distribution - возможность распределения виртуальных машин по хостам на базе количества ВМ.
  • High-Availability Virtual Machine Reservation - механизм позволяет гарантировать восстановление виртуальных машин в случае отказа одного или нескольких хост-серверов. Он работает на базе расчета доступной емкости вычислительных ресурсов хостов кластера.

Улучшения интерфейса

  • Фиксы багов, касающихся того, что интерфейс не всегда реагировал на происходящие в инфраструктуре события.
  • Поддержка низких разрешений экрана (когда не было видно некоторых элементов консоли управления на низких разрешениях).

Скачать Red Hat Enterprise Virtualization 3.4 можно по этой ссылке . Документация доступна .


Таги: Red Hat, RHEV, Update, Linux, KVM

Новая версия ОС RHEL имеет множество новых интересных возможностей, среди которых немало касаются технологий виртуализации. Некоторые основные новые возможности RHEL 7:

  • Встроенная поддержка упакованных приложений в формате Docker.
  • Kernel patching utility Technology Preview - патчинг ядра без перезагрузки ОС.
  • Прямая и непрямая интеграция с Microsoft Active Directory, подробнее описано .
  • Для разделов boot, root и user data дефолтной файловой системой теперь является XFS.
    • Для XFS максимальный размер файловой системы увеличен со 100 ТБ до 500 ТБ.
    • Для ext4 этот размер увеличен с 16 ТБ до 50 ТБ.
  • Улучшенный процесс установки ОС (новый визард).
  • Возможность управления серверами Linux с использованием Open Linux Management Infrastructure (OpenLMI).
  • Улучшения файловых систем NFS и GFS2.
  • Новые возможности технологии виртуализации KVM.
  • Возможность выполнять RHEL 7 в качестве гостевой OS.
  • Улучшения NetworkManager и новая утилита командной строки для выполнения сетевых задач NM-CLI.
  • Поддержка сетевых соединений Ethernet на скорости до 40 Гбит/с.
  • Поддержка беспроводной технологии WiGig (IEEE 802.11ad) (на скорости до 7 Гбит/с).
  • Новый механизм Team Driver, который виртуально объединяет сетевые устройства и порты в единый интерфейс на уровне L2.
  • Новый динамический сервис FirewallD, представляющий собой гибкий сетевой экран, имеющий преимущество перед iptables и поддерживающий несколько трастовых зон (network trust zones).
  • GNOME 3 в режиме классического рабочего стола.

Более подробно о новых возможностях RHEL 7 рассказано Red Hat.

В плане виртуализации в Red Hat Enterprise Linux 7 появились следующие основные нововведения:

  • Технологическое превью возможности virtio-blk-data-plane, которая позволяет выполнять команды ввода-вывода QEMU в отдельном оптимизированном потоке.
  • Появилось технологическое превью технологии PCI Bridge, позволяющей поддерживать более чем 32 PCI-устройства в QEMU.
  • QEMU Sandboxing - улучшенная изоляция между гостевыми ОС хоста RHEL 7.
  • Поддержка "горячего" добавления виртуальных процессоров машинам (vCPU Hot Add).
  • Multiple Queue NICs - каждый vCPU имеет собственные очереди на передачу и получение, что позволяет не задействовать другие vCPU (только для гостевых ОС Linux).
  • Технология сжатия страниц памяти при горячей миграции (Page Delta Compression) позволяет гипервизору KVM проводить миграцию быстрее.
  • В KVM появились функции поддержки паравиртуализованных функций ОС Microsoft, например, Memory Management Unit (MMU) и Virtual Interrupt Controller. Это позволяет гостевым ОС Windows работать быстрее (по умолчанию эти функции отключены).
  • Поддержка технологии EOI Acceleration, основанной на интерфейсе Advanced Programmable Interrupt Controller (APIC) от Intel и AMD.
  • Технологическое превью поддержки USB 3.0 в гостевых ОС на KVM.
  • Поддержка гостевых ОС Windows 8, Windows 8.1, Windows Server 2012 и Windows Server 2012 R2 на гипервизоре KVM.
  • Функции I/O Throttling для гостевых ОС на QEMU.
  • Поддержка технологий Ballooning и transparent huge pages.
  • Новое устройство virtio-rng доступно как генератор случайных чисел для гостевых ОС.
  • Поддержка горячей миграции гостевых ОС с хоста Red Hat Enterprise Linux 6.5 на хост Red Hat Enterprise Linux 7.
  • Поддержка назначения устройств NVIDIA GRID и Quadro как второго устройства в дополнение к эмулируемому VGA.
  • Технология Para-Virtualized Ticketlocks, улучшающая производительность, когда виртуальных vCPU больше чем физических на хосте.
  • Улучшенная обработка ошибок устройств PCIe.
  • Новый драйвер Virtual Function I/O (VFIO) улучшающий безопасность.
  • Поддержка технологии Intel VT-d Large Pages, когда используется драйвер VFIO.
  • Улучшения отдачи точного времени виртуальным машинам на KVM.
  • Поддержка образов формата QCOW2 version 3.
  • Улучшенные статистики Live Migration - total time, expected downtime и bandwidth.
  • Выделенный поток для Live Migration, что позволяет горячей миграции не влиять на производительность гостевых ОС.
  • Эмуляция процессоров AMD Opteron G5.
  • Поддержка новых инструкций процессоров Intel для гостевых ОС на KVM.
  • Поддержка форматов виртуальных дисков VPC и VHDX в режиме "только для чтения".
  • Новые возможности утилиты libguestfs для работы с виртуальными дисками машин.
  • Новые драйверы Windows Hardware Quality Labs (WHQL) для гостевых ОС Windows.
  • Интеграция с VMware vSphere: Open VM Tools, драйверы 3D-графики для OpenGL и X11, а также улучшенный механизм коммуникации между гостевой ОС и гипервизором ESXi.

Release Notes новой версии ОС доступны по этой ссылке . О функциях виртуализации в новом релизе RHEL 7 можно почитать (а - на русском). Исходные коды rpm-пакетов Red Hat Enterprise Linux 7 теперь доступны только через Git-репозиторий .


Таги: Linux, QEMU, KVM, Update, RHEL, Red Hat

Компания Ravello нашла интересный способ использовать вложенную виртуализацию в своем продукте Cloud Application Hypervisor , который позволяет универсализовать развертывание ВМ разных платформ виртуализации в публичных облаках различных сервис провайдеров.

Основным компонентом этой системы является технология HVX - собственный гипервизор (на базе Xen), являющийся частью ОС Linux и запускающий вложенные виртуальные машины без их изменения средствами техник бинарной трансляции. Далее эти машины можно разместить в облаках Amazon EC2, HP Cloud, Rackspace и даже частных облаках, управляемых VMware vCloud Director (поддержка последнего ожидается в скором времени).

Продукт Ravello - это SaaS-сервис, а такие матрешки можно просто загружать на любой из поддерживаемых хостингов, вне зависимости от используемого им гипервизора. Виртуальная сеть между машинами создается через L2-оверлей над существующей L3-инфраструктурой хостера с использованием GRE-подобного протокола (только на базе UDP):

Сама механика предлагаемого сервиса Cloud Application Hypervisor такова:

  • Пользователь загружает виртуальные машины в облако (поддерживаются машины, созданные на платформах ESXi/KVM/Xen).
  • С помощью специального GUI или средствами API описывает многомашинные приложения.
  • Публикует свои ВМ в одном или нескольких поддерживаемых облаках.
  • Получившаяся конфигурация сохраняется в виде снапшота в облаке Ravello (потом в случае чего ее можно восстановить или выгрузить) - это хранилище может быть создано как на базе облачных хранилищ Amazon S3, CloudFiles, так и на базе собственных блочных хранилищ или NFS-томов.
  • После этого каждый пользователь может получить многомашинную конфигурацию своего приложения по требованию.

Очевидный вопрос, который возникает первым: что с производительностью? Ну, во-первых, решение Cloud Application Hypervisor рассчитано на команды разработки и тестирования, для которых производительность не является критичным фактором.

А во-вторых, результаты тестов производительности таких вложенных матрешек показывают не такие уж и плохие результаты:

Для тех, кто заинтересовался технологией HVX, есть хорошее обзорное видео на рунглише:


Таги: Rovello, Nested Virtualization, Cloud, HVX, VMware, ESXi, KVM, Xen, VMachines, Amazon, Rackspace

Новая версия открытой платформы виртуализации RHEV 3.0 основана на дистрибутиве Red Ha Enterprise Linux версии 6 и, традиционно, гипервизоре KVM.

Новые возможности Red Hat Enterprise Virtualization 3.0:

  • Средство управления Red Hat Enterprise Virtualization Manager теперь построен на базе Java, запущенной на платформе JBoss (ранее использовался.NET, и, соответственно, была привязка к Windows, теперь же можно использовать Linux для управляющего сервера).
  • Портал самообслуживания пользователей, позволяющий им самостоятельно развертывать виртуальные машины, создавать шаблоны и администрировать собственные окружения.
  • Новый RESTful API, позволяющиий получить доступ ко всем компонентам решения из сторонних приложений.
  • Расширенный механизм администрирования, предоставляющий возможность гранулированного назначения пермиссий, делегирования полномочий на базе ролей пользователей и иерархическое управление привилегиями.
  • Поддержка локальных дисков серверов в качестве хранилищ виртуальных машин (но для них не поддерживается Live Migration).
  • Интегрированный механизм отчетности, позволяющий анализировать исторические данные о производительности и строить прогнозы по развитию виртуальной инфраструктуры.
  • Оптимизация для WAN-соединений, включая технологии dynamic compression (сжатие картинки) и автоматической настройки эффектов рабочего стола и глубины цветности. Кроме того, новая версия SPICE имеет расширенную поддержку десктопов с гостевыми ОС Linux.
  • Обновленный гипервизор KVM на основе последнего Red Hat Enterprise Linux 6.1, вышедшего в мае 2011 года.
  • Поддержка до 160 логических CPU и 2 ТБ памяти для хост-серверов, 64 vCPU и 512 ГБ памяти - для виртуальных машин.
  • Новые возможности по администрированию больших инсталляций RHEV 3.0.
  • Поддержка больших страниц памяти (Transparant Huge Pages, 2 МБ вместо 4 КБ) в гостевых ОС, что увеличивает производительность за счет меньшего количества чтений.
  • Оптимизация компонента vhost-net. Теперь сетевой стек KVM перемещён из пользовательского режима в режим ядра, что существенно увеличивает производительность и уменьшает задержки в сети.
  • Использование функций библиотеки sVirt, обеспечивающей безопасность гипервизора.
  • Появился паравиртуализованный контроллер x2paic, который уменьшает overhead на содержание ВМ (особенно эффективен для интенсивных нагрузок).
  • Технология Async-IO для оптимизации ввода-вывода и повышения производительности.

Скачать финальный релиз Red Hat Enterprise Virtualization 3.0 можно по этой ссылке .

Ну и, напоследок, небольшой видео-обзор Red Hat Enterprise Virtualization Manager 3.0 (RHEV-M):


Таги: Red Hat, Enterprise, Update, KVM, Linux

Молодцы NetApp! Роман, ждем перевода на русский язык)


Таги: Red Hat, KVM, NetApp, Storage, NFS

Продукт ConVirt 2.0 Open Source позволяет управлять гипервизорами Xen и KVM, входящими в бесплатные и коммерческие издания дистрибутивов Linux, развертывать виртуальные серверы из шаблонов, осуществлять мониторинг производительности, автоматизировать задачи администратора и настраивать все аспекты виртуальной инфраструктуры. ConVirt 2.0 поддерживает функции горячей миграции виртуальных машин, "тонкие" виртуальные диски (растущие по мере наполнения данными), контроль ресурсов виртуальных машин (в т.ч. запущенных), обширные функции мониторинга и средства интеллектуального размещения виртуальных машин на хост-серверах (ручная балансировка нагрузки).

ConVirt 2.0 пока существует только в издании Open Source, однако разработчики обещают в скором времени выпустить издание ConVirt 2.0 Enteprise, которое будет отличаться от бесплатного следующими возможностями:

Feature ConVirt 2.0
Open Source
ConVirt 2.0 Enterprise

Architecture
Multi-platform Support
Agent-less Architecture
Universal Web Access
Datacenter-wide Console

Administration
Start, Stop, Pause, Resume
Maintanence Mode
Snapshot
Change Resource Allocation on a Running VM

Monitoring
Real-time Data
Historical Information
Server Pools
Storage Pools
Alerts and Notifications

Provisioning
Templates-based Provisioning
Template Library
Integrated Virtual Appliance Catalogues
Thin Provisioning
Scheduled Provisioning

Automation
Intelligent Virtual Machine Placement
Live Migration
Host Private Networking
SAN, NAS Storage Support

Advanced Automation
High Availability
Backup and Recovery
VLAN Setup
Storage Automation
Dynamic Resource Allocation
Power Saving Mode

Security
SSH Access
Multi-user Administration
Auditing
Fine Grained Access Control

Integration
Open Repository
Command Line Interface
Programmatic API

Таги: Xen, KVM, Convirt, Citrix, Red Hat, Бесплатно, Open Source,

Компания Convirture, занимавшаяся в 2007 году проектом XenMan, представлявшим собой GUI для управления гипервизором XEN, выпустила недавно релиз бесплатного продукта Convirture ConVirt 1.0, на который изменил свое название XenMan.

С помощью ConVirt можно управлять гипервизорами Xen и KVM, используя следующие возможности:

  • Управление несколькими хост-серверами.
  • Снапшоты (snapshots).
  • Горячая миграция виртуальных машин между хостами (Live Migration).
  • Резервное копирование ВМ.
  • Простейший мониторинг хостов и виртуальных машин.
  • Поддержка виртуальных модулей (Virtual Appliances).

Скачать Convirture ConVirt 1.0 можно по этой ссылке:

Convirture ConVirt 1.0
Таги: Xen, KVM



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: