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 OCI Object Storage Sync e lo strumento s5cmd
Introduzione
Questa è un'esercitazione 3 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'utilizzo di OCI Object Storage Sync (os sync) e s5cmd per eseguire la migrazione dei dati del file system (incluso OCI File Storage) da e verso OCI Object 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.
-
OCI Object Storage Sync (os sync) fa parte dell'interfaccia della riga di comando (OCI CLI, Command Line Interface) di Oracle Cloud Infrastructure che sincronizza una directory del file system con gli oggetti in un bucket. Il comando attraversa le sottodirectory copiando file o oggetti nuovi e modificati dall'origine alla destinazione e, facoltativamente, eliminando quelli non presenti nell'origine.
-
Lo strumento s5cmd è un progetto gratuito open source. s5cmd consente di sfogliare e trasferire i dati da/verso le aree di memorizzazione degli oggetti compatibili con S3 (incluso OCI Object Storage) a/da i dati del file system (incluso OCI File Storage). È scritto nella lingua Go.
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.
Destinatari
DevOps ingegneri, sviluppatori, amministratori e utenti dello storage cloud OCI, responsabili IT, utenti avanzati OCI e amministratori delle applicazioni.
Obiettivo
Scopri come copiare e/o sincronizzare i dati del file system in/da OCI Object Storage utilizzando l'interfaccia CLI OCI con la sincronizzazione del sistema operativo e lo strumento s5cmd.
-
Utilizzare il comando
os sync
con vari parametri e opzioni. -
Vari modi per eseguire lo strumento s5cmd per la migrazione e la sincronizzazione dei dati.
Prerequisiti
-
Un account OCI.
-
Istanza VM su OCI per distribuire gli strumenti di migrazione o un sistema in cui è possibile distribuire e utilizzare gli strumenti di migrazione.
-
CLI OCI installata con un file di configurazione funzionante nella directory home in una sottodirectory denominata
.oci
. Per maggiori informazioni, vedere Setting up the Configuration File. -
Accesso a un bucket di storage degli oggetti OCI.
-
Le autorizzazioni utente in OCI per utilizzare OCI Object Storage, avere accesso per gestire bucket e oggetti o gestire object-family per almeno 1 bucket o compartimento. Per ulteriori informazioni, vedere Criteri comuni e Riferimento ai criteri.
-
Autorizzazione utente per creare, esportare e eseguire il MOUNT di OCI File Storage oppure accesso a una destinazione di accesso a OCI File Storage già installata su una VM oppure a un altro MOUNT NFS (Network File System) o a un file system locale da utilizzare per copiare i dati da e verso. Per ulteriori informazioni, vedere Gestisci criteri di storage dei file.
-
Familiarità con l'utilizzo di un terminale o di un'interfaccia shell su Mac OS, Linux, Berkeley Software Distribution (BSD), o su Windows PowerShell, prompt dei comandi o bash.
-
Per installare l'interfaccia CLI OCI con sincronizzazione del sistema operativo e lo strumento s5cmd, consulta Aspetti fondamentali della migrazione per lo spostamento dei dati nello storage cloud OCI.
-
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.
Sincronizza i dati del file system di rete e del file system locale in/da OCI Object Storage
OCI Object Storage Sync fa parte dell'interfaccia CLI (Command Line Interface) OCI, che sincronizza una directory del file system con gli oggetti in un bucket. Il comando attraversa le sottodirectory copiando file o oggetti nuovi e modificati dall'origine alla destinazione e, facoltativamente, eliminando quelli non presenti nell'origine. Si tratta di uno strumento comodo per mantenere sincronizzati i dati del file system e i bucket di storage degli oggetti OCI. Il nostro ambiente di test ha rilevato che OCI Object Storage Sync ha funzionato bene per set di dati misti e meglio di altri strumenti per file di grandi dimensioni (1 TB o più).
OCI Object Storage supporta un'API di compatibilità Amazon S3. I clienti che hanno già familiarità con la varietà di strumenti Amazon S3 possono continuare a utilizzarli. Lo strumento s5cmd è un progetto open source gratuito. Consente di sfogliare e trasferire i dati da/verso un'area di memorizzazione degli oggetti compatibile con S3. È scritto nella lingua Go ed è ottimizzato per il throughput parallelo. Durante i nostri test, abbiamo scoperto che lo strumento s5cmd funziona meglio per i file di piccole dimensioni (file di dimensioni inferiori a 1 MB fino a 30 MB) e ha eseguito tutti gli altri strumenti per lo spostamento di file di piccole dimensioni. Lo strumento s5cmd funziona anche per i data set misti quando si spostano i dati dai file system allo storage degli oggetti OCI.
Se i tuoi dati possono essere organizzati in sottoinsiemi in base a directory o prefissi, puoi anche eseguire lo scale-out della sincronizzazione del sistema operativo e l'esecuzione di s5cmd su più VM per migliorare i tempi di trasferimento.
Usa sincronizzazione sistema operativo per sincronizzare
-
Sincronizza i dati del file system locale in OCI Object Storage.
Eseguire il seguente comando di base
os sync
per sincronizzare i file da una directory di origine in un bucket di destinazione.oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
Nota: questo stesso comando può essere utilizzato per i file system locali in locale, i file system NFS in locale e in un'istanza di OCI Compute con accessi NFS di OCI File Storage per spostare i dati da OCI File Storage a un bucket di OCI Object Storage.
-
Eseguire la migrazione dei dati da OCI Object Storage a un file system locale.
Eseguire il seguente comando di base
os sync
per sincronizzare file/oggetti da un bucket di origine in un file system di destinazione.oci os object sync --dest-dir <path to migration-target directory> --bucket-name <bucket name>
Nota: questo stesso comando può essere utilizzato per i file system locali in locale, i file system NFS in locale e in un'istanza di OCI Compute con un accesso NFS di storage di file OCI per spostare i dati dal servizio di storage di file OCI in un bucket di storage degli oggetti OCI.
-
Aumenta le operazioni parallele.
Per impostazione predefinita, solo 10 operazioni vengono eseguite in parallelo, l'aumento delle operazioni parallele migliora la velocità di trasferimento dei dati e consuma anche più risorse di sistema e larghezza di banda. Nel nostro ambiente di test, abbiamo utilizzato
VM.Standard.E4.Flex
con 24 OCPU, larghezza di banda di rete 24Gbps, 384 GB di memoria e abbiamo trovato 100 operazioni parallele per funzionare al meglio per le velocità di trasferimento. Le VM più grandi possono aumentare questo numero di 10 operazioni alla volta fino a raggiungere una velocità di trasferimento ottimale o fino a raggiungere il massimo di 1.000 trasferimenti paralleli. Le forme VM più piccole dovrebbero iniziare con 10 operazioni e aumentare con incrementi di 5-10 fino a raggiungere un buon throughput. Aumentare o ridurre le operazioni parallele con il flag seguente.--parallel-operations-count <integer range>
Nota: se dopo l'aumento dell'operazione parallela iniziano a verificarsi errori, in particolare gli errori con 429 "TooManyRequests", abbassare le operazioni parallele di 2 fino all'arresto degli errori.
-
Filtrare i file corrispondenti utilizzando il comando pattern.
I pattern possono essere utilizzati per includere o escludere file corrispondenti. I comandi Pattern possono essere utilizzati più volte nella riga di comando per trovare una corrispondenza tra più pattern.
-
Per includere file che corrispondono a un pattern, utilizzare il comando seguente.
--include
-
Per escludere i file che corrispondono a un modello, utilizzare il comando seguente.
--exclude
Nota:
*
: corrisponde a tutti gli elementi?
: corrisponde a qualsiasi carattere singolo[sequence]
: corrisponde a qualsiasi carattere in sequenza[!sequence]
: corrisponde a qualsiasi carattere non in sequenza
-
-
Utilizzare il flag
--prefix
.Il flag
--prefix
utilizzato durante il caricamento dei file nello storage degli oggetti con il comando--src-dir
carica gli oggetti e aggiunge il percorso della directory al nome dell'oggetto come prefisso. Quando vengono utilizzati per scaricare gli oggetti da OCI Object Storage, vengono scaricati solo gli oggetti con il prefisso specificato e non vengono visualizzati come parte del nome dell'oggetto o del file. -
Verificare un trasferimento prima di un'esecuzione.
Prima di avviare un trasferimento, puoi determinare quali file verranno caricati/scaricati in/da OCI Object Storage facendo in modo che la sincronizzazione del sistema operativo esegua solo la stampa. Eseguire la riga di comando con il flag seguente.
--dry-run
Utilizzare s5cmd per sincronizzare
-
Comando di sincronizzazione e copia.
-
L'opzione
sync
per s5cmd esegue una sincronizzazione unidirezionale dall'origine alla destinazione senza modificare i file di origine e non elimina i file nella destinazione che non esistono nell'origine. Aggiungere il flag--delete
per rimuovere i file nella destinazione che non esistono nell'origine. -
Il comando
copy
copierà semplicemente gli oggetti dall'origine alla destinazione.
-
-
Pattern corrispondente.
Lo strumento s5cmd supporta caratteri jolly a più livelli per le operazioni di sincronizzazione e copia. Ciò si ottiene elencando tutti gli oggetti con il prefisso fino al primo carattere jolly, quindi filtrando i risultati in-memory.
Quando l'origine è un file system, vengono applicati anche i caratteri jolly. Quando si utilizza il carattere
*
, a volte viene interpretato come un carattere jolly di battitura, racchiuderlo tra apici per evitare risultati imprevisti.Ad esempio, per copiare tutti i file compressi in una directory in un bucket, eseguire il comando seguente.
s5cmd cp '*.gz' s3:/<bucket name>
-
Comando di sincronizzazione di base.
-
Sincronizza i dati del file system locale in OCI Object Storage. Eseguire il seguente comando di base
s5cmd
per sincronizzare i file da una directory di origine in un bucket di destinazione.s5cmd sync /<path to migration-files> s3://<bucket name>
-
Sincronizza i dati da OCI Object Storage a un file system locale. Eseguire il seguente comando di base
s5cmd
per sincronizzare file/oggetti da un bucket di origine in un file system di destinazione.s5cmd sync s3:/<bucket name>/* /<path to migration-target directory>
Nota: gli stessi comandi possono essere utilizzati per i file system locali in locale, i file system NFS in locale e in un'istanza di OCI Compute con accessi NFS di OCI File Storage per spostare i dati da OCI File Storage a un bucket di OCI Object Storage.
-
-
Comando di copia di base.
Eseguire il comando
s5cmd
di base riportato di seguito per copiare i file da una directory di origine del file system locale in un bucket di destinazione dello storage degli oggetti OCI.s5cmd cp /<path to migration-files> s3://<bucket name>
Copia i dati da OCI Object Storage in un file system locale.
s5cmd cp "s3:/<bucket name>/*" /<path to migration-target directory>
Nota: questi comandi possono essere utilizzati per i file system locali in locale, i file system NFS in locale e in un'istanza di computazione OCI con accessi NFS dello storage di file OCI per spostare i dati dallo storage di file OCI a un bucket di storage degli oggetti OCI. I nostri test hanno utilizzato principalmente il comando copia con s5cmd.
-
Aumentare il parallelismo.
Lo strumento s5cmd esegue 256 lavoratori in parallelo per impostazione predefinita. A seconda delle dimensioni della VM, è possibile aumentare o ridurre il parallelismo. Nel nostro ambiente di test, abbiamo utilizzato
VM.Standard.E4.Flex
con 24 OCPU, larghezza di banda di rete 24Gbps, 384 GB di memoria e abbiamo trovato 1.000 operazioni parallele per funzionare al meglio per le velocità di trasferimento. Le VM più grandi possono aumentare questo numero di 10 operazioni alla volta fino a raggiungere una velocità di trasferimento ottimale o fino a raggiungere il massimo di 1.000 trasferimenti paralleli. Le forme VM più piccole dovrebbero iniziare con 10 operazioni e aumentare con incrementi di 5-10 fino a raggiungere un buon throughput. Aumentare o ridurre le operazioni parallele con il flag seguente.--numworkers <interger>
Nota: se dopo l'aumento del numero di lavoratori iniziano a verificarsi errori, in particolare gli errori con 429 "TooManyRequests", ridurre il numero di lavoratori di 2 fino a quando non si verificano più gli errori.
Ad esempio, copia tutti gli oggetti di un bucket in una directory del file system locale.
s5cmd --numworkers 1000 cp "s3://MyBucket/*" /my/directory
Nota: abbiamo testato con un massimo di 1.500 lavoratori e non abbiamo riscontrato miglioramenti significativi. Dal momento che i nostri test hanno rilevato che lo strumento s5cmd funzionava meglio per i file di piccole dimensioni, non abbiamo trovato alcun vantaggio nell'utilizzo del flag
concurrency
per i file che necessitano di caricamenti multiparte e l'utilizzo di un numero elevato di lavoratori ha mostrato le migliori prestazioni complessive.
(Opzionale) Ambienti di test
I suggerimenti vengono forniti in base ai test e alle interazioni con i clienti.
Nota: per fornire ulteriori informazioni, per i dettagli sull'uso di Rclone, vedere Esercitazione 2: Spostare i dati nei servizi di storage cloud OCI utilizzando Rclone.
Ambiente di test 1:
1 istanza VM VM.Standard.E4.Flex
, 1 OCPU, larghezza di banda di rete 1Gbps, 16 GB di memoria. Per simulare la migrazione da on premise a OCI, i dati copiati da PHX NFS a IAD.
Data set
-
Data set 1:
Dimensione totale Conteggio file Intervallo dimensioni file 3TB 3 1TB Metodo A - Da Periodo Comando Flag sincronizzazione os NFS/File PHX per Object IAD 123m17.102s ND --parallel-operations-count 100
s5cmd NFS/File PHX per Object IAD 239m20.625s copy run commands.txt
, esecuzione predefinita--numworkers 256
rclone NFS/File PHX per Object IAD 178m27.101s copy --transfers=100 --oos-no-check-bucket --fast-list --checkers 64 --retries 2 --no-check-dest
Nota: i nostri test hanno mostrato che
os sync
è il più veloce in esecuzione per questo set di dati. -
Data set 2:
Dimensione totale Conteggio file Intervallo dimensioni file 9.787GB 20.000 1 MB Metodo A - Da Periodo Comando Flag s5cmd NFS/File PHX per Object IAD 1m12.746s copy esecuzione predefinita --numworkers 256
sincronizzazione os NFS/File PHX per Object IAD 2m48.742s ND --parallel-operations-count 1000
rclone NFS/File PHX per Object IAD 1m52.886s copy --transfers=500 --oos-no-check-bucket --no-check-dest
Nota: i nostri test hanno dimostrato che s5cmd ha ottenuto le prestazioni migliori per questo set di dati.
Ambiente di test 2:
Istanze VM: sono state utilizzate da 1 a 2 istanze VM per ogni test. È stata utilizzata una VM.Standard.E4.Flex
con 24 OCPU, larghezza di banda di rete 24Gbps e 384 GB di memoria. Oracle Linux 8 è stato utilizzato per il test di Linux.
Data set
-
Data set 1:
14 directory principali con il seguente numero di file e le seguenti dimensioni.
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 Nota:
- Le 14 directory sono state divise tra le 2 istanze VM.
- Ogni VM ha eseguito 7 comandi/processi, 1 per ogni directory se non diversamente indicato.
Metodo A - Da Periodo Comando Flag/Note s5cmd NFS/File PHX per Object IAD 54m41.814s copy --numworkers 74
sincronizzazione os NFS/File PHX per Object IAD 65m43.200s ND --parallel-operations-count 50
rclone NFS/File PHX per Object IAD 111m59.704s copy --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 50
Nota: i nostri test hanno mostrato che s5cmd è in esecuzione più velocemente, con la sincronizzazione del sistema operativo che funziona abbastanza bene rispetto a Rclone.
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 Fpsync e Rsync per le migrazioni dei dati del file system, vedere l'Esercitazione 4: Spostare i dati nei servizi di storage cloud OCI utilizzando Fpsync e Rsync per le migrazioni dei dati del file system.
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 - Melinda Centeno (Senior Principal Product Manager, OCI Object 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 OCI Object Storage Sync and the s5cmd Tool
G25637-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.