Montagem de Cluster
Artigo referente à montagem completa de um Cluster com o sistema Debian Wheezy, podendo ser adaptado para outras distribuições.
Parte 3: Cluster 1
Cluster é uma palavra da língua inglesa e significa "grupo, aglomerado". Um Cluster é um aglomerado de qualquer coisa. Um Cluster, para fins de definição do escopo do artigo, é um aglomerado de computadores.
São vários computadores trabalhando e processando em conjunto. E, para tanto, fazem uso de implementações especiais que permitem aos computadores do Cluster trocar informações e mensagens entre si e manter a unidade do processamento.
Basicamente, os Clusters dividem-se em duas categorias:
Os Cluster HA, têm por finalidade, manter os serviços de forma segura e disponível pelo maior tempo possível. Os clusters HPC, têm por finalidade, prover um grande poder computacional e uma grande capacidade de processamento.
Após os prolegômenos, sem mais delongas, vamos iniciar. Mas antes, quero deixar bem frisado que a instalação, particionamento e configuração do sistema são importantes. Atente bem para isso.
Foi optado fazer a instalação manualmente no servidor e em cada nó, pois são somente 7 máquinas e não havia pressa.
AS INSTALAÇÕES NOS NÓS FORAM REALIZADAS ACESSANDO REMOTAMENTE PELO SERVIDOR. PRIMEIRO FOI CONFIGURADO O SERVIDOR ATÉ A ETAPA DO SSH, DEPOIS FORAM REALIZADAS TODAS AS INSTALAÇÕES E CONFIGURAÇÕES DOS NÓS, E O SERVIDOR FOI TERMINADO POR ÚLTIMO.
Em caso de muitas máquinas, faça uma instalação em um nó e crie uma imagem ou copie essa instalação de outra maneira que for melhor. Na Internet existem vários tutoriais de automatização da instalação do GNU/Linux.
A montagem do Cluster foi feita manualmente, pois é um cluster heterogêneo, ou seja, as máquinas não são iguais. Porém, mesmo em caso de Cluster heterogêneo com muitas máquinas, é possível automatizar as instalações, talvez, depois tenha somente que fazer uma ou outra alteração em uma ou outra máquina, mas nada que seja difícil. A partir daqui, vamos considerar que o sistema esteja instalado e configurado. Durante o artigo, será indicado quando a instalação for do servidor e/ou dos nós.
1. Preparando o sistema (servidor e nós):
# apt-get update
# aptitude safe-upgrade
2. Instalando e atualizando pacotes (servidor e nós):
# aptitude install build-essential module-init-tools kernel-package initramfs-tools
# aptitude install autoconf libaal-dev wget liblzo2-dev gzip libncurses5 libncurses5-dev dpatch udev
Vamos instalar pacotes, a mais do que o necessário, para compilação dos programas que queremos. Caso, futuramente, for preciso compilar o kernel ou compilar e instalar um outro pacote, bastará atualizar o sistema.
# aptitude install openjdk-7-jre # Somente se for trabalhar com Java - servidor e nós
3. Se você quiser dar uma otimizadinha no sistema, siga os passos abaixo, caso contrário, go to step 4.
Servidor e nós:
# aptitude install cgroup-bin
Entrar no arquivo:
# vim /etc/rc.local
Colocar o conteúdo:
Salvar e sair.
Criar o arquivo:
# vim /usr/local/sbin/cgroup_clean
Colocar o conteúdo:
Salvar e sair.
# chmod +x /usr/local/sbin/cgroup_clean
Modificar o arquivo:
# vim /etc/bash.bashrc
Salvar e sair.
4. Instalando mais pacotes necessários (servidor e nós):
# apt-get update
# apt-get install gfortran-* # Aqui tem que ser o apt-get
Reiniciar:
# shutdown -r now
São vários computadores trabalhando e processando em conjunto. E, para tanto, fazem uso de implementações especiais que permitem aos computadores do Cluster trocar informações e mensagens entre si e manter a unidade do processamento.
Basicamente, os Clusters dividem-se em duas categorias:
- Cluster de Alta Disponibilidade (HA - High Availability)
- Cluster de Alto Desempenho de Computação (HPC - High Performance Computing)
Os Cluster HA, têm por finalidade, manter os serviços de forma segura e disponível pelo maior tempo possível. Os clusters HPC, têm por finalidade, prover um grande poder computacional e uma grande capacidade de processamento.
Após os prolegômenos, sem mais delongas, vamos iniciar. Mas antes, quero deixar bem frisado que a instalação, particionamento e configuração do sistema são importantes. Atente bem para isso.
Foi optado fazer a instalação manualmente no servidor e em cada nó, pois são somente 7 máquinas e não havia pressa.
AS INSTALAÇÕES NOS NÓS FORAM REALIZADAS ACESSANDO REMOTAMENTE PELO SERVIDOR. PRIMEIRO FOI CONFIGURADO O SERVIDOR ATÉ A ETAPA DO SSH, DEPOIS FORAM REALIZADAS TODAS AS INSTALAÇÕES E CONFIGURAÇÕES DOS NÓS, E O SERVIDOR FOI TERMINADO POR ÚLTIMO.
Em caso de muitas máquinas, faça uma instalação em um nó e crie uma imagem ou copie essa instalação de outra maneira que for melhor. Na Internet existem vários tutoriais de automatização da instalação do GNU/Linux.
A montagem do Cluster foi feita manualmente, pois é um cluster heterogêneo, ou seja, as máquinas não são iguais. Porém, mesmo em caso de Cluster heterogêneo com muitas máquinas, é possível automatizar as instalações, talvez, depois tenha somente que fazer uma ou outra alteração em uma ou outra máquina, mas nada que seja difícil. A partir daqui, vamos considerar que o sistema esteja instalado e configurado. Durante o artigo, será indicado quando a instalação for do servidor e/ou dos nós.
1. Preparando o sistema (servidor e nós):
# apt-get update
# aptitude safe-upgrade
2. Instalando e atualizando pacotes (servidor e nós):
# aptitude install build-essential module-init-tools kernel-package initramfs-tools
# aptitude install autoconf libaal-dev wget liblzo2-dev gzip libncurses5 libncurses5-dev dpatch udev
Vamos instalar pacotes, a mais do que o necessário, para compilação dos programas que queremos. Caso, futuramente, for preciso compilar o kernel ou compilar e instalar um outro pacote, bastará atualizar o sistema.
# aptitude install openjdk-7-jre # Somente se for trabalhar com Java - servidor e nós
3. Se você quiser dar uma otimizadinha no sistema, siga os passos abaixo, caso contrário, go to step 4.
Servidor e nós:
# aptitude install cgroup-bin
Entrar no arquivo:
# vim /etc/rc.local
Colocar o conteúdo:
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "1" > /dev/cgroup/cpu/user/notify_on_release
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "1" > /dev/cgroup/cpu/user/notify_on_release
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
Salvar e sair.
Criar o arquivo:
# vim /usr/local/sbin/cgroup_clean
Colocar o conteúdo:
#!/bin/sh
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
rmdir /dev/cgroup/cpu$1
fi
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
rmdir /dev/cgroup/cpu$1
fi
Salvar e sair.
# chmod +x /usr/local/sbin/cgroup_clean
Modificar o arquivo:
# vim /etc/bash.bashrc
# this file has to be sourced in /etc/profile.
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
fi
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
fi
Salvar e sair.
4. Instalando mais pacotes necessários (servidor e nós):
# apt-get update
# apt-get install gfortran-* # Aqui tem que ser o apt-get
Reiniciar:
# shutdown -r now