- Создаем виртуальный сервер на базе KVM
- Шаг 1. Устанавливаем ОС и необходимое программное обеспечение
- Установка операционной системы и программного обеспечения
- Определяем, поддерживает ли процессор работу с KVM
- Проверяем правильность установки программного обеспечения
- Шаг 2. Создаем виртуальный сервер
- Создаем образ диска в формате raw
- Устанавливаем операционную систему на образ диска
- Теперь запустите ваш виртуальный сервер
- Шаг 3: Конфигурирование сетевых настроек виртуального сервера
- Установка пакета bridge-util
- Создание сетевого интерфейса типа «мост»
- Создание скрипта управления сетью
- Запуск гостевой операционной системы
- Конфигурирование сетевых настроек гостевой операционной системы
- Установка виртуальных машин KVM под ubuntu server
Создаем виртуальный сервер на базе KVM
Краткое содержание: С помощью трех сравнительно простых шагов вы можете с помощью технологии полной виртуализации создать виртуальный сервер на Linux-гипервизоре KVM.
Виртуальная машина, созданная на базе ядра Linux (KVM), является бесплатным программным обеспечением для Linux, имеющим открытый код и предназначенным для использовании технологии виртуализации. KVM основывается на расширенных возможностях, реализованных аппаратно (Intel VT-X и AMD-V), и на модифицированной версии QEMU. KVM является загружаемым модулем ядра kvm.ko, с помощью которого реализуется основная инфраструктура виртуализации серверов, а модули, реализованные под конкретные процессоры — kvm-intel.ko и kvm-amd.ko, разработаны для обеспечения полной аппаратной эмуляции, что требуется для загрузки большого количества операционных систем в немодифицированном виде.
С помощью KVM можно запустить несколько виртуальных машин, которые сами могут быть немодифицированными образами Linux, Windows или Mac OS X. Каждая виртуальная машина имеет свои собственные виртуальные аппаратные средства, такие как сетевая карта, диск, графический адаптер и т.д.
В настоящей статье используется сервер IBM® Blade Server HS21 с SUSE 11 в качестве операционной системы. В сервере HS21 поддерживается расширенная технология Intel VT, а версия ядра, используемая в SUSE 11, — 2.6.27.13, в котором уже есть гипервизор KVM (гипервизор KVM входит в ядро начиная с версии 2.6.20).
Для того, чтобы создать виртуальных сервер, нужно выполнить следующие три шага:
- Установить операционную систему и необходимое программное обеспечение
- Создать виртуальный сервер
- Сконфигурировать сеть виртуального сервера
Шаг 1. Устанавливаем ОС и необходимое программное обеспечение
В этой части рассматриваются следующие вопросы:
- Установка операционной системы и требуемого программного обеспечения
- Определение, поддерживает ли процессор работу с KVM
- Проверка правильности установки программного обеспечения
Установка операционной системы и программного обеспечения
После того, как вы установите операционную систему, вы можете с помощью следующей команды проверить установленную версию ядра Linux:
Затем выберите и установите пакеты kvm и kvm-kmp-default (в состав которых уже входит модифицированный QEMU для эмуляции аппаратных средств ввода/вывода). Смотрите рис.1, выберите эти пакеты и щелкните по Accept для того, чтобы их установить:
Рис.1. Поиск модулей установленного ядра
Версия kvm-kmp-default — 78_2.6.27.13_1-11.3 (78 — это версия KVM , а остальная часть указывает версию ядра).
Типичный вариант гипервизора KVM содержит следующие компоненты:
- Драйвер устройств для управления виртуальным аппаратным обеспечением; этот драйвер предоставляет свои возможности через символьное устройство /dev/kvm
- Компонента пользовательского пространства для эмуляции аппаратного обеспечения персонального компьютера; в настоящий момент она обрабатывается в пользовательском пространстве и является слегка модифицированным процессом QEMU
- Модель ввода/вывода, которая непосредственно следует из модели QEMU с поддержкой образов копирования и записи на диск и других особенностей QEMU
Определяем, поддерживает ли процессор работу с KVM
KVM зависит от наличия расширенных команд виртуализации x86. Для того, чтобы проверить совместимость, запустите команду grep vmx /proc/cpuinfo (на AMD, запустите команду grep svm /proc/cpuinfo ). Если результат выдачи будет похож на листинг 1, то это означает, что ваш процессор поддерживает использование KVM; в противном случае ваш процессор не поддерживает работу KVM.
Листинг 1. Проверка процессора на предмет поддержки KVM
Проверяем правильность установки программного обеспечения
Запустите команду lsmod | grep kvm для того, чтобы проверить, что модуль KVM установлен успешно. Если результат аналогичен тому, что показан ниже, то модуль KVM установлен успешно:
Шаг 2. Создаем виртуальный сервер
В этой части рассматриваются следующие вопросы:
- Создаем образ диска в формате raw
- Устанавливаем ОС на этот образ
- Запускаем виртуальный сервер
Создаем образ диска в формате raw
Для того, чтобы создать образ диска, используйте следующую команду:
С помощью этой команды вы создаете образ размером 10 Гбайт и с именем kvmtest.img.
Устанавливаем операционную систему на образ диска
Для того, чтобы получить операционную систему, установленную на этом образе, используйте следующую команду:
Поскольку вы устанавливаете пакет KVM, а не создаете модуль KVM из исходного кода самостоятельно, вы должны использовать команду qemu-kvm , а не команду qemu-system-x86_64 .
-boot d означает, что мы будем создавать виртуальный сервер, загружая его с CDROM. -m 1024 означает, что мы выделяем для виртуального сервера 1 Гбайт памяти.
После того, как эта команда будет запущена, появится экран установки операционной системы, такой как показано на рис.2:
Рис.2. Экран установки ОС
Далее установите операционную систему так, как вы это обычно делаете.
Теперь запустите ваш виртуальный сервер
После того, как операционная система будет успешно установлена, вы сможете запустить виртуальный сервер с помощью следующей команды:
Ваш сервер должен работать точно также, как обычный сервер работает на физически реализованном аппаратном обеспечении.
Шаг 3: Конфигурирование сетевых настроек виртуального сервера
Теперь вы знаете, как правильно создавать виртуальный сервер, но не сетевое соединение для виртуального сервера. Рассмотрим, как создать виртуальное соединение типа «мост»:
- Устанавливаем пакет bridge-util
- Создаем сетевой интерфейс типа «мост»
- Создаем скрипт для управления сетью
- Запускаем сеть гостевой операционной системы
- Конфигурируем сеть гостевой операционной системы
Установка пакета bridge-util
Нам нужно создать сетевое соединение типа «мост», поэтому нам нужно в операционной системе в разделе управления программным обеспечением выбрать для установки пакет bridge-util.
Рис.3. Установка пакета bridge-util
Создание сетевого интерфейса типа «мост»
На экране настройки сетевых соединений щелкните по ссылке Add a new network interface (Добавить новый сетевой интерфейс) (см.рис.4):
Рис.4. Добавление нового сетевого интерфейса
Должно появиться диалоговое окно настройки аппаратного обеспечения, такое как изображено на рис.5:
Рис.5. Диалог настройки аппаратного обеспечения, используемого для нового сетевого интерфейса
Выберите Bridge («Мост») в качестве типа устройства; щелкните по ссылке Next («Далее») для того, чтобы продолжить конфигурирование сети. Вы должны увидеть экран конфигурирования такой, как изображено на рис. 6:
Рис.6. Экран конфигурирования сети
В разделе «Bridged Devices» выберите вариант eth0 и укажите статический IP адрес для интерфейса типа «мост», который должен быть такой же, как и у eth0 (см. рис. 7).
Рис.7. Конфигурирование статического IP адреса для интерфейса типа «мост»
После того, как вы это сделаете, конфигурация для eth0 должна быть сброшена, поэтому щелкните по ссылке Next («Далее») для того, чтобы продолжить, и вы вернетесь в экран конфигурирования сетевых настроек. Вы увидите, что был создан новый сетевой интерфейс типа «мост» и что интерфейс eth0 был очищен.
Создание скрипта управления сетью
Содержимое скрипта управления сетью должно выглядеть приблизительно так, как показано на листинге 2:
Листинг 2. Скрипт управления сетью
Запуск гостевой операционной системы
Запустите гостевую операционную систему с сетевым интерфейсом с помощью следующей команды:
Когда вы запускаете виртуальный сервер, вы можете указать сетевой интерфейс.
Конфигурирование сетевых настроек гостевой операционной системы
После того, как гостевая операционная система будет загружена, сконфигурируйте ее сетевые настройки так, как вы это делаете обычно.
Поздравляем! Вы успешно создали виртуальный сервер, построенный на основе KVM.
Ссылки на другие статьи по теме виртуализации вы найдете в разделе «Технологии и средства виртуализации» нашей Библиотеки.
Источник
Установка виртуальных машин KVM под ubuntu server
Последнее время применение виртуализации при построении серверной инфраструктуры встречается все чаще. Гибкость, масштабируемость, экономия делают эту технологию очень перспективной. Сейчас на рынке существует достаточное количество решений, как проприетарных, так и open source, позволяющих развернуть виртуальные сервера. Один из таких вариантов я хочу рассмотреть в данной статье.
Поигравшись с ГУЙовыми платформами виртуализации от Microsoft, VMware и Sun, я решил попробовать сделать тоже самое через консоль. Установив давно понравившийся мне linux дистрибутив ubuntu, стал выбирать — на какой же реализации виртуальных машин (ВМ) остановиться. В википедии есть интересная табличка, хотя посмотрев оффициальный help к ubuntu я понял, что лучше начать с KVM.
Процедура установки хост-сервера в общем-то стандартная, но есть нюансы. Во время установки включил LVM (как я понял — гостевые ОС можно впоследстии размещать на LVM-томах, что придаст дополнительную гибкость), а в окне выбора доустанавлемого ПО отметил OpenSSH server и Virtual Machine host.
Хост-серверу задан статический ip 172.16.4.24, что можно увидеть далее в приведенных конфигах.
После установки хост-сервера, подключаемся к нему по ssh (одноименной командой из linux или putty/kitty из windows).
Первым делом необходимо проверить, поддерживает ли железо сервера аппаратную виртуализацию командой
egrep ‘(vmx|svm)’ /proc/cpuinfo
Если вывод команды не пустой, значит поддерживает.
Скачиваем в домашнюю папку iso-образ того дистрибутива операционной системы, которая в последствии будет гостевой. У меня это тот же самый ubuntu-9.04-server-amd64.iso
Устанавливаем необходимые пакеты:
sudo apt-get install kvm libvirt-bin python-virtinst bridge-utils
Добавляем пользователя, который будет рулить виртуалками (в простейшем случае это тот пользователь, которого мы завели во время установки системы, и под которым проделываем все описываемые действия):
sudo adduser $USER libvirtd
После этого лучше ребутнуться.
Проверяем, как установилась KVM, командой:
virsh -c qemu:///system list —all
В консоли должно появиться примерно следующее:
az@vsrvs:
$ virsh -c qemu:///system list —all
Connecting to uri: qemu:///system
Id Name State
———————————-
если все так, продолжаем.
Для того, чтобы виртуальные сервера работали в нашей реальной локальной сети на хост-машине создаем сетевой мост. Для этого надо подредактировать файл /etc/network/interfaces
Так он выглядел до модификации:
Далее переходим к инсталляции ВМ:
sudo virt-install -n vsrv1 -r 384 -f vsrv1.img -s 10 -c ubuntu-9.04-server-amd64.iso —accelerate —os-type=linux —os-variant=generic26 -v —vnc -w bridge:br0
где:
-n vsrv1 — имя ВМ;
-r 384 — выделяемый объем ОЗУ для нее;
-f vsrv1.img — файл, являющийся виртуальный жестким диском для гостевой ОС;
-s 10 — объем этого диска в гигабайтах;
-c ubuntu-9.04-server-amd64.iso — образ cd дистрибутива гостевой ОС, подключаемый как виртуальный cdrom;
—accelerate —os-type=linux —os-variant=generic26 -v — ускоряем, оптимизируем ВМ для конкретной гостевой ОС и задействуем аппаратные возможности виртуализации;
—vnc — запускаем для ВМ vnc-сервер;
-w bridge:br0 — указываем использовать сетевой мост.
Если после запуска этой команды не появилось никаких ошибок, а отобразилось нечто следующее:
Starting install…
Creating domain… 0 B 00:01
/usr/lib/python2.6/dist-packages/virtinst/Guest.py:1086: DeprecationWarning: integer argument expected, got float
for ignore in range(1, (5 / .25)): # 5 seconds, .25 second sleeps
Unable to connect to graphical console: virt-viewer not installed. Please install the ‘virt-viewer’ package.
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
То все отлично, виртуальная машина запустилась, что можно проверить командой:
virsh -c qemu:///system list —all
Поэтому преступаем к установке гостевой ОС.
Для начала необходимо подключится к vnc-серверу, который отображает экран ВМ. Я делал это из WinXP, хотя, из практически любого linux дистрибутива, это делается аналогично.
Устанавливаем (если в самом начале не установили, а настраивали сервер локально) ssh-клиент, например, kitty (доработанный вариант putty). Запускаем, настраиваем:
- Во вкладке Session — Host Name (or IP address) адрес нашего хост-сервера (в моем случае 172.16.4.24).
- Во вкладке Windows-Translation — выбираем UTF-8.
- Во вкладке Connection-SSH-Tunnels — заполняем поля Source port 59000, Destination localhost:5900, нажимаем Add. Должна появится следующая запись:
- Жмем Open и мы должны подключится по SSH к хост-серверу. Одновременно у нас произойдет перенаправление порта 5900 хост-сервера (порт vnc-сервера) на наш локальный 59000 порт.
Примечание. При запуске еще одной ВМ, порт vnc-сервера увеличится на 1, поэтому для того, чтобы увидеть ее экран необходимо сделать перенаправление порта 5901 хост-сервера на, например, порт 59001.
Устанавливаем vnc-клиент, например UltraVNC, запускаем UltraVNC Viewer и подключаемся к localhost:59000. Если все сделано правильно, то мы увидим экран нашей ВМ с запущенным инсталлятором гостевой ОС.
Устанавливаем гостевую ОС.
Так она начинает загружаться после установки:
Источник