Sincronizar containers de objetos

Esta tradução foi automaticamente gerada pelo nosso parceiro SYSTRAN. Em certos casos, poderão ocorrer formulações imprecisas, como por exemplo nomes de botões ou detalhes técnicos. Recomendamos que consulte a versão inglesa ou francesa do manual, caso tenha alguma dúvida. Se nos quiser ajudar a melhorar esta tradução, clique em "Contribuir" nesta página.

Última atualização: 27/10/2021

Objetivo

Se deseja migrar os seus objetos de um datacenter para outro, ou mesmo de um projeto para outro, a sincronização de objetos entre containers é a melhor solução para evitar um corte de serviço durante a sua migração. Este manual explica-lhe como implementar esta solução.

Requisitos

Instruções

Se o seu container contém objetos cujo tamanho é superior a 5Gb, é preciso que os seus dois containers tenham o mesmo nome.

Configuração da sincronização

Criação da chave de sincronização

Para que os containers se possam identificar, é preciso criar uma chave e configurá-la em cada um dos containers de objetos:

  • Criar a chave:
root@server-1:~$ sharedKey=$(openssl rand -base64 32)

Configuração do container destinatário

Em primeiro lugar, é necessário configurar a chave no container que receberá os dados. No nosso caso, este está em BHS.

  • Verifique a região carregada nas variáveis de ambiente:
root@server-1:~$ env | grep OS_REGION

OS_REGION_NAME=BHS
  • Configure a chave no container destinatário:
root@server-1:~$ swift post --sync-key "$sharedKey" containerBHS
  • Verifica-se se esta foi corretamente configurada graças ao seguinte comando e recupera-se ao mesmo tempo o conteúdo da variável "Account":
root@server-1:~$ swift stat containerBHS
                         Account: AUTH_b3e269xxxxxxxxxxxxxxxxxxxx2b0ba29
                       Container: containerBHS
                         Objects: 0
                           Bytes: 0
                        Read ACL:
                       Write ACL:
                         Sync To:
                        Sync Key: 4cA5j5LyaaG2ws32d1fsdQSxnvIJv+y2qFnbnm6Kw=
Meta Access-Control-Allow-Origin: https://www.ovh.com
                   Accept-Ranges: bytes
                X-Storage-Policy: Policy-0
                      Connection: close
                     X-Timestamp: 1444812373.28095
                      X-Trans-Id: B2210C05:895E_9E45A961:01BB_561E52E1_16A3:5298
                    Content-Type: text/plain; charset=utf-8
  • Obtenha o endereço do container destinatário e depois configurá-lo no container source (Esta é do tipo: "//OVH_PUBLIC_CLOUD/Regione/Account/Container"
root@serveur-1:~$ export destContainer="//OVH_PUBLIC_CLOUD/BHS/AUTH_b3e269xxxxxxxxxxxxxxxxxxxxxxxxx2b0ba29/containerBHS"

Configuração do container source

  • Mudança de região nas variáveis de ambiente:
root@server-1:~$ export OS_REGION_NAME=GRA
  • Configure a chave no container source:
root@server-1:~$ swift post --sync-key "$sharedKey" containerGRA
  • Configure o destinatário no container source:
root@server-1:~$ swift post --sync-to "$destContainer" containerGRA
  • Como anteriormente, é possível verificar que esta foi corretamente configurada através do seguinte comando:
root@server-1:~$ swift stat containerGRA
         Account: AUTH_b3e269xxxxxxxxxxxxxxxxxxxx2b0ba29
       Container: containerGRA
         Objects: 3
           Bytes: 15
        Read ACL:
       Write ACL:
         Sync To: //OVH_PUBLIC_CLOUD/BHS/AUTH_b3e269xxxxxxxxxxxxxxxxxxxx2b0ba29/containerBHS
        Sync Key: 4cA5j5LyaaG2wU4lDYnDmEwQSxnvIJv+y2qFnbnm6Kw=
   Accept-Ranges: bytes
      Connection: close
     X-Timestamp: 1444813114.55493
      X-Trans-Id: B2210C05:879E_052711B1:01BB_561E559B_24AE:6B1B
X-Storage-Policy: Policy-0
    Content-Type: text/plain; charset=utf-8

Verificação da sincronização

Após alguns instantes (em função do número e do tamanho dos ficheiros a enviar), é possível verificar que a sincronização decorreu corretamente, listando simplesmente os ficheiros em cada um dos containers.

  • Leia os ficheiros presentes no container source:
root@server-1:~$ swift list containerGRA
test1.txt
test2.txt
test3.txt
  • Leia os ficheiros presentes no container destinatário:
root@server-1:~$ swift list containerBHS
test1.txt
test2.txt
test3.txt

Inverter a sincronização entre dois containers

Para inverter a sincronização entre dois containers, é necessário eliminar o meta-dado —sinc-to do container de origem e repeti-lo no outro container, que se tornará assim no novo container de origem.

Não se esqueça de mudar a região no novo URL sync-to.

root@server-1:~$ swift post -H "X-Container-Sync-To:" containerGRA
root@server-1:~$ export destContainer="//OVH_PUBLIC_CLOUD/GRA/AUTH_b3e269xxxxxxxxxxxxxxxxxxxx2b0ba29/containerGRA"
root@server-1:~$ export OS_REGION_NAME=BHS
root@server-1:~$ swift post --sync-to "$destContainer" containerBHS

Parar a sincronização entre dois containers

Para parar a sincronização entre dois containers, é preciso eliminar os meta-dados —sync-key e —sync-to.

swift post -H "X-Container-Sync-Key:" containerGRA
swift post -H "X-Container-Sync-To:" containerGRA

Este guia é também utilizável para uma migração de objetos do RunAbove para Public Cloud.

Quer saber mais?

Junte-se à nossa comunidade de utilizadores em https://community.ovh.com/en/.


Esta documentação foi-lhe útil?

Não hesite em propor-nos sugestões de melhoria para fazer evoluir este manual.

Imagens, conteúdo, estrutura... Não hesite em dizer-nos porquê para evoluirmos em conjunto!

Os seus pedidos de assistência não serão tratados através deste formulário. Para isso, utilize o formulário "Criar um ticket" .

Obrigado. A sua mensagem foi recebida com sucesso.


Estes manuais também podem ser úteis...

OVHcloud Community

Aceda ao seu espaço comunitário. Coloque as suas questões, procure informações e interaja com outros membros do OVHcloud Community.

Discuss with the OVHcloud community

Em conformidade com a alteração à Diretiva 2006/112/CE, os preços com IVA podem variar de acordo com o país de residência do cliente
(por defeito, os preços com IVA apresentados incluem o IVA português em vigor).