The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка Xen 3.3 с ядром 2.6.27 на Ubuntu 8.10 (x86_64) (ubuntu linux xen)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: ubuntu, linux, xen,  (найти похожие документы)
From: Сгибнев Михаил <msgibnev(ого-го какая собака)gmail.com> Date: Mon, 15 Jan 2010 17:02:14 +0000 (UTC) Subject: Установка Xen 3.3 с ядром 2.6.27 на Ubuntu 8.10 (x86_64) Оригинал: http://dreamcatcher.ru/linux/005_xen.html Автор: Installing Xen 3.3 With Kernel 2.6.27 On Ubuntu 8.10 (x86_64) Перевод: Сгибнев Михаил В этом руководства показывается, как установить Xen 3.3 на хост Ubuntu 8.10(dom0). Xen 3.3 доступен в репозитарии Ubuntu 8.10, но ядро Ubuntu 8.10 (2.6.27-x) используется как domU, то есть выступает в роли гостевой машины, но не на уровне dom0. Поэтому мы должны собрать наше собственное dom0 ядро. Как обычно, не дается никаких гарантий и вы предупреждены о возможных последствиях. Предварительное примечание Я использую систему Ubuntu 8.10 x86_64 с именем server1.example.com и IP адресом 192.168.0.100 в качестве dom0. В роли domU будет выступать Debian Lenny. В этом руководстве будет показано, как создать image-based виртуальную машину и LVM-based виртуальную машину. Все действия будут выполняться с привилегиями пользователя root. Устанавливаем Xen Сперва необходимо обновить систему: apt-get upgrade И установить последнюю версию ядра из репозитария Ubuntu: apt-get install linux-image-server linux-server Затем, установим Xen 3.3 и все необходимое для сборки ядра dom0: apt-get install ubuntu-xen-server build-essential libncurses5-dev gawk mercurial Скачиваем исходные тексты ядра 2.6.27 Xen mkdir -p ~/build/linux-2.6.27-xen cd /usr/src/ hg clone http://xenbits.xensource.com/ext/linux-2.6.27-xen.hg И конфигурируем это ядро: cd linux-2.6.27-xen.hg make O=~/build/linux-2.6.27-xen/ menuconfig В меню конфигурации ядра выберите следущие опции: General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLAB Processor type and features ---> Subarchitecture Type (PC-compatible) ---> (X) Enable Xen compatible kernel Bus options (PCI etc.) ---> [*] PCI support [*] Xen PCI Frontend [ ] Xen PCI Frontend Debugging (NEW) Измените 802.1d Ethernet Bridging на <*> 802.1d Ethernet Bridging: Networking support ---> Networking options ---> <*> 802.1d Ethernet Bridging Отключите поддержку 10000 Mbit Ethernet(в противном случае можно получить ошибку при сборке): Device Drivers ---> [*] Network device support ---> [ ] Ethernet (10000 Mbit) ---> Затем обратимся к разделу Xen (вы должны выбрать версию, совместимую с Xen (3.0.4 или более позднюю) вместо версии Xen (3.0.2 или более позднюю)): Device Drivers ---> XEN ---> [*] Privileged Guest (domain 0) <*> Backend driver support (NEW) <*> Block-device backend driver (NEW) <*> Block-device tap backend driver (NEW) <*> Network-device backend driver (NEW) (8) Maximum simultaneous transmit requests (as a power of 2) (NEW) [ ] Pipelined transmitter (DANGEROUS) (NEW) < > Network-device loopback driver (NEW) <*> PCI-device backend driver (NEW) PCI Backend Mode (Virtual PCI) ---> [ ] PCI Backend Debugging (NEW) < > TPM-device backend driver (NEW) SCSI backend driver (NEW) Block-device frontend driver Network-device frontend driver Network-device frontend driver acceleration for Solarflare NICs (NEW) SCSI frontend driver (NEW) <*> User-space granted page access driver (NEW) <*> Framebuffer-device frontend driver (NEW) <*> Keyboard-device frontend driver (NEW) [*] Disable serial port drivers (NEW) <*> Export Xen attributes in sysfs (NEW) (256) Number of guest devices (NEW) Xen version compatibility (3.0.4 and later)---> После этого мы компилируем и устанавливаем ядро: make O=~/build/linux-2.6.27-xen/ make O=~/build/linux-2.6.27-xen/ modules_install install Обратим свой взор на каталог /boot: root@server1:~# ls -l /boot total 78364 -rw-r--r-- 1 root root 504280 2009-01-29 22:23 abi-2.6.27-11-server -rw-r--r-- 1 root root 503560 2008-11-04 22:22 abi-2.6.27-7-server -rw-r--r-- 1 root root 85313 2009-01-29 22:23 config-2.6.27-11-server -rw-r--r-- 1 root root 87256 2009-02-12 20:51 config-2.6.27.5 -rw-r--r-- 1 root root 85319 2008-11-04 22:22 config-2.6.27-7-server drwxr-xr-x 2 root root 4096 2009-02-12 22:28 grub -rw-r--r-- 1 root root 8983433 2009-02-12 22:28 initrd.img-2.6.27-11-server -rw-r--r-- 1 root root 8979323 2009-02-12 22:26 initrd.img-2.6.27-7-server drwx------ 2 root root 16384 2009-02-12 19:30 lost+found -rw-r--r-- 1 root root 124152 2008-09-11 22:11 memtest86+.bin -rw-r--r-- 1 root root 1354638 2009-01-29 22:23 System.map-2.6.27-11-server -rw-r--r-- 1 root root 1258568 2009-02-12 20:51 System.map-2.6.27.5 -rw-r--r-- 1 root root 1351952 2008-11-04 22:22 System.map-2.6.27-7-server -rw-r--r-- 1 root root 1130 2009-01-29 22:27 vmcoreinfo-2.6.27-11-server -rw-r--r-- 1 root root 1129 2008-11-04 22:25 vmcoreinfo-2.6.27-7-server -rw-r--r-- 1 root root 2341536 2009-01-29 22:23 vmlinuz-2.6.27-11-server -rw-r--r-- 1 root root 2192827 2009-02-12 20:51 vmlinuz-2.6.27.5 -rw-r--r-- 1 root root 2338976 2008-11-04 22:22 vmlinuz-2.6.27-7-server -rw-r--r-- 1 root root 470144 2008-10-06 20:15 xen-3.3.gz root@server1:~# Как вы видите, появилось новое ядро 2.6.27.5, без ramdisk, поэтому собираем его: depmod 2.6.27.5 update-initramfs -c -k 2.6.27.5 И обновляем загрузчик: update-grub После этого открываем файл /etc/modules и убедимся в том, что в файле присутствует строка loop max_loop=64(этот шаг необходим только при создании image-based виртуальной машины): vi /etc/modules [...] loop max_loop=64 После чего перезагружаем машину: reboot Выполним команду uname -r для того, чтобы убедиться в правильной установке ядра: root@server1:~# uname -r 2.6.27.5 root@server1:~# Создаем Image-Based виртуальную машину Для создания виртуальных машин мы будем использовать xen-tools, так как этот инструмент справляется с задачей легко и непринужденно. Для получения дополнительной информации, обратитесь к этому документу. Теперь мы редактируем файл /etc/xen-tools/xen-tools.conf. В этом файле содержатся значения по умолчанию для скрипта xen-create-image, которые будут использованы, если вы не измените их из командной строки. Я изменил нижеследущее, оставив остальное нетронутым: [...] dir = /home/xen [...] memory = 256Mb [...] dist = lenny # Default distribution to install. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] kernel = /boot/vmlinuz-2.6.27-11-server initrd = /boot/initrd.img-2.6.27-11-server [...] mirror = http://ftp.de.debian.org/debian/ [...] serial_device = hvc0 [...] disk_device = xvda #default [...] В строках kernel и initrd мы указываем не то ядро, которое мы собрали в предидущей главе, так как оно предназначено только для работы в dom0 и не будет работать как ядро domU. Пожалуйста, используйте одно из ядер Ubuntu, например - 2.6.27-11-server. Так как дефолтное ядро Ubuntu уже собрано с поддержкой Xen, нам нет необходимости в повторной сборке. Параметр dir указывает нам на каталог, где будут храниться виртуальные машины. dist указывает на то, какой дистрибутив будет установлен - в данном случае Debian Lenny Параметр passwd = 1 указывает на необходимость задания пароля для root при создании нового домена. Убедитесь, что вы указали сетевые параметы - gateway, netmask и broadcast address. Если вы этого не сделали и не указали их в командной строке, то рискуете осаться без сети на виртуальной машине. Очень важным параметром является serial_device = hvc0 (не xvc0 или tty1!), если вы допустите ошибку, то не сможете попасть на консоль виртуальной машины. Прежде, чем мы начнем, создадим каталог для хранения виртуальных машин: mkdir /home/xen Ну, создаем наш первый домен - xen1.example.com, с адресом 192.168.0.101: xen-create-image --hostname=xen1.example.com --size=4Gb --swap=256Mb --ip=192.168.0.101 --arch=amd64 --role=udev Если вы указываете какие-либо параметры в командной строке, то они имеют больший приоритет, чем указанные в файле /etc/xen-tools/xen-tools.conf. Еще раз проверьте, что добавили в файл функцию --role=udev, иначе виртуальная машина не загрузится. Для получения более детальной информации, воспользуйтесь командой man xen-create-image. Процесс создания виртуальной машины займет несколько минут. В ходе выполнения будет наблюдаться примерно следущее: root@server1:~# xen-create-image --hostname=xen1.example.com --size=4Gb --swap=2 56Mb --ip=192.168.0.101 --arch=amd64 --role=udev General Information - - - - - - - - - - Hostname : xen1.example.com Distribution : lenny Partitions : swap 256Mb (swap) / 4Gb (ext3) Image type : sparse Memory size : 256Mb Kernel path : /boot/vmlinuz-2.6.27-11-server Initrd path : /boot/initrd.img-2.6.27-11-server Networking Information - - - - - - - - - - - IP Address 1 : 192.168.0.101 [MAC: 00:16:3E:1E:C4:E1] Netmask : 255.255.255.0 Broadcast : 192.168.0.255 Gateway : 192.168.0.1 Creating partition image: /home/xen/domains/xen1.example.com/swap.img Done Creating swap on /home/xen/domains/xen1.example.com/swap.img Done Creating partition image: /home/xen/domains/xen1.example.com/disk.img Done Creating ext3 filesystem on /home/xen/domains/xen1.example.com/disk.img Done Installation method: debootstrap Done Running hooks Done Role: udev File: /etc/xen-tools/role.d/udev Role script completed. Creating Xen configuration file Done Setting up root password Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully All done Logfile produced at: /var/log/xen-tools/xen1.example.com.log root@server1:~# Обратимся к файлу /etc/xen/xen1.example.com.cfg, чтобы посмотреть - чтоже там такое? # # Configuration file for the Xen instance xen1.example.com, created # by xen-tools 3.9 on Fri Feb 13 00:28:34 2009. # # # Kernel + memory size # kernel = '/boot/vmlinuz-2.6.27-11-server' ramdisk = '/boot/initrd.img-2.6.27-11-server' memory = '256' # # Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'file:/home/xen/domains/xen1.example.com/swap.img,xvda1,w', 'file:/home/xen/domains/xen1.example.com/disk.img,xvda2,w', ] # # Hostname # name = 'xen1.example.com' # # Networking # vif = [ 'ip=192.168.0.101,mac=00:16:3E:1E:C4:E1' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' Обратите внимание: если у вас dual-core или quad-core CPU и вы хотите, чтобы виртуальная машина использовала все ядра процессора, то добавьте к файлу конфигурации vcpus = '2' или vcpus = '4'. Перед первым запуском виртуальной машины вам необходимо примонтировать хранилище и скопировать в него ядро domU (команда xen-create-image скопировала в виртуальную машину ядро dom0 kernel 2.6.27.5, а нам его необходимо заменить на 2.6.27-11-server). mount -o loop /home/xen/domains/xen1.example.com/disk.img /mnt cd /mnt/lib/modules/ cp -pfr /lib/modules/2.6.27-11-server/ . cd umount /mnt Для запуска вируальной машины выполните команду: xm create /etc/xen/xen1.example.com.cfg Для подключения к консоли виртуальной машины, выполните: xm console xen1.example.com Для выхода из консоли нажмите CTRL+], или CTRL+5 if если вы используете PuTTY, или используйте SSH для подключения к 192.168.0.101. Для получения списка виртуальных машин, испольуйте команду xm list: root@server1:~# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 3499 2 r----- 2826.0 xen1.example.com 22 256 1 -b---- 5.8 root@server1:~# Для выключения виртуальной машины, испольуйте команду xm shutdown xen1.example.com. Если вы хотите, чтобы виртуальная машина стартовала при следующей начальной загрузке корневой ситемы, то выполните команду: ln -s /etc/xen/xen1.example.com.cfg /etc/xen/auto Приведу список самых популярных команд: * xm create -c /path/to/config - Старт виртуальной машины. * xm shutdown - Останов виртуальной машины. * xm destroy - Немедленный останов виртуальной машины. Аналаогично нажатию кнопки питания. * xm list - Список запущенных виртуальных машин. * xm console - Подключение к виртуальной машине. * xm help - Список всех команд. Для того, чтобы просмотреть список виртуальных машин, созданных утилитой xen-create-image, воспользуйтесь командой xen-list-images: root@server1:~# xen-list-images Name: xen1.example.com Memory: 256 IP: 192.168.0.101 root@server1:~# Создаем LVM-Based виртуальную машину В этой главе мы создадим виртуальную машину использующую в качестве хранилища раздел LVM орневого домена, вместо файла. Виртуальные машины, использующие в качестве хранилища файл, черезвычайно медленны и сильно нагружают систему ввода/вывода. В данном примере, я использую Ubuntu 8.10 с LVM группой /dev/vg0, размером 465GB. /dev/vg0 содержит два логических раздела, /dev/vg0/root и /dev/vg0/swap_1, которые занимают 48GB простванства, а остельное может быть использовано для создания логических разделов виртуальных машин. root@server1:~# vgdisplay --- Volume group --- VG Name vg0 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 11 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 465.26 GB PE Size 4.00 MB Total PE 119106 Alloc PE / Size 12396 / 48.42 GB Free PE / Size 106710 / 416.84 GB VG UUID 8t178I-M2Fa-T9U6-8b76-Svjy-E7NW-fYIK1D root@server1:~# root@server1:~# lvdisplay --- Logical volume --- LV Name /dev/vg0/root VG Name vg0 LV UUID CtAiSe-jr1F-Ibvj-80zR-DRnK-dgPz-OPoxnv LV Write Access read/write LV Status available # open 1 LV Size 46.56 GB Current LE 11920 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Name /dev/vg0/swap_1 VG Name vg0 LV UUID n1DY62-rNBY-LLA9-jYZm-LypC-4LYW-Q4aiQB LV Write Access read/write LV Status available # open 1 LV Size 1.86 GB Current LE 476 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 root@server1:~# Для создания виртуальных машин мы будем использовать xen-tools, что сделает процесс легким и непринужденным. Для получения дополнительной справочной информации, обратитесь к этому документу. Этот инструментарий установился как зависимость для ubuntu-xen-server и не требует дополнительной инсталляции. Теперь отредактируем /etc/xen-tools/xen-tools.conf. [...] lvm = vg0 [...] memory = 256Mb [...] dist = lenny # Default distribution to install. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] kernel = /boot/vmlinuz-2.6.27-11-server initrd = /boot/initrd.img-2.6.27-11-server [...] mirror = http://ftp.de.debian.org/debian/ [...] serial_device = hvc0 [...] disk_device = xvda #default [...] В строках kernel и initrd мы указываем не то ядро, которое мы собрали в предыдущей главе, так как оно предназначено только для работы в dom0 и не будет работать как ядро domU. Пожалуйста, используйте одно из ядер Ubuntu, например - 2.6.27-11-server. Так как дефолтное ядро Ubuntu уже собрано с поддержкой Xen, нам нет необходимости в повторной сборке. Убедитесь, что раскомментировали строку lvm и указали корректную группу (в моем случае vg0), при этом проверьте, что строка dir закомментирована. Параметр passwd = 1 указывает на необходимость задания пароля для root при создании нового домена. Убедитесь, что вы указали сетевые параметы - gateway, netmask и broadcast address. Если вы этого не сделали и не указали их в командной строке, то рискуете осаться без сети на виртуальной машине. Очень важным параметром является serial_device = hvc0 (не xvc0 или tty1!), если вы допустите ошибку, то не сможете попасть на консоль виртуальной машины. Ну, создаем наш первый домен - xen1.example.com, с адресом 192.168.0.101: xen-create-image --hostname=xen1.example.com --size=4Gb --swap=256Mb --ip=192.168.0.101 --arch=amd64 --role=udev Если вы указываете какие-либо параметры в командной строке, то они имеют больший приоритет, чем указанные в файле /etc/xen-tools/xen-tools.conf. Еще раз проверьте, что добавили в файл функцию --role=udev, иначе виртуальная машина не загрузится. Для получения более детальной информации, воспользуйтесь командой man xen-create-image. Процесс создания виртуальной машины займет несколько минут. В ходе выполнения будет наблюдаться примерно следущее: root@server1:~# xen-create-image --hostname=xen1.example.com --size=4Gb --swap=256Mb --ip=192.168.0.101 --arch=amd64 --role=udev General Information - - - - - - - - - - Hostname : xen1.example.com Distribution : lenny Partitions : swap 256Mb (swap) / 4Gb (ext3) Image type : full Memory size : 256Mb Kernel path : /boot/vmlinuz-2.6.27-11-server Initrd path : /boot/initrd.img-2.6.27-11-server Networking Information - - - - - - - - - - - IP Address 1 : 192.168.0.101 [MAC: 00:16:3E:BF:02:B9] Netmask : 255.255.255.0 Broadcast : 192.168.0.255 Gateway : 192.168.0.1 Creating swap on /dev/vg0/xen1.example.com-swap Done Creating ext3 filesystem on /dev/vg0/xen1.example.com-disk Done Installation method: debootstrap Done Running hooks Done Role: udev File: /etc/xen-tools/role.d/udev Role script completed. Creating Xen configuration file Done Setting up root password Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully All done Logfile produced at: /var/log/xen-tools/xen1.example.com.log root@server1:~# Как мы можем увидеть из вывода команды xen-create-image был создан новый логический раздел для виртуальной машины в группе vg0, называющийся /dev/vg0/xen1.example.com-disk, содержащий корневую файловую систему и раздел /dev/vg0/xen1.example.com-swap, содержащий файл подкачки. Посмотрим: root@server1:~# lvdisplay --- Logical volume --- LV Name /dev/vg0/root VG Name vg0 LV UUID CtAiSe-jr1F-Ibvj-80zR-DRnK-dgPz-OPoxnv LV Write Access read/write LV Status available # open 1 LV Size 46.56 GB Current LE 11920 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 --- Logical volume --- LV Name /dev/vg0/swap_1 VG Name vg0 LV UUID n1DY62-rNBY-LLA9-jYZm-LypC-4LYW-Q4aiQB LV Write Access read/write LV Status available # open 1 LV Size 1.86 GB Current LE 476 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 --- Logical volume --- LV Name /dev/vg0/xen1.example.com-swap VG Name vg0 LV UUID 0sVqfr-TUoJ-FLeo-qgVn-HIiy-lIeF-dSi3gn LV Write Access read/write LV Status available # open 0 LV Size 256.00 MB Current LE 64 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2 --- Logical volume --- LV Name /dev/vg0/xen1.example.com-disk VG Name vg0 LV UUID otgxt7-T5cW-zaxd-y7x3-qwnp-gbmo-oriRLt LV Write Access read/write LV Status available # open 0 LV Size 4.00 GB Current LE 1024 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:3 root@server1:~# Посмотрим конфигурационный файл виртуальной машины - /etc/xen/xen1.example.com.cfg. vi /etc/xen/xen1.example.com.cfg # # Configuration file for the Xen instance xen1.example.com, created # by xen-tools 3.9 on Fri Feb 13 00:47:09 2009. # # # Kernel + memory size # kernel = '/boot/vmlinuz-2.6.27-11-server' ramdisk = '/boot/initrd.img-2.6.27-11-server' memory = '256' # # Disk device(s). # root = '/dev/xvda2 ro' disk = [ 'phy:/dev/vg0/xen1.example.com-swap,xvda1,w', 'phy:/dev/vg0/xen1.example.com-disk,xvda2,w', ] # # Hostname # name = 'xen1.example.com' # # Networking # vif = [ 'ip=192.168.0.101,mac=00:16:3E:BF:02:B9' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' Обратите внимание: если у вас dual-core или quad-core CPU и вы хотите, чтобы виртуальная машина использовала все ядра процессора, то добавьте к файлу конфигурации vcpus = '2' или vcpus = '4'. Если вы сравните с примером выше, то увидите, что при использовании файла в качестве хранилища, соответствующая строка будет выглядеть как disk = [ 'file:/path/to/xen1.example.com/disk.img,xvda1,w', 'file:/path/to/xen1.example.com/swap.img,xvda2,w' ]. Перед первым запуском виртуальной машины вам необходимо примонтировать хранилище и скопировать в него ядро domU (команда xen-create-image скопировала в виртуальную машину ядро dom0 kernel 2.6.27.5, а нам его необходимо заменить на 2.6.27-11-server). mount /dev/vg0/xen1.example.com-disk /mnt cd /mnt/lib/modules/ cp -pfr /lib/modules/2.6.27-11-server/ . cd umount /mnt Все остальные шаги повторяют наши действия в прошлой главе. Ссылки: * Xen: http://www.xensource.com/xen/ * xen-tools: http://xen-tools.org/software/xen-tools * Ubuntu: http://www.ubuntu.com/

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру