Logo Passei Direto
Buscar

Sistemas distribuídos

Portfólio de atividade prática de Sistemas Distribuídos. Reúne configuração do NTP em Ubuntu 18.04.1 e Windows 10; criação/gerenciamento de máquinas virtuais CentOS no Oracle VM VirtualBox; orquestração de réplicas Apache com Docker (Play With Docker); captura e análise de pacotes com Wireshark.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA</p><p>CURSO</p><p>NOME</p><p>ATIVIDADE PRÁTICA</p><p>SISTEMAS DISTRIBUÍDOS</p><p>CIDADE</p><p>ANO</p><p>NOME</p><p>ATIVIDADE PRÁTICA</p><p>SISTEMAS DISTRIBUÍDOS</p><p>Trabalho apresentado à Universidade, como requisito parcial para a obtenção de média semestral nas disciplinas norteadoras do semestre letivo.</p><p>Tutor (a): INSERIR NOME</p><p>CIDADE</p><p>ANO</p><p>SUMÁRIO</p><p>INTRODUÇÃO	3</p><p>MÉTODOS E RESULTADOS	4</p><p>CONCLUSÃO	11</p><p>REFERÊNCIAS BIBLIOGRÁFICAS	12</p><p>INTRODUÇÃO</p><p>Este portfólio de aula prática de sistemas distribuídos reúne um conjunto de atividades que abordam aspectos fundamentais para o funcionamento eficiente de redes e sistemas em ambientes distribuídos. A sincronização de relógios entre máquinas servidoras e clientes é crucial para a operação adequada de diversos serviços, como autenticação de usuários e acesso remoto. Para isso, a primeira atividade se dedica à configuração do protocolo NTP (Network Time Protocol) em sistemas operacionais GNU/Linux e Windows, garantindo que todos os dispositivos envolvidos operem com horários sincronizados.</p><p>Outra habilidade essencial em ambientes distribuídos é a criação e gerenciamento de máquinas virtuais, abordada na segunda atividade. O uso de um sistema operacional como CentOS, através do software Oracle VM VirtualBox, permite a simulação e o teste de sistemas de forma isolada e controlada. Isso é de grande importância para a replicação de ambientes reais e para o estudo de novas ferramentas e configurações.</p><p>A terceira atividade introduz o uso do Docker para orquestrar servidores web em clusters, permitindo uma visão prática do conceito de escalabilidade e alta disponibilidade. Por meio da plataforma “Play With Docker”, é possível criar e gerenciar réplicas de servidores Apache em um ambiente de laboratório, facilitando a experimentação e o aprendizado do uso de containers em sistemas distribuídos.</p><p>Finalmente, a última atividade explora o uso do Wireshark, um poderoso analisador de pacotes de rede, que permite capturar, inspecionar e analisar o tráfego em uma rede em tempo real. Este tipo de ferramenta é essencial para o diagnóstico de problemas em redes e para a compreensão detalhada do funcionamento de protocolos de comunicação.</p><p>Com estas atividades, o portfólio proporciona uma formação prática sólida em áreas fundamentais dos sistemas distribuídos, preparando o aluno para lidar com desafios comuns em redes e infraestruturas computacionais distribuídas.</p><p>MÉTODOS E RESULTADOS</p><p>Atividade 1 – Conceitos de Sistemas Distribuídos</p><p>A sincronização de relógios entre máquinas cliente e servidor é um aspecto fundamental em sistemas distribuídos, especialmente em serviços sensíveis ao tempo, como acesso remoto e autenticação de usuários. Discrepâncias significativas no horário entre esses sistemas podem comprometer a funcionalidade de diversos serviços, o que torna a configuração do Network Time Protocol (NTP) essencial para garantir a precisão temporal.</p><p>Nesta atividade prática, realizei a configuração do serviço NTP em dois ambientes distintos: GNU/Linux Ubuntu Desktop 18.04.1 e Windows 10. A seguir, apresento as etapas executadas para habilitar a sincronização horária em cada sistema operacional, bem como as observações realizadas durante o processo.</p><p>1. Procedimentos Realizados</p><p>Configuração do NTP no Ubuntu 18.04.1</p><p>· Instalação do Serviço NTP</p><p>A configuração inicial foi realizada através da instalação do serviço NTP no Ubuntu. Para isso, utilizei o terminal e o gerenciador de pacotes apt com o comando: sudo apt install ntp</p><p>Após a instalação, foi necessário verificar o sucesso da operação e documentar o procedimento com capturas de tela, conforme solicitado.</p><p>· Edição do Arquivo de Configuração</p><p>O próximo passo envolveu a edição do arquivo de configuração do NTP, localizado em /etc/ntp.conf, utilizando o editor de texto nano. Seguindo as instruções, foram removidas as linhas que faziam referência aos pools padrão do Ubuntu e substituídas pelo pool brasileiro:</p><p>pool pool.ntp.br.</p><p>Após a reinicialização, a sincronização foi verificada utilizando o comando ntpq -p, que lista os servidores de tempo consultados e exibe o status da sincronização.</p><p>2. Configuração do NTP no Windows 10</p><p>· Acesso ao Prompt de Comando</p><p>No Windows 10, o processo foi iniciado com a abertura do Prompt de Comando (CMD) em modo administrador, onde foi inserido o seguinte comando para configurar o NTP:</p><p>w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org</p><p>Este comando direciona o sistema para sincronizar o horário com o servidor 0.pool.ntp.org, garantindo que a máquina cliente esteja ajustada de acordo com um servidor confiável.</p><p>· Reinicialização do Serviço de Data e Hora</p><p>Após a configuração do NTP, foi necessário reiniciar o serviço de data e hora para que as alterações surtissem efeito. Os comandos utilizados foram:</p><p>net stop w32time</p><p>net start w32time</p><p>Esses comandos interrompem e reiniciam o serviço responsável pela sincronização de tempo no Windows.</p><p>· Forçando a Sincronização</p><p>Para verificar o sucesso da configuração, utilizei o comando:</p><p>w32tm /resync /rediscover</p><p>A saída desse comando indicou que a sincronização foi realizada com sucesso, confirmando que o sistema estava corretamente ajustado.</p><p>Atividade 2 - Virtualização</p><p>A criação de máquinas virtuais é uma prática essencial em ambientes de sistemas distribuídos e na administração de servidores. Por meio da virtualização, é possível simular diferentes sistemas operacionais em uma única máquina física, o que facilita testes, desenvolvimento de software e a implementação de soluções em ambientes controlados. Nesta atividade, o objetivo foi criar uma máquina virtual utilizando o sistema operacional CentOS, por meio do software de virtualização Oracle VM VirtualBox. Alternativamente, o Debian foi apresentado como outra distribuição possível para essa prática.</p><p>1. Procedimentos Realizados</p><p>· Download do Sistema Operacional</p><p>O primeiro passo foi o download do sistema operacional GNU/Linux escolhido para a máquina virtual. Optei pelo CentOS, mas também havia a possibilidade de utilizar o Debian. O download foi realizado diretamente do site oficial do CentOS.</p><p>2. Criação da Máquina Virtual no Oracle VM VirtualBox</p><p>Com o sistema operacional baixado, o próximo passo foi iniciar a configuração da máquina virtual no Oracle VM VirtualBox. Segui os seguintes passos:</p><p>· Novo</p><p>No VirtualBox, cliquei no botão Novo para iniciar a criação da máquina virtual. Foi necessário nomear a máquina e especificar o tipo de sistema operacional (Linux) e a versão correspondente (CentOS 64-bit no meu caso).</p><p>· Configuração de Memória RAM</p><p>Na etapa seguinte, foi definida a quantidade de memória RAM a ser alocada para a máquina virtual. Para garantir uma execução fluida, selecionei 2048 MB de RAM, o que foi suficiente para rodar o CentOS sem comprometer o desempenho do sistema hospedeiro.</p><p>· Criação do Disco Rígido Virtual</p><p>Escolhi criar um novo disco rígido virtual (VDI) com capacidade de 20 GB. Esse espaço seria suficiente para a instalação do sistema e para armazenar arquivos e programas necessários para testes futuros.</p><p>· Configuração de Armazenamento</p><p>Após a criação do disco virtual, acessei as configurações da máquina e selecionei a opção Armazenamento. Em seguida, no menu de Controladora IDE, inseri a imagem ISO do CentOS no leitor de CD virtual. Isso simula a inserção de um CD de instalação físico, necessário para iniciar o processo de instalação do sistema operacional na máquina virtual.</p><p>3. Instalação do Sistema Operacional</p><p>Com a máquina virtual configurada, cliquei no botão Iniciar e segui as etapas de instalação do CentOS. O processo incluiu:</p><p>· Seleção da linguagem e layout de teclado.</p><p>· Configuração do disco para instalação, utilizando todo o espaço disponível no disco virtual previamente criado.</p><p>· Definição do fuso horário e configuração da senha de root.</p><p>A instalação foi concluída após alguns minutos, e o sistema foi reiniciado automaticamente, completando a criação da máquina virtual.</p><p>4. Testes e Verificação</p><p>Após a</p><p>instalação, realizei alguns testes para garantir que o sistema estava funcionando corretamente:</p><p>· Verifiquei se o sistema foi capaz de acessar a internet a partir da rede NAT configurada no VirtualBox.</p><p>· Conferi a alocação correta de memória e a utilização do disco rígido virtual.</p><p>· Testei comandos básicos de administração no CentOS, como yum update, para garantir que o sistema estava configurado corretamente e que era possível realizar a atualização dos pacotes.</p><p>A atividade prática de criação de uma máquina virtual utilizando o Oracle VM VirtualBox e o CentOS como sistema operacional foi realizada com sucesso. A experiência permitiu consolidar conceitos de virtualização, além de reforçar a importância da configuração adequada de recursos como memória e armazenamento para garantir o desempenho da máquina virtual. Adicionalmente, a prática demonstrou a flexibilidade do VirtualBox em suportar diferentes distribuições de sistemas operacionais GNU/Linux, sendo uma ferramenta valiosa para ambientes de teste e desenvolvimento.</p><p>Por fim, a criação de máquinas virtuais se mostrou uma habilidade crucial para a administração de sistemas distribuídos, proporcionando um ambiente seguro para realizar testes e desenvolver soluções sem comprometer a máquina física hospedeira.</p><p>Atividade 3 - Conteinerização Com Docker</p><p>Nesta atividade prática, o objetivo foi compreender o processo de orquestração de serviços utilizando o Docker Swarm, uma ferramenta integrada ao Docker que permite a criação e gerenciamento de clusters de containers. A proposta incluiu a criação de um cluster com três nós, onde foi configurado um serviço web replicado utilizando o Apache HTTP Server. A atividade foi conduzida por meio da plataforma online Play with Docker, que fornece um ambiente de testes ideal para simulação de clusters e containers.</p><p>1. Procedimentos Realizados</p><p>· Acesso ao Docker Desktop e à Plataforma "Play with Docker"</p><p>O primeiro passo foi acessar o site oficial do Docker para fazer o download do Docker Desktop. Entretanto, a prática foi realizada no ambiente Play with Docker, que permite a simulação de clusters sem necessidade de instalar o Docker localmente.</p><p>A plataforma foi acessada através do link Play with Docker, e após o login, foi possível iniciar um ambiente de laboratório virtual para executar os comandos do Docker.</p><p>· Criação do Cluster com Três Nós</p><p>O cluster foi criado com três nós, sendo um nó manager e dois workers, seguindo os passos abaixo:</p><p>· Adição de Instâncias (Nós)</p><p>Utilizei a função Add new instance para adicionar três instâncias, que atuariam como os nós do cluster. Cada instância representa um nó, no qual os containers do serviço Apache rodariam.</p><p>· Inicialização do Docker Swarm</p><p>No nó designado como manager, executei o comando para inicializar o Swarm:</p><p>docker swarm init --advertise-addr</p><p>Esse comando transforma o nó em um manager do cluster, permitindo a administração do Swarm. A saída gerada pelo comando inclui uma string com instruções para adicionar os nós workers ao cluster. Exemplo de saída:</p><p>To add a worker to this swarm, run the following command:</p><p>docker swarm join --token :</p><p>· Adição dos Workers ao Cluster</p><p>· Nos dois nós restantes (workers), executei o comando fornecido pela saída anterior, associando-os ao Swarm. Dessa forma, o cluster foi formado com um nó manager e dois workers.</p><p>· Criação e Orquestração do Serviço Apache com Docker</p><p>Com o cluster configurado, o próximo passo foi a criação e a distribuição do serviço web Apache (HTTP Server) nas três réplicas. O serviço foi orquestrado de forma distribuída, garantindo alta disponibilidade.</p><p>· Criação do Serviço Apache</p><p>No nó manager, criei um serviço com cinco réplicas do servidor Apache, utilizando o seguinte comando:</p><p>docker service create --name WEB --publish 80:80 --replicas=5 httpd</p><p>Esse comando configurou cinco containers do servidor Apache, distribuídos automaticamente nos três nós do cluster. A porta 80 foi mapeada para o acesso ao serviço web.</p><p>· Verificação das Réplicas nos Nós</p><p>Para verificar em quais nós as réplicas do serviço Apache estavam sendo executadas, utilizei o comando:</p><p>docker service ps WEB</p><p>A saída do comando listou as réplicas e seus respectivos nós, confirmando que o Docker Swarm distribuiu as réplicas de forma balanceada entre os nós workers e o manager.</p><p>· Acesso à Página de Boas-Vindas do Apache</p><p>Com o serviço Apache em execução, o próximo passo foi acessar a página de boas-vindas do servidor web. Na interface do Play with Docker, a porta 80 foi exibida como um link clicável para cada nó. Ao clicar nesse link para cada um dos nós onde o serviço estava rodando, fui redirecionado à página que exibia a famosa mensagem “It Works!” do Apache, confirmando que o serviço estava ativo e funcionando corretamente.</p><p>· Encerramento do Cluster</p><p>Após a verificação do funcionamento do serviço Apache em cada nó, realizei o encerramento do cluster. Para isso, executei os seguintes comandos nos nós:</p><p>· Desligamento do serviço:</p><p>docker service rm WEB</p><p>· Encerramento do Swarm: No nó manager, o Docker Swarm foi encerrado com o comando:</p><p>docker swarm leave –force</p><p>E nos nós workers, executei o comando para removê-los do cluster:</p><p>docker swarm leave</p><p>A atividade prática de orquestração do servidor web Apache utilizando o Docker Swarm proporcionou uma compreensão sólida sobre a criação e gerenciamento de clusters de containers. Através da plataforma Play with Docker, foi possível simular um ambiente distribuído, criar serviços replicados e acessar os containers através dos nós do cluster.</p><p>O Docker Swarm demonstrou sua capacidade de distribuir cargas de trabalho de forma eficiente, garantindo a execução simultânea de múltiplas réplicas do serviço web Apache, o que resulta em alta disponibilidade e tolerância a falhas. Essa prática é crucial para a implementação de ambientes de produção escaláveis e resilientes.</p><p>Atividade 4 - Segurança em Sistemas Distribuídos</p><p>A análise de pacotes de rede é uma técnica essencial para a compreensão do funcionamento de protocolos, solução de problemas de rede, desenvolvimento de software e aprendizado sobre o tráfego de dados em redes de computadores. O Wireshark, um analisador de pacotes gratuito e de código aberto, é uma das ferramentas mais utilizadas para esse fim. Ele permite capturar e examinar dados em tempo real, oferecendo uma visão detalhada do tráfego de rede e dos protocolos em operação.</p><p>Nesta atividade prática, foi realizada a captura de pacotes de rede utilizando o Wireshark, com o objetivo de compreender seu funcionamento e como os dados são filtrados e analisados dentro da ferramenta.</p><p>1. Procedimentos Realizados</p><p>· Download e Instalação do Wireshark</p><p>O primeiro passo foi realizar o download do Wireshark através do site oficial: Wireshark Download. Após o download, o software foi instalado no sistema operacional local, seguindo o processo padrão de instalação.</p><p>· Iniciando o Wireshark</p><p>· Após a instalação, o Wireshark foi aberto e sua interface inicial foi analisada. A tela principal exibe as opções de captura de pacotes, as interfaces de rede disponíveis e os menus de configuração e análise. No menu superior, estão disponíveis funções como Capture, Analyze, e Statistics, que são fundamentais para a utilização da ferramenta.</p><p>2. Seleção da Interface de Rede e Captura de Pacotes</p><p>Para iniciar a captura dos pacotes de rede, foi necessário selecionar uma interface de rede ativa. No menu Capture, selecionei a opção Options, que abriu uma janela listando todas as interfaces disponíveis no computador. Optei pela interface Wi-Fi, que estava conectada à rede sem fio local.</p><p>Com a interface selecionada, cliquei no botão Start para iniciar a captura de pacotes. O Wireshark começou a capturar todos os pacotes trafegados pela rede, exibindo-os em tempo real na tela principal. Cada pacote capturado era exibido em uma linha da tabela, com informações sobre o protocolo utilizado, o endereço de origem e destino, e o tamanho do pacote.</p><p>3. Filtragem de Pacotes</p><p>A captura de pacotes gerou</p><p>uma grande quantidade de dados, o que pode dificultar a análise manual. Para facilitar a visualização dos pacotes relevantes, foi necessário utilizar os filtros de exibição oferecidos pelo Wireshark.</p><p>No menu Analyze, selecionei a opção Display Filter Expression, que abriu a caixa de diálogo de construção de filtros. Essa caixa permite criar filtros personalizados para visualizar apenas os pacotes de interesse. Utilizei um filtro básico para exibir apenas os pacotes do protocolo HTTP, digitando o filtro “http” na barra de filtros e aplicando-o. Com isso, a tabela de pacotes foi reduzida, mostrando apenas as comunicações relacionadas ao protocolo HTTP.</p><p>4. Análise Detalhada dos Pacotes</p><p>Após filtrar os pacotes capturados, foi possível realizar uma análise detalhada de cada pacote. Ao selecionar um pacote específico na lista, o Wireshark exibiu informações detalhadas em três níveis:</p><p>· Camada de Enlace: Contém detalhes sobre o protocolo de enlace utilizado, como Ethernet, incluindo os endereços MAC de origem e destino.</p><p>· Camada de Rede: Exibe informações sobre os protocolos da camada de rede, como IPv4 ou IPv6, incluindo os endereços IP de origem e destino.</p><p>· Camada de Transporte: Mostra os detalhes dos protocolos de transporte, como TCP ou UDP, incluindo números de porta e controle de fluxo.</p><p>Essas informações permitiram a análise completa de cada comunicação, ajudando a entender como os dados são transferidos e processados ao longo da rede.</p><p>5. Finalização da Captura</p><p>Após coletar dados suficientes para análise, finalizei a captura de pacotes clicando no botão Stop. O Wireshark permitiu salvar o arquivo da captura em um formato padronizado (PCAP), que pode ser reaberto para futuras análises ou compartilhado com outros profissionais de rede.</p><p>A atividade prática com o Wireshark proporcionou uma compreensão detalhada de como um analisador de pacotes de rede funciona e como ele pode ser utilizado para monitorar, capturar e analisar dados trafegados em uma rede. A ferramenta se mostrou essencial para a análise de protocolos e resolução de problemas em redes de computadores.</p><p>Ao utilizar filtros de exibição e recursos de análise detalhada de pacotes, foi possível identificar e estudar diferentes protocolos de rede, como HTTP e TCP, além de compreender como a comunicação ocorre entre dispositivos conectados à rede. Essa prática é valiosa não apenas para administradores de redes, mas também para desenvolvedores de software e pesquisadores que desejam entender o comportamento de seus sistemas em ambientes distribuídos.</p><p>O Wireshark se destacou pela sua interface amigável, ampla documentação e a capacidade de fornecer uma visão detalhada das camadas da pilha de protocolos, tornando-se uma ferramenta indispensável para quem trabalha com redes de computadores.</p><p>CONCLUSÃO</p><p>A realização deste portfólio de aula prática de sistemas distribuídos permitiu a aplicação direta de conceitos fundamentais para o entendimento e gerenciamento de infraestruturas distribuídas. Através das atividades propostas, foi possível compreender e implementar práticas essenciais que garantem o bom funcionamento de sistemas e redes.</p><p>A primeira atividade demonstrou a importância da sincronização de relógios utilizando o protocolo NTP, evidenciando como esse procedimento é crucial para evitar problemas de autenticação e acesso remoto. A configuração adequada em diferentes sistemas operacionais, como GNU/Linux e Windows, reforçou a versatilidade e importância dessa habilidade em ambientes heterogêneos.</p><p>A criação de máquinas virtuais na segunda atividade, utilizando o Oracle VM VirtualBox e o sistema operacional CentOS, foi essencial para compreender a replicação de ambientes reais em contextos de testes. Essa prática possibilita a execução de experimentos sem impactar diretamente o ambiente produtivo, proporcionando maior segurança e flexibilidade no gerenciamento de sistemas.</p><p>A orquestração de servidores Apache em um cluster por meio do Docker, abordada na terceira atividade, ofereceu uma visão prática sobre escalabilidade e alta disponibilidade. O uso de containers mostrou-se uma solução eficiente para distribuir serviços e aumentar a resiliência de aplicações em sistemas distribuídos.</p><p>Por fim, a atividade com o Wireshark proporcionou uma visão detalhada sobre a captura e análise de pacotes de rede, uma habilidade essencial para a solução de problemas e a compreensão de protocolos de comunicação. Essa ferramenta é indispensável para diagnósticos de rede e otimização do tráfego em ambientes distribuídos.</p><p>Em síntese, este portfólio consolidou o aprendizado de técnicas cruciais para a administração de sistemas distribuídos. As atividades abordadas permitiram o desenvolvimento de habilidades práticas e teóricas que serão essenciais para enfrentar os desafios presentes no gerenciamento de redes e infraestruturas distribuídas no ambiente profissional.</p><p>REFERÊNCIAS BIBLIOGRÁFICAS</p><p>Von Behren, R., Condit, J., and Brewer, E. 2003. Why events are a bad idea (for high-concurrency servers). In Proceedings of the 9th Conference on Hot Topics in Operating Systems - Volume 9 (Lihue, Hawaii, May 18 - 21, 2003).</p><p>Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky, and John R. Douceur. 2002. Cooperative Task Management Without Manual Stack Management. In Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference (ATEC ’02). até 3.2 (inclusive).</p><p>16</p>

Mais conteúdos dessa disciplina