• Sonuç bulunamadı

Ocak 205 tarihinden itibaren geçerli olan yeni standart, değişiklik ve yorumlar aşağıdaki gibidir:

106

uma máquina física ou virtual realize sua inicialização e a instalação da distribuição de um sistema operacional através da rede, sendo que todos os arquivos necessários ao boot são carregados a partir de um serviço de FTP previamente configurado. Graças ao PXE é possível obter instâncias diskless que não dependem de unidades de armazenamento locais que contenham as imagens da instalação ou os discos de inicialização, sendo estes arquivos gerenciados pelo PXE. Este fato representa a vantagem de que os mesmos arquivos poderem ser utilizados por quaisquer umas das máquinas conectadas à rede para realização da sua inicialização.

Além de garantir que todos os computadores clientes suportem a inicialização pela interface de rede, é importante ter disponível uma conexão com a internet rápida e eficiente, porque normalmente os computadores clientes irão buscar todos os pacotes necessários para a instalação a partir de repositórios na internet. Outra possibilidade seria armazenar todos os pacotes no servidor PXE, desta forma, não se faz necessário uma conexão à internet, sendo suficiente apenas a conexão LAN com o servidor PXE, porém será preciso muito mais espaço de armazenamento no servidor PXE, além do constante gerenciamento destes arquivos, principalmente considerando que se pretende disponibilizar distintas distribuições.

Usualmente, utiliza-se um servidor PXE para fazer simultaneamente, a instalação de uma mesma distribuição de sistema operacional em diversas máquinas através da rede. Por exemplo, em uma situação onde existem 1000 máquinas que precisam ter um determinado sistema operacional instalado, em detrimento do processo manual, que consome grande quantidade de tempo, configurando-se corretamente um servidor PXE, basta conectar todas as máquinas na rede e ligá-las para automaticamente ser iniciado a execução o boot de instalação.

A figura 5.18 exibe um modelo de servidor PXE, onde a partir de sua estrutura, diversas máquinas, utilizando a rede, podem ter instalados diversos sistemas operacionais de forma simplificada, sendo exemplificado a sequência de passos com a descrição de cada um feita através da legenda.

107

Figura 5.18: Um modelo PXE

Para o correto funcionamento do servidor PXE é necessário estar disponível um servidor para configuração dinâmica de terminais, um Dynamic Host

Configuration Protocol (DHCP) e um servidor para transferência de arquivos, um File Transfer Protocol (FTP). No contexto deste trabalho, utilizamos o dhcp3-server

como servidor DHCP e o Trivial File Transfer Protocol (TFTP) como servidor FTP. Este processo é iniciado quando uma máquina configurada para iniciar pela rede é ligada, inicialmente será solicitado um endereço IP ao DHCP, sendo esta solicitação atendida através da utilização do processo normal de descoberta DHCP. Depois que o cliente obtiver um endereço IP válido, será necessário localizar e estabelecer uma conexão com o servidor PXE. Após conexão ao PXE, o FTP será o protocolo de rede usado para fazer o download de todos os arquivos necessário para a inicialização de rede, incluindo a imagem de inicialização.

Dado o objetivo do GerNU, a abordagem utilizada com o servidor PXE foi modificada para atender o perfil dinâmico das atividades de uma nuvem, sendo que o mesmo é utilizado como um mecanismo de instalação personalizada, que a partir das especificações do usuário, define dinamicamente qual o sistema operacional e quais aplicações serão utilizadas para construir a imagem que será utilizada pelo virtualizador que deverá disponibilizar os serviços.

108

A configuração dos arquivos para o PXE, no ambiente do GerNU, se dá da seguinte maneira: primeiro, é previamente estabelecido um diretório de instalação para cada um dos sistemas operacionais disponíveis no repositório do sistema, sendo que o mesmo contêm os arquivos para o boot e para a instalação. Este diretório é especificado no TFTP, que sempre verá esta pasta como a raiz para instalação de qualquer sistema operacional. Sendo assim, a partir deste diretório raiz, a estrutura do GerNU foi projetada para que de forma simplificada, seja suficiente adicionar ou remover uma pasta com os arquivos de instalação e atualizar os registros do banco de dados, para que a estrutura suporte a instalação de um novo sistema operacional. A identificação de qual subpasta será utilizada acontece a partir da seleção realizada pelo usuário no GerNU para então ser possível criar uma pasta personalizada de instalação, configurada com as aplicações especificadas pelo usuário. Após a realização da instalação, toda estrutura de arquivos que foi manipulada para configurar o ambiente de instalação será removida definitivamente do servidor. Um exemplo de como pode ficar a estrutura de arquivos pode ser verificada na figura 5.19.

Figura 5.19: Estrutura dos arquivos

O processo para criação de uma máquina virtual pode ser observado na figura 5.20, sendo que inicialmente uma máquina virtual é solicitada ao virtualizador do ambiente, porém, após esta criação, ela representa apenas o conjunto de hardware, embora já esteja configurado com os requisitos solicitados pelo usuário, onde deverão ser instalados os softwares que o usuário especificou. Inicialmente, esta maquina virtual é obrigatoriamente configurada para realizar seu boot pela rede. Desta forma, todas as vezes que for necessário criar um novo serviço, alguns

109

arquivos de configuração devem ser manipulados levando em consideração as informações no Modelo do Ambiente Virtual para que os requisitos do usuário sejam atendidos. O ambiente do GerNU dispõe de alguns scripts que devem ser executados para cada novo serviço. São estes scripts que efetivamente possibilitam a inicialização do processo de instalação dos serviços, pois tem o objetivo de configurar junto ao servidor PXE toda a infraestrutura necessária para a criação do ambiente virtual através do seu endereço MAC (Media Access Control) e do seu endereço IP na rede. Além deste arquivo, também devem ser configurados as pastas que especificam qual sistema operacional será instalado no ambiente virtual. Estes arquivos refletem de forma única o serviço que será disponibilizada para o usuário.

Figura 5.20: Processo para criação de uma máquina virtual

Após a realização de todo este processo, será realizado o primeiro boot da máquina virtual, devendo aguardar resposta do DHCP da rede, para que em conjunto com o servidor PXE e conforme os arquivos previamente configurados, seja iniciado o processo de instalação.

110

Quando a instalação estiver encerrada, a máquina virtual deve ser reconfigurada para que sua inicialização aconteça normalmente a partir de sua unidade de armazenamento local, ficando independente do servidor PXE. Por fim, todos os arquivos de configuração são descartados.

O algoritmo 3 retrata o processo utilizado pelo GerNU para criação dinâmica da máquina virtual que dará suporte aos serviços. A primeira atividade envolve o armazenamento dos dados da especificação, visto na linha 3. A linha 4 retrata o procedimento para criação da máquina virtual, sendo que este envolve comandos específicos para um virtualizador. Uma solicitação do MAC da máquina criada é feita ao virtualizador do host na linha 5. A linha 6 busca um IP disponível na faixa de IPs reservada para a aplicação. Objetivando criar todos os comandos relativos a instalação de cada uma das aplicações requisitadas pelo usuário foi escrita a linha 7, sendo que esta função concatena os comandos para instalação (previamente testados e armazenados no banco de dados do sistema) de cada uma das aplicações requeridas na especificação. Após a criação da máquina virtual, por fim, na linha 8 é chamado o algoritmo que executará a preparação de toda a infraestrutura do PXE, de forma que seja possível configurar todos os requisitos do usuário.

Algoritmo 3 - Processo de Criação dos Serviços 1: criacaoServicos(){

2: entrada: esp = dados da especificacao; 3: salvarDadosEspecificacao (esp);

4: criarMV (esp.nome_mv, esp.so, esp.cores, esp.mem, esp.hd); 5: esp.mac = getMAC (esp.nome_mv);

6: esp.IP = getIPDisponivel ();

7: esp.InstalarApp = criarComandosInstalacaoApp(esp.apps); 8: configPXE(esp);

9: }

Já o algoritmo 4 a seguir, retrata o processo de configuração do servidor PXE para implantação dos requisitos de software. A linha 3 retrata a função que configura o arquivo utilizado pelo servidor DHCP, sendo necessário identificar o MAC e o IP do máquina virtual. A linha 4 tem o objetivo de configurar a estrutura de pastas que o

111

servidor de FTP utiliza. A linha 5 configura com atributos específicos do sistema operacional o arquivo de inicialização. Um script de instalação é enviado para a máquina virtual com o objetivo de atualizar os seus repositórios e efetivamente fazer a instalação das aplicações, sendo excluído após sua utilização, sendo esta atividade realizada a partir da linha 6. Após todas estas tarefas de configuração do ambiente, o serviço será iniciado pela primeira vez pela linha 7, objetivando que todos os requisitos sejam efetivamente implantados no ambiente virtual. Finalmente, a linha 8 executa o procedimento de reconfiguração do boot da máquina virtual, tornando-a independente do servidor PXE.

Algoritmo 4 - Configuração PXE 1: configPXE(){

2: entrada: esp = dados da especificacao;

3: configDHCP (esp.nome_mv, esp.so, esp.mac, esp.ip); 4: criarPastaBoot (esp.nome_mv, esp.so);

5: configSeed (esp.nome_mv, esp.so); 6: configInstalarApp (esp.InstalarApp); 7: iniciarServico (esp.nome_mv); 8: reconfigurarServiço (esp.nome_mv); 9: }

A aplicação desta solução está liimitada ao escopo de nuvens privadas, embora que, a partir das informações disponíveis no modelo do ambiente, um broker poderá ser empregado para viabilizar a sua utilização em um ambiente de nuvens híbridas, disponibilizando um cenário de uso com escala global. Outra utilização destas informações pode estar relacionado aos aspectos como escalabilidade, elasticidade, dentre outros, podendo cada política utilizar para beneficiar sua estratégia.