INSTALAÇÃO DE UM ÃO DE UM CLUSTER PARA COM PUTA
Transcrição
INSTALAÇÃO DE UM ÃO DE UM CLUSTER PARA COM PUTA
Kienetz, E. B.1; Canal, A. P. 1 INTRODUÇÃO – Um cluster ou aglomerado é formado por um conjunto de computadores, construído a partir de máquinas convencionais (não especializadas e portanto mais baratas) interconectadas, comunicando-se para trabalhar como se fossem uma única máquina de grande porte. Há diversos tipos de cluster, um deles é o da classe Beowulf. Beowulf é um projeto de aglomerados de computadores para computação paralela, usando computadores pessoais, criado por Donald Becker, da NASA, e hoje a arquitetura deste projeto é usada em todo mundo, principalmente para programação científica [1]. Para executar tarefas paralelamente, num cluster, utiliza-se por exemplo de uma biblioteca para programação paralela tal como a MPICH2, desenvolvida pela equipe de cientistas do Laboratório Nacional Argonne, nos Estados Unidos. É este tipo de configuração de cluster, focado em alto desempenho, que o Laboratório de Programação Paralela (LPP) da UNIFRA utiliza e cuja instalação e configuração será descrita. INFRA-ESTRUTURA FÍSICA • 3 computadores • processador Pentium 4 de 2.20GHz • disco rígido de 40GB • placa de rede 100Mbits • 256MB de memória RAM (exceto o computador mestre com 512MB) • Interconectados via switch gigabit SISTEMA OPERACIONAL – O sistema operacional utilizado como base para a instalação e configuração do cluster e seus serviços foi o Linux. “Linux é um sistema operacional tipo Unix que foi desenvolvido por Linus Torvalds a partir do código fonte do sistema Minix. O Linux é um dos mais proeminentes exemplos de desenvolvimento com código aberto e de software livre. O seu código fonte está disponível sob licença GPL para qualquer pessoa utilizar, estudar, modificar e distribuir livremente. GNU/Linux refere-se ao sistema operacional Linux e ao conjunto de programas GNU desenvolvidos pela Free Software Foundation - FSF. Como os casos de sistemas de núcleo (kernel) Linux sem os programas do sistema GNU são raros, freqüentemente GNU/Linux e Linux são usados como sinônimos, embora Linux possa fazer referência apenas ao seu núcleo.” [2] A distribuição Slackware Linux versão 12.0 foi instalada, através das séries A, AP, D, L, N e TCL, visto que as demais tratam-se de interfaces gráficas e outros recursos não utilizados. BIBLIOTECA DE PROGRAMAÇÃO PARALELA – A biblioteca MPICH2 [3] é a implementação da especificação padrão MPI-2 (Message Passing Interface). Para que se possa utilizar a MPICH2 para programação paralela, todas as máquinas envolvidas devem de alguma maneira ter acesso ao mesmo executável e dados. Isto se obtém através do uso de um sistema de arquivos de rede. Além disto, a MPICH2 exige também acesso irrestrito à execução de comandos nas estações remotas (escravas), que neste caso foi obtido através do uso do RSH. Para instalação da MPICH2 basta descompactar o código-fonte, acessar a pasta criada e executar: ./configure make make install E criar o arquivo /etc/mpd.conf, secretword=palavrasecreta com permissão 600, com: Para habilitar acesso ao MPD pelos usuários (antes de criá-los), deve-se criar o arquivo, com permissão 600, /etc/skel/.mpd.conf com: MPD_USE_ROOT_MPD=1 secretword=palavrasecreta SISTEMA DE ARQUIVOS DE REDE – O NFS (Network File System) [4] foi desenvolvido para permitir que as máquinas possam montar uma partição do disco de uma máquina remota para acesso como se fosse um disco local. Assim é permitido acesso rápido e compartilhamento fácil de arquivos em uma rede (particularmente Linux). Duas máquinas do cluster da UNIFRA montam a partição de dados (/home) da máquina mestre, de forma que todas tenham acesso aos mesmos arquivos (no caso os programas a serem executados paralelamente). Para que o servidor (mestre), exporte (compartilhe) a pasta /home, é editado o arquivo /etc/exports e adicionadas as seguintes linhas: /home 192.168.0.2(rw,sync,no_subtree_check) /home 192.168.0.3(rw,sync,no_subtree_check) Os endereços IP se referem às máquinas que terão acesso à pasta compartilhada. Nos clientes (escravos) basta substituir a linha de montagem da partição /home no /etc/fstab com: 192.168.0.1:/home /home nfs defaults 0 0 A execução dos serviços necessários para execução do servidor e clientes NFS seguiu as orientações do NFS HOW-TO [3]. ACESSO REMOTO – O RSH (Remote Secure Shell) permite o acesso e execução remota de comandos de forma segura. Para liberar o acesso do servidor (que dispara os processos) aos clientes, adiciona-se no arquivo /etc/hosts.equiv de todas as máquinas o nome de cada uma, para indicar que estas são “equivalentes”. Por exemplo: localhost mestre escravo1 escravo2 Estes nomes devem estar no arquivo /etc/hosts de cada máquina, sendo possível executar ping com sucesso para cada uma. Adicionalmente deve-se ter as seguintes linhas no /etc/inetd.conf das máquinas escravo, para permitir acesso e execução dos comandos remotos: shell stream tcp nowait root /usr/sbin/tcpd in.rshd -h login stream tcp nowait root /usr/sbin/tcpd in.rlogind -h exec stream tcp nowait root /usr/sbin/tcpd in.rexecd -h AUTENTICAÇÃO CENTRALIZADA – O serviço NIS (Network Information Service) [5] foi configurado adicionalmente para facilitar a administração dos usuários do cluster. Nos clientes foi adicionada no /etc/yp.conf a linha: ypserver mestre E as seguintes no /etc/nsswitch.conf: passwd: compat group: compat passwd_compat: nis group_compat: nis shadow_compat: nis No servidor basta seguir as instruções do NIS HOWTO. CONSIDERAÇÕES FINAIS – Com a instalação de versões atuais dos softwares, obtêm-se maior estabilidade, eficiência e acesso a recursos antes não disponíveis. Destacam-se as novas funcionalidades da biblioteca MPICH2, tais como MPI-IO, criação dinâmica de processos, multithreading, mecanismos de comunicação e gerenciadores de processos alternativos. REFERÊNCIAS [1] Dantas, M. Computação Distribuída de Alto Desempenho: redes, clusters e grids computacionais. Rio de Janeiro: Axcel Books, 2005. [2] Wikipedia. Linux. Disponibilidade em: http://pt.wikipedia.org/wiki/Linux. Acesso em 27 set. 2007. [3] Argonne National Laboratory. MPICH2. Disponibilidade em: http://www-unix.mcs.anl.gov/mpi/mpich2/ . Acesso em 28 set. 2007. [4] Smith, C. Linux NFS-HOWTO. Disponibilidade em: http://nfs.sourceforge.net/nfs-howto/ . Acesso em 28 set. 2007. [5] Kukuk, T. The Linux NIS(YP)/NYS/NIS+ HOWTO. Disponibilidade em: http://www.linux-nis.org/nis-howto/ 1 Curso de Ciência da Computação do Centro Universitário Franciscano