Nota

Sposta i dati nei servizi di storage cloud OCI utilizzando Fpsync e Rsync

Introduzione

Questa è un'esercitazione 4 di quattro serie di esercitazioni che mostra vari modi per eseguire la migrazione dei dati nei servizi di storage cloud Oracle Cloud Infrastructure (OCI). La serie è impostata in modo da poter esaminare l'Esercitazione 1: Utilizzare gli strumenti di migrazione per spostare i dati nei servizi di storage cloud OCI per comprendere a fondo i vari strumenti e quindi procedere alle esercitazioni o ai documenti correlati pertinenti alle esigenze di migrazione. Questa esercitazione si concentrerà sull'uso di fpsync e rsync per eseguire la migrazione dei dati del file system in OCI File Storage.

OCI offre ai clienti computing altamente performante e opzioni di storage cloud a basso costo. Attraverso lo storage su richiesta locale, di oggetti, file, a blocchi e di archivio, Oracle soddisfa i requisiti chiave del carico di lavoro dello storage e i casi d'uso.

I servizi di storage cloud OCI offrono opzioni di storage cloud rapide, sicure e durature per tutte le esigenze aziendali. A partire dalle opzioni ad alte prestazioni come OCI File Storage con il servizio Lustre e OCI Block Volumes; dai file system in scala exabyte completamente gestiti dal servizio OCI File Storage con destinazioni di accesso ad alte prestazioni; allo storage degli oggetti OCI altamente duraturo e scalabile. Le nostre soluzioni possono soddisfare le tue esigenze, dalle applicazioni a uso intensivo di prestazioni come i carichi di lavoro AI/ML AI data lake su scala exabyte.

Determina la quantità di dati di cui eseguire la migrazione e il tempo di inattività disponibile per eseguire il cut-over alla nuova piattaforma di storage OCI. Le migrazioni batch sono una buona scelta per suddividere la migrazione in incrementi gestibili. Le migrazioni batch consentono di pianificare i tempi di inattività per applicazioni specifiche in finestre diverse. Alcuni clienti hanno la flessibilità di eseguire una migrazione una tantum in una finestra di manutenzione pianificata per 2-4 giorni. OCI FastConnect può essere utilizzato per creare una connessione dedicata e privata tra OCI e il tuo ambiente, con velocità di porta da 1G a 400G per accelerare il processo di trasferimento dei dati. OCI FastConnect può essere integrato con le soluzioni dei partner come Megaport e ConsoleConnect per creare una connessione privata al data center o all'interconnessione cloud-to-cloud per spostare i dati più direttamente da un altro fornitore cloud nel servizio di storage cloud OCI. Per ulteriori informazioni, vedere Integrazione FastConnect con Megaport Cloud Router.

Differenza tra Rsync e Fpsync

Destinatari

DevOps ingegneri, sviluppatori, amministratori e utenti dello storage cloud OCI, responsabili IT, utenti avanzati OCI e amministratori delle applicazioni.

Obiettivo

Scopri come utilizzare rsync e fpsync per copiare e sincronizzare i dati nei servizi di storage cloud OCI:

Prerequisiti

Migra i dati nello storage di file OCI

Fpsync e rsync possono essere utilizzati per eseguire la migrazione dei dati del file system (servizio OCI File Storage, servizio OCI Block Volumes, OCI File Storage con Lustre, file system on premise e NFS (on premise network file system) ad altri tipi di storage del file system (incluso OCI File Storage).

Usa Rsync per migrazione dati

  1. Utilizza rsync con streaming da istanza a istanza.

    Per set di dati di piccole dimensioni fino a poche decine di GB e poche migliaia di file, è possibile utilizzare lo streaming da istanza a istanza rsync. Streaming da istanza a istanza utilizzando il servizio NFS locale abilitato per SSH all'interno di una rete e il protocollo SSH tra la rete di origine e di destinazione, riducendo così la latenza del servizio NFS tra due reti. Utilizzare il seguente comando.

    rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
    
  2. Esegui più processi rsync in parallelo.

    • È possibile utilizzare i comandi find e xargs per eseguire più processi rsync.

      find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
      
    • È inoltre possibile utilizzare il parallelo GNU.

      find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
      

    Nota: in entrambi gli esempi, vengono eseguiti 24 processi alla volta, il parametro è stato scelto in base alla capacità CPU dell'istanza utilizzata.

Usa Fpsync per migrazione dati

Lo strumento fpsync è un wrapper parallelo di rsync. Può anche usare tar, tarify e cpio, ma l'impostazione predefinita è rsync.

  1. Installa fpsync nel tuo computer Linux.

    • Eseguire il comando seguente per Linux 8.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo yum install fpart -y
    
    • Eseguire il comando seguente per Linux 9.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum install fpart -y
    
  2. Eseguire fpsync utilizzando il seguente comando.

    Ad esempio:

    fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
    

Nota: per ulteriori opzioni fpsync e i dettagli dei parametri, fare riferimento a man fpsync.

Eseguire Fpsync utilizzando tre nodi di lavoro per eseguire la migrazione dei dati dalle condivisioni di file in locale al servizio di storage dei file OCI

Segui i passaggi di alto livello per eseguire fpsync utilizzando tre nodi di lavoro per eseguire la migrazione dei dati dalle condivisioni di file on-premise (disco locale, SAN o NAS) al servizio OCI File Storage.

L'immagine seguente mostra un diagramma dell'architettura dei componenti.

Diagramma architettonico del componente

Seguire i passi indicati:

  1. Identificare tre nodi di lavoro e un nodo di destinazione.

    Identificare tre sistemi locali ai quali si ha accesso per l'attivazione del file system di origine. In alternativa, puoi creare e avviare tre istanze VM di OCI Compute a scopo di test.

    Identificare un'istanza VM OCI esistente oppure crearne una nuova e avviarne una nuova da utilizzare come nodo di destinazione.

  2. Installare la condivisione NAS di origine sui tre nodi.

    Usare le opzioni di attivazione nordirplus e nconnect=16, non specificare altre opzioni di attivazione nfs.

    Ad esempio, eseguire il seguente comando di attivazione su un sistema Linux.

    sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
    

    Ad esempio, eseguire il comando seguente per verificare l'attivazione.

    mount | grep /mnt/nfs-data
    

    Nota: a scopo di test, puoi utilizzare OCI File Storage per creare, esportare e installare un file system. È possibile creare dati di test nell'accesso per provare fpsync.

  3. Selezionare un nodo per eseguire fpsync e aggiornare il file /etc/hosts.

    È possibile scegliere uno dei tre nodi oppure un nodo diverso per eseguire il comando fpsync. Il nodo in cui viene eseguito il comando fpsync è denominato nodo esecutore.

    Nel nodo in cui verrà eseguito fpsync, utilizzare l'editor di testo preferito per aggiornare il file /etc/hosts con i tre nodi di lavoro worker-src-1, worker-src-2 e worker-src-3.

    Ad esempio:

    vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1
    10.0.0.5 worker-src-2
    10.0.0.6 worker-src-3
    
  4. Esegui il MOUNT del file system di destinazione sul nodo di destinazione.

    Identificare il file system di destinazione e eseguirne il MOUNT sul nodo di destinazione. In alternativa, creare ed eseguire il MOUNT di uno storage di file OCI nel nodo di destinazione.

  5. Assicurati che la connettività da on-premise a OCI sia stata stabilita.

    Utilizza strumenti di rete comuni come ping, traceroute, ssh e così via per verificare la connettività tra sistemi, on-premise e OCI.

  6. Abilitare reciprocamente SSH senza password tra tutti i nodi di origine e di destinazione e verificare la connessione SSH tra le coppie di nodi di origine e destinazione.

    Identificare la chiave SSH pubblica per l'utente che eseguirà il comando fpsync sul nodo esecutore. Questa chiave si trova in genere nella directory home dell'utente sotto la directory .ssh ed è in genere denominata id_rsa.pub. Propagare questa chiave a tutti i nodi di lavoro utilizzando il comando cat per visualizzarne il contenuto, copiarla e incollarla nel file $HOME/.ssh/authorized_keys sui nodi di lavoro. In alternativa, se è abilitato il protocollo SSH basato su password, è possibile utilizzare il comando ssh-copy-id per distribuire la chiave a ciascun nodo di lavoro e al nodo di destinazione. Ad esempio:

    [worker-src-1 ~]$ ssh-copy-id username@worker-src-2
    
  7. Eseguire il comando fpsync nel nodo dell'esecutore.

    Nota: fpsync deve essere installato solo sul nodo esecutore che eseguirà i comandi rsync nei nodi di destinazione tramite SSH attraverso i nodi di lavoro.

    Ad esempio:

    fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
    -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \
    -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
    

    Nota: sostituire X e Y con i valori per le opzioni fpsync -n e -f.

    • Determinare il valore per i job di sincronizzazione concorrenti che è -n.

      • Selezionare il valore -n in modo che sia uguale al numero di cpu_cores di tutti i nodi di lavoro nell'origine e conservare tutti i nodi di lavoro di destinazione della stessa CPU e memoria.
      • Se in ognuno sono presenti 3 nodi di lavoro con 16 memorie centrali CPU, si tratta di 3 nodi di lavoro per 16 cpu_cores = 48.
    • Determinare il valore della quantità di file da trasferire per ogni job di sincronizzazione, ovvero -f.

      • Ad esempio, se si dispone di due cartelle con directory di grandi dimensioni e un totale di 1,1 milioni di file, le due cartelle contengono ~700K file con una dimensione media di file di 160 KB.
      • Ogni nodo di lavoro è configurato con: 64 GB = 64000000 KB di memoria, 8 OCPU = 16 cpu_cores, con memoria per cpu_core che è: 64000000/16 = 4000000 KB/cpu_core. Memoria in ogni nodo di lavoro = 64 GB = 64000000 KB.
      • Calcolare il valore di -f, 4000000KB/160 = 25000.

(Opzionale) Ambiente di test

Per simulare la migrazione da on premise a OCI, il file system OCI File Storage (Ashburn) con il seguente set di dati viene utilizzato come condivisione NAS on premise e il file system OCI File Storage (Phoenix) viene utilizzato come destinazione.

Entrambe le aree vengono sottoposte a peering in remoto utilizzando il gateway di instradamento dinamico.

Directory set di dati Dimensione Conteggio file Dimensione di ogni file
Directory 1 107.658 GiB 110.242 1 MiB
Directory 2 1.687 GiB 110.569 15 MiB
Directory 3 222 GiB 111 2 GiB
Directory 4 1.265 TiB 1.295 1 GiB
Directory 5 26.359 GiB 1.687 16 MiB
Directory 6 105.281 MiB 26.952 4 KiB
Directory 7 29.697 MiB 30.410 1 KiB
Directory 8 83.124 GiB 340.488 256 KiB
Directory 9 21.662 GiB 354.909 64 KiB
Directory 10 142.629 GiB 36.514 4 MiB
Directory 11 452.328 MiB 57.898 8 MiB
Directory 12 144 GiB 72 2GiB
Directory 13 208.500 GiB 834 256 MiB
Directory 14 54.688 GiB 875 64 MiB

Istanze VM: sia nelle aree Ashburn che Phoenix, vengono utilizzate tre 16 cpu_core, 64 GB di memoria, 8Gbps di larghezza di banda Linux9 VM come nodi di lavoro e 8 cpu_core VM come nodo esecutore.

Di seguito sono riportate le impostazioni TCP di cui dispone tutta l'istanza.

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1

Entrambe le istanze regionali hanno il rispettivo file system di storage di file OCI attivato come indicato nella sezione Esegui Fpsync utilizzando tre nodi di lavoro per eseguire la migrazione dei dati dalle condivisioni di file in locale al servizio di storage di file OCI.

Eseguire il comando fpsync seguente. X e Y sono opzioni fpsync.

fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
 -w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
 -d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/

La tabella seguente mostra il tempo impiegato da fpsync per completare i 2,25 TB e 1 milione di file di trasferimento dati per diverse combinazioni di compressione e SSH X e Y e rsync.

opzione fpsync opzione di accesso nfs sui nodi di lavoro di origine e destinazione Tipo di prestazioni della destinazione di accesso allo storage di file Tempo impiegato
-n 30 -f 2000 -e ssh nconnect=16, nordirplus 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 237m28s
-n 48 -f 5000 -e ssh -C nconnect=16, nordirplus sorgente e destinazione con 1 HPMT 40 ciascuno 163m38.887s
-n 60 -f 20000 nconnect=16, nordirplus 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 124m25.435s
-n 48 -f 400000 -e ssh -C nconnect=16, nordirplus 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 122m55.458s
-n 100 -f 200000 -e ssh nconnect=16, nordirplus 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 120m44s
-n 60 -f 200000 -e ssh solo nordirplus, NO nconnect 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 118m41.393s
-n 60 -f 200000 -e ssh nconnect=16, nordirplus 3 destinazioni di accesso standard, 1:1 mappate ai nodi di lavoro 118m3.845s
-n 48 -f 20000 -e ssh nconnect=16, nordirplus sorgente e destinazione con 1 HPMT 40 ciascuno 113m34.011s
-n 48 -f 200000 nconnect=16, nordirplus sorgente e destinazione con 1 HPMT 40 ciascuno 110m15.555s
-n 48 -f 200000 nconnect=16, nordirplus sorgente e destinazione con 1 HPMT 40 ciascuno 109m3.472s

Possiamo vedere che qualsiasi combinazione di -n sopra 48 e -f sopra 20000 ha dato prestazioni simili circa 2 ore di tempo di trasferimento in tutta l'area. Anche, con la destinazione di accesso ad alte prestazioni 40 GBps, non c'è molta riduzione significativa del tempo impiegato.

Il risultato significa che, a seconda della dimensione del set di dati effettivo da trasferire, è possibile selezionare più destinazioni di accesso standard o ad alte prestazioni per il file system. Se il set di dati di origine è costituito principalmente da file di grandi dimensioni (dimensione file >= 1M) e la dimensione totale del set di dati è pari a 20 TB e superiore, la destinazione di accesso ad alte prestazioni è una buona opzione. In caso contrario, le destinazioni di accesso standard con una configurazione di scale-out possono fornire le prestazioni desiderate e a costi contenuti.

Passi successivi

Passare alle esercitazioni correlate pertinenti alle esigenze di migrazione. Per spostare i dati nei servizi di storage cloud OCI:

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.