Nota

Esegui sincronizzazione bidirezionale tra più aree in Oracle Cloud Infrastructure utilizzando la sincronizzazione

Introduzione

La sincronizzazione dello storage degli oggetti tra più aree è essenziale per vari carichi di lavoro cloud, tra cui il backup dei dati, il recupero da errori irreversibili e l'accesso tra più aree. Sebbene Oracle Cloud Infrastructure (OCI) fornisca funzionalità di replica per OCI Object Storage, non offre una soluzione di sincronizzazione bidirezionale nativa. Questo limite significa che gli utenti devono fare affidamento su implementazioni personalizzate per sincronizzare i file tra le aree.

Syncthing, uno strumento di sincronizzazione dei file open source e decentralizzato, fornisce una sincronizzazione bidirezionale continua in alternativa che funziona in tempo reale. A differenza di OCI Functions, che si basa su un modello basato su eventi per la replica degli oggetti, la sincronizzazione sincronizza in modo efficiente intere strutture di file tra le virtual machine (VM) supportando al contempo le directory attivate dallo storage degli oggetti locale e OCI.

In questa esercitazione verrà distribuita la sincronizzazione sulle istanze di OCI Compute in due aree utilizzando uno stack di OCI Resource Manager, abilitando la sincronizzazione automatica bidirezionale tra lo storage VM locale e le directory attivate di OCI Object Storage.

Considerazioni

Quando esegui il MOUNT della sincronizzazione con lo storage degli oggetti OCI utilizzando s3fs:

Quando Syncthing è una buona idea?

Obiettivi

Prerequisiti

Task 1: Preparare le informazioni necessarie per la distribuzione della VM

  1. Scaricare lo stack di Resource Manager OCI. Questo stack automatizza lo sviluppo di una VM su cui è in esecuzione Oracle Linux 8 su un sito VM.Standard.E5. Forma Flex. Installa la sincronizzazione utilizzando CloudInit, installa un bucket OCI esistente e configura l'accesso utilizzando s3fs. Il provisioning della VM viene eseguito con accesso SSH, un IP pubblico e contrassegnato per facilitare l'identificazione. Per ulteriori informazioni, vedere Stack di OCI Resource Manager.

  2. Crea una VCN con una subnet pubblica in entrambe le aree di destinazione.

    Lo stack verrà distribuito in entrambe le posizioni per eseguire il provisioning di una VM con Syncthing per la sincronizzazione dello storage bidirezionale tra più aree. Una volta distribuito, è possibile accedere alla sincronizzazione nel browser utilizzando l'IP pubblico della VM.

  3. Assicurarsi che esista un bucket di storage degli oggetti OCI in ogni area in cui verranno eseguiti i test. La visibilità del bucket può essere Privato.

  4. Creare una chiave segreta del cliente per l'accesso s3fs. La chiave segreta del cliente verrà utilizzata per accedere allo storage degli oggetti OCI.

    1. Eseguire il login a OCI Console, passare a Profilo, fare clic sul nome utente e sulle chiavi segrete cliente.

      Profilo - Chiave segreta cliente

    2. Fare clic su Genera chiave segreta e immettere un nome, ad esempio s3fs-access.

    3. Assicurarsi di copiare la chiave generata poiché verrà utilizzata in seguito nel task 2.

      Chiave accesso segreta cliente

    4. Fare clic su Chiave di accesso e copiare il valore così come verrà utilizzato in seguito nel task 2.

      Chiave accesso segreta cliente

    5. Copiare Spazio di nomi dalla pagina Dettagli bucket che verrà utilizzata in un secondo momento nel task 2.

      Spazio di nomi del bucket di storage degli oggetti

Task 2: applicare lo stack

  1. Eseguire il login a OCI Console, passare a Servizi per sviluppatori, Resource Manager e fare clic su Stack.

    Stack di OCI Resource Manager

  2. Creare lo stack di Resource Manager OCI Terraform. Per ulteriori informazioni, vedere Creating a Stack from a Zip File.

    1. Fare clic su Crea stack.

    2. Selezionare il file .zip e aggiungere lo stack.

    3. Immettere la chiave di tag.

    4. Fare clic su Avanti.

  3. Nella pagina Configura variabili, immettere le informazioni riportate di seguito.

    • Compartimento: immettere il compartimento.
    • VCN e subnet: selezionare una VCN esistente e una subnet pubblica.
    • Modificare il nome visualizzato vm se si desidera.
    • Chiave pubblica SSH: immettere la chiave pubblica SSH per la VM.
    • Dominio di disponibilità: selezionare il dominio di disponibilità.
    • OCID chiave segreta del cliente e chiave di accesso del segreto cliente: immettere l'OCID chiave segreta del cliente e la chiave di accesso del segreto cliente creati nel task 1.
    • Nome gruppo: immettere il nome del gruppo.
    • Spazio di nomi storage degli oggetti: selezionare lo spazio di nomi dello storage degli oggetti.
  4. Fare clic su Next e rivedere le informazioni. Se è tutto a posto, selezionare Esegui applicazione e fare clic su Crea.

    Stack applicazione ORM OCI

    Quando il job di applicazione viene completato correttamente, deve restituire gli IP pubblici e privati della nuova VM creata.

    Output stack ORM

  5. Ripetere i passi in un'area secondaria per creare la seconda VM.

  6. Verificare che i bucket di storage degli oggetti OCI vengano sottoposti a MOUNT in /home/opc/logging a livello di VM, effettuando la connessione tramite SSH utilizzando i comandi riportati di seguito.

    mount | grep s3fs
    

    Se il bucket viene installato correttamente, l'output dovrebbe essere simile al seguente:

    Informazioni sul bucket di accesso

    Ciò conferma che s3fs ha eseguito il MOUNT del bucket in /home/opc/logging su una qualsiasi delle VM.

Task 3: Configurare la sincronizzazione

Dopo aver distribuito entrambe le VM nelle due aree, configurare la sincronizzazione su ogni VM attenendosi alla procedura riportata di seguito per sincronizzare lo storage tra di esse.

  1. Copiare l'IP pubblico della VM nella prima area e utilizzarlo nel browser per accedere all'interfaccia di sincronizzazione. Immettere l'URL seguente.

    http://<vm1-public-ip>:8384
    
  2. Dopo aver effettuato l'accesso all'interfaccia, verrà visualizzata l'interfaccia Syncthing simile alla seguente immagine. Le cartelle e i dispositivi remoti sono le aree che verranno configurate per la sincronizzazione nel passo successivo.

    Schermata di sincronizzazione

    Nota: è possibile impostare un nome utente e una password nella sezione Impostazioni della GUI per rimuovere le avvertenze.

  3. Nella sezione Cartelle fare clic su Aggiungi cartella per creare o includere una cartella VM locale nell'interfaccia di amministrazione di Syncthing.

    Sincronizzazione della cartella di aggiunta

  4. Immettere le informazioni riportate di seguito per configurare una cartella locale e fare clic su Salva.

    • Etichetta cartella: un nome riconoscibile dall'utente per identificare la cartella. Ad esempio, local_VM1.
    • Percorso cartella: il percorso della directory della cartella locale. Ad esempio, ~/local_VM1.

    Sincronizzazione cartella locale

    È possibile eseguire il check-in del terminale VM creato dalla nuova cartella local_VM1.

  5. Ripetere i passi da 1 a 4 nella VM dall'area secondaria e aggiungere la cartella local_VM2 nell'interfaccia di sincronizzazione VM2.

  6. Configurare la connessione di sincronizzazione tra più aree tra le due VM, a partire da VM1.

    1. Nella sezione Dispositivi remoti della prima VM di sincronizzazione, fare clic su Aggiungi dispositivo remoto per includere una cartella remota dalla seconda area.

      Aggiungi dispositivo remoto

    2. In Generale immettere le informazioni riportate di seguito.

      • ID dispositivo: questo è l'ID del secondo dispositivo di sincronizzazione. In VM2, aprire l'interfaccia di sincronizzazione, passare a Azioni, Mostra ID, copiare il valore visualizzato e incollarlo in questo campo.

        Dispositivo remoto - mostra ID

      • Nome dispositivo: immettere un nome rilevante, ad esempio remote_VM2.

        Dispositivo remoto - scheda generale

    3. In Condivisione, selezionare local_VM1 da condividere con il dispositivo remoto.

      Dispositivo remoto - scheda di condivisione

    4. In Avanzate, immettere tcp://<vm2-public-ip>:22000 in Indirizzi, 22000 è la porta TCP utilizzata per la sincronizzazione dei dati.

    5. Fare clic su Salva.

  7. A questo punto, in VM1 Syncthing, la cartella locale local_VM1 deve essere visualizzata in verde in Up to Date e il dispositivo remoto remote_VM2 visualizzerà Disconnected.

    Per completare la connessione, eseguire gli stessi passi sulla sincronizzazione VM2, utilizzando i dati equivalenti raccolti dalla sincronizzazione VM1, immettere ID dispositivo, tcp://<vm1-public-ip>:22000 come Indirizzi e Nome dispositivo, ad esempio remote_VM1.

    Nota: assicurarsi che la porta 22000 sia aperta nella lista di sicurezza delle reti VCN.

  8. Dopo le configurazioni equivalenti dovrebbe essere richiesto in ogni interfaccia Syncthing per accettare l'aggiunta della cartella remota. Fare clic su Aggiungi.

    Accetta cartella remota

  9. Verrà richiesto di salvarlo localmente con dettagli specifici. Ad esempio, in VM1 verrà richiesto di salvare il file local_VM2 in entrata. È possibile modificare il nome del file in VM1 in remote_VM2 per una visualizzazione più chiara. Inoltre, è possibile mapparlo a un percorso VM1 locale. Può essere un percorso qualsiasi; viene creata una nuova cartella se non esiste. È inoltre possibile selezionare ~/local_VM1, ovvero il contenuto delle due cartelle delle due VM verrà unito nella stessa posizione. Ad esempio, immettere il percorso ~/remote_VM2.

  10. Eseguire lo stesso passo in VM2 rispetto alla cartella local_VM1 in entrata e mapparla come remote_VM1.

  11. Ora le due VM devono essere sincronizzate e le cartelle amministrate da Syncthing; in VM1, local_VM1 e remote_VM2; in VM2, local_VM2 e remote_VM1.

    Cartelle sincronizzate

Task 4: Test sincronizzazione della memorizzazione locale

Per eseguire il test della sincronizzazione, eseguire il login a ciascuna VM utilizzando SSH. All'interno della directory home di opc, troverai due cartelle.

Per verificare la sincronizzazione, aggiungeremo o modificheremo un file nella cartella locale su una VM e verificheremo se le modifiche verranno visualizzate nella cartella corrispondente sulla VM remota. Inoltre, monitoreremo l'interfaccia o i log di Syncthing per confermare la sincronizzazione riuscita tra le due region OCI.

  1. SSH in VM1.

    ssh opc@<vm1-public-ip>
    
  2. Eseguire il comando seguente per passare alla cartella local_VM1 condivisa di Syncthing locale.

    cd ~/local_VM1
    
  3. Eseguire il comando seguente per creare un file di test.

    echo "testing sync" > testVM1.txt
    
  4. Aprire un nuovo terminale e SSH in VM2.

    ssh opc@<vm2-public-ip>
    
  5. Eseguire il comando seguente per passare alla cartella condivisa in VM2.

    cd ~/remote_VM1
    
  6. Eseguire i comandi seguenti per verificare se il file viene visualizzato.

    ls -l
    cat testVM1.txt
    
  7. Eseguire gli stessi passi in VM2 e verificare che un file venga visualizzato nella cartella VM1 remote_VM2.

  8. Verificare lo stato di sincronizzazione nell'interfaccia di sincronizzazione. Aprire http://<vm1-public-ip>:8384 e http://<vm2-public-ip>:8384 in un browser per controllare i log e lo stato di sincronizzazione.

    File sincronizzati

Task 5: Test sincronizzazione del contenuto del bucket di storage degli oggetti OCI

I bucket vengono sottoposti a MOUNT sulle VM distribuite nella directory /home/opc/logging. Per eseguire il test e la sincronizzazione dei file presenti nei bucket attivati, è necessario ripetere i passi precedenti per aggiungere la directory VM logging come cartella locale, quindi condividerla dai dispositivi remoti. Vedrete qualcosa di simile a questo:

Successivamente, creare un file nella directory logging che lo farà apparire nel bucket OCI e sincronizzare nella directory VM2 logging se configurata correttamente, quindi anche nel secondo bucket dell'area incrociata.

Sincronizzazione bucket

Task 6: eseguire altri test

Ci sono due punti che è possibile testare facilmente con la stessa cartella e dispositivi condivisi come configurato in precedenza.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.