Віртуалізації

Матеріал з ALT Linux Wiki

Віртуалізація

Віртуалізацією далі будемо вважати введене певним чином відокремлення операційної системи від "заліза" на якому вона працює. Таке відокремлення може бути повним або частковим. Багато цікавого та пізнавального можна прочитати про принципи та приклади реалізації цієї ідеї на просторах світових тенет. :)

На рівні ядра у 6й гілці комплектів від ALT Linux Team можна скористатися як частковою так і повною віртуалізацією. Прикладом неповної віртуалізації можуть бути ядра, що мають у назві частку ovz (OVZ). А прикладом повної віртуалізації може бути використання можливостей KVM.

Щоб скористатися можливостями KVM, окрім модуля вашого ядра треба буде встановити libvirt. Якщо процесор вашої апаратної системи підтримує віртуалізацію апаратно, то вже можна починати працювати з віртуальними машинами.

Визначити чи запущено у вас демона віртуалізації ви можете командою:

service libvirtd status
 libvirtd is running

або

# virsh list --all
 ID Назва           Статус
----------------------------------



Команды для управления QEMU-KVM

Чтобы постоянно не вводить -c qemu:///system можно добавить:

export LIBVIRT_DEFAULT_URI=qemu:///system
virsh -c qemu:///system list --all #листинг
virsh -c qemu:///system start vsrv1 #пуск
virsh -c qemu:///system shutdown vsrv1 #shutdown
virsh -c qemu:///system destroy vsrv1 #выключить по питанию
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку
virsh -c qemu:///system autostart --disable # удалить из автозагрузки
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp  # запустить команду в qemu мониторе
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.

Расположение основных конфигов

* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и  виртуальных машин.

Созданеи ВПС

ВПС можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно. Для новой системы со сразу установленными значениями virtio в конфиге. Необходимо в процессе установки добавить драйвера. Качаем дискету с драйверами:

{{{ wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-1.1.16.vfd }}}

Создание ВПС Windows с поддержкой virtio

Создаем LVM раздел нужного размера:

lvcreate -L 10G -n win2008 main

Сoздаем конфиг ВПС:

virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio\ 
--disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy \
--cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO \
--network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows \
--os-variant=win2k8 --arch=i686 --cpu host -v --autostart


где:

  • -n test_win2008 - имя ВПС
  • -r 1024 - к-во выделяемой памяти
  • -v использовать аппаратную виртуализацию
  • --arch=i686 - используемая архитектура
  • --cpu host - передает в ВПС все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.

Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)

Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты. Windows Server 2003 и Windows XP Нажимаем F6 и ставим драйвера. Windows 2008 Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".

Создание ВПС без virtio

Windows 2008 32bit на LVM:

{{{ lvcreate -L 10G -n win2008 main

virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate --vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686 }}} ALTLinux x86_64 на LVM :

{{{ lvcreate -L10G -n altlinux main

virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux --os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64 }}}

FreeBSD 8.1 на LVM :

{{{ lvcreate -L20G -n freebsd main

virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 --os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686

}}}


После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например vncviewer test.domain.com:5902 ) и вводим пароль указанный в строке "vnc,password="

Удаление ВПС

Выполняем остановку и удаление VPS в KVM:


{{{ virsh -c qemu:///system destroy test_vps #выключить по питанию virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется) }}}


И удаляем раздел LVM:

{{{ lvremove /dev/main/test_vps }}}

Сменить диск в приводе на VPS без перезагрузки

{{{ virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc }}}

http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug