собрано из 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), в картинках