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

Виртуальные машины и среды исполнения

Модератор: Olej

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 20 окт 2011, 09:23

2Olej, огромный респектище AKA примите моё выражение высочайшего уважения :-)

И больше всего интересует последнее ибо Лучшая практика(Best practice) это не "как начать", а "как сделать" т.е. пример практической реализации.
Sergey371 писал(а):На данный момент сложилась неплохая ситуация с точки зрения проб: не важно какая система эмуляции, симулируемая система держится в образе диска или lvm, а уж в какой среде запустишь там и получишь.
Вот тут не совсем так, у меня образы машин для pv содержатся в файлах-разделах(файловых системах), создаваемых как:

Код: Выделить всё

dd if=/dev/zero of=fc15.img bs=1M seek=8192 count=1
mkfs.ext3 fc15.img 
А KVM/QEMU работает с образами дисков.
Вопрос Лучшей практики: как и чем надо(лучше, с практической точки зрения: производительность и/или надёжность) создавать, держать и обслуживать(создавать, конвертировать, переразмечать и изменять размер и т.д. и т.п.) дисковые образы ВМ?

Для себя открыл интересную утилиту qemu-img(xen-runtime ставит линк qemu-img-xen на негоже).

Можно конечно загрузится с какого нибудь LiveCD c с имеющимися редакторами разделов(Partition Magic, Clonezilla и т.д. и т.п.) и ими уже произвести изменения, но это как то "в Москву через Хабаровск".

Я пока ориентируюсь на способ получения копий физических машин изложенном в Poor man’s P2V:
С LiveCD(или по PXE) на клонируемой машине выполняется:

Код: Выделить всё

dd if=/dev/sda | ssh root@virthost 'cat > /var/lib/libvirt/images/guest.img'
А полученный образ уже запускается в VM(учитывая возможность конвертации образа можно даже запустить копии в разных системах виртуализации).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 13:50

Sergey371 писал(а): И больше всего интересует последнее ибо Лучшая практика(Best practice) это не "как начать", а "как сделать" т.е. пример практической реализации.
Sergey371 писал(а):На данный момент сложилась неплохая ситуация с точки зрения проб: не важно какая система эмуляции, симулируемая система держится в образе диска или lvm, а уж в какой среде запустишь там и получишь.
Вот тут не совсем так, у меня образы машин для pv содержатся в файлах-разделах(файловых системах), создаваемых как:

Код: Выделить всё

dd if=/dev/zero of=fc15.img bs=1M seek=8192 count=1
mkfs.ext3 fc15.img 
А KVM/QEMU работает с образами дисков.
Вопрос Лучшей практики: как и чем надо(лучше, с практической точки зрения: производительность и/или надёжность) создавать, держать и обслуживать(создавать, конвертировать, переразмечать и изменять размер и т.д. и т.п.) дисковые образы ВМ?
Интересная особенность (это не совсем в тему), что VM QEMU можно запускать не только с файла-образа ОС командой типа:

Код: Выделить всё

$ qemu -m 100M -hda os-file -cdrom /dev/cdrom  -boot c -localtime 
но и из реального диска командой типа:

Код: Выделить всё

# qemu -m 100M -hda /dev/sda -cdrom /dev/cdrom  -boot c -localtime 
тогда вы попадаете через GRUB в тот же образ системы, который грузится и при реальной загрузке.
Это иногда любопытно: одна и та же система, но может грузиться как реально, так и виртуально... например, при эмуляции работы с другим типом сетевой карты (которой нет в реале).
P.S. характерно, что загрузить образ уже с указанного раздела диска (минуя GRUB), типа:

Код: Выделить всё

# qemu -m 100M -hda /dev/sda1 -cdrom /dev/cdrom  -boot c -localtime 
- у меня не получилось ... но я сильно долго с этим и не заморачивался.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 14:04

Sergey371 писал(а): Для себя открыл интересную утилиту qemu-img(xen-runtime ставит линк qemu-img-xen на негоже).
Я тоже её оценил ;-)

Код: Выделить всё

$ qemu-img create minix3-disk 90M
Formatting 'minix3-disk', fmt=raw, size=92160 kB
Sergey371 писал(а): Можно конечно загрузится с какого нибудь LiveCD c с имеющимися редакторами разделов(Partition Magic, Clonezilla и т.д. и т.п.) и ими уже произвести изменения, но это как то "в Москву через Хабаровск".
Это не всегда совсем уж так грустно :lol:
А если у вас просто нет установленной той системы, образ которой вы хотите создать? (Solaris 11.x, QNX 6.5, ...)
Тогда вполне приемлемо начинать именно с тривиальной установки ОС с LiveCD:

Код: Выделить всё

$ qemu -m 100M -hda os-disk -cdrom /dev/cdrom  -boot d -localtime

... и покатилась загрузка...

Потом я часто такую draft-заготовку новой ОС просто копирую-прячу, и в дальнейшем использую её как болванку для новых вариантов ОС... её можно растиражировать в нужное число клонов.

Иногда удобно файлы-образы создавать под VirtualBox - у него приятные интерфейсы: и GUI и командный...
За счёт совместимости форматов образов потом этот же образ используется и QEMU и VirtualBox.
Sergey371 писал(а): Я пока ориентируюсь на способ получения копий физических машин изложенном в Poor man’s P2V:
С LiveCD(или по PXE) на клонируемой машине выполняется:

Код: Выделить всё

dd if=/dev/sda | ssh root@virthost 'cat > /var/lib/libvirt/images/guest.img'
А полученный образ уже запускается в VM(учитывая возможность конвертации образа можно даже запустить копии в разных системах виртуализации).
Этот способ для меня новый ... но, если подумать, он очевидный и приятный ;-)
Надо будет попробовать. Спасибо за способ :-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 14:16

Olej писал(а): Иногда удобно файлы-образы создавать под VirtualBox - у него приятные интерфейсы: и GUI и командный...
За счёт совместимости форматов образов потом этот же образ используется и QEMU и VirtualBox.
Обратите внимание на множество форматов (и совместимость с другими VM) которые поддерживает QEMU:

Код: Выделить всё

$ man qemu-img
...
Supported image file formats:

       raw Raw disk image format (default). This format has the advantage of being simple and easily exportable
           to all other emulators. If your file system supports holes (for example in ext2 or ext3 on Linux or
           NTFS on Windows), then only the written sectors will reserve space. Use "qemu-img info" to know the
           real size used by the image or "ls -ls" on Unix/Linux.

       host_device
           Host device format. This format should be used instead of raw when converting to block devices or
           other devices where "holes" are not supported.

       qcow2
           QEMU image format, the most versatile format. Use it to have smaller images (useful if your
           filesystem does not supports holes, for example on Windows), optional AES encryption, zlib based
           compression and support of multiple VM snapshots.
...

       qcow
           Old QEMU image format. Left for compatibility.
...

       cow User Mode Linux Copy On Write image format. Used to be the only growable image format in QEMU. It is
           supported only for compatibility with previous versions. It does not work on win32.

       vdi VirtualBox 1.1 compatible image format.

       vmdk
           VMware 3 and 4 compatible image format.
...

       vpc VirtualPC compatible image format (VHD).

       cloop
           Linux Compressed Loop image, useful only to reuse directly compressed CD-ROM images present for
           example in the Knoppix CD-ROMs.

А учитывая возможности преобразовывать (convert) форматы образов туда-сюда ;-) :

Код: Выделить всё

$ man qemu-img
...
SYNOPSIS
       usage: qemu-img command [command options]

OPTIONS
       The following commands are supported:

       check [-f fmt] filename
       create [-f fmt] [-o options] filename [size]
       commit [-f fmt] filename
       convert [-c] [-f fmt] [-O output_fmt] [-o options] filename [filename2 [...]] output_filename
       info [-f fmt] filename
       snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
...
- образами VM в QEMU можно жонглировать достаточно вольно ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 14:54

И раз уж речь перешла на QEMU, то нужно бы вписать здесь для полноты, что для QEMU есть множество GUI-фронтэндов от сторонних производителей, и некоторые (из пробованных мною) очень даже неплохи для управления своими VM, особенно когда их много...

1. Virtual Machine Manager - это который непосредственно "из коробки" RedHat / Fedora...

Код: Выделить всё

[olej@notebook ~]$ which virt-manager
/usr/bin/virt-manager
2. Qemu Launcher - GTK+ front-end to QEMU
Вот страничка исходных кодов этого проекта: http://qemulauncher.sourceforge.net/.

3. Qemulator - один из весьма известных проектов: http://qemulator.createweb.de/Qemulator. Иногда он включается (включался?) в состав дистрибутивов Linux (Debian). В исходных кодах можно загрузить отсюда: http://sourceforge.net/projects/qtemu/f ... 2/download. Легко устанавливается и имеет интуитивно понятный интерфейс для создания виртуальных машин.

4. AQEMU:
http://www.nclug.ru/content.php?review.170
Вас приветствует Северо-Кавказская Группа Пользователей Linux!
- это от разработчиков. :-o

Берётся здесь:
http://sourceforge.net/projects/aqemu/
У меня он, правда потребовал установки 2-х дополнительных библиотек:
ftp://rpmfind.net/linux/fedora/releases ... /libvncser ver-0.9.1-3.fc10.i386.rpm
ftp://rpmfind.net/linux/fedora/releases ... /lzo-minil zo-2.03-1.fc10.i386.rpm
- вы можете (там же) взять более свежие релизы, но меня устроили эти.

Хороший инсталлятор... хороший русский язык... :lol:

У этой обёртки QEMU изумляет: глубина возможностей, очень хорошо продумано, очень хорошо исполнено :!:

P.S. я не приписал туда VirtualBox, который в заметной мере можно считать "обёрткой QEMU от Sun Microsystems" ... хотя там много доделано...
Но самое главное отличие от перечисленных выше GUI: VirtualBox, в отличие от них, не требует отдельной установки пакета QEMU: они его используют, а он его включает ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 15:28

Olej писал(а):P.S. я не приписал туда VirtualBox, который в заметной мере можно считать "обёрткой QEMU от Sun Microsystems" ... хотя там много доделано...
Но самое главное отличие от перечисленных выше GUI: VirtualBox, в отличие от них, не требует отдельной установки пакета QEMU: они его используют, а он его включает ;-)
Кстати, ещё раз о VirtualBox :
- они хоть сами и пишут, что VirtualBox "использует код QEMU"(c)...
- но они там что-то серьёзно дополнительно чудят, в частности, собирают при инсталляции и запускают модули ядра :

Код: Выделить всё

[olej@notebook ~]$ lsmod | grep vbox
vboxnetadp              5900  0 
vboxnetflt             15855  0 
vboxdrv               185493  2 vboxnetadp,vboxnetflt
- чего QEMU не делает и делать не собирается: всю работу с QEMU можно провести без права root! - это при условии, естественно, что вы не используете с QEMU KVM, который модуль и потребует рутовых прав:

Код: Выделить всё

[olej@notebook ~]$ lsmod | grep kvm
kvm_intel              34764  0 
kvm                   205352  1 kvm_intel

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 16:58

Olej писал(а): 1. Virtual Machine Manager - это который непосредственно "из коробки" RedHat / Fedora...

Код: Выделить всё

[olej@notebook ~]$ which virt-manager
/usr/bin/virt-manager
И ещё раз о Virtual Machine Manager...
У меня при нормальном его запуске (иконкой на рабочем столе - которая создалась при инсталляции yum-ом!) он нещадно ругается:
Unable to open a connection to the libvirt management daemon.

Libvirt URI is: qemu:///system

Verify that:
- The 'libvirtd' daemon has been started
Но это всё неправда :-? :

Код: Выделить всё

[olej@notebook ~]$ ps -A | grep libvirt
11701 pts/1    00:01:00 libvirtd
А ругается он из-за аутентификации, с которой нужно пободаться, конфигурируя вот эти штуки ;-) :

Код: Выделить всё

[root@notebook libvirt]# pwd
/etc/libvirt
[root@notebook libvirt]# ls *.conf
libvirtd.conf  lxc.conf  qemu.conf
Зато от root с запуском Virtual Machine Manager (из терминала) - ну никаких проблем! :lol:

И ещё по поводу root:
- как я писал уже, QEMU самому root не нужен...
- но это до тех пор, пока вам не понадобится сеть (а зачем вам VM если у неё нет сети - не пойму :mrgreen:)...
- и если вы захотите создавать TUN сетевой интерфейс по дефаулту, при запуске QEMU, то вам тут же придётся запускать QEMU от root,
- но это проблема не QEMU, а проблема TUN!
- можно использовать сеть (TUN) и запускать QEMU не как root? можно, но для этого вам нужно сначала командно создать сетевой интерфейс TUN с соответствующими правами + только потом использовать этот TUN в QEMU, запущенном не от root...
- всё это есть детально, с примерами - в той 1-й показанной мною статье о MINIX 3 под QEMU.

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Sergey371 » 20 окт 2011, 20:07

К вопросу о рутовых правах: не очень понимаю смысл в туннельном интерфейсе(а для чего он вообще?), под Федорой логичней использовать системные скрипты как описано в Features/XenPvopsDom0:
3. Configure a bridge device by setting /etc/sysconfig/network-scripts/ifcfg-virbr0:

Код: Выделить всё

DEVICE=virbr0
TYPE=Bridge
ONBOOT=yes
USERCTL=no
BOOTPROTO=dhcp
NM_CONTROLLED=no
4. Configure eth0 to be a member of the bridge /etc/sysconfig/network-scripts/ifcfg-eth0:

Код: Выделить всё

DEVICE=eth0
HWADDR=[XX:XX:XX:XX:XX:XX]
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
BRIDGE=virbr0
NM_CONTROLLED=no

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 20 окт 2011, 21:20

Sergey371 писал(а):К вопросу о рутовых правах: не очень понимаю смысл в туннельном интерфейсе(а для чего он вообще?), под Федорой логичней использовать системные скрипты как описано в Features/XenPvopsDom0:
3. Configure a bridge device by setting /etc/sysconfig/network-scripts/ifcfg-virbr0:

Код: Выделить всё

DEVICE=virbr0
TYPE=Bridge
ONBOOT=yes
USERCTL=no
BOOTPROTO=dhcp
NM_CONTROLLED=no
4. Configure eth0 to be a member of the bridge /etc/sysconfig/network-scripts/ifcfg-eth0:

Код: Выделить всё

DEVICE=eth0
HWADDR=[XX:XX:XX:XX:XX:XX]
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
BRIDGE=virbr0
NM_CONTROLLED=no
Тунельный интерфейс это один из самых ранних и дефаултных механизмов, которые использовал QEMU - он сам при старте может создавать такой интерфейс. Способ, который вы показали, я не знаю, надо пробовать.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Виртуализация

Непрочитанное сообщение Olej » 21 окт 2011, 01:42

Olej писал(а): Кстати, ещё раз о VirtualBox :
https://forums.virtualbox.org/ - это их (Oracle) форум относительно VirtualBox - огромное количество тем.

https://www.virtualbox.org/wiki/Downloads - это страница где всё можно взять.

Несмотря на то, что оно всё под мудрёной лицензией, и ставится из исполнимого файла *.run, здесь же - исходники VirtualBox : http://download.virtualbox.org/virtualb ... .4.tar.bz2

Где-то там же (найду - добавлю) я брал - целый набор файлов-образов нескольких разных OS в качестве начального приближения (чтоб не ставить с LiveCD, о чём здесь уже говорилось).

P.S. вот эти образы:
http://www.oracle.com/technetwork/commu ... index.html
Pre-Built Developer VMs (for Oracle VM VirtualBox)

Там не так много, как мне почему-то казалось ... но там из любопытных есть Solaris 11.

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей