- Introduzione
- RAID
- Caratteristiche fondamentali del RAID software. Fonte (access.redhat.com)
- LVM
- Svantaggi di LVM rispetto alle partizioni fisiche. Fonte (access.redhat.com)
- Capacità flessibile
- Pool di archiviazione ridimensionabili
- Riallocazione dei dati online
- Nominazione comoda dei dispositivi
- Strip dei dischi
- Volumi di mirroring
- Fotografie del volume
- ZFS
- Caratteristiche di ZFS
- RAID-Z
- Ridondanza
- Spare
- L2ARC
- Mirroring
- Pools di archiviazione ibridi di SSD
- Copy on Write
- Checksum
- Conclusioni
Introduzione
Quando si parla di storage, c’è un’alta probabilità che la tua mente vortichi un po’ a causa delle molte opzioni e delle tonnellate di terminologie che affollano quell’arena. Perché non possiamo semplicemente collegare un disco all’host e farla finita? Questa era una delle mie frustrazioni fino a quando sono arrivato a vedere l’essenza di tutte le tecnologie esistenti. I problemi che lo storage vi presenta come amministratore di sistema o ingegnere vi faranno apprezzare le varie tecnologie che sono state sviluppate per aiutare a mitigarli e risolverli.
In questo breve articolo, esamineremo le tecnologie RAID, Logical Volume Manager (LVM) e ZFS. Indagheremo su cosa fanno meglio nelle implementazioni e controlleremo le loro differenze. Benvenuti e rimanete sintonizzati.
Simile: Ext4 vs XFS – Quale scegliere
RAID
RAID sta per Redundant Array of Independent Disks. È stato fondamentalmente sviluppato per permettere di combinare molti dischi piccoli e poco costosi in un array al fine di realizzare obiettivi di ridondanza. La ridondanza non può essere raggiunta da un solo enorme disco inserito nel progetto. Anche se l’array è composto da più dischi, il computer lo “vede” come un unico disco o una singola unità di archiviazione logica, il che è abbastanza sorprendente.
Utilizzando tecniche come lo striping dei dischi (RAID Level 0), il mirroring dei dischi (RAID Level 1), e lo striping dei dischi con parità (RAID Level 5), il RAID è in grado di ottenere ridondanza, minore latenza, maggiore larghezza di banda, e massima capacità di recupero dai crash del disco rigido.
Le ragioni principali per cui dovreste considerare l’implementazione del RAID nei vostri progetti che gestiscono grandi quantità di dati sono le seguenti:
- Raggiungimento di velocità migliori
- Aumenta la capacità di archiviazione usando un singolo disco virtuale
- Minimizza la perdita di dati da guasti al disco. A seconda del tipo di RAID, sarete in grado di ottenere la ridondanza che poi vi salverà nel caso in cui si verifichino perdite di dati.
Questa tecnologia RAID è disponibile in tre versioni: Firmware RAID, Hardware RAID e Software RAID. Hardware RAID gestisce i suoi array indipendentemente dall’host e presenta ancora l’host con un singolo disco per array RAID. Utilizza una scheda di controllo RAID hardware che gestisce i compiti RAID in modo trasparente al sistema operativo. Il RAID software, d’altra parte, implementa i vari livelli RAID nel codice del disco del kernel (dispositivo a blocchi) e offre la soluzione più economica possibile, poiché non sono richieste costose schede di controllo del disco o chassis hot-swap. Ci sono CPU più veloci nell’era attuale, quindi il RAID software generalmente supera il RAID hardware.
Caratteristiche fondamentali del RAID software. Fonte (access.redhat.com)
- Portabilità degli array tra macchine Linux senza ricostruzione
- Ricostruzione dell’array in background usando risorse di sistema inattive
- Supporto per dischi hot- swappable
- .swappable drive support
- Rilevamento automatico della CPU per trarre vantaggio da certe caratteristiche della CPU come il supporto SIMD in streaming
- Correzione automatica dei settori difettosi sui dischi in un array
- Controlli regolari di coerenza dei dati RAID per assicurare la salute dell’array
- Monitoraggio proattivo degli array con avvisi e-mail inviati a un indirizzo e-mail designato su eventi importanti
- Scrittura-che aumentano drasticamente la velocità degli eventi di risincronizzazione permettendo al kernel di sapere precisamente quali porzioni di un disco devono essere risincronizzate invece di dover risincronizzare l’intero array
LVM
Ecco il bel Logical Volume Manager. Ciò che LVM fa meravigliosamente è l’astrazione dell’idea delle singole unità disco e permette a voi come amministratore di ritagliare “pezzi” di spazio da usare come unità. Permette di collegare altrettante unità fisiche al vostro sistema individuale e poi aumentare e diminuire in modo flessibile i volumi logici sul vostro host live. Potete aggiungere altri dischi fisici in futuro e aggiungere il vostro spazio senza riformattare o preoccuparvi di fermare le applicazioni o smontare i file system o spegnere l’host. Questo tipo di flessibilità rende il lavoro con LVM un processo così agevole.
Svantaggi di LVM rispetto alle partizioni fisiche. Fonte (access.redhat.com)
Capacità flessibile
Quando si usano volumi logici, i file system possono estendersi su più dischi, poiché è possibile aggregare dischi e partizioni in un unico volume logico.
Pool di archiviazione ridimensionabili
È possibile estendere i volumi logici o ridurre le dimensioni dei volumi logici con semplici comandi software, senza riformattare e ripartizionare i dispositivi disco sottostanti.
Riallocazione dei dati online
Per implementare sottosistemi di archiviazione più nuovi, veloci o più resilienti, è possibile spostare i dati mentre il sistema è attivo. I dati possono essere riorganizzati sui dischi mentre i dischi sono in uso. Per esempio, potete svuotare un disco hot-swappable prima di rimuoverlo.
Nominazione comoda dei dispositivi
I volumi logici di archiviazione possono essere gestiti in gruppi definiti dall’utente e con nomi personalizzati.
Strip dei dischi
Potete creare un volume logico che faccia lo striping dei dati su due o più dischi. Questo può aumentare drasticamente il throughput. Specificare la configurazione dello striping viene fatto quando si crea il volume logico con lvcreate
Volumi di mirroring
I volumi logici forniscono un modo conveniente per configurare un mirror per i propri dati. Anche se LVM non lo supportava nativamente in passato, le versioni recenti lo forniscono.
Fotografie del volume
Utilizzando i volumi logici, puoi prendere istantanee del dispositivo per backup coerenti o testare l’effetto dei cambiamenti senza influenzare i dati reali.
L’unica differenza tra RAID e LVM è che LVM non fornisce alcuna opzione per la ridondanza o parità che RAID fornisce.
ZFS
ZFS è stato originariamente sviluppato da Sun Microsystems per Solaris (di proprietà di Oracle), ma è stato portato su Linux.
ZFS è fondamentalmente diverso in questo campo perché è più di un semplice file system. ZFS combina i ruoli di un file system e di un gestore di volumi, consentendo l’aggiunta di dispositivi di archiviazione aggiuntivi a un sistema live e avendo il nuovo spazio disponibile su tutti i file system esistenti in quel pool immediatamente. Fa quello che LVM e RAID fanno in un unico pacchetto. Pertanto, ZFS è in grado di superare le precedenti limitazioni che impedivano ai gruppi RAID di poter crescere. La combinazione dei ruoli tradizionalmente separati di gestore di volumi e file system fornisce a ZFS una serie unica di vantaggi.
Tradizionalmente, i file system potevano essere creati su un singolo disco alla volta. Questo significa che se ci fossero stati due dischi, si sarebbero dovuti creare due file system. Il RAID evitava questo problema presentando al sistema operativo un singolo disco logico costituito dallo spazio fornito dalla combinazione di molti dischi fisici. Il sistema operativo poi metteva un file system sopra. Ma con ZFS, il file system è consapevole della struttura del disco sottostante. Questa consapevolezza rende possibile la crescita automatica del file system esistente quando vengono aggiunti dischi supplementari al pool. Inoltre, in ZFS, un certo numero di proprietà diverse possono essere applicate a ciascun file system, da cui la possibilità di creare un certo numero di file system e dataset diversi piuttosto che un singolo file system monolitico.
Caratteristiche di ZFS
RAID-Z
ZFS implementa RAID-Z, una variazione su RAID-5 standard che offre una migliore distribuzione della parità ed elimina il “buco di scrittura RAID-5” in cui i dati e le informazioni di parità diventano inconsistenti in caso di perdita di potenza.
Ridondanza
La ridondanza è possibile in ZFS perché supporta tre livelli di RAID-Z. I tipi sono chiamati da RAID-Z1 a RAID-Z3 in base al numero di dispositivi di parità nell’array e al numero di dischi che possono fallire mentre il pool rimane operativo.
Spare
ZFS ha uno speciale tipo di pseudo-vdev per tenere traccia degli hot spare disponibili. Si noti che gli hot spare installati non sono distribuiti automaticamente; devono essere configurati manualmente per sostituire il dispositivo guasto usando zfs replace.
L2ARC
Questo è il secondo livello del sistema di caching ZFS. La Adaptive Replacement Cache (ARC) primaria è memorizzata nella RAM. Poiché la quantità di RAM disponibile è spesso limitata, ZFS può anche utilizzare vdev cache (un singolo disco o un gruppo di dischi). I dischi allo stato solido (SSD) sono spesso usati come dispositivi di cache a causa della loro maggiore velocità e minore latenza
Mirroring
Un mirror è composto da due o più dispositivi e tutti i dati saranno scritti su tutti i dispositivi membri. Un vdev mirror conterrà solo tanti dati quanto il suo membro più piccolo. Un vdev mirror può sopportare il fallimento di tutti i suoi membri tranne uno senza perdere alcun dato.
Pools di archiviazione ibridi di SSD
Gli SSD ad alte prestazioni possono essere aggiunti nel pool di archiviazione ZFS per creare un tipo di pool ibrido. Questi SSD ad alte prestazioni possono essere configurati come una cache per contenere dati ad accesso frequente al fine di aumentare le prestazioni.
Copy on Write
La tecnica Copy on Write è usata da ZFS per controllare la consistenza dei dati sui dischi.
Checksum
Ogni blocco che viene allocato è sottoposto a checksum utilizzando l’algoritmo di checksum delle proprietà per-dataset fletcher2, fletcher4, sha25). Il checksum di ogni blocco è convalidato in modo trasparente mentre viene letto, permettendo a ZFS di rilevare la corruzione silenziosa. Nel caso in cui i dati letti non corrispondano alle checksum previste. ZFS va avanti e cerca di recuperare i dati dalla ridondanza configurata come mirror o RAID-Z.
Scopri di più su ZFS: https://www.freebsd.org/doc/handbook/zfs-term.html
Conclusioni
C’è molto di più su ZFS, RAID e LVM. Spero che tu abbia avuto una buona base per quanto riguarda queste tre tecnologie e che tu possa essere in grado di sceglierne una che si adatti al tuo progetto. Grazie per aver letto.
Leggi anche:
Come ridimensionare una partizione root ext2/3/4 e XFS senza LVM
Come impostare LVM
Come estendere il filesystem di root usando LVM su Linux
Come estendere/aumentare KVM Virtual Machine (VM) disk size
I migliori libri su Linux per principianti &esperti