Qemu-Kvm: Работа В Debian

Данная статья представляет собой обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Хочу поделиться теми знаниями и опытом, которые имею на данный момент. Надеюсь, моя статья принесет пользу тем, кто только планирует использовать гипервизор Qemu-KVM или уже использует его.

И еще: статья не для новичков в Linux (базовые вещи здесь рассматриваться не будут).

Об этой системе виртуализации написано много в сети.

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

Итак, давайте начнем.

Входящая задача.

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

Конфигурация компьютера:

  • Процессор Атлон Х2 245
  • Оперативная память 4 гигабайта
  • жесткий диск на 500 гигабайт
  • Материнская плата ASUS M4N68T-M LE.
После некоторых раздумий было принято решение использовать компьютер как платформу для работы с виртуальными машинами.

Процессор поддерживал аппаратную виртуализацию.

В связи с этим было принято решение установить еще 1 жесткий диск.

Покопавшись в «закромах родины», был найден диск на 80 гигабайт. Его добавили в конфигурацию.

Мы разобрались с компьютером.

Теперь очередь гипервизора.

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

Поэтому виртуалбокс, виртуальный компьютер Microsoft, рабочие станции vmware не подходили.

Возник следующий вопрос – какую систему выбрать:

  1. Microsoft Hyper-V не подходит - он платный.

    Компания, в которой я работаю, использует только лицензионное программное обеспечение.

    Поэтому серверную лицензию для моих целей никто выделять не будет.

  2. VMWARE ESXi не знает SATA-контроллера, расположенного на материнской плате (поскольку он разрабатывался для серверных систем).

  3. Qemu-kvm — это свободно разрабатываемый гипервизор, поддерживающий аппаратную виртуализацию.

    Его можно установить в любой современный дистрибутив Linux. Это для меня, и мы это берем.

Выбор дистрибутива Linux. По умолчанию я использую Debian. Вы можете выбрать любой дистрибутив, который вам нравится (ubuntu, Fedora, Opensuse, Archlinux).

Гипервизор qemu-kvm доступен в любом из вышеперечисленных дистрибутивов, и в Google полно статей о том, как его установить.

Давайте приступим к делу.

Я не буду описывать установку операционной среды.

Оговорюсь лишь, что при установке операционной среды жёсткий диск большего объёма не трогался.

Его время придет. Как установить гипервизор на Debian очень хорошо описано Здесь .

Лично я устанавливаю qemu-kvm libvirt-bin. Гипервизор мы установили, теперь немного о внутреннем устройстве.

Есть два каталога, на которые стоит обратить внимание: /etc/libvirt/ — здесь в основном хранятся конфигурационные файлы /var/lib/libvirt/ — здесь будут храниться образы жестких дисков, снимки системы и многое другое.

Наш гипервизор установлен.

Теперь немного о настройках.

Qemu-kvm не работает напрямую с сетевой картой физического компьютера.

Поэтому вам необходимо настроить мост. Что делаем: открываем файл /etc/network/interfaces и приводим его к следующему виду: # Этот файл описывает сетевые интерфейсы, доступные в вашей системе.

# и как их активировать.

Для получения дополнительной информации см.

интерфейсы(5).

# Сетевой интерфейс обратной связи авто ло бр0 iface lo inet петля # Настройте интерфейсы вручную, избегая конфликтов, например, с сетевым менеджером.

руководство по iface eth0 inet # Настройка моста iface br0 инет статический мост_порты eth0 адрес xxx.xxx.xxx.xxx трансляция xxx.xxx.xxx.xxx маска сети xxx.xxx.xxx.xxx шлюз xxx.xxx.xxx.xxx мост_stp выключен мост_фд 0 мост_максожидание 0 Больше информации Здесь .

Далее сохраните файл и перезагрузите компьютер.

О, чудо! Гипервизор установлен! Тогда возникает вопрос: как управлять сервером? Управлять Qemu-kvm можно с помощью двух программ: virt-manager и virtinst. Вирт-менеджер.

Эта программа предназначена для графического интерфейса.

Он поддерживает как удаленное, так и локальное управление виртуальными машинами.

Но у него есть огромный минус – аналогов для Windows просто нет. Как лично я выходил из ситуации.

Я установил графическую оболочку LXDE и сервер xrdp, благодаря такому простому набору программ мне не пришлось физически подходить к компьютеру (слишком большая ему заслуга).

Я просто подключался через стандартный RDP-клиент, доступный в Windows. Но это дополнительная трата ресурсов компьютера.

Если вы установили virt-manager, он автоматически создает: хранилище для образов виртуальных машин по пути /var/lib/libvirt/images виртуальный сетевой интерфейс по умолчанию.

Поэтому вам необходимо смонтировать жесткий диск большой емкости в каталог /var/lib/libvirt/images. Виртуст. Это консольная утилита.

Никакой графики, только командная строка и экономия системных ресурсов.

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

Это делается следующим образом.

Подключаемся к серверу по ssh. Войдите в систему как пользователь root. Вы можете выбрать любое место хранения:

  1. вы можете смонтировать жесткий диск в каталог и указать его в качестве хранилища
  2. Вы можете просто выбрать устройство в качестве хранилища.

Меня больше привлек вариант с каталогом (так проще копировать диски виртуальных машин).

Поэтому что я сделал: отформатировал диск на 500 гигабайт в формате ext4 (когда btrfs будет завершен, лучше использовать его).

Я создал каталог /etc/libvirt/images и смонтировал его туда.

Не забудьте добавить в fstab строку для автоматического монтирования.

Затем введите в консоли vitsh и нажмите Enter. Это выглядит так: root@kvm:/home/firsachi# вирш Добро пожаловать в virsh, интерактивный терминал виртуализации.

Введите: «help» для получения справки по командам.

'бросить', чтобы бросить вирш # Теперь, если вы дадите команду help, мы увидим список команд оболочки.

Нас интересует, есть ли готовые складские помещения.

Для этого введите команду пул-лист --all virsh # список пулов --all -Имя состояния автозапуска Если вы просто введете пул-лист, то вам будут показаны только активные хранилища, но вам нужно увидеть их все.

Создание пула virsh # каталог пула-определения-как хранилища --target /etc/libvirt/images/ Мы говорим, что пул запускается автоматически virsh # пул-автозапуск хранилища Давайте запустим бассейн virsh # хранилище при запуске пула Теперь давайте проверим virsh # список пулов –все Вывод должен быть такой virsh # список пулов --all Имя Состояние Автозапуск - память активна да Рекомендую немного почитать о командах здесь .

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

Файл конфигурации пула будет расположен в каталоге /etc/libvirt/storage/; это файл .

xml. Выйдите из virsh, введя команду выхода.

В принципе наш гипервизор установлен и можно пользоваться.

Но есть еще маленькая деталь, о которой хотелось бы упомянуть.

А именно, как работает Qemu-kvm. Работающая на нем виртуальная машина отправляет команды физическому процессору напрямую через загружаемый модуль (kvm-amd или kvm-intel).

Это должен быть один из модулей, соответствующий производителю процессора (Intel или AMD).

Этот модуль загружается во время запуска системы.

Однако это не мой метод. Я пересобираю ядро системы, чтобы встроить нужный модуль (как вариант при пересборке) непосредственно в ядро.

Но это не единственная модернизация, которую я делаю.

Помимо этого я делаю следующее:

  • отключаю поддержку звука (это сервер, а не рабочая станция);
  • Я не использую протокол IPv6 (моя сеть его не использует);
  • Отключаю поддержку сетевых карт wifi, wmax и всего что с ними связано.

Не люблю, когда ненужные функции нагружают ядро лишней нагрузкой.

Эти статьи помогли мне собрать собственное ядро.

первый И второй .

Я забегу немного вперед. Многие в Интернете жаловались, что модель сетевой карты virtio работает неправильно.

Этому есть объяснение, и довольно простое.

Драйверы для этого устройства находятся на стадии эксперимента.

Но хранилище Virtio работает отлично.

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

Давайте создадим нашу первую виртуальную машину: вирт-установить --подключиться qemu:///система \ --name комп1\ --ram 512\ --vcpus=1 \ --disk пул=хранилище,кэш=нет,размер=20, формат=qcow2\ --disk /home/firsachi/Winxp.iso,device=cdrom \ --bridge=br0,model=e1000 \ --os-type=окна --os-variant=winxp\ --graphics vnc, порт = 5901, прослушивание = 0.0.0.0 Хочу уточнить некоторые детали: пул = хранилище укажите пул, в котором хотите создать диск; кэш = нет это означает, что кэширование записи на диск отключено.

В моем случае это изображение img. Если включено кэширование записи, время, необходимое для доступа к диску виртуальной машины, удваивается; размер=20 размер диска в гигабайтах; format= qcow2 — формат образа диска.

Насколько я понимаю, только он поддерживает снимки системы; модель=e1000 Модель гигабитной сетевой карты Intel (по умолчанию — 100-мегабитная rtl8139); порт=5901 порт, доступ к которому можно получить с помощью Ultra VNC Viewer; слушать=0.0.0.0 разрешение на подключение со всех IP (по умолчанию прослушивает только localhost).

Установка может быть произведена непосредственно на устройстве.

Это будет выглядеть так: вирт-установить --подключиться qemu:///система \ --name комп1\ --ram 512\ --vcpus=1 \ --disk /dev/sdb, format=qcow2\ --disk /home/firsachi/Winxp.iso,device=cdrom \ --bridge=br0,model=e1000 \ --os-type=окна --os-variant=winxp\ --graphics vnc, порт = 5901, прослушивание = 0.0.0.0 Где СДБ необходимо заменить на вашем устройстве.

Если все прошло успешно, то для подключения к консоли нашей виртуальной машины вам необходимо установить на свой компьютер Ultra VNC Viewer. При подключении необходимо указать IP-адрес и порт сервера или доменное имя и порт сервера.

Надеюсь, все знают, как устанавливается Windows. Теперь о драйверах виртуальных машин.

Для установки драйверов потребуются следующие образы дисков: virtio-win-0.1-30.iso и viostor-0.1-30-floppy.img. Последний диск не обязателен, он нужен только в том случае, если вы собираетесь устанавливать Windows XP или Windows 2003 Server на хранилище virtio (кстати, если вы это сделаете, операционная система будет работать быстрее).

Здесь написано как подключить и отключить компакт-диск .

Есть еще один бонус: к виртуальной машине можно подключить внешние устройства (например, физический жесткий диск или USB-накопитель).

Поехали в вирш.

Команда будет выглядеть так: virsh # Attach-disk comp1 /dev/sdc vdv --type disk Где:

  • comp1 — имя виртуальной машины, к которой подключаем диск.

  • /dev/sdc – путь к устройству на физическом компьютере.

  • ВДВ — куда подключаемся на виртуальной машине.

  • --type – тип диска.

Размонтировать диск: virsh # deathach-disk comp1 vdv Этот очень поможет статья .

Еще советую заглянуть сюда здесь .

Где мне использовать этот гипервизор? У меня постоянно работает контроллер домена.

Причём работает стабильно, без сбоев.

Авторизация в домене происходит без проблем.

Я могу параллельно запускать максимум 2 виртуальные машины.

Восстановление виртуальной машины на другом сервере.

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

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

Поэтому пришлось исходить из худшего сценария.

Предположим:

  • сгорел компьютер, на котором работала виртуальная машина (процессор Atlon X2 245).

  • Раз в неделю виртуальная машина выключается и создается резервная копия файла конфигурации и образа диска.

Отсюда мои действия в данном случае.

Для эксперимента я принес из дома свой ноутбук.

Имеет процессор i5-3210M, дистрибутив Linux OpenSuse (для моего ноута он более аппаратно совместим).

Я установил на него Qemu-KVM, переместил на него файл конфигурации виртуальной машины и образ диска.

Я отредактировал путь к диску виртуальной машины в файле конфигурации и перезагрузил ноутбук.

И, о чудо! Гипервизор не только увидел мою виртуальную машину, но и запустил ее.

Создание снимков виртуальных машин.

Qemu-KVM поддерживает создание снимков виртуальных машин.

Я приведу вам самый простой пример.

Как суперпользователь войдите в virsh и выполните следующую команду: virsh #snapshot-create-as name name — имя виртуальной машины.

После создания снимка виртуальной машины резервные копии файлов конфигурации будут находиться в каталоге /var/lib/libvirt/qemu/snapshot/.

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

Посмотреть изображения можно следующей командой: virsh #имя списка моментальных снимков Имя Время создания Состояние — 1360593244 11.02.2013 16:34:04 +0200 работает 1360594479 2013-02-11 16:54:39 +0200 работает Восстановить по фото можно так: virsh #snapshot-revert name 1360593244 Удалить ненужное фото можно так: virsh # снимок-удалить имя 1360593244 Вот как сейчас живем: гипервизор Qemu-KVM, виртуальный контроллер домена, и я доволен проделанной работой.

Спасибо всем, кто дочитал до конца.

Надеюсь, мои мысли были полезны.

Теги: #linux #Администрирование сервера #kvm #Debian #libvirt #qemu-kvm

Вместе с данным постом часто просматривают: