Cos'è l'archiviazione a blocchi?
L'archiviazione a blocchi è una tecnologia che controlla i dispositivi di archiviazione e l'archiviazione di dati. Acquisisce tutti i dati, come un file o una voce di database, e li divide in blocchi di dimensioni uguali. Il sistema di archiviazione a blocchi memorizza quindi il blocco di dati nello spazio di archiviazione fisico sottostante in modo ottimizzato per un accesso e un recupero rapidi. Gli sviluppatori preferiscono l'archiviazione a blocchi per le applicazioni che richiedono un accesso ai dati efficiente, veloce e affidabile. Pensa all'archiviazione a blocchi come a una pipeline più diretta verso i dati. Al contrario, l'archiviazione dei file ha un livello aggiuntivo costituito da un file system (NFS, SMB) da elaborare prima di accedere ai dati.
Quali sono i vantaggi dell'archiviazione a blocchi?
Le organizzazioni utilizzano l'archiviazione a livello di blocco per i seguenti vantaggi.
Prestazioni di alto livello
I metadati sono dati aggiuntivi che descrivono i dati principali contenuti nel sistema di archiviazione. L'archiviazione a blocchi utilizza metadati limitati ma si basa su identificatori univoci assegnati a ciascun blocco per le operazioni di lettura/scrittura. Ciò riduce il sovraccarico di trasferimento dei dati e consente al server di accedere e recuperare in modo efficiente i dati nell'archiviazione a blocchi.
Poiché i metadati dell'archiviazione a blocchi sono limitati, essa offre una latenza estremamente bassa necessaria per carichi di lavoro ad alte prestazioni. Questo è necessario per le applicazioni sensibili alla latenza come i database. Ad esempio, Viasat utilizza Amazon Elastic Block Store (Amazon EBS) per acquisire dati a una velocità di trasmissione effettiva elevata (altamente transazionali) e ottimizzare i costi di archiviazione. Le organizzazioni utilizzano Amazon EBS per l'ottimizzazione delle prestazioni e dei costi, il dimensionamento e l'agilità, e gli snapshot Amazon EBS per la protezione dei dati.
L'architettura di archiviazione a blocchi fornisce più percorsi ai dati mentre l'archiviazione di file fornisce un solo percorso. Questo spiega perché, per le applicazioni ad alte prestazioni, si preferisce l'archiviazione a blocchi.
Uso flessibile e scalabile
I dispositivi di archiviazione a blocchi non sono vincolati a specifici ambienti di rete. I singoli blocchi possono essere configurati per diversi sistemi operativi, come Windows o Linux. Gli sviluppatori possono condividere i dati in più ambienti per garantire un'elevata disponibilità. Anche l'architettura di archiviazione a blocchi è altamente scalabile. Gli sviluppatori possono aggiungere nuovi blocchi a quelli esistenti per soddisfare le crescenti esigenze di capacità.
Modifica frequente
L'archiviazione a blocchi supporta scritture frequenti di dati senza ridurre le prestazioni. Invece di riscrivere l'intero file, il sistema identifica il blocco particolare che deve essere modificato. Quindi, riscrive il blocco selezionato con i nuovi dati. Ciò la rende molto efficiente per la gestione di file di grandi dimensioni che richiedono aggiornamenti frequenti.
Controllo granulare
Gli sviluppatori ottengono un elevato grado di controllo sull'archiviazione dei dati nell'archiviazione a blocchi. Ad esempio, possono ottimizzare le prestazioni raggruppando dati in rapida evoluzione su blocchi specifici e archiviando file statici su altri. Ciò migliora le prestazioni del sistema in quanto gli aggiornamenti in corso interessano solo un numero limitato di blocchi di dati anziché un intero file. Ad esempio, l'archiviazione a blocchi consente di suddivisione in livelli i dati in rapida evoluzione su unità a stato solido (SSD) ad alte prestazioni e di archiviare dati a caldo o a freddo su unità a disco rigido (HDD) a basso costo.
Quali sono i casi d'uso dell'archiviazione a blocchi?
Le caratteristiche uniche dell'archiviazione a blocchi la rendono l'opzione preferita per le applicazioni transazionali, mission-critical e a uso intensivo di I/O. L'archiviazione a blocchi viene utilizzata per un'ampia gamma di applicazioni, tra cui database relazionali o transazionali, database di serie temporali, container, dischi di avvio e file system hypervisor.
Reti dell'area di archiviazione
Gli sviluppatori spesso implementano l'archiviazione a blocchi come SAN (Storage Area Network). SAN è una tecnologia di rete complessa che presenta l'archiviazione a blocchi a più sistemi in rete come se quei blocchi fossero dispositivi collegati in locale. Le tecnologie SAN utilizzano in genere interconnessioni Fibre Channel. Al contrario, un NAS (Network Attached Storage) è un singolo dispositivo che gestisce i file su Ethernet.
L'architettura SAN è composta da tre livelli:
- Il livello host è costituito dai server che gestiscono l'accesso all'archiviazione
- Il livello archiviazione è costituito da dispositivi di archiviazione a blocchi fisici come nastri magnetici, unità disco o supporti ottici
- Il livello fabric collega i server SAN e l'archiviazione SAN con dispositivi quali switch SAN, bridge di protocollo, router, cavi e dispositivi gateway
È importante notare che le tecnologie SAN utilizzano la ridondanza tramite la replica sincrona o asincrona su lunghe distanze. Ciò riduce i tempi di inattività nel caso in cui non sia possibile accedere a una posizione geografica.
L'architettura SAN può funzionare con diversi tipi di archiviazione in un ambiente unificato, inclusa l'archiviazione a blocchi. L'archiviazione a blocchi offre un'alternativa molto efficace all'archiviazione di file su SAN.
Container
Gli sviluppatori utilizzano l'archiviazione a blocchi per archiviare applicazioni containerizzate sul cloud. I container sono pacchetti software che contengono l'applicazione e i relativi file di risorse per l'implementazione in qualsiasi ambiente informatico. Come i container, l'archiviazione a blocchi è altrettanto flessibile, scalabile ed efficiente. Con l'archiviazione a blocchi, gli sviluppatori possono migrare i container senza problemi tra server, posizioni e ambienti operativi.
Carichi di lavoro transazionali
I carichi di lavoro transazionali sono sequenze di dati generate in punti specifici dei processi aziendali. Ad esempio, i record di vendita, i registri delle operazioni e gli avvisi di accesso sono carichi di lavoro transazionali. Le organizzazioni che elaborano transazioni time-sensitive e mission-critical archiviano tali carichi di lavoro in un database a bassa latenza, elevata capacità e tolleranza agli errori.
L'archiviazione a blocchi consente agli sviluppatori di configurare un database transazionale solido, scalabile e altamente efficiente. Poiché ogni blocco è un'unità autonoma, il database funziona in modo ottimale, anche quando i dati archiviati aumentano. Inoltre, i singoli blocchi di archiviazione possono essere ospitati su server diversi, evitando i colli di bottiglia di accesso.
Nelle applicazioni mission-critical, l'archiviazione a blocchi è protetta da un array ridondante di dischi indipendenti (RAID) per garantire la ridondanza dei dati. Il sistema RAID esegue il backup dei file di dati nella memoria secondaria e recupera la copia in caso di guasto del disco primario. Ciò garantisce che l'applicazione non subisca interruzioni durante l'archiviazione e il recupero dei carichi di lavoro transazionali nell'archiviazione a blocchi.
Analisi e data warehousing
L'archiviazione a blocchi viene utilizzato con l'architettura HDFS (Hadoop Distributed File System) di Hadoop per archiviare i dati come unità distribuite in modo indipendente, consentendo le prestazioni necessarie per le applicazioni di analisi Hadoop e Kafka.
Macchine virtuali
Una macchina virtuale (VM) è una tecnologia che consente a un computer di eseguire un ambiente operativo separato con risorse di elaborazione definite dal software. Ad esempio, è possibile eseguire un sistema operativo Linux su un desktop Windows con una VM. Un hypervisor è un livello di astrazione responsabile dell'allocazione della memoria, dell'unità e dei servizi informatici necessari per l'esecuzione dell'ambiente operativo secondario.
L'archiviazione a blocchi supporta gli hypervisor delle VM più diffusi. Gli utenti possono installare il sistema operativo, il file system e altre risorse informatiche su un volume di archiviazione a blocchi. Per fare ciò, gli utenti formattano il volume di archiviazione a blocchi e lo trasformano in un file system di VM. Ciò consente loro di aumentare o ridurre facilmente le dimensioni dell'unità virtuale e trasferire l'archiviazione virtualizzata da un host all'altro.
Come funziona l'archiviazione a blocchi?
In un sistema di archiviazione a blocchi è possibile suddividere i dati in blocchi o pezzi indipendenti di dimensioni fisse. Ogni blocco è un singolo elemento di archiviazione di dati. Un'informazione completa, ad esempio un file di dati, viene archiviata in più blocchi non sequenziali.
Il sistema di archiviazione a blocchi non mantiene metadati di alto livello, come tipo di file, proprietà e timestamp. Gli sviluppatori devono progettare una tabella di ricerca dei dati nel sistema applicativo per gestire l'archiviazione dei dati nei rispettivi blocchi. L'applicazione potrebbe archiviare i dati in diversi ambienti operativi per aumentare l'efficienza di lettura/scrittura.
Scrittura di dati
Durante una sequenza di scrittura, l'applicazione divide i dati in diverse sezioni delle dimensioni di un blocco. Scrive i dati in più blocchi e registra l'identificatore del blocco in una tabella di ricerca dei dati. La tabella di ricerca consente al server di calcolare l'indirizzo relativo dei dati archiviati nel blocco.
Lettura dei dati
Quando gli utenti richiedono un file specifico dal sistema di archiviazione a blocchi, il server utilizza la tabella di ricerca dei dati per determinare dove sono archiviati i dati. Quindi, l'applicazione recupera i dati da più blocchi e li unisce nella sequenza originale.
Quali altri tipi di archiviazione sono disponibili?
Oltre all'archiviazione a blocchi, sono disponibili anche opzioni di archiviazione di oggetti e file. Ogni tipo offre vantaggi unici.
Archiviazione di oggetti
L'archiviazione di oggetti è una tecnologia che archivia e gestisce i dati in un formato non strutturato chiamato oggetto. Ogni oggetto è contrassegnato con un identificatore univoco e contiene metadati che descrivono il contenuto sottostante. Ad esempio, l'archiviazione di oggetti per le foto contiene metadati relativi al fotografo, alla risoluzione, al formato e all'ora di creazione. Gli sviluppatori utilizzano l'archiviazione di oggetti per archiviare dati non strutturati, come testo, video e immagini.
Archiviazione a blocchi e archiviazione di oggetti
Entrambe le soluzioni di archiviazione sono utili a seconda del caso d'uso. L'archiviazione a blocchi offre valori di bassa latenza ed elevate prestazioni in vari casi d'uso. Le sue funzionalità sono utili principalmente per l'archiviazione di database strutturati, volumi di file system di VM e volumi elevati di carichi di lettura e scrittura. L'archiviazione di oggetti rappresenta la soluzione migliore per grandi quantità di dati non strutturati, soprattutto quando la durabilità, l'archiviazione illimitata, la scalabilità e la gestione complessa dei metadati sono fattori rilevanti per le prestazioni complessive.
Archiviazione di file
L'archiviazione di file archivia i dati in una struttura gerarchica di file e cartelle. Negli ambienti di rete, l'archiviazione basata su file utilizza spesso una tecnologia NAS (network-attached storage). NAS consente agli utenti di accedere ai dati di archiviazione di rete in modo simile a un disco rigido locale. L'archiviazione di file è intuitiva e consente agli utenti di gestire il controllo della condivisione dei file.
Archiviazione a blocchi e archiviazione di file
Il sistema di archiviazione di file archivia i dati in un ambiente specifico, mentre i sistemi di archiviazione a blocchi possono essere integrati con diversi sistemi operativi. L'archiviazione di file fornisce un'interfaccia intuitiva per l'elaborazione degli utenti finali. Nel frattempo, è possibile aggiungere nuovi blocchi di dati al sistema di archiviazione a blocchi senza aumentare la latenza operativa.
Archiviazione di istanze
Un archivio dell'istanza offre archiviazione temporanea a livello di blocco per le istanze. Quest'archiviazione si trova su dischi fisicamente collegati al computer host. L'archivio dell'istanza è ideale per l'archiviazione temporanea di informazioni che cambiano frequentemente, come buffer, cache, dati scratch e altri contenuti temporanei, o per i dati replicati in un parco istanze, ad esempio un pool di server Web con carico bilanciato.
Un archivio dell'istanza è costituito da uno o più volumi di archivio dell'istanza presentati come dispositivi a blocchi. Le dimensioni di un archivio dell'istanza e il numero di dispositivi disponibili variano in base al tipo di istanza
In che modo AWS supporta le tue esigenze di archiviazione a blocchi?
Amazon EBS è una soluzione di archiviazione a blocchi facile da usare per carichi di lavoro cloud. Gli sviluppatori utilizzano Amazon EBS per fornire un servizio di archiviazione persistente per i carichi di lavoro di Amazon Elastic Compute Cloud (Amazon EC2).
- Amazon EBS offre una soluzione di archiviazione altamente scalabile per applicazioni mission-critical e a uso intensivo di I/O.
- Gli snapshot di Amazon EBS forniscono un metodo semplice e sicuro per la protezione dei dati dell'archiviazione a blocchi.
- Gli sviluppatori possono installare vari tipi di database su Amazon EBS, tra cui SAP HANA, Oracle, Microsoft SQL Server, MySQL, Cassandra e MongoDB.
Inizia a usare l'archiviazione a blocchi creando un account AWS gratuito oggi stesso.
Fasi successive dell'archiviazione a blocchi in AWS
Ottieni accesso istantaneo al piano gratuito di AWS.