setup OpenFiler 2.3 as paravirtualized guest for Oracle VM 2.2
OpenFiler - бесплатный и весьма популярный продукт обеспечивающий вам доступ к вашим дискам по iSCSI, NFS, SAMBA. Я широко его использую как при построении демонстраций, так и как домашний NAS. При попытке скачать его вы обнаружите что существует даже вариант "Xen domU Filesystem", однако радость будет не долгой - это не образ машины, а действительно tar с файловой системой. Есть также вариант называющийся ISO image, но поставить его в Oracle VM не получается, virt-install не находит нужных файлов.
Для того, чтобы превратить tar с файловой системой в настоящий paravirtualized guest мне понадобились:
Шаги который нам придется пройти
- сделать новую вирутальную машину
- распаковать в ней tar с Openfiler
- настроить grub
Для начала нам понадобиться пустой образ:
dd if=/dev/zero of=root.img bs=1 count=0 seek=4G
Затем, необходимо положить ISO образ любого соверменного Linux и сделать его доступным через NFS. В моем примере nfs сервер имеет адрес 192.168.1.11
virt-install -n OPENFILER23 -r 256 --vcpu=1 -f root.img -p -l nfs:192.168.1.11:/mnt/iso -x rescue
При таком методе загрузке мы получим shell к своей linux системе… которой еще нет.
Получив rescue prompt вы запустите команду fdisk и сделаетe новую партицию для устройства xvda (n,p,1, w). Далее сделаете файловую систему:
mkfs.ext3 -L root -j /dev/xvda1
после чего вы сможете ее смонтировать
mkdir /mnt2
mount /dev/xvda1 /mnt2
Дальше нам снова понадобится nfs сервер на котром размещен заранее скачанный tarball с Openfiler. Мы монтируем директорию по nfs
mkdir /mnt3
mount -t nfs 192.168.1.11:/OVS/exports /mnt3
после чего вы распаковываться Openfiler Tarball
cd /mnt2
tar -xvf /mnt3/Openfiler/openfilerXXX.tar.gz
На этом этапе нужно выйти из shell
cd
umount /mnt2
umount /mnt3
exit
Теперь нужно снова повторить команду с virt-install, приведенную выше. Но теперь появиться важный экран - вам позволят сделать chroot /mnt/sysimage. Сделайте это.
chroot /mnt/sysimage
Теперь запускаем grub
grub
device (hd0) /dev/xvda
root (hd0,0)
setup (hd0)
quit
На данном этапе у нас есть загрузчик и правильная файловая система. Теперь остается проверить что загрузчик будет нам грузить.
less /boot/grub/grub.conf
# GRUB configuration generated by rBuilder
#
# Note that you do not have to rerun grub after making changes to this file
#boot=xvda
default=0
timeout=0
hiddenmenu
title (2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU)
root (hd0,0)
kernel /boot/vmlinuz-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU ro root=/dev/x
vda1 quiet
initrd /boot/initrd-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU.img
Обратите внимание на root=
Я также поправил /etc/fstab
less /etc/fstab
/dev/xvda1 / ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro,owner,exec
0 0
/var/swap swap swap defaults 0 0
(как заметит опытный администратор я не справился с метками разделов и прописал их имена явно)
Нам остается только написать наш новый vm.cfg и загрузить нашу новую виртуальную машину! Как легко видеть, grub грузит паравиртуализированное ядро, и нам не понадобились никакие особенные приседания чтобы получить этот результат
Вы можете сравнить мой вариант с вот этим: для установки Xen guest понадобилась VmWare….это не наш путь !
Для того, чтобы превратить tar с файловой системой в настоящий paravirtualized guest мне понадобились:
- установленный Oracle VM (2.x), Linux ovm1.us.oracle.com 2.6.18-128.2.1.4.25.el5xen
- Openfiler 2.3 tar.gz
- Любая версия Oracle Linux (iso или DVD образ), Я использовал OEL 5 Update 3.
- Петр Фатьянов
Шаги который нам придется пройти
- сделать новую вирутальную машину
- распаковать в ней tar с Openfiler
- настроить grub
Для начала нам понадобиться пустой образ:
dd if=/dev/zero of=root.img bs=1 count=0 seek=4G
Затем, необходимо положить ISO образ любого соверменного Linux и сделать его доступным через NFS. В моем примере nfs сервер имеет адрес 192.168.1.11
virt-install -n OPENFILER23 -r 256 --vcpu=1 -f root.img -p -l nfs:192.168.1.11:/mnt/iso -x rescue
При таком методе загрузке мы получим shell к своей linux системе… которой еще нет.
Получив rescue prompt вы запустите команду fdisk и сделаетe новую партицию для устройства xvda (n,p,1, w). Далее сделаете файловую систему:
mkfs.ext3 -L root -j /dev/xvda1
после чего вы сможете ее смонтировать
mkdir /mnt2
mount /dev/xvda1 /mnt2
Дальше нам снова понадобится nfs сервер на котром размещен заранее скачанный tarball с Openfiler. Мы монтируем директорию по nfs
mkdir /mnt3
mount -t nfs 192.168.1.11:/OVS/exports /mnt3
после чего вы распаковываться Openfiler Tarball
cd /mnt2
tar -xvf /mnt3/Openfiler/openfilerXXX.tar.gz
На этом этапе нужно выйти из shell
cd
umount /mnt2
umount /mnt3
exit
Теперь нужно снова повторить команду с virt-install, приведенную выше. Но теперь появиться важный экран - вам позволят сделать chroot /mnt/sysimage. Сделайте это.
chroot /mnt/sysimage
Теперь запускаем grub
grub
device (hd0) /dev/xvda
root (hd0,0)
setup (hd0)
quit
На данном этапе у нас есть загрузчик и правильная файловая система. Теперь остается проверить что загрузчик будет нам грузить.
less /boot/grub/grub.conf
# GRUB configuration generated by rBuilder
#
# Note that you do not have to rerun grub after making changes to this file
#boot=xvda
default=0
timeout=0
hiddenmenu
title (2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU)
root (hd0,0)
kernel /boot/vmlinuz-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU ro root=/dev/x
vda1 quiet
initrd /boot/initrd-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU.img
Обратите внимание на root=
Я также поправил /etc/fstab
less /etc/fstab
/dev/xvda1 / ext3 defaults 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro,owner,exec
0 0
/var/swap swap swap defaults 0 0
(как заметит опытный администратор я не справился с метками разделов и прописал их имена явно)
Нам остается только написать наш новый vm.cfg и загрузить нашу новую виртуальную машину! Как легко видеть, grub грузит паравиртуализированное ядро, и нам не понадобились никакие особенные приседания чтобы получить этот результат
Вы можете сравнить мой вариант с вот этим: для установки Xen guest понадобилась VmWare….это не наш путь !
Почему бы просто не сделать сразу после dd:
ОтветитьУдалить# mkfs -t ext3 -L ROOT root.img
-- здесь я кстати использую метки, они не такие модные как UID, но тоже переживут переименование дисков
# mkdir /tmp/IMAGE
# mount -o loop root.img /tmp/IMAGE
# cd /tmp/IMAGE
# tar -xvf /mnt3/Openfiler/openfilerXXX.tar.gz
-- и тут мы сделаем несложный финт ушами: посмотрим что прописано в /tmp/IMAGE/boot/grub/grub.conf, скопируем файлы ядра и initrd в /var/lib/xen например и укажем их в vm.cfg
=======
kernel /var/lib/xen/vmlinuz-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU
ramdisk /var/lib/xen/initrd-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU.img
========
отредактируем /tmp/IMAGE/etc/fstab
LABEL=ROOT / ext3 defaults 1 1
затем
# umount /tmp/IMAGE
и все! мне кажется, это проще. Проблема может возникнуть только в возможном апгрейде ядра в виртуальной машине. Ругань на некрасивую Partition table можно смело игнорировать.
да, это работает и выглядит проще при настройке. Но такая виртуальная машине не переносится (ну или нужно не забыть скопированные в сторону ядра). На самом деле Петр Фатьянов не разрешил мне так делать, сказав что "кишки" нельзя оставлять торчащими наружу -)
ОтветитьУдалитькишки наружу - это серьёзно.
ОтветитьУдалитьЯ вот начал экспериментировать с Oracle VM 3.0.3. Есть ли какие грабли с 3й версией, как например то, что не все ПО на ней может работать?
ОтветитьУдалить