Віртуалізації: відмінності між версіями
Dobr (обговорення | внесок) (Створена сторінка: =Віртуалізація= '''Команды для управления QEMU-KVM''' Чтобы постоянно не вводить -c qemu:///system мож...) |
Dobr (обговорення | внесок) |
||
(Не показані 6 проміжних версій 2 користувачів) | |||
Рядок 1: | Рядок 1: | ||
=Віртуалізація= | =Віртуалізація= | ||
Віртуалізацією далі будемо вважати введене певним чином відокремлення операційної системи від "заліза" на якому вона працює. Таке відокремлення може бути повним або частковим. Багато цікавого та пізнавального можна прочитати про принципи та приклади реалізації цієї ідеї на просторах світових тенет. :) | |||
На рівні ядра у 6й гілці комплектів від '''ALT Linux Team''' можна скористатися як частковою так і повною віртуалізацією. Прикладом неповної віртуалізації можуть бути ядра, що мають у назві частку <tt>ovz</tt> ([http://wiki.openvz.org/Main_Page OVZ]). А прикладом повної віртуалізації може бути використання можливостей [http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine KVM]. | |||
Щоб скористатися можливостями '''KVM''', окрім модуля вашого ядра треба буде встановити <tt>libvirt</tt>. Якщо процесор вашої апаратної системи підтримує віртуалізацію апаратно, то вже можна починати працювати з віртуальними машинами. | |||
Визначити чи запущено у вас демона віртуалізації ви можете командою: | |||
<tt>service libvirtd status | |||
libvirtd is running</tt> | |||
або | |||
# virsh list --all | |||
ID Назва Статус | |||
---------------------------------- | |||
==Команды для управления QEMU-KVM== | |||
Чтобы постоянно не вводить -c qemu:///system можно добавить: | Чтобы постоянно не вводить -c qemu:///system можно добавить: | ||
export LIBVIRT_DEFAULT_URI=qemu:///system | export LIBVIRT_DEFAULT_URI=qemu:///system | ||
virsh -c qemu:///system list --all #листинг | |||
virsh -c qemu:///system list --all #листинг | virsh -c qemu:///system start vsrv1 #пуск | ||
virsh -c qemu:///system start vsrv1 #пуск | virsh -c qemu:///system shutdown vsrv1 #shutdown | ||
virsh -c qemu:///system shutdown vsrv1 #shutdown | virsh -c qemu:///system destroy vsrv1 #выключить по питанию | ||
virsh -c qemu:///system destroy vsrv1 #выключить по питанию | virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется) | ||
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется) | virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку | ||
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку | virsh -c qemu:///system autostart --disable # удалить из автозагрузки | ||
virsh -c qemu:///system autostart --disable # удалить из автозагрузки | virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе | ||
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе | virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине. | ||
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине. | |||
== Расположение основных конфигов == | == Расположение основных конфигов == | ||
Рядок 30: | Рядок 49: | ||
=== Создание ВПС Windows с поддержкой virtio === | === Создание ВПС Windows с поддержкой virtio === | ||
Создаем LVM раздел нужного размера: | |||
lvcreate -L 10G -n win2008 main | 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 | 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 - имя ВПС | * -n test_win2008 - имя ВПС | ||
-r 1024 - к-во выделяемой памяти | * -r 1024 - к-во выделяемой памяти | ||
-v использовать аппаратную виртуализацию | * -v использовать аппаратную виртуализацию | ||
--arch=i686 - используемая архитектура | * --arch=i686 - используемая архитектура | ||
--cpu host - передает в ВПС все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться. | * --cpu host - передает в ВПС все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться. | ||
Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1) | |||
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты. | Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты. |
Поточна версія на 19:18, 10 лютого 2012
Віртуалізація
Віртуалізацією далі будемо вважати введене певним чином відокремлення операційної системи від "заліза" на якому вона працює. Таке відокремлення може бути повним або частковим. Багато цікавого та пізнавального можна прочитати про принципи та приклади реалізації цієї ідеї на просторах світових тенет. :)
На рівні ядра у 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