Главная
» LINUX
»
Руководство по настройке виртуализации KVM в SLES 15 и автоматическому запуску виртуальных машин
Руководство по настройке виртуализации KVM в SLES 15 и автоматическому запуску виртуальных машин
SUSE Linux Enterprise Server 15 может выступать в качестве хоста KVM с гипервизором QEMU/KVM и стеком управления libvirt. Это руководство написано как практическое справочное пособие для администраторов, которым нужна воспроизводимая настройка: подтверждение аппаратной виртуализации, установка поддерживаемых компонентов, выбор сети и хранилища, создание гостевой системы, включение автоматического запуска для каждой виртуальной машины и проверка работоспособности гостевой системы после перезагрузки хоста.
Приведенные ниже команды и пути в меню были проверены на соответствие руководству по виртуализации SUSE Linux Enterprise Server 15 SP7 , текущая версия которого датирована 10 сентября 2026 года. Более ранние пакеты обновлений SLES 15 аналогичны, но версии пакетов, параметры демонов по умолчанию и доступные профили гостевых систем могут отличаться. SUSE рекомендует управлять поддерживаемой виртуализацией через libvirt, а не смешивать libvirt с непосредственным управлением, специфичным для гипервизора.
Краткий контрольный список для планирования
Элемент
Что решить или проверить
Процессор
Аппаратная виртуализация поддерживается и включается в микропрограмме: Intel VT-x или AMD-V на системах x86.
Ресурсы хоста
Оставьте достаточно ресурсов ЦП, ОЗУ, хранилища и ввода-вывода как для самой SLES, так и для каждой гостевой системы.
Сетевые технологии
Используйте мост, когда гостям необходим обычный доступ к локальной сети на уровне Layer 2; используйте виртуальную сеть libvirt, когда лучше подходит изоляция NAT или маршрутизации.
Хранилище
Выберите место для размещения образов гостевых дисков и убедитесь, что в резервной файловой системе или пуле хранения достаточно свободного места.
Управление
Постоянно используйте инструменты libvirt, такие как virsh, virt-install и Virtual Machine Manager.
Поведение при загрузке
Автоматический запуск настраивается индивидуально для каждой постоянно работающей виртуальной машины, а не с помощью одного глобального параметра для всех гостевых систем.
1. Убедитесь, что хост может запускать KVM.
KVM требует поддержки виртуализации процессора и настроек прошивки, которые предоставляют эту поддержку операционной системе. На хосте x86 первым делом следует проверить наличие флага процессора Intel vmxили AMD svm. Пакет клиента libvirt также предоставляет функцию virt-host-validate, которая выполняет более широкий набор проверок хоста.
Положительное значение количества флагов ЦП полезно, но это не единственное требование. Если проверка сообщает о недоступности KVM, сначала проверьте настройки BIOS или UEFI, особенно на недавно развернутом сервере. В документации SUSE по KVM указано, что виртуализация должна поддерживаться процессором и быть включена в BIOS/прошивке. Также помните, что вложенная виртуализация — это отдельная функция; в SLES 15 SP7 SUSE описывает вложенный KVM как предварительную версию технологии, а не как поддерживаемую в производственной среде функцию по умолчанию.
Представление результатов предварительной проверки в терминале: перед созданием виртуальных машин проверяются флаги виртуализации ЦП и выполняется проверка хоста.
2. Установите сервер KVM и инструменты управления libvirt.
Наиболее подходящий с точки зрения поддержки путь — это YaST. Откройте YaST > Виртуализация > Установить гипервизор и инструменты , выберите сервер KVM , а если вам нужен стек управления libvirt, выберите инструменты KVMyast2-vm . В документации SUSE этот пакет указан как модуль YaST, используемый для данной настройки.
Для автоматизации командной строки SLES группирует один и тот же функционал в шаблоны установки. Установите как шаблон для хоста, так и шаблон для управления:
Данный kvm_serverшаблон устанавливает базовую среду хоста QEMU/KVM. kvm_toolsОн также добавляет инструменты на основе libvirt для управления и мониторинга гостевых систем. Точный список зависимостей зависит от пакета обновлений, поэтому предпочтительнее устанавливать описанные шаблоны, чем поддерживать список пакетов, написанный вручную, если только у вас нет контролируемой минимальной конфигурации хоста.
В YaST выберите сервер KVM и инструменты KVM, чтобы установить гипервизор и стек управления libvirt.
3. Выберите сетевую модель виртуальной машины перед переносом производственного трафика.
Компания SUSE описывает сетевой мост как соединение по умолчанию и рекомендуемое соединение, когда гостевые системы должны подключаться непосредственно к локальной сети хоста. Мост действует как коммутатор уровня 2: физический интерфейс хоста и виртуальные интерфейсы виртуальной машины участвуют в одном сегменте Ethernet. Обычно это наиболее очевидный выбор для виртуальных машин инфраструктуры, которым необходимы собственные адреса локальной сети, входящие службы, резервирование DHCP или обычная видимость для других машин.
Виртуальная сеть libvirt часто лучше подходит, когда гостевым системам требуется изоляция или простое исходящее соединение. NAT позволяет нескольким гостевым системам совместно использовать внешний адрес хоста, оставаясь при этом в частной подсети. Маршрутизируемый режим пересылает трафик без преобразования адресов, но требует соответствующей маршрутизации в окружающей сети.
Если хост использует wicked, который, согласно документации SUSE, является службой управления сетью по умолчанию на серверах, создайте мост с помощью YaST или соответствующей конфигурации командной строки. Системы NetworkManager могут использовать nmcli. Будьте осторожны на удаленных серверах: перенос конфигурации IP-адреса хоста в мост может прервать SSH-соединение, если изменение будет некорректным. Запланируйте окно технического обслуживания или убедитесь, что у вас есть доступ к консоли.
Пример мостовой сети, в которой br0 подключен к физическому интерфейсу Ethernet, подходящий в случаях, когда гостям необходим доступ к локальной сети уровня 2.
4. Убедитесь, что модули ядра KVM загружены.
После установки проверьте ядро KVM. На хостах Intel обычно используется kvm_intel; на хостах AMD используется kvm_amd. В руководстве по настройке хоста KVM от SUSE показано, как загрузить модуль, специфичный для процессора, и проверить его с помощью lsmod.
Вы должны увидеть общий kvmмодуль и модуль, специфичный для процессора. Если модуль не загружается, не продолжайте, просто создавая виртуальную машину в режиме программной эмуляции. Сначала перепроверьте настройки виртуализации прошивки и совместимость с хостом, если только программная эмуляция не является преднамеренной частью вашего проекта.
Ожидаемая проверка модулей на хосте Intel показывает наличие как общего модуля KVM, так и модуля KVM, специфичного для Intel.
5. Проверьте модель демона libvirt, используемую вашим пакетом обновлений.
В SLES 15 SP7 по умолчанию включена модульная модель демонов libvirt. Для KVM основным демоном гипервизора является virtqemud. Вторичные демоны обрабатывают такие функции, как виртуальные сети и хранилище. SUSE по-прежнему описывает традиционную монолитную libvirtdмодель развертывания, но не следует произвольно включать обе модели.
На хосте KVM по умолчанию в SP7 проверьте демон QEMU:
systemctl status virtqemud.service
sudo systemctl enable --now virtqemud.service
Компания SUSE настоятельно рекомендует настроить соответствующий сервис libvirt для запуска при загрузке, если виртуальные машины также настроены на автоматический запуск при загрузке хоста. В более старых установках, где намеренно используется монолитная версия libvirt, следует проверить libvirtd.serviceналичие соответствующих сокетов. Перед переключением между моделями демонов на уже работающем хосте следуйте описанной в документации SUSE процедуре перехода и остановите или эвакуируйте гостевые системы.
В текущей версии SLES 15 SP7 перед тем, как полагаться на автоматический запуск виртуальных машин при загрузке хоста, проверьте модульную службу virtqemud.
6. Подготовьте носители информации для хранения и установки.
Перед созданием гостевой системы определите, к какому виртуальному диску она относится и куда смонтирован установочный ISO-образ. Настройки по умолчанию удобны для небольших автономных хостов, в то время как более крупные установки могут использовать выделенные тома LVM, отдельные файловые системы, NFS, iSCSI или другие хранилища, управляемые через libvirt. Ключевое правило работы — избегать незаметного заполнения корневой файловой системы хоста растущим количеством образов виртуальных машин.
Для гостевой системы, использующей файловую систему, перед созданием диска необходимо проверить наличие свободного места:
df -h /var/lib/libvirt/images
ls -lh /data/ISOs/
Если вы используете пул хранения libvirt, проверьте его virsh pool-list --allи убедитесь, что нужный пул активен. Для производственных систем включите хранилище виртуальных машин в систему мониторинга емкости и резервного копирования, а не рассматривайте образ диска как непрозрачный файл, который сам о себе позаботится.
7. Создайте виртуальную машину.
Вы можете создать гостевую систему графически с помощью Virtual Machine Manager или из командной строки с помощью команды `sudo apt-v` virt-install. SUSE описывает ` virt-installsudo apt-v` как инструмент командной строки для создания гостевых систем через libvirt, и он особенно полезен для повторяемых сборок и удаленного администрирования.
В диспетчере виртуальных машин создайте новую виртуальную машину, выберите локальный установочный носитель, выберите гостевую операционную систему, выделите память и виртуальные процессоры, выберите хранилище, а затем выберите нужную виртуальную сеть. На скриншоте ниже в качестве примера используется образ ISO SLES 15; используйте точно такой же образ установки и профиль, как и для вашего лицензионного пакета обновлений.
Менеджер виртуальных машин может создать гостевую систему из локального ISO-образа; выберите правильный образ SLES 15 для пакета обновлений, который вы собираетесь установить.
Настройте параметры памяти, количества процессоров, размера диска, пути к ISO-образу, сетевого источника, прошивки и графики в соответствии с вашей рабочей нагрузкой. Если вы используете сеть NAT libvirt вместо моста, замените параметр моста на соответствующую виртуальную сеть. Если важна поддержка в производственной среде, подтвердите поддерживаемые гостевые операционные системы и варианты устройств в документации SUSE по поддержке виртуализации.
В процессе установки virt-install имя гостевой системы, объем оперативной памяти, количество виртуальных процессоров, дисковое пространство, установочный носитель и сетевое подключение определяются одной повторяемой командой.
Автоматический запуск виртуальных машин — это свойство libvirt для каждой постоянно работающей гостевой системы. В документации SUSE четко указано, что эта функция не включена по умолчанию и должна быть включена индивидуально; нет единого глобального параметра, который бы помечал каждую виртуальную машину для автоматического запуска.
Включите эту функцию для гостя:
sudo virsh autostart sles15-vm
Проверьте настройку:
sudo virsh dominfo sles15-vm | grep -i autostart
Чтобы отключить эту функцию позже:
sudo virsh autostart --disable sles15-vm
В диспетчере виртуальных машин аналогичный элемент управления находится в разделе «Вид» > «Подробности» > «Параметры загрузки» гостевой системы , где можно включить параметр «Запускать виртуальную машину при загрузке хоста» и применить изменения.
После включения автозапуска команда virsh dominfo должна сообщить, что гостевая система настроена на автоматический запуск со службой виртуализации хоста.
9. Проверьте конфигурацию, вместо того чтобы предполагать, что автозапуск работает.
Наиболее показательным тестом является контролируемая перезагрузка хоста во время планового технического обслуживания. Перед перезагрузкой запишите текущее состояние и убедитесь, что виртуальная машина сохраняет свои данные:
sudo virsh list --all
sudo virsh dominfo sles15-vm
Затем перезагрузите хост. После перезагрузки хоста подтвердите состояние демона виртуализации и гостевой системы:
systemctl is-active virtqemud.service
sudo virsh list --all
Если в вашей системе используется монолитная библиотека libvirt, замените проверку службы на libvirtd. Автоматически запущенная виртуальная машина должна перейти в состояние runningбез ручного запуска virsh start. Также проверьте службу внутри гостевой системы, а не только состояние виртуальной машины. В работающей виртуальной машине все еще может быть сбой приложения, отсутствующая сетевая конфигурация или проблема восстановления файловой системы.
Справочник по устранению неполадок
Симптом
Вероятное место для проверки
Полезная команда
KVM недоступен
Виртуализация микропрограммы отключена, процессор не поддерживается или отсутствует модуль ядра.
virt-host-validate qemu
Виртуальная машина не может подключиться к локальной сети.
Членство в мосте, размещение IP-адреса хоста, VLAN, политика брандмауэра или коммутатора.
ip linkиbridge link
Определение виртуальной машины существует, но она не запускается.
Путь к диску, права доступа, пул хранения, XML-файл или исчерпанные ресурсы.
virsh start VMNAMEплюс журналы
Виртуальная машина не запускается после перезагрузки хоста.
Флаг автозапуска или демон libvirt не включены для загрузки хоста.
Выключение ведет себя как отключение электроэнергии.
Поведение гостевой ОС при завершении работы (ACPI или гостевая ОС)
virsh shutdown VMNAME
Компания SUSE предупреждает, что принудительное завершение работы virsh destroyэквивалентно резкому отключению питания и может привести к повреждению файловой системы гостевой системы или потере данных. Перед использованием виртуальной машины в производственной среде протестируйте корректное завершение работы и перезагрузку.
Практический базовый уровень для надежного KVM-хостинга SLES 15
Создание чистой базовой конфигурации довольно просто: используйте на хосте поддерживаемый пакет обновлений SLES 15, установите документированные kvm_serverшаблоны kvm_tools, постоянно используйте libvirt, целенаправленно выбирайте подключение через мост или виртуальную сеть, не размещайте хранилище виртуальных машин на слишком маленькой корневой файловой системе и отмечайте с помощью параметра `.` только те гостевые системы, которым действительно требуется запуск при загрузке virsh autostart.
Для SLES 15 SP7 помните о детали демонов, которую легко упустить из виду: модульные демоны libvirt являются демонами по умолчанию, как virtqemudи служба, которую вы обычно проверяете для KVM, вместо того, чтобы предполагать, что каждый текущий хост основан на устаревшей монолитной системе libvirtd. Это различие важно при диагностике виртуальной машины, которая правильно помечена для автозапуска, но все еще не появляется после перезагрузки хоста.