Jail limits under FREEBSD-CURRENT

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-05-26 12:43:53

terminus писал(а):Вот мне этот вопрос тоже интересен - на счет потестить.
У меня счас, значит, два джайла. Я думаю попробовать выставит лимиты у одного 10%+256MB, а у второго 90%+256MB и погонять там что-нибудь. Ну а потом погонять те же тесты, но уже в системе без ограничений. Результаты сравнить. По идее в первом случае время выполнения для джайла 90% должно быть меньше, а во втором случае поровну...
Какие тесты лучше использовать?
Да, интересно.
Используйте любые тесты, главное чтобы было понятно, что они мерят.
Потестировать систему в случае большого количества (тысячи) процессов в jail-ах, открытых файлов, при la в несколько сотен.
Посмотреть сколько cpu уходит на подсчет использования ресурсов (процесс ядра jdaemon).
Попробовать превысить лимиты.
Вообщем все на что воображения хватит, главное не тестируйте на машинах с важными данными :)
Также интересно, какие лимиты будут адекватны типичных задач, например небольшой jail для веб, для почты, для днс, для ...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Гость
проходил мимо

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Гость » 2009-05-28 6:47:20

Патч наложился нормально, собираю ядро и вот:

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

In file included from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/compat/opensolaris/sys/zone.h:34,
                 from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:110:
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:162: error: redefinition of 'struct prison_proc_list'
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:164: error: redefinition of 'struct prison_proc_list'
делал так:

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

cp /usr/src/sys/sys/filedesc.h /usr/include/sys/filedesc.hcp /usr/src/sys/sys/jail.h /usr/include/sys/jail.hcp /usr/src/sys/sys/kernel.h /usr/include/sys/kernel.hcp /usr/src/sys/sys/ktr.h /usr/include/sys/ktr.hcp /usr/src/sys/sys/proc.h /usr/include/sys/proc.h

не помогает.
FreeBSD 7.2-STABLE

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-05-28 7:46:52

Гость писал(а):Патч наложился нормально, собираю ядро и вот:

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

In file included from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/compat/opensolaris/sys/zone.h:34,
                 from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:110:
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:162: error: redefinition of 'struct prison_proc_list'
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:164: error: redefinition of 'struct prison_proc_list'
FreeBSD 7.2-STABLE
Попробуйте сначала обновиться до current.
После этого, наложить патч и пересобрать ядро и мир.

bsd
проходил мимо

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение bsd » 2009-05-28 17:27:01

Все это очень радует, многие возможности актуальны, еще ограничение на дисковое пространство под jail и будет просто замечательно

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-05-28 18:00:56

bsd писал(а):Все это очень радует, многие возможности актуальны, еще ограничение на дисковое пространство под jail и будет просто замечательно
Дисковых квот для jail-ов не будет :( По крайней мере для ufs. Причина в том, что реализовать просто и красиво нереально.
Нужно использовать для каждого jail-а отдельную файловую систему, после улучшения поддержки zfs в FreeBSD 8 проблема квот исчезнет сама собой.
Какие дополнительные ограничения jail-ов Вы считаете нужными?

Аватара пользователя
Partizan4ik
рядовой
Сообщения: 10
Зарегистрирован: 2009-05-05 11:06:31
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Partizan4ik » 2009-05-28 22:12:10

kostjn писал(а):
Гость писал(а):Патч наложился нормально, собираю ядро и вот:

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

In file included from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/compat/opensolaris/sys/zone.h:34,
                 from /usr/src/sys/modules/dtrace/dtrace/../../../cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c:110:
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:162: error: redefinition of 'struct prison_proc_list'
/usr/src/sys/modules/dtrace/dtrace/../../../sys/jail.h:164: error: redefinition of 'struct prison_proc_list'
FreeBSD 7.2-STABLE
Попробуйте сначала обновиться до current.
После этого, наложить патч и пересобрать ядро и мир.
Сегодня же обновился до current...

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

[root@test /usr/src]# rm -rf /usr/src/*
[root@test /usr/src]# rm -rf /usr/obj/*
[root@test /usr/src]# rm -rf /usr/cup/src-all/*
[root@test /usr/src]# cvsup 
[root@test /usr/src]# patch -p0 < patch-jail-limit-8CURRENT (тут все хорошо)
[root@test /usr/src]# make buildkernel KERNCONF=SERVVDS
cc -march=k8 -mtune=k8 -O2 -pipe -march=k8 -DCOMPAT_IA32 -DCOMPAT_LINUX32 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc   -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/SERVVDS/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/SERVVDS -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/linux/../../amd64/linux32/linux32_sysvec.c
In file included from /usr/src/sys/modules/linux/../../compat/linux/linux_misc.c:42:
@/sys/jail.h:47: error: 'RLIM_NLIMITS' undeclared here (not in a function)
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
2 errors
*** Error code 2
1 error
*** Error code 2
1 error

fxp
мл. сержант
Сообщения: 79
Зарегистрирован: 2008-10-06 1:02:58

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение fxp » 2009-05-28 23:22:46

kostjn писал(а):
bsd писал(а): Какие дополнительные ограничения jail-ов Вы считаете нужными?
Ограничение IO операций, ибо один если в одном джайле запустить десяток bonnie - в деадлок уйдет вся система.

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-05-29 8:29:45

Partizan4ik писал(а): Сегодня же обновился до current...

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

[
[root@test /usr/src]# patch -p0 < patch-jail-limit-8CURRENT (тут все хорошо)
[root@test /usr/src]# make buildkernel KERNCONF=SERVVDS
cc -march=k8 -mtune=k8 -O2 -pipe -march=k8 -DCOMPAT_IA32 -DCOMPAT_LINUX32 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc   -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/SERVVDS/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer -I/usr/obj/usr/src/sys/SERVVDS -mcmodel=kernel -mno-red-zone  -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow  -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/linux/../../amd64/linux32/linux32_sysvec.c
In file included from /usr/src/sys/modules/linux/../../compat/linux/linux_misc.c:42:
@/sys/jail.h:47: error: 'RLIM_NLIMITS' undeclared here (not in a function)
*** Error code 1
Ошибка совершенно абсурдная. Видимо патч наложился неправильно.
Пришлите мне лично содержимое файла /usr/src/sys/sys/jail.h

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение ProFTP » 2009-05-29 8:32:45

kostjn писал(а): Какие дополнительные ограничения jail-ов Вы считаете нужными?
можно узнать цель написания?

ну если разделить сервера на 5 и более логических напрмиер. чтобы там были разные админы, то может запретить/развершить что-то менять через sysctl.conf? чтобы не захавать чьи-то ресурсы, напмриер открытые дискрипторы файлов, если на одной клекте много открытых, то остальные клекти будут глючить? сеть и т.д.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-05-29 8:41:05

ProFTP писал(а):
kostjn писал(а): Какие дополнительные ограничения jail-ов Вы считаете нужными?
можно узнать цель написания?

ну если разделить сервера на 5 и более логических напрмиер. чтобы там были разные админы, то может запретить/развершить что-то менять через sysctl.conf? чтобы не захавать чьи-то ресурсы, напмриер открытые дискрипторы файлов, если на одной клекте много открытых, то остальные клекти будут глючить? сеть и т.д.
Цель в том, чтобы получить Ваше мнение по проблеме. И не в виде ограничьте то то и вообще все что к сети относится, а в виде конктретных предложений: грамотных и обдуманных.

Аватара пользователя
Partizan4ik
рядовой
Сообщения: 10
Зарегистрирован: 2009-05-05 11:06:31
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Partizan4ik » 2009-05-31 11:05:29

Патч хорошо накладывается на сорцы от 2009.05.25
В конфиге cvsup пишем подобное:

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

*default date=2009.05.25.00.00.00
*default host=cvsup6.ru.FreeBSD.org
*default prefix=/usr
*default base=/usr
*default release=cvs delete use-rel-suffix compress
src-all
И сразу же вопрос, в 7.2 появилась поддержка 2-ух и более ip для jail. Все утро искал как прописывается аллиас к основному jail-ip, к сожалению безуспешно :(
Пробовал конструкции вида
jail_test_ip="192.168.0.100"
jail_test_ip_alias0="192.168.0.101"
и
jail_test_ip_alias="192.168.0.101"
и т.д.
подскажите может кто знает

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение paradox » 2009-05-31 11:10:59

думаю можно поискать в /etc/defauls/rc.conf

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение terminus » 2009-05-31 11:13:25

У меня, правда, STABLE, но думаю в релизе 7.2 все то же самое...

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

grep jail /etc/defaults/rc.conf | grep ip
jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail
jail_sysvipc_allow="NO" # Allow SystemV IPC use from within a jail
#jail_example_ip="192.0.2.10,2001:db8::17"      # Jail's primary IPv4 and IPv6 address
#jail_example_ip_multi0="2001:db8::10"          #  and another IPv6 address

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

jail_example_ip="192.0.2.10"
jail_example_ip_multi0="10.1.1.1"
jail_example_ip_multi1="172.24.2.3"
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Partizan4ik
рядовой
Сообщения: 10
Зарегистрирован: 2009-05-05 11:06:31
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Partizan4ik » 2009-05-31 11:19:39

Извиняюсь, не доглядел в rc.conf

jail_ips() из /etc/rc.d/jail

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

alias=0
        while : ; do
                eval _x=\"\$jail_${_jail}_ip_multi${alias}\"
                case "${_x}" in
                "")     break ;;
                *)      jail_handle_ips_option ${_action} "${_x}"
                        alias=$((${alias} + 1))
                        ;;
                esac
        done
Спасибо за оперативность.

Гость
проходил мимо

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Гость » 2009-05-31 14:56:26

а кто пробовал этот патч http://www.opennet.ru/opennews/art.shtml?num=21915 ?
и где его сказать и как пропатчить?

Аватара пользователя
Partizan4ik
рядовой
Сообщения: 10
Зарегистрирован: 2009-05-05 11:06:31
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Partizan4ik » 2009-05-31 16:59:17

Гость писал(а):а кто пробовал этот патч http://www.opennet.ru/opennews/art.shtml?num=21915 ?
и где его сказать и как пропатчить?
Пок ане пробывал, но в курентах 29 числа он уже есть.

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-06-02 9:12:23

Дописал патч.
1. Изменилась схема подсчета используемой памяти. Это дает возможность, сделать лимиты на память более жесткими.
Дефолтное поведение следующее: Если jail достиг лимита по памяти, запрещаются системные вызовы mmap, obreak, fork.
Такой код

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

for (;;)
  malloc(MB)
не позволит, использовать всю доступную в системе память.
Однако такой код

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

s = malloc(1GB);
bzero(s, 1GB);
сможет использовать 1 GB.
Если установить

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

security.jail.limit.kill=1
процесс, который превысил лимит jail-а по памяти будет убит.
Перед, тем как устанавливать эту sysctl, подумайте, при каком использовании памяти, Вы готовы убить процесс в jail и поставьте соответсвующий лимит.
2. Упростил подсчет числа открытых файлов.

Думаю, текущего функционала вполне достаточно.
Пока больше ничего добавлять не буду.
Использование ресурсов считается правильно.

Перед тем как накладывать патч, получите HEAD от 25 мая.
Мир можно не пересобирать, если у Вас уже current.
Нужно пересобрать программу jail, я делаю так.

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

[root@book ~/jail-limit]# cd /usr/src/usr.sbin/jail/  
[root@book /usr/src/usr.sbin/jail]# cp /usr/src/sys/sys/resource.h /usr/include/sys/resource.h 
[root@book /usr/src/usr.sbin/jail]# cp /usr/src/sys/sys/jail.h /usr/include/sys/jail.h 
[root@book /usr/src/usr.sbin/jail]# make
Warning: Object directory not changed from original /usr/src/usr.sbin/jail
cc -O2 -pipe  -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign -c jail.c
cc -O2 -pipe  -std=gnu99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wno-pointer-sign  -o jail jail.o -lutil
[root@book /usr/src/usr.sbin/jail]# cp jail /usr/sbin/jail 

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35427
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Alex Keda » 2009-06-02 9:18:19

в расылке товарисч срашивал про размещение патча на соответсвующей странице вики FreeBSD - отписались бы ему...
а то пропадёт же рано или поздно.. а там народ бывает. глядишь и дело двигаться начнёт...
и в куррент бы отписались...
Убей их всех! Бог потом рассортирует...

kostjn
рядовой
Сообщения: 31
Зарегистрирован: 2009-05-20 20:14:02

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение kostjn » 2009-06-02 9:29:03

lissyara писал(а):в расылке товарисч срашивал про размещение патча на соответсвующей странице вики FreeBSD - отписались бы ему...
а то пропадёт же рано или поздно.. а там народ бывает. глядишь и дело двигаться начнёт...
и в куррент бы отписались...
Нужно, чтобы патч потестили.
После этого напишем.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35427
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Alex Keda » 2009-06-02 9:31:47

ну, народ он какой - не работало бы - начали бы кричать
раз молчат - значит работает.
да и из местных народ потестил вроде...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение terminus » 2009-06-02 9:45:44

lissyara писал(а):в расылке товарисч срашивал про размещение патча на соответсвующей странице вики FreeBSD - отписались бы ему...
а то пропадёт же рано или поздно.. а там народ бывает. глядишь и дело двигаться начнёт...
и в куррент бы отписались...
В вики уже поместили ссылку на патч
http://wiki.freebsd.org/Jails

---

хотя - там ссылка на первое письмо, но не на скачку патча...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35427
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Alex Keda » 2009-06-02 10:48:15

чё-то в упор не вижу
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение Гость » 2009-06-02 10:57:33

Насчет тестов:
Я на сервере около 20клеток гоняю.
Сервисы в каждой клетке:

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

nginx
apache+php_mod
mysql
sendmail+dovecat
vsftpd
ну и по мелочи
Держится и считается все стабильно.
Единственное на время пока что нибудь компилирую в клетке, то присваиваю класс default. Ибо ругается на число открытых файлов, хотя и выставлено openfiles=10096
Я подумал, может считается суммарное число например за минуту, или как? просвятите плиз.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Jail limits under FREEBSD-CURRENT

Непрочитанное сообщение terminus » 2009-06-02 10:58:03

Константин, проверьте пожалуйста - новый tar.gz архив с патчем содержит файл patch-jail-limit-8CURRENTнулевой длины.

---

Lissyara

в секции "CPU + RAM limits"
CPU limit for Jails (patch for ULE scheduler) based on 7.1
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.