Виртуализация относится к созданию смоделированного вычислительного ресурса, который имитирует поведение соответствующего реального или физического ресурса. Можно виртуализировать многие типы ресурсов, от программного обеспечения до отдельных аппаратных устройств и завершенных аппаратных платформ. Этот пост посвящен виртуальным машинам, которые включают такие устройства, как ЦП, память, сетевая карта, диск, графический адаптер и операционная система. Программное обеспечение, которое создает и запускает виртуальные машины, называется гипервизором. Ниже мы обсудим особенности гипервизора под названием KVM .
Преимущества виртуализации
В прошлом однородность была способом работы в центрах обработки данных, в центрах разработки и дома. Практически все машины будут запускать одну и ту же версию одной операционной системы, будь то Linux, Windows или FreeBSD. Времена изменились.
Сегодня мы ожидаем, что разные ОС, такие как Linux и Windows, и даже разные версии ОС (например, Windows XP и 10) будут размещены в одной компьютерной среде. Без виртуальных машин необходимо развернуть и поддерживать несколько физических машин, чтобы приложения могли запускаться на нескольких операционных платформах. Виртуализация обеспечивает запуск нескольких виртуальных машин, каждая из которых может работать с разными ОС, на одной физической машине.
Преимущества виртуальных машин перед физическими:
- Более эффективное использование ресурсов компьютера.
Цена на оборудование продолжает снижаться, в то время как его вычислительная мощность продолжает расти. В этой реальности многие большие мощные машины сегодня, как правило, недоиспользуются, что измеряется простоями циклов ЦП, неиспользованной памятью и т. Д. Консолидация виртуальных машин на меньшем количестве физических машин приводит к меньшему количеству физических ресурсов и, следовательно, к повышению эффективности.
- Улучшенный I.T. отзывчивость и продуктивность.
Подготовка нового физического оборудования влечет за собой длительный период ожидания приобретения, за которым следует длительный период установки и развертывания после его доставки. Напротив, подготовка виртуальных машин может быть автоматизирована и сделана доступной за считанные минуты, а не дни или даже недели, как иногда требуется традиционное приобретение машин.
- Экономия затрат.
Большие центры обработки данных сэкономят деньги за счет более низких эксплуатационных расходов. Экономия достигается за счет уменьшения счетов за электроэнергию в результате более низких требований к охлаждению и мощности.
Представляем KVM
Виртуальная машина на основе ядра или KVM Короче говоря, это бесплатное решение для гипервизора с открытым исходным кодом. Он конкурирует в зрелой отрасли с альтернативами с открытым исходным кодом, такими как Xen , VirtualBox , а также проприетарные продукты, такие как VMware vSphere , Citrix XenServer , Microsoft Hyper-V .
До 2005 года все решения гипервизора, такие как Xen и VirtualBox, были программными. В архитектуре x86 просто не было возможности поддерживать виртуализацию. В 2005 году введение расширений набора команд Intel VT и AMD-V навсегда изменило ландшафт виртуализации. KVM выпустила свою первую версию в 2006 году и была одним из первых гипервизоров, которые воспользовались преимуществами нового аппаратного обеспечения для оптимизации производительности виртуализации.
Вы можете установить KVM на любой 32-битный или 64-битный компьютер x86, «хост-компьютер» на гипервизорном жаргоне, который поддерживает расширение Intel VT или AMD-V. Сегодня современные гипервизоры обычно поддерживают гибридную виртуализацию: с аппаратной поддержкой, когда это возможно, и с переключением на программное обеспечение только для старых наборов микросхем.
KVM относится к гипервизору типа 2, что означает, что он работает в операционной системе хоста. Как следует из названия, KVM основан на ядре, а если быть более точным, это ядро Linux. Поэтому неудивительно, что KVM поддерживает только Linux в качестве основной ОС. (Впоследствии KVM был перенесен на FreeBSD.) Если вам нужен многоплатформенный гипервизор типа 2 с открытым исходным кодом, VirtualBox - хороший кандидат. VirtualBox изначально может работать в Windows, Linux, Mac OS X и Solaris.
Xen, напротив, представляет собой гипервизор типа 1, также известный как гипервизор «голого железа», который запускается непосредственно как микропрограммное обеспечение на хост-машине. Преимущество типа 1 перед типом 2 заключается в эффективности, достигаемой за счет того, что гипервизор работает непосредственно на базовом оборудовании. Недостатком является то, что гипервизор типа 1 может не поддерживать такой широкий диапазон хост-устройств, как хост-операционная система гипервизора типа 2.
Хотя гипервизоры могут различаться в зависимости от того, требуется ли им хостовая ОС и какие из них, они очень похожи в отношении поддерживаемых гостевых ОС, т. Е. ОС, которую может запускать виртуальная машина. KVM поддерживает виртуализацию следующих гостевых ОС:
- Дистрибутивы Linux, включая Debian, Ubuntu, Centos, Fedora, RedHat Enterprise Linux
- BSD, например OpenBSD, FreeBSD, NetBSD
- Солярис
- Окна
KVM может запускать немодифицированные образы гостевой ОС. Эта функция известна как полная виртуализация, в отличие от паравиртуализации, когда гостевая ОС модифицируется для специальной обработки операций, выполнение которых на виртуальной машине значительно сложнее, чем на хост-машине.
Как работает KVM
KVM состоит из двух технологических компонентов: ядра и пользовательского пространства. Компонент ядра состоит из двух загружаемых модулей ядра: kvm.ko и либо kvm-intel.ko, либо kvm-amd.ko. Модуль kvm.ko обеспечивает обработку виртуализации, независимую от архитектуры ядра. Модули kvm-intel.ko и kvm-amd.ko соответствуют модулям для процессоров Intel и AMD. Эти модули были объединены в ядро Linux, начиная с версии ядра 2.6.20.
Тесная интеграция KVM с ядром Linux имеет свои преимущества. KVM может делегировать Linux для выполнения основной работы системы, в то время как он фокусируется на обработке новых инструкций виртуализации, предоставляемых оборудованием. KVM также извлекает выгоду из того, что унаследовал все улучшения системы от апстрима в более крупном сообществе Linux.
Важно отметить, что модули ядра не эмулируют оборудование виртуальных машин, на котором работает гостевая ОС. Эта работа принадлежит пользовательскому пространству. KVM использует QEMU , который выполняется в пользовательском пространстве, для создания виртуальных машин, взаимодействующих с гостевыми ОС. Каждая виртуальная машина - это обычный процесс Linux. Одним из больших преимуществ является то, что вы можете использовать знакомые команды Linux, такие как top и kill, для мониторинга виртуальных машин и управления ими.
Резюме и заключение
KVM - отличное решение с открытым исходным кодом для полной виртуализации на хост-платформе Linux. После более чем 10 лет активной разработки KVM стал де-факто стандартным инструментом виртуализации на уровне машины во многих дистрибутивах Linux.