Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTALAÇÃO E CONFIGURAÇÂO DE UM CLUSTER LTSP COM BALANCEAMENTO DE CARGA Contribuição: André Giacomin Update: Maicon Grahl ÍNDICE 1 – CONSIDERAÇÕES INICIAIS 1.1 Requisitos 1.2 Funcionamento 2 – CLUSTER LTSP 2.1 Configurações iniciais 2.2 LTSP-Root; 2.3 LTSP-Control; 2.4 LTSP-LoadBalancer; 2.5 Serviços; 2.6 Arquivos de configuração; 3 – SERVIDOR DE APLICAÇÃO LTSP 3.1 Instalação; 3.2 Serviços; 3.3 Comandos úteis; 4 – REFERẼNCIAS 1 - CONSIDERAÇÕES INICIAIS 1.1 Requisitos - ThinClients/PCs com suporte a boot pela rede (PXE); A maioria dos thinclients e PCs já possuem este recurso. Talvez seja necessário habilitar na BIOS. - DHCP Server pre-configurado para este serviço; É necessário que o servidor DHCP esteja com MAC ADDRESS dos Thinclients fixados, redirecionando-os para o LTSP-Cluster e apontando para o arquivo de imagem, conforme o exemplo abaixo: # CRIAR UM GRUPO NO SERVIDOR DHCP PARA APONTAR PARA O ARQUIVO DE IMAGEM # E ADICIONAR TODAS AS MAQUINAS LTSP NESSE GRUPO group { option root-path "/opt/ltsp/i386"; next-server 192.168.0.41; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } #LTSP FIXADO host NOMEDOHOST { hardware ethernet 08:00:27:56:8D:EE; fixed-address 192.168.3.65; } 1.2 Funcionamento: - O Thinclient devidamente configurado irá inicializar através do protocolo PXE, que solicitará um endereço IP do Servidor de DHCP; - O DHCP irá passar parâmetros adicionais que conterão IP e localização da imagem do sistema a ser carregada; - De posse dessas informações, o Thinclient efetua o download da imagem do sistema através do protocolo TFTP e o armazena em memória RAM; - Ao efetuar o login, LTSP-Cluster avalia qual o melhor nó (LTSP-AppServer), de acordo com suas regras de balanceamento e faz a conexão com o servidor X do LTSP-AppServer; A partir desse ponto, todo os processos são tratados pelo LTSP-AppServer e as saídas (informações gráficas) são enviada através da rede ao Thinclient. 2 – CLUSTER LTSP 2.1 Configurações iniciais Instalações de pacotes essenciais para o funcionamento do Cluster LTSP. - Atualizar a instalação linux: apt-get update && apt-get upgrade - Instalar pacotes básicos: apt-get install openssh-server tftpd-hpa - Ajustar configuração da linguagem: sudo locale-gen --no-purge --lang pt_BR 2.2 LTSP-Root Cria uma instalação linux mínima para que o usuário efetue o login. - Instalar pacotes necessários: apt-get install ltsp-server --no-install-recommends - Gerar a instalação para efetuar o login: ltsp-build-client --arch i386 --ltsp-cluster --prompt-rootpass ... Server: 192.168.0.161 (O próprio IP. Neste caso, 192.168.0.161) Port: 80 (padrão) Enable SSL: No (padrão) Inventory: Yes (padrão) Timeout: 2 (padrão) ... Enter new UNIX password: ltsp Retype new UNIX password: ltsp - As informações deste procedimento foram geradas no arquivo "/opt/ltsp/i386/etc/ltsp/getltscfg-cluster.conf" 2.3 LTSP-Control Instalação e configuração da interface que irá gerenciar os terminais LTSPs (Thinclients). - Instalar os pacotes necessários apt-get install ltsp-cluster-control postgresql --no-install-recommends - Configurar o LTSP-Control: vim /etc/ltsp/ltsp-cluster-control.config.php db_password: ltsp loadbalancer: 192.168.0.161 - Criar usuário no banco: sudo -u postgres createuser -SDRIP ltsp Enter password for new role: ltsp Enter it again: ltsp - Criar a base no banco: sudo -u postgres createdb ltsp -O ltsp - Carregar schemas e functions no banco: cd /usr/share/ltsp-cluster-control/DB/ cat schema.sql functions.sql | psql -h localhost ltsp ltsp - Baixar Scripts de importação e configuração do LTSP-Control: cd /root wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control\/download/head%3A/controlcenter.py-20090118065910-j5inpmeqapsuuepd-3/control-center.py wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control\/download/head%3A/rdpldm.config-20090430131602-g0xccqrcx91oxsl0-1/rdp%2Bldm.config - Ajustar as configurações do banco no script de configuração: vim control-center.py db_user="ltsp" db_password="ltsp" db_host="localhost" db_database="ltsp" - Instalar suporte a Python PostgreSQL: apt-get install python-pygresql - Executar o script de configuração (parando o servidor apache antes): /etc/init.d/apache2 stop python control-center.py rdp+ldm.config /etc/init.d/apache2 start - Acessar via browser o link a seguir "http://192.168.0.161/ltsp-cluster-control/Admin/" e configurar os seguinte parâmetros: LANG='pt_BR.UTF-8' LDM_DIRECTX='True' LDM_SERVER='%LOADBALANCER%' LOCAL_APPS_MENU='True' SCREEN_07='ldm' TIMESERVER='192.168.0.9' XKBLAYOUT='br' XKBVARIANT='abnt2' - Configurar autenticação para acesso ao "http://192.168.0.161/ltsp-cluster-control/Admin/": htpasswd -c /usr/share/ltsp-cluster-control/Admin/.htpasswd admin onde: /usr/share/ltsp-cluster-control/Admin/ → caminho do conteúdo da página .htpasswd → arquivo com a senha cadastrada admin → usuário para acessar - Adicionar as seguintes linhas no arquivo “ltsp-cluster-control.conf”, em <Directory /usr/share/ltsp-cluster-control/Admin> vim /etc/apache2/conf.d/ltsp-cluster-control.conf AuthType Basic AuthName "Acesso Restrito: " AuthUserFile "/usr/share/ltsp-cluster-control/Admin/.htpasswd" Require valid-user deve ficar dessa maneira: <Directory /usr/share/ltsp-cluster-control/Admin> Options +Indexes Order allow,deny Allow from all AuthType Basic AuthName "Acesso Restrito: " AuthUserFile "/usr/share/ltsp-cluster-control/Admin/.htpasswd" Require valid-user </Directory> 2.4 LTSP-LoadBalancer - Instalar pacote do loadbalancer: apt-get install ltsp-cluster-lbserver --no-install-recommends - Configurar o loadbalancer, adicionando o IP e o nome do servidor de aplicação LTSP, conforme o exemplo abaixo: vim /etc/ltsp/lbsconfig.xml <node address="http://192.168.0.163:8000" name="ltsp-appteste"/> e na tag “rules, fazer alterações para que fique desta maneira: <rules> <!-- <variable name="LOADAVG" weight="25"> <rule capacity=".7"/> </variable> --> <variable name="NBX11SESS" weight="55"> <rule capacity="50" critical="45" /> </variable> <variable name="MEMUSED" weight="35"> <rule capacity="$MEMTOTAL-100000"/> </variable> </rules> - Remover/comentar o seguinte código do arquivo “/usr/share/pyshared/lbserver/lbserver.py”: vim /usr/share/pyshared/lbserver/lbserver.py # # Compute total Weight # sumWeight=0 # for w in tabNodesWeight: sumWeight+=w # if sumWeight==0: # return None # # Choose a random node, probability depend on node Weight # rnd=random.randint(1,sumWeight) # idx=0 # nodeId=-1 # while idx < rnd: # nodeId+=1 # idx+=tabNodesWeight[nodeId] # return tabNodes[nodeId].values[self._lbServer.returns].value e inserir o seguinte código logo após: #Weight node nodeId = 0 maxWeight = 0 for i in range(len(tabNodes)): if tabNodes[i].lastWeight > maxWeight: maxWeight = tabNodes[i].lastWeight nodeId = i return tabNodes[nodeId].values[self._lbServer.returns].value Obs: Esta alteração fará com que o balanceamento seja “um pra lá e um pra cá”, fazendo com que a carga fique divida igualmente entre todos os nós. Reiniciar o sistema: reboot 2.5 Serviços Ao final do procedimento, os seguintes serviços devem estar ativos: Obs: talvez seja necessário iniciar o nbd-server manualmente no caso do sistema não ser reiniciado. - tftpd; - postgresql; - apache2; - nbd-server; - ltsp-cluster-lbserver (python); 2.6 Arquivos de configuração - Configuração da imagem dos terminais (PXE): /opt/ltsp/i386/etc/ltsp/getltscfg-cluster.conf Obs: se alterar alguma configuração nesse arquivo, executar no bash: ltsp-update-sshkeys && ltsp-update-image --arch 1386 - Configurações gerais: /etc/ltsp/ltsp-cluster-control.config.php- Scripts de criação das tabelas do postgres: control-center.py Obs: Script baixado pelo comando 'wget' em /root - Configuração das sessões pelo navegador: http://192.168.0.161/ltsp-cluster-control/Admin/ - Configuração dos nós: /etc/ltsp/lbsconfig.xml 3 – SERVIDOR DE APLICAÇÃO LTSP 3.1 Instalação A partir de uma instalação padrão Linux: - Atualizar a instalação: apt-get update && apt-get upgrade - Instalar pacotes básicos: apt-get install openssh-server python-dbus ltspfs - Instalar pacotes do LTSP AppServer: apt-get install ltsp-server ltsp-cluster-lbagent ltsp-cluster-accountmanager - Remover pacotes desnecessários: apt-get remove --purge gnome-screensaver compiz - Remover serviços desnecessários: update-rc.d -f nbd-server remove update-rc.d -f gdm remove update-rc.d -f bluetooth remove update-rc.d -f pulseaudio remove - Criar arquivo de configuração para cancelar o pulseaudio na inicialização quando inativo, com o seguinte conteúdo: vim /etc/xdg/autostart/pulseaudio-module-suspend-on-idle.desktop [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=PulseAudio Session Management Comment=Load module-suspend-on-idle into PulseAudio Exec=pactl load-module module-suspend-on-idle Terminal=false Type=Application Categories= GenericName= - Por padrão o script de montagem de homes está para executar no /etc/profile, comentar a linha do script em /etc/profile e depois: vim /etc/xdg/autostart/montagem-homes-pam.desktop [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=Pam Moun Comment=Pam Mount Exec=montagem-homes-pam Terminal=false Type=Application Categories= GenericName= - Ajustar a cron para executar o script de atulizar o papel de parede e a ajustar a data: crontab -e # Atualizar Papel de parede 0 12 * * 1-6 /usr/local/bin/atualizar-papel-parede # Atualizar Data/Hora 0 12 * * * /usr/sbin/ntpdate ntp.univates.br - Reiniciar o sistema: reboot 3.2 Serviços Ao final do procedimento, os seguintes serviços devem estar ativos: - ltsp-cluster-accountmanager (python) - ltsp-cluster-lbagent (python) 3.3 Comandos úteis - Listar usuários conectados: w - Contar usuários conectados: w | wc -l - Matar determinado processo de determinado usuário: ps aux | grep <usuario> | grep <processo> | awk '{print $2}' | xargs kill -9 - Matar todos os processos de determinado usuário: kill -9 `ps -fu <usuario> |awk '{ print $2 }'|grep -v PID` ou pkill -U <usuario> 4 – REFERÊNCIAS Informações gerais: http://wiki.ltsp.org/wiki/LTSPedia Ubuntu-LTSP: https://help.ubuntu.com/community/UbuntuLTSP/ LTSP-Cluster: https://www.ltsp-cluster.org/documentation/howto/openvz-setup https://help.ubuntu.com/community/UbuntuLTSP/LTSP-Cluster
Compartilhar