Показаны сообщения с ярлыком KVM. Показать все сообщения
Показаны сообщения с ярлыком KVM. Показать все сообщения

среда, 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.

Kernel Based Virtual Machine (KVM)

Kernel Based Virtual Machine (KVM)


KVM - это технология полной виртуализации для Linux, поддерживающая аппаратную виртуализацию для процессоров с поддержкой Intel VT или AMD-V. Сам KVM состоит из из подгружаемого модуля ядра kvm.ko, предоставляющего базовый функционал, а также специфичного для процессора модуля kvm-intel.ko или kvm-amd.ko.

Установка

В Lenny он находится в пакете 'kvm', в Squeeze - 'qemu-kvm'. Объяснение смены названия пакета можно найти в файле README.Debian.gz для пакета qemu-kvm.

Использование virt-manager

Следующая команда установит kvm и virt-manager
aptitude install kvm virt-manager
По зависимостям будет установлен демон libvirt-bin. Его задачей является загрузка соответствующего для процессора модуля kvm-amd или kvm-intel во время запуска системы. Для управления виртуальными машинами из-под учётной записи, отличной от root, необходимо добавить пользователя в группу libvirt:
adduser <youruser> libvirt
Если Вы предпочитаете управлять через консоль и визуальная оболочка Вам не нужна, тогда установить kvm можно следующим образом:
aptitude install kvm libvirt-bin
Для управления виртуальными машинами можно использовать virsh(1) . За более подробной информацией следует обратиться к странице посвящённой libvirt.

Squeeze

Установить KVM можно так, при этом управление виртуальными машинами kvm аналогична управлению виртуальными машинами в QEMU.
aptitude install qemu-kvm

Использование virt-manager

Установка qemu-kvm следующей командой автоматически установит Менеджер Виртуальных Машин (Virtual Machine Manager) virt-manager.
aptitude install qemu-kvm virt-manager
Будет установлен демон libvirt-bin, который будет запускаться во время старта системы и подгружать специфичный для процессора модуль kvm-amd или kvm-intel. Для управления виртуальными машинами из-под непривилегированного пользователя, необходимо данного пользователя добавить в группу libvirt:
adduser <youruser> libvirt
В случае когда графический интерфейс не нужен, то установить kvm можно следующей командой:
aptitude install qemu-kvm libvirt-bin
Командой virsh(1) управлять виртуальными машинами.

Диагностика

No network bridge available:
virt-manager uses a virtual network for its guests, by default this is routed to 192.168.122.0/24 and you should see this by typing ip route as root.
If this route is not present in the kernel routing table then the guests will fail to connect and you will not be able to complete a guest creation.
Fixing this is simple, open up virt-manager and go to "Edit" -> "Host details" -> "Virtual networks" tab. From there you may create a virtual network of your own or attempt to fix the default one. Usually the problem exists where the default network is not started.

Смотри также

Ссылки

суббота, 20 апреля 2013 г.

Устновка proxmox Debian x64

Устанавливаем Proxmox VE на Debian Squeeze(amd64)


Вообще хочется отметить что Proxmox VE проще установить из специально подготовленного ISO-файла, но в некоторых случаях, например если у вас файл хранилище более 2Тб, это ограничение MBR. Если у вас диск на 3Тб либо RAID большего объёма, вам придётся использовать файловую таблицу GPT а соответственно ставить голую систему на которую придётся накатить Proxmox в ручную.

Почему именно Proxmox?
  1. Возможность использования как KVM так и OpenVZ.
  2. Web vnc-client.
  3. Возможность кластеризации.
  4. Неплохая система бэкапов виртуальных машин.

Установка



Для начала пропишем репозитарий.
cat >> /etc/apt/sources.list <<EOF
# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian squeeze pve
EOF

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

apt-get update
Обновим систему.
apt-get update
apt-get autoremove
apt-get dist-upgrade -y
Теперь установим ядро Proxmox VE.
apt-get install \
 `apt-cache search pve-kernel | egrep -E \
 "^pve-kernel-|\-pve\ \-\ The\ Proxmox\ PVE\ Kernel\ Image" \
 | awk '{ print $1 }' | head -n1` -y
и если хотите так сказать опционально headers.
apt-get install \
 `apt-cache search pve-headers | egrep -E \
 "^pve-headers-|\-pve\ \-\ The\ Proxmox\ PVE\ Kernel\ Image" \
 | awk '{ print $1 }' | head -n1` -y
Теперь перезагрузимся, и удостоверимся что загрузилось нужное нам ядро.

uname -r
2.6.32-6-pve

Настало время установки самого Proxmox VE.
apt-get install \
 `apt-cache search proxmox-ve | egrep -E \
 "^proxmox-ve-|\-\ The\ Proxmox\ PVE\ Kernel\ Image" \
 | awk '{ print $1 }' | head -n1` -y
Подключим VirtualHost pve-redirect в apache2
a2ensite pve-redirect.conf
Enabling site pve-redirect.conf.
Run '/etc/init.d/apache2 reload' to activate new configuration!

И перезапустим apache2
/etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .
Установим еще несколько полезных программ и сервисов.
apt-get install ntp ssh lvm2 postfix ksm-control-daemon vzprocps -y
При установке Postfix задаст пару вопросов, я предпочёл ответить так:


По окончании операции можно подключиться к WEB интерфейсу, в моём случае http://192.168.0.109, он меня автоматом редиректит на https://192.168.0.109:8006/#v1:0:18:4:::::

Залогинимся используя root-овую учётную запись

 из новшеств, появилась консоль сервера
так же если ваше хранилище данных находится в месте отличном от /var/lib/vz советую указать его в ручную.
Теперь чтобы виртуальные машины видели локальную сеть, добавим наш сетевой интерфейс в моём случае eth0 в бридж(vmbr0), и перенесём на него ip адрес.
Эти изменения применяться после перезагрузки.