Как подключиться к linux из windows

Подробная настройка виртуальной машины.

Обзор.

Выбрать набор микросхем q35. Он лучше поддерживает проброс.

Выбрать прошивку (firmware) ovmf — OVMF_CODE.fd.

Применить изменения.

Информация об ОС.

Убедиться, что выбрано Windows 10, так как это подтягивает мета-информацию, которая влияет на доступные настройки Virt-manager и libvirt.

Процессоры.

В этой вкладке указывается число потоков, конфигурация (модель процессора) и топология процессора. В данном примере копируется конфигурация хоста с разделением на 8 потоков: 4 ядра умножаются на 2 потока, что имитирует гиперпоточность.

Для гостя выделяется 16384 Мб ОЗУ. Всего в системе 32 Гб.

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

Переставить SATA CDROM 1, к которому примонтирован установочный образ, на первое место, тем самым повысив приоритет загрузки:

Иначе процесс установки не сможет начаться. Можно будет лишь наблюдать интерфейс UEFI Interactive Shell, в котором придётся указать путь до загрузочной области вручную:

SATA Диск 1.

Ранее созданный виртуальный накопитель подключается через эмуляцию шины SATA:

В параметрах производительности переключить «Режим кэширования» на «none», а «Режим ввода-вывода» на «native». Это улучшит отзывчивость и позволит избежать потери данных при принудительном выключении виртуальной машины.

Можно подключать несколько виртуальных и даже физических накопителей. Последнее несколько нетривиально и имеет ряд ограничений.

SATA CDROM 1.

Эмуляция CD-ROM устройства, подключенного по шине SATA. В него примонтирован установочный образ.

После установки гостевой ОС устройство SATA CDROM 1 можно удалить.

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

Планшет.

Подобные устройства правильнее пробрасывать в виртуальную машину. Поэтому эмулируемое устройство лучше удалить.

Дисплей VNC.

Заменить VNC на «Сервер SPICE» и убрать прослушивание (Listen type), так как виртуализация будет локальной:

Этот протокол более предпочтителен, когда требуется передача звука от гостя к хосту. Так же у него нет проблемы с «залипанием» курсора по краям экрана.

Для Windows-гостей это не требуется, поэтому лучше удалить.

Видео QXL.

Это виртуальный графический адаптер, поддерживающий 2D ускорение. Будет выводить графику, пока не задействована проброшенная физическая видеокарта.

Controller USB 0.

Оставить по умолчанию.

Теперь всё готово для установки ОС, останется нажать кнопку «Начать установку».

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

Курсор из окна виртуальной машины освобождается комбинацией Ctrl + Alt.

С установкой Win10 предлагаю разобраться самостоятельно. Основная сложность в том, что каждое крупное обновление появляются всё новые и новые преграды для отказа от навязываемой учётной записи MS и прочего «ненужно». На момент 2021 года только для отказа от некоторой(!) части телеметрии предлагается снять более десятка галочек, которые, как в головоломке, надёжно спрятаны в графическом интерфейсе и разнесены на несколько окон. Стоит отметить, что без применения спецсредств отключить основную массу телеметрии невозможно.

После установки и завершения работы виртуальной машины можно удалить SATA CDROM 1:

Установка KVM в Ubuntu 20.04

Перед тем как переходить к самой установке KVM нужно проверить поддерживает ли ваш процессор аппаратное ускорение виртуализации от Intel-VT или AMD-V. Для этого выполните такую команду:

Если в результате будет возвращено 0 — значит ваш процессор не поддерживает аппаратной виртуализации, если 1 или больше — то вы можете использовать KVM на своей машине.

Теперь мы можем перейти к установке KVM, набор программ можно получить прямо из официальных репозиториев:

Мы установили не только утилиту kvm, но и библиотеку libvirt, а также менеджер виртуальных машин. После того, как установка будет завершена вам необходимо добавить своего пользователя в группу libvirt, потому что только root и пользователи этой группы могут использовать виртуальные машины KVM:

Затем убедитесь, что сервис libvirt запущен и работает:

После выполнения этой команды выйдите из системы и войдите снова. Далее, давайте проверим все ли правильно было установлено. Для этого используйте команду kvm-ok:

Если все было сделано правильно, то вы увидите такое же сообщение.

Настройка пользовательского сеанса KVM

Создание подключения к сеансу

Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.

Главное окно Virt Manager

В главном окне менеджера виртуальных машин, нажмём правой кнопкой мыши по QEMU/KVM, затем в контекстном меню выберем вариант Отключиться и Удалить. Подтвердим удаление.

В меню Файл выберем Добавить соединение.

Создание пользовательского сеанса KVM

В поле Гипервизор выберем пункт QEMU/KVM сеанс пользователя, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке.

По умолчанию предлагается использовать каталог ~/.local/share/libvirt/images для хранения дисковых образов виртуальных машин, однако для удобства мы создадим новые.

Это опциональное действие. Можно использовать пул default для любых целей.

В главном окне менеджера выделим пункт QEMU/KVM сеанс пользователя, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.

Настройки пула пользовательского сеанса

Создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:

mkdir -p ~/virt/{images,iso}

В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).

Добавление пользовательского пула

В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее ~/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.

Повторим то же самое, но для ISO образов:

  • название — iso;
  • target path — ~/virt/iso.

Настроенные пулы пользовательского сеанса

Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.

Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.

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

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

sudo nmcli con add type bridge ifname virbr0 ipv4.method shared ipv4.address 192.168.122.1/24

Разрешим использование моста в qemu-bridge-helper:

echo allow virbr0 | sudo tee -a /etc/qemu/bridge.conf

Добавим правила для файрвола:

sudo firewall-cmd --zone libvirt --add-interface virbr0 --permanent
sudo firewall-cmd --zone libvirt --add-service dhcp --permanent
sudo firewall-cmd --zone libvirt --add-service dhcpv6 --permanent
sudo firewall-cmd --zone libvirt --add-service dns --permanent
sudo firewall-cmd --reload

На этом настройка пользовательского сеанса завершена и можно приступать к установке гостевых операционных систем.

Использование KVM в Ubuntu

Вы справились с задачей установить KVM в Ubuntu, но вы еще не можете  использовать эту среду виртуализации но ее нужно еще настроить. Далее, мы рассмотрим как выполняется настройка KVM в Ubuntu. Что удобно, в новых версиях сеть уже настроена и вам не нужно создавать новый сетевой мост. Вы можете убедится в этом выполнив команду:

Интерфейсы virbr0 и virbr-nic созданы KVM по умолчанию и они полностью реализуют все необходимые возможности сети. Ещё вы можете посмотреть доступные мосты с помощью команды:

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

Настройка KVM Ubuntu завершена и теперь мы можем перейти к ее использованию. Сначала давайте просмотрим список уже существующих виртуальных машин:

Он пуст. Создать виртуальную машину можно через терминал или в графическом интерфейсе. Для создания через терминал используйте команду virt-install. Сначала перейдем в папку libvirt:

Для установки CentOS команда будет выглядеть вот так:

Разберем подробнее что означают параметры этой команды:

  • virt-type — тип виртуализации, в нашем случае kvm;
  • name — имя новой машины;
  • ram — количество памяти в мегабайтах;
  • vcpus — количество ядер процессора;
  • os-variant — тип операционной системы;
  • cdrom — установочный образ системы;
  • network-bridge — сетевой мост, который мы настроили ранее;
  • graphics — способ получения доступа к графическому интерфейсу;
  • diskpath — адрес нового жесткого диска для этой виртуальной машины;

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

Теперь вы можете ввести полученные данные в вашем клиенте VNC и подключится к виртуальной машине даже удаленно. Для Debian команда будет немного отличаться, но все выглядит похожим образом:

Переходим в папку для образов:

Можно скачать установочный образ из интернета если это необходимо:

Затем создадим виртуальную машину:

Теперь снова посмотрим список доступных машин:

Для запуска виртуальной машины можно использовать команду:

Для остановки:

Для перевода в режим сна:

Для перезагрузки:

Сброс:

Для полного удаления виртуальной машины:

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

Если у вас есть доступ к графическому интерфейсу то нет никакой необходимости использовать терминал, вы можете применить полноценный графический интерфейс менеджера виртуальных машин Virtual Manager. Программу можно запустить из главного меню:

Для создания новой машины кликните по иконке со значком монитора. Дальше вам будет необходимо выбрать образ ISO вашей системы. Также можно использовать реальный CD/DVD привод:

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

На этом экране вам нужно выбрать размер жесткого диска, который будет доступен в вашей машине:

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

Затем автоматически запустится установка:

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

Какой диск выбрать в kvm — lvm, raw (img) или qcow2

В kvm есть несколько типов дисков, которые вы можете использовать в своей работе. Они имеют принципиальные отличия как по своей работе, так и по способам бэкапа. Выбирать тот или иной тип нужно в зависимости от ваших задач. Рассмотрим эти типы подробнее.

LVM. Тут все понятно. Использование lvm томов в виде дисков виртуальных машин. Такой диск будет блочным устройством и должен работать быстрее всех остальных типов, так как нет лишней прослойки в виде файловой системы.

Плюсы:

  • Снэпшоты средствами самого lvm, с них легко снять бэкап без остановки виртуальной машины.
  • Максимальное быстродействие.
  • Легко изменить размер диска.

Минусы:

  • Более сложное управление по сравнению с дисками в виде отдельных файлов.
  • Менее гибкое управление пространством диска. Если весь диск разбить на lvm разделы для виртуалок, то места на нем не останется, даже если вируталки будут пустые.
  • Более сложный перенос на другой сервер.

RAW. Это обычный формат сырых данных. Среди дисков в виде файлов это будет самый простой и быстрый вариант. Все данные пишутся как есть без дополнительных обработок и служебной информации. Формат является универсальным для большинства популярных гипервизоров.

Плюсы:

  • Максимальная простота и производительность среди образов в виде файла.
  • Универсальный формат с поддержкой в большинстве гипервизоров.
  • Легкость переноса виртуальной машины на другой сервер. Достаточно просто скопировать файл.

Минусы:

  • Не поддерживает снепшоты ни в каком виде.
  • Занимает сразу все выделенное пространство на диске, даже если внутри виртуальной машины место будет свободно. Из-за отсутствия фрагментации в некоторых случаях это может оказаться плюсом.

QCOW2. Родной формат для гипервизора QEMU. Расшифровывается как QEMU Copy-on-write. Этот формат позволяет создавать динамические диски для виртуальных машин, а так же поддерживает снепшоты. Теоретически, скорость работы должна хоть и не сильно, но уступать RAW. Как обстоит дело на практике, я не знаю, не замерял и подробно эту информацию не проверял.

Плюсы:

  • Поддержка снепшотов и динамических дисков. Как следствие — более удобное управление дисковым пространством.
  • Легкость переноса виртуальной машины на другой сервер. Достаточно просто скопировать файл.

Минусы:

Более низкая производительность, по сравнению с другими типами образов.

У каждого типа есть свои преимущества и недостатки. Lvm проще всего бэкапить, но им сложнее всего управлять. Для того, кто хорошо знаком с lvm это не проблема, если сталкиваешься первый раз, то возникает много вопросов. У raw нет снепшотов, лично для меня это большой минус, я этот формат вообще не рассматриваю. Если нет максимальной нагрузки на дисковую подсистему, то QCOW2 мне кажется наиболее приемлемым вариантом. Собственно, ниже и пойдет рассказ, как совместить удобство управления QCOW2 и простоту бэкапов и снэпшотов lvm. Я покажу, как сделать живой бэкап виртуальной машины kvm в формате qcow2 без остановки виртуальной машины.

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

libvirt stores it’s configuration as xml in ‘/etc/libvirt/qemu’. The xml is easy to understand, and is similar to VMware *.vmx files. While it is possible to edit these files in place and restart libvirt-bin for the changes to take affect, the recommended method for modifying the attributes of a virtual machine is via virsh (or virt-manager, if it supports changing the hardware you want to change). The concept is simple:

  1. export (aka ‘dump’) the xml of the virtual machine you want to edit
  2. edit the xml
  3. import (aka ‘define’) the xml

For example, to edit the machine named ‘foo’ (you can get a list of your machines with ‘virsh list —all’), do:

$ virsh dumpxml foo > /tmp/foo.xml
(edit /tmp/foo.xml as needed)
$ virsh define /tmp/foo.xml

Добавление процессоров

KVM allows you to create SMP guests. To allocate two CPUs to a VM, dump the xml as above, then edit your xml to have:

<domain type='kvm'>
  ...
  <vcpu>2</vcpu>
  ...
</domain>

Now define the VM as above.

Графическое управление[править]

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

# apt-get install virt-manager

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

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

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

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

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

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

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

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

Тип диска:

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

Включить меню загрузки> ставите очередность.

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

запускать при старте системы

Подключение ISOправить

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

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

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

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

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-сервер (они настраиваются автоматически).

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

Мостправить

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

Данный способ является наиболее правильным. Проще всего его сделать через alterator-net-bridge.

Например, br0, затем в настройках ВМ указать именно его.

//Как? Расписать…

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

Проброс портовправить

Из переписки:

Настроил тут проброс порта в 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-я виртуалки (например, во вкладке «Обзор»), перед закрывающим </domain>, такие строки:
 <qemu:commandline>
   <qemu:arg value="-netdev"/>
   <qemu:arg value="user,id=user0,hostfwd=tcp::2222-:22"/>
   <qemu:arg value="-device"/>
   <qemu:arg value="e1000,netdev=user0"/>
 </qemu:commandline>

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

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

Графикиправить

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

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

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

Установка qemu-kvm, libvirt, virt-manager и сопутствующих пакетов.

Примечание: Набор пакетов характерен именно для Ubuntu 20.04 и деривативов.

qemu-kvm — средство виртуализации qemu с гипервизором kvm.

libvirt-daemon, libvirt-daemon-system и libvirt-daemon-driver-qemu — это основные пакеты, которые подтянут прочие необходимые. В них входит несколько демонов (сервисов) libvirt и утилит для управления виртуальными машинами.

virt-manager — графическая оболочка libvirt для управления виртуальными машинами и редактирования их конфигурации.

gir1.2-spiceclientgtk-3.0 — пакет для поддержки управления виртуальной машиной по протоколу SPICE. Поддерживает шифрование, общий буфер обмена, проброс USB и многое другое. Документация: https://www.linux-kvm.org/page/SPICE

ovmf — Open Virtual Machine Firmware — прошивка с поддержкой эмуляции EFI. Альтернатива seabios. Оптимальный выбор для ОС с поддержкой EFI (все актуальные Linux-дистрибутивы, Win8.1, Win10).

Место хранения прошивок /usr/share/qemu/

qemu-utils — набор утилит. Необязательный пакет для установки.

  • qemu-img — утилита для создания и преобразования образов накопителей. К примеру, позволяет преобразовать образ в формате vdi (Virtualbox) в img.
  • qemu-io — утилита для работы с QEMU I/O.
  • qemu-nbd — экспорт образа накопителя QEMU с помощью протокола NBD.

После установки пакетов требуется перезагрузка.

Заключительная часть.

Наконец всё готово и видеокарта сможет свободно работать в гостевой ОС!

Ключевым признаком работы проброшенной видеокарты будет «зависание» картинки в окне просмотра Virt-manager. Если используется один монитор, то потребуется переключить видеорежим, чтобы увидеть графику гостевой ОС.

Рабочий стол будет отображаться в полноэкранном режиме:

Останется испытать производительность.

Рекомендую следующие программы для тестирования производительности:

  • LatencyMon — предназначена для измерения задержек прерываний. Чем выше задержки, тем сильнее проявляются «заикания».
  • Cinebench — тестирование производительности процессора.
  • Unigine Superposition Benchmark — общее тестирование производительности.

Набор незамысловат, но позволяет ясно увидеть уровень производительности. Забегая вперёд скажу, что производительность будет заметно меньше, чем при нативном запуске, но это можно исправить, сократив накладные расходы до минимума.

Варианты оптимизации рассмотрены в отдельной статье: https://noostyche.ru/blog/2021/03/30/optimizaciya-virtualizacii-win10-qemu-kvm/

Проблема с отсутствием звука в виртуальной машине.

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

Звук может отсутствовать из-за блокировки apparmor. Проверка наличия предупреждений о блокировке:

Если блокировка отсутствует, то вывод будет пустой.

При наличии предупреждений, самым простым способом является отключение защиты через конфигурационный файл /etc/libvirt/qemu.conf. Защита будет отключена только для виртуальных машин, запускаемых с использованием libvirt.

За использование защиты отвечает следующая строка:

Для отключения необходимо добавить строку со значением «none»:

Для применения изменений перезапустить libvirtd:

Virsh: список команд

Чтобы посмотреть запущенные виртуальные хосты (все доступные можно получить добавив —all):

Перезагрузить хост можно:

Остановить виртуальную машину:

Выполнить halt:

Запуск:

Отключение:

Добавить в автозапуск:

Очень часто требуется склонировать систему, чтобы в будущем использовать её как каркас для других виртуальных ОС, для этого используют утилиту virt-clone.

Она клонирует существующую виртуалку и изменяет host-sensitive данные, например, mac address. Пароли, файлы и прочая user-specific информация в клоне остаётся прежней. Если на клонируемой виртуалке IP адрес был прописан вручную, то могут возникнуть проблемы с доступом по SSH на клон из-за конфликта (2 хоста с одинаковым IP).

Помимо установки виртуалки через VNC, также возможен вариант с X11Forwarding через утилиту virt-manager. В Windows, например, для этого можно использовать Xming и PuTTY.

Скрипт для автоматического бэкапа виртуальных машин KVM

По мотивам всего написанного выше я набросал простенький скрипт для автоматического живого бэкапа всех дисков всех работающих в момент выполнения скрипта виртуальных машин

Обращаю внимание, что бэкапятся все диски. Скрипт привожу просто для примера, не используйте его, если вам не нужны полные бэкапы всех дисков

Лично я бэкаплю только небольшие системные диски. Все, что много весит, предпочитаю архивировать другими способами уже изнутри виртуальной машины. Если это базы данных, то делаю , если это файловый сервер, то использую rsync для создания инкрементных бэкапов. Ну и так далее. Каждый выбирает средства на свой вкус.

#!/bin/bash

# Дата год-месяц-день
data=`date +%Y-%m-%d`
# Папка для бэкапов
backup_dir=/backup-vm
# Список работающих VM
vm_list=`virsh list | grep running | awk '{print $2}'`
# Список VM, заданных вручную, через пробел
#vm_list=(vm-1 vm-2)
# Лог файл
logfile="/var/log/kvmbackup.log"

# Использовать это условие, если список VM задается вручную
#for activevm in "${vm_list}";
# Использовать это условие, если список работающих VM берется автоматически
for activevm in $vm_list
    do
        mkdir -p $backup_dir/$activevm
        # Записываем информацию в лог с секундами
        echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup $activevm" >> $logfile
        # Бэкапим конфигурацию
        virsh dumpxml $activevm > $backup_dir/$activevm/$activevm-$data.xml
        echo "`date +"%Y-%m-%d_%H-%M-%S"` Create snapshots $activevm" >> $logfile
        # Список дисков VM
        disk_list=`virsh domblklist $activevm | grep vd | awk '{print $1}'`
        # Адрес дисков VM
        disk_path=`virsh domblklist $activevm | grep vd | awk '{print $2}'`
        # Делаем снепшот диcков
        virsh snapshot-create-as --domain $activevm snapshot --disk-only --atomic --quiesce --no-metadata
        sleep 2
        for path in $disk_path
            do
                echo "`date +"%Y-%m-%d_%H-%M-%S"` Create backup $activevm $path" >> $logfile
                # Вычленяем имя файла из пути
                filename=`basename $path`
                # Бэкапим диск
                pigz -c $path > $backup_dir/$activevm/$filename.gz
                sleep 2
            done
        for disk in $disk_list
            do
                # Определяем путь до снепшота
                snap_path=`virsh domblklist $activevm | grep $disk | awk '{print $2}'`
                echo "`date +"%Y-%m-%d_%H-%M-%S"` Commit snapshot $activevm $snap_path" >> $logfile
                # Объединяем снепшот
                virsh blockcommit $activevm $disk --active --verbose --pivot
                sleep 2
                echo "`date +"%Y-%m-%d_%H-%M-%S"` Delete snapshot $activevm $snap_path" >> $logfile
                # Удаляем снепшот
                rm $snap_path
            done
        echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup $activevm" >> $logfile
    done

Обращаю внимание на несколько моментов:

vm_list может либо автоматически заполняться списком работающих виртуальных машин, либо можно вручную указать список только тех машин, которые нужно бэкапить. Для этого нужно раскомментировать соответствующую строку в  начале скрипта при объявлении переменной. Затем выбрать подходящую строку для цикла for. Он будет немного разным, в зависимости от списка.

Снепшоты будут создаваться в той же папке, где хранится основной файл данных. На время отладки советую для начала закомментировать строку с удалением снепшота, на всякий случай. Рекомендую этот крипт прогнать сначала на тестовом сервере. Я его написал на примере одного гипервизора, больше нигде не проверял. Но работает он однозначно, я проверил несколько раз с разными списками VM. В итоге оставил его у себя на сервере в работе.

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

/usr/bin/find /backup-vm/*/ -type f -mtime +90 -exec rm -rf {} \;

Данная команда удалит все файлы старше 90 дней в папках с названиями виртуальных машин, расположенных в /backup-vm.

Настройка Port forwarding

Выполняем команду на локальной машине:

Здесь мы настроили ssh port forwarding с локального порта 5900 на серверный порт 5900. Теперь уже можно подключиться к VNC, используя любой VNC-клиент. Я предпочитаю UltraVNC из-за простоты и удобства.

После успешного подключения, на экране отобразится стандартное окно приветствия начала установки Ubuntu.

После завершения установки и привычной перезагрузки, появится окно входа в систему. Авторизовавшись, определяем IP адрес новоиспечённой виртуалки, чтобы позже сделать его статичным:

Запоминаем и идём на хост машину. Вытаскиваем mac-адрес «сетевой» карты виртуалки:

Запоминаем наш mac адрес:

Редактируем сетевые настройки гипервизора:

Ищем DHCP, и добавляем вот это:

Должно получиться что-то вроде этого:

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

После этого перегружаем виртуальную машину, теперь она всегда будет иметь заданный ей IP адрес — 192.168.122.131.

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

Чтобы подключиться к терминалу виртуальной машины, выполняем:

Машина готова к бою.

Резервное копирование моментальных снимков

Самый простой способ убедиться, что ваша виртуальная машина Linux KVM имеет надлежащую резервную копию, — это использовать Вирт Инструмент создания снимков менеджера. С помощью моментальных снимков легко сохранить все на виртуальной машине и восстановить ее позже. Чтобы создать снимок, откройте Вирт-Manager и войдите в корень пароль. Если вы выполняете резервное копирование удаленно, войдите в любые подключения к удаленным виртуальным машинам, которые у вас могут быть.

Примечание. Идеальный способ использовать моментальные снимки — это установить на вашу виртуальную машину все необходимое для ее работы, а затем создать «базовый» моментальный снимок для восстановления, что-то вроде новой установки.

Когда Вирт-менеджер запущен и работает, запустите виртуальную машину, снимок которой вы хотите создать. Нажмите «Просмотр», затем нажмите кнопку «Снимки», чтобы открыть инструмент создания снимков. Cнажмите кнопку +, чтобы открыть меню создания снимка. В меню вам нужно будет ввести название снимка и описание.

В разделе «Имя» обязательно укажите имя операционной системы, которая находится в моментальном снимке. В разделе «Описание» напишите подробное объяснение того, что находится на снимке, и почему вы его сделали. Это поможет, особенно если у вас много разных снимков и вы не можете отличить их друг от друга.

После заполнения всей информации в средстве создания снимков нажмите «Готово», чтобы завершить процесс.

Восстановить снимки

Чтобы восстановить снимок виртуальной машины Virt-Manager, нажмите «Просмотр» в главном пользовательском интерфейсе и выберите «Снимки». Выберите снимок в пользовательском интерфейсе и нажмите кнопку воспроизведения. Это остановит все текущие действия в виртуальной машине и восстановит ее до состояния, в котором находится моментальный снимок.

Нужно удалить снимок из Virt-Manager? Щелкните снимок, а затем выберите значок корзины. При выборе удаления открывается диалоговое окно с вопросом: «Вы уверены, что хотите удалить этот снимок?» Выберите вариант «да», и снимок будет удален.

7 ответов

10

Используйте шпатлевку и некоторое программное обеспечение X Server на стороне Windows (например, Xming ) и используйте туннелирование X11 с шпатлевкой для отображения удаленной консоли virt-manager.

5

Я бы использовал Cygwin.
Затем вы можете установить virt-manager и openssh и разместить ярлык на рабочем столе.
Это родной.

Cygwin предоставляет инструменты и средства Linux вокруг программ, чтобы он выглядел как среда linux. Например, virt-manager может вызвать ssh для соединения с вашим KVM-сервером и сможет запустить virsh и отправить comamnds на него. Он также предоставляет X-Server.
Что изначально компилируется.

Если у вас есть время:
Вы можете легко настроить установку cygwin в соответствии с вашими потребностями. Просто пройдите по папкам, выбросьте все, что вам не нужно. Напишите сценарий, который запускает X-сервер, а затем virt-manager, застегните его и зажгите! есть ваш virt-manager для Windows.

3

Я бы просто использовал ssh (putty) и virsh и клиент VNC /Spice, если бы я был ограничен рабочей станцией Windows

2

Вы можете использовать Bash на Ubuntu в Windows ( https: //msdn. microsoft.com/en-us/commandline/wsl/about ).

Затем вы можете установить как на Ubuntu:

Тогда вам понадобится X-сервер. Вы можете установить Xming.

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

Вы можете включить агент ssh:

После этого вы сможете запустить virt-manager, как вы это делаете в Linux. Есть некоторые ошибки, но он работает: -).

редактировать z:
ошибка d-bus?
Per: https://www.reddit.com/r/Windows10/comments /4rsmzp /bash_on_windows_getting_dbus_and_x_server_working /
Бег:

закрыть /открыть bash, попробуйте еще раз, используйте virt-manager —debug для получения дополнительной информации

1

Да. Для Windows существует virt-viewer

Update:

Я вижу, что вы спрашивали о virt-manager на окнах, а не в virt-viewer.

Пожалуйста, подумайте об использовании XMing

Вот моментальный снимок запуска SSH с пересылкой X11 на Xming и virt-manager, работающий над окнами (переадресация X11)

Добавление «HowTo» в AndreasT Answer , поскольку это «лучший вариант» IMO ATM. Хотя использование подсистемы Bash + Windows для Linux может быть другим вариантом, она была недоступна в Windows 10 LTSB, и я действительно ненавижу, как Я не могу выполнять резервное копирование приложений Windows 10 Store , поэтому его нужно будет повторно настроить /установить при каждом развертывании Windows. Это разбойник!

Я разместил видео YouTube здесь>>> https://www.youtube.com/watch?v=gDEAu3oPcR0

И я написал свой собственный пост в блоге, но я знаю лучше, чем оставлять детали в URL-адресе, поэтому я скопирую здесь короткую форму. ( https://www.freesoftwareservers.com/wiki/running-virt-manager-inside-windows-10-using-cygwin-with-shortcut-on-desktop-28016650.html ) р >

  • Установить CygWin с virt-manager, xinit и openssh
  • Конфигурирование PWDless SSH через RSA-ключ к хосту KVM
  • Настроить XWin для автозапуска Virt-Manager

Создать ярлык на рабочем столе: (Это содержимое моего .cmd) Virt-Manager.cmd

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: