As jails foram introduzidas no FreeBSD na versão 4.X, a partir daí esse recurso que permite encarcerar userlands vem evoluindo constantemente e sendo assim o estudante da universidade de Berkeley, Chris Jones com o patrocínio do projetoGoogle Code of Summer, adicionou suporte a duas novas funcionalidades, a limitação de uso de CPU e de memória.
Com isto podemos de forma racional definir quanto cada jail poderá consumir do sistema anfitrião. Este recurso também pode ser usado para prevenir que alguma jail com processos mau educados monopolize toda memória e CPU disponível, evitando assim que o sistema fique lento no momento em que outros usuários e ou jails estiverem rodando processos. O código em questão é um conjunto de patches que esta preparado para a RELENG_6 e esse recurso não esta disponível na arvore da atual versão que no presente momento é a 6.2-RELEASE, mas Crhis esta aplicando este recurso na arvore do CURRENT, esperamos ansiosos pela RELENG_7.]:-)
Conhecimentos: - Criação e configuração de jails - Atualização do sistema a partir dos fontes - Compilação de Kernel e aplicação de patchs - Ajustes em variavéis de Kernel (sysctl) Para quem nunca implementou Jails, segue link para tanto: http://www.myfreebsd.com.br/modules.php?name=Sections&op=viewarticle&artid=29 1. Faça o download dos patches para implementer as Jails Resource Limits usuario# cd ~ usuario# fetch http://www.ualberta.ca/~cdjones/cdjones_jail_soc2006.tgz usuario# fetch http://www.ualberta.ca/~cdjones/cdjones_jail_soc2006.patch 2. Após o download do tarball e patch esteja seguro que /usr/src esteja na RELENG_6 e atualizado. root# cvsup -g -L 2 /etc/stable-supfile 3. Descompacte o arquivo tarball em algum lugar seguro, pode ser um subdiretório no seu diretório home. usuario# cd ~ usuario# tar -xvzf cdjones_jail_soc2006.tgz 4. Faça o backup do source do sistema antes de aplicar os patches. root# cd /usr root# tar -cvpzf src_release-6.2.tar.gz 5. Crie um link para compilação do binário jtune root# ln -s /root/soc2006/src/usr.sbin/jtune /usr/src/usr.sbin/jtune 6. Atualizando as system calls: root# cd /usr/src/sys/kern root# sh makesyscalls.sh syscalls.master 7. Aplicando o patch no source do sistema para habilitar o JailResourceLimits root# cd ~ root# cp cdjones_jail_soc2006.patch /usr/src root# cd /usr/src root# patch -p1 < cdjones_jail_soc2006.patch 8. Recompilando o mundo e instalando um novo kernel root# cd /usr/src root# make world -DHISTORICAL_MAKE_WORLD root# cd sys/i386/conf root# config GENERIC root# cd ../compile/GENERIC root# make cleandepend && make depend && make -j4 && make install root# shutdown -r now root# mergemaster -a Fazer a fusão dos arquivos que estão no temproot para o diretório de configuração “/etc” root# cd /var/tmp/temproot/etc 9. Compilando os novos binaries jail, jls, e jtune. root# cd /usr/src/usr.sbin/jail root# make obj root# make root# cd /usr/src/usr.sbin/jls root# make obj root# make root# cd /usr/src/usr.sbin/jtune root# make obj root# make 10. Instale os binários criados sob /usr/obj para dentro de /usr/sbin. root# cd /usr/obj/src/usr.sbin/jail root# cp jail /usr/sbin root# cp jail.8.tgz /usr/share/man/man8/ root# cd ../jls root# cp jls /usb/sbin root# cp jls.8.tgz /usr/share/man/man8/ root# cd ../jtune root# cp jtune /usr/sbin root# cp jtune.8.tgz /usr/share/man/man8/ 11. Habilitando os recursos de limitação no Kernel root# sysctl -w kern.sched.limit_jail_cpu=1 root# sysctl -w security.jail.limit_jail_memory=1 root# echo “kern.sched.limit_jail_cpu=1” >> /etc/sysctl.conf root# echo “security.jail.limit_jail_memory=1” >> /etc/sysctl.conf Pronto agora seu FreeBSD já esta com o recurso JailResourceLimits habilitado, agora é só se divertir. 12. Limitando recursos. Para limitar os recursos das jails usamos o comando “jtune” usuario# man jtune Ex: root# jtune -j <jail_id> -m <men_limit_MB> root# jtune -j 1 -m 128 Para listar as configurações setadas root# jtune -j <jail_id> -i Autor: Marcos Francisco Alcântara Silva Administrador de Sistema - *NIX Email:
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
FUG-BR User #248 Linux User #425822 |