Все ленты — последние статьи

KVM — установка, создание VM (виртуальной машины), управление

 собрано из 3 статей, лично не успел протестировать, но вроде все понятно и без лишних слов от автора.

http://goodigy.ru/kvm_na_ubuntu_server_14.04http://goodigy.ru/ustanovka_mashin_virt-installhttp://goodigy.ru/upravlenie_kvm_terminal

 

Установка KVM на Ubuntu Server 14.04/14.10

Имеем, компьютер с Ubuntu 14.04/14.10,  домашний сервер с Ubuntu Server 14.04/14.10, роутер ASUS N56U с прошивкой от padavan.

Все это соединено в сеть.  

Установим на сервер KVM. Более подробно можно почитать в википедии, на английском ubuntu.com , и на официальном сайте.

Кратко, инструкция по установке и базовой настройке.

 

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

ubuntu-vm-builder надо ставить только в том случае, если вы собираетесь создавать виртуальные машины с помощю него.

Добавить себя в группу libvirtd

sudo adduser `id -un` libvirtd

Проверка установки

virsh -c qemu:///system list

Ответ должен быть

 ID Имя Статус
----------------------------------------------------

Если все нормально установилось, приступаем к настройке. Вернее, у нас два варианта, первый, оставить все как есть. Второй, настроить сетевой мост, еще одна на английском.

Первый вариант, виртуальная машина получит ip-адрес от встроенного dhcp сервера. Адрес вида 192.168.122.n, доступ к машине можно получить с нашего сервера, не с другого компьютера. Этот вариант актуален для установки kvm на своем компьютере, и непосредственно с него получать доступ к виртуальной машине.

Второй вариант, в нашем случае, подходит только он, настроим сетевой мост на сервере.

Открываем файл /etc/network/interfaces

sudo nano /etc/network/interfaces

В файле должно находиться, примерно, следующее

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

Нужно заменить на это

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

Перезапускаем сеть

sudo /etc/init.d/networking restart

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

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

каждая созданная виртуальная машина, подключенная в сетевому мосту, ip-адрес будет получать от роутера.

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

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

sudo apt-get install virt-manager

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

 

Вторая статья по теме

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

Создание хранилища.

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

Создадим папку 

mkdir /home/goodigy/kvm

Создадим хранилище

sudo virsh pool-define-as storage dir — - — - "/home/goodigy/kvm"

storage — название хранилища,
dir — - — - "/home/goodigy/kvm" — путь к папке.

Проверяем
sudo virsh pool-list --all

Вывод должен быть таким

Имя Статус
Автозапуск
----------------------------------------------------
storage не активен нет

Собираем хранилище

sudo virsh pool-build storage

Запускаем хранилище

sudo virsh pool-start storage

Добавляем в автозагрузку

sudo virsh pool-autostart storage

Проверяем

sudo virsh pool-list —all
Имя Статус
Автозапуск
----------------------------------------------------
storage активен да

Информация о хранилище

sudo virsh pool-info storage

Создание виртуальной машины kvm, с помощью virt-install.

Устанавливать мы будем с помощью утилиты virt-install

sudo apt-get install virt-install

Создание виртуальной машины, например, с опреционной системой CentOs на борту.

virt-install \
-n CentOs \
-r 1024 \
--vcpus=2 \
-c /home/goodigy/dists/CentOs-7.0-1406-x86_64-Minimal.iso \
--disk pool=storage,size=20,bus=virtio,format=qcow2,cache=writeback \
--graphics vnc,listen=0.0.0.0
  • -n - название нашей машины, CentOs;
  • -r - выделяемая память, 1024Мб;
  • --vcpus - процессор;
  • -c - путь к iso-образу установочного диска;
  • --disk - виртуальный hdd;
    • pool — название хранилища, storage;
    • size — размер hdd, 20Гб;

Можно указать еще очень много параметров.

Узнать какие существуют

virt-install --help

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

virt-install \-n bitrix \-r 512\--vcpus=1 \--os-type=linux \--os-variant=virtio26 \--boot hd \--disk "/home/igy/kvm/bitrix2.img",bus=virtio,format=qcow2,cache=writeback\--graphics vnc,listen=0.0.0.0
  • --os-type - linux или windows;
  • --os-variant - одно значение из списка, можно посмотреть командой virt-install --os-variant list;

 

Третья статья

Управление KVM из командной строки

 

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

Для этого существует утилита virsh.

Чтобы увидеть список всех виртуальных машин нужно выполнить

virsh list —all

вывод должен быть таким

ID Имя Статус
----------------------------------------------------
 — vm1 выключен
 — vm2 выключен
virsh list

без параметра --all покажет список включенных машин.

Чтобы включить машину 

virsh start vm1

отключить, послать сигнал завершения

virsh shutdown vm1 

принудительно завершить работу

virsh destroy vm1

Сохранить состояние машины в файл

virsh save vm1 file

Вирутальная машина остановится в текущем состоянии, сосотояние запишется в файл — file.

Восстановить из файла 

virsh restore file

Информация о машине

virsh dominfo vm1

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

virsh vncdisplay vm1

Ответ будет в таком виде 

:1

К выведенной цифре надо прибавить 5900. Для нашего примера порт будет 5901

Мониторить нагрузку можно с помощью, top-подобная утилита. В Ubuntu 14.04/14.10 есть в репозитории.

virt-top

Узнать какие еще есть команды 

virsh --help

Ну и конечно же ман

man virsh

Есть еще одна статья  http://goodigy.ru/virtual_manager_ubuntu_14.04  Использование менеджера виртуальных машин (virt-manager), в картинках