Создание виртуальных машин Solaris 11 » История » Версия 2
Версия 1 (Владимир Ипатов, 30.06.2013 01:17) → Версия 2/3 (Владимир Ипатов, 17.04.2014 01:49)
h1. Создание виртуальных машин Solaris 11
Для создания виртуальной машины с Solaris 11 нужен ISO образ sol-11-1111-text-x86.iso
Насколько я понимаю, sol-11_1-text-x86.iso, который сейчас лежит на сайте оракла, не работает.
образ нужно скопировать на обе ноды, затем смонтировать на одной из нод:
<pre>mount -o loop /stuff/cdimages/sol-11-1111-text-x86.iso /mnt/cdrom</pre>
Затем скопировать паравиртуальное ядро и бут архив в /boot на обе ноды:
<pre>
cp /mnt/cdrom/platform/i86xpv/kernel/amd64/unix /boot/sol11_kernel_xpv
cp /mnt/cdrom/platform/i86pc/amd64/boot_archive /boot/sol11_boot_archive
</pre>
Затем нужно создать временный файл-образ для установки соляриса на одной из нод:
<pre>dd if=/dev/zero of=/stuff/sol.img bs=4k count=3932160</pre>
Здесь образ будет размером 15ГБ
Затем создаем конфиг для ксен домена:
<pre>
kernel = '/boot/sol11_kernel_xpv'
ramdisk = '/boot/sol11_boot_archive'
memory = 4096
name = 'solaris-file'
vif = ['mac=aa:00:00:63:63:63, bridge=xen-lan']
disk = ['file://stuff/cdimages/sol-11-1111-text-x86.iso,6:cdrom,r', 'file://stuff/sol.img,0,w' ]
#disk = ['file://stuff/sol.img,0,w' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
extra = '/platform/i86xpv/kernel/amd64/unix -B console=ttya,livemode=text'
#extra = '/platform/i86xpv/kernel/amd64/unix -B console=ttya,zfs-bootfs=rpool/53,bootpath="/xpvd/xdf@0:a"'
</pre>
запускаем его:
<pre>xm create -c путь_к_конфигу</pre>
загружается программа установки, выполняем установку.
После установки НЕ нажимаем перезагрузку, а возвращаемся в шелл и выполняем команду:
<pre>
pfexec zdb -vvv rpool | grep bootfs
</pre>
В выводе команды вида:
<pre>
bootfs = ЧИСЛО
</pre>
нужно запомнить число, которое затем нужно будет указать в параметрах ядра.
После этого можно завершать домен. Затем, для проверки, комментируем в вышеприведенном конфиге строчки disk и extra и раскомментируем их закомментированные аналоги, подставляя в zfs-bootfs=rpool/ROOT/solaris\,bootpath=/xpvd/xdf@0:a\,console=ttya zfs-bootfs=rpool/53 правильный номер.
снова запускаем домен, если домен загрузился корректно, то можно его выключать и создавать домен в ganeti:
<pre>
gnt-instance add -o solaris+default -t drbd -n gnt1:gnt2 --disk 0:size=15g --net=0:link=xen-lan -B memory=4096m --no-name-check --no-ip-check --no-install solaris
</pre>
Затем правим параметры гипервизора:
<pre>
gnt-instance modify -H blockdev_prefix=0 solaris
gnt-instance modify -H kernel_args='/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs=rpool/ROOT/solaris\,bootpath=/xpvd/xdf@0:a\,console=ttya' solaris
gnt-instance modify -H root_path= solaris
gnt-instance modify -H initrd_path=/boot/sol11_boot_archive solaris
gnt-instance modify -H kernel_path=/boot/sol11_kernel_xpv solaris
gnt-instance modify -H use_bootloader=false solaris
</pre>
Активируем диск:
<pre>
gnt-instance activate-disks solaris
</pre>
заливаем образ из файла на drbd ресурс(путь к нему виден в выводе команды activate-disks:
<pre>
dd if=/stuff/sol.img of=/dev/drbd89 bs=4k
</pre>
И запускаем домен уже через ganeti
Для создания виртуальной машины с Solaris 11 нужен ISO образ sol-11-1111-text-x86.iso
Насколько я понимаю, sol-11_1-text-x86.iso, который сейчас лежит на сайте оракла, не работает.
образ нужно скопировать на обе ноды, затем смонтировать на одной из нод:
<pre>mount -o loop /stuff/cdimages/sol-11-1111-text-x86.iso /mnt/cdrom</pre>
Затем скопировать паравиртуальное ядро и бут архив в /boot на обе ноды:
<pre>
cp /mnt/cdrom/platform/i86xpv/kernel/amd64/unix /boot/sol11_kernel_xpv
cp /mnt/cdrom/platform/i86pc/amd64/boot_archive /boot/sol11_boot_archive
</pre>
Затем нужно создать временный файл-образ для установки соляриса на одной из нод:
<pre>dd if=/dev/zero of=/stuff/sol.img bs=4k count=3932160</pre>
Здесь образ будет размером 15ГБ
Затем создаем конфиг для ксен домена:
<pre>
kernel = '/boot/sol11_kernel_xpv'
ramdisk = '/boot/sol11_boot_archive'
memory = 4096
name = 'solaris-file'
vif = ['mac=aa:00:00:63:63:63, bridge=xen-lan']
disk = ['file://stuff/cdimages/sol-11-1111-text-x86.iso,6:cdrom,r', 'file://stuff/sol.img,0,w' ]
#disk = ['file://stuff/sol.img,0,w' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
extra = '/platform/i86xpv/kernel/amd64/unix -B console=ttya,livemode=text'
#extra = '/platform/i86xpv/kernel/amd64/unix -B console=ttya,zfs-bootfs=rpool/53,bootpath="/xpvd/xdf@0:a"'
</pre>
запускаем его:
<pre>xm create -c путь_к_конфигу</pre>
загружается программа установки, выполняем установку.
После установки НЕ нажимаем перезагрузку, а возвращаемся в шелл и выполняем команду:
<pre>
pfexec zdb -vvv rpool | grep bootfs
</pre>
В выводе команды вида:
<pre>
bootfs = ЧИСЛО
</pre>
нужно запомнить число, которое затем нужно будет указать в параметрах ядра.
После этого можно завершать домен. Затем, для проверки, комментируем в вышеприведенном конфиге строчки disk и extra и раскомментируем их закомментированные аналоги, подставляя в zfs-bootfs=rpool/ROOT/solaris\,bootpath=/xpvd/xdf@0:a\,console=ttya zfs-bootfs=rpool/53 правильный номер.
снова запускаем домен, если домен загрузился корректно, то можно его выключать и создавать домен в ganeti:
<pre>
gnt-instance add -o solaris+default -t drbd -n gnt1:gnt2 --disk 0:size=15g --net=0:link=xen-lan -B memory=4096m --no-name-check --no-ip-check --no-install solaris
</pre>
Затем правим параметры гипервизора:
<pre>
gnt-instance modify -H blockdev_prefix=0 solaris
gnt-instance modify -H kernel_args='/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs=rpool/ROOT/solaris\,bootpath=/xpvd/xdf@0:a\,console=ttya' solaris
gnt-instance modify -H root_path= solaris
gnt-instance modify -H initrd_path=/boot/sol11_boot_archive solaris
gnt-instance modify -H kernel_path=/boot/sol11_kernel_xpv solaris
gnt-instance modify -H use_bootloader=false solaris
</pre>
Активируем диск:
<pre>
gnt-instance activate-disks solaris
</pre>
заливаем образ из файла на drbd ресурс(путь к нему виден в выводе команды activate-disks:
<pre>
dd if=/stuff/sol.img of=/dev/drbd89 bs=4k
</pre>
И запускаем домен уже через ganeti