I Logical Volume Manager
Uno strumento di storage comunemente utilizzato ma spesso trascurato o frainteso è il Logical Volume Manager. I Logical Volume Manager, o LVM, sono una tecnologia di astrazione, incapsulamento e virtualizzazione dello storage utilizzata per fornire un livello di flessibilità spesso altrimenti non disponibile.
Più comunemente un LVM viene usato per sostituire i tradizionali sistemi di partizionamento, e talvolta ulteriori funzionalità vengono integrate in un LVM, come le funzioni RAID. Quasi tutti i sistemi operativi offrono oggi un prodotto LVM integrato e la maggior parte lo fa già da moltissimo tempo. Gli LVM sono diventati una funzionalità standard della gestione dello storage sia lato server sia lato client.
Gli LVM non offrono necessariamente funzionalità uniformi, ma le caratteristiche comuni spesso incluse in un LVM sono i volumi logici (partizionamento software), il thin provisioning, l'allocazione flessibile della posizione fisica, la cifratura, semplici funzionalità RAID (comunemente solo RAID basato su mirror) e gli snapshot. In sostanza tutti gli LVM offrono volumi logici, snapshot e allocazione flessibile; queste sono considerate funzioni LVM fondamentali.
Tra gli LVM più diffusi figurano Logical Disk Management su Windows Server 2000 fino a Server 2008 R2, Storage Spaces su Windows 2012 e versioni successive, LVM su Linux, BtrFS su Linux, Core Storage su Mac OSX, Solaris Volume Manager su Solaris, ZFS su Solaris e FreeBSD, Vinum Volume Manager su FreeBSD, Veritas Volume Manager per la maggior parte dei sistemi UNIX, LVM su AIX e molti altri. Gli LVM sono diventati sempre più diffusi e standard a partire dalla fine degli anni '80. ZFS e BtrFS sono interessanti in quanto sono filesystem che implementano un LVM all'interno del filesystem come sistema integrato.
Un LVM consuma block device (drive appearance) e crea volumi logici (spesso indicati come LV) che sono a loro volta anch'essi drive appearance. Per questo motivo, un LVM può collocarsi in uno qualsiasi dei tanti punti diversi dello stack di storage. Più comunemente ci aspetteremmo che un LVM consumi un array RAID, suddivida un array RAID in uno o più volumi logici, con ciascun volume logico al quale viene applicato un filesystem. Ma è del tutto possibile che un LVM si collochi direttamente sullo storage fisico senza RAID, ed è del tutto possibile che il RAID venga implementato via software al di sopra dei volumi logici anziché al di sotto di essi. Gli LVM sono anche molto utili per combinare molti sistemi di storage diversi in uno solo, come ad esempio combinare molti dispositivi fisici e/o array RAID in un'unica entità astratta che può poi essere suddivisa in volumi logici (con singoli volumi che potenzialmente utilizzano molti dispositivi di storage sottostanti differenti). Un utilizzo standard di un LVM consiste nel combinare molte LUN SAN (potenzialmente da un singolo sistema SAN o potenzialmente da diversi sistemi differenti) in un unico volume group.
Sebbene gli LVM forniscano potenza e flessibilità nel lavorare con più dispositivi di storage e con diversi tipi di dispositivi di storage, presentando al contempo un'interfaccia standard ai livelli superiori dello stack di storage, probabilmente gli utilizzi più comuni sono quelli di fornire flessibilità laddove un tempo c'erano partizioni rigide e quelli relativi agli snapshot. Le partizioni tradizionali sono rigide e non possono essere ridimensionate. I volumi logici possono quasi sempre essere ingranditi o ridotti secondo necessità, rendendoli enormemente più flessibili.
Gli snapshot sono diventati un punto focale dell'utilizzo degli LVM nell'ultimo decennio, anche se ciò è avvenuto perlopiù a causa della crescente consapevolezza riguardo agli snapshot piuttosto che di un recente cambiamento nella loro disponibilità. I sistemi di virtualizzazione di largo consumo hanno portato gli snapshot da componente di conoscenza sottostante, proprio del settore dello storage, al mainstream dell'IT. Gran parte del modo in cui le tecnologie di virtualizzazione tendono ad affrontare la virtualizzazione dello storage può essere considerato correlato agli LVM, ma in genere si tratta di funzionalità simili offerte in modo diverso oppure semplicemente del trasferimento della funzionalità LVM da un livello inferiore.
Oggi ci si può aspettare di trovare gli LVM in uso quasi ovunque, persino implementati in modo trasparente sugli array di storage (come le apparecchiature SAN) per fornire un provisioning più flessibile. Non sono solo disponibili in modo standard, ma anche implementati in modo standard e hanno fatto molto per migliorare l'affidabilità e le capacità dello storage moderno.
