Для тех кто использует или использовал VServer хотелось бы попросить оставить комментарии относительно данного проекта, не ту информацию которую можно найти на официальном сайте, а что-то от себя, впечатления, нюансы, особенности использования, etc.
deisler добавил в 12.08.2005 04:00
Кстати, хотелось бы ещё узнать, умеет ли VServer работать с алиасами на сетевых интерфейсах?
VServer
Модераторы: SLEDopit, Модераторы разделов
-
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: VServer
Есть хитрость по поводу создания скелета:
Потом пользуюсь для создания VS'ок таким скриптом:
После этого read-only маунтиться на все VS'ки bind'ом и настаёт вселенское счастье при обновлении (обновляешь только template и всё... ну и etc ручками везде поправляешь как надо - главное /etc/ld.so.cache не забывать на все VS'ки копировать) --- для этого в в /etc/vservers/<имя всервера>/scripts/prepre-start пишешь:
И в /etc/vservers/<имя всервера>/scripts/postpost-stop всё соотв-о отмаунтить.
При старте ещё делаю (можно в /etc/conf.d/local.start):
> Кстати, хотелось бы ещё узнать, умеет ли VServer работать с алиасами на сетевых интерфейсах?
он с ними и работает (сам создаёт и использует в момент старта)
Код: Выделить всё
@serv1 /home/vservers/template-gentoo # ls -al
итого 43
drwxr-xr-x 9 root root 440 Фев 25 14:38 .
d--x--x--x 8 root root 264 Май 24 12:27 ..
lrwxrwxrwx 1 root root 13 Июл 29 2004 bin -> read-only/bin
lrwxrwxrwx 1 root root 14 Июл 29 2004 boot -> read-only/boot
drwxr-xr-x 9 root root 35720 Май 19 16:34 dev
lrwxrwxrwx 1 root root 21 Июл 29 2004 etc -> read-only/example/etc
drwxr-xr-x 5 root root 144 Авг 6 2004 home
lrwxrwxrwx 1 root root 13 Июл 29 2004 lib -> read-only/lib
drwxr-xr-x 4 root root 120 Апр 13 2004 mnt
lrwxrwxrwx 1 root root 13 Июл 29 2004 opt -> read-only/opt
dr-xr-xr-x 242 root root 0 Май 19 20:33 proc
drwxr-xr-x 10 root root 240 Июл 29 2004 read-only
lrwxrwxrwx 1 root root 22 Июл 29 2004 root -> read-only/example/root
lrwxrwxrwx 1 root root 14 Июл 29 2004 sbin -> read-only/sbin
drwxr-xr-x 2 root root 72 Июл 21 2004 sys
drwxrwxrwt 7 root root 320 Июл 11 17:18 tmp
lrwxrwxrwx 1 root root 13 Июл 29 2004 usr -> read-only/usr
lrwxrwxrwx 1 root root 21 Июл 29 2004 var -> read-only/example/var
@serv1 /home/vservers/template-gentoo # ls -al read-only/
итого 15
drwxr-xr-x 10 root root 240 Июл 29 2004 .
drwxr-xr-x 9 root root 440 Фев 25 14:38 ..
drwxr-xr-x 2 root root 3864 Июл 11 15:42 bin
drwxr-xr-x 2 root root 96 Апр 13 2004 boot
drwxr-xr-x 5 root root 152 Июл 30 2004 example
drwxr-xr-x 7 root root 3944 Июл 11 15:44 lib
drwxr-xr-x 4 root root 216 Сен 9 2004 opt
drwxr-xr-x 2 root root 3376 Июл 11 15:42 sbin
drwxr-xr-x 11 root root 424 Апр 8 13:22 usr
drwxr-xr-x 3 root root 72 Июл 29 2004 var
@serv1 /home/vservers/template-gentoo # ls -al var/db/
итого 2
drwxr-xr-x 3 root root 96 Авг 16 2004 .
drwxr-xr-x 14 root root 392 Апр 8 13:46 ..
lrwxrwxrwx 1 root root 21 Июл 29 2004 pkg -> /read-only/var/db/pkg
drwxr-xr-x 5 root root 128 Мар 17 16:32 webapps
Потом пользуюсь для создания VS'ок таким скриптом:
Код: Выделить всё
#!/bin/sh
#
#
HOME_DIR="/home/vservers"
TEMPLATE_DIR="template-gentoo"
READONLY_DIR="read-only"
VBUILD_BIN="/usr/lib/util-vserver/vbuild"
#################
ProgramName=${0##*/}
argc=$#
if [ $argc -ne 1 ]
then
echo "require argument (name of new VServer)"
exit 1
fi
newvs_name="$1"
date
echo -e "\t\tCreate '$newvs_name'\n\n-----\n"
data_dir="${HOME_DIR}/${TEMPLATE_DIR}"
newvs_dir="${HOME_DIR}/$newvs_name"
cd $data_dir
copy_dir1=`ls -1 $data_dir/${READONLY_DIR}/example `
copy_dir2=`find . -type d -maxdepth 1 | egrep -v "^\.$" | sed -e "s/^\.\///" | egrep -v "^${READONLY_DIR}$"`
copy_dir="$copy_dir1 $copy_dir2"
mkdir --verbose --parents $newvs_dir/${READONLY_DIR}
for idir in `echo -e $copy_dir2 | tr ' ' '\n'`; do
echo -e "\tRsync '$idir'..."
rsync --archive --one-file-system --hard-links ${data_dir}/$idir ${newvs_dir}
#$VBUILD_BIN --stats --debug ${data_dir}/$idir ${newvs_dir}/$idir
done
for idir in `echo -e $copy_dir1 | tr ' ' '\n'`; do
echo -e "\tRsync '$idir'..."
rsync --archive --one-file-system --hard-links ${data_dir}/${READONLY_DIR}/example/$idir ${newvs_dir}
#$VBUILD_BIN --stats --debug ${data_dir}/$idir ${newvs_dir}/$idir
done
chmod -v 1777 ${newvs_dir}/tmp
rm -rf ${newvs_dir}/tmp/*
rm -v ${newvs_dir}/README.txt
for idir in `find . -type l -maxdepth 1 | sed -e "s/^\.\///"`; do
if [ ! -e ${newvs_dir}/$idir ]; then
echo "Copy symlink '$idir'..."
cp -vd ${data_dir}/$idir ${newvs_dir}/$idir
fi
done
echo "$newvs_name" > $newvs_dir/etc/hostname
echo "done"
date
echo -e "For find broken symbolic link use command:\n\t( find / -type l | xargs file ) | grep 'broken symbolic link'"
echo -e "Attention! Require reboot /etc/init.d/rebootmgr (for possible halt at VServer) !!!"
После этого read-only маунтиться на все VS'ки bind'ом и настаёт вселенское счастье при обновлении (обновляешь только template и всё... ну и etc ручками везде поправляешь как надо - главное /etc/ld.so.cache не забывать на все VS'ки копировать) --- для этого в в /etc/vservers/<имя всервера>/scripts/prepre-start пишешь:
Код: Выделить всё
#!/bin/sh
mount -o ro --bind /home/vservers/template-gentoo/read-only /home/vservers/<имя всервера>/read-only
mount -o ro --bind /usr/portage /home/vservers/<имя всервера>/usr/portage
И в /etc/vservers/<имя всервера>/scripts/postpost-stop всё соотв-о отмаунтить.
При старте ещё делаю (можно в /etc/conf.d/local.start):
Код: Выделить всё
mount -o ro --bind /usr/portage /home/vservers/template-gentoo/usr/portage
mount -t proc proc /home/vservers/template-gentoo/proc
# удаляем состояние указывающее что что-то запущено
rm -f /home/vservers/<имя всервера>/var/lib/init.d/started/*
> Кстати, хотелось бы ещё узнать, умеет ли VServer работать с алиасами на сетевых интерфейсах?
он с ними и работает (сам создаёт и использует в момент старта)
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
-
- Сообщения: 250
Re: VServer
Для xorader: Ты случайно util-vserver на системе собранной с флагом hardened не собирал? А то не собирается падла, хоть стой, хоть падай, вижу что не только у меня такие проблемы.
Код: Выделить всё
diet -Os i686-pc-linux-gnu-gcc -O2 -mcpu=i686 -fomit-frame-pointer -fforce-addr -pipe -std=c99 -Wall -pedantic -W -o tests/getctx tests/getctx.o lib/libvserver.a
diet -Os i686-pc-linux-gnu-gcc -O2 -mcpu=i686 -fomit-frame-pointer -fforce-addr -pipe -std=c99 -Wall -pedantic -W -o tests/getinitpid tests/getinitpid.o lib/libvserver.a
lib/libvserver.a(lib_libvserver_a-syscall_gettaskxid.o)(.text+0xc0): In function `vc_get_task_xid':
: undefined reference to `syscall'
lib/libvserver.a(lib_libvserver_a-checkversion.o)(.text+0x30): In function `utilvserver_checkCompatVersion':
: undefined reference to `syscall'
collect2: ld returned 1 exit status
make[2]: *** [tests/getctx] Ошибка 1
make[2]: *** Ожидание завершения заданий...
lib/libvserver.a(lib_libvserver_a-syscall_gettaskxid.o)(.text+0xc0): In function `vc_get_task_xid':
: undefined reference to `syscall'
lib/libvserver.a(lib_libvserver_a-syscall_getvxinfo.o)(.text+0x6b): In function `vc_get_vx_info':
: undefined reference to `syscall'
lib/libvserver.a(lib_libvserver_a-checkversion.o)(.text+0x30): In function `utilvserver_checkCompatVersion':
: undefined reference to `syscall'
collect2: ld returned 1 exit status
make[2]: *** [tests/getinitpid] Ошибка 1
make[2]: Leaving directory `/var/tmp/portage/util-vserver-0.30.208-r1/work/util-vserver-0.30.208'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/var/tmp/portage/util-vserver-0.30.208-r1/work/util-vserver-0.30.208'
make: *** [all] Ошибка 2
!!! ERROR: sys-cluster/util-vserver-0.30.208-r1 failed.
!!! Function src_compile, Line 37, Exitcode 2
!!! compile failed
!!! If you need support, post the topmost build error, NOT this status message.
Всех благ.
-
- Сообщения: 250
Re: VServer
Пересобрал систему без флага hardened, util-vserver собрался, что ж, жаль что с hardened не собирается, придётся без него юзать.
Всех благ.
-
- Сообщения: 1030
- Статус: собирающий миры
- ОС: Debian
Re: VServer
угумс... с hardened'ом не пробовал - спасибо за предупреждённые грабли 

Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!