Implemente o recurso DB2 pureScale no Linux

Fácil como contar até 3

O recurso IBM® DB2® pureScale™ permite escalar um sistema de banco de dados através da inclusão fácil de máquinas no cluster. Este artigo acompanha o processo de implementação do recurso DB2 pureScale em SUSE Linux®. Usamos uma infraestrutura de Ethernet de 10 gigabits em uma configuração com dois servidores System x 3850 X5 conectada a um controlador de armazenamento DS5100. O artigo também inclui etapas para depois da instalação e informações básicas para usar o DB2 pureScale, por exemplo, como incluir e remover membros e como preparar-se para alta disponibilidade e recuperação de desastres.

Aslam Nomani, DB2 Quality Assurance Manager, IBM Toronto

Aslam Nomani photoAslam Nomani trabalha na equipe de Tecnologia de Banco de Dados do Toronto Laboratory há cinco anos. Nos últimos quatro anos, ele trabalhou no departamento de Teste e Verificação de Sistemas do DB2 UDB. Aslam trabalhou extensivamente com DB2 UDB EE e DB2 UDB EEE com Query Patroller. Atualmente ele é um dos líderes na organização de teste de DB2 UDB.



Pandu Mutyala, DB2 System Verification Test, IBM China

Pandu Mutyala é mestre em ciências da informação e tecnologia pela Universidade de Ciência e Tecnologia do Missouri. Ele é membro da equipe de Controle de Qualidade do DB2 desde 2010 e é o responsável pelo teste do software DB2 pureScale nos sistemas operacionais Linux.



Yugandhra Rayanki, DB2 System Verification Test, IBM China

Yugandhra Rayanki trabalha na IBM há mais de seis anos, em diferentes equipes no grupo de Controle de Qualidade do DB2. Ele trabalha atualmente em teste de verificação de sistema para DB2 pureScale e é DBA Avançado Certificado em IBM DB2. Ele tem interesses especiais nas áreas de HADR, backup e recuperação.



Aimin Wu, DB2 Software Development, IBM China

Aimin Wu é o ponto focal de usabilidade do IBM System Optimization Competency Center (SOCC), incluindo gerenciamento, manutenção e monitoramento. Ela passou seus primeiros 10 anos na IBM na equipe de instalação do DB2, começando com o Platform Installer em UNIX e Linux. Ela foi arquiteta do DB2 Install: Up & Running em UNIX e Linux antes de passar para o SOCC.



18/Mai/2011

Introdução

No mercado de trabalho altamente competitivo de hoje, é necessário implementar uma arquitetura de processamento de dados que não apenas atenda as necessidades específicas do usuário, mas que também ofereça flexibilidade para adaptar-se aos requisitos estratégicos do futuro.

Em dezembro de 2009, a IBM apresentou o recurso DB2 pureScale para Enterprise Server Edition (também conhecido como o recurso de compartilhamento de dados para ESE), que traz essa tecnologia para sistemas abertos por meio da utilização de uma implementação de banco de dados ativo-ativo, de disco compartilhado, baseada na arquitetura de compartilhamento de dados do DB2 para z/OS.

O uso do recurso DB2 pureScale traz os seguintes benefícios:

  • Capacidade praticamente ilimitada: O sistema pode ser facilmente ampliado pela inclusão de máquinas adicionais no cluster. O recurso DB2 pureScale pode conter até 128 membros e tem um recurso de gerenciamento centralizado, que permite capacidade eficiente de ampliação. Ele usa uma tecnologia chamada Remote Direct Memory Access (RDMA), que fornece um mecanismo de comunicação entre nós altamente eficiente que auxilia os recursos de escalação.
  • Transparência para aplicativo: Aplicativos existentes podem ser aproveitados sem alterações. Um aplicativo executando em um ambiente DB2 pureScale não precisa de informações sobre os diferentes membros em um cluster, nem precisa se preocupar em particionar dados. O Recurso DB2 pureScale irá encaminhar automaticamente os aplicativos aos membros mais apropriados.
    O Recurso DB2 pureScale oferece suporte nativo para diversas sintaxes usadas por outros fornecedores de banco de dados, o que permite que esses aplicativos executem em um ambiente DB2 pureScale com poucas ou nenhuma alteração. De fato, os benefícios do Recurso DB2 pureScale podem ser obtidos, em muitos casos, sem precisar modificar os aplicativos.
  • Disponibilidade contínua: O Recurso DB2 pureScale fornece uma arquitetura ativo-ativo com redundância inerente. Se um membro ficar indisponível, o processamento pode continuar nos membros ativos remanescentes. Durante uma falha, apenas os dados sendo modificados no membro com falha ficam indisponíveis temporariamente, até que a recuperação de banco de dados seja concluída para aquele conjunto de dados. Essa abordagem é diferente da adotada por soluções concorrentes, nas quais o sistema inteiro fica indisponível durante a recuperação do banco de dados.
  • Custo total de propriedade (TCO) reduzido: O Recurso DB2 pureScale reduz o TCO porque as interfaces tratam da implementação e manutenção dos componentes integrados, o que reduz as dificuldades de aprendizado associadas com algumas das tecnologias concorrentes.

Para entender melhor como o Recurso DB2 pureScale oferece esses benefícios, é preciso entender um pouco mais sobre a arquitetura. A Figura 1 mostra os diferentes componentes de uma configuração DB2 pureScale. Embora haja diversos componentes avançados, uma parte significativa dessa configuração é transparente para o usuário final, pois o Recurso DB2 pureScale implementa e gerencia esses componentes.

Figura 1. Visão geral da topologia do Recurso DB2 pureScale
Visão geral da topologia do Recurso DB2 pureScale

Observe que há a implementação de quatro membros e dois caching facilities (CF) de cluster. Os clientes podem se conectar a qualquer membro e o Recurso DB2 pureScale pode balancear automaticamente a carga entre os diferentes membros com base no uso da máquina. Se houver falha em qualquer host na configuração, o Recurso DB2 pureScale redireciona os clientes para os membros ativos nos hosts remanescentes.

Cada membro DB2 representa um mecanismo de processamento do DB2. Até 128 membros podem ser implementados em uma única configuração do DB2 pureScale. Os membros cooperam entre si e com o CF para fornecer acesso coerente ao banco de dados a partir de qualquer membro. Os membros podem ser incluídos e removidos à medida que as demandas de processamento mudem, sem afetar os clientes. Como discutimos posteriormente neste artigo, membros e CFs podem coexistir na mesma máquina física.

É integrada uma camada de serviços de cluster no DB2 pureScale que fornece detecção de falha, automatização de recuperação e um sistema de arquivos armazenado em cluster. Essas tecnologias são integradas no Recurso DB2 pureScale e usam tecnologias IBM otimizadas para o software DB2. Elas incluem IBM Tivoli Systems Automation para Multiplataformas (Tivoli SA MP), Reliable Scalable Cluster Technology (RSCT) e General Parallel File System (GPFS).

O Recurso DB2 pureScale automaticamente implementa e configura essas tecnologias de acordo com uma configuração de boa prática predefinida. Não é necessário determinar como configurar a tecnologia de armazenamento em cluster que vem com o Recurso DB2 pureScale, pois ela é transparente para o usuário.

Na configuração do DB2 pureScale, os membros e CFs podem comunicar-se eficientemente usando a tecnologia RDMA. RDMA permite que uma máquina leia ou grave na memória de outra sem precisar de ciclos de processador na máquina de destino. Esse mecanismo, juntamente com redes de alta velocidade como Ethernet de 10 gigabits, possibilita uma camada de transporte muito eficiente para a escalação do Recurso DB2 pureScale. Essa configuração também pode ser executada em uma rede InfiniBand.

O CF fornece um mecanismo de bloqueio escalável e centralizado para garantir a coerência dos dados. Ele age como um cache rápido para páginas do DB2, usando tecnologia RDMA para fornecer melhor desempenho em situações nas quais, de outra maneira, uma operação em disco físico seria necessária. O CF, juntamente com a camada de transporte eficiente, permite que o Recurso DB2 pureScale seja escalado facilmente, pois cada membro não precisa negociar com todos os demais ao realizar uma tarefa.

Como o Recurso DB2 pureScale usa uma tecnologia de disco compartilhado, qualquer membro pode ler ou gravar em qualquer parte do banco de dados. Se houver falha em algum dos membros, o conjunto completo de dados ainda pode ser acessado a partir dos demais membros ativos.


Implementando o Recurso DB2 pureScale

Visão geral da configuração

No cenário a seguir, você irá implementar o Recurso DB2 pureScale V9.8.3 em duas máquinas físicas System x 3850 X5. Para ver uma lista de outros modelos de servidor suportados, consulte a Documentação do DB2 .

Cada máquina física tem as seguintes características:

  • Existe em uma rede pública que permite conectividade com o cliente.
  • Tem uma placa Ethernet de 10 gigabits para comunicação em alta velocidade e baixa latência entre membros e CFs. A Ethernet de 10 gigabits também permite RDMA over Ethernet.
  • Tem conectividade compartilhada para um conjunto comum de discos.

A Figura 2 mostra uma configuração típica dos principais componentes de hardware em uma implementação do Recurso DB2 pureScale.

Figura 2. Configuração de amostra do hardware do Recurso DB2 pureScale
Configuração de amostra do hardware do Recurso DB2 pureScale

A Tabela 1 contém as configurações de alto nível para cada nó físico.

Tabela 1. Visão geral da configuração
Nome do hostcoralinst07coralinst08
Nível do SOSUSE Linux Enterprise Server 10 SP3 (x86_64) Linux Kernel 2.6.16.60-0.69.1-smpSUSE Linux Enterprise Server 10 SP3 (x86_64) Linux Kernel 2.6.16.60-0.69.1-smp
Tipo de ServidorMembro 0 + CF PrimárioMembro 1 + CF Secundário
Núcleos8 8
RAM64 GB64 GB
Firmware da BIOSVersão: -[G0E122DUS-1.23]- exigida apenas para X5 (x3850)Versão: -[G0E122DUS-1.23]- exigida apenas para X5 (x3850)
Discos compartilhados /dev/sdd - Disco que irá conter os arquivos compartilhados da instância do DB2
/dev/sde - Disco utilizado para dados do DB2
/dev/sdf - Disco utilizado para logs de transação do DB2
/dev/sdg - Disco utilizado pela Camada de Serviços de Cluster do DB2
Nota: os tamanhos dos discos variam dependendo dos requisitos específicos
Driver de Dispositivo do DiscoPacote de driver RDAC do Linux para kernel 2.6
z-Bottom of Form;z-Top of Form;HTML Markup;Comment;09.03.0C05.0439
Pacote de drivers RDAC do Linux para kernel 2.6 z-Bottom of Form;z-Top of Form;HTML Markup;Comment;
09.03.0C05.0439
Interface Etherneteth0eth0
Firmware da placa Ethernet de 10 gigabits2.7.700 ( fw-25408-2_7_700-DB2_59Y1905.bin)
de mellanox.com
2.7.700 (fw-25408-2_7_700-DB2_59Y1905.bin)
de mellanox.com
Nome do host da interface Ethernet de 10 gigabits coralinst07-10ge
coralinst08-10ge
Interface Ethernet de 10 gigabits eth4 eth4
OpenSSH openssh-4.2p1-18. 40.35 openssh-4.2p1-18. 40.35
OFED OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.1.PTF.604678 OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.1.PTF.604678

Para informações sobre como configurar a Ethernet de 10 gigabits, consulte o Apêndice A, ou consulte Apêndice B para saber mais sobre a implementação de uma rede InfiniBand.


Etapas de pré-instalação do Recurso DB2 pureScale

A menos que especificado de outra forma, os comandos que constam nestas etapas são executados como um usuário com privilégios de raiz.

  1. Certifique-se de que SSH (sem uma senha) está definido, no nível de raiz, em todas as máquinas físicas que participam de um cluster DB2 pureScale. A configuração SSH pode ser validada usando o seguinte comando de máquina a máquina no cluster e verificando se ele retorna o nome do host válido sem qualquer solicitação:
    # ssh <máquina de destino> hostname

    SSH de nível de instância será configurado pelo instalador durante a configuração da instância.

  2. Tenha ao menos 10 GB de espaço livre nos sistemas de arquivo /tmp e /var em cada máquina.
  3. Todos os conjuntos de arquivo devem ser instalados como parte da instalação do SO:
    cpp, gcc, gcc-c++, kernel-source, binutils, libstdc++ de 32/64 bits.
  4. Identifique os discos que serão usados para o Recurso DB2 pureScale e verifique se cada um está rotulado com WWID/WWN e que sejam os mesmos em todos os nós.

    É possível usar o comando fdisk -l para listar todos os volumes físicos disponíveis em uma máquina, bem como o tamanho dos discos. O exemplo a seguir mostra a saída desse comando:


    Disk /dev/sdd: 214.7 GB, 214749020160 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Em sistemas com driver RDAC IBM, faça o seguinte:
    1. Determine o mapeamento LUN usando o comando lsvdev:
      coralinst07:~ # /opt/mpp/lsvdev
      
      Array Name      Lun    sd device
      -------------------------------------
      DS5300SVT1      0     -> /dev/sdc
      DS5300SVT1      1     -> /dev/sdd
      DS5300SVT1      2     -> /dev/sde
      DS5300SVT1      3     -> /dev/sdf
      DS5300SVT1      4     -> /dev/sdg
    2. Obtenha uma lista dos Arrays de Armazenamento que o host consegue detectar:
      coralinst07:~ # /usr/sbin/mppUtil -a
      Hostname    =  coralinst07
      Domainname  = N/A
      Time        = GMT 08/06/2010 16:27:59
      
      ---------------------------------------------------------------
      Info of Array Modules seen by this Host.
      ---------------------------------------------------------------
      ID              WWN                      Type     Name
      ---------------------------------------------------------------
      0      600a0b800012abc600000000402756fc FC     FASTSVT1
      1      600a0b800047bf3c000000004a9553b8 FC     DS5300SVT1
      ---------------------------------------------------------------
    3. Obtenha uma lista de WWN dos discos associados aos LUNS:
      coralinst07:# mppUtil -a DS5300SVT1 | awk '/WWN/' | grep -v Restore
      Lun #0 - WWN: 600a0b800047bf3c0000803e4baca3df
      Lun #1 - WWN: 600a0b800047b9ca00008bec4baca3e1
      Lun #2 - WWN: 600a0b800047bf3c000080404baca406
      Lun #3 - WWN: 600a0b800047b9ca00008bee4baca406
    4. Obtenha uma lista de WWID dos discos. O WWN e o WWID são iguais exceto pelo primeiro dígito:
      coralinst07# cd /dev/disk/by-id
      scsi-3600a0b800047b9ca00008bec4baca3e1 -> ../../sdd
      scsi-3600a0b800047bf3c000080404baca406 -> ../../sde
      scsi-3600a0b800047b9ca00008bee4baca406 -> ../../sdf 
      scsi-3600a0b800047bf3c0000803e4baca3df -> ../../sdg

Etapas de instalação do Recurso DB2 pureScale

  1. Identifique um dos nós como o installation-initiating host (IIH). Esse host irá executar o programa de instalação do Recurso DB2 pureScale. Configure o monitor para exibir as ferramentas gráficas. Neste caso, você está usando coralinst07 como o IIH.
  2. Para iniciar o instalador gráfico do DB2, acesse a pasta ese_dsf na imagem do produto transferida por download, ou no diretório raiz do DVD de instalação do produto, e execute o comando db2setup:
    #./db2setup -t /tmp/db2setup.trc -l /tmp/db2setup.log
  3. Na tela de boas-vindas, como mostra a Figura 3, é possível visualizar documentação antes de instalar o DB2 pureScale. Por exemplo, o tópico Architecture Overview traz uma visão geral de alto nível do ambiente de instância do DB2 pureScale. Para instalar o Recurso DB2 pureScale, clique em Install a Product na área de janela à esquerda.
    Figura 3. Barra de ativação de configuração do DB2
    Barra de ativação de configuração do DB2
  4. Na tela Install a Product as root, clique em Install New, como mostra a Figura 4.
    Figura 4. Barra de ativação da configuração do DB2 - Install a product
    Barra de ativação da configuração do DB2 - Install a product
  5. O assistente de Configuração do DB2 oferece um conjunto de instruções intuitivas para ajudar a navegar pelo restante da implementação, como mostra a Figura 5. Clique em Next para continuar a instalação. Também é possível clicar em View Features para ver quais recursos serão instalados.
    Figura 5. Assistente de configuração do DB2
    Assistente de configuração do DB2
  6. Leia o contrato de licença, como mostra a Figura 6. Clique em Accept se você aceitar os termos da licença, e em seguida clique em Next.
    Figura 6. Contrato de Licença do Software
    Contrato de Licença do Software
  7. Como mostra a Figura 7, é possível instalar o Recurso pureScale imediatamente, configurar um arquivo de resposta para instalar mais tarde, ou instalar imediatamente e manter as configurações em um arquivo de resposta. Neste exemplo, você irá instalar imediatamente sem criar um arquivo de resposta, portanto selecione DB2 Enterprise Server Edition with the pureScale Feature, e a seguir clique em Next.
    Figura 7. Tipo de instalação
    Tipo de instalação
  8. Na tela Select the installation directory, mostrada na Figura 8, você irá fornecer informações sobre o diretório de instalação dos binários do DB2. Clique em Next após determinar o caminho de instalação. Na maioria dos casos, o caminho padrão pode ser usado.
    Figura 8. Diretório de instalação
    Diretório de instalação
  9. Na tela Set up a DB2 Instance, mostrada na Figura 9, é possível criar uma instância do DB2 imediatamente ou deixar para depois que a instalação seja concluída. Neste exemplo, você irá criar a instância, portanto selecione Create a DB2 instance e clique em Next.
    Figura 9. Configurar uma instância do DB2
    Configurar uma instância do DB2
  10. Na tela Set user information for the DB2 instance owner, mostrada na Figura 10, digite as informações do proprietário da instância e clique em Next. Se um usuário existente for selecionado como proprietário da instância do DB2 ou usuário protegido do DB2, esse usuário deve existir em todos os hosts com os mesmos UID, GID, nome de grupo e caminho $HOME. Os hosts não devem compartilhar o diretório $HOME do proprietário da instância, pois esse diretório será local para cada host. Se for selecionada a criação de um usuário, o novo usuário não deve existir em nenhum dos hosts.
    Figura 10. Informações sobre o proprietário da instância
    Informações sobre o proprietário da instância
  11. Na tela Set user information for the fenced user, mostrada na Figura 11, insira as informações sobre o usuário protegido e clique em Next.
    Figura 11. Informações sobre o usuário protegido
    Informações sobre o usuário protegido
  12. Na tela Set up a DB2 Cluster File System, mostrada na Figura 12, você usará um dos discos predefinidos para criar um sistema de arquivos compartilhado usado pelo ambiente da instância do DB2 pureScale para arquivos de instância que são compartilhados por todas as máquinas. O sistema de arquivos será montado em /db2sd<timestamp> e o diretório /db2sd<timestamp>/<instance_name> será o caminho padrão do banco de dados (como definido pelo parâmetro de configuração DFTDBPATH).

    Outro pequeno disco será usado para fins de recuperação automática de cluster interno. Digite o caminho completo dos discos e clique em Next.

    Figura 12. Configuração do Sistema de Arquivos de Cluster do DB2
    Configuração do Sistema de Arquivos de Cluster do DB2
  13. Na tela Host List, mostrada na Figura 13, inclua os hosts remanescentes que devem ser parte do cluster do DB2 pureScale. O IIH será incluído por padrão. Para cada host que precisa ser incluído, clique em Add.
    Figura 13. Seleção da lista de hosts
    Seleção da lista de hosts
  14. Após clicar em Add, como mostra a Figura 14, é solicitado a você que insira o nome de um host (a saída do comando hostname). Digite o nome do host e clique em OK. Repita essas etapas para incluir todos os hosts necessários.
    Figura 14. Entrada do nome do host remoto
    Entrada do nome do host remoto
    Após cada host adicional ser inserido, o programa de instalação do DB2 irá validar cada novo host, como mostra a Figura 15.
    Figura 15. Indicador de progresso das configurações da instalação
    Indicador de progresso das configurações da instalação
  15. Após a inclusão de todos os hosts, será exibida a lista de hosts, como mostra a Figura 16. Uma marca de seleção ao lado de um host mostra que ele foi validado. Quando você estiver satisfeito com a configuração identificada na parte inferior da janela, clique em Next. Nesse momento, o programa de instalação do DB2 fará mais uma validação adicional da configuração SSH sem senha.
    Figura 16. Confirmação da lista de hosts
    Confirmação da lista de hosts

    Se houver mais de uma máquina física na configuração, o assistente de instalação atribuirá automaticamente cada CF a uma máquina diferente.

  16. Se você quiser que um membro e um CF sejam instalados em um mesmo host: na tela Host List, clique no botão Advanced e clique em Manually assign Cluster Caching Facilities (CF), como mostra a Figura 17.
    Figura 17. Atribuição de CF
    Atribuição de CF

    Como mostra a Figura 18, em Preferred Primary CF, clique em Configure the host as both a CF and a DB2 member. Da mesma forma, é possível marcar a caixa de seleção abaixo de Preferred Secondary CF para criar um CF secundário e um membro do DB2 em um host diferente no cluster.

    Figura 18. Atribuição de CF primário e secundário
    Atribuição de CF primário e secundário

    Deve haver dois CFs identificados em duas máquinas físicas distintas, para evitar a criação de um único ponto de falha.

  17. Após o programa de instalação do DB2 validar o SSH sem senha, o programa mostrará um resumo das entradas antes de continuar com a instalação, como mostra a Figura 19. Se você estiver satisfeito com as entradas, clique em Finish para iniciar a instalação.
    Figura 19. Confirmação das configurações de instalação
    Confirmação das configurações de instalação
  18. Durante a instalação real, uma barra de monitoramento de progresso mostra o progresso da instalação, como mostra a Figura 20. Essa etapa levará vários minutos, pois o Recurso DB2 pureScale e os componentes selecionados estão sendo implementados em todos os hosts na configuração.
    Figura 20. Indicador do progresso da instalação
    Indicador do progresso da instalação
  19. Quando a instalação do Recurso DB2 pureScale for concluída, a tela de configuração concluída com sucesso fornece informações adicionais sobre os locais dos arquivos de log e de configuração, como mostra a Figura 21. Clique em Finish.
    Figura 21. Conclusão da instalação
    Conclusão da instalação
    A instalação do Recurso DB2 pureScale foi concluída em ambos os hosts e uma instância do DB2 está pronta para uso.

Etapas pós-instalação do Recurso DB2 pureScale

Com uma instância do Recurso DB2 pureScale para Enterprise Server Edition pronta para uso, um sistema de arquivos deve ser criado para os dados e os logs. O sistema de arquivos pode ser criado usando o comando db2cluster. Como usuário raiz, faça o seguinte:

  1. Crie um sistema de arquivos para os dados e outro para os logs:
    #<DB2 Install Path>/bin/db2cluster -cfs -create -filesytem data -disk /dev/sde
    #<DB2 Install Path>/bin/db2cluster -cfs -create -filesytem log -disk /dev/sdf

    O Caminho de Instalação do DB2 nesta implementação seria /opt/ibm/db2/V9.8. O padrão é criar os sistemas de arquivos de dados e de logs em /db2fs e disponibilizá-los para todos os hosts na instância do DB2 pureScale.

  2. Modifique o proprietário do sistema de arquivos para que seja o proprietário da instância do DB2, de modo que a instância tenha acesso completo a esse sistema. Neste caso, db2sdin1 é o nome do proprietário da instância e db2iadm1 é o nome do grupo do proprietário da instância.
    #chown db2sdin1:db2iadm1 /db2fs/data
    #chown db2sdin1:db2iadm1 /db2fs/log
  3. Inicie a instância do DB2 usando o comando db2start. Para ver o estado da instância DB2 pureScale a qualquer momento, use o comando db2instance.
    > db2start
    04/19/2010 11:02:08 0 0 SQL1063N DB2START 
    processing was successful.
    04/19/2010 11:02:08 1 0 SQL1063N DB2START 
    processing was successful.
    SQL1063N DB2START processing was successful.

    Para ver o estado de um cluster do DB2 pureScale, use o comando db2instance -list.
  4. Crie o banco de dados e transfira os logs para o sistema de arquivos de logs. Os comandos a seguir devem ser executados em hosts membros e não em hosts CF.
    > db2 create db testdb on /db2fs/data
    > db2 update db cfg for testdb using newlogpath /db2fs/log
  5. Faça um catálogo das conexões de cliente para qualquer membro pureScale ativo e conecte ao banco de dados.

Usando o Recurso DB2 pureScale

O Recurso DB2 pureScale tem muitas vantagens. Esta seção apresenta casos de uso que demonstram esse valor adicional. A implementação simples do Recurso DB2 pureScale já demonstrou que pode reduzir o custo total de propriedade.

Incluindo e removendo membros

O Recurso DB2 pureScale permite incluir membros na configuração rapidamente, sem precisar redistribuir os dados. Os binários de instalação do DB2 são automaticamente armazenados no IIH e, portanto, não precisam de acesso à mídia original de instalação ao incluir membros. Para incluir um membro, basta parar a instância e executar o comando a seguir no IIH:

db2iupdt -d -add -m ServerX:ServerX-10ge db2sdin1

Da mesma forma, para remover um membro, é possível executar o comando a seguir no IIH:

db2iupdt -d -drop -m ServerX:ServerX-10ge db2sdin1
É possível iniciar ou desativar membros de forma transparente para o aplicativo, de modo que o aplicativo não perceba que uma mudança ocorreu.

Balanceamento automático de carga

O Recurso DB2 pureScale oferece a capacidade de distribuir dinamicamente uma carga de trabalho entre todos os membros ativos, com base nas características de utilização das diferentes máquinas. Aplicativos de CLI multiencadeados terão, por padrão, balanceamento de carga de trabalho em nível de conexão, sem qualquer mudança. Esse balanceamento pode ser modificado para que seja aplicado no nível de transação em vez do nível de conexão. Para aplicativos Java multiencadeados, enableSysplexWLB=true pode ser alterado na sequência de conexão para aproveitar o balanceamento de carga no nível de transação.

À medida que novos membros forem iniciados, os clientes irão encaminhar automaticamente para eles, sem interrupção do serviço. Além disso, os membros podem ser parados, conforme as instruções de manutenção oculta, sem que o aplicativo saiba que essa operação ocorreu.

Também é possível configurar nos clientes prioridades em relação aos membros aos quais se conectam. Esse recurso é chamado de afinidade de cliente e pode ser vantajoso se já existir uma carga de trabalho particionada.

Para usar recursos do DB2 pureScale como balanceamento de carga no nível de transação ou afinidade de cliente, o nível mínimo do cliente deve ser 9.7 fix pack 3 ou o nível JCC correlacionado. Para correlacionar os níveis JCC incluídos nos vários níveis de fix pack, consulte a seção Recursos para obter mais detalhes.

Manutenção oculta

Em muitos casos, é essencial fazer manutenção em um sistema, mas sem que ocorra impacto negativo nos aplicativos clientes. A manutenção oculta permite que todas as transações em um membro sejam concluídas e, em seguida, encaminha de forma transparente o aplicativo para outro membro. Por exemplo, para retirar o membro 1, o comando a seguir seria usado:

db2stop member 1 quiesce

Em alguns casos, pode haver situações nas quais, em uma sessão de usuário, uma unidade de trabalho (UOW) foi iniciada, mas não foi confirmada nem retrocedida. A menos que um valor de tempo limite tenha sido especificado, db2stop quiesce irá aguardar até que essa UOW seja concluída para parar o membro. Para situações assim, é possível especificar um valor de tempo limite - por exemplo, dez minutos, o que daria dez minutos para que o aplicativo concluísse a UOW. Se, após dez minutos, a UOW não tiver sido concluída, o software do DB2 irá automaticamente forçar a parada do aplicativo. Aplicativos que tenham concluído a UOW nos dez minutos são automaticamente encaminhados para os membros ativos. Para parar o membro 1 com um tempo limite de dez minutos, execute o seguinte comando:

db2stop member 1 quiesce 10

Alta disponibilidade

Uma das importantes propostas de valor do Recurso DB2 pureScale são as características de alta disponibilidade integradas na arquitetura. Todos os recursos necessários são automaticamente monitorados pelos serviços de cluster do DB2 pureScale e reiniciados quando necessário. Aplicativos que estejam conectados a membros com falha podem ser automaticamente encaminhados para membros ativos, nos quais o aplicativo pode executar novamente qualquer transação que tenha falhado. Aplicativos conectados a componentes sem falha não serão afetados.

Um dos fatores mais distintivos do Recurso DB2 pureScale, em relação às tecnologias concorrentes, é que não ocorre um travamento em todo o cluster quando há falha de um membro. Na verdade, apenas os dados em processo de atualização no membro com falha ficam temporariamente indisponíveis até que a recuperação seja concluída. Aplicativos em membros ativos que estejam tentando acessar os dados bloqueados no membro com falha ficarão brevemente em um estado de espera e, por padrão, não receberão qualquer erro. A recuperação será concluída rapidamente, de modo que a disponibilidade de dados em um membro com falha será semelhante à representação hipotética mostrada na Figura 22.

Figura 22. Típico padrão de disponibilidade de dados durante a recuperação de membros
Típico padrão de disponibilidade de dados durante a recuperação de membros

Recuperação de desastres

Embora o Recurso DB2 pureScale tenha integrada uma solução de alta disponibilidade, muitos clientes também precisarão de uma solução de recuperação de desastres para atender a seus requisitos de continuidade de negócios. O Recurso DB2 pureScale usa tecnologia de espelhamento de disco remoto e também é projetado para funcionar com produtos de replicação de banco de dados, como mostra a Figura 23.

Figura 23. Configuração típica de recuperação de desastres
Configuração típica de recuperação de desastres

Se houver falha em todo um site primário que estiver executando uma instância do DB2 pureScale, o site remoto pode ser usado para permitir que as operações de negócios continuem. O Recurso DB2 pureScale pode usar a funcionalidade tradicional de backup, recuperação e roll-forward para soluções de recuperação de desastres.


Conclusão

Usando tecnologias de CF e RDMA, o Recurso DB2 pureScale para Enterprise Server Edition fornece uma solução de banco de dados que pode ser escalada efetivamente para atender ao crescimento e dinamismo das necessidades de diferentes organizações, incluindo os clientes mais exigentes. Membros adicionais podem ser incluídos no ambiente do DB2 pureScale para atender à demanda nos horários de pico de processamento, sem qualquer impacto nos aplicativos existentes.

O Recurso DB2 pureScale balanceia automaticamente a carga de trabalho entre todos os membros DB2 em um cluster sem alterações em aplicativos, aproveitando totalmente a capacidade de processamento adicional. Se houver falha em um membro DB2, os aplicativos serão automaticamente encaminhados para outros membros ativos. Quando o membro com falha retornar, os aplicativos serão encaminhados de forma transparente para o membro reiniciado.

O design e capacidades do Recurso DB2 pureScale podem ajudar a diminuir o custo total de propriedade em relação a outras soluções, permitindo um modelo simplificado de implementação e manutenção. A instalação do Recurso DB2 pureScale gerencia a implementação e configuração de todos os componentes de software em pacote configurável para todos os hosts no ambiente DB2 pureScale. Quando o ambiente do Recurso DB2 pureScale estiver ativo, seu status operacional é monitorado e mantido facilmente a partir de qualquer um dos membros ativos.

Agradecimentos

Os autores gostariam de agradecer às seguintes pessoas, que contribuíram com este artigo:

  • Serge Boivin, DB2 LUW Information Development
  • Jason Shayer, DB2 LUW Information Development
  • Matthew Huras, Lead Architect, DB2 LUW

Apêndice A: Configurando um cluster pureScale para suportar RDMA over Ethernet (RoCE)

Como mencionamos anteriormente neste artigo, o Recurso DB2 pureScale utiliza uma rede Ethernet de 10 gigabits para RDMA over Ethernet, para permitir comunicação ideal entre os membros e CF.

RDMA over Ethernet é uma alternativa a InfiniBand e é suportado em implementações de System X / Linux do pureScale. RDMA over Ethernet é um transporte eficiente e leve colocado em uma camada diretamente sobre Ethernet.

Este apêndice descreve as etapas de alto nível para implementar uma rede Ethernet de 10 gigabits (para interconexão no cluster) para suportar RDMA over Converged Ethernet (RoCE).

  1. Implemente o comutador de Ethernet de 10 gigabits que suporta controle de fluxo baseado em prioridade e Ethernet sem perdas (semelhante à implementação de um comutador típico).
  2. Nesta configuração, uma única placa Ethernet de 10 gigabits (MT 26448 com 2 portas) é ligada a cada nó no cluster.
  3. Use cabos SFP+ para conectar o comutador e os hosts.
  4. Instale OFED 1.5.2 (OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.2.PTF.604678). OFED (Open Fabrics Enterprise Distribution) é um pacote de drivers de dispositivos para Linux que instala os componentes VERBS, Utils, uDAPL, RDMA CM, Mellanox e outros. Para obter instruções detalhadas sobre a instalação do OFED, consulte o Centro de Informações do 9.8.0.3 e a nota técnica correspondente.
  5. Edite os scripts de rede como se segue em /etc/sysconfig/network/ para cada nó, para atribuir um IP a cada interface; ou use o YaST para configurar as interfaces.
    BOOTPROTO='static'
    BROADCAST=''ETHTOOL_OPTIONS=''IPADDR='192.168.1.103/24'MTU=''NAME='MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]'NETWORK=''REMOTE_IPADDR=''STARTMODE='auto'
    Se isso não for configurado, irá ocorrer um erro DAT_INVALID_ADDR.
  6. Edite o arquivo /etc/hosts em cada nó, para fins de encaminhamento, da seguinte maneira:
    #10ge Network
    192.168.1.100 coralinst07-10ge
    192.168.1.101 coralinst08-10ge
  7. Em cada nó, o arquivo /etc/dat.conf deve ter um formato semelhante a este:
    ofa-v2-roe u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth4 0" ""
    Aqui ofa-v2-roe é o nome do dispositivo usado para fazer uma conexão. Dapl2.0 é DAT2.0 e eth4 é o nome da interface. Se isso não for configurado, ocorrerá um erro DAT_INTERNAL_ERROR.
  8. /etc/init.d/openibd restart
  9. Use o comando chkconfig -a openibd para verificar se openibd está executando e use service openibd status para verificar se todos os módulos e dispositivos estão carregados.

Para validar o estado de RoCE em cada nó, execute os comandos ibv_devinfo ou ibstatus como usuário raiz. Verifique se as portas configuradas estão ativas e se o link está ativo.

Por exemplo:

port:   1
	state:                  PORT_ACTIVE (4)
	max_mtu:                2048 (4)
	active_mtu:             1024 (3)
	sm_lid:                 0
	port_lid:               0
	port_lmc:               0x00
	link_layer:             Ethernet

Além disso, você deve realizar um teste de ping usando os endereços e nomes de host definidos no arquivo /etc/hosts. Você também pode usar dtest, um utilitário que vem com o OFED.

Execute dtest -P ofa-v2-roe no host 1 e verifique se você consegue ver uma conexão escutando, e no host 2 execute dtest -P ofa-v2-roe -h <host1-10ge>. Você deve ver que a conexão consta como PASSED.

Se o host no qual o CF ou membro reside tiver mais de 64 GB de memória, o parâmetro log_mtts_per_seg do módulo do driver HCA Mellanox (mlx4_core) deverá ser aumentado de 3 (padrão) para 7, para obter maiores registros de memória.

Para aumentar o tamanho, execute o seguinte comando como usuário raiz:

  1. No SUSE:
    			echo "options mlx4_core log_mtts_per_seg=7" >> 
    /etc/modprobe.conf.local
  2. No RHEL:
    			echo "options mlx4_core log_mtts_per_seg=7" >> /etc/modprobe.conf

Para que essa alteração tenha efeito, é necessário reiniciar o servidor. Para verificar se a alteração teve efeito no módulo, insira:
<host-name>/sys/module/mlx4_core/parameters # cat /sys/module/mlx4_core/parameters/log_mtts_per_seg

Não é necessário um gerenciador de sub-rede para RoCE, mas um IP deve ser configurado no comutador para que RSCT/TSA possa monitorar os recursos de rede associados.

O exemplo a seguir mostra como é possível fazer com que o IP do comutador seja o gateway padrão da rede RoCE.

Atribua um IP ao comutador RoCE e use o comando route add, ou use o código a seguir:

coralinst07:~ # route add -net 192.168.1.100 
netmask 255.255.255.0 gw 192.168.1.3 ==>

Isso não é persistente. Para tornar persistente, é necessário acrescentar ao arquivo /etc/sysconfig/network/routes algo como 192.168.1.0 192.168.1.3 eth-id-00:02:c9:08:28:10e consultar usando o comando route. Isso exigirá que o serviço de rede seja reiniciado, desta forma: /etc/init.d/network restart.

coralinst07:~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.1.3     255.255.255.0   UG    0      0        0 eth2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth2
9.26.92.0       *               255.255.252.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         rsb-v94-hsrp.to 0.0.0.0         UG    0      0        0 eth0

Apêndice B: Configurando o cluster pureScale para suportar InfiniBand

InfiniBand é um link de comunicação por malha comutada usado para comunicação em alta velocidade. Seus recursos incluem alto rendimento, baixa latência e links bidirecionais ponto a ponto. Assim como RoCE, OFED também é necessário para InfiniBand.

Este apêndice mostra as etapas de alto nível para implementar InfiniBand.

  1. Implemente um comutador IB (Mellanox IS5030 com 36 portas). Será necessário ativar o subnet manager (SM) no comutador, o que exigirá uma licença separada.
  2. Nesta configuração, uma única placa IB pMT 26428 com duas portas é conectada a cada nó no cluster.
  3. Cabos QSFP devem ser usados para conectar ao comutador e aos hosts.
  4. Instale OFED 1.5.2 (OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.2.PTF.604678). OFED (Open Fabrics Enterprise Distribution) é um pacote de drivers de dispositivos para Linux que instala os componentes VERBS, Utils, uDAPL, RDMA CM, Mellanox e outros.
  5. Edite o arquivo /etc/dat.conf para incluir as linhas a seguir no arquivo de configuração:
    ofa-v2-ib0 u2.0 nonthreadsafe default 
    libdaplofa.so.2 dapl.2.0 "ib0 0" ""

    Aqui, ofa-v2-ib0 é o nome do dispositivo IB ao qual se conectar e dapl.2.0 é uDAPL. Se dat.conf não for configurado, ocorrerá um erro DAT_INTERNAL_ERROR.
  6. Edite /etc/sysconfig/network/Ifcfg-ib0 para configurar o IP estático para interfaces ib0. Por exemplo, para ifcfg-ib0, use:
    DEVICE=ib0
    BOOTPROTO='static'IPADDR='10.1.1.154' #replace with IP address IB port is to use
    NETMASK='255.255.255.0' #Change if IB is have address in a large range like class 
                             CSTARTMODE='onboot'
    WIRELESS='no
  7. Inclua o nome de rede e o IP configurados em /etc/hosts em todas as máquinas no cluster. Por exemplo:
    10.1.1.130 host130-ib0
    10.1.1.131 host231-ib0
  8. Execute /etc/init.d/openibd restart para carregar os módulos.
  9. Use o comando chkconfig -a openibd para verificar se openibd está executando e use service openibd status para verificar se todos os módulos e dispositivos estão carregados.

Para validar o estado da InfiniBand em cada nó, execute os comandos ibv_devinfo ou ibstatus como usuário raiz. Verifique se as portas configuradas estão ativas e se o link está ativo.

Por exemplo, para porta 1:

state:                  PORT_ACTIVE (4)
max_mtu:                2048 (4)
active_mtu:             2048 (4)
sm_lid:                 1
port_lid:               21
port_lmc:               0x00
link_layer:             IB

Você também deve realizar um teste de ping usando os endereços e nomes de host definidos no arquivo /etc/hosts file.
Também deve executar dtest, um utilitário que vem com o OFED. Execute dtest -P ofa-v2-ib0 no host 1 e verifique se você vê uma conexão escutando. No host 2, execute dtest -P ofa-v2-ib0 -h <host1-ib0>. Você verá que a conexão consta como PASSED.

Se o host no qual o CF ou membro reside tiver mais de 64 GB de memória, o parâmetro log_mtts_per_seg do módulo do driver HCA Mellanox (mlx4_core) deverá ser aumentado de 3 (padrão) para 7, para obter maiores registros de memória.

Para aumentar o tamanho, execute o seguinte comando como usuário raiz:

  1. No SUSE:
    			echo "options mlx4_core log_mtts_per_seg=7" >>
    /etc/modprobe.conf.local
  2. No RHEL:
    			echo "options mlx4_core log_mtts_per_seg=7" >> /etc/modprobe.conf

Para que essa alteração tenha efeito, é necessário reiniciar o servidor. Para verificar se a alteração teve efeito no módulo, execute:

		<host-name>/sys/module/mlx4_core/parameters # cat /sys/module/mlx4_core
/parameters/log_mtts_per_seg

Recursos

Aprender

Obter produtos e tecnologias

  • Crie seu próximo projeto de desenvolvimento com a Versão de teste do software IBM, disponível para download diretamente no developerWorks.
  • Avalie produtos IBM da maneira que for melhor para você: faça download da versão de testes de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo como implementar Arquitetura Orientada a Serviços de forma eficiente.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management, Linux
ArticleID=658851
ArticleTitle=Implemente o recurso DB2 pureScale no Linux
publish-date=05182011