Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Виртуализация и эмуляция в Linux

Создаем виртуальный сервер на базе KVM

Оригинал: "Create a KVM-based virtual server"
Автор: Da Shuang He
Дата публикации: 19 Jan 2010
Перевод: Н.Ромоданов
Дата перевода: 25 марта 2010 г.

Краткое содержание: С помощью трех сравнительно простых шагов вы можете с помощью технологии полной виртуализации создать виртуальный сервер на 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. Установить операционную систему и необходимое программное обеспечение
  2. Создать виртуальный сервер
  3. Сконфигурировать сеть виртуального сервера

Шаг 1. Устанавливаем ОС и необходимое программное обеспечение

В этой части рассматриваются следующие вопросы:

  1. Установка операционной системы и требуемого программного обеспечения
  2. Определение, поддерживает ли процессор работу с KVM
  3. Проверка правильности установки программного обеспечения

Установка операционной системы и программного обеспечения

После того, как вы установите операционную систему, вы можете с помощью следующей команды проверить установленную версию ядра Linux:

kvm:~ # uname -a
Linux kvm 2.6.27.13-1-pae #1 SMP 2009-01-27 13:41:16 +0100 i686 i686 i386 GNU/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

kvm:~ # grep vmx /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni 
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca lahf_lm

Проверяем правильность установки программного обеспечения

Запустите команду lsmod | grep kvm для того, чтобы проверить, что модуль KVM установлен успешно. Если результат аналогичен тому, что показан ниже, то модуль KVM установлен успешно:

kvm:~ # lsmod | grep kvm
kvm_intel              42604  0
kvm                   150264  1 kvm_intel

Шаг 2. Создаем виртуальный сервер

В этой части рассматриваются следующие вопросы:

  1. Создаем образ диска в формате raw
  2. Устанавливаем ОС на этот образ
  3. Запускаем виртуальный сервер

Создаем образ диска в формате raw

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

dd if=/dev/zero of=/mnt/kvmtest.img bs=1024 count=0 seek=$[10*1024*1024]

С помощью этой команды вы создаете образ размером 10 Гбайт и с именем kvmtest.img.

Устанавливаем операционную систему на образ диска

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

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -boot d -cdrom /mnt/SLES-11-DVD-i586-RC3-DVD1.iso -m 1024

Поскольку вы устанавливаете пакет KVM, а не создаете модуль KVM из исходного кода самостоятельно, вы должны использовать команду qemu-kvm, а не команду qemu-system-x86_64.

-boot d означает, что мы будем создавать виртуальный сервер, загружая его с CDROM. -m 1024 означает, что мы выделяем для виртуального сервера 1 Гбайт памяти.

После того, как эта команда будет запущена, появится экран установки операционной системы, такой как показано на рис.2:

Рис.2. Экран установки ОС

Далее установите операционную систему так, как вы это обычно делаете.

Теперь запустите ваш виртуальный сервер

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

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -m 1024 

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

Шаг 3: Конфигурирование сетевых настроек виртуального сервера

Теперь вы знаете, как правильно создавать виртуальный сервер, но не сетевое соединение для виртуального сервера. Рассмотрим, как создать виртуальное соединение типа "мост":

  1. Устанавливаем пакет bridge-util
  2. Создаем сетевой интерфейс типа "мост"
  3. Создаем скрипт для управления сетью
  4. Запускаем сеть гостевой операционной системы
  5. Конфигурируем сеть гостевой операционной системы

Установка пакета 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. Скрипт управления сетью

#!/bin/sh
set -x
switch=br0
if [ -n "$1" ];then
        tunctl -u `whoami` -t $1
        ip link set $1 up
        sleep 0.5s
        brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

Запуск гостевой операционной системы

Запустите гостевую операционную систему с сетевым интерфейсом с помощью следующей команды:

/usr/bin/qemu-kvm -hda /mnt/kvmtest.img -m 1024 -net nic,macaddr=52:54:00:12:34:56 -net tap,script=/etc/qemu-ifup

Когда вы запускаете виртуальный сервер, вы можете указать сетевой интерфейс.

Конфигурирование сетевых настроек гостевой операционной системы

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

Поздравляем! Вы успешно создали виртуальный сервер, построенный на основе KVM.


Ссылки на другие статьи по теме виртуализации вы найдете в разделе "Технологии и средства виртуализации" нашей Библиотеки.



Средняя оценка 5 при 1 голосовавших