Nota

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.

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.

Prerequisiti

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

  1. 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.

  2. 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.

  3. 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.

  4. 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
  5. 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.

  6. 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

  1. 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.

  2. 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>
    
  3. 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.

  4. 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.

  5. 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

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

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.