Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
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.
-
Lo strumento fpsync è uno script di wrapper parallelo che per impostazione predefinita utilizza rsync. Può anche utilizzare Rclone (come descritto nell'Esercitazione 2: Spostare i dati nei servizi di storage cloud OCI utilizzando Rclone), tar, tarify e cpio.
-
Rsync è un'utilità versatile per il trasferimento e la sincronizzazione dei file sia per i file system remoti che locali.
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
-
Rsync è una utility del sistema operativo Linux tradizionale utilizzata per eseguire una copia una tantum o una sincronizzazione periodica dei dati da una macchina all'altra in posizioni geografiche uguali o diverse. Un singolo processo rsync potrebbe non essere sufficiente con set di dati di grandi dimensioni per eseguire il trasferimento nel periodo di tempo desiderato. Rsync ha opzioni per attivare più processi rsync, ognuno in esecuzione su un subset specifico del data set, completando il trasferimento del data set più rapidamente di un singolo processo. Tuttavia, determinare l'equilibrio tra quanti processi e quali sottoinsiemi possono essere difficili in base alla complessità della gerarchia del set di dati. Fpsync semplifica questo processo. Fpsync è un orchestratore che divide l'intero set di dati in chunk più piccoli e genera più processi rsync in base al parallelismo impostato dall'utente. Internamente, Fpsync utilizza rsync per eseguire il trasferimento effettivo. Le opzioni Cpio e tar sono disponibili come opzioni di strumenti di base per fpsync, ma rsync è l'impostazione predefinita.
-
Fpsync dispone dell'opzione nodi di lavoro in cui è possibile distribuire il trasferimento tra più nodi anziché tra un singolo nodo. Oltre all'aumento dei processi rsync paralleli nello stesso nodo (scale up), puoi anche aumentare il numero di nodi (scale out) per eseguire il maggior numero di processi rsync.
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:
-
Scopri come utilizzare rsync e fpsync insieme.
-
Scopri i vantaggi in termini di prestazioni derivanti dall'uso di fpsync.
Prerequisiti
-
Un account OCI.
-
Interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI) installata con un file di configurazione funzionante nella directory home in una sottodirectory denominata
.oci
. Per maggiori informazioni, vedere Setting up the Configuration File. -
Autorizzazione utente per creare, esportare e eseguire il MOUNT di OCI File Storage o per accedere a una destinazione di accesso a OCI File Storage già installata in una VM. Per ulteriori informazioni, vedere Gestisci criteri di storage dei file.
-
Sai come creare, gestire ed eseguire il MOUNT dello storage NAS (Network Attached Storage) e dello storage di file OCI. Per ulteriori informazioni, vedere OCI Configuring File System Storage e Overview of File Storage.
-
Accesso per creare e avviare istanze di OCI Compute o accesso a 3 sistemi per eseguire fpsync. Per ulteriori informazioni, vedere Creazione di un'istanza.
-
Familiarità con:
-
Utilizzo di SSH, generazione di chiavi SSH e utilizzo dei file di configurazione SSH. Per ulteriori informazioni, vedere Creazione di una coppia di chiavi SSH nella riga di comando Linux per l'accesso OCI.
-
Strumenti e comandi di rete di base per controllare la connettività tra due siti o sistemi.
-
Utilizzando un terminale o un'interfaccia shell su Mac OS, Linux, Berkeley Software Distribution (BSD) e su Windows PowerShell, prompt dei comandi o bash.
-
Installazione del software su un sistema Linux.
-
-
Per conoscere gli strumenti di migrazione che possiamo utilizzare, consulta l'Esercitazione 1: Utilizza gli strumenti di migrazione per spostare i dati nei servizi di storage cloud OCI.
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
-
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/
-
Esegui più processi rsync in parallelo.
-
È possibile utilizzare i comandi
find
exargs
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.
-
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
-
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.
Seguire i passi indicati:
-
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.
-
Installare la condivisione NAS di origine sui tre nodi.
Usare le opzioni di attivazione
nordirplus
enconnect=16
, non specificare altre opzioni di attivazionenfs
.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.
-
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 comandofpsync
è 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 lavoroworker-src-1
,worker-src-2
eworker-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
-
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.
-
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. -
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 denominataid_rsa.pub
. Propagare questa chiave a tutti i nodi di lavoro utilizzando il comandocat
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 comandossh-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
-
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 dicpu_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.
- Selezionare il valore
-
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 percpu_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/
-
Determinare il valore per
-n
.Select the -n value to be equal to number of cpu_cores of all worker nodes in the source and keep as many as destination worker nodes of same CPU and memory. In this example, it is 3 worker nodes times 16 cpu_cores = 48.
-
Determinare il valore per
-f
.In this example, two folders are large directories. Of the total 1.1 million files, the two folders contain ~700K files with an average file size of 160KB. Memory in each worker node = 64GB = 64000000KB. Processes in each worker node = 8 OCPU = 16 cpu_cores. Memory per Process = 64000000/16 = 4000000KB/process. Now, an appropriate value for -f can be calculated as 4000000KB / 160 = 25000.
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:
-
Utilizzando Rclone, vedere l'Esercitazione 2: Spostare i dati nei servizi di storage cloud OCI utilizzando Rclone.
-
Utilizzando OCI Object Storage Sync e S5cmd, consulta l'Esercitazione 3: Sposta i dati nei servizi di storage cloud OCI utilizzando OCI Object Storage Sync e S5cmd.
Collegamenti correlati
-
Elementi fondamentali per la migrazione dei dati nello storage cloud OCI
-
Esercitazione 2: Spostare i dati nei servizi di storage cloud OCI utilizzando Rclone
Conferme
- Autore - Vinoth Krishnamurthy (membro principale dello staff tecnico, OCI File Storage)
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.
Move Data into OCI Cloud Storage Services using Fpsync and Rsync
G25649-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.