Gerenciamento de sistemas GNU/Linux: do computador pessoal à rede corporativa Daniel Weingaertner Departamento de Informática – UFPR Centro de Computação Cientı́fica e Software Livre – C3SL Programa de Extensão “Conhecendo Padrões Abertos de Interoperabilidade” 02.03.2009 Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 1 / 37 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 2 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 3 / 37 Apresentação Centro de Computação Cientı́fica e Software Livre – C3SL Departamento de Informática – UFPR Laboratórios de Ensino e Pesquisa: I I I I I I Debian GNU/Linux (stable) 2000 usuários, 300 terminais, 10 servidores de processamento. Hardware heterogêneo 5 TB de disco, quota de 2 GB Rede Gigabit, uplink 2 Gb Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 4 / 37 Apresentação Centro de Computação Cientı́fica e Software Livre – C3SL Departamento de Informática – UFPR Laboratórios de Ensino e Pesquisa: I I I I I I Debian GNU/Linux (stable) 2000 usuários, 300 terminais, 10 servidores de processamento. Hardware heterogêneo 5 TB de disco, quota de 2 GB Rede Gigabit, uplink 2 Gb Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 4 / 37 Apresentação Servidores do C3SL: Mirror (Sourceforge, Debian, Ubuntu, KDE, OOffice, Mozilla, Kernel) Computação cientı́fica Sistemas Web (revistas da UFPR, biblioteca digital) Wiki, GIT, Jabber Servidor de Xadrez Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 5 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 6 / 37 Breve histórico do GNU/Linux Década de 80: software vinha de “brinde” Criação do projeto GNU (www.gnu.org) Free Software Foundation (www.fsf.org) Linus Torwalds cria o Linux (www.kernel.org) Surge o GNU/Linux Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 7 / 37 Qual o “melhor” Linux? Distribuições: diferentes empacotadores Principais distribuições: I I I I I I Slackware Debian SUSE (OpenSUSE) RedHat (Fedora) Ubuntu (KUbuntu, XUbuntu) Kurumim Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 8 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 9 / 37 GNU/Linux no Computador Pessoal Escolher uma distribuição Utilizar Live-CD Múltiplos sistemas operacionais (particionamento) Gerenciador de janelas Quais programas existem para GNU/Linux? Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 10 / 37 Vantagens e Desvantagens do GNU/Linux É gratuito Atualizações automáticas e freqüentes Sistema estável e “resistente” a vı́rus (kernel mode/user mode) Permite adaptações e configurações Dificuldades com drivers Softwares desenvolvidos para Windows “Ninguém” usa Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 11 / 37 Vantagens e Desvantagens do GNU/Linux É gratuito Atualizações automáticas e freqüentes Sistema estável e “resistente” a vı́rus (kernel mode/user mode) Permite adaptações e configurações Dificuldades com drivers Softwares desenvolvidos para Windows “Ninguém” usa Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 11 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 12 / 37 O Sistema Multiseat Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 13 / 37 O Sistema Multiseat Um computador atendendo a diversos usuários simultâneamente Um conjunto de dispositivos de E/S para cada usuário Utilizado em mais de 2000 escolas no Paraná Live-CD do Ubuntu Como instalar: wiki.c3sl.ufpr.br/multiseat Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 14 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 15 / 37 O que é um Sistema Terminal-Servidor? Volta às origens da computação (mainframe) Poucas máquinas com disco, de grande porte Servidores de processamento compartilhados Terminais de usuário bootam pela REDE, sem disco Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 16 / 37 Sistema Terminal-Servidor Básico Servidor possui instalação GNU/Linux Terminais montam uma raiz própria exportada pelo servidor (ro) Utilizam memória RAM como disco local (rw) Requisitos: I I I I Rede confiável e rápida DHCP, PXE NFS xdmcp Exemplo: LTSP Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 17 / 37 Sistema Terminal-Servidor Básico Servidor possui instalação GNU/Linux Terminais montam uma raiz própria exportada pelo servidor (ro) Utilizam memória RAM como disco local (rw) Requisitos: I I I I Rede confiável e rápida DHCP, PXE NFS xdmcp Exemplo: LTSP Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 17 / 37 Sistema Terminal-Servidor Básico Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 18 / 37 Sistema Terminal-Servidor Básico Vantagens: I I I I Redução nos custos de gerenciamento Menos máquinas para instalar e administrar Reaproveitamento de configurações comuns Maior segurança para os dados Desvantagens: I I I I I E se a rede falhar? E se o servidor falhar? Baixo desempenho do protocolo X Dispositivos de I/O Subutilização da capacidade de processamento local Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 19 / 37 Sistema Terminal-Servidor Básico Vantagens: I I I I Redução nos custos de gerenciamento Menos máquinas para instalar e administrar Reaproveitamento de configurações comuns Maior segurança para os dados Desvantagens: I I I I I E se a rede falhar? E se o servidor falhar? Baixo desempenho do protocolo X Dispositivos de I/O Subutilização da capacidade de processamento local Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 19 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 20 / 37 E quando um servidor não é suficiente? Separar servidor de disco (/home), email Acrescentar servidores de processamento Problemas: I I I Vários servidores para instalar, atualizar, . . . Sincronia entre os servidores (software, configs, . . . ) Aumento dos custos de gerenciamento Solução: aumentar em um nı́vel o modelo terminal-servidor I I Transformar servidores em ”super-terminais” Compartilhar a mesma raiz para todos os servidores Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 21 / 37 E quando um servidor não é suficiente? Separar servidor de disco (/home), email Acrescentar servidores de processamento Problemas: I I I Vários servidores para instalar, atualizar, . . . Sincronia entre os servidores (software, configs, . . . ) Aumento dos custos de gerenciamento Solução: aumentar em um nı́vel o modelo terminal-servidor I I Transformar servidores em ”super-terminais” Compartilhar a mesma raiz para todos os servidores Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 21 / 37 E quando um servidor não é suficiente? Separar servidor de disco (/home), email Acrescentar servidores de processamento Problemas: I I I Vários servidores para instalar, atualizar, . . . Sincronia entre os servidores (software, configs, . . . ) Aumento dos custos de gerenciamento Solução: aumentar em um nı́vel o modelo terminal-servidor I I Transformar servidores em ”super-terminais” Compartilhar a mesma raiz para todos os servidores Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 21 / 37 Servidores de Processamento sem Disco Principais Dificuldades: Espaço em disco para escrita (/var, /tmp, . . . ) Diferenças em configurações (/etc) Alternativas: Utilizar diversos pontos de montagem I I I montar alguns diretórios como RW manter diretórios de configurações para cada servidor alterações frequentes Utilizar um Sistema de arquivos em camadas: AUFS Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 22 / 37 Servidores de Processamento sem Disco Principais Dificuldades: Espaço em disco para escrita (/var, /tmp, . . . ) Diferenças em configurações (/etc) Alternativas: Utilizar diversos pontos de montagem I I I montar alguns diretórios como RW manter diretórios de configurações para cada servidor alterações frequentes Utilizar um Sistema de arquivos em camadas: AUFS Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 22 / 37 Servidores de Processamento sem Disco Principais Dificuldades: Espaço em disco para escrita (/var, /tmp, . . . ) Diferenças em configurações (/etc) Alternativas: Utilizar diversos pontos de montagem I I I montar alguns diretórios como RW manter diretórios de configurações para cada servidor alterações frequentes Utilizar um Sistema de arquivos em camadas: AUFS Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 22 / 37 AUFS: Another UnionFS Sistema de arquivos em camadas Instalado a partir de um patch no kernel Só é necessário na máquina que vai montar o sistema de arquivos Permite a formação de uma pilha de sistemas de arquivos Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 23 / 37 Servidores de Processamento sem Disco + AUFS Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 24 / 37 Sistema Terminal-Servidor em Cascata Vantagens: Novos servidores são facilmente acrescentados Em caso de invasão, basta remover diretório RW Terminais podem utilizar mesmo modelo (mini-servidores) Nem tudo são flores: Atualizações nos diretórios inferiores causa problemas Ainda é instável. Não recomendável para alta disponibilidade crontab dos usuários fica no diretório RW Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 25 / 37 Sistema Terminal-Servidor em Cascata Vantagens: Novos servidores são facilmente acrescentados Em caso de invasão, basta remover diretório RW Terminais podem utilizar mesmo modelo (mini-servidores) Nem tudo são flores: Atualizações nos diretórios inferiores causa problemas Ainda é instável. Não recomendável para alta disponibilidade crontab dos usuários fica no diretório RW Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 25 / 37 Sistema Terminal-Servidor em Cascata Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 26 / 37 E sempre surgem novas demandas . . . Servidores 64 bits e 32 bits Diferentes versões de um mesmo software Usuários necessitam de privilégios de root Máquinas para testes Muitos serviços dependendo dos mesmos recursos Cada usuário quer uma distribuição Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 27 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 28 / 37 Virtualização de Servidores: VServer Cria servidores virtuais Instalado a partir de um patch no kernel e de aplicativos Kernel roda na máquina base, e um só, mas isola vservers O servidor virtual: I I I I Atua em contexto de processos e memória independentes Possui uma raiz própria Usuário root isolado em cada vserver Não possui /proc ou /dev Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 29 / 37 Virtualização de Servidores: VServer Cria servidores virtuais Instalado a partir de um patch no kernel e de aplicativos Kernel roda na máquina base, e um só, mas isola vservers O servidor virtual: I I I I Atua em contexto de processos e memória independentes Possui uma raiz própria Usuário root isolado em cada vserver Não possui /proc ou /dev Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 29 / 37 Virtualização de Servidores: VServer Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 30 / 37 Exemplos de uso da virtualização Servidor WEB: I I 9TB de disco, 32GB RAM, 2 processadores Dual-core Mirror, Biblioteca Digital, Revistas Eletrônicas Servidor de Desenvolvimento: I I 2TB de disco, 32GB RAM, 2 processadores Dual-core GIT, Servidor de xadrez, Wiki, Jabber Cluster para Computação Cientı́fica Laboratórios de ensino Servidor de boot: virtualizando . . . Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 31 / 37 Exemplos de uso da virtualização Servidor WEB: I I 9TB de disco, 32GB RAM, 2 processadores Dual-core Mirror, Biblioteca Digital, Revistas Eletrônicas Servidor de Desenvolvimento: I I 2TB de disco, 32GB RAM, 2 processadores Dual-core GIT, Servidor de xadrez, Wiki, Jabber Cluster para Computação Cientı́fica Laboratórios de ensino Servidor de boot: virtualizando . . . Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 31 / 37 Um vserver por computador Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 32 / 37 Múltiplos vserver por computador Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 33 / 37 Sumário 1 Apresentação 2 Breve Histórico do GNU/Linux 3 GNU/Linux no Computador Pessoal 4 Compartilhamento do Computador 5 O Sistema Terminal-Servidor 6 Aumentando a Escala 7 Servidores Virtuais 8 Conclusão Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 34 / 37 Conclusão Investir no conhecimento do sistema operacional GNU/Linux Ajustar a estrutura do sistema às necessidades Reduzir a quantidade de máquinas com disco Maximizar compartilhamento de configurações Construir particularidades sobre generalidades Isolar serviços independentes Virtualização de processamento Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 35 / 37 Algumas Referências http://www.c3sl.ufpr.br http://www.kernel.org http://aufs.sourceforge.net http://linux-vserver.org http://fuse.sourceforge.net/sshfs.html http://www.ltsp.org/ Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 36 / 37 Contato Daniel Weingaertner [email protected] www.inf.ufpr.br/danielw Daniel Weingaertner (C3SL-UFPR) Gerenciamento de sistemas GNU/Linux DCC/Udesc 37 / 37