Виртуальная машина linux server

Используем KVM для создания виртуальных машин на сервере

Эту заметку я пишу для того, чтобы продемонстрировать пошаговую установку и настройку виртуальной машины в Linux на базе KVM. Ранее я уже писал про виртуализацию, где использовал замечательный инструмент Vagrant.

Сейчас передо мной встал вопрос аренды хорошего сервера с большим объёмом оперативной памяти и объёмным жестким диском. Но запускать проекты прямо на хост-машине не хочется, поэтому буду разграничивать их по отдельным небольшим виртуальным серверам с ОС Linux или docker-контейнерам (о них расскажу в другой статье).

Все современные облачные хостинги работают по такому же принципу, т.е. хостер на хорошем железе поднимает кучу виртуальных серверов, которые мы привыкли называть VPS/VDS, и раздаёт их пользователям, либо автоматизирует этот процесс (привет, DigitalOcean).

KVM (kernel-based virtual machine) это программное обеспечения для Linux, использующее аппаратные средства x86-совместимых процессоров для работы с технологией виртуализации Intel VT/AMD SVM.

Установка KVM

Все махинации по созданию виртуальной машины я буду проводить на ОС Ubuntu 16.04.1 LTS. Чтобы проверить поддерживает ли ваш процессов аппаратную виртуализацию на базе Intel VT/AMD SVM, выполняем:

grep -E '(vmx|svm)' /proc/cpuinfo 

Если терминал непустой, то значит всё в порядке и KVM можно устанавливать. Ubuntu официально поддерживает только гипервизор KVM (входит в состав ядра Linux) и советует использовать библиотеку libvirt в качестве инструмента по управлению им, что мы и будем делать дальше.

Проверить поддержку аппаратной виртуализации в Ubuntu также можно через команду:

В случае успеха, вы увидите что-то вроде этого:

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

Устанавливаем пакеты для работы с KVM:

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

Если у вас есть доступ к графической оболочке системы, то можно установить GUI менеджер libvirt:

sudo apt-get install virt-manager 

Пользоваться virt-manager достаточно просто (не сложнее VirtualBox), поэтому в этой заметке речь пойдёт про консольный вариант установки и настройки виртуального сервера.

Установка и настройка виртуального сервера

В консольном варианте установки, настройки и управлением системой, незаменимым инструментом является утилита virsh (надстройка над библиотекой libvirt). У неё большое количество опций и параметров, подробное описание можно получить так:

или вызвать стандартный «help»:

Я всегда придерживаюсь следующих правил при работе с виртуальными серверами:

  1. Храню iso образы ОС в каталоге /var/lib/libvirt/boot
  2. Храню образы виртуальных машин в каталоге /var/lib/libvirt/images
  3. Явно задаю каждой новой виртуальной машине свой статичный IP адрес через DHCP сервер гипервизора.

Приступим к установке первой виртуалки (64-битной серверной убунте 16.04 LTS):

cd /var/lib/libvirt/boot sudo wget http://releases.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso 

Скачав образ запускаем установку:

sudo virt-install \ --virt-type=kvm \ --name ubuntu1604\ --ram 1024 \ --vcpus=1 \ --os-variant=ubuntu16.04 \ --hvm \ --cdrom=/var/lib/libvirt/boot/ubuntu-16.04.1-server-amd64.iso \ --network network=default,model=virtio \ --graphics vnc \ --disk path=/var/lib/libvirt/images/ubuntu1604.img,size=20,bus=virtio 

Переводя все эти параметры на «человеческий язык», то получается, что мы создаём виртуальную машину с ОС Ubuntu 16.04, 1024 МБ ОЗУ, 1 процессором, стандартной сетевой картой (виртуальная машина будет ходить в интернет как-будто из-за NAT), 20 ГБ HDD.

Читайте также:  Команды форматирования в линукс

Стоит обратить внимание на параметр —os-variant, он указывает гипервизору под какую именно ОС следует адаптировать настройки.
Список доступных вариантов ОС можно получить, выполнив команду:

Если такой утилиты нет в вашей системе, то устанавливаем:

sudo apt-get install libosinfo-bin

После запуска установки, в консоли появится вот такая надпись:

Domain installation still in progress. You can reconnect to the console to complete the installation process. 

Это нормальная ситуация, продолжать установку мы будем через VNC.
Смотрим на каком порту он был поднят у нашей виртуалки (в соседнем терминале, например):

Порт 5900, на локальном адресе 127.0.0.1. Чтобы подключиться к VNC, необходимо использовать Port Forwarding через ssh. Перед тем как это сделать, убедитесь, что tcp forwarding разрешён у демона ssh. Для этого идём в настройки sshd:

cat /etc/ssh/sshd_config | grep AllowTcpForwarding 

Если ничего не нашлось или вы видите:

Настройка Port forwarding

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

ssh -fN -l login -L 127.0.0.1:5900:localhost:5900 server_ip

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

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

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

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

virsh dumpxml ubuntu1604 | grep 'mac address'

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

sudo virsh net-edit default

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

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

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

sudo virsh net-destroy default sudo virsh net-start default sudo service libvirt-bin restart 

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

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

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

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

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

sudo virsh reboot $VM_NAME

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

sudo virsh destroy $VM_NAME
sudo virsh shutdown $VM_NAME
sudo virsh autostart $VM_NAME

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

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

Читайте также:  Linux infos about process

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

Ссылки

💌 Присоединяйтесь к рассылке

Понравился контент? Пожалуйста, подпишись на рассылку.

Источник

How to Install KVM on Ubuntu 20.04

A type 2 hypervisor enables users to run isolated instances of other operating systems inside a host system. As a Linux based OS, Ubuntu supports a wide range of virtualization solutions.

Aside from popular third-party apps, such as VirtualBox and VMWare, the Linux kernel has its own virtualization module called KVM (Kernel-based Virtual Machine).

In this tutorial you will learn how to install and set up KVM on Ubuntu 20.04.

How to Install KVM in Ubuntu 20.04

  • A system running Ubuntu 20.04
  • An account with sudo privileges
  • Access to the command line/terminal

Check Virtualization Support on Ubuntu 20.04

1. Before you begin with installing KVM, check if your CPU supports hardware virtualization via egrep command:

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

Check the number in the output:

Checking virtualization support using egrep command

If the command returns a value of 0 , your processor is not capable of running KVM. On the other hand, any other number means you can proceed with the installation.

2. Now, check if your system can use KVM acceleration by typing:

The output should look like this:

Checking if the system is set up to run kvm virtualization

If kvm-ok returns an error stating KVM acceleration cannot be used, try solving the problem by installing cpu-checker.

3. To install cpu-checker, run the following command:

sudo apt install cpu-checker

4. When the installation completes, restart the terminal.

You are now ready to start installing KVM.

Note: When it is performed for servers, hardware virtualization is referred to as server virtualization.

Install KVM on Ubuntu 20.04

To enable KVM virtualization on Ubuntu 20.04:

  • Install related packages using apt
  • Authorize users to run VMs
  • Verify that the installation was successful

Step 1: Install KVM Packages

1. First, update the repositories:

2. Then, install essential KVM packages with the following command:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

This will start the installation of four KVM packages:

Installing the packages necessary to run KVM in Ubuntu 20.04

3. When prompted, type Y , press ENTER, and wait for the installation to finish.

Step 2: Authorize Users

1. Only members of the libvirt and kvm user groups can run virtual machines. Add a user to the libvirt group by typing:

sudo adduser ‘username’ libvirt

Replace username with the actual username.

Adding a user to the libvirt usergroup

2. Now do the same for the kvm group:

sudo adduser ‘[username]’ kvm

Adding user to the kvm usergroup

Note: If you need to remove a user from the libvirt or kvm group, just replace adduser with deluser in the command above.

Step 3: Verify the Installation

1. Confirm the installation was successful by using the virsh command:

You can expect an output as seen below:

Confirming the installation was successful using virsh command

2. Or use the systemctl command to check the status of libvirtd:

sudo systemctl status libvirtd

If everything is functioning properly, the output returns an active (running) status.

Читайте также:  Options with ls command in linux

Checking the status of the virtualization daemon with systemctl

3. Press Q to quit the status screen.

4. If the virtualization daemon is not active, activate it with the following command:

sudo systemctl enable --now libvirtd

Creating a Virtual Machine on Ubuntu 20.04

1. Before you choose one of the two methods listed below, install virt-manager, a tool for creating and managing VMs:

sudo apt install virt-manager

Installing virt-manager with apt

2. Type Y and press ENTER. Wait for the installation to finish.

Make sure you download an ISO containing the OS you wish to install on a VM and proceed to pick an installation method.

Method 1: Virt Manager GUI

2. In the first window, click the computer icon in the upper-left corner.

Starting VM setup in virt manager on Ubuntu 20.04

3. In the dialogue box that opens, select the option to install the VM using an ISO image. Then click Forward.

Selecting the option to install from an ISO file in virt manager on Ubuntu 20.04

4. In the next dialogue, click Browse Local and navigate to the path where you stored the ISO you wish to install.

Choosing storage volume in virt manager on Ubuntu 20.04

5. The ISO you chose in the previous window populates the field in Step 2. Proceed to Step 3 by clicking Forward.

Confirming the ISO selection in virt manager on Ubuntu 20.04

6. Enter the amount of RAM and the number of CPUs you wish to allocate to the VM and proceed to the next step.

Allocating memory and CPUs in virt manager on Ubuntu 20.04

7. Allocate hard disk space to the VM. Click Forward to go to the last step.

Creating a disk image in virt manager on Ubuntu 20.04

8. Specify the name for your VM and click Finish to complete the setup.

Naming the VM in virt manager on Ubuntu 20.04

9. The VM starts automatically, prompting you to start installing the OS that’s on the ISO file.

Virtual machine OS installation screen in virt manager on Ubuntu 20.04

Method 2: Using Command Line

Use the virt-install command to create a VM via Linux terminal. The syntax is:

virt-install --option1=value --option2=value . 

In the following example, virt-install is used to install Fedora 33 Workstation.

Tip: For tidier appearance of commands with many options, type a back-slash after each option. That way, when you press Enter, the command will not execute, and the cursor will go to the next line.

Options behind the command serve to define the parameters of the installation.

Here is what each of them means:

Option Description
—name The name you give to the VM
—description A short description of the VM
—ram The amount of RAM you wish to allocate to the VM
—vcpus The number of virtual CPUs you wish to allocate to the VM
—disk The location of the VM on your disk (if you specify a qcow2 disk file that does not exist, it will be automatically created)
—cdrom The location of the ISO file you downloaded
—graphics Specifies the display type

After reading this article, you should know how to install KVM on Ubuntu 20.04. Additionally, the article describes two methods of setting up virtual machines, using the virt-manager GUI and the virt-install command.

Источник

Оцените статью
Adblock
detector