Гипервизор на linux это

Обновлено: 04.07.2024

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

1. Муки выбора

  • Система серверной виртуализации «Р-Виртуализация» (libvirt, KVM, QEMU)
  • Программный комплекс "Средства виртуализации «Брест»" (libvirt, KVM, QEMU)
  • Платформа управления и мониторинга среды виртуализации «Sharx Stream» (облачное решение, которое не подходит для госконтор в 95% случаев (секретность и т.д.)
  • Программный комплекс виртуализации серверов, рабочих столов и приложений «ХОСТ» (KVM x86)
  • Система безопасного управления средой виртуализации "Z|virt" (он же oVirt+KVM)
  • Система управления средой виртуализации «ROSA Virtualization» (он же oVirt+KVM)
  • Гипервизор QP VMM (слишком похож на Oracle Virtual Box, чтобы быть чем-то другим)
На деле вот список средств виртуализации Astra Linux
  • VirtualBox
  • Virt-manager (KVM) Орел current
  • libvirt over KVM
У ROSA Linux такого списка нет, но в wiki можно найти следующие пакеты:
  • ROSA Virtualization over oVirt over KVM
  • QEMU over KVM
  • oVirt 3.5 over KVM

1.2. Есть одно НО

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

bhyve — гипервизов второго типа. Отметается.

Использование оригинального VirtualBox в коммерции является фактически нарушением лицензии: «Начиная с версии 4, выпущенной в декабре 2010 года, основная часть продукта распространяется бесплатно под лицензией GPL v2. Устанавливаемый поверх неё дополнительный пакет, обеспечивающий поддержку устройств USB 2.0 и 3.0, протокол удалённого рабочего стола (RDP), шифрование накопителя, загрузку с NVMe и по PXE, распространяется под особой лицензией PUEL («для личного использования и ознакомления»), по который система бесплатна для личного использования, в целях обучения или для оценки перед принятием решения о приобретении коммерческой версии.» (с) Плюс VirtualBox так же является гипервизором 2го типа, так что он так же отпадает.

Итого: в чистом виде мы имеем только KVM.

2. В остатке: KVM или KVM?

image

В случае, если вам все же необходимо перейти на «отечественный» гипервизор — выбор у вас, прямо скажем, невелик. Это будет KVM в той или иной обертке, с теми или иными доработками, но все равно это будет KVM. Хорошо это или плохо — вопрос другой, все равно альтернативы нет.

В случае, если условия не столь строги, то, как говорилось в предыдущей статье: «Нам надо привести показатели к установленным пределам. На деле это значит, что мы должны заменить существующие ОС на продукты из реестра Минкомсвязи и довести количество замененных операционных систем до 80%.… Итак, мы спокойно можем оставить кластер на Hyper-V, раз уж он у нас есть и нам он нравится. » (с) Так что перед нами стоит выбор: Microsoft Hyper-V или KVM. KVM может быть с «прикрученными» к нему средствами управления, но он все равно останется все тем же KVM.

Эти продукты сравнивались далеко не однократно, не двукратно, не трехкратно… Ну, вы поняли…

Про развертывание и настройку KVM так же писалось не однократно, не двукратно, не трехкратно и не четырехкратно… Словом, статья про планирование импортозамещения.

гипервизор linux

В жизни системного администратора однажды настает момент, когда приходится с нуля разворачивать инфраструктуру предприятия либо переделывать уже имеющуюся, перешедшую по наследству. В этой статье я расскажу о том, как правильно развернуть гипервизор на основе Linux KVM и libvirt c поддержкой LVM (логических групп).

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

Для начала разберемся с тем, что значит виртуализация.

Что такое виртуализация

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

Системные администраторы, работающие вплотную с виртуализацией на предприятии, мастера и виртуозы своего дела, поделились на два лагеря. Одни — приверженцы высокотехнологичной, но безумно дорогой VMware для Windows. Другие — любители open source и бесплатных решений на основе Linux VM. Можно долго перечислять преимущества VMware, но здесь мы остановимся на виртуализации, основанной на Linux VM.

Технологии виртуализации и требования к железу

Сейчас есть две популярные технологии виртуализации: Intel VT и AMD-V. В Intel VT (от Intel Virtualization Technology) реализована виртуализация режима реальной адресации; соответствующая аппаратная виртуализация ввода-вывода называется VT-d. Часто эта технология обозначается аббревиатурой VMX (Virtual Machine eXtension). В AMD создали свои расширения виртуализации и первоначально называли их AMD Secure Virtual Machine (SVM). Когда технология добралась до рынка, она стала называться AMD Virtualization (сокращенно AMD-V).

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

Вот полезный список процессоров с поддержкой технологии виртуализации.

Среди других требований гипервизоров — поддержка аппаратного RAID (1, 5, 10), которая повышает отказоустойчивость гипервизора при выходе жестких дисков из строя. Если поддержки аппаратного RAID нет, то можно использовать программный на крайний случай. Но RAID — это мастхэв!

Решение, описанное в этой статье, несет на себе три виртуальные машины и успешно работает на минимальных требованиях: Core 2 Quad Q6600 / 8 Гбайт DDR2 PC6400 / 2 × 250 Гбайт HDD SATA (хардверный RAID 1).

Установка и настройка гипервизора

Я покажу, как настраивать гипервизор, на примере Debian Linux 9.6.0 — Х64-86. Ты можешь использовать любой дистрибутив Linux, который тебе по душе.

Когда ты определишься с выбором железа и его наконец-то привезут, придет время ставить гипервизор. При установке ОС все делаем, как обычно, за исключением разметки дисков. Неопытные администраторы часто выбирают опцию «Автоматически разбить все дисковое пространство без использования LVM». Тогда все данные будут записаны на один том, что нехорошо по нескольким причинам. Во-первых, если жесткий диск выйдет из строя, ты потеряешь все данные. Во-вторых, изменение файловой системы доставит массу хлопот.

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

Logical Volume Manager

Менеджер логических томов (LVM) — это подсистема, доступная в Linux и OS/2, построенная поверх Device Mapper. Ее задача — представление разных областей с одного жесткого диска или областей с нескольких жестких дисков в виде одного логического тома. LVM создает из физических томов (PV — Phisical Volumes) логическую группу томов (VG — Volumes Group). Она, в свою очередь, состоит из логических томов (LV — Logical Volume).

Сейчас во всех дистрибутивах Linux с ядром 2.6 и выше есть поддержка LVM2. Для использования LVM2 на ОС с ядром 2.4 надо устанавливать патч.

После того как система обнаружила жесткие накопители, запустится менеджер разбивки жестких дисков. Выбираем пункт Guided — use entire disk and set up LVM.

Guided — use entire disk and set up LVM

Guided — use entire disk and set up LVM

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

Выбор диска для LVM

Выбор диска для LVM

Система предложит варианты разметки носителя. Выбираем «Записать все файлы на один раздел» и идем дальше.

Записать все файлы на один раздел

Записать все файлы на один раздел

Система оповестит о том, что необходимо сохранить созданные изменения при разметке. Смело соглашаемся, выбрав Yes.

Запись сохраненных изменений при разметке

Запись сохраненных изменений при разметке

После сохранения изменений мы получим одну логическую группу и два тома в ней. Первый — это корневой раздел, а второй — это файл подкачки. Тут многие зададут вопрос: а почему не выбрать разметку вручную и не создать LVM самому?

Я отвечу просто: при создании логической группы VG загрузочный раздел boot не пишется в VG, а создается отдельным разделом с файловой системой ext2. Если этого не учесть, то загрузочный том окажется в логической группе. Это обречет тебя на мучения и страдания при восстановлении загрузочного тома. Именно поэтому загрузочный раздел отправляется на том без LVM.

Состояние дисков после разметки

Состояние дисков после разметки

Переходим к конфигурации логической группы для гипервизора. Выбираем пункт «Конфигурация менеджера логических томов».

Конфигурация менеджера логических томов

Конфигурация менеджера логических томов

Система оповестит о том, что все изменения будут записаны на диск. Соглашаемся.

Запись сохраненных изменений при разметке

Запись сохраненных изменений при разметке

Далее в менеджере логических томов удаляем сначала созданные логические тома vg-<hostname>_root и vg-<hostname>_swap . А потом и саму логическую группу vg-<hostname> .

Создадим новую группу — к примеру, назовем ее vg_sata .

Создание новой логической группы

Создание новой логической группы

В серверах используются носители SATA, SSD, SAS, SCSI, NVMe. Хорошим тоном при создании логической группы будет указывать не имя хоста, а тип носителей, которые используются в группе. Советую логическую группу назвать так: vg_sata , vg_ssd , vg_nvme и так далее. Это поможет понять, из каких носителей построена логическая группа.

Далее выберем место на физическом томе, где будет размещена новая логическая группа. В данном случае спутать физический том не получится: загрузочный раздел помечен файловой системой ext2.

Выбор физического тома для размещения логической группы

Выбор физического тома для размещения логической группы

Создаем наш первый логический том. Это будет том для корневого раздела операционной системы. Выбираем пункт «Создать логический том».

Создание логического тома

Создание логического тома

Выбираем группу для нового логического тома. У нас она всего одна.

Выбор логической группы для нового тома

Выбор логической группы для нового тома

Присваиваем имя логическому тому. Правильнее всего при назначении имени будет использовать префикс в виде названия логической группы — например, vg_sata_root , vg_ssd_root и так далее.

Задаем название нового тома

Задаем название нового тома

Указываем объем для нового логического тома. Советую выделить под корень 10 Гбайт, но можно и меньше, благо логический том всегда можно расширить.

Задаем название нового тома

Задаем название нового тома

По аналогии с примером выше создаем следующие логические тома:

  • vg_sata_home — 20 Гбайт под каталоги пользователей;
  • vg_sata_opt — 10 Гбайт для установки прикладного ПО;
  • vg_sata_var — 10 Гбайт для часто меняющихся данных, к примеру логов системы и других программ;
  • vg_sata_tmp — 5 Гбайт для временных данных, если объем временных данных велик, можно сделать и больше. В нашем примере этот раздел не создавался за ненадобностью;
  • vg_sata_swap — равен объему оперативной памяти. Это раздел для свопа, и создаем мы его для подстраховки — на случай, если закончится оперативная память на гипервизоре.

После создания всех томов завершаем работу менеджера.

Завершение работы менеджера логических томов

Завершение работы менеджера логических томов

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

Состояние логической группы после создания томов

Состояние логической группы после создания томов

Создаем одноименный раздел под каждый логический том.

Состояние логической группы после создания томов

Состояние логической группы после создания томов

Сохраняем и записываем проделанные изменения.

Состояние логической группы после создания томов

Состояние логической группы после создания томов

После сохранения изменений разметки диска начнут ставиться базовые компоненты системы, а затем будет предложено выбрать и установить дополнительные компоненты системы. Из всех компонентов нам понадобится ssh-server и стандартные системные утилиты.

Выбор дополнительных компонентов

Выбор дополнительных компонентов

После установки будет сформирован и записан на диск загрузчик GRUB. Устанавливаем его на тот физический диск, где сохранен загрузочный раздел, то есть /dev/sda .

Предложение записать загрузчик на диск Выбор диска для записи загрузчика

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

После перезагрузки системы заходим на гипервизор по SSH. Первым делом под рутом устанавливаем нужные для работы утилиты.

$ sudo apt - get install - y sudo htop screen net - tools dnsutils bind9utils sysstat telnet traceroute tcpdump wget curl gcc rsync

Настраиваем SSH по вкусу. Советую сразу сделать авторизацию по ключам. Перезапускаем и проверяем работоспособность службы.

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

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

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

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

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

История гипервизоров

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

В середине 2000-х годов гипервизоры выходят на новый уровень, когда Unix, Linux и другие похожие на Unix операционные системы начали использовать технологии виртуализации. В чем же причины роста интереса к гипервизорам и виртуализации? Ну, во-первых, причина заключалась в улучшении аппаратных возможностей и мощностей, которые теперь позволили бы одной машине выполнять более синхронизированную работу; во-вторых, усиление контроля издержек, что привело к консолидации серверов; в-третьих, значимую роль сыграла безопасность и надежность благодаря усовершенствованию архитектуры гипервизоров; и конечно последняя, но не менее важная причина — возможность запуска зависимых от ОС приложений в различных аппаратных или операционных средах. Кроме того, в 2005 году разработчики процессоров начали добавлять аппаратную виртуализацию в свои продукты на базе x86, расширяя доступность (и преимущества) виртуализации для ПК и серверной аудитории.

Преимущества гипервизоров

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

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

Существует два типа гипервизоров с очень «креативными» названиями «ТИП 1» или «ТИП 2». Гипервизоры типа 1, иногда называемые «автономными гипервизорами», запускаются непосредственно на аппаратном обеспечении хоста для управления оборудованием и управления гостевыми виртуальными машинами. К современным гипервизорам первого типа относятся: Xen, Oracle VM Server для SPARC, Oracle VM Server для x86, Microsoft Hyper-V и VMware ESX / ESXi. Под управлением Hyper-V, кстати, работают все серверы VDS Windows на хостинге VSP.house.

Гипервизоры типа 2, иногда называемые «хостовыми гипервизорами», запускаются на обычной ОС, как и другие приложения в системе. В этом случае гостевая ОС выполняется как процесс на хосте, а гипервизоры разделяют гостевую ОС и ОС хоста. Примеры гипервизоров второго типа: VMware Workstation, VMware Player, VirtualBox и Parallels Desktop для Mac.
На данный момент можно выделить трех основных крупнейших разработчиков гипервизоров: VMware, Microsoft и Citrix Systems.

Контейнеры против гипервизоров

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

Один из публицистов в статье 2016 для Network World высказал интересное мнение. Он заявил, что виртуальные машины используют много системных ресурсов, ведь каждая виртуальная машина запускает не только полную копию операционной системы, но и виртуальную копию всего оборудования, на котором должна запускаться операционная система. Соответственно, быстро возникает необходимость в использовании большого количества запоминающих устройств и машинных циклов. А все, что требуется контейнеру, — это операционная система, поддерживающая программы и каталоги, а также системные ресурсы для запуска конкретной программы.

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

Проблемы безопасности гипервизоров

Хотя благодаря многим мерам предосторожности гипервизоры считаются более безопасными, чем контейнеры, это не означает того факта, что у гипервизоров нет вообще проблем, связанных с безопасностью. Например, в теории хакеры могут создавать вредоносные программы и руткиты, которые устанавливаются под ОС как гипервизор. Этот процесс, известный как «гиперджекинг», сложно обнаружить, так как вредоносное ПО может перехватывать действия операционной системы (например, ввод пароля) без необходимости защиты от вредоносного ПО, поскольку данное вредоносное ПО уже работает под ОС.

Профессионалы в мире виртуализации могут бесконечно вести дискуссии и споры о том, можно ли обнаружить присутствие руткита на базе гипервизора. Уже даже созданы несколько подходов на эту тему, одними внедрена концепция вредоносного ПО (SubVirt и Blue Pill), другие продемонстрировали антируткит Hooksafe, который обеспечивает эффективную защиту ОС от руткитов режима ядра без заметных потерь в производительности.

Расширение возможностей гипервизора

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

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

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

Гипервизор: программное обеспечение среднего уровня, которое работает между физическим сервером и операционной системой, позволяя нескольким операционным системам и приложениям совместно использовать набор базового физического оборудования. Гипервизор можно рассматривать как «мета» операционную систему в виртуальной среде, которая может координировать доступ ко всем физическим устройствам и виртуальным машинам на сервере, поэтому его также называют монитором виртуальных машин (монитором виртуальных машин). Гипервизор - это ядро ​​всех технологий виртуализации, а непрерывная поддержка миграции нескольких рабочих нагрузок - основная функция гипервизора. Когда сервер запускается и запускает гипервизор, он выделяет соответствующий объем памяти, ЦП, сетевых и дисковых ресурсов каждой виртуальной машине и загружает гостевую операционную систему всех виртуальных машин.

Очень хорошее вступление, поделитесь им со всеми.

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

Виртуализация и гипервизор

Давайте сначала поймем момент, чтобы понять, почему виртуализация важна и роль гипервизоров. (Чтобы узнать больше об этих двух темах, см. Справочные материалы)。

в тексте,Виртуализация Это процесс сокрытия базового физического оборудования каким-либо образом, чтобы несколько операционных систем могли прозрачно использовать и совместно использовать его. Другое более распространенное название этой архитектуры -Виртуализация платформы. В типичной многоуровневой архитектуре уровень, обеспечивающий виртуализацию платформы, называется hypervisor (Иногда называетсяГипервизор Или ВММ). Гостевая операционная система называетсявиртуальная машина(ВМ), потому что для этих ВМ оборудование специально виртуализировано для них. На рисунке 1 просто показана эта многоуровневая архитектура.

Рисунок 1. Простая многоуровневая архитектура, демонстрирующая общую виртуализацию оборудования.

У виртуализации платформы много преимуществ. Интересный набор статистических данных, представленных Агентством по охране окружающей среды США (EPA), доказывает его преимущества. Когда EPA исследовало энергоэффективность серверов и центров обработки данных, было обнаружено, что серверы фактически работают только 5% времени. В других случаях сервер находится в «спящем» состоянии. Платформа виртуализации на одном сервере может улучшить использование сервера, но сокращение количества серверов является ее важнейшей функцией. Уменьшение количества серверов означает сокращение затрат на недвижимость, потребление энергии, охлаждение и управление. Использование меньшего количества оборудования также повышает надежность. Короче говоря, виртуализация платформ не только дает технологические преимущества, но также дает преимущества в стоимости и энергии.

Как видно на рисунке 1, гипервизор - это программный уровень, обеспечивающий виртуализацию базовой машины (что в некоторых случаях требует поддержки процессора). Не все решения виртуализации одинаковы, вы можете Справочные материалы Узнайте больше о методах виртуализации в. Продолжая обсуждение процесса, операционная система виртуализирует доступ к базовым ресурсам машины как процесса. Гипервизор делает то же самое, но его объектом является не процесс, а вся гостевая операционная система.

классификация гипервизора

Гипервизоры можно разделить на две категории. Первый - это тип 1. Этот вид гипервизора работает непосредственно на физическом оборудовании. Второй тип - 2, этот гипервизор работает в другой операционной системе (на физическом оборудовании). Примером гипервизора типа 1 является виртуальная машина на основе ядра (сам KVM является гипервизором на основе операционной системы). Гипервизоры типа 2 включают QEMU и WINE.

Состав гипервизора

Гипервизор (независимо от его типа) - это просто многоуровневое приложение, которое отделяет оборудование машины от гостевой операционной системы. Таким образом, каждая гостевая операционная система видит только виртуальную машину вместо реальной аппаратной машины. Давайте вкратце посмотрим на внутренний состав гипервизора и его представление на виртуальной машине (гостевой операционной системе).

На более высоком уровне гипервизору требуется несколько средств для запуска гостевой операционной системы: образ ядра, который необходимо запустить, конфигурация (например, IP-адрес и необходимый объем памяти), дисковая полка и сеть. устройство. Диски и сетевые устройства обычно сопоставляются с физическими дисками машины и сетевыми устройствами (как показано на рисунке 2). Наконец, необходимо использовать набор инструментов гостевой операционной системы для запуска и управления гостевой операционной системой.

Рисунок 2. Минимальное отображение ресурсов в гипотетическом гипервизоре
Рисунок 3. Упрощенный гипервизор на базе Linux

Linux hypervisor

В этой статье исследуются два гипервизора на базе Linux. Первый - это KVM, первый гипервизор, интегрированный в ядро ​​Linux и обеспечивающий полную виртуализацию. Далее идет Lguest, экспериментальный гипервизор, улучшающий паравиртуализацию с некоторыми изменениями.

KVM нацелен на виртуализированную инфраструктуру, которая работает на оборудовании x86 и находится в ядре. KVM был первым гипервизором, вошедшим в собственное ядро ​​Linux (2.6.20). Он был разработан и поддерживается Avi Kivity, а теперь принадлежит Red Hat.

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

KVM реализован как модуль ядра, поэтому Linux станет гипервизором, пока модуль загружен. KVM обеспечивает полную виртуализацию для аппаратных платформ, поддерживающих инструкции гипервизора (таких как продукты Intel® Virtualization Technology [Intel VT] или AMD Virtualization [AMD-V]). KVM также поддерживает паравиртуализированные гостевые операционные системы, включая Linux и Windows®.

Этот метод реализуется двумя компонентами. Первый - это загружаемый модуль KVM.После того, как модуль установлен в ядре Linux, он может управлять виртуализированным оборудованием и предоставлять свои функции через файловую систему / proc (см. Рисунок 4). Второй компонент используется для моделирования платформы ПК и предоставляется модифицированной версией QEMU. QEMU выполняется как процесс пользовательского пространства и координируется с ядром с точки зрения запросов гостевой операционной системы.

Рисунок 4. Общий вид гипервизора KVM.

Когда новая операционная система запускается на KVM (через kvm Служебная программа), он становится процессом операционной системы хоста, поэтому его можно планировать, как и другие процессы. Но в отличие от традиционного процесса Linux, гостевая операционная система определяется гипервизором как находящаяся в «гостевом» режиме (независимо от режима ядра и пользователя).

Каждая гостевая операционная система передана /dev/kvm Сопоставленные устройства имеют собственное виртуальное адресное пространство, которое сопоставлено с физическим адресным пространством ядра хоста. Как упоминалось ранее, KVM использует поддержку виртуализации базового оборудования для обеспечения полной (собственной) виртуализации. Запросы ввода-вывода отображаются на процесс QEMU, выполняемый на хосте (гипервизоре) через ядро ​​хоста.

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

Lguest (ранее lhype)

Гипервизор Lguest был разработан Расти Расселом из IBM в Австралии и реализует виртуализацию совершенно другим способом. Lguest не предоставляет полную поддержку виртуализации для запуска любой операционной системы, но для гостевых операционных систем Linux, поддерживающих x86 (также известных какВиртуализация Linux на Linux) Обеспечьте легкую паравиртуализацию. Это означает, что гостевая операционная система знает, что она виртуализируется, и в то же время это повысит производительность. Однако Lguest не требует QEMU для обеспечения виртуализации платформы (как в KVM) для повышения производительности. Использование Lguest этого метода также снижает общие требования к коду, требуя только тонкого слоя в гостевой операционной системе и операционной системе хоста. Теперь мы исследуем эти изменения и рассмотрим высокоуровневую архитектуру среды Lguest.

Как показано на рисунке 5, гостевая операционная система содержит тонкий слой кода Lguest (по определению этоПаравиртуализация). Этот код предоставляет множество услуг. На самом высоком уровне есть некоторый код, который может определить, виртуализировано ли запускаемое ядро. Кроме того, существует уровень абстракции, который отправляет привилегированные операции в операционную систему хоста через вызовы виртуализации (через paravirt_ops достигать). Например, гостевая операционная система не может отключать прерывания, чтобы эти запросы выполнялись в операционной системе хоста. Вы также можете найти шину, которая реализует абстракцию устройств для гостевых операционных систем, и набор простых драйверов, реализующих консоли, виртуальные блочные диски и виртуальные сетевые диски (позволяющие общаться с другими гостями).

Рисунок 5. Архитектура Lguest, реализующая паравиртуализацию x86.

Часть ядра реализована в виде загружаемого модуля, а именноlg.ko. Этот модуль содержит интерфейс гостевой операционной системы к ядру хоста. Первый компонент - это переключатель, который реализует метод, позволяющий гостевой операционной системе переключаться в зависимости от контекста во время выполнения. Этот модуль также реализует код файловой системы / proc (для /dev/lguest ), код реализует интерфейс пользовательского пространства для ядра и драйвера (включая вызовы виртуализации). Существуют также коды, которые обеспечивают отображение памяти с помощью теневых таблиц страниц и управления разделами x86.

Наконец, подкаталог Documentation в ядре содержит утилиты запуска ( lguest ), используемый для запуска нового экземпляра гостевой операционной системы. Этот файл отвечает за две задачи, а именно за использование и запись.

Lguest стал основным ядром с версии 2.6.23 (октябрь 2007 г.) и разработан и поддерживается Расти Расселом. Он содержит примерно 5000 строк исходного кода, включая утилиты пользовательского пространства. Хотя Lguest очень прост (говорят, что это так), он может обеспечить настоящую паравиртуализацию. Но простота часто сопровождается ограничениями. Например, Lguest виртуализирует только другие гостевые операционные системы, поддерживающие Lguest, и в настоящее время доступен только для архитектуры x86. Несмотря на эти ограничения, Lguest по-прежнему предоставляет интересный способ виртуализации и открыт для всех, кто хочет изучить код Расти.

Преимущества гипервизора Linux

Использование Linux в качестве ядра для разработки гипервизора дает реальные преимущества. Самым очевидным является то, что при разработке гипервизора на основе Linux были использованы устойчивый прогресс Linux и большой объем работы, вложенной в улучшение Linux. Linux - это развивающаяся платформа, от типичных оптимизаций, исправлений ошибок, нововведений в планировании и управлении памятью до поддержки различных архитектур процессоров (цитата из статьи Джона Солсбери «Стоя на плечах гигантов»).

Не так давно было доказано, что, добавив модуль ядра в KVM, ядро ​​Linux можно превратить в гипервизор. Lguest еще больше улучшил этот подход и упростил решение за счет ограниченной паравиртуализации.

Еще одно особенное преимущество использования Linux в качестве платформы заключается в том, что вы можете не только использовать платформу в качестве гипервизора, но и в качестве операционной системы. Следовательно, помимо запуска нескольких гостевых операционных систем на гипервизоре Linux, вы также можете запускать другие традиционные приложения на этом уровне. Так что не беспокойтесь о новых платформах с новыми интерфейсами прикладного программирования (API), потому что у вас есть стандартная платформа Linux для разработки приложений (если вам нужно отслеживать приложения или гипервизоры). Доступны стандартные протоколы (TCP / IP) и другие полезные приложения (веб-сервер) и гостевые операционные системы. Напомним, когда мы обсуждали KVM Рисунок 4.: В дополнение к гостевой операционной системе также используется QEMU с модифицированным KVM. Это стандартный процесс, демонстрирующий мощь Linux как гипервизора. KVM использует QEMU в виртуализации платформы и использует Linux в качестве гипервизора, тем самым реализуя эту идею, которая позволяет гостевой операционной системе координировать выполнение с другими приложениями Linux.

Заключительные замечания

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

Читайте также: