Лучшие “виртуальные машини” с открытым исходным кодом для linux

Базовые команды управления ВМ

1. Получить список созданных машин:

virsh list —all

2. Включить / перезагрузить / выключить.

а) включить виртуальную машину можно командой:

virsh start FirstTest

* где FirstTest — имя созданной машины.

б) перезагрузить:

virsh reboot FirstTest

* посылает команду операционной системе на корректную перезагрузку.

в) выключить корректно:

virsh shutdown FirstTest

* посылает команду операционной системе на корректное выключение.

г) выключить принудительно:

virsh destroy FirstTest

* грубо выключает ВМ. Может привести к потере данных. Способ стоит применять при полном зависании виртуалки.

д) приостановить:

virsh suspend FirstTest

Для возобновления работы вводим команду:

virsh resume FirstTest

е) отправить команду всем гостевым операционным системам:

for i in $(virsh list —name —state-shutoff); do virsh start $i; done

for i in $(virsh list —name —state-running); do virsh shutdown $i; done

* первыя команда запустит все ВМ, вторая — отправит команду на выключение.

3. Разрешаем автостарт для созданной ВМ:

virsh autostart FirstTest

4. Удаление виртуальной машины:

Удаляем виртуальную машину:

virsh undefine FirstTest

Удаляем виртуальный жесткий диск:

\rm /kvm/images/FirstTest-disk1.img

* где /kvm/images — папка, где хранится диск; FirstTest-disk1.img — имя виртуальног диска для удаленной машины.

5. Редактирование конфигурации виртуальной машины:

Открыть редактор для изменения конфигурации:

virsh edit FirstTest

Также можно менять параметры из командной строки. Приведем несколько примеров для работы с виртуальной машиной FirstTest.

а) изменить количество процессоров:

virsh setvcpus FirstTest 2 —config —maximum

virsh setvcpus FirstTest 2 —config

б) изменить объем оперативной памяти:

virsh setmaxmem FirstTest 2G —config

virsh setmem FirstTest 2G —config

6. Работа со снапшотами

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

virsh snapshot-create-as —domain FirstTest —name FirstTest_snapshot_2020-03-21

* где FirstTest — название виртуальной машины; FirstTest_snapshot_2020-03-21 — название для снапшота.

б) Список снапшотов можно посмотреть командой:

virsh snapshot-list —domain FirstTest

* данной командой мы просмотрим список всех снапшотов для виртуальной машины FirstTest.

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

virsh shutdown FirstTest

После вводим:

virsh snapshot-revert —domain FirstTest —snapshotname FirstTest_snapshot_2020-03-21 —running

* где FirstTest — имя виртуальной машины; FirstTest_snapshot_2020-03-21 — имя созданного снапшота.

г) Удалить снапшот можно так:

virsh snapshot-delete —domain FirstTest —snapshotname FirstTest_snapshot_2020-03-21

7. Клонирование виртуальных машин

Для примера, склонируем виртуальную машину FirstTest и создадим новую SecondTest.

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

virsh suspend FirstTest

После можно клонировать:

virt-clone —original FirstTest —name SecondTest —file /kvm/images/SecondTest-disk1.img

* итого, мы склонируем виртуальную машину FirstTest. Новая машина будет иметь название SecondTest, а путь до диска будет /kvm/images/SecondTest-disk1.img.

Восстанавливаем работу FirstTest:

virsh resume FirstTest

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

Для начала создайте образ для жесткого диска. По умолчанию он создается динамически расширяемым:

qemu-img create -f qcow2 /var/calculate/vbox/hdd.qcow2 20G

Если вы выделяете сразу все место под диск, то работать виртуальная машина будет быстрее, т.к. ей не надо будет выделять его в процессе работы. Для создания такого образа выполните:

qemu-img create -f qcow2 -o preallocation=metadata hdd.qcow2 20G

Пример конфигурации виртуальной машины:

testkvm.xml

<domain type='kvm' id='1'>
  <features><acpi/></features>
  <name>testkvm</name>
  <description>Description of server</description>
  <memory unit='KiB'>1048576</memory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.3'>hvm</type>
    <boot dev='cdrom' />
    <boot dev='hd' />
    <bootmenu enable='yes'/>
  </os>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback' io='threads'/>
      <source file='/var/calculate/vbox/hdd.qcow2'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/calculate/linux/css-18.12-x86_64.iso '/>
      <target dev='vdd' bus='virtio'/>
      <readonly/>
    </disk>
    <interface type='network'>
      <source network='default'/>
    </interface>
    <graphics type='vnc' port='5910' autoport='no'>
      <listen type='address'/>
    </graphics>
  </devices>
</domain>

В примере используется следующая конфигурация:

  • 1Гб оперативной памяти
  • 1 ядро процессора
  • система 64 бита
  • установочный образ Calculate Scratch Server 18.12
  • vnc-сервер на порту 5910.

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

Добавьте машину на базе конфига:

virsh define testkvm.xml

Запустите машину:

virsh start testkvm

Для остановки машины выполните:

virsh destroy testkvm

Это экстренный останов сравнимый с выключением питания.

Для поддержки нормальных остановки и перезапуска в гостевой машине должна быть установлена поддержка ACPI. В случае использование Calculate Linux в качестве гостевой машины, делается это следующим образом:

emerge -a sys-power/acpid

rc-update add acpid boot

Для включения автозапуска гостевой машины при запуске демона libvirt выполните:

virsh autostart testkvm

Чтобы отключить автозапуск, выполните:

virsh autostart —disable testkvm

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

qemu-system-x86_64 -name calculate -cpu host -smp 4 -enable-kvm -localtime -m 2048 -no-fd-bootchk -net nic,model=virtio,vlan=0 -net user,vlan=0 -drive file=hdd.img,index=0,media=disk,if=virtio -drive file=/mnt/iso/cldx-20150224-i686.iso,media=cdrom -monitor telnet:0.0.0.0:4008,server,nowait -spice port=5901,disable-ticketing -vga qxl -usb

Для создания CentOS Linux VM

Во-первых, захватите CentOS Linux 7.x DVD ISO файл:

cd /var/lib/libvirt/boot/ 
sudo wget http://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso 
ls

1
2
3

cd/var/lib/libvirt/boot/ 

sudo wget http//mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso 

ls

 CentOS-7-x86_64-Minimal-1511.iso install58.iso

1  CentOS-7-x86_64-Minimal-1511.isoinstall58.iso

Для создания новых виртуальных машин используйте команду virt-install. В этом примере, я создаю CentOS 7.x VM с 1 Гб оперативной памяти, ядро ​​процессора 1, и 20 Гб дискового пространства:

sudo virt-install \
—virt-type=kvm \
—name centos7 \
—ram 1024 \
—vcpus=1 \
—os-variant=rhel7 \
—hvm \
—cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1511.iso \
—network network=default,model=virtio \
—graphics vnc \
—disk path=/var/lib/libvirt/images/centos7.img,size=20,bus=virtio

1
2
3
4
5
6
7
8
9
10
11

sudo virt-install\

—virt-type=kvm\

—name centos7\

—ram1024\

—vcpus=1\

—os-variant=rhel7\

—hvm\

—cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1511.iso\

—network network=default,model=virtio\

—graphics vnc\

—disk path=/var/lib/libvirt/images/centos7.img,size=20,bus=virtio

Значение параметров

  • --virt типа = KVM: использование KVM как гипервизор для установки CentOS7 гостевой ОС.
  • --name centos7: Название новой гостевой виртуальной машины.
  • --ram 1 024: Память выделенная гостевой ОС в мегабайтах.
  • --vcpus = 1: Количество виртуальных процессоров, для гостевой ОС.
  • --os-variant=rhel7: Оптимизировать конфигурацию гостевой ОМ для конкретной операционной системы. Используйте 'virt-install --os-variant list', чтобы увидеть полный список ОС.
  • --hvm: Запрос на использование полной виртуализации.
  • --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1511.iso: Это путь к образу ISO, или к CDROM устройствам с ОС.
  • --network network=default,model=virtio: Подключение сети к  гостевой сети. В этом примере, подключение к виртуальной сети на хосте под названием «default» с NIC под названием Virtio.
  • --graphics VNC: Настройка виртуальной консоли в гостевой ОС и экспортировать её в качестве сервера VNC в хост системе. Это полезно для нашего сервера без графической оболочки
  • --disk path=/var/lib/libvirt/images/centos7.img,size=20,bus=virtio: Определяет устройство, которое использовать в качестве хранилища для гостевой ОС. Путь к /var/lib/libvirt/images/centos7.img с размером (20 ГБ).

Примечание о VNC при не графической оболочки сервера

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

sudo virsh dumpxml centos7 | grep vnc

1 sudo virsh dumpxml centos7|grep vnc

   <graphics type=’vnc’ port=’5901′ autoport=’yes’ listen=’127.0.0.1′>

1   <graphics type=’vnc’port=’5901’autoport=’yes’listen=’127.0.0.1′>

Запишите значение порта (то есть 5901). Вы должны использовать клиента SSH для настройки туннеля с клиентом VNC, чтобы получить доступ к удаленному серверу VNC.

Чтобы получить доступ к VNC консоли гостевой ОС

  1. SSH  — устанавливает SSH сессии с удаленным хостом KVM на хост system-admins.ru.
  2. -L — запуск перенаправления портов.
  3. 5901: 127.0.0.1: 5901 — Настройка туннеля, чтобы получить доступ к удаленному серверу 127.0.0.1 и порту 5901.

После того как вы установили SSH Tunnel, вы можете указать ваше клиенту VNC 127.0.0.1 (локальный) адрес и порт 5901 выглядит следующим образом:

Вы должны увидеть экран установки CentOS 7

Просто следуйте инструкциям на экране, чтобы установить CentOS 7. Через некоторое время CentOS 7 будет успешно установлен на моем сервере и готов к использованию. Нажмите кнопку перезагрузки.  Введите следующую команду для первого запуска ВМ:

sudo virsh start centos7

1 sudo virsh start centos7

Что бы проверить состояние машины

sudo virsh list

1 sudo virsh list

Результат

Id Name State
—————————————————-
3 puffy running
5 centos7 running

1
2
3
4

Id    Name                           State

—————————————————-

3puffy                          running

5centos7                        running

Снова используйте клиент SSH для настройки туннеля и клиента VNC, чтобы получить доступ к CentOS 7 VM через сервер VNC:

Итак работает KVM поверх LTS сервер Ubuntu Linux 14.04. В конфигурации по умолчанию, CentOS 7 гостевой операционной системы будут иметь доступ к сетевым службам, но не будет видна другим машинам в сети, или из интернета. Далее необходима настройка проброса портов.

What is KVM hypervisor?

KVM hypervisor enables full virtualisation capabilities. It provides each VM with all typical services of the physical system, including virtual BIOS (basic input/output system) and virtual hardware, such as processor, memory, storage, network cards, etc. As a result, every VM completely simulates a physical machine.

KVM is available as a Linux kernel module. It plugs directly into the kernel’s code and allows it to function as a hypervisor. Every VM runs as a separate Linux process under systemd, with dedicated virtual hardware resources attached.  KVM can only be used on a processor with hardware virtualisation extensions, such as Intel-VT or AMD-V.

KVM hypervisor benefits

The main benefit of the KVM hypervisor is its native availability on Linux. Since KVM is part of Linux, it installs natively, enabling straightforward user experience and smooth integration. But KVM brings more benefits compared to other virtualisation technologies. Those include:

  • Performance – One of the main drawbacks of traditional virtualisation technologies is performance degradation compared to physical machines. Since KVM is the type-1 hypervisor, it outperforms all type-2 hypervisors, ensuring near-metal performance. With KVM hypervisor VMs boot fast and achieve desired performance results.
  • Scalability – As a Linux kernel module, the KVM hypervisor automatically scales to respond to heavy loads once the number of VMs increases. The KVM hypervisor also enables clustering for thousands of nodes, laying the foundations for cloud infrastructure implementation.
  • Security – Since KVM is part of the Linux kernel source code, it benefits from the world’s biggest open source community collaboration, rigorous development and testing process as well as continuous security patching.
  • Maturity – KVM was first created in 2006 and has continued to be actively developed since then. It is a 15-year old project, presenting a high level of maturity. More than 1,000 developers around the world have contributed to KVM code.
  • Cost-efficiency – Last but not least, the cost is a driving factor for many organisations. Since KVM is open source and available as a Linux kernel module, it comes at zero cost out of the box. Businesses can optionally subscribe to various commercial programmes, such as UA-I (Ubuntu Advantage for Infrastructure) to receive enterprise support for their KVM-based virtualisation or cloud infrastructure.

Настройка

Настройка Virtual Machine Manager (VMM)

При первом запуске программы вы увидите две категории, обе не подключенные. Это ссылки на стандартные модули KVM, пока не работающие. Для их использования щелкните правой кнопкой мыши и выберите «connect».

Чтобы добавить новое соединение, выберите в меню File > Add Connection. При этом откроется окно, в котором можно будет задать тип гипервизора и тип соединения. VMM может использовать как локальные, так и удаленные соединения, включая QUEMU/KVM и Xen. Кроме того, поддерживаются все методы аутентификации.

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

Кратко рассмотрим остальные функции программы.
Сетевую функциональность можно просмотреть или изменить, открыв пункт Host Details. Там же мы установим утилиты для работы сетевого моста.

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

Создать виртуальную машину можно и из командной строки, но мы воспользуемся VMM. Первый шаг должен быть интуитивно понятен. Введите название и задайте расположение инсталляционного диска. Это может быть как локальное устройство в виде диска CD/DVD или образа ISO, так и HTTP или FTP сервер, NFS или PXE.

Мы используем локальный носитель. Теперь необходимо задать, будет ли это физическое устройство или образ. В нашем случае используется ISO. Далее нужно выбрать тип и версию ISO. Здесь не требуется такая уж высокая точность, но правильный выбор позволит повысить производительность виртуальной машины.

Задаем количество процессоров и размер оперативной памяти:

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

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

Поэтому необходимо будет задать другое расположение для образов.
Этап 5 — это вывод сводных данных с возможностью настройки некоторых продвинутых опций. Здесь вы можете изменить тип сети, задать фиксированные MAC-адреса, выбрать тип виртуализации и целевую архитектуру. Если вы работаете в режиме Usermode, возможности настройки сети будут ограничены, например невозможно будет создать мосты между сетевыми интерфейсами. И последнее: если ваш процессор не поддерживает аппаратной виртуализации, поле Virt Type будет иметь значение QUEMU и сменить его на KVM будет невозможно. Вы можете посмотреть, как выглядят типовые настройки для виртуальной машины Ubuntu:

Наша машина готова к использованию.

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

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

При необходимости можно удалить виртуальную машину вместе со всеми ее файлами:

Настройка сети KVM

Сервер имеет на борту две сетевые карты(статья по настройке netplan). Сетевые карты будут сгруппированы(bonding, LACP) для балансировки нагрузки. Кроме этого, для работы гостевых виртуальных машин будет создан bridge:

sudo nano /etc/netplan/50-cloud-init.yaml
network:
    bridges:
        br0:
            addresses:
            - 192.168.1.59/24
            dhcp4: no
            dhcp6: no
            gateway4: 192.168.1.1
            nameservers:
                addresses:
                - 192.168.1.1
                search: []
            interfaces:
                - bond0
    bonds:
        bond0:
            interfaces:
            - enp3s0
            - enp5s0
    ethernets:
        enp3s0:
            addresses: [192.168.1.57/24]
            dhcp4: no
            dhcp6: no
        enp5s0:
            addresses: [192.168.1.58/24]
            dhcp4: no
            dhcp6: no
sudo netplan apply

Что такое гипервизор?

Гипервизор — это программа, отделяющая операционную систему от железа. Гипервизоры виртуализируют ресурсы сервера (процессор, память, диск, сетевые интерфейсы и др.), позволяя использовать их как свои собственные, и создают на основе одного сервера несколько отдельных виртуальных машин. Каждая созданная виртуальная машина изолируется от соседей, чтобы не влиять на работу других. Для работы гипервизора необходима поддержка виртуализации: для процессоров Intel на процессоре Intel VT, а для процессоров AMD на AMD-V.

Гипервизоры делятся на два типа: первые работают непосредственно с сервером, а операционная система пользователей работает поверх гипервизора. Эти гипервизоры могут предоставлять некоторым пользователям функции управления сервером и большинство предприятий используют именно такие гипервизоры.

Гипервизоры второго типа, также известные как размещенные гипервизоры (Hosted Hypervisor), работают с операционной системой, установленной на сервере. А операционные системы для новых пользователей создаются поверх гипервизора.

Настольные гипервизоры, такие как Oracle VirtualBox или VMware Workstation, являются гипервизорами второго типа, а VMware и KVM – первого. VMware и KVM устанавливаются непосредственно на сервер и не требуют установки какой-либо операционной системы.

Какой гипервизор лучше выбрать?

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

  • эмуляция аппаратных ресурсов компьютера;
  • безопасное выполнение машинных инструкций;
  • предотвращение выполнения команд гостевых ОС режима супервизора на реальной хост-машине (без их перехвата и анализа, эмуляции выполнения).

Оптимальную технологию виртуализации для каждого пользовательского случая помогут выбрать профильные специалисты. Они учтут пожелания к проекту, имеющееся физическое аппаратное обеспечение, цену ПО, наличие и доступность техподдержки и ряд других важных факторов. Например, планируя использование VMware ESXi и некоторых других гипервизоров будьте готовы к тому, что придется платить за лицензии и приобрести качественное физическое оборудование для установки системы виртуализации.

При подготовке к работе с гипервизорами:

  • уделите время тщательному изучению информации на сайте производителя ПО виртуализации;
  • предварительно проверьте соответствие параметров имеющегося физического оборудования минимальным техническим требованиям гипервизора;
  • проанализируйте другие свойства выбранного ПО (для того, чтобы реальность совпала с ожиданиями).

Если у вас возникли вопросы при выборе оптимальной технологии виртуализации, обращайтесь в службу Customer Care – мы с радостью вас проконсультируем.

KVM

KVM — простой в использовании, легкий, нетребовательный к ресурсам и довольно функциональный гипервизор. Он позволяет за минимальные сроки развернуть площадку виртуализации и организовать виртуализацию под управлением операционной системы Linux. В процессе работы KMV осуществляет доступ к ядру операционной системы через специальный модуль (KVM-Intel или KVM-AMD). Изначально KVM поддерживал только процессоры x86, но современные версии KVM поддерживают самые разные процессоры и гостевые операционные системы, в том числе Linux, BSD, Solaris, Windows и др. Кстати, все Wiki-ресурсы (MediaWiki, Wikimedia Foundation, Wikipedia, Wikivoyage, Wikidata, Wikiversity) используют именно этот гипервизор.

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

KVM позволяет виртуальным машинам использовать немодифицированные образы дисков QEMU, VMware и другие образы, содержащие операционные системы. Каждая виртуальная машина имеет своё собственное виртуальное аппаратное обеспечение: сетевые карты, диск, видеокарту и другое железо.

Благодаря поддержке немодифицированных образов VMware, физический сервер можно легко виртуализовать при помощи все той же утилиты VMware vServer Converter, а затем перенести полученный файл в гипервизор.

Установка KVM в операционной системе Linux заключается в инсталляции пакета KVM и библиотеки виртуализации Libvirt, а также в тщательной настройке среды виртуализации. В зависимости от используемой на хосте операционной системы необходимо настроить мост или подключение к VNC-консоли, с помощью которой виртуальные машины будут взаимодействовать с хостом.

Администрировать KVM сложнее, так как прозрачный доступ к файлам, процессам, консолям и сетевым интерфейсам отсутствует, это приходится настраивать самостоятельно. Перестройка параметров VM в KVM (CPU, RAM, HDD) не очень удобна и требует дополнительных действий, включающих перезагрузку ОС.

Сам проект не предлагает удобных графических инструментов для управления виртуальными машинами, только утилиту Virsh, реализующую все необходимые функции. Для удобного управления виртуальными машинами можно дополнительно установить пакет Virt-Manager.

У KVM нет встроенных инструментов, подобных Fault Tolerate для VMware, поэтому единственный способ создать кластер высокой доступности — использовать сетевую репликацию при помощи DRDB. Кластер DRBD поддерживает только два узла, а узлы синхронизируются без шифрования. То есть для более безопасной связи необходимо использовать VPN-соединение.

Кроме того, для построения кластера высокой доступности понадобится программа Heartbeat, которая позволяет обмениваться служебными сообщениями о своем состоянии узлам в кластере, и Pacemaker — менеджер ресурсов кластера.

Гипервизор KVM распространяется как продукт с открытым исходным кодом, а для корпоративных пользователей существует коммерческое решение Red Hat Virtualization (RHEL), основанное на KVM и платформе управления виртуальной инфраструктурой oVirt.

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

Следует учесть, что у KVM нет службы поддержки. Если что-то не получится, можно рассчитывать на форумы и помощь сообщества. Или перейти на RHEL.

Решение проблем

1. Я получил ошибку, когда попытался создать виртуальную машину:

error: internal error: no supported architecture for os type 'hvm'

Вы получите эту ошибку, если ваш процессор не поддерживает аппаратную виртуализацию (то есть Intel VT или AMD-V), которая требуется для работы KVM. Если же вы получили эту ошибку с процессором, поддерживающим Intel VT или AMD-V, возможные решения этой проблемы:
Во-первых, проверьте, загружены ли требуемые модули ядра.

$ lsmod | grep kvm

Если модуль kvm не загружен, вам необходимо загрузить его:

$ sudo modprobe kvm_intel (для процессоров Intel)
$ sudo modprobe kvm_amd (для процессоров AMD)

Второе решение — добавление аргумента «—connect qemu:///system» к команде virsh, как показано ниже. Этот аргумент может потребоваться, если вы используете более одного гипервизора (то есть VMware, VirtualBox) на сервере.

$ virsh --connect qemu:///system create alice.xml

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

$ virsh console alice
error: internal error: cannot find character device <null>


Эта ошибка возникает потому, что вы не определили устройство консоли в XML-файле виртуальной машины.
Добавьте приведенные ниже строки в раздел «device» XML-файла.

<console type='pty'>
 <target port='0'/>
</console>

взято тут…

Преимущества виртуализации на десктопе

Для меня, как для домашнего пользователя, главным преимуществом виртуализации является возможность сохранить состояние операционной системы. Это значит, что все открытые окна, вкладки в браузерах, фоновые программы, рабочие столы и т.д. при выключении компьютера сохранятся и при включении восстановятся. Можно сразу продолжать работу.

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

В-третьих, заниматься резервным копированием — одно удовольствие, ведь вся система располагается в одном файле. Слил образ на внешний HDD и готово.

В-четвертых, достаточно один раз установить и настроить как следует рабочую среду и после этого можно заменить длительный и нудный процесс установки на быстрый и веселый процесс клонирования. Скопировал образ системы, запустил виртуальную машину, apt-get upgrade — и можно работать.

В-пятых, вы можете расположить образ операционной системы на RAM-диске и получить поистине феерическое ускорение всего и сразу. Я проводил эксперимент: 4 Гб оставил хосту, а 12 Гб отдал под образ с Debian. Внутри GNOME, GIMP, LibreOffice, Firefox. Все стартует в 1000 раз быстрее, чем даже с SSD.

Есть и еще миллион плюсов, но стоит сказать и о минусах.

Что такое виртуализация

Официальное определение звучит так: «Виртуализация — это предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе». То есть, если выражаться человеческим языком, имея один мощный сервер, мы можем превратить его в несколько средних серверов, и каждый из них будет выполнять свою задачу, отведенную ему в инфраструктуре, не мешая при этом другим.

Системные администраторы, работающие вплотную с виртуализацией на предприятии, мастера и виртуозы своего дела, поделились на два лагеря. Одни — приверженцы высокотехнологичной, но безумно дорогой VMware для Windows. Другие — любители open source и бесплатных решений на основе Linux VM. Можно долго перечислять преимущества VMware, но здесь мы остановимся на виртуализации, основанной на Linux VM.

Step 2: Check your CPU supports the Virtualization

Before installing KVM, we should know, whether our server, PC or laptop supports the Virtualization or not, thus run a simple command given below.

lsmod | grep kvm

The output will be something like this:

I am using AMD CPU, thus it is shown that, if you are on Intel, that will be print in the output.

kvm_amd 98304 0
ccp 86016 1 kvm_amd
kvm 663552 1 kvm_amd

We can also use the CPU Checker utility to check whether KVM is supported by the CPU or not. For that use these commands:

sudo apt install cpu-checker
sudo kvm-ok

The output will be like this:

:~$ sudo kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Check KVM supported by the CPU or not

Ubuntu 14.04 KVM Install

You are Welcome! The Tutorial Shows You Step-by-Step How to Install KVM on Ubuntu 14.04 Trusty LTS GNU/Linux Desktop/Server.

And KVM for Ubuntu Trusty is a full Virtualization Solution for Linux on x86 Hardware containing Virtualization Extensions (Intel VT or AMD-V).

Furthermore, KVM consists of a Loadable Kernel Module, kvm.ko, that provides the Core Virtualization Infrastructure and a Processor Specific Module, kvm-intel.ko or kvm-amd.ko.

Using KVM, one can Run Multiple Virtual Machines Running Unmodified Linux or Windows Images. Each Virtual Machine has private Virtualized Hardware: a Network Card, Disk, Graphics Adapter, etc.

Especially relevant: a 64-bit System it’s not required but strongly Recommended.

Finally, the guide includes instructions on How to Getting-Started with QEMU KVM Virtualization on Ubuntu.

  1. Open a Shell session
    Ctrl+Alt+t on Desktop
    Or Login into Server(Press “Enter” to Execute Commands)

  2. 2. Pre-Installation Checks

    Then Ascertain KVM Can be Installed

    egrep -c '(vmx|svm)' /proc/cpuinfo

    If in Output > 0 then your Processor support Hardware Virtualization!(But on a PC you may have still to enable it on BIOS…)
    Now again, first Install needed Tool with:

    sudo apt install cpu-checker

    And then Verify it:

    kvm-ok

    If it’s Good you will see:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

    Finally, if the answer is negative you can still use KVM but only in a Slow mode…

  3. 3. Installing KVM

    Now you are Ready to Install KVM on Ubuntu System

    sudo apt update
    sudo apt install qemu qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

    Following Ubuntu Documentation about KVM related Packages:

    • libvirt-bin provides libvirtd which you need to administer qemu and kvm instances using libvirt
    • qemu & qemu-kvm (kvm in Karmic and earlier) are the backend
    • ubuntu-vm-builder powerful command line tool for building virtual machines
    • bridge-utils provides a bridge from your network to the virtual machines
  4. 4. Adding User to Group

    Next Add User to libvirt Group
    First, you need to Make the Group:

    sudo addgroup libvirtd

    And then Add User with:

    sudo adduser `id -un` libvirtd

    This because only the Users of this Group can Run Virtual Machines.
    Then Relogin to Enable this Setup!

  5. 5. Verifing KVM Installation

    Finally, Test Installation.

    Simply performing:

    virsh list --all

    And in the Output you should find:

    Id    Name                           State
    ----------------------------------------------------

    This because still no VMs has been made.

  6. Again to Start Libvirtd Daemon

    sudo service libvirtd start

    And to Enable it on Boot:

    sudo update-rc.d libvirtd enable
  7. Getting-Started with KVM Virtualization.

Tags: gnu/linux, gnu/linux tutorial, Install KVM Ubuntu 14.04, Install KVM Ubuntu Trusty, KVM Install Ubuntu 14.04, KVM Install Ubuntu Trusty, KVM Ubuntu 14.04 Install, KVM Ubuntu 14.04 Installation, KVM Ubuntu Trusty Install, KVM Ubuntu Trusty Installation, Linux, Linux Tutorial, Ubuntu, Ubuntu 14.04 KVM, Ubuntu 14.04 KVM Install, Ubuntu 14.04 KVM Installation, ubuntu gnu/linux, ubuntu linux, Ubuntu Trusty KVM, Ubuntu Trusty KVM Install, Ubuntu Trusty KVM Installation

Установка виртуальной машины Ubuntu 16.04 на KVM

В качестве гостевой системы установим Ubuntu 16.04 с GUI. Также для меня пути по умолчанию не годятся:

  • — ISO-образы для установки гостевых систем;
  • — образы жестких дисков гостевых систем;
  • — тут следует искать все логи;
  • — каталог с файлами конфигурации.

Поэтому создаём директорию , а в ней две директории для ISO образов и образов наших гостевых ОС.

Качаем ISO-образ системы в директорию созданную ранее:

После завершения скачивания создадим нашу виртуальную машину на дистрибутиве Ubuntu Desktop 16.04 с 2 CPU, 2 Гб RAM и 20 Гб места на диске, подключенную к сети br0.:

Теперь давайте разберемся что же мы тут написали: — имя виртуальной машины — количество выделенной памяти. — количество ядер выделенных профессоров — оптимизация под конкретную гостевую ОС. — автоматический запуск гостевой ОС. — расположение iso образа устанавливаемой ОС. — к какой сети будет подключена наша виртуальная машина, — модель сетевого адаптера. — способ подключения к нашей гостевой ОС (в данном случае vnc), — на каких IP интерфейсах принимать соединения и с каким паролем). — расположение образа виртуального hdd (диска), — размер диска 20 Гбайт.

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

Базовая настройка закончена — можно опробовать наш гипервизор в деле. 

В правой верхней части панели управления кликаем по Создать VM:

В открывшемся окне снизу сразу ставим галочку Расширенный:

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

* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.

Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:

* в данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и Other.

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

* в некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант БИОС.

Задаем размер жесткого диска:

* 16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.

Мы можем задать количество процессоров и ядер:

* в данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.

Выделяем память:

* наша Ubuntu будет работать с 2 Гб оперативной памяти.

Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:

* в данном примере, мы указали vmbr0 для подключения к сети напрямую.

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

… и нажимаем Готово. Ждем окончания процесса и переходим к консоли:

Мы должны увидеть загрузку с ISO-образа.

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

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