GER-2010-1

De MediaWiki do Campus São José
Revisão de 09h46min de 11 de fevereiro de 2010 por Msobral (discussão | contribs)
Ir para navegação Ir para pesquisar

Gerência de Redes - semestre 2010-1

Informações gerais

Professor: Marcelo Maia Sobral
Email: msobral@gmail.com
Skype: mm-sobral
Lista de email (forum): ger-ifsc@googlegroups.com
Atendimento paralelo: 2a feira 10h - 12 h, 4a feira 10h - 12 h ou 16h - 17 h (no Laboratório de Desenvolvimento de Tele)
Reavaliação (recuperação): no final do semestre

Referências adicionais

08/02: Introdução

Apresentação da disciplina e do ambiente de trabalho. Instalação do Ubuntu Linux Server 9.10.

Foi apresentada uma visão geral sobre Gerência de Redes, que trata do projeto, implantação, manutenção e monitoramento de serviços de rede. Na disciplina há uma ênfase em servidores, que são equipamentos (usualmente computadores) que disponibilizam os serviços de rede. Normalmente existem vários servidores em uma rede, os quais operam com algum grau de integração (sejam as contas de usuários e grupos, sistemas de arquivos compartilhados, nomeação de recursos, e outros possíveis serviços). Uma discussão mais aprofundada se encontra na apostila, nos capítulos 1 e 11.

Instalou-se o Ubuntu Server 9.10 na máquina virtual tecnologo-ger2 (VirtualBox). Usou-se um particionamento manual que isola os sistemas de arquivos / (raiz), /usr, /var e /home, além da partição de swap. Enfatizou-se que o uso de apenas um sistema de arquivos, como sugerido pelo instalador do sistema operacional, não é a melhor opção para um servidor. Do contrário, se um sistema de arquivos ficar cheio (por exemplo, devido aos arquivos de usuários), podem-se comprometer os serviços mantidos no servidor, porque é comum que os processos que os implementam precisem criar arquivos temporários para trabalharem. Outros motivos têm relação com a intergidade dos sistemas de arquivos, pois aqueles que sofrem modificações continuamente estão mais sujeitos a ficarem corrompidos em caso de desligamento súbito da máquina, apesar de isto ser mais difícil atualmente com sistemas de arquivos com journaling. Finalmente, em servidores com mais de um volume físico para armazenamento, torna-se necessário ou interessante isolar um sistema de arquivos em um subconjunto desses volumes.

Os tamanhos escolhidos para esses sistemas de arquivos são:

  • /: 512 MB
  • /usr: 1.5 GB
  • /var: 512MB
  • swap: 512 MB
  • /home: 120 MB aprox. (o que sobrou)

Esse particionamento serviu somente para a instalação inicial, e provavelmente será modificado em breve.

O único serviço de rede instalado foi o Openssh server.

11/02: O processo de boot e instalação de software

O boot

O processo de inicialização do sistema operacional, chamado de boot. Tradicionalmente no Unix System V isto se faz com a definição de níveis de execução (runlevels) e uma tabela que descreve que processos ou serviços devem existir em cada nível. Os níveis de execução são:

  1. Monousuário (single-user), ou administrativo: usado para manutenção do sistema, admite somente o login do superusuário. Não inicia serviços de rede.
  2. Multiusuário com rede (parcial): admite logins de usuários, mas não ativa acesso a recursos de rede (como sistemas de arquivo remotos)
  3. Multiusuário com rede plena
  4. Não usado
  5. Multiusuário com rede plena e ambiente gráfico: ativa também o ambiente gráfico X11
  6. Reinício do sistema (reboot)

As distribuições Linux em geral adotam a inicialização no estilo Unix System V. No entanto, o Ubuntu usa um outro processo chamado de upstart. Esse serviço de inicialização confere maior flexibilidade e mesmo simplicidade à definição de que serviços devem ser executados. O upstart não usa o conceito de níveis de execução, mas devido à sua flexibilidade ele pode emular esse estilo de inicialização.

O upstart é implementado pelo processo init (programa /sbin/init), que é o primeiro processo criado pelo sistema operacional. Quer dizer, logo após terminar a carga e inicialização do kernel, este cria um processo que executa o programa /sbin/init. O upstart lista o subdiretório /etc/init e procura arquivos com extensão .conf. Cada arquivo desses descreve um serviço a ser controlado pelo upstart. Por exemplo, o serviço tty2 é escrito no arquivo tty2.conf:


Um exemplo de criação de serviço no upstart

Foi proposta a criação de um serviço chamado faxineiro, para remover dos diretórios temporários (/tmp e /var/tmp) todos os arquivos que não tenham sido modificados há mais de um dia. Esse novo serviço deve ser executado no boot, logo após o serviço mountall. A solução encontrada foi a seguinte:

  1. Criar o arquivo /etc/init/faxineiro.conf
  2. Adicionar o seguinte conteúdo a esse arquivo:
    start on filesystem
    task
    console output
    script
    find /tmp -type f -mtime +1 -exec rm -f {} \; -print
    find /var/tmp -type f -mtime +1 -exec rm -f {} \; -print
    echo Faxineiro executado \!\!\!
    end script
    
  3. Reiniciar o sistema para testá-lo (executar reboot)

Instalação de software

A instalação de software pode ser feita de diversas formas, dentre as quais serão destacadas três:

  1. Com utilitário apt-get: busca o software de um repositório de rede e o instala; dependências (outros softwares necessários) são automaticamente instaladas. Esses softwares buscados da rede estão no formato dpkg (Debian Package).
  2. Diretamente com utilitário dpkg: instala um software que está contido em um arquivo no formato dpkg.
  3. A partir do código fonte: busca-se manualmente na rede o código fonte do software desejado, que deve então ser compilado e instalado. Esta opção se aplica quando não existe o software no formato dpkg, ou a versão disponível em formato dpkg foi compilada de uma forma que não atende os requisitos para seu uso em seu servidor.

18/02: LVM

Armazenamento com Gerenciador de Volumes Lógicos (LVM).

22/02: Usuários e grupos

Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional.

25/02: Usuários e grupos

Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional.

01/03: Quotas de disco

Quotas de disco, que servem para limitar o uso de espaço pelos usuários. Implantação das quotas.

04/03: Agendamento de tarefas

Agendamento de tarefas administrativas com crontab.

08/03: Backups

Backups com software amanda.

11/03: Shell scripts para automatizar tarefas

15/03: Shell scripts para automatizar tarefas

18/03: Shell scripts para automatizar tarefas

25/03: 1a avaliação

1a avaliação individual