• Nenhum resultado encontrado

A base de dados é um ponto importante do sistema. É nela que são mantidas todas as informações necessárias para descrever, configurar e manter serviços, máquinas e sistemas em geral.

Para permitir um bom nível de integração, relação e dependência entre os dados é aconse- lhável o uso de uma base de dados unificada. Essa é a abordagem utilizada por sistemas como o NetInfo (seção 2.3.3), que permite a integração do gerenciamento de praticamente todos os aplicativos e sistemas do ambiente Mac OS X. O ida utiliza uma abordagem semelhante ao do NetInfo para a base de dados.

A configuração e arquitetura da base de dados é adaptável ao contexto administrativo ou as necessidades de diferentes domínios administrativos. Com isso, o administrador do sistema têm a possibilidade de especificar a organização e distribuição dos dados, garantindo que as particularidades de seu domínio administrativo sejam contempladas.

A seguir são descritos os dados armazenados, características de configuração e recursos de acesso à base de dados. O apêndice B apresenta algumas informações a mais sobre os dados da base de dados. Nele podem ser encontrados exemplos de registrados cadastrados na base de dados do ida.

3.4.1 Descrição dos Dados

A figura 3.16 apresenta uma visualização da arquitetura interna da base de dados do ida. Como pode ser observado, ela é organizada em várias sub-árvores de dados.

Cada ramo da árvore de dados contém informações de determinado tipo. Na seqüência são descritas as características e os principais tipos de dados armazenados em cada sub-árvore da base de dados. Maiores detalhes e exemplos práticos podem ser vistos nos apêndices B e D.

Dados: contém dados de descrição e configuração de máquinas e serviços;

Máquinas: dados referentes à descrição de computadores de uma rede. Os dados in-

cluem endereço IP, nome, aliases, configurações gerais de rede (sub-rede, máscara,

gateway, DNS), grupos a qual pertence, descrição geral das características da má-

quina (informações sobre hardware), localização, identificação de patrimônio (espe- cialmente útil para instituições públicas), sistemas operacionais, serviços prestados a rede e informações gerais. As descrições das máquinas são dados básicos para a manutenção das configurações de serviços de rede como o DNS, DHCP e IPTables e as configurações locais dos próprios computadores.

Serviços: esta sub-árvore contém as informações necessárias para a configuração e ma-

Agentes de Controle Agentes Locais Agentes de Manutenção Agentes de Serviços Agentes de Monitoramento Agentes Arquivos de Configuração Descrições Gerais Módulos de Atualização Módulos Gerais Geral Mapeamentos Serviços Máquinas Módulos Dados

Monitoramento de Serviços e Máquinas Estado Interno do Sistema IDA

Registros

Temporização de Rotinas do Sistema Módulos de Geração

Figura 3.16: Visualização da base de dados

com as descrições de máquinas, servem como base para os módulos de geração. Es- tes irão produzir os arquivos e descrições de configuração para serviços, máquinas e sistemas no geral. Os dados resultantes serão utilizados pelos módulos de atualiza- ção.

Mapeamentos: informam qual (quais) máquina executa cada serviço. Os mapeamen-

tos servem para abstrair relações e dependências entre os dados utilizados para a configuração de um serviço e a sua localização (máquina hospedeira). Além disso, facilitam a manutenção de atualizações.

Geral: descrições gerais de configuração, representação e hierarquia são mantidas nesse

ramo da base de dados. No geral, estes dados são utilizados e estão acessíveis a todos os componentes do sistema. Logo, informações importantes e confidenciais não devem ser mantidas nessa sub-árvore.

Módulos: a sub-árvore de módulos contém informações de funcionamento e o código de exe-

cução dos módulos do sistema. Estes são classificados basicamente em três categorias: configuração e geração, atualização e gerais.

Agentes: a sub-árvore de agentes armazena dados, configurações, características e código

fonte dos agentes do sistema.

Controle: agentes com alto nível de confiabilidade e autorização de acesso a base de da-

dos. As entradas descrevem os componentes sob o comando dos agentes de controle e dados de execução como intervalo de execução e diretório para o armazenamento

do código de execução de componentes que ficarão dentro do seu domínio de atua- ção;

Locais: as entradas destes agentes contém dados de identificação, localização e agentes

de serviço sobre o seu comando. Estes agentes facilitam a manutenção, inclusão e migração de agentes de serviços de um local ao outro;

Manutenção: estas entradas indicam aos seus respectivos componentes seus intervalos

de execução, as árvores de dados sobre as quais deverão atuar e mantém informações referentes ao código fonte destes agentes;

Serviços: as entradas da base de dados indicam quais módulos estarão sob o controle

destes agentes, o diretório local para o armazenamento e posterior execução dos módulos e o intervalo de freqüência de execução, além do código fonte do agente;

Monitoramento: contém informações necessárias para a execução de um determinado

agente de monitoramento sobre um determinado serviço. Entre estes dados podem estar as identificações dos módulos de geração e atualização responsáveis pelo ser- viço em específico e o tempo de execução.

Registros: Os registros armazenam estados do sistema, estados de máquinas e serviços e esta-

tísticas de tempo de execução de rotinas do sistema;

Estado Interno do Sistema: os dados de estado do sistema reportam informações de

execução de todos os componentes distribuídos do sistema. Com isso é possível identificar falhas e problemas de execução em geral e extrair um relatório geral de atividades dos módulos e agentes do sistema.

Monitoramento de Serviços e Máquinas: Os registros de monitoramento servem para

acompanhar o estado de serviços, máquinas e sistemas em geral. Diagnósticos, de- tecção e correção de falhas na prestação de serviços são alguns dos objetivos deriva- dos dos registros de monitoramento.

Temporização de Rotinas do Sistema: tempo gasto por rotinas internas do sistema. Com

esses dados também é possível detectar a sobrecarga de uma determinada máquina, visto que ela pode estar levando muito tempo (levando em consideração a média geral ou casos específicos) para executar rotinas simples;

Alguns dos objetivos inerentes às ramificações de dados são a organização e distribuição das informações, controle granular (individual, restritivo e dinamicamente configurável) de acesso aos dados, segurança e hierarquia. Os componentes do ida terão acesso restrito e controlado sobre os dados do sistema. Um módulo de atualização, por exemplo, terá acesso apenas as entradas de dados que contém os arquivos de configuração do serviço mantido pelo módulo.

3.4.2 Interface Única

O ida tem uma única interface de comunicação com a base de dados. Todos os componen- tes do sistema utilizam essa mesma interface. Desta forma, basta reimplementar a interface, no caso de o administrador da rede desejar utilizar uma outra base de dados, e todos os componen- tes continuarão a funcionar sem maiores problemas.

Outra funcionalidade da interface única é a definição de novos servidores para a base de dados. Neste caso, basta substituir na implementação da interface a variável que indica quais são os novos servidores de dados que os componentes do sistema passarão automaticamente a utilizar os novos servidores de dados.

3.4.3 Vantagens da Unificação dos Dados

Uma base de dados única traz algumas vantagens em relação ao uso de múltiplos arquivos de configuração ou descrição de configuração. Manter arquivos distintos, principalmente se forem em formatos distintos (o que é comum em ambientes de gerenciamento e mesmo em muitas das ferramentas disponíveis) pode levar a inconsistências e erros de configuração de serviços e máquinas. Quanto maior e mais diverso for o domínio administrativo, maior é a probabilidade de falhas e divergências de configuração ocorrerem. Por outro lado, o uso de uma única base de informações, com relação e dependência de dados, facilita o gerenciamento de sistemas e diminui consideravelmente as possibilidades de erros. Em um ambiente desse gênero as descrições de configuração de serviços e máquinas podem ser geradas por ferramentas automáticas e menos propícias a falhas. Além disso, uma base de dados unificada permite, com maior facilidade, a construção de instrumentos automáticos de verificação de consistência e integridade dos dados armazenados, sendo um recurso a mais para evitar possíveis falhas humanas.

A integração do gerenciamento da rede é mais simples com o uso de uma base de dados única. Além disso, esta pode ser centralizada ou distribuída, proporcionando escalabilidade e disponibilidade. Os diversos componentes do sistema necessitam apenas ter acesso aos dados de configuração e gerenciamento.

A própria sobreposição de dados, apresentada rapidamente na próxima seção, é um exemplo de outra vantagem de uma base de dados única.

3.4.4 Mapeamentos e Sobreposição de Configurações

Uma das características importantes e úteis do sistema é a sobreposição de informações. Ela consiste em ter dados que servem de referência geral, permitindo a especialização de configu- rações individuais a cada máquina (ou a cada programa servidor) que executa o mesmo serviço. Esse recurso pode também ser utilizado apenas para a configuração de uma única instância de um serviço. Neste caso, a descrição geral poderia manter os dados de configuração padrão e so- mente as configurações específicas são definidas no registro (na base de dados) do serviço. Isso facilita e agiliza a especificação de configurações gerais e particulares de serviços e sistemas em

geral. A seção 4.4.2 apresenta alguns exemplos de uso da sobreposição de configurações. Outra característica igualmente importante é a independência entre quem usa a informação (serviços e máquinas) e quem processa a informação (busca na base de dados e formata de acordo com o serviço). Neste contexto, os mapeamentos fornecem um meio de descrever de forma abstrata e independente as relações entre máquinas e respectivos serviços prestados. Um serviço, como o DHCP, é atribuído a uma máquina. Esta relação (quem é a máquina que executa o DHCP) é descrita em um mapeamento. Desta forma, para trocar de lugar o serviço bastará alterar o mapeamento indicando a nova localização (servidor) que os demais sistemas serão automaticamente ajustados. Este poderia ser um caso de migração do serviço de DHCP para uma nova máquina. A alteração da entrada de mapeamento implicará na atualização automática de todas as configurações que mantenham alguma relação com o servidor DHCP. Esse processo é controlado e ativado, de forma automática, pelos agentes de manutenção do sistema.