460 likes | 562 Views
Globus Monitoring and Discovery Service (MDS). Autoria. Autores Alberto Egon Local Instituto de Informática, UFRGS 1a versão 2003, curso projeto Dell Revisões v1 Novembro de 2005 C. Geyer. Roteiro. Visão Geral do MDS Características Gerais Benefícios Arquitetura
E N D
Autoria • Autores • Alberto Egon • Local • Instituto de Informática, UFRGS • 1a versão • 2003, curso projeto Dell • Revisões • v1 • Novembro de 2005 • C. Geyer
Roteiro • Visão Geral do MDS • Características Gerais • Benefícios • Arquitetura • Tipos de Informações Disponibilizadas • GRIS e GISS • Usando o MDS • Grid-Info-Search (exemplos) • Visualização dos Resultados • Performance e Temporização • Directory Information Tree (DTI) • LDAP e DTI • Consultas e Information Model
Bibliografia • Documentação do MDS do GT2.4 • http://www.globus.org/toolkit/docs/2.4/mds/ • várias páginas com informações estruturadas • Manual do usuário do MDS • http://www.globus.org/toolkit/docs/2.4/mds/mdsusersguide.pdf • feito para o GT2.2, mas válido para o GT2.4 • Hierarquias no MDS • http://www.globus.org/toolkit/docs/2.4/mds/hierarchical_GIIS.pdf
Visão Geral do MDS • Ambientes grid permitem que aplicações sejam integradas a: • instrumentos • displays • recursos computacionais • Aplicações geralmente utilizam grande quantidade de dados/recursos gerenciados por diferentes organizações • Serviços de informações são necessários: • prover mecanismos para descoberta e monitoração dos recursos utilizados (infra-estrutura Grid)
Visão Geral do MDS Características Gerais do Monitoring and Discovery Service (MDS): • Conjunto de componentes para serviço de informações • Mecanismo para publicação e descoberta de status (dados dinâmicos) e informações de configuração (dados estáticos) de recursos • Provê interface uniforme e flexível para os dados coletados (imagem única sobre recursos distintos) • Estrutura descentralizada permite escalabilidade
Visão Geral do MDS Benefícios do Uso do MDS: • Através do MDS são realizadas consultas para descobrir propriedades de computadores, redes e recursos em geral: • Quantos processadores estão disponíveis nesse momento? • Qual a largura de banda provida? • Qual o meio de armazenamento: fita ou disco? • Usando um servidor LDAP, o MDS disponibiliza informações do middleware através de uma interface comum
Visão Geral do MDS Arquitetura do MDS (1/3): • O MDS possui uma estrutura hierárquica que consiste de 3 componentes principais: • Information Providers (IPs):coletam os dados do recurso e se comunicam com o GRIS (''sensores'') • Grid Resource Information Service (GRIS): executa em um recurso e atua como um gateway de informações para esse recurso • Grid Index Information Service (GIIS): provê um diretório agregado (indexador) de dados que facilita a descoberta e monitoração
Visão Geral do MDS Arquitetura do MDS (2/3):
Visão Geral do MDS Arquitetura do MDS (3/3): • Arquitetura flexível e hierárquica • Pode apresentar composição em diversos níveis de GIISs • Qualquer GRIS pode se registrar com qualquer GIIS, e qualquer GIIS pode se registrar com outro GIIS • Estrutura das informações segue o modelo LDAP • entidade é descrita por um conjunto de pares <atributo,valor>
Visão Geral do MDS Tipos de informações disponibilizadas pelo MDS (1/3): • Core Information Providers: • Conjunto de Informartion Providers (IPs) incluídos no MDS • Utilizados para publicar vários tipos de informações padrão no MDS • Custom Information Providers: • IPs criados pelos próprios usuários • Disponibilizam informações quaisquer
Visão Geral do MDS Tipos de informações disponibilizadas pelo MDS (2/3): • Core Information Providers: • Tipo de plataforma e arquitetura • Nome e versão do sistema operacional • CPU: tipo, número de CPUs, versão, velocidade, cache, etc... • Memória (física e virtual): tamanho, espaço livre, etc... • Interface de rede: nomes e endereços de hosts • Sistema de arquivos: tamanho, espaço livre, etc...
Visão Geral do MDS Tipos de informações disponibilizadas pelo MDS (3/3): • Custom Information Providers: • Estender arquitetura através da criação de novos IPs: • Informações não disponibilizadas pelos IPs incluídos no MDS • Publicar tipos específicos de dados que possam ser necessários por determinada aplicação • Especificação pode ser obtida no site do Globus: • http://www.globus.org/mds/creating_new_providers.pdf
Visão Geral do MDS Princípios básicos do GRIS e GIIS (1/5): • Recursos executam um serviço de informação padrão (GRIS): • utiliza LDAP • obtem informações sobre o recurso • Um GIIS disponibiliza um serviço de indexação e 'caching': • também utiliza LDAP • recursos se registram no GIIS • quando clientes fazem alguma requisição: • obtém a resposta através dos GRIS • utiliza a cache se estiver disponível
Visão Geral do MDS Princípios básicos do GRIS e GIIS (2/5): • GIIS exerce funções de indexação e procura de dados
Visão Geral do MDS Princípios básicos do GRIS e GIIS (3/5): • Grid Resource Information Service (GRIS): • Implementado como um servidor OpenLDAP • pode ser customizado com IPs específicos • responde queries pedindo informações (estáticas ou dinâmicas) sobre a máquina ou recursos locais • Autentica e processa cada requisição, e então a despacha para um ou mais IPs locais • Resultados são combinados e enviados de volta para o cliente
Visão Geral do MDS Princípios básicos do GRIS e GIIS (4/5): • Grid Resource Information Service (GRIS): • Comunicação GRIS-IP através de API bem definida • O GRIS deve ser configurado com • tipo de informação que IP irá disponibilizar • rotinas que IP define para implementar a API do GRIS • Resultados podem ser colocados em cache por um período de tempo configurável (TTL) • Dados obtidos dos IPs são filtrados pelo GRIS
Visão Geral do MDS Princípios básicos do GRIS e GIIS (5/5): • Grid Index Information Service (GIIS): • Implementado como servidor OpenLDAP para a construção de diretórios agregados • Papel fundamental em relação à escalabilidade: • descoberta mais eficiente pois não requisita novas consultas junto a cada recurso • Aceita requisições de registro de instâncias GRIS ou GIIS: • combina esses servidores em um espaço de informações unificado
Usando o MDS Monitoring and Discovery Service (MDS) pode ser usado para: • Localizar Recursos: • Onde estão os recursos com a arquitetura requisitada, os softwares instalados, capacidade disponível e largura de banda necessária? • Determinar características de um recurso: • Quais são as características físicas, conectividade e capacidades de um determinado recurso?
Usando o MDS Comando grid-info-search: • Utilizado para consultar dados disponibilizados pelo MDS • Formato: grid-info-search [opções] • Onde as opções são as seguintes:
Usando o MDS Comando grid-info-search (opções): • -config file: especifica um arquivo de configuração para o MDS • -mdshost host (-h): nome do host onde o servidor MDS está rodando (default é $GRID_INFO_HOST) • -mdsport port (-p): é a porta na qual o servidor MDS está rodando (default é $GRID_INFO_PORT) • -anonymous (-x): realiza o acesso ao servidor de forma anônima
Usando o MDS Comando grid-info-search (opções): • -mdsbasedn branch-point (-b): local base na DIT para iniciar a busca (default é ${GRID_INFO_BASEDN}) • -s scope: especifica o escopo da busca • base: nível base da DTI • one: nível base da DTI + 1 nível abaixo • sub: nível base da DTI + todos níveis abaixo • -giisregistrationstatus: solicita status do servidor onde o GIIS está realizando a consulta • ''attribute'': especifica quais atributos serão apresentados no retorno da consulta (ex. MdsCpu)
Usando o MDS Comando grid-info-search (opções): • ''filter'': define um critério para a consulta • ''(attribute=value)'' • ''(attribute>=value)'' • ''(attribute<=value)'' • ''(attribute~=value)'' • ''(attribute=*)'' Procura pela presença de um item • ''(attribute=*a)'' Procura por uma substring • -mdstimeout seconds (-T): quantidade de tempo que alguém deve esperar pelo retorno de uma requisição (default é $GRID_INFO_TIMEOUT)
Usando o MDS Exemplo grid-info-search (1): • Consultar todos os objetos em uma única máquina configurada como um GRIS: grid-info-search -h giis-demo.globus.org -p 8463 -b 'Mds-vo-name=local, o=Grid' • Consulta executa no host e na porta indicados • Não especifica atributos (consulta todos) • Mds-vo-name=local significa que a procura vai começar em um GRIS (observar uso da opção mdsbasedn)
Usando o MDS Exemplo grid-info-search (1) - resultado: SASL/GSI-GSSAPI authentication started SASL SSF: 56 SASL installing layers version: 2 # # filter: (objectclass=*) # requesting: ALL # [...] Mds-Computer-isa: IA32 Mds-Computer-platform: i686 Mds-Computer-Total-nodeCount: 1 Mds-Cpu-Cache-l2kB: 512 [...]
Usando o MDS Exemplo grid-info-search (2): • Consultar a quantidade de espaço livre no sistema de arquivos das máquinas de um GIIS: grid-info-search -x -h giis-demo.globus.org -p 8422 -b 'Mds-Vo- name=site, o=Grid' Mds-Fs-freeMB • A consulta utiliza amarração anônima (-x) e executa no host e na porta indicada • Mds-vo-name=site significa que a procura vai começar em um GIIS
Usando o MDS Exemplo grid-info-search (2) - resultado: # # filter: (objectclass=*) # requesting: Mds-Fs-freeMB # [...] # filesystems, jupiter.isi.edu, site, Grid dn:Mds-Device-Group-name=filesystems, Mds-Host-hn=jupiter.isi.edu, Mds-Vo-name=site, o=Grid Mds-Fs-freeMB: 1075 Mds-Fs-freeMB: 141 Mds-Fs-freeMB: 1711 Mds-Fs-freeMB: 2430 Mds-Fs-freeMB: 3657 Mds-Fs-freeMB: 4756 [...] Distinguished name branch-point
Usando o MDS Exemplo grid-info-search (3): • Consultar a velocidade e modelo da CPU em uma única máquina de um GIIS: grid-info-search -x -h giis-demo.globus.org -p 8422 -b 'Mds-Vo-name=site, o=Grid' '(&(objectclass=MdsCpu)(Mds-Host-hn=lucky6.mcs. anl.gov))' Mds-Cpu-model Mds-Cpu-speedMHz • Utiliza amarração anônima (-x) e executa no host e na porta indicada • Mds-vo-name=site significa que a procura vai começar em um GIIS • Objectclass especifica a CPU em determinado host
Usando o MDS Exemplo grid-info-search (3) - resultado: # # filter: (&(objectclass=MdsCpu)(Mds-Host-hn= lucky6.mcs.anl.gov)) # requesting: Mds-Cpu-model Mds-Cpu-speedMHz # # lucky6.mcs.anl.gov, lucky6, site, Grid dn: Mds-Host-hn=lucky6.mcs.anl.gov, Mds-Vo-name=lucky6, Mds-Vo-name= site, o=Grid Mds-Cpu-model: Intel(R) Pentium(R) III CPU family 1133MHz Mds-Cpu-speedMHz: 1125
Usando o MDS Browsers LDAP (1/2): • Navegadores LDAP proporcionam uma forma conveniente para consultar e examinar dados em um grid computacional • Softerra • Para sistema operacional Windows • Interface semelhante ao Windows Explorer • http://www.softerra.com • Browser LDAP java-based • Independente de plataforma; requisita versão Java 1.2.2 ou maior) • http://www.mcs.anl.gov/~gawor/ldap
Usando o MDS Browsers LDAP (2/2): Navegador da Softerra Navegador baseado em Java
Usando o MDS Questões sobre performance e temporização (1/3): • Tempo de retorno dos resultados de um comando grid-info-search pode ser afetado por uma série de fatores: • Complexidade da hierarquia (GRIS e GIIS) • Performance dos IPs acessados pelo GRIS: • overhead para obter os dados (relacionado à forma de aquisição) • grande quantidade de dados • Performance dos GRIS acessados pelo GIIS • TTL configurado para manter os dados em cache
Usando o MDS Questões sobre performance e temporização (2/3):
Usando o MDS Questões sobre performance e temporização (3/3): • O arquivo grid-info-resource-register.conf informa: • Lista de servidores GIIS onde o GRIS deve ser registrado • Parâmetro regperiod: intervalo para o envio de notificações de disponibilidade (heartbeats) • Parâmetro ttl: intervalo para manter infos de existência dos "subordinados" (2 * regperiod) • Parâmetro cachettl: usado para definir o tempo que os dados devem ser mantidos na cache
Directory Information Tree (DTI) A estrutura de diretórios do MDS segue o modelo LDAP, que consiste de uma hierarquia DTI e definições de classes de objetos Definição de LDAP (1/2): • Protocolo cliente-servidor para armazenar informações e responder consultas • NÃO é um banco de dados, mas um protocolo para acesso a bancos de dados e diretórios • Mantém pequenos registros de informação, em estrutura hierárquica (~= sistema de arquivos)
Directory Information Tree (DTI) Definição de LDAP (2/2): • Comunicações: • Client-to-server: • Permite a aplicações de usuários acessar um servidor LDAP e criar, consultar, modificar e deletar dados • Server-to-server: • Define como múltiplos servidores compartilham o conteúdo de uma DIT e como eles atualizam e replicam esses dados
Directory Information Tree (DTI) Directory Information Tree (1/2): • Estrutura básica do LDAP é uma árvore de informações (DTI) • Partindo de um nodo raíz, contém uma visão hierárquica de todos os seus dados • Descoberta de recursos é desempenhada por uma procura hierárquica dessa árvore • As sub-árvores da DIT podem ser distribuídas ou replicadas • Modelo de dados utiliza classes de objetos para caracterizar recursos • Cada objeto contém valores associados a atributos nomeados, de acordo com o tipo do objeto
Directory Information Tree (DTI) Directory Information Tree (2/2): • Tipos de estruturas presentes na DTI: • Object classes: descrevem o tipo de informação que pode/deve ser armazenada no diretório • Records: pares <atributo,valor>. Possui um tipo definido pela associação com um Object Class • Entries: cada um dos nodos da árvore (agrupam informações relacionadas)
Directory Information Tree (DTI) Consultas/operações (1/2): • LDAP é um serviço global de diretórios usado para procurar informações • Um ou mais servidores LDAP contém os dados que formam a árvore de diretórios • A sessão LDAP é extremamente simples: • O cliente contata o servidor • O servidor pode solicitar uma autenticação • Uma vez estabelecida a conexão, o cliente pode enviar comandos LDAP de consulta
Directory Information Tree (DTI) Consultas/operações (2/2): • Consulta envia parâmetros para servidor. Uma consulta completa envolve os seguintes parâmetros: • A árvore ou sub-árvore em que se quer procurar • Quantos níveis da árvore serão utilizados na procura • Como utilizar ''aliases'' para outras partes da árvore • O limite de tempo da consulta (timeout) • Um filtro a ser aplicado sobre os dados • A lista de atributos a serem retornados
Directory Information Tree (DTI) MDS Information Model (1/4): • O Information Model utilizado na hierarquia de objetos de um host é o seguinte: Mds-Host-name=hostname Mds-Software-Deployment=operating system Mds-Device-Group-name=processors Mds-Device-name=cpu 0 Mds-Device-name=cpu 1 Mds-Device-Group-name=memory Mds-Device-name=physical memory Mds-Device-name=virtual memory Mds-Device-Group-name=filesystems Mds-Device-name=/scratch1 Mds-Device-Group-name=networks Mds-Device-name=eth0
Directory Information Tree (DTI) MDS Information Model (2/4): • Representação gráfica equivalente:
Directory Information Tree (DTI) MDS Information Model (3/4): • Uma folha contém informações de um único recurso: dn: Mds-Device-name=physical memory, Mds-Device-Group-name=memory, ... objectclass: Mds objectclass: MdsDevice objectclass: MdsMemoryRam Mds-Device-name: physical memory Mds-Memory-Ram-sizeMB: 751 Mds-Memory-Ram-freeMB: 642
Directory Information Tree (DTI) MDS Information Model (4/4): • ... enquanto um nodo pai pode conter as informações combinadas de várias instâncias: dn: Mds-Device-Group-name=memory, ... objectclass: MdsMemoryRamTotal objectclass: MdsMemoryVmTotal objectclass: MdsDeviceGroup Mds-Device-Group-name: memory Mds-Memory-Ram-Total-sizeMB: 751 Mds-Memory-Ram-Total-freeMB: 642 Mds-Memory-Vm-Total-sizeMB: 1600 Mds-Memory-Vm-Total-freeMB: 1592 Mds-Memory-Ram-sizeMB: 751 Mds-Memory-Ram-freeMB: 642 Mds-Memory-Vm-sizeMB: 1600 Mds-Memory-Vm-freeMB: 1592
MDS e GTs • GT 2.4 • O MDS do GT2.4 não é instalado (default) no GT4 • Problema: falhas de segurança em versões antigas do OpenLDAP e do Cyrus SASL • Versões não suportadas do MDS 2.4 com versões mais recentes do OpenLDAP e Cyrus podem ser baixadas • MDS 2.4 não será fornecido em futuras versões do GT4 (GT 4.2)