Observação:

Executar Sincronização Bidirecional entre Regiões no Oracle Cloud Infrastructure usando o Syncthing

Introdução

A sincronização de armazenamento de objetos entre regiões é essencial para várias cargas de trabalho na nuvem, incluindo backup de dados, recuperação de desastres e acesso multirregional. Embora a Oracle Cloud Infrastructure (OCI) forneça recursos de replicação para o OCI Object Storage, ela não oferece uma solução de sincronização bidirecional nativa. Essa limitação significa que os usuários devem confiar em implementações personalizadas para sincronizar arquivos entre regiões.

O Syncthing, uma ferramenta de sincronização de arquivos descentralizada de código aberto, fornece uma sincronização bidirecional contínua alternativamente que opera em tempo real. Ao contrário do OCI Functions, que depende de um modelo orientado a eventos para replicação de objetos, o Syncthing sincroniza estruturas de arquivos inteiras de forma eficiente entre máquinas virtuais (VMs) ao mesmo tempo em que oferece suporte a diretórios montados locais e do OCI Object Storage.

Neste tutorial, implantaremos o Syncthing em instâncias do OCI Compute em duas regiões usando uma pilha do OCI Resource Manager, permitindo a sincronização automática e bidirecional entre o armazenamento de VM local e os diretórios montados do OCI Object Storage.

Considerações

Quando você monta o Syncthing com o OCI Object Storage usando s3fs:

Quando o Syncthing é uma boa ideia?

Objetivos

Pré-requisitos

Tarefa 1: Preparar as Informações Necessárias para a Implantação da VM

  1. Faça download da pilha do OCI Resource Manager. Essa pilha automatiza a implantação de uma VM que executa o Oracle Linux 8 em um VM.Standard.E5. Forma flexível. Ele instala o Syncthing usando CloudInit, monta um bucket do OCI existente e configura o acesso usando s3fs. A VM é provisionada com acesso SSH, um IP público e marcado para fácil identificação. Para obter mais informações, consulte Pilha do OCI Resource Manager.

  2. Crie uma VCN com uma sub-rede pública nas duas regiões de destino.

    A pilha será implantada em ambos os locais para provisionar uma VM com o Syncthing para sincronização de armazenamento bidirecional entre regiões. Uma vez implantado, o Syncthing pode ser acessado no navegador usando o IP público da VM.

  3. Certifique-se de que exista um bucket do OCI Object Storage em cada região em que os testes serão executados. A visibilidade do bucket pode ser Privada.

  4. Crie uma chave secreta do cliente para montagem s3fs. A chave secreta do cliente será usada para acessar o OCI Object Storage.

    1. Faça log-in na Console do OCI, navegue até Perfil, clique em seu nome de usuário e em Chaves Secretas do Cliente.

      Perfil - Chave Secreta do Cliente

    2. Clique em Gerar chave secreta e digite um nome, como s3fs-access.

    3. Certifique-se de copiar a chave gerada, pois a usaremos posteriormente na Tarefa 2.

      Chave de Acesso Secreta do Cliente

    4. Clique em Chave de acesso e copie o valor, pois o usaremos posteriormente na Tarefa 2.

      Chave de Acesso Secreta do Cliente

    5. Copie o Namespace da página Detalhes do bucket que usaremos posteriormente na Tarefa 2.

      Namespace do Bucket do Serviço Object Storage

Tarefa 2: Aplicar a Pilha

  1. Faça log-in na Console do OCI, acesse Developer Services, Resource Manager e clique em Pilhas.

    Pilhas do OCI Resource Manager

  2. Crie a pilha do Terraform OCI Resource Manager. Para obter mais informações, consulte Criando uma Pilha com Base em um Arquivo Zip.

    1. Clique em Criar pilha.

    2. Selecione o arquivo .zip e adicione a pilha.

    3. Informe a Chave de tag.

    4. Clique em Próximo.

  3. Na página Configurar variáveis, especifique as informações a seguir.

    • Compartimento: Informe o compartimento.
    • VCN e Sub-rede: Selecione uma VCN existente e uma sub-rede pública.
    • Modifique o nome para exibição vm, se desejar.
    • Chave SSH Pública: Informe a chave SSH pública da VM.
    • Domínio de Disponibilidade: Selecione o domínio de disponibilidade.
    • OCID da chave secreta do cliente e Chave de Acesso Secreta do Cliente: Informe o OCID da chave secreta do cliente e a chave de acesso secreta do cliente criada na Tarefa 1.
    • Nome do Bucket: Informe o nome do bucket.
    • Namespace de Armazenamento de Objetos: Selecione o namespace de armazenamento de objetos.
  4. Clique em Próximo e verifique as informações. Se tudo estiver ok, selecione Executar Aplicação e clique em Criar.

    Pilha de Aplicação do OCI ORM

    Quando o job de aplicação for concluído com sucesso, ele deverá retornar os IPs públicos e privados da VM recém-criada.

    Saída da Pilha do ORM

  5. Repita as etapas em uma região secundária para criar a segunda VM lá.

  6. Confirme se os buckets do OCI Object Storage estão montados em /home/opc/logging no nível da VM, conectando-se por SSH usando os comandos a seguir.

    mount | grep s3fs
    

    Se o bucket for montado com sucesso, você verá a saída semelhante a:

    Informações do bucket de montagem

    Isso confirma que s3fs montou o bucket em /home/opc/logging em qualquer uma das VMs.

Tarefa 3: Configurar o Syncthing

Depois que ambas as VMs forem implantadas nas duas regiões, configure o Syncthing em cada VM seguindo as etapas abaixo para sincronizar o armazenamento entre elas.

  1. Copie o IP público da VM na primeira região e use-o no browser para acessar a interface do Syncthing. Informe o URL a seguir.

    http://<vm1-public-ip>:8384
    
  2. Depois de acessar a interface, você verá a interface do Syncthing, que será semelhante à imagem a seguir. Pastas e Dispositivos Remotos são as áreas que você configurará para sincronização na próxima etapa.

    Tela de sincronização

    Observação: Você pode definir um nome de usuário e uma senha nas Configurações na seção GUI para remover as advertências.

  3. Na seção Pastas, clique em Adicionar Pasta para criar ou incluir uma pasta de VM local na interface de administração do Syncthing.

    Sincronizar pasta de adição

  4. Especifique as informações a seguir para configurar uma pasta local e clique em Salvar.

    • Rótulo da Pasta: um nome amigável para identificar a pasta. Por exemplo, local_VM1.
    • Caminho da Pasta: O caminho do diretório da pasta local. Por exemplo, ~/local_VM1.

    Sincronizando pasta local

    Você pode fazer check-in no terminal da VM que a nova pasta local_VM1 criou.

  5. Repita as etapas de 1 a 4 na VM da região secundária e adicione a pasta local_VM2 na interface de Sincronização VM2.

  6. Configure a conexão de Sincronização entre regiões entre as duas VMs, começando com VM1.

    1. Na seção Dispositivos Remotos da primeira VM de Sincronização, clique em Adicionar Dispositivo Remoto para incluir uma pasta remota da segunda região.

      Adicionar dispositivo remoto

    2. Em Geral, especifique as informações a seguir.

      • ID do Dispositivo: Este é o ID do segundo dispositivo Syncthing. Em VM2, abra a interface do Syncthing, navegue até Ações, Mostrar ID, copie o valor exibido e cole-o nesse campo.

        Dispositivo remoto - mostrar ID

      • Nome do dispositivo: Informe um nome relevante, como remote_VM2.

        Dispositivo remoto - guia geral

    3. Em Compartilhamento, selecione local_VM1 a ser compartilhado com o dispositivo remoto.

      Dispositivo remoto - aba de compartilhamento

    4. Em Avançado, digite tcp://<vm2-public-ip>:22000 em Endereços, 22000 é a porta TCP usada para sincronizar dados.

    5. Clique em Salvar.

  7. Neste ponto, em VM1 Syncthing, a pasta local local_VM1 deverá aparecer em verde Até a Data e o dispositivo remoto remote_VM2 mostrará Disconnected.

    Para concluir a conexão, execute as mesmas etapas no VM2 Syncthing, usando os dados equivalentes coletados do VM1 Syncthing, digite ID do Dispositivo, tcp://<vm1-public-ip>:22000 como Endereços e Nome do dispositivo, como remote_VM1.

    Observação: Certifique-se de que a porta 22000 esteja aberta na lista de segurança das VCNs.

  8. Após as configurações equivalentes, você deve ser solicitado em cada interface do Syncthing para aceitar a adição da pasta remota. Clique em Adicionar.

    Aceitar pasta remota

  9. Você será solicitado a salvá-lo localmente com detalhes específicos, por exemplo, em VM1 você será solicitado a salvar o local_VM2 de entrada, você pode alterar o nome dele em VM1 para remote_VM2 para uma exibição mais clara. Além disso, você tem a possibilidade de mapeá-lo para um caminho VM1 local. Pode ser qualquer caminho; uma nova pasta será criada se não existir. Você também pode selecionar ~/local_VM1, o que significa que o conteúdo das duas pastas das duas VMs será mesclado no mesmo local. Para nosso exemplo, informe o caminho ~/remote_VM2.

  10. Execute a mesma etapa em VM2 em relação à pasta local_VM1 de entrada e mapeie-a como remote_VM1.

  11. Agora, as duas VMs devem estar em sincronia e pastas administradas pelo Syncthing; em VM1, local_VM1 e remote_VM2; em VM2, local_VM2 e remote_VM1.

    Pastas sincronizadas

Tarefa 4: Testar Sincronização do Armazenamento Local

Para testar a sincronização do Syncthing, faça login em cada VM usando SSH. Dentro do diretório inicial do opc, você encontrará duas pastas.

Para verificar a sincronização, adicionaremos ou modificaremos um arquivo na pasta local em uma VM e verificaremos se as alterações aparecem na pasta correspondente na VM remota. Além disso, monitoraremos a interface ou os logs do Syncthing para confirmar a sincronização bem-sucedida entre as duas regiões do OCI.

  1. SSH em VM1.

    ssh opc@<vm1-public-ip>
    
  2. Execute o comando a seguir para navegar até a pasta local Syncthing compartilhada local_VM1.

    cd ~/local_VM1
    
  3. Execute o comando a seguir para criar um arquivo de teste.

    echo "testing sync" > testVM1.txt
    
  4. Abra um novo terminal e SSH em VM2.

    ssh opc@<vm2-public-ip>
    
  5. Execute o comando a seguir para navegar até a pasta compartilhada em VM2.

    cd ~/remote_VM1
    
  6. Execute os comandos a seguir para verificar se o arquivo aparece.

    ls -l
    cat testVM1.txt
    
  7. Execute as mesmas etapas em VM2 e verifique se um arquivo aparece em VM1 na pasta remote_VM2.

  8. Verifique o status de sincronização na interface de Sincronização. Abra http://<vm1-public-ip>:8384 e http://<vm2-public-ip>:8384 em um browser para verificar logs e status de sincronização.

    Arquivos sincronizados

Tarefa 5: Testar Sincronização do Conteúdo do Bucket do OCI Object Storage

Os buckets são montados nas VMs implantadas no diretório /home/opc/logging. Para testar e sincronizar arquivos localizados nos buckets montados, você precisa refazer as etapas anteriores para adicionar o diretório da VM logging como uma pasta local e compartilhá-lo dos Dispositivos Remotos. Você verá algo semelhante a este:

Em seguida, crie um arquivo no diretório logging que fará com que ele apareça no bucket do OCI, bem como sincronize com o diretório VM2 logging se configurado corretamente, portanto, no segundo bucket da região cruzada também.

Sincronização de bucket

Tarefa 6: Realizar Mais Testes

Há dois pontos que você pode facilmente testar com a mesma pasta e dispositivos compartilhados, conforme configurado anteriormente.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.