Kernel based virtual machine

В Ubuntu рекомендуется использовать гипервизор (менеджер виртуальных машин) KVM и библиотеку libvirt в качестве инструментария управления им. Libvirt включает в себя набор программного и пользовательских приложений управления виртуальными машинами (ВМ) virt-manager (графический интерфейс, ) или virsh (командная строка, CLI). В качестве альтернативных менеджеров можно использовать convirt () или convirt2 (WEB интерфейс).

В настоящее время в Ubuntu офицально поддерживается только гипервизор KVM. Этот гипервизор является частью кода ядра операционной системы Linux. В отличие от Xen, KVM не поддерживает паравиртуализацию, то есть, для того, чтобы его использовать, ваш CPU должен подерживать технологии VT. Вы можете проверить, поддерживает ли ваш процессор эту технологию, выполнив команду в терминале:

kvm-ok

Если в результате получили сообщение:

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

значит KVM будет работать без проблем.

Если же на выходе получили сообщение:

Your CPU does not support KVM extensions KVM acceleration can NOT be used

то вы всё равно сможете использовать виртуальную машину, но работать она будет намного медленнее.

Для хост-машины рекомендуется использовать 64-битную ОС. Это позволит:

  • Устанавливать в качестве гостевых 64-битные системы

  • Выделять гостевым системам более 2 Гбайт ОЗУ

Установка

В Ubuntu 10.04 и позже KVM рекомендуется ставить так:

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

Это установка на сервер без X-ов, т. е. не включает в себя графический интерфейс. Установить его можно командой

sudo apt-get install virt-manager

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

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

Процедура создания гостевой системы с помощью графического интерфейса достаточно проста.

А вот текстовый режим можно и описать.

qcow2

При создании системы с помощью графического интерфейса в качестве жёсткого диска предлагается либо выбрать уже существующий файл-образ или блочное устройсво, либо создать новый файл с сырыми (RAW) данными. Однако, это далеко не единственный доступный формат файлов. Из всех перечисленных в типов дисков наиболее гибким и современным является . Он поддерживает снапшоты, шифрование и сжатие. Его необходимо создавать до того, как создать новую гостевую систему.

qemu-img create -o preallocation=metadata -f qcow2 qcow2.img 20G

Согласно тому же , предварительное размещение метаданных (-o ) делает диск изначально немного больше, но обеспечивает лучшую производительность в те моменты, когда образу нужно расти. На самом деле, в данном случае эта опция позволяет избежать неприятного бага. Создаваемый образ изначально занимает меньше мегабайта места и по мере необходимости растёт до указанного размера. Гостевая система сразу должна видеть этот окончательный указанный размер, тем не менее, на этапе установки она может увидеть реальный размер файла. Естественно, устанавливаться на жёсткий диск размером 200 кбайт она откажется. Баг не специфичен для Ubuntu, проявляется ещё в RHEL, как минимум.

Кроме типа образа впоследствии можно будет выбрать способ его подключения — IDE, или Virtio Disk. От этого выбора будет зависеть производительность дисковой подсистемы. Однозначно правильного ответа нет, выбирать нужно исходя из задачи, которая будет возложена на гостевую систему. Если гостевая система создаётся «на посмотреть», то сойдёт любой способ. Вообще, обычно именно I/O является узким местом виртуальной машины, поэтому при создании высоконагруженной системы к этому вопросу нужно отнестись максимально ответственно.

Ссылки

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

Аббревиатура КВМ (KVM) происходит от английского сокращения слов Keyboard, Video и Mouse. Первые КВМ устройства, тогда еще механические, начали массово производиться с начала 90-х и с тех пор постоянно эволюционируют и совершенствуются, открывая новые возможности своего использования. Главная идея, которая лежала в основе создания KVM технологии – дать возможность управления с одного рабочего места сразу несколькими компьютерами.

Современное KVM оборудование включает в себя универсальные кроссплатформенные устройства, способные коммутировать все основные виды интерфейсов: PS/2, USB, RS-232, DVI, HDMI, VGA, DisplayPort и пр., что позволяет использовать КВМ технологию в любых IT сценариях и подключать компьютеры и периферию разных производителей.

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

Существует два основных типа КВМ оборудования:

  • KVM удлинители (KVM extender)
  • KVM переключатели (KVM switch)

Первые решают задачу передачи (удлинения) интерфейсных сигналов на расстояния (от нескольких метров до десятков километров), вторые позволяют оптимизировать IT инфраструктуру: расположение, коммутацию и количество рабочих мест.
КВМ удлинители (представляют собой пару устройств: приемник и передатчик) делятся по способу передачи сигнала на три группы:

  • Удлинители по оптоволоконному кабелю (fiber optic)
  • Медной витой паре (CATx)
  • IP сетям (KVM over IP)

У каждой группы есть свои особенности:

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

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

KVM удлинители по витой паре (CATx) не столь «дальнобойные», но могут быть использованы везде, где можно проложить медную витую пару. Благодаря своим широчайшим возможностям коммутации и простоте инсталляции — это самый популярный вид КВМ удлинителей.

Основное преимущество KVM over IP удлинителей – они не требуют прокладки новых кабелей, т.к. используют существующую локальную сеть предприятия. Использование технологии KVM over IP дает возможность администрировать территориально распределенные серверы, которые могут находиться не только в разных помещениях, но и в разных странах.

КВМ переключатели (KVM switch) делятся по типу доступа на три вида:

  • Однопользовательские (Single user)
  • Многопользовательские (Multi user)
  • Матричные (Matrix KVM switch)

Однопользовательские КВМ переключатели позволяют одному пользователя управлять группой компьютеров с одного рабочего места.
Многопользовательские КВМ переключатели позволяют нескольким пользователям одновременно администрировать группу компьютеров.
Матричные КВМ переключатели позволяют переключать N-ое количество пользователей к N-му количеству компьютеров, где N может достигать значения 320.

КВМ переключатели отличаются количеством портов (от 1 до 64), видом подключений.
По витой паре (CATx), через IP или по оптическому кабелю, а также набором дополнительных функций:

  • Поддержка аудио (стерео)
  • Удаленное управление питанием
  • Поддержкой разных форматов VGA, DVI, HDMI
  • Безопасность: аутентификация и шифрование
  • Разное количество подключаемых мониторов
  • Разная удаленность рабочего места от управляемого устройства
  • Поддержка последовательных устройств

Кроме снижения расходов на содержание IT инфраструктуры и гибкости в организации территориального пространства предприятия КВМ технология дает дополнительные возможности. Рассмотрим их на примере KVM over IP переключателя:

  • Повышенная надежность в эксплуатации, в отличие от традиционных софтверных и аппаратных систем управления серверами.
  • Полная независимость от работы и настроек используемых операционных систем дает возможность управлять с одного переключателя KVM over IP любыми компьютерами сети работающими под разными ОС (Windows, Mac, Sun и пр).
  • Удаленное управление: переустановка ОС, конфигурирование на уровне BIOS, «холодная» перезагрузка серверного оборудования при аварийных ситуациях, когда WEB интерфейс управления серверами не доступен.
  • Центральный авторизованный доступ, защищенный шифрованием с гибким разграничением прав на уровне портов.

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

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

Возврат к списку

Kernel-based Virtual Machine

Downloads

Most Linux distros already have KVM kernel modules and userspace tools available through their packaging systems. This is the easiest and recommended way of using KVM.

  • KVM kernel modules are part of the Linux kernel package
  • Userspace tools are usually called «qemu-kvm» or «kvm»
  • Linux guest drivers are part of the Linux kernel package
  • Windows guest drivers are available here

Please try your distro’s packages first. Normally you do not need to patch anything or build from source.

Getting old versions of KVM

If you want to use specific versions of KVM kernel modules and supporting userspace, you can download the latest version from http://sourceforge.net/project/showfiles.php?group_id=180599. Note that as of QEMU 1.3, the userspace code comes straight from http://wiki.qemu.org/Download.

For the userspace components, you will find both qemu-kvm-<version> and kvm-<version> there. qemu-kvm is the stable branch of kvm, it’s based off of qemu’s point releases with the kvm extras on top; kvm-NN releases were previously known as the development releases, but are deprecated today and should not be used.

The kernel modules can be found in kvm-kmod-<kernel version>. A kernel version of 2.6.32.3 means that these are the same modules as those included with the 2.6.32.3 kernel from http://www.kernel.org

You can consult the changelog files included in the download-directory with each qemu-kvm and kvm-kmod release on Sourceforge for changes in the releases.

If you use a kernel from http://www.kernel.org or one provided from your distribution and do not use the modules provided by kvm-kmod releases:

  • your kernel has to be 2.6.29 or newer to run any version of qemu-kvm (kernel 2.6.27/2.6.28 with kvm-kmod 2.6.29 will also work)
  • your kernel has to be 2.6.25 or newer to run the kvm 76 userspace (or any newer kvm-XX release)
  • the modules provided by Linux 2.6.22 or later require kvm-22 or any later version. Some features are available only with newer kernels or userspace. It is recommended to use the latest available version.
  • the modules provided by Linux 2.6.21 require kvm-17. If you use the external module, use the latest available version.
  • the modules provided by Linux 2.6.20 require kvm-12. If you use the external module, use the latest available version.

Refer to choose the right kvm & kernel version for more information.

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

Гипервизор KVM

Он дает возможность осуществлять виртуализацию на серверах с операционной системой Linux. Однозначным плюсом является то, что данный гипервизор входит в состав ядра Linux, поэтому он постоянно совершенствуется и обновляется. Использовать его можно только в случае аппаратной виртуализации – с помощью процессоров Intel или Amd. Процессорный модуль KVM дает ему возможность осуществлять доступ непосредственно к ядру. Благодаря этому можно напрямую управлять файлами виртуальных машин и образами дисков. Для каждой ВМ предназначено индивидуальное пространство.

Гипервизор Xen

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

Код этого гипервизора не перегружен лишними функциями. Он оснащен возможностями управления ОЗУ, частотой работы процессора, работы c прямым доступом к памяти, а также таймером. Все остальные функции выполняют подключенные к работе в данный момент ВМ. Перечисленные преимущества делают работу с Xen простой и удобной даже для человека, познания которого не очень глубоки в данной сфере.

Исследование

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

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

Уточним, что мнения о том, что выбранный нами дистрибутив для ОС – Fedora 20 от Red Hat – лучше подходит для KVM не совсем верны. Мы не рассматриваем борьбу ВМ за ресурсы процессора во время одновременной работы, так как при разной степени конкуренции гипервизоры могут показывать разную производительность. Поэтому мы считаем условия соревнования честными для обеих сторон.

Результаты

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

Первый кандидат – KVM показал производительность в среднем на полтора процента ниже производительности железа. В тесте на 7-ZIP данный гипервизор оказался почти на 3 процента медленнее, а в тесте на PostMark на целых 4 с лишним процента быстрее железа. Результаты Xen оказались хуже, он не превзошел своего конкурента ни в одном из тестов, отстав от железа на 2.5 процента в трех тестах, а в остальных показал себя еще хуже. Самое сильное отклонение выявилось, как и у KVM – в тесте на PostMark, но Xen не обогнал железо, как его конкурент, а отстал практически на 15 процентов. Повторные результаты теста отклонились от предыдущих не более, чем на 2 процента. Более подробно с результатами тестирования вы можете ознакомиться в таблице:

Итог

KVM всегда показывал себя медленнее железа примерно на 2 процента, но не более того. Xen же уступал железу на 2.5-7 процентов в большинстве из тестов. Хорошие результаты KVM в тесте на PostMark могут быть не совсем точными про причине недостаточного количества проведенных тестов.

Виртуализацией по тарифам. Настраиваем Windows в KVM

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

Наша компания, имея свои VPS серверы на базе KVM, выбирает именно этот гипервизор из-за преимуществ, которые он обеспечивает. К ним можно отнести тот факт, что KVM жестко делит ОЗУ и дисковое пространство. Это не позволяет ресурсам быть переданными другим пользователям (не допускается оверселлинг).

Используем KVM для создания виртуальных машин на сервере

12 Фев.

Введение в основы виртуализации с KVM

2017, Инструменты, 29241 просмотров

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

Сейчас передо мной встал вопрос аренды хорошего сервера с большим объёмом оперативной памяти и объёмным жестким диском. Но запускать проекты прямо на хост-машине не хочется, поэтому буду разграничивать их по отдельным небольшим виртуальным серверам с ОС 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, выполняем:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка Port forwarding

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выполнить halt:

Запуск:

Отключение:

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

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

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

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

Ссылки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *