Установка системы виртуализации KVM на CentOS. Устанавливаем CentOS в VirtualBox Подключении по ssh с помощью putty


Подготовка сервера

Проверяем наличие поддержки со стороны процессора:

cat /proc/cpuinfo | egrep "(vmx|svm)"

Если команда ничего не вернет, на сервере отсутствует поддержка виртуализации или она отключена в настройках БИОС. Сам KVM поставить на такой сервер можно, но при попытке ввести команду управления гипервизором мы получим ошибку «WARNING KVM acceleration not available, using "qemu"». В таком случае необходимо перезагрузить сервер, войти в БИОС, найти поддержку технологии виртуализации (Intel VT или AMD-V) и включить ее.

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

mkdir -p /kvm/{images,iso}

* каталог /kvm/images для виртуальных дисков; /kvm/iso — для iso-образов.

Установка и запуск

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

yum install qemu-kvm libvirt virt-install

* где qemu-kvm — сам гипервизор; libvirt — библиотека управления виртуализацией; virt-install — утилита для управления виртуальными машинами.

Разрешаем автозапуск:

systemctl enable libvirtd

Запускаем KVM:

systemctl start libvirtd

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

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

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

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

yum install bridge-utils

Смотрим список сетевых интерфейсов и их настроек:

В моем примере были следующие данные:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo

inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0f0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

inet 192.168.1.24/24 brd 192.168.1.255 scope global enp4s0f0
valid_lft forever preferred_lft forever

valid_lft forever preferred_lft forever
3: enp5s5:

4: virbr0:


valid_lft forever preferred_lft forever
5: virbr0-nic:
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff

* из этого для нас важны enp4s0f0 — реальный сетевой интерфейс с настроенным IP-адресом 192.168.1.24 , через который идет подключение сервера к локальной сети (из него мы будем делать мост); 00:16:76:04:26:c6 — mac-адрес реального ethernet адаптера; virbr0 — виртуальный сетевой адаптер.

Редактируем настройки реального адаптера:

vi /etc/sysconfig/network-scripts/ifcfg-enp4s0f0

Приводим его к виду:

ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
DEVICE=enp4s0f0
BOOTPROTO=none

Создаем интерфейс для сетевого моста:

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.24
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=77.88.8.8

Перезапускаем сетевую службу:

systemctl restart network

Сетевые настройки должны измениться — в моем случае:

2: enp4s0f0: mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
6: br0: mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.24/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::216:76ff:fe04:26c6/64 scope link
valid_lft forever preferred_lft forever

Настаиваем перенаправления сетевого трафика:

vi /etc/sysctl.d/99-sysctl.conf

net.ipv4.ip_forward=1

Применяем настройки:

sysctl -p /etc/sysctl.d/99-sysctl.conf

Перезапускаем libvirtd:

systemctl restart libvirtd

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

Смотрим доступные варианты гостевых операционных систем:

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

virt-install -n FirstTest \
--noautoconsole \
--network=bridge:br0 \
--ram 1024 --arch=x86_64 \
--vcpus=1 --cpu host --check-cpu \
--disk path=/kvm/images/FirstTest-disk1.img,size=16 \
--cdrom /kvm/iso/CentOS-7-x86_64-Minimal-1611.iso \
--graphics vnc,listen=0.0.0.0,password=my_password \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on

  • FirstTest — имя создаваемой машины;
  • noautoconsole — после создания не подключается автоматически к консоли виртуальной машины;
  • network — тип сети (в нашем примере сетевой мост);
  • ram — объем оперативной памяти, который будет выделен;
  • vcpus — количество виртуальных процессоров;
  • disk — виртуальный диск: path — путь до диска; size — его объем;
  • cdrom — виртуальный привод с образом системы;
  • graphics — параметры подключения к виртуальной машины с помощью графической консоли (в данном примере используем vnc); listen — на какой адресе принимает запросы vnc (в нашем примере на всех); password — пароль для подключения при помощи vnc;
  • os-variant — гостевая операционная система (весь список мы получали командой osinfo-query os , в данном примере устанавливаем Reв Hat 7 / CentOS 7).

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

virsh autostart FirstTest

Подключение к виртуальной машине

Для дальнейшей установки операционной системы скачиваем VNC-клиент на компьютер администратора, например, TightVNC и устанавливаем его.

На сервере смотрим, на каком порту слушает VNC созданной машины:

virsh vncdisplay FirstTest

в моем случае было:

Это значит, что нужно к 5900 прибавить 0. Если результат команды будет:1 — 5900 + 1 = 5901 и так далее.

Открываем порт на брандмауэре:

firewall-cmd --permanent --add-port=5900-5905/tcp

firewall-cmd --reload

* в данном примере добавлено сразу 6 tcp-портов от 5900 до 5905 .

Запускаем установленный TightVNC Viewer, в открывшемся окне вводим IP-адрес сервера KVM и порт, на котором слушает наша ВМ (в данном примере, 5900):

Нажимаем Connect . Программа запросит пароль — вводим тот, что указали при создании ВМ, (в данном примере, my_password ). Мы подключимся к виртуальной машине, как будто, к ней подключен монитор или удаленная консоль KVM.

Admin и пароль, который создали при выполнении команды engine-setup . После успешного входа можно управлять виртуальными машинами через веб-интерфейс.

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

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

Ставил стандартно на CentOS 6.7, т.ч телодвижения начинаем с обновления системы:
# yum -y update

Смотрим поддерживается ли процессором аппаратная виртуализация, т.к KVM для своей работы требует поддержки Intel VT или AMD-V
# egrep -i "vmx|svm" --color=always /proc/cpuinfo
в выводе должен присутствовать либо vmx либо svm

Смотрим статус контроля доступа SELinux
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted

теоретически он может помешать при доступе к дискам, поэтому его надо либо корректно настроить на работу с папкой имиджей, либо отрубить, что мне естественно проще – в файле /etc/selinux/config меняем значение параметра SELINUX на disabled и перегружаем машину
SELINUX=disabled

Импортируем GPG ключи для пакетов
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Ставим весь фарш: сам kvm, API управления виртуалками libvirt, приблуду для создания виртуалок virtinst и гипервизор qemu-kvm
# yum -y install kvm libvirt python-virtinst qemu-kvm

Запускаем libvirt и прописываем модуль автозагрузку
# /etc/init.d/libvirtd start
# chkconfig libvirtd on

Проверяем как KVM установился и стартанул (в выводе должно быть 0 ошибок)
# virsh -c qemu:///system list
Id Name State
—————————————————-

Устанавливаем сетевой мост, для подключения гостевых машин к внешней сетке и ужасному, страшному энторнету
# yum install bridge-utils

Создаем конфиг сетевого моста, аналогичный настройкам сетевого интерфейса, но с небольшой разницей:
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0

###### /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=bridge
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=yes
IPADDR=SERVER_IP
PREFIX=24
GATEWAY=GW_IP
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System br0″
##################
затем редактируем настройки основного интерфейса, комментируя парметры BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 и прописывая сетевой мост
###### /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
#BOOTPROTO=none
HWADDR=01:2e:32:ab:9f:1e
#IPADDR=SERVER_IP
#PREFIX=24
#GATEWAY=GW_IP
#DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth0″
BRIDGE=br0
##################

Теперь рестартим сетку и смотрим что получилось - у нас должны показываться 4 интерфейса:
br0 с основным IP
eth0 без IP
lo 127.0.0.1
virbr0 с внутренним IP виртуального рутера

проверяем состояние нашего сетевого моста:
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.002215ab999d no eth0
virbr0 8000.52540052c0e1 yes virbr0-nic

теоретически можно ускорить работу сетевого моста, добавлением в файл /etc/sysctl.conf следующих параметров:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Теперь переходим к созданию директории для хранения имиджей виртуалок и образов дистов iso
# mkdir /usr/vm/iso
# mkdir /usr/vm/vm-images

по дефолту все имиджи машин, образы дисков и прочее хранится в /var/lib/libvirt/ но я решил выпендриться и порезал диск в лучших олдскульных традициях разбиения, поэтому учитывайте этот момент при установке сервера, либо же придется удалять оригинальные хранилища и линковать, как мне, на /usr

# rm -Rf /var/lib/libvirt/images
# ln -s usr/vm/iso /var/lib/libvirt/images

После всей этой подготовки, пытаемся создать виртуальную машину под Windows 7 с 2 виртуальными процами, 4Gb оперативки, 30Gb HDD, хранения имиджа в папке /usr/vm/vm-images и имиджем windows7.iso который мы скачали ранее в папку /usr/vm/iso

# virt-install --connect=qemu:///system -n win7 -r 4096 --vcpus=2 --disk path=/usr/vm/vm-images/win7.img,size=30 -c /usr/vm/iso/windows7.iso --vnc --noautoconsole --os-type windows --os-variant win7 --accelerate --network=bridge:br0 --hvm

Если все нормально, то увидим процесс создания диска. На этой торжественной ноте можно переходить к настройке машины, и тут кроется самая настоящая засада, т.к если вы работаете из под винды, то из вариантов есть либо управление через ming сквозь putty-ssh, но для этого требуются X Windows на стороне сервера, либо же совершенно не понятная тулза virtual viewer, которуя я так и не смог заставить работать. Поэтому все что я смог найти- это либо этот внешний сервис, позволяющий подцепить свою KVM к их админке; либо же ставить свою веб-админку на базе Webmin Cloudmin GPL.

Тут надо заметить, что строка инициализиции сетки –network=bridge:br0 позволит использовать на виртуальной машине паблик IP, тогда как если вы хотите сидеть в виртуальной локалке и выходить из неё в инет, то надо ставить другой оператор –network=bridge:virbr0 что я упустил при установке, т.ч потом пришлось менять руками в файле настройки виртуальной машины /etc/libvirt/qemu/win7.xml.

Управление машиной в CLI осуществляется через virsh (virtual shell) в который мы попадаем из командной строки shell:
# virsh --connect qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type: ‘help’ for help with commands
‘quit’ to quit
virsh # list –all
Id Name State
—————————————————-
2 win7 running
virsh # shutdown win7
Domain win7 is being shutdown
virsh # start win7
Domain win7 started

CentOS является одной из популярных систем на базе Linux, и по этой причине многие пользователи хотят с ней познакомиться. Устанавливать ее в качестве второй операционной системы на свой ПК - вариант не для каждого, но вместо этого можно поработать с ней в виртуальной, изолированной среде под названием VirtualBox.

Скачать CentOS можно совершенно бесплатно. Для удобства пользователей разработчики сделали 2 вариации дистрибутива и несколько способов закачки.

Сама операционная система есть в двух версиях: полная (Everything) и урезанная (Minimal). Для полноценного знакомства рекомендуется скачать полную версию - в урезанной нет даже графической оболочки, и для обычного домашнего использования она не предназначена. Если же вам нужна урезанная, на главной странице CentOS нажмите «Minimal ISO» . Оно скачивается ровно такими же действиями, что и Everything, загрузку которой мы рассмотрим ниже.

Скачать версию Everything можно через torrent. Поскольку примерный размер образа составляет порядка 8 ГБ.
Для скачивания выполните следующее:


Шаг 2: Создание виртуальной машины для CentOS

В VirtualBox каждая устанавливаемая операционная система нуждается в отдельной виртуальной машине (VM). На этом этапе выбирается тип системы, которая будет установлена, создается виртуальный накопитель и настраиваются дополнительные параметры.


На этом установка VM заканчивается.

Шаг 3: Настройка виртуальной машины

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

Во вкладке «Система» - «Процессор» можно увеличить количество процессоров до 2. Это даст некоторый прирост к производительности CentOS.

Перейдя в «Дисплей» , можете добавить некоторое количество МБ к видеопамяти и включить 3D-ускорение.

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

Шаг 4: Установка CentOS

Основной и последний этап: инсталляция дистрибутива, который уже был скачан.

  1. Выделите кликом мыши виртуальную машину и нажмите на кнопку «Запустить» .

  2. После запуска VM нажмите на папку и через стандартный системный проводник укажите место, куда вы скачали образ ОС.

  3. Запустится установщик системы. При помощи стрелки вверх на клавиатуре выберите пункт «Install CentOS Linux 7» и нажмите Enter .

  4. В автоматическом режиме будут произведены некоторые операции.

  5. Начнется запуск инсталлятора.

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

    Выберите ваш язык и его разновидность.

  7. В окне с параметрами настройте:
  8. Нажмите на кнопку «Начать установку» .

  9. Во время установки (состояние отображается в нижней части окна как прогресс-бар) вам будет предложено придумать пароль root и создать пользователя.

  10. Впишите пароль для прав root (суперпользователя) 2 раза и нажмите «Готово» . Если пароль будет простым, кнопку «Готово» потребуется нажать дважды. Не забудьте сперва переключить раскладку клавиатуры на английский язык. Текущий язык можно увидеть в правом верхнем углу окна.

  11. Впишите желаемые инициалы в поле «Полное имя» . Строка «Имя пользователя» будет заполнена автоматически, но ее можно изменить вручную.

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

    Придумайте пароль для учетной записи и нажмите «Готово» .

  12. Дождитесь установки ОС и нажмите на кнопку «Завершить настройку» .

  13. Будут выполнены еще кое-какие настройки в автоматическом режиме.

  14. .

  15. Появится загрузчик GRUB, который по умолчанию через 5 секунд продолжит загрузку ОС. Можно сделать это вручную, не дожидаясь таймера, нажав на Enter .

  16. Появится окно загрузки CentOS.

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

  18. Поставьте галочку в этом коротком документе и нажмите «Готово» .

  19. Чтобы включить интернет, нажмите на параметр «Сеть и имя узла» .

    Кликните на регулятор, и он сдвинется вправо.

  20. Нажмите на кнопку «Завершить» .

  21. Вы попадете на экран входа в учетную запись. Кликните на нее.

  22. Переключите раскладку клавиатуры, введите пароль и нажмите «Войти» .

Теперь вы можете начинать пользоваться операционной системой CentOS.

Установка CentOS - одна из самых простых, и может быть без труда выполнена даже новичком. Эта операционная система по первым впечатлениям ощутимо может отличаться от Windows и быть непривычной, даже если вы ранее пользовались Ubuntu или MacOS. Однако в освоении этой ОС не возникнет особых сложностей благодаря удобному окружению рабочего стола и расширенному набору приложений и утилит.

Solaris, Haiku, REACT OS and much more.

KVM can be managed using a command line or available graphical tools. Virt-Manager (Virtual Machine Manager) is the most widely used application for managing KVM based virtual machines. It supports creating, editing, starting, and stopping KVM-based virtual machines, as well as the live or cold migration of guest machines between hosts.

Prerequisites

Install KVM on CentOS 7

Issue the following command to install latest qemu package and also virt-manager which provides a graphical interface to manage virtual machines.

Yum install -y qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer

  • qemu-kvm = QEMU emulator
  • qemu-img = QEMU disk image manager
  • virt-install = Command line tool to create virtual machines.
  • libvirt = Provides libvirtd daemon that manages virtual machines and controls hypervisor.
  • libvirt-client = provides client-side API for accessing servers and also provides the virsh utility which provides command line tool to manage virtual machines.
  • virt-viewer – Graphical console

Create Virtual Machine

Once you have installed KVM and other tools, it is all set to start creating virtual machines. We will look be looking at creating virtual machines both in command-line and graphical mode.

Command Line Mode

virt-install is used to create virtual machines using the command line mode, and this command needs multiple inputs from us to create a virtual machine such as CPU, Memory, disk, network, installation media location, OS variant and more.

Virt-install --name=itzgeekguest --ram=1024 --vcpus=1 --cdrom=/tmp/CentOS-6.5-x86_64-minimal.iso --os-type=linux --os-variant=rhel6 --network bridge=br0 --graphics=spice --disk path=/var/lib/libvirt/images/itzgeekguest.dsk,size=4

Note: The above command uses bridged networking “br0” for allowing virtual machines to communicate with outside network, you can find a tutorial on creating bridged networking with Virt Manager.

–name – Name of the Virtual machine

–ram – Memory size in MB

–vcpus – Virtual CPU’s in numbers

–cdrom – Location of the ISO image

–os-type – OS types like Linux, Windows, etc.

–os-variant – OS variant like RHEL 6, Solaris

–network – Networking

–graphics – Guest display settings

–disk path – Location of the disk with size of 4 GB

Once you’ve issued the above command, virt-install will create a virtual machine and starts virt viewer console for OS installation.


Install KVM (QEMU) on CentOS 7 – Guest Installation command Line Virt Viewer

Graphical Mode

Type the following command in the terminal in GUI mode.

Virt-manager

Application >> System Tools >> Virtual Machine Manager.

You may be asked to enter a password if you don’t have root access.

Once it is opened, right-click on localhost(QEMU) and Click on New. Virtual Machine Manager will start a new wizard for creating a virtual machine. You will find no difficulty in using this graphical mode.

Step 1 : You would require naming your virtual machine, in the same window, you would be asked to choose how would you like to install the operating system. Here I chose to install it from ISO image or CD-ROM.

Install KVM (QEMU) on CentOS 7 – Virt Manager – Create VM

Step 2 : Enter the location of ISO image as the physical CD-ROM pass through is not supported by the hypervisor, do not forget to choose operating system type and version.


Install KVM (QEMU) on CentOS 7 – Virt Manager – Installation Media

Step 3 : Configure CPU and memory for the virtual machine.


Install KVM (QEMU) on CentOS 7 – Virt Manager – Memory and CPU

Step 4 : You have to mention the amount of storage that you want to assign to a virtual machine, Uncheck on “Allocate entire disk now “, this will prevent from allocating full disk at the VM creation.

Disk size will be allocated dynamically depending on the virtual machine usage.


Install KVM (QEMU) on CentOS 7 – Virt Manager – Allocating Storage

Step 5 : Summary of all the settings, click on advanced settings to select bridged networking to allow the virtual machine to communicate outside the network.

Click on Finish.

Install KVM (QEMU) on CentOS 7 – Virt Manager – Summary

Step 6 : KVM will start to create a virtual machine depends on our input, once VM is created. Virt manager will start a console for OS installation.

The following screen shows the installation screen of .


Install KVM (QEMU) on CentOS 7 – Virt Manager – VM Console

Manage Virtual Machine

With the Virtual Machine Manager, you can perform VM’s life cycle actions such as start, power off, reset, clone and migration by right-clicking on the selected virtual machine.


Install KVM (QEMU) on CentOS 7 – Virt Manager

Managing virtual machine using virt manager is very simple, you can just click on “bulb” icon in the VM console. Here you can add, modify and remove devices.


Install KVM (QEMU) on CentOS 7 – Virt Manager – Managing VM

Последнее время стало модно использовать всюду виртуализацию.
Имеем сервер с установленной CentOS 7 minimal x64 и планируем использовать KVM .

Конечно, не плохо бы было убедится что наш сервер поддержит виртуализацию (но если у вас современный нормальный сервер то думаю что 100% он это поддерживает) .

Egrep "(vmx|svm)" /proc/cpuinfo

Устанавливаем KVM на наш сервер:

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

Yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install –y

не забываем добавить в автозагрузку:

Systemctl enable libvirtd && systemctl start libvirtd

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

Mkdir /var/vm

Ну тут у нас два пути или добавляем соответствующий контекст для нашей директории что бы не ругался SElinux:

Semanage fcontext --add -t virt_image_t "/var/vm(/.*)?" restorecon -R -v /var/vm или просто его отключаем.

Ну в общем то готово. Остается только при необходимости произвести изменения настройки сети если такая необходимость есть.
Посмотреть список возможных сетей можно командой «virsh net-list »
По умолчанию имеем одну внутреннею сеть редактировать которую можно командой «virsh net-edit default » , где «default» название сети

Создадим виртуальную машину

Для примера (проверки) создадим первую виртуальную машину с простыми настройками и подключением к сети «default». Для начала скачаем образ OS которую будем ставить на сервер.

Virt-install --network network=default --name vm1 --ram=2048 --vcpus=1 --disk path=/var/vm/vm1.img,size=20,format=qcow2 --graphics vnc,password=123 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on

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

  • --network network=default Подключаем виртуальную машину к виртуальной сети с именем default
  • --name Указываем название виртуальной машины
  • --ram= Указываем размер оперативной памяти который выделяем
  • --vcpus= Указываем количество процессоров которое мы выделяем
  • --disk Указываем расположение, формат и размер виртуального диска
  • --graphics vnc,password=123 Указываем пароль и возможность подключатся к терминалу виртуальной машины через VNC
  • --cdrom Указываем расположение образа с которого будем устанавливать систему
  • --boot Что подключено при загрузке
Указанные выше команды могут быть введены одной строкой: virt-install --network network=default --name vm1 --ram=2048 --vcpus=1 --disk path=/var/vm/vm1.img,size=20,format=qcow2 --graphics vnc,password=123 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso --boot cdrom,hd,menu=on

и мы увидим:

Запуск установки... Выделение ресурсов «vm1.img»... | 10 GB 00:00:00 Создание домена... | 0 B 00:00:00 Установка домена продолжается. Ожидание до завершения установки...

Подключение к Виртуальной машине по VNC

Поскольку на нашем сервере нет оконного менеджера то что бы произвести установку и настройку нам необходимо как то подключится. В настройках при создании виртуалки «--graphics vnc,password=123» мы указали что можем подключатся к терминалу через VNC .

Нашей виртуальной машине был назначен порт VNC, узнать какой порт назначен конкретной виртуальной машине можно командой (где «vm1» название виртуальной машины):

Virsh vncdisplay vm1 127.0.0.1:0

Это означает, что порт VNC 5900+0=5900. Если бы результат был "127.0.0.1:1", порт VNC был бы 5901. И т.д. Подключатся к порту надо на хост (наш сервер который мы настраивали) виртуальных машин.

По умолчанию, хост виртуальных машин (у нас это CentOS 7 minimal) не должен позволять подключение к любому порту кроме ssh (22/tcp). Не советую вам открывать доступ к портам VNC из-вне. Это небезопасно. Для того, чтобы получить доступ к экрану виртуальной машины с рабочей станции Windows, с которой я все настраиваю, я сделал туннелирование порта в Putty: 5900 -> 127.0.0.1:5900.


После успешного логина по ssh, можно запустить TightVNC и указать порт 127.0.0.1::5900 (обратите внимание на двойное двоеточие).


Подключившись к виртуальной машине можем произвести установку ОС и последующую настройку.

Управление Виртуальной машиной:

Включение виртуальной машины

Virsh start vm1

Выключение виртуальной машины

Virsh shutdown vm1

Выдергивание кабеля питания:

Virsh destroy vm1

Приостановка работы:

Virsh suspend vm1

Подключить к виртуальной машине iso-образ в качестве cdrom

Virsh attach-disk vm1 /home/iso/CentOS-7-x86_64-Minimal-1503-01.iso hda --type cdrom --mode readonly

Virsh attach-disk vm1 "" hda --type cdrom --mode readonly

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

Virsh autostart vm1

Выключить автостарт для vm1:

Отключить iso-образ (не удалить устройство из гостя, а просто "извлечь cd-диск из привода"):

Virsh attach-disk vm1 "" hda --type cdrom --mode readonly