Что такое KVM и для чего он нужен Print

  • 0

Что такое KVM и для чего он нужен

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

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

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

На данный момент, существует три способа взаимодействия виртуальной машины с железом.

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

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

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

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

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

Разработчики процессоров вовремя смогли осознать что архитектура х86 плохо подходит для виртуализации, так как изначально они подходят для одной операционной системы. И после того как появилась динамическая трансляция от VMWare и паравиртуализация от XEN , Intel и AMD начали выпускать процессоры с аппаратной поддержкой виртуализации.

Аппаратную виртуализацию использует и требует KVM , которую мы опишем нижу.

Kernel-based Virtual Machine

KVM – это решение для виртуализации, встроенное в ядро Linux , не уступающие другим решениям в функциональности и превосходящее большинство в удобстве использования. Более того, KVM  opensource технология, которую, тем не менее на всех парах двигается вперед как в плане написания кода, так и в плане маркетинговой кампании, что позволяет внедрять в свои продукты Red Hat .

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

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

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

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

libvirt

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

Основные преимущества KVM

  • Есть возможность использовать модифицированное ядро ОС, в зависимости от ваших потребностей. Вы можете установить собственный дистрибутив используя свой установочный ISO -образ;
  • Независимость ресурсов: каждому серверу постоянно выделяется своя память на жестком диске в оперативной памяти, что заметно повышает надежность в работе такого сервера и не позволяет соседними серверами использовать те же самые участки дискового пространства и памяти. Также по этим причинам не позволяется «оверселлить» многие ресурсы, если хостер захотел продать ресурсов больше, чем он реально имеет;
  • Поддержка множества гостевых операционных систем: установка любых дистрибутивов: BSD ;Linux , Solaris и др. А также ОС, таких как Windows 2008 Server или Windows XP ;
  • Эммуляция сетевых карт, подразумевает полную поддержку абсолютно всех сетевых протоколов, а также полноценную поддержку сетевого экрана firewall ;
  • Поддержка VNC позволит управлять VPS как будто вы непосредственно находитесь перед монитором своего компьютера, начиная от загрузки виртуальной машины и заканчивая графическим рабочим столом.

Was this answer helpful?

« Back