Servidor Couchbase

Persistência de dados do Couchbase em reinicializações de contêineres

Práticas recomendadas para plataformas virtualizadas fornecem as práticas recomendadas para executar o Couchbase em uma plataforma virtualizada, como Amazon Web Services e Azure.
Além disso, ele também fornece algumas recomendações para executá-lo como contêiner do Docker.

Uma das recomendações é mapear os dados específicos do nó do Couchbase para uma pasta local.

Vamos entender isso com mais detalhes.

Armazenamento implícito por contêiner

Se um contêiner do Couchbase for iniciado como:

Esse contêiner:

  • Inicia em um modo desvinculado usando -d
  • Diferentes portas de consulta, armazenamento em cache e administração são mapeadas usando -p
  • Um nome é fornecido usando --name
  • A imagem é couchbase/server:sandbox

Por padrão, os dados do contêiner são armazenados em um volume gerenciado. Verificação de montagens de volume usando o inspeção de docas mostra o comando:

Os dados do Couchbase são armazenados no sistema de arquivos do contêiner definido pelo valor de Fonte atributo. No Docker para Mac ou Windows, isso pode ser verificado fazendo login no sistema de arquivos raiz:

Em uma máquina Linux, isso pode ser verificado diretamente no sistema de arquivos do host.

Agora você pode ver o diretório de dados:

Um novo diretório é criado para uma nova execução do contêiner. Esse diretório ainda estará disponível quando o contêiner for parado e removido, mas não será mais facilmente acessível. Portanto, nenhum dado é preservado durante as reinicializações do contêiner. O volume pode ser explicitamente
removido, juntamente com o contêiner, usando o comando:

Se o contêiner for encerrado, todo o estado do aplicativo será perdido.

Mapeamento explícito do diretório do host

Agora, vamos iniciar um contêiner do Couchbase com mapeamento explícito de volume:

Esse contêiner é muito semelhante ao contêiner iniciado anteriormente. A principal diferença é que um diretório do host ~/couchbase é mapeado para um diretório no contêiner /opt/couchbase/var. O contêiner do Couchbase persiste
quaisquer dados em /opt/couchbase/var no sistema de arquivos do contêiner. Agora, esse diretório é mapeado para um diretório no sistema de arquivos do host. Isso permite manter o estado do contêiner fora do sistema de arquivos do host. O
ignora o sistema de arquivos de união usado pelo Docker e expõe o sistema de arquivos do host ao contêiner. Isso permite que o estado persista entre as reinicializações do contêiner. O novo contêiner só precisa começar exatamente com o mesmo mapeamento de volume. Mais detalhes
sobre o contêiner pode ser visto como:

jq é um processador JSON que precisa ser instalado separadamente. E a saída é mostrada como:

Isso mostra o diretório de origem e de destino. RW mostra que o volume é de leitura/gravação. Se o contêiner for iniciado usando o Docker para Mac, então Console da Web do Couchbase é
acessível em http://localhost:8091. O Compartimentos de dados mostra a guia padrão amostra de viagem balde:
docker-volume-couchbase-01

Clique em Criar novo bucket de dados para criar um novo bucket de dados. Dê a ele o nome amostra:
docker-volume-couchbase-02

O Compartimentos de dados é atualizada com esse bucket recém-criado:
docker-volume-couchbase-03

Agora pare e remova o contêiner:

Inicie o contêiner novamente usando o mesmo comando:

Compartimentos de dados mostrará os mesmos dois buckets no Console da Web do Couchbase. Nesse caso, se o contêiner for iniciado em um host diferente, o estado não estará disponível. Ou, se o host morrer, o estado será perdido.

Uma alternativa e uma maneira mais robusta e infalível de gerenciar a persistência em contêineres é usar um sistema de arquivos de rede compartilhado, como o Ceph, GlusterFS ou Sistema de arquivos de rede.
Algumas outras abordagens comuns são o uso de Plug-ins de volume do Docker como Flocker do ClusterHQ ou do armazenamento definido por software
tais como PortWorx. Todas essas técnicas de armazenamento simplificam a forma como o estado de um contêiner pode ser salvo em um ambiente com vários contêineres e vários hosts. Um blog futuro abordará essas técnicas em detalhes.

Leia mais detalhes em Gerenciamento de dados em contêineres.

couchbase.com/containers fornecem mais detalhes sobre como executar o Couchbase em diferentes estruturas de contêineres.

Mais informações sobre o Couchbase:

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

Autor

Postado por Arun Gupta, vice-presidente de defesa do desenvolvedor, Couchbase

Arun Gupta é o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experiência na liderança de equipes multifuncionais para desenvolver e executar estratégias, planejamento e execução de conteúdo, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e é membro fundador da equipe Java EE. Gupta é autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experiência em palestras em mais de 40 países sobre diversos tópicos e é um JavaOne Rock Star há três anos consecutivos. Gupta também fundou o capítulo Devoxx4Kids nos EUA e continua a promover a educação tecnológica entre as crianças. Autor de vários livros sobre tecnologia, corredor ávido, viajante do mundo inteiro, campeão de Java, líder de JUG, membro do NetBeans Dream Team e capitão do Docker, ele pode ser facilmente acessado em @arungupta.

Um comentário

  1. Para fins de posteridade, a abordagem acima não funcionará, pois o endereço IP no contêiner será alterado após a reinicialização.

    Veja:
    https://github.com/couchbase/docker/issues/82
    https://github.com/couchbase/kubernetes/issues/27

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.