Pular para o conteúdo

Compile e empacote o kernel com processadores ociosos em sua rede utilizando distcc, ccache e kernel-package no Debian

Se você resolve compilar e empacotar o kernel em uma máquina isoladamente, o tempo para a execução e finalização da tarefa tende ao infinito. Que tal usar os processadores de sua rede para agilizar o processo?! Neste artigo você saberá como fazer isso.
Marco Sinhoreli msinhore
Hits: 25.168 Categoria: Linux Subcategoria: Kernel
  • Indicar
  • Impressora
  • Denunciar

Parte 4: Usando o compile cluster

Algumas dicas importantes:
  • Para personalizar o seu pacote, edite o arquivo /etc/kernel-pkg.conf;
  • Se o cluster pode ser utilizado por qualquer pessoa que tenha uma conta shell em seu computador, inclua os hosts que pertencem ao cluster distcc no /etc/distcc/hosts, caso contrário coloque em ~/.distcc/hosts;
  • Você pode utilizar o aplicativo distccmon-gnome para visualizar as tarefas distribuídas no seu compile farm;
  • Para processador em SMP em seu farm, repita-o duas vezes no arquivo hosts do distcc.

Arquivo ~/.distcc/hosts:

# em localhost tenho um processador Intel com tecnologia Hyper Threading
localhost
localhost
192.168.0.1
192.168.0.2
# Neste host tenho 2 processadores
192.168.0.3
192.168.0.3
192.168.0.4
192.168.0.5
# Total de processadores: 8

Comando:

# CC="ccache gcc"
# CONCURRENCY_LEVEL=8
# PATH=/usr/lib/ccache:"${PATH}"
# CCACHE_PREFIX="distcc"
# make-kpkg --rootcmd fakeroot --append-to-version '-urna-amdgeode' --revision '0.99.1' kernel-image --initrd


Descrição das variáveis:
  • CC: diz ao make-kpkg que é o compilador C que será utilizado, neste caso o ccache;
  • CONCURRENCY_LEVEL: informa ao make-kpkg em quantas tarefas será dividida o processo de compilação;
  • PATH: até meu avô sabe dessa :)
  • CCACHE_PREFIX: informa quem o ccache deverá chamar para a função de compilação.

   1. Descrição das aplicações utilizadas
   2. Tudo que você precisa no nó central
   3. Tudo que você precisa nos nós escravos
   4. Usando o compile cluster
   5. Conclusão

Debmirror: Criando um repositório Debian na rede local

Que tal criar uma mini-distro em 1 disquete?

Experimento com Linux: Misturando Sabayon com Gentoo

IPCMSG: Comunicação inter-processos sem magia negra

Ksplice - atualizando o kernel sem necessidade de reboot

Compilando o Kernel do OpenBSD 4.3 (GENERIC)

#1 Comentário enviado por removido em 21/04/2006 - 11:54h
Ótimo artigo, vou testar em breve.
Só achei que o artigo foca a instalação usando apt. Poderia ser dado exemplos de instação em Fedora com uso de YUM, e até mesmo compilação manual via fonte.
Além do mais, faltou citar que as portas envolvidas no trabalho devem ser liberadas no firewall.
Abraços e parabéns :)
#2 Comentário enviado por msinhore em 21/04/2006 - 13:46h
Olá Otavio,

Eu trabalho somente com Debian e por esse motivo não citei como configurar em outras distribuições. Acredito que os passos para configuração dos aplicatívos deva ser a mesma.
Com relação ao firewall, ele não era objeto do artigo e por esse motivo não citei sua configuração.

Abraços e sucesso.
#3 Comentário enviado por psabs em 21/04/2006 - 20:04h
Olá,

Antes de mais nada , parabéns pelo artigo.

Vc saberia se o distcc e o ccache funcionariam para compilar outros projetos tal como OpenOffice, gnome etc... ? Ou ele apenas serve pra compilar kernel ?

[]
#4 Comentário enviado por removido em 21/04/2006 - 20:31h
O homem enlouqueceu!!!!!!!!!!!...........
Realmente, não faltava mais nada...
O que esse tal de linux não é capaz, hein???
;-P
#5 Comentário enviado por thelinux em 24/04/2006 - 08:46h
Ao Marco Sinhoreli - Parabéns pelo ótimo tutorial.

Ao otavio - cara, isto aqui não é curso. O cara fez um excelente tutorial.
#6 Comentário enviado por msinhore em 24/04/2006 - 10:33h
Olá psabs,

Sem nenhuma restrição para compilar outros códigos. Lembre-se de declarar e exportar as mesmas variaveis antes de chamar o gcc.

Abraços
#7 Comentário enviado por removido em 24/04/2006 - 17:29h
thelinux, não me leve a mal. Realmente é um ótimo artigo.
Apenas expressei uma ideia complementar ao artigo.
Afinal, esse espaço é exatamente para isso, para discução de ideias que possam não apenas elogiar o artigo, mas agregar mais informação :)
Abraços
#8 Comentário enviado por thelinux em 24/04/2006 - 17:43h
Tranquilo otavio. Grande abraço. Bola para frente.
#9 Comentário enviado por israel_miranda em 13/12/2007 - 15:36h
UAU!!!
Cara, eu sei da existência do projeto do bewolf para computação distribuida, mas não fazia idéia que havia um software assim para GCC!!!

Muito bom o artigo, meus parabéns!!!

Contribuir com comentário

Entre na sua conta para comentar.