# Gestor de volums lògics (Linux)

A Linux, Logical Volume Manager (LVM) és un marc de mapeig de dispositius que proporciona una gestió lògica de volums per al nucli de Linux. La majoria de les distribucions de Linux modernes són conscients de LVM fins al punt de poder tenir els seus sistemes de fitxers arrel en un volum lògic.
Heinz Mauelshagen va escriure el codi LVM original el 1998, quan treballava a Sistina Software, prenent les seves directrius de disseny principals del gestor de volums d'HP-UX.

## Usos

LVM s'utilitza per als propòsits següents:
* Creació de volums lògics únics de diversos volums físics o discs durs sencers (una mica semblant a RAID 0, però més semblant a JBOD), permetent el redimensionament dinàmic del volum.
* Gestionar grans granges de discs durs permetent que s'afegeixin i substitueixin discos sense temps d'inactivitat ni interrupcions del servei, en combinació amb l'intercanvi en calent.
* En sistemes petits (com un escriptori), en comptes d'haver d'estimar en el moment de la instal·lació la mida que hauria de ser una partició, LVM permet que els sistemes de fitxers es redimensionin fàcilment segons sigui necessari.
* Realització de còpies de seguretat coherents fent instantànies dels volums lògics.
* Xifrat de diverses particions físiques amb una contrasenya.
LVM es pot considerar com una capa de programari fina a la part superior dels discs durs i les particions, que crea una abstracció de continuïtat i facilitat d'ús per gestionar la substitució, el reparticionament i la còpia de seguretat del disc dur.

## Característiques
### Funcionalitat bàsica

* Els grups de volums (VG) es poden redimensionar en línia absorbint nous volums físics (PV) o expulsant els existents.
* Els volums lògics (LV) es poden redimensionar en línia concatenant-hi extensions o truncant-ne les extensions.
* Els LV es poden moure entre PV.
* Creació d'instantànies de només lectura de volums lògics (LVM1), aprofitant una funció de còpia en escriptura (CoW) o instantànies de lectura/escriptura (LVM2)
* Els VG es poden dividir o fusionar in situ sempre que no hi hagi cap LV que abasti la divisió. Això pot ser útil en migrar LV sencers cap a o des de l'emmagatzematge fora de línia.
* Els objectes LVM es poden etiquetar per comoditat administrativa.
* Els VG i els LV es poden activar a mesura que els dispositius subjacents estiguin disponibles mitjançant l'ús del dimoni lvmetad.

### Funcionalitat avançada

* Els volums híbrids es poden crear mitjançant l'objectiu dm-cache, que permet que un o més dispositius d'emmagatzematge ràpid, com ara els SSD basats en flash, actuïn com a memòria cau per a una o més unitats de disc dur més lentes.
* Els LV de subprovisionament es poden assignar des d'un grup.
* A les versions més noves de device mapper, LVM s'integra amb la resta de device mapper prou com per ignorar els camins individuals que donen suport a un dispositiu dm-multipath si devices/multipath_component_detection=1 està establert a lvm.conf. Això impedeix que LVM activi volums en una ruta individual en lloc del dispositiu de múltiples rutes.

### RAID

* Es poden crear LV per incloure la funcionalitat RAID, incloent RAID 1, 5 i 6.
* Els LV sencers o les seves parts es poden agrupar en diversos PV, de manera similar al RAID 0.
* UN RAID 1 dispositiu de fons (un PV) es pot configurar com a "escriptura majoritàriament", de manera que s'eviten lectures a aquests dispositius tret que sigui necessari.
* La taxa de recuperació es pot limitar mitjançant lvchange --raidmaxrecoveryrate i lvchange --raidminrecoveryrate per mantenir un rendiment d'E/S acceptable mentre es reconstrueix un LV que inclogui la funcionalitat RAID.

## Implementació

Normalment, el primer megabyte de cada volum físic conté una estructura codificada principalment ASCII anomenada "capçalera LVM" o "capçalera LVM". Originalment, el capçal LVM s'escrivia en el primer i l'últim megabyte de cada PV per a la redundància (en cas de fallada parcial del maquinari); tanmateix, això es va canviar més tard a només el primer megabyte. La capçalera de cada PV és una còpia completa de la disposició de tot el grup de volums, inclosos els UUID de tots els altres PV i de LV, i el mapa d'assignació de PE a LE. Això simplifica la recuperació de dades si es perd un PV.
A la sèrie 2.6 del nucli de Linux, el LVM s'implementa en termes del mapeador de dispositius, un esquema senzill a nivell de bloc per crear dispositius de blocs virtuals i mapejar el seu contingut a altres dispositius de blocs. Això minimitza la quantitat de codi del nucli relativament difícil de depurar necessària per implementar el LVM. També permet que els seus serveis de redirecció d'E/S es comparteixin amb altres gestors de volums (com ara EVMS). Qualsevol codi específic de LVM s'envia a les seves eines d'espai d'usuari, que només manipulen aquests mapes i reconstrueixen el seu estat a partir de les metadades del disc en cada invocació.

## Referències

* ↑ «7.1.2 LVM Configuration with YaST» (en anglès). SUSE, 12-07-2011. Arxivat de l'original el 25 July 2015. [Consulta: 22 maig 2015].
* ↑ «HowTo: Set up Ubuntu Desktop with LVM Partitions» (en anglès). Ubuntu, 01-06-2014. Arxivat de l'original el 4 March 2016. [Consulta: 22 maig 2015].
* ↑ «9.15.4 Create LVM Logical Volume» (en anglès). Red Hat, 08-10-2014. [Consulta: 22 maig 2015].
* ↑ «Linux Logical Volume Manager (LVM) tutorial» (en anglès). [Consulta: 29 desembre 2023].