LVM/es

LVM (Logical Volume Manager) permite a los administradores crear metadispositivos que ofrecen una capa de abstracción entre un sistema de ficheros y el almacenamiento físico que se utiliza por debajo. Los metadispositivos (en los cuales se alojan los sistemas de ficheros) son volúmenes lógicos que utilizan almacenamiento que se obtiene de espacios de almacenamiento llamados grupos de volumen. Un grupo de volumen se abastece con uno o más volúmenes físicos que son los auténticos dispositivos en los que se almacenan los datos.

Los volúmenes físicos pueden ser particiones, discos SATA completos agrupados como JBOD (Just a Bunch Of Disks o Simplemente un puñado de discos), sistemas RAID, iSCSI, Fibre Channel, eSATA etc.

Instalación
LVM se gestiona por los controladores al nivel de núcleo y por aplicaciones en el espacio de usuario que permiten gestionar la configuración de LVM.

Núcleo
Activar las siguientes opciones del núcleo:

Software
Instalar :

Configuración
Configuring LVM is done on several levels:
 * LV, PV and VG management through the management utilities;
 * 1) LVM subsystem fine-tuning through the configuration file;
 * 2) Service management at the distribution level;
 * 3) Setup through an initial ram file system (initramfs).

La gestión de los volúmenes físicos y lógicos así como de los grupos de volumen se gestiona en el capítulo Utilización.

Fichero de configuración de LVM
LVM posee un fichero de configuración muy extenso en. La mayoría de usuarios no necesitan modificar ningún aspecto de este fichero para comenzar a usar LVM.

Gestión de servicios
Gentoo ofrece el servicio LVM para detectar automáticamente los grupos de volumen y los volúmenes lógicos.

Se puede gestionar este servicio a través del sistema de inico.

openrc
Para iniciar LVM manualmente:

Para iniciar LVM cuando arranque el sistema:

systemd
Para iniciar LVM manualmente:

Para iniciar LVM cuando arranque el sistema:

Usar LVM en un initramfs
La mayoría de los cargadores de arranque no pueden iniciar directamente desde LVM. Ni GRUB Legacy ni LILO pueden hacerlo. Grub 2 PUEDE iniciar desde un volumen lógico LVM lineal, desde un volumen lógico en espejo y probablemente desde algunos tipos de volúmenes lógicos RAID. Ningún cargador de arranque ofrece soporte actualmente para volúmenes lógicos delgados (thin).

Debido a esto, se recomienda utilizar una partición de arranque que no sea LVM y montar la partición raíz LVM desde un initramfs. Se puede generar este initramfs de forma automática mediante genkernel, y dracut:


 * genkernel can boot from all types except thin volumes (as it neither builds nor copies the binaries from the build host) and maybe RAID10 (RAID10 support requires LVM2 2.02.98, but genkernel builds 2.02.89, however if static binaries are available it can copy those);
 * genkernel-next can boot from all types volumes, but needs a new enough or the resulting thin binaries will be broken (See );
 * dracut should boot all types, but only includes thin support in the initramfs if the host being run on has a thin root.

Genkernel/Genkernel-next
Haga emerge de o de. El ajuste USE static también se puede activar en el paquete de modo que genkernel utilice los binarios del sistema (de lo contrario construirá su propia copia privada). El siguiente ejemplo construirá únicamente un initramfs (no el núcleo completo) y habilitará el soporte para LVM.

La página del manual de genkernel describe otras opciones que dependen de los requisitos del sistema.

El initrd requerirá parámetros para indicarle cómo iniciar LVM. Éstos se pasan igual que el resto de parámetros del núcleo. Por ejemplo:

Dracut
El paquete se portó desde el proyecto RedHat y es una herramienta similar para generar un initramfs. Ya que actualmente Since it is currently se encuentra en pruebas (~arch), los usuarios necesitarán aceptar este hecho (a través de ) para poder hacer emerge. Antes de hacerlo, se debería añadir la variable  a. Puede que se quieran instalar otros módulos, por favor, eche un vistazo a Dracut. Normalmente la siguiente orden genera un initramfs funcional por defecto.

El initrd requerirá parámetros para indicarle cómo iniciar lvm. Éstos se pasan igual que el resto de parámetros del núcleo. Por ejemplo:

For a comprehensive list of LVM options within dracut please see the section in the Dracut Manual.

Utilización
LVM organiza el almacenamiento en tres niveles diferentes como se muestra a continuación:
 * Los discos duros, particiones, sistemas RAID y otros modos de almacenamiento se inicializan como volúmenes físicos (PVs)
 * Los Volúmenes Físicos (PV) se agrupan en Grupos de Volumen (VG)
 * Los Volúmenes Lógicos (LV) se gestionan en los Grupos de Volumen (VG)

PV (Volumen Físico)
Los Volúmenes Físicos son el hardware o el sistema de almacenamiento sobre el que se construye LVM.

Particionamiento
El tipo de partición para LVM es 8e (Linux LVM).

For instance, to set the type through fdisk for a partition on :

In fdisk, create partitions using the key and then change the partition type with the  key to 8e.

Crear PV
Physical volumes can be created / initialized with the pvcreate command.

Por ejemplo, la siguiente orden crea un volumen físico en la primera partición primar de los discos y :

Listar PV
With the pvdisplay command, an overview of all active physical volumes on the system can be obtained.

If more physical volumes should be displayed, then pvscan</tt> can detect inactive physical volumes and activate those.

Eliminar PV
LVM distribuye los datos automáticamente entre todos los volúmenes físicos disponibles (a menos que se le indique lo contrario) usando un enfoque lineal. Si un volumen lógico (dentro de un grupo de volumen) es menor que la cantidad total de espacio libre en un volumen físico, entonces todo el espacio se reclama de ese (único) volumen físico de una forma continua. Esto se hace así por cuestiones de rendimiento.

If a physical volume needs to be removed from a volume group, the data first needs to be moved away from the physical volume. With the pvmove</tt> command, all data on a physical volume is moved to other physical volumes within the same volume group.

Such an operation can take a while depending on the amount of data that needs to be moved. Once finished, there should be no data left on the device. Verify with pvdisplay that the physical volume is no longer used by any logical volume.

The next step is to remove the physical volume from the volume group using vgreduce</tt> after which the device can be "deselected" as a physical volume using pvremove:

VG (Grupo de Volumen)
Un grupo de volumen (VG) agrupa varios volúmenes físicos y se muestra como el el sistema de ficheros de los dispositivos. El administrador es el que elige el nombre del grupo de volumen.

Crear VG
La siguiente orden crea un grupo de volumen llamado vg0 con dos volúmenes físicos asignados: y.

Listar VG
To list all active volume groups, use the vgdisplay</tt> command:

If volume groups are missing, use the vgscan</tt> command to locate volume groups:

Extender VG
Los grupos de volumen agrupan volúmenes físicos, permitiendo a los administradores utilizar una reserva de recursos de almacenamiento para crear sistemas de ficheros. Cuando un grupo de volumen no tiene los suficientes recursos de almacenamiento, es necesario extenderlo con volúmenes físicos adicionales.

El siguiente ejemplo extiende el grupo de volumen vg0 con un volumen físico en :

¡Recuerde antes necesita inicializar el volumen físico!

Reducir VG
If physical volumes need to be removed from the volume group, all data still in use on the physical volume needs to be moved to other physical volumes in the volume group. As seen before, this is handled through the pvmove</tt> command, after which the physical volume can be removed from the volume group using vgreduce:

Eliminar VG
If a volume group is no longer necessary (or, in other words, the storage pool that it represents is no longer used and the physical volumes in it need to be freed for other purposes) then the volume group can be removed with vgremove. This only works if no logical volume is defined for the volume group, and all but one physical volume have already been removed from the pool.

LV (Volumen Lógico)
Los volúmenes lógicos son los metadispositivos finales que se ofrecen al sistema normalmente para crear sistemas de ficheros en ellos. Se crean y se gestionan dentro de grupos de volumen y se muestran como. Al igual que con los grupos de volumen el nombre lo decide el administrador.

Crear LV
To create a logical volume, the lvcreate</tt> command is used. The parameters to the command consist out of the requested size for the logical volume (which cannot be larger than the amount of free space in the volume group), the volume group from which the space is to be claimed and the name of the logical volume to be created.

En el ejemplo de abajo, se crea un volumen lógico llamado lvol1 en el grupo de volumen llamado vg0 con un tamaño de 150MB:

It is possible to tell lvcreate</tt> to use all free space inside a volume group. This is done through the  option which selects the amount of extents rather than a (human readable) size. Logical volumes are split into logical extents which are data chunks inside a volume group. All extents in a volume group have the same size. With the  option lvcreate</tt> can be asked to allocate all free extents:

A continuación de FREE se puede utilizar la clave VG para indicar el tamaño total de un grupo de volumen.

Listar LV
To list all logical volumes, use the lvdisplay</tt> command:

If logical volumes are missing, then the lvscan</tt> command can be used to scan for logical volumes on all available volume groups.

Extender LV
When a logical volume needs to be expanded, then the lvextend</tt> command can be used to grow the allocated space for the logical volume.

Por ejemplo, para extender el volumen lógico lvol1 a un total de 500 MB:

También es posible utilizar el tamaño que se necesita añadir en lugar del tamaño total:

Un grupo de volumen extendido no ofrece de forma inmediata el espacio de almacenamiento adicional a los usuarios finales. Para ello, se necesita igualmente incrementar el sistema de ficheros creado en el grupo de volumen. No todos los sistemas de ficheros admiten el cambio de tamaño cuando se están utilizando, por tanto compruebe la documentación del sistema de ficheros en cuestión para obtener más información.

Por ejemplo, para cambiar el tamaño de un sistema de ficheros ext4 a 500MB:

Reducir LV
Si se necesita reducir el tamaño de un volumen lógico, en primer lugar se debe reducir el propio sistema de ficheros. No todos los sistemas de ficheros lo permiten cuando se están utilizando.

Por ejemplo, ext4 no permite reducir el tamaño cuando se está utilizando por lo que se debe desmontar en primer lugar. También se recomienda realizar una comprobación del sistema de ficheros para asegurarse de que no hay inconsistencias:

Con un sistema de ficheros reducido ya es posible reducir también el volumen lógico:

Permisos LV
LVM ofrece soporte para estados de permisos en los volúmenes lógicos.

For instance, a logical volume can be set to read only using the lvchange</tt> command:

La opción para remontar el sistema de fichero se necesita ya que el cambio no se fuerza de forma inmediata.

Para marcar el volumen lógico como escribible, utilice el bit de permisos rw:

Eliminar LV
Antes de eliminar un volumen lógico, asegúrese de que no está montado:

Desactive el volumen lógico de modo que no se pueda realizar ninguna actividad de escritura:

Una vez que el volumen está desmontado y desactivado, se puede eliminar, liberando las extensiones asignadas a éste para que otros volúmenes lógicos del grupo de volumen las puedan utilizar:

Características
LVM ofrece algunas características interesantes para los administradores del almacenamiento, incluyendo (pero no limitadas a):
 * Provisión delgada (almacenamiento "over-commiting")
 * Soporte a instantáneas
 * Tipos de volumen con distintos métodos de asignación de espacio de almacenamiento

Provisión delgada
Las versiones recientes de LVM2 (2.02.89) ofrecen soporte a volúmenes "delgados" (thin). Los volúmenes delgados son a los dispositivos de bloque lo que los ficheros desperdigados son a los sistemas de ficheros. Así, un volumen lógico delgado dentro de una reserva se puede sobreasignar (over-committed): el tamaño que muestra puede ser mayor que el presente en al propia reserva. Al igual que un fichero, las extensiones se asignan mientras el dispositivo se va llenando. Si el sistema de ficheros tiene soporte para descartes, las extensiones se liberan de nuevo cuando los ficheros se eliminan, reduciendo el uso del espacio en la reserva.

Dentro de LVM, esta reserva delgada es un tipo especial de volumen lógico que puede contener a su vez otros volúmenes lógicos.

Crear una reserva delgada
Cada reserva delgada tiene unos metadatos asociados que se añaden al tamaño de la reserva. LVM calculará el tamaño de los metadatos basándose en el tamaño de la reserva y como mínimo asignará pool_chunks * 64 bytes</tt> o 2MiB, el que sea mayor. El administrador puede seleccionar también un tamaño diferente para los metadatos.

To create a thin pool, add the  options to lvcreate</tt>:

El ejemplo de arriba crea una reserva delgada llamado thin_pool con un tamaño total de 150 MB. Este es el tamaño real asignado a la reserva delgada (y de este modo la cantidad total de espacio de almacenamiento se puede utilizar).

To explicitly ask for a certain metadata size, use the  option:

Debido a los metadatos añadidos a la reserva delgada, la forma intuitiva de utilizar todo el espacio disponible en un grupo de volumen para un volumen lógico no funciona (vea la incidencia sobre LVM |812726):

Observe que la reserva delgada no tiene un nodo de dispositivo asociado como otros volúmenes lógicos.

Crear un volumen lógico delgado
A thin logical volume is a logical volume inside the thin pool (which itself is a logical volume). As thin logical volumes are sparse, a virtual size instead of a physical size is specified using the  option:

En este ejemplo, el volumen lógico (delgado) lvol1 se muestra como un dispositivo de 300MB de tamaño aunque la reserva que lo sustenta solo dispone de 150MB de espacio de almacenamiento real.

También es posible crear la reserva delgada y el volumen lógico dentro de la reserva en una sola orden:

Listar las reservas delgadas y los volúmenes lógicos delgados
Thin pools and thin logical volumes are special types of logical volumes, and as such as displayed through the lvdisplay</tt> command. The <tt>lvscan</tt> command will also detect these logical volumes.

Extender una reserva delgada
The thin pool is expanded like a non-thin logical volume using <tt>lvextend</tt>. For instance:

Extender un volumen lógico delgado
Los volúmenes lógicos delgados se expanden igual que los normales:

Note that the <tt>lvextend</tt> command uses the  option (or   if extent counts are used) and not a "virtual size" option as was used during the creation.

Reducir una reserva delgada
Actualmente LVM no puede reducir el tamaño de la reserva delgada. Mire la incidencia LVM |812731.

Reducir un volumen lógico delgado
Los volúmenes lógicos delgados se reducen de forma similar a los volúmenes lógicos normales:

Por ejemplo:

Note that the <tt>lvreduce</tt> command uses the  option (or   if extent counts are used) and not a "virtual size" option as was used during the creation.

Eliminar reservas delgadas
Las reservas delgadas no se pueden eliminar hasta que todos los volúmenes lógicos delgados contenidos en ellas se eliminen.

When a thin pool no longer services any thin logical volume, it can be removed through the <tt>lvremove</tt> command:

Instantáneas LVM2 e instantáneas delgadas
Una instantánea es un volumen lógico que actúa como una copia de otro volumen lógico. Muestra el estado del volumen lógico original en el momento de creación de la instantánea.

Crear un volumen lógico tipo instantánea
A snapshot logical volume is created using the  option to <tt>lvcreate</tt>. Snapshot logical volumes are still given allocated storage as LVM "registers" all changes made to the original logical volume and stores these changes in the allocated storage for the snapshot. When querying the snapshot state, LVM will start from the original logical volume and then check all changes registered, "undoing" the changes before showing the result to the user.

Por lo tanto un volumen lógico tipo instantánea "crece" al mismo ritmo que se realizan cambios en el volumen lógico original. Cuando se utiliza completamente el espacio de almacenamiento reservado a la instantánea, entonces ésta se elimina automáticamente del sistema.

El ejemplo de arriba crea un volumen lógico tipo instantánea llamado 20140412_lvol1 y basado en el volumen lógico lvol1 en el grupo de volumen vg0. Utiliza un 10% del espacio (de hecho son extensiones) asignado al grupo de volumen.

Acceder un volumen lógico tipo instantánea
Los volúmenes lógicos tipo instantánea se pueden montar de forma similar a los volúmenes lógicos normales. Incluso no están restringidos a operaciones de solo lectura. Es posible modificar instantáneas y de este modo usarlas para probar cambios antes de hacerlos en sistemas de ficheros de "producción".

Mientras existan volúmenes lógicos tipo instantánea, los volúmenes lógicos originales y normales no se pueden reducir en tamaño ni eliminar.

Instantáneas delgadas LVM
To create a thin snapshot, the <tt>lvcreate</tt> command is used with the  option. No size declaration needs to be passed on:

Las instantáneas de volúmenes lógicos delgados tienen el mismo tamaño que sus volúmenes lógicos originales y utilizan una asignación física de cero al igual que otros volúmenes lógicos delgados.

También es posible tomar instantáneas de instantáneas:

Las instantáneas delgadas tiene varias ventajas sobre las instantáneas normales. En primer lugar, las instantáneas delgadas son independientes de su volumen lógico original una vez se han creado. Se puede eliminar o reducir el tamaño del volumen lógico original sin que esto afecte a la instantánea. En segundo lugar, se pueden crear instantáneas delgadas de forma recursiva eficientemente (instantáneas de instantáneas) sin "encadenar" sobrecarga de instantáneas normales recursivas de LVM.

Deshacer cambios a un estado de instantánea
Para deshacer los cambios de un volumen lógico a la versión de la instantánea, lance la siguiente orden:

This might take a couple of minutes, depending on the size of the volume. Please note that the rollback will only happen once the parent logical volume is offline. Hence a reboot might be required.

Deshacer cambios en instantáneas delgadas
For thin volumes, <tt>lvconvert --merge</tt> does not work. Instead, delete the original logical volume and rename the snapshot:

Diferentes métodos de asignación de espacio de almacenamiento
LVM supports different allocation methods for storage:
 * Linear volumes (which is the default);
 * Mirrored volumes (in a more-or-less active/standby setup);
 * Striping (RAID0);
 * Mirrored volumes (RAID1 - which is more an active/active setup);
 * Striping with parity (RAID4 and RAID5);
 * Striping with double parity (RAID6);
 * Striping and mirroring (RAID10).

Volúmenes lineales
Los volúmenes lineales son los más comunes de los volúmenes LVM. LVM intentará asignar el espacio para el volumen lógico para que físicamente sea lo más contiguo posible. Si hay un volumen lógico lo suficientemente grande para contener todo el volumen físico, entonces LVM lo asignará a ese espacio, de lo contrario lo troceará en el menor número de partes posible.

Las órdenes descritas anteriormente para crear grupos de volúmenes y volúmenes lógicos crean volúmenes lineales.

Debido a que los volúmenes lineales no precisan requisitos espaciales, son los más fáciles de manipular y se les puede cambiar el tamaño y relocalizarlos según se desee. SI un volumen lógico se asigna en varios volúmenes físicos y alguno de estos volúmenes físicos falla y no está disponible, entonces el volumen lógico no se podrá arrancar y no será utilizable.

Volúmenes en espejo
LVM ofrece soporte para volúmenes en espejo, los cuales ofrecen tolerancia ante fallos en caso de que un disco deje de funcionar. Al contrario que RAID1, no se obtiene ningún beneficio en el rendimiento. Todas las lecturas y escrituras se envían a un solo lado del espejo.

Para supervisar el estado del espejo, LVM necesita guardar un registro. Se recomienda (y en algunos casos es obligatorio) colocar este registro en un volumen físico que no contenga a ninguno de los volúmenes lógicos en espejo. Hay tres tipos de registros que se pueden utilizar para los espejos:


 * 1) Disk es el tipo de registro por defecto. Todos los cambios se registran en unas extensiones de metadatos extra que gestiona LVM. Si falla un dispositivo entondes los cambios se guardan en el registro hasta que se pueda restaurar el espejo.
 * 2) Mirror son registro disk que se mantienen en espejo.
 * 3) Core espejo registra el estado del espejo únicamente en memoria. LVM tendrá que reconstruir el espejo cada vez que se active. Este tipo es muy útil para espejos temporales.

To create a logical volume with a single mirror, pass the -m 1 argument (to select standard mirroring) with optionally  to select a particular log type:

The -m 1 tells LVM to create one (additional) mirror, so requiring 2 physical volumes. The  option is an optimization - without it LVM will try synchronize the mirror by copying empty sectors from one logical volume to another.

Es posible crear un espejo de un volumen lógico ya existente:

The  option does the conversion in the background as this can take quite a while.

Para eliminar un espejo, defina el número de espejos (de nuevo) a cero:

Si alguna parte del espejo no está disponible (normalmente debido a que ha fallado el disco que contiene el volumen físico), el grupo de volumen tendrá que ser activado en modo degradado:

En la primera escritura, LVM detectará que el espejo está roto. La directriz por defecto ("eliminar") es reducir o romper automáticamente el espejo en el número de partes disponibles. Un espejo de tres vías con un volumen físico no disponible se reducirá a un volumen lineal normal. Si el fallo es transitorio y el volumen físico vuelve a estar disponible después de que LVM haya roto el espejo, el volumen lógico en espejo tendrá que ser creado de nuevo sobre éste.

To recover the mirror, the failed physical volume needs to be removed from the volume group, and a replacement physical volume needs to be added (or if the volume group has a free physical volume, it can be created on that one). Then the mirror can be recreated with <tt>lvconvert</tt> at which point the old physical volume can be removed from the volume group:

Es posible hacer que LVM recree el espejo con extensiones disponibles en un volumen físico diferente si un lado falla. Para hacer esto, defina  a allocate en.

Espejos delgados
It is not (yet) possible to create a mirrored thin pool or thin volume. It is possible to create a mirrored thin pool by creating a normal mirrored logical volume and then converting the logical volume to a thin pool with <tt>lvconvert</tt>. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

Seccionado (RAID0)
En lugar de un volumen lineal en el que múltiples volúmenes físicos contiguos se añaden, es posible crear un volumen seccionado o RAID0 para mejorar el rendimiento. Esto causará que las asignaciones de espacio de almacenamiento se alternen entre los volúmenes físicos disponibles.

Para crear un volumen seccionado sobre tres volúmenes físicos:

The  option indicates over how many physical volumes the striping should be done.

It is possible to mirror a stripe set. The  and   options can be combined to create a striped mirror:

This creates a 2 physical volume stripe set and mirrors it on 2 different physical volumes, for a total of 4 physical volumes. An existing stripe set can be mirrored with <tt>lvconvert</tt>.

Una reserva delgada se puede seccionar como cualquier otro volumen lógico. Todos los volúmenes lógicos creados en la reserva heredan esos ajustes. No los especifique manualmente cuando cree un volumen delgado.

No es posible seccionar un volumen ya existente ni redimensionar las secciones entre más o menos volúmenes físico ni convertirlo a un volumen lineal o de otro nivel RAID. Un conjunto seccionado se puede reflejar. Es posible extender un conjunto seccionado sobre volúmenes físicos adicionales pero se deben añadir en múltiplos del tamaño original del conjunto seccionado (el cual añadirá de forma efectiva y lineal un nuevo conjunto seccionado).

Espejos (RAID1)
Al contrario que RAID0 que consiste en volúmenes seccionados, RAID1 los refleja, sin embargo se implementa de forma diferente a los espejos LVM originales. Bajo RAID1 las lecturas se reparten a través de los volúmenes físicos mejorando el rendimiento. Los fallos en los espejos RAID1 no causan bloqueo de E/S ya que LVM no necesita romperlo a la hora de la escritura.

Cualquier lugar en el que se pueda utilizar un espejo LVM, se puede utilizar un espejo RAID1 en su lugar. Es posible hacer que LVM cree espejos RAID1 en lugar de espejos normales definiendo mirror_segtype_default a raid1 en.

Para crear un volumen lógico con un solo espejo:

Observe la diferencia a la hora de crear un espejo: No se especifica mirrorlog debido a que los volúmenes lógicos RAID1 no tienen un registro espejo explícito, se incluyen en el volumen lógico.

Es posible convertir un volumen lógico existente a RAID1:

Para eliminar un espejo RAID 1, defina el número de espejos a cero:

Si alguna parte del RAID1 no está disponible (normalmente debido a que ha fallado el disco que contiene el volumen físico), el grupo de volumen tendrá que ser activado en modo degradado:

Unlike an LVM mirror, writing does NOT break the mirroring. If the failure is only transient, and the missing physical volume returns, LVM will resync the mirror by copying cover the out-of-date segments instead of the entire logical volume. If the failure is permanent, then the failed physical volume needs to be removed from the volume group, and a replacement physical volume needs to be added (or if the volume group has a free physical volume, it can be created on a different PV). The mirror can then be repaired with <tt>lvconvert</tt>, and the old physical volume can be removed from the volume group:

RAID1 delgado
It is not (yet) possible to create a RAID1 thin pool or thin volume. It is possible to create a RAID1 thin pool by creating a normal mirrored logical volume and then converting the logical volume to a thin pool with <tt>lvconvert</tt>. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will then merge them into a single logical volume.

Seccionado con paridad (RAID4 y RAID5)
RAID0 no es tolerante a fallos. Si cualquiera de los volúmenes físicos falla, entonces el volumen lógico es inutilizable. Al añadir una sección de paridad a RAID0 el volumen lógico puede seguir funcionando si algún volumen físico falta. Se puede añadir un nuevo volumen físico para restaurar la tolerancia a fallos.

Los conjuntos seccionados con paridad se pueden implementar de dos formas: RAID4 y RAID5. En RAID4, todas las secciones que contienen la información de paridad se almacenan en lel mismo volumen físico. Esto puede dar lugar a un cuello de botella ya que todas las escrituras afectan también a ese volumen físico. Con RAID5 los datos de paridad se distribuyen homogéneamente por todos los volúmenes físicos de modo que ninguno de ellos es un cuello de botella. Debido a esto, RAID4 no es una implementación común y se considera obsoleta y anticuada. En la práctica todos los conjuntos seccionados con paridad son RAID5.

Únicamente los volúmenes físicos de datos se especifican con la opción -i, LVM añade uno de forma automática para la paridad. Por lo tanto para un volumen RAID5 de tres volúmenes físicos, se pasa -i 2 y no -i 3.

Cuando un volumen físico falla, entonces se necesita levantar el grupo de volumen en modo degradado:

El volumen funcionará correctamente en este momento. Sin embargo esto degrada el array a RAID0 hasta que se añada un volumen físico de reemplazo. Normalmente el rendimiento no se ve afectado mientras el array está degradado aunque se necesita recalcular los datos perdidos partiendo de la paridad. Esto requiere únicamente simples operaciones XOR entre los bloques de paridad y los datos restantes. La sobrecarga no es representativa comparada con la E/S del disco.

Para reparar el RAID5:

En RAID5 también es posible reemplazar un volumen físico en funcionamiento:

Las mismas restricciones de los conjuntos seccionados se aplican a los conjuntos seccionados con paridad. No es posible habilitar seccionado con paridad en un volumen ya existente ni redimensionar las secciones con paridad a lo largo de más (o menos) volúmenes físicos, tampoco convertirlo a otro nivel RAID o volumen lineal. Se puede crear un espejo de un conjunto seccionado con paridad. Es posible extender un conjunto seccionado con paridad a lo largo de volúmenes físicos adicionales pero se deben añadir en múltiplos del conjunto seccionado con paridad original (lo cual añadirá de forma efectiva una nueva sección lineal con paridad).

Volúmenes lógicos RAID5 delgados
It is not (yet) possible to create stripe set with parity (RAID5) thin pools or thin logical volumes. It is possible to create a RAID5 thin pool by creating a normal RAID5 logical volume and then converting the logical volume into a thin pool with <tt>lvconvert</tt>. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

Seccionado con doble paridad (RAID6)
RAID6 es similar a RAID5, sin embargo RAID6 puede sobrevivir dos fallos en volúmenes físicos ofreciendo así mayor tolerancia a los fallos que RAID5 a costa de volúmenes físicos extra.

Like RAID5, the  option is used to specify the number of physical volumes to stripe, excluding the 2 physical volumes for parity. So for a 5 physical volume RAID6, pass on  and not.

La recuperación en RAID6 es la misma que en RAID5.

Volúmenes lógicos RAID6 delgados
It is not (yet) possible to create a RAID6 thin pool or thin volumes. It is possible to create a RAID6 thin pool by creating a normal RAID6 logical volume and then converting the logical volume into a thin pool with <tt>lvconvert</tt>. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

RAID10 LVM
RAID10 es una combinación de RAID0 y RAID1. Es más potente que RAID0+RAID1 ya que el reflejo se realiza al nivel de las secciones en lugar de al nivel del volumen lógico y por tanto la disposición no necesita ser simétrica. Un volumen RAID10 puede tolerar al menos un volumen físico no disponible y posiblemente más.

Both the  and   options are specified:   is the number of stripes and   is the number of mirrors. Two stripes and 1 mirror requires 4 physical volumes.

RAID10 delgado
It is not (yet) possible to create a RAID10 thin pool or thin volumes. It is possible to create a RAID10 thin pool by creating a normal RAID10 logical volume and then converting the logical volume into a thin pool with <tt>lvconvert</tt>. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

Experimentar con LVM
Es posible experimentar con LVM sin tener que utilizar dispositivos de almacenamiento reales. Para conseguir esto, se deben crear los dispositivos de bucle.

En primer lugar, asegúrese de que tiene el módulo de bucle cargado.

A continuación configure LVM para que no utilice udev para escanear dispositivos:

Cree algunos ficheros imagen que serán los dispositivos de almacenamiento. El siguiente ejemplo utiliza cinco ficheros para un total de unos 10GB de espacio real en el disco duro:

Compruebe qué dispositivos de bucle están disponibles:

Asumiendo que todos los dispositivos de bucle están disponibles, cree a continuación los dispositivos:

Los dispositivos están disponibles ahora para su uso como cualquier otro disco duro del sistema (y así es perfecto para volúmenes físicos).

Resolución de problemas
LVM tiene algunas características que ya ofrecen algún nivel de redundancia. Sin embargo, hay situaciones en las que es posible restaurar volúmenes lógicos o físicos perdidos.

Utilidad vgcfgrestore
Por defecto, ante cualquier cambio en un volumen físico, grupo de volumen o volumen lógico, LVM2 crea un fichero de copia de seguiridad de los metadatos en. Estos ficheros se pueden utilizar para la recuperación ante un cambio accidental (como el borrado de un volumen lógico por equivocación). LVM también mantiene una copia de seguridad de los metadatos más recientes en. Éstos se pueden utilizar para restaurar los metadatos en un disco de reemplazo o reparar metadatos corruptos.

Para ver qué estados de un grupo de volumen están disponibles para restauración (la salida es parcial para mejorar la legibilidad):

Recuperar un volumen lógico eliminado por accidente
Asumiendo que el volumen lógico lvm_raid1 se eliminó accidentalmente del grupo de volumen vg0, es posible recuperarlo del siguiente modo:

Reemplazar un volumen físico que ha fallado
Es posible realizar un "reemplazo" real y recrear los metadatos en el nuevo volumen físico para que sea el mismo que el volumen físico antiguo.

La línea importante aquí es el UUID "unknown device" (dispositivo desconocido).

Esto recrea los metadatos de volumen físico pero no los datos del volumen lógico o grupo de volumen que falta en el volumen físico.

Esto reconstruye todos los metadatos que faltan en el volumen físico, incluyendo el volumen lógico y los datos del grupo de volumen. Sin embargo, no restaura los datos por lo que el espejo está fuera de sincronismo.

Esto sincronizará de nuevo el espejo. Esto funciona también para RAID 4, 5 y 6.

Desactivar un volumen lógico
Es posible desactivar un volumen lógico con la siguiente orden:

No es posible montar el volumen lógico en cualquier lugar antes de reactivarlo:

Recursos externos

 * LVM2 sourceware.org
 * LVM tldp.org
 * LVM2 Wiki redhat.com