Linux удаленные виртуальные машины

Libvirt (Qemu+KVM+Virt-manager)

Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.

Libvirt — набор инструментов для управления виртуализацией. В данной статье будет описано его использование.

# apt-get install libvirt libvirt-kvm

Добавляем пользователя в группу:

  • 1 Запуск службы
  • 2 Делаем пользователю доступ в SSH (для удаленного управления)
  • 3 Графическое управление
    • 3.1 Создание виртуальной машины
    • 3.2 BIOS или UEFI
    • 3.3 Некоторые настройки
      • 3.3.1 Настройка дисплея через SSH
      • 3.3.2 Настройка жесткого диска
      • 3.3.3 Параметры загрузки
      • 3.3.4 Подключение ISO
      • 3.3.5 Сеть
        • 3.3.5.1 NAT
        • 3.3.5.2 Мост
        • 3.3.5.3 Проброс портов
        • 6.1 Настройка SSH
        • 6.2 Удаленное GUI-управление из-под Windows
        • 6.3 Удаленное GUI-управление из-под Linux
        • 6.4 Удаленное пополнение iso-образов
        • 6.5 Вывод видео через SSH
        • 6.6 После установки virt-manager невозможно создать образ HDD ВМ
        • 7.1 Проброс USB в виртуальную машину через графический интерфейс Virt-Manager
        • 7.2 Некоторые особенности использования Virt-Manager на системе aarch64

        Запуск службы

        # systemctl enable libvirtd # systemctl start libvirtd

        Делаем пользователю доступ в SSH (для удаленного управления)

        На сервере переключаемся в режим суперпользователя:

        # cd /etc/openssh # mcedit sshd_config
        Match User petr #имя вашего пользователя на сервере X11Forwarding no AllowTcpForwarding no PermitTTY no ForceCommand internal-sftp ChrootDirectory /home/files #корневой каталог при доступе через SSH

        После настройки на сервере SSH для доступа к файлам, на клиенте заработает и SSH для libvirt-manager для подключения к libvirt.

        Кроме того разрешаем в брандмауэре: Alterator Web-Брадмауэр-Внешние сети-Дополнительные порты TCP/UDP-Добавляем порт 5900

        Графическое управление

        Чтобы сделать некое подобие «Диспетчера Hyper-V» (Графическую консоль для управления виртуальными машинами) устанавливаем следующий пакет:

        # apt-get install virt-manager

        Открываем Virt-Manager. Файл>Добавить соединение>

        • Локальная машина
          • Гипервизор QEMU/KVM (подключаться автоматически).
          • QEMU/KVM-Connect to remove host over SSH
            • вводим имя пользователя
            • вводим IP
            • ставим галочку подключаться автоматически

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

            1. Нажимаем на кнопку «Создать виртуальную машину»
            2. Выбираем метод установки — локальный/ISO
            3. Выбираем ISO/CD и тип ОС (с помощью автодополнения)
            4. Выбираем количество ОЗУ и процессоров
            5. Создаем виртуальный жесткий диск
            6. Вводим название и выбираем сеть

            BIOS или UEFI

            До первого запуска откройте настройки виртуальной машины, во вкладке Обзор> Свойства гипервизора у вас будет возможность сменить тип прошивки — BIOS или UEFI. До первого запуска![1]

            Некоторые настройки

            Выберите машину, нажмите на лампу.

            Настройка дисплея через SSH

            • Дисплей:
              • тип:VNC
              • listen type:address
              • адрес:IP
              • порт:авто
              • пароль:пользователя в группе

              Настройка жесткого диска

              . Диск-1> Дополнительные параметры>Шина диска

              • IDE — рекомендуется для Windows XP и младше
              • SATA — для 7 и старше
              • VirtIO для Linux [2]

              Параметры загрузки

              Иначе вы просто не загрузитесь с CD/ISO.

              Подключение ISO

              . Выберите IDE CDROM> Browse.

              В окне «Выберите том хранилища» нажмите на плюс (добавить пул), выберите тип dir-каталог в файловой системе и укажите папку с iso-образами.

              Выберите образ из пула и нажмите на кнопку «Выбор тома».

              Примечание: В качестве каталога можно указать папку прописанную в /etc/openssh — так вы легко сможете закидывать и подключать ISO-образы

              Сеть

              Важно обратить внимание, во избежание ошибки при запуске виртуальной машины «сеть «default» не активна» на настройку:
              После создания виртуальной машины в virt-manager Правка — Свойства подключения — вкладка Виртуальные сети — на сети default поставить галочку «Автозапуск: При загрузке», применить

              Virt-manager сеть автозапуск по умолчанию.png

              NAT

              NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса одной сети, в адрес другой сети.

              Т.е. у вас в локальной сети сеть 192.168.0.x., а у виртуальных машин будет 192.168.1.x. И NAT позволит вам общатся между сетью 0.x и 1.x.

              По-умолчанию в virt-manager уже есть NAT-интерфейс, но если вы его случайно удалили или хотите создать новый, то это делается так:

              • откройте Правка>Свойства подключения>Виртуальные сети>+
              • введите название сети
              • режим: NAT
              • Forward to: любое физическое устройство

              Можете так же настроить адресацию IPv4 и DHCP-сервер (они настраиваются автоматически).

              И в настройках виртуальной машины выберите данный интерфейс.

              Мост

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

              Примечание: При этом управление сетью перейдет к etcnet и NetworkManager уже будет не нужен, его и его апплет можно удалить: apt-get remove NetworkManager NetworkManager-applet-gtk . В трее, соответственно, иконка статуса сети исчезнет.

              Если простым языком, то задачу можно разделить на две:

              • создать бридж
              • в virt-manager в свойствах виртуальной машины, в свойствах сетевого интерфейса выбираем
                • устройство моста
                • вручную вводим имя нашего моста — vmbr0

                Libvirt-bridge.png

                Примечание: Попробуйте запустить LiveCD — система должна получить по DHCP IP адрес и иметь доступ в LAN и интернет

                Проброс портов

                Настроил тут проброс порта в QEMU-виртуалку. Казалось бы, в чём проблема-то?

                cmd|qemu -netdev user,id=user0,hostfwd=tcp::2222-:22 -device e1000,netdev=user0" …

                как-то так (можно вместо e1000 паравиртуальный драйвер, это побыстрее будет).

                Но. Я это сделал через libvirt! И оказалось, что штатными средствами (не только тыкая в менюшки virt-manager, но и, кажется, вообще прямой настройкой сети) нельзя. Не знаю, почему. Может быть, можно, но я не нашёл как. А я искал. То, что в libvirt называется NAT, в действительности садится на tun/tap, лезет в iptables и т. д. Наверное, для совместимости с другими платформами виртуализации, не знаю.

                1. В настройках virt-manager разрешаем «Редактирование XML»
                2. Удаляем все сетевые устройства.
                3. Добавляем в конец общего XML-я виртуалки (например, во вкладке «Обзор»), перед закрывающим , такие строки:

                Если неймспейс qemu не загружен, то такие:

                И qemu преспокойненько само всё как надо делает. Фишка — не забыть про xmlns иначе просто не заработает, а вам ничего не скажет)

                Графики

                Откройте «Правка> Параметры», вкладка «Статистика», отметьте галочками, какие графики вы хотите сделать доступными.

                Вкл./выкл. график вы можете через «Вид> График».

                Снимки машины

                Снимок машины можно создать только если виртуальный жесткий диск у вас в формате *.qcow2.

                Веб-интерфейс

                Управлять виртуальными машинами libvirt можно через веб-интерфейс Cockpit. Но, пока в Альте нужный модуль для этой системы не собран. Если Вам интересна ситуация со сборкой, можете подписаться на отчет — altbug #44671.

                Файлы Virt

                (Для резервного копирования-восстановления)

                Файлы Libvirt хранятся в следующих директориях:

                Удаленное управление

                В случае, если Вы планируете использовать Libvirt на сервере в продакшине, предполагается, что у Вас он будет установлен на «консольную» серверную систему, а управлять им Вы будете с рабочей станции через Virt-manager.

                Настройка SSH

                Для начала настройте SSH-сервер на сервере с Libvirt. В Match User пропишите пользователя, под которым будете подключаться.

                Удаленное GUI-управление из-под Windows

                • Основной парк компьютеров на Windows
                • Планируется миграция
                • На одном сервере без графики изучается Linux и на нем установлен Libvirt
                • Необходимо GUI-управление

                1. Устанавливаем Cygwin и CygwinX

                3. Переходим в режим суперпользователя

                # apt-get install xauth virt-manager

                5. Открываем в пуске из меню Cygwin-X ярлычок CygwinXServer

                6. В трее из черно-зеленого значка Cygwin RCM-Системные выбираем «Менеджер виртуальных машин».

                Все, можно управлять виртуальными машинами из-под Windows пока мы полностью не перейдем под Linux.

                Удаленное GUI-управление из-под Linux

                1. Устанавливаем virt-manager

                # apt-get install virt-manager filezilla libvirt
                # systemctl enable libvirtd # systemctl start libvirtd

                3.Добавляем пользователя в группу

                5. Файл-Добавить соединение (QEMU/KVM, Подключаться к удаленному узлу с помощью SSH)

                7. Управляем удаленным сервером!

                Удаленное пополнение iso-образов

                В группе vmusers пользователь admin.

                # mkdir /var/lib/libvirt/images/iso
                # chown -R admin:vmusers /var/lib/libvirt/images/iso/

                Подключаемся через Filezilla на sftp://IP под тем пользователем, которому разрешен доступ через SSH и к данному каталогу. В правой колонке открываем «удаленный сайт» /var/lib/libvirt/images/iso, в левой каталог с ISO. И копируем файл на удаленный сервер.

                Вывод видео через SSH

                Чтобы на удаленном сервере выводилось видео, нужно в настройках виртуальной машины, в разделе «Дисплей SPICE», в выпадающем списке «Адрес» выбрать «Все интерфейсы».

                После установки virt-manager невозможно создать образ HDD ВМ

                Выдается сообщение типа «нет доступа к /var/lib/libvirt/images» или «нет каталога /var/lib/libvirt/images». (Скриншот показать не могу, после того как я исправил ошибку, даже после удаления каталогов она не появляется)

                Необходимо просто создать нужные каталоги:

                # mkdir /var/lib/libvirt/ # mkdir /var/lib/libvirt/images

                Заметки при использовании

                Проброс USB в виртуальную машину через графический интерфейс Virt-Manager

                # rpm -ql libspice-glib | grep -i usb 

                /usr/libexec/spice-gtk/spice-client-glib-usb-acl-helper

                Необходимо в файл /usr/share/polkit-1/actions/org.spice-space.lowlevelusbaccess.policy,

                После модификации файл выглядит так:

                   The Spice Project http://spice-space.org/ spice Low level USB device access Privileges are required for low level USB device access (for usb device pass through). yes no yes    

                Поправить права на файл(по необходимости):

                chmod 4755 /usr/libexec/spice-gtk/spice-client-glib-usb-acl-helper 

                Некоторые особенности использования Virt-Manager на системе aarch64

                И хост система и VM имеют архитектуру aarch64.

                Для работы графики VM нужно установить в хост систему пакет seavgabios

                При создании VM aarch64 в неё не добавляются автоматически графика, клавиатура, мышь. Их нужно добавить вручную.

                Для этого в диалоге «Создание новой виртуальной машины» на шаге 5 поставил флаг «Проверить конфигурацию перед установкой».

                В открывшемся окне конфигурации нажать «Добавить оборудование» и добавить:

                Ввод/Virtio клавиатура, Virtio планшет.

                При установке текстовые сообщения выводятся на «Вид/Consoles/Последовательное 1», а графика на «Вид/Consoles/Графическая консоль SPICE». Между этими устройствами нужно переключаться вручную.

                Источник

                Читайте также:  Запуск libreoffice в linux
Оцените статью
Adblock
detector