среда, 7 августа 2013 г.

KVM на Debian.

Несколько недель назад я выбрал себе KVM для виртуализации. Сразу отвечу на вопросы «почему?»: виртуальные машины под KVM шустры и позволяют запускать любую ОС. Еретические ОС я не пробовал, но Debian и FreeBSD бегают под KVM+Debian очень и очень неплохо — это признают даже бывалые администраторы.
Если вы готовы за скорость заплатить удобством настройки и использования хост-машины — просим под кат.

Устанавливал я KVM на машинку с процессором core i7. Рекомендую использовать именно многоядерные процессоры с HT. При том не стоит отдавать виртуальным машинам виртуальных процессоров больше, чем есть ядер на хост-машине. В случае с i7 я получил 8 ядер, которые в дальнейшем смогу разделить как пожелаю между контейнерами.  Если раздать больше процессоров чем есть — это может сказаться на производительности.
Первым делом проверяем — поддерживает ли процессор аппаратную виртуализацию:
cat /proc/cpuinfo | egrep ‘(svm|vmx)’
Если после ввода команды на экране появился какой-либо текст — то ваш процессор поддерживает аппаратную виртуализацию. Если вывод команды пустой — то не стоит использовать KVM. Да и вообще не стоит использовать современные гипервизоры.
Теперь устанавливаем необходимые пакеты:
sudo apt-get install kvm libvirt-bin virtinst bridge-utils
После чего стоит перезагрузить хост. Конечно же стоит использовать последнее доступное стабильное linux-ядро, доступное в репозиториях.
Проверяем, установился ли KVM:
virsh -c qemu:///system list —all
Вывод команды опять же должен быть не пустым и не содержать ошибок вида «команда не найдена».
Приступим к настройке сети на хост машине. Приведем файл /etc/network/interfaces к следующему виду:
auto lo
iface lo inet loopback
auto  eth0
iface eth0 inet static
auto br0
iface br0 inet static
address   178.ххх.ххх.137
netmask   255.255.255.192

network 178.ххх.ххх.0
broadcast 178.ххх.ххх.191
gateway   178.ххх.ххх.129
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
После чего применяем все сетевые настройки:
/etc/init.d/networking restart
Для удобства создадим каталоги:
mkdir /iso && mkdir /vms
И скачаем образ установочный образ debian:
cd /iso && wget -c http://cdimage.debian.org/debian-cd/5.0.4/amd64/iso-cd/debian-504-amd64-CD-1.iso
Теперь перейдём к созданию виртуальной машины:
virt-install -n vm1 -r 1024 -f /vms/vm1.img -s 50 -c /iso/debian-cd/5.0.4/amd64/iso-cd/debian-504-amd64-CD-1.iso —accelerate —os-type=linux —os-variant=generic26 -v —vnc -w bridge:br0
Расскажу о приведенных выше опциях:
-n vm1 — имя домена (виртуальной машины)
-r 1024 — количество оперативной памяти
-f /vms/vm1.img — расположение «жесткого диска».
-s 50 — размер «жесткого диска»
-c /iso/debian-cd/5.0.4/amd64/iso-cd/debian-504-amd64-CD-1.iso — указываем iso образ, с которого будем производить установку системы. Рекомендую запускать 64х битные образы под 64й битной ОС хост-машины.
—accelerate —os-type=linux —os-variant=generic26 -v — оптимизируем VDS для работы с виртуальным Linux с ядром 2.6.хх
—vnc — запускаем VNC-сервер для доступа к виртуальной машине.
-w bridge:br0 — указываем, что виртуальная машина должна использовать сетевлй мост br0  хост-машины
Теперь перейдем к установке ОС на виртуальную машину.
На вашем компьютере (не на сервере, а на рабочей станции с графической средой) вводим команды:
ssh -L 5900:localhost:5900 root@178.ххх.ххх.137
И во второй консоли:
vncviewer localhost:5900
Теперь вы должны увидеть в VNC установщик Debian. Ставим всё как обычно (возможно вам будет недоступна сеть). После того, как установщик Debian отправит систему в перезагрузку — виртуальная машина выключится, вместо того, чтобы перезагрузиться.
Самое время изменить количество выделенных процессоров для виртуальной машины:
virsh -c qemu:///system setvcpus vm1 2
Эта команда сработает, только если виртуальная машина находится в выключенном состоянии.  Теперь запустим её снова:
virsh -c qemu:///system start vm1
Теперь нужно настроить сеть на виртуальной машине. Заходим на неё по VNC и приводим файл /etc/network/interfaces к следующему виду:
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 178.xxx.xxx.177
netmask 255.255.255.192
network 178.xxx.xxx.128
broadcast 178.xxx.xxx.191
gateway 178.xxx.xxx.137
Шлюзом необходимо указать ip-адрес хост-сервера. Так же стоит прописать NS в файл /etc/resolv.conf
Теперь ваша виртуальная машина работает и доступна из сети (а в моём случае она стала доступна и из интернета).
Осталось сделать aptitude update && aptitude upgrade && aptitude install openssh-server и зайти на виртуальный сервер по SSH.
Пользуясь случаем расскажу вам, что у хостера QS.biz сдаются в аренду VDS на KVM.

Комментариев нет:

Отправить комментарий