Данная статья представляет собой обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Хочу поделиться теми знаниями и опытом, которые имею на данный момент. Надеюсь, моя статья принесет пользу тем, кто только планирует использовать гипервизор Qemu-KVM или уже использует его.
И еще: статья не для новичков в Linux (базовые вещи здесь рассматриваться не будут).
Об этой системе виртуализации написано много в сети.
Но когда вы действительно начинаете с ним работать, вы сталкиваетесь с недостатком информации и практических примеров применения.
Итак, давайте начнем.
Входящая задача.
Компьютер был выделен в качестве тестовой станции для проверки работоспособности резервного копирования баз данных, установленного программного обеспечения, сборки MSI-пакетов и других весьма разнообразных задач.
Конфигурация компьютера:
- Процессор Атлон Х2 245
- Оперативная память 4 гигабайта
- жесткий диск на 500 гигабайт
- Материнская плата ASUS M4N68T-M LE.
Процессор поддерживал аппаратную виртуализацию.
В связи с этим было принято решение установить еще 1 жесткий диск.
Покопавшись в «закромах родины», был найден диск на 80 гигабайт. Его добавили в конфигурацию.
Мы разобрались с компьютером.
Теперь очередь гипервизора.
Я хотел работать с платформой, которую затем можно было бы использовать в корпоративной среде.
Поэтому виртуалбокс, виртуальный компьютер Microsoft, рабочие станции vmware не подходили.
Возник следующий вопрос – какую систему выбрать:
- Microsoft Hyper-V не подходит - он платный.
Компания, в которой я работаю, использует только лицензионное программное обеспечение.
Поэтому серверную лицензию для моих целей никто выделять не будет.
- VMWARE ESXi не знает SATA-контроллера, расположенного на материнской плате (поскольку он разрабатывался для серверных систем).
- Qemu-kvm — это свободно разрабатываемый гипервизор, поддерживающий аппаратную виртуализацию.
Его можно установить в любой современный дистрибутив Linux. Это для меня, и мы это берем.
Гипервизор 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. Вы можете выбрать любое место хранения:
- вы можете смонтировать жесткий диск в каталог и указать его в качестве хранилища
- Вы можете просто выбрать устройство в качестве хранилища.
Поэтому что я сделал: отформатировал диск на 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 – тип диска.
Еще советую заглянуть сюда здесь .
Где мне использовать этот гипервизор? У меня постоянно работает контроллер домена.
Причём работает стабильно, без сбоев.
Авторизация в домене происходит без проблем.
Я могу параллельно запускать максимум 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
-
Реплики Сумок Лучший Выбор
19 Oct, 24 -
Австралазия
19 Oct, 24 -
Пребета Windows 7 Появилась В Торрентах
19 Oct, 24 -
Реклама На «Взгляде» Попадет В Руки Имхо Vi
19 Oct, 24 -
Lotus Symphony Теперь На Русском Языке
19 Oct, 24 -
Виртуальные Миры Объединены В Единую Сеть
19 Oct, 24 -
Дайте Нам Тактильные Интерфейсы!
19 Oct, 24