Atualizações contínuas do Couchbase

Um dos recursos do Couchbase Server é a capacidade de fazer upgrades on-line sem tempo de inatividade. Isso se deve, em parte, aos recursos de rebalanceamento e armazenamento automático do Couchbase. Nesta postagem do blog, examinaremos as abordagens recomendadas para fazer uma atualização contínua. Embora todas essas abordagens sejam formas possíveis de atualização, elas estão listadas na ordem do que é considerado a melhor prática. A preferência é dada à facilidade de operação, mantendo o cluster e o aplicativo on-line e operacional, bem como o desempenho consistente enquanto o upgrade estiver sendo feito. Obviamente, algumas dessas práticas serão mais fáceis para algumas pessoas do que para outras. Todas elas funcionarão.

Observação: Embora essas instruções tenham sido testadas e funcionem em um nível funcional, como sempre, você deve experimentar a abordagem selecionada primeiro em seus próprios ambientes de teste antes de prosseguir com a atualização do cluster de produção. Após a atualização, certifique-se de executar os procedimentos de teste de fumaça do aplicativo e do banco de dados existentes para confirmar que os recursos do Couchbase que você usa continuam a funcionar como você precisa e espera. Isso deve ser feito para o processo de atualização, bem como para a nova funcionalidade fornecida pelo Couchbase. Se você tiver um contrato de suporte Enterprise com o Couchbase e precisar de assistência geral com a atualização, tiver problemas antes ou durante, etc., não hesite em entrar em contato com o suporte do Couchbase e/ou com o gerente da sua conta. Se estiver usando a Community Edition do Couchbase, existem as seguintes opções fóruns comunitários para obter ajuda ou Não há momento melhor do que o presente para obter suporte de classe mundial e os recursos que a Enterprise Edition traz para seus sistemas de missão crítica. Além de não tendo acesso à equipe de suporte do Couchbase, a Community Edition ficará atrasada em relação às revisões de código por um período de tempo (geralmente mais de 3 meses), não conterá determinados recursos Enterprise e você não terá acesso a hot fixes quando eles forem lançados.

Observação: No Couchbase Server 2.5 Enterprise Edition, foi introduzido um recurso chamado Rack/Zone Awareness (RZA). Sua funcionalidade está além do escopo desta publicação, mas você deve estar ciente dela e ler sobre ela se estiver atualizando para a versão 2.5 ou superior, a partir de uma versão anterior à 2.5. Para obter mais detalhes, consulte Reconhecimento de rack/zona na documentação.

Observação: Se estiver fazendo upgrade do Couchbase 1.8.1 para o 2.x, há algumas considerações técnicas exclusivas que devem ser analisadas. Incluindo, mas não se limitando a, a introdução da estrutura de arquivo de dados somente de anexo para armazenamento baseado em disco, que aumenta o espaço em disco necessário para 2 a 3 vezes a quantidade de dados que você deseja armazenar, mas acelera muito as gravações em disco. Todos os detalhes estão disponíveis na seção Requisitos de recursos do manual do Couchbase para garantir que você tenha pelo menos os servidores configurados mínimos recomendados. Além disso, dê uma olhada na seção postagem no blog sobre o dimensionamento de um cluster 2.0 para obter mais ajuda.

Abordagem recomendada #1, um reequilíbrio total do swap:

Essa abordagem usa um processo chamado Rebalanceamento de swap para adicionar exatamente o mesmo número de novos servidores/instâncias que o cluster existente e remover os antigos. Isso será particularmente atraente para organizações que usam uma nuvem pública ou privada que pode adquirir instâncias de servidor com relativa facilidade ou para usuários que estejam fazendo uma atualização completa do hardware. Cada novo servidor/instância deve ter especificações de hardware iguais ou melhores que as dos existentes, ter a segurança do sistema operacional reforçada e a versão de atualização de destino do Couchbase Server instalada. (Se estiver aumentando a RAM e, portanto, precisar aumentar a cota geral de RAM do Couchbase, consulte a seção abaixo que detalha as informações sobre o que deve ser observado para ajudar nesse processo). Essa abordagem de atualização oferece o melhor desempenho e a transição mais fácil de uma versão existente para uma nova versão. Quando o rebalanceamento for concluído, todo o cluster estará na nova versão e os nós antigos serão removidos e estarão prontos para serem reciclados. Para obter mais detalhes, consulte Rebalanceamento de swap no manual do Couchbase.

Passos:

1) Adquira um número idêntico de novos servidores/instâncias aos que estão em seu cluster atual.
2) Para cada novo servidor/instância, fortaleça o sistema operacional e instale a versão de destino do Couchbase Server, além de quaisquer hot fixes.
3) Crie um backup dos dados de seu cluster usando o comando ferramenta cbbackupDe acordo com seu procedimento normal.
4) Em um dos nós do banco de dados, você terá que construir uma chamada de linha de comando usando o comando comando couchbase-cli. A interface do usuário da Web não oferece suporte à troca de todos os nós existentes no cluster de uma só vez, até o momento desta redação. Aqui está um exemplo do comando que você precisa executar para adicionar e remover quatro nós:

$> /opt/couchbase/bin/couchbase-cli rebalance
-c :8091
-server-add=:8091
-server-add=:8091
-server-add=:8091
-server-add=:8091
-server-remove=:8091
-server-remove=:8091
-server-remove=:8091
-server-remove=:8091
-u Administrador -p

Esse comando se conectará ao nó do cluster existente especificado e iniciará o processo de rebalanceamento de swap on-line para adicionar os quatro novos nós e remover os quatro nós existentes. Certifique-se de usar algo como uma tela para executar esse processo, de modo que possa se desconectar e reconectar para ver o progresso. Um rebalanceamento pode demorar um pouco, dependendo do dimensionamento e da utilização dos recursos do cluster (por exemplo, E/S de disco, rede etc.). Além disso, um rebalanceamento deve ser um processo em segundo plano e prioriza o tráfego em nível de aplicativo ao custo de um maior tempo de rebalanceamento. Dito isso, dependendo do dimensionamento do cluster, poderá haver uma pequena queda no desempenho enquanto o rebalanceamento estiver em execução. Isso pode levar uma hora ou mais, dependendo de vários fatores. Normalmente, a rede e o disco serão seus maiores gargalos. Consulte a seção abaixo sobre o monitoramento de um rebalanceamento para poder ver o que está acontecendo e confirmar que o processo ainda está em andamento. Além disso, aproveito este momento para mencionar novamente que você realmente deseja testar isso em um ambiente de teste primeiro e ver o que acontecerá e os tempos.

Observação: Normalmente, os novos recursos da versão atualizada do Couchbase estarão disponíveis para uso assim que o rebalanceamento for concluído. Embora alguns recursos estejam disponíveis imediatamente.

5) Agora vamos limpar as cadeias de conexão do cliente Couchbase. Embora os servidores de aplicativos em execução já tenham o mapa do cluster atualizado, se você reiniciar esses servidores de aplicativos, eles precisarão obter um novo mapa do cluster. Portanto, em cada servidor de aplicativos que estiver acessando o cluster do Couchbase, edite a configuração da string de conexão para remover totalmente os nomes de host/IPs antigos dos nós do cluster e certifique-se de ter pelo menos três dos nós ativos.

Abordagem recomendada #2, um Rebalanceamento de Swap Contínuo:

Esse processo é uma variação do #1. Em vez de substituir todos os servidores/instâncias no cluster, você adicionará um ou mais (um é bom, mais é melhor) novos servidores/instâncias com especificações de hardware iguais ou melhores ao cluster e removerá o mesmo número de servidores/instâncias do cluster ao mesmo tempo usando o método Rebalanceamento de swap processo. Em seguida, repita esse processo até que cada nó tenha sido atualizado para a versão de destino.

Informações técnicas básicas: Lembre-se de que, se você adicionar dois servidores, removerá dois. Dessa forma, isso minimiza os nós envolvidos no rebalanceamento. Em um rebalanceamento de troca, um nó apenas copiará seus vBuckets para o novo nó e envolverá somente os dois servidores que estão sendo trocados. Se, em vez disso, você trocasse mais do que trocou, por exemplo, o cluster teria que embaralhar os vBuckets de todos os nós e você assumiria o aumento da carga em todos os nós do cluster.

Passos:

  1. Adquira o número de novos servidores/instâncias que você desejar. Se esta for sua segunda passagem por essas etapas, você pode simplesmente reutilizar os outros servidores/instâncias que trocou nas etapas anteriores.
  2. Para cada instância, fortaleça o sistema operacional e instale a versão completa de destino do Couchbase, além de quaisquer hot fixes.
  3. Crie um backup dos dados do cluster usando o comando ferramenta cbbackup de acordo com seu procedimento normal.
  4. Abra o Console da Web do Couchbase, a guia Nós do servidor e clique no botão Adicionar servidor e siga o processo para adicionar cada novo servidor/instância ao cluster.
  5. Para cada servidor que você acabou de adicionar, clique no botão Remove (Remover) para um servidor existente.
  6. Clique no botão Rebalance para iniciar o processo de rebalanceamento do cluster. O processo de rebalanceamento moverá automaticamente todos os dados dos nós marcados para remoção para os novos nós.

Repita essas etapas até que todos os nós tenham sido atualizados para a nova versão.

Depois de concluído, vamos limpar as cadeias de conexão do cliente Couchbase. Embora os servidores de aplicativos em execução já tenham o mapa do cluster atualizado, se você reiniciar esses servidores de aplicativos, eles precisarão obter um novo mapa do cluster. Portanto, em cada servidor de aplicativos que estiver acessando o cluster do Couchbase, edite a configuração da string de conexão para remover totalmente os nomes de host/IPs antigos dos nós do cluster e certifique-se de ter pelo menos três dos nós ativos.

Todos os novos recursos devem estar disponíveis para uso quando todos os nós estiverem na mesma versão. Para obter informações gerais sobre rebalanceamento de swap, consulte Rebalanceamento de swap.

Observação: embora os exemplos aqui usem o Console da Web do Couchbase, você pode usar a API REST ou as ferramentas da CLI para fazer isso.

Abordagem recomendada #3, uma verdadeira atualização contínua:

Esse processo é um pouco mais complexo e digo isso apenas porque ele só deve ser realizado se o cluster estiver dimensionado corretamente e puder suportar a perda temporária de um nó com pouca ou nenhuma degradação de desempenho durante a atualização. Se não tiver certeza se o tamanho do cluster está adequado, faça uma pesquisa para descobrir com antecedência e não no meio da janela de manutenção. O motivo pelo qual você usaria o processo é se não tivesse acesso a outros servidores/instâncias e quisesse fazer a atualização no local. Se você tiver um contrato de suporte do Couchbase Enterprise e precisar de ajuda com esse processo, poderá entrar em contato com o suporte se tiver alguma dúvida durante o planejamento dessa atualização.

Lembre-se também de que esse pode ser um bom momento para aumentar a capacidade do cluster (vertical ou horizontalmente) em geral e, em vez disso, usar as soluções #1 ou #2 recomendadas acima.

Passos:
  1. Crie um backup dos dados do cluster usando o comando ferramenta cbbackup de acordo com seu procedimento normal.
  2. Na interface de usuário Admin Web, clique no botão Remove (Remover) para apenas um nó do cluster.
  3. Reequilibrar o cluster entre os nós restantes do cluster.
  4. Execute a atualização do servidor Couchbase no servidor/instância para a versão de destino do Couchbase, além de quaisquer hot fixes.
  5. Clique no botão Add server (Adicionar servidor) para adicionar o nó atualizado de volta ao cluster.
  6. Clique no botão Rebalance para iniciar o processo de rebalanceamento do cluster. O processo de rebalanceamento distribuirá os vBuckets pelo cluster de maneira uniforme.

Repita essas etapas até que todos os nós tenham sido atualizados para a nova versão.

Três itens importantes durante o rebalanceamento:

  1. Se você estiver atualizando da versão 1.8.1 para a 2.x e o rebalanceamento parar/falhar ou pausar por qualquer motivo, espere no mínimo 5 minutos e reinicie-o. O motivo disso é que as conexões de rede que o Couchbase usa para o rebalanceamento entre os nós não são desligadas graciosamente em uma pausa ou em uma parada não planejada, de modo que elas podem acabar sobrevivendo por mais tempo se um rebalanceamento for iniciado imediatamente após uma falha. No entanto, a conexão de rede tem um tempo limite de 5 minutos se não houver nenhuma atividade e, por isso, recomendamos esperar pelo menos 5 minutos antes de tentar um rebalanceamento novamente. O simples fato de apertar o botão várias vezes causará mais danos do que benefícios. Se estiver atualizando da versão 2.x para um nível superior da versão 2.x (por exemplo, 2.0.1 para 2.5), isso não se aplica e o rebalanceamento pode ser reiniciado imediatamente.
  2. O cache do navegador é parcialmente usado para lembrar quais nós foram removidos, portanto, antes de clicar em rebalancear novamente, é fundamental que você se lembre de remover novamente os nós que estão saindo, para que o cluster não pense que o próximo rebalanceamento deve incluí-los novamente.
  3. Configuração do cliente - Tanto o Moxi quanto os clientes do Couchbase precisam ser configurados para apontar para pelo menos um nó do Couchbase que faça parte do cluster real. O nó com o qual estão configurados permitirá que eles recebam a topologia do cluster. Ao reequilibrar os nós fora do cluster, certifique-se de que os clientes estejam configurados com um nó que faça parte do cluster original com uma configuração de backup que aponte para um dos nós recém-atualizados que estão sendo adicionados. Dessa forma, os clientes podem continuar acessando o cluster à medida que os nós são removidos e adicionados, mesmo que novos objetos de cliente sejam criados durante o rebalanceamento.

Monitoramento do progresso do reequilíbrio

É claro que você pode monitorar por meio da própria GUI de rebalanceamento, mas talvez precise de uma visualização mais detalhada para determinar se ele está travado. Você precisará observar, no mínimo, as duas métricas abaixo nos nós, a fila de gravação em disco e a contagem de vBuckets ativos. No Couchbase 2.x, há métricas de rebalanceamento mais detalhadas na guia do servidor. Observe também que, durante um rebalanceamento, o Couchbase move um bucket de cada vez. Portanto, se você tiver vários buckets e não vir nenhuma atividade na fila de gravação em disco ou nos números dos buckets, talvez esteja olhando para o bucket errado.

Fila de gravação em disco

A fila de gravação em disco deve estar abaixo de 1 milhão para cada nó. Se estiver acima desse número, o nó enviará uma mensagem de retorno para outros nós quando eles tentarem enviar vbuckets durante o processo de rebalanceamento. Isso é normal e a única coisa a fazer aqui é esperar que a fila de gravação em disco seja drenada para que ela comece a aceitar operações de rebalanceamento novamente. A cota para essa pode ser configuradoMas só faça isso se souber o que está fazendo.

Contagem de baldes ativos

Esse número deve estar mudando nos nós que estão sendo adicionados e removidos. Se esse número não for alterado por 10 a 20 minutos, o rebalanceamento pode ter sido interrompido e precisará ser interrompido e reiniciado.
???
Para obter informações mais detalhadas, consulte Monitoramento de um rebalanceamento na documentação do Couchbase.

Rebalanceamento a partir da linha de comando

Fazer isso nos dá um pouco mais de flexibilidade em relação ao uso do Console da Web, pois podemos adicionar novos nós e remover os antigos em um único rebalanceamento. Usaremos o comando couchbase-cli para especificar quais nós devem ser adicionados e quais devem ser removidos. Detalhes completos sobre o comando CLI disponíveis aqui.

    [couchbase@serverXYZ ~]$ /opt/couchbase/bin/couchbase-cli rebalance -c 192.168.0.1:8091
–server-remove=192.168.0.2
–server-add=192.168.0.4
-server-add-username=Administrador
-server-add-password=

Certifique-se de usar algo como tela ou não, pois o rebalanceamento pode demorar um pouco, dependendo do tamanho do cluster, das réplicas, do XDCR etc.

Atualizações do SDK do cliente

Como uma observação paralela, já que estamos falando de atualizações, os SDKs do cliente Couchbase são atualizados mensalmente com correções de bugs e novos recursos adicionados o tempo todo. Esse seria um ótimo momento para ver quais bibliotecas de cliente que você usa foram atualizadas e colocá-las na fila para atualização em seus aplicativos. Acesse aqui para obter informações sobre atualizações do SDK.

Já que estamos falando de SDKs de cliente, este também é um bom momento para garantir que você tenha pelo menos 2 ou 3 dos nós do cluster na string de conexão de configuração do cliente Couchbase em cada um dos servidores de aplicativos.

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Kirk Kirkconnell, engenheiro de soluções sênior, Couchbase

Kirk Kirkconnell foi engenheiro de soluções sênior da Couchbase, trabalhando com clientes em várias capacidades para ajudá-los a arquitetar, implantar e gerenciar o Couchbase. Sua experiência é em operações, hospedagem e suporte de infraestruturas de aplicativos e bancos de dados em larga escala.

2 Comentários

  1. [...] O Couchbase Server 1.8 substitui o Membase Server 1.7 como nossa oferta de banco de dados "principal". Além da óbvia mudança de marca, fizemos melhorias substanciais no processo de reequilíbrio do cluster e corrigimos vários problemas incômodos na versão 1.7. Incentivamos todos os nossos usuários a migrarem para a versão 1.8. Você pode consultar a postagem de Alex Ma sobre a atualização do Couchbase Server. [...]

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.