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
La configuración de LVM se realiza en diferentes niveles:
 * 1) La gestión de LV, PV y VG a través de las utilidades de gestión
 * 2) El ajuste fino del subsistema LVM a través del fichero de configuración
 * 3) La gestión del servicio al nivel de distribución
 * 4) La configuración a través de un sistema de ficheros RAM inicial

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, genkernel-next y dracut:


 * genkernel puede iniciar desde cualquier tipo excepto volúmenes delgados (ya que ni construye ni copia los binarios de thin-provisioning-tools del equipo de construcción) y quizá desde RAID10 (El soporte de RAID10 requiere LVM2 2.02.98, pero genkernel construye la versión 2.02.89. Sin embargo, si se dispone de binarios estáticos, éstos se puede copiar)
 * genkernel-next puede iniciar desde todos los tipos de volúmenes, pero necesita un nuevo app-misc/pax-utils o, de lo contrario, los binarios para volúmenes delgados estarán rotos (Mirar la incidencia )
 * dracut debería poder iniciar desde todos los tipos, pero únicamente incluye soporte para volúmenes delgados en el initramfs si el equipo en el que corre tiene un volumen raíz delgado.

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:

Para obtener una lista completa de opciones de dracut, por favor, lea la sección en el Manual de Dracut.

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).

Por ejemplo, para definir el tipo usando  para una partición en :

En, cree particiones usando la tecla n y a continuación cambie el tipo de partición con la tecla t a 8e.

Crear PV
Puede crear o inicializar los volúmenes físico con la orden.

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

Listar PV
Con la orden  se puede obtener información de todos los volúmenes físicos activos del sistema.

Si se necesitan mostrar más volúmenes físicos,  puede detectar volúmenes físicos inactivos y activarlos.

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.

Si se necesita eliminar un volumen físico de un grupo de volumen, se necesita en primer lugar mover los datos de ese volumen físico. Con la orden, todos los datos de un volumen físico se mueven a otros volúmenes físicos dentro del mismo grupo de volumen.

Esta operación puede llevar tiempo dependiendo de la cantidad de datos que se van a mover. Una vez haya terminado, no debería haber datos en el dispositivo. Puede comprobar con  que ningún volumen lógico utiliza ese volumen físico.

El siguiente paso es eliminar el volumen físico del grupo de volumen mediante  después de lo cual el dispositivo se puede "deseleccionar" como un volumen físico usando  :

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
Para listar todos los grupos de volumen activos, utilice la orden :

Si falta algún grupo de volumen, utilice la orden  para localizarlo:

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
Si se necesita eliminar volúmenes físicos de un grupo de volumen, todos los datos que todavía se utilizan en ese volumen físicos se deben mover a otros dentro del mismo grupo de volumen. Como hemos visto antes, esto se gestiona con la orden  después de la cual el volumen físico se puede eliminar del grupo de volumen usando  :

Eliminar VG
Si ya no se necesita un grupo de volumen (o en otras palabras la reserva de recursos de almacenamiento que éste representa ya no se necesita y se necesita liberar los volúmenes físicos dentro de él para otras cuestiones) entonces se puede eliminar el grupo de volumen con. Esto solo funciona si no no se han definido volúmenes lógicos dentro del grupo de volumen y se han eliminado todos los volúmenes físicos de la reserva salvo uno.

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
Para crear un volumen lógico se utiliza la orden. Los parámetros de esta orden son: el tamaño deseado para el volumen lógico (que no puede ser mayor que la cantidad disponible en el grupo de volumen), el grupo de volumen del cual se obtendrá el espacio y el nombre del volumen lógico que se va a crear.

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:

Es posible indicarle a  que use todo el espacio disponible en el grupo de volumen. Esto se realiza mediante el parámetro -l el cual selecciona el número de extents (extensiones) en lugar de un tamaño (legible por los humanos). Los volúmenes lógicos se dividen en extensiones lógicas que son trozos de datos dentro de un grupo de volumen. Todas la extensiones dentro de un grupo de volumen tienen el mismo tamaño. Con el párametro -l se puede pedir a  que use todas las extensiones disponibles:

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

Listar LV
Para listar todos los volúmenes lógicos, utilice la orden :

Si echa de menos algún volumen lógico, entonces la orden  se puede utiliza para escanear los grupos de volumen en busca de otros volúmenes lógicos.

Extender LV
Cuando se necesita expandir un volumen lógico, entonces se puede utilizar la orden  para ampliar el espacio asociado al volumen lógico.

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.

Por ejemplo, se puede definir un volumen lógico a solo lectura mediante la orden :

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 o 2MiB, el que sea mayor. El administrador puede seleccionar también un tamaño diferente para los metadatos.

Para crear una reserva delgada, añada los parámetros --type thin-pool --thinpool thin_pool a la orden :

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).

Para asignar explícitamente un tamaño para los metadatos, utilice el parámetro --metadatasize.

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
Un volumen lógico delgado es un volumen lógico dentro de una reserva delgada (que a su vez es otro volumen lógico). Debido a que los volúmenes lógicos delgados están desperdigados, se especifica un tamaño virtual en lugar de uno físico usando el parámetro -V:

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
Las reservas delgadas y los volúmenes lógicos delgados son tipos espaciales de volúmenes lógicos y así se muestran con la orden. La orden  también detecta este tipo de volúmenes lógicos.

Extender una reserva delgada
La reserva delgada se expande igual que un volumen lógico que no es delgado, esto es, mediante. Por ejemplo:

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

Observe que la orden  utiliza la opción -L (o -l si se indica un número de extensiones) y no una opción que indique un "tamaño virtual" tal y como se utilizó en el momento de su creación.

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:

Observe que la orden  utiliza la opción -L (o -l si se indica un número de extensiones) y no una opción que indique un "tamaño virtual" tal y como se utilizó en el momento de su creación.

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

Cuando una reserva delgada ya no ofrece servicio a ningún volumen lógico delgado, ésta se puede eliminar mediante la orden :

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
Un volumen lógico tipo instantánea se crea utilizando la opción -s de. A los volúmenes lógicos tipo instantánea se les asigna espacio de almacenamiento para que LVM "registre" todos los cambios realizados en el volumen lógico original y almacene estos cambios en el espacio de almacenamiento reservado para la instantánea. Cuando se consulta el estado de la instantánea, LVM comenzará en el volumen lógico original y comprobará todos los cambios registrados "deshaciendo" lso cambios antes de mostrar el resultado al usuario.

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
Para crear una instantánea delgada, se utiliza la orden  con la opción. No se necesita pasar declaraciones de tamaño:

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:

Esto puede tomar un par de minutos dependiendo del tamaño del volumen.

Deshacer cambios en instantáneas delgadas
Para instantáneas delgadas,  no funciona. En su lugar, elimine el volumen lógico original y renombre la instantánea:

Diferentes métodos de asignación de espacio de almacenamiento
LVM ofrece soporte para varios métodos de asignación de espacio de almacenamiento:
 * Volúmenes lineales (que es el que se aplica por defecto)
 * Volúmenes en espejo (en una configuración más o menos activa/en línea)
 * Volúmenes seccionados (RAID0)
 * Volúmenes en espejo (RAID1, que es más una configuración activa/activa)
 * Volúmenes seccionados con paridad (RAID4 y RAID5)
 * Volúmenes seccionados con doble paridada (RAID6)
 * Volúmenes seccionados y en espejo (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.

Para crear un volumen lógico con un espejo sencillo, pase el argumento -m 1 (para seleccionar un espejo estándar) y opicionalmente  --mirrorlog para seleccionar una tipo particular de registro:

La opción -m 1 le indica a LVM que cree un espejo (adicional) por lo que se requieren dos volúmenes físicos. La opción --nosync es una optimización, sin ella LVM intentará sincronizar el espejo copiando sectores vacíos de un volumen lógico al otro.

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

La opción -b hace la conversión en segundo plano por lo que esto puede llevar cierto tiempo.

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.

Para recuperar el espejo, se debe eliminar el volumen físico del grupo de volumen y se necesita añadir un volumen físico de reemplazo (o si el grupo de volumen tiene un volumen físico disponible, se puede crear en él). A continuación se puede recrear el espejo con lvconvert y en este punto se puede eliminar el volumen físico antiguo del grupo de volumen:

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
No es posible (aún) crear una reserva delgada o un volumen delgado en espejo. Es posible si se crea en primer lugar un volumen lógico en espejo normal y a continuación convertir el volumen lógico en una reserva delgada con lvconvert. Se necesitan dos volúmenes lógicos: uno para la reserva delgada y otro para los metadatos delgados. El proceso de conversión los mezclará en un único volumen lógico.

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 RAID 0 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:

La opción -i indica sobre cuántos volúmenes físicos se realizará el seccionado.

Es posible reflejar un conjunto seccionado. Las opciones -i y -m se pueden combinar para crear un espejo seccionado:

Esto crea un conjunto seccionado de dos volúmenes lógicos y hace el espejo en dos volúmenes físicos diferentes obteniendo así un total de cuatro volúmenes físicos. Un conjunto seccionado ya existente se puede reflejar con la orden lvconvert.

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).

Mirroring (RAID1)
Unlike RAID0, which is striping, RAID1 is mirroring, but implemented differently than the original LVM mirror. Under RAID1, reads are spread out across physical volumes, improving performance. RAID1 mirror failures do not cause I/O to block because LVM does not need to break it on write.

Cualquier lugar en el que se pueda utilizar un espejo LVM, se puede utilizar un espejo RAID 1 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 RAID 1:

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 breaking 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, and the old physical volume can be removed from the volume group:

Thin RAID1
No es posible (aún) crear una reserva delgada o un volumen delgado RAID 1. Es posible crear una reserva delgada RAID 1 creando en primer lugar un volumen lógico en espejo y a continuación convertirlo en una reserva delgada con lvconvert. Se necesitan dos volúmenes lógicos: una para la reserva delgada y otro para los metadatos delgados. El proceso de conversión los mezclará en un único volumen lógico.

Striping with parity (RAID4 and RAID5)
RAID0 is not fault-tolerant - if any of the physical volumes fail then the logical volume is unusable. By adding a parity stripe to RAID0 the logical volume can still function if a physical volume is missing. A new physical volume can then be added to restore fault tolerance.

Stripsets with parity come in 2 flavors: RAID4 and RAID5. Under RAID4, all the parity stripes are stored on the same physical volume. This can become a bottleneck because all writes hit that physical volume, and it gets worse the more physical volumes are in the array. With RAID5, the parity data is distributed evenly across the physical volumes so none of them become a bottleneck. For that reason, RAID4 is rare and is considered obsolete/historical. In practice, all stripesets with parity are RAID5.

Only the data physical volumes are specified with -i, LVM adds one to it automatically for the parity. So for a 3 physical volume RAID5, -i 2 is passed on and not -i 3.

When a physical volume fails, then the volume group will need to be brought up in degraded mode:

The volume will work normally at this point, however this degrades the array to RAID0 until a replacement physical volume is added. Performance is unlikely to be affected while the array is degraded - although it does need to recompute its missing data via parity, it only requires simple XOR for the parity block with the remaining data. The overhead is negligible compared to the disk I/O.

To repair the RAID5:

It is possible to replace a still working physical volume in RAID5 as well:

The same restrictions of stripe sets apply to stripe sets with parity as well: it is not possible to enable striping with parity on an existing volume, nor reshape the stripes with parity across more/less physical volumes, nor to convert to a different RAID level/linear volume. A stripe set with parity can be mirrored. It is possible to extend a stripe set with parity across additional physical volumes, but they must be added in multiples of the original stripe set with parity (which will effectively linearly append a new stripe set with parity).

Thin RAID5 logical volumes
No es posible (aún) crear reservas delgadas o volúmenes delgados que sean conjuntos con paridad (RAID5). Es posible crear una reserva delgada RAID5 creando en primer lugar un volumen lógico RAID5 normal y a continuación convertirlo en una reserva delgada con lvconvert. Se necesitan dos volúmenes lógicos: una para la reserva delgada y otro para los metadatos delgados. El proceso de conversión los mezclará en un único volumen lógico.

Striping with double parity (RAID6)
RAID6 is similar to RAID5, however RAID6 can survive up to two physical volume failures, thus offering more fault tolerance than RAID5 at the expense of extra physical volumes.

Like raid5, the -i 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 -i 3 and not -i 5.

Recovery for RAID6 is the same as RAID5.

Thin RAID6 logical volumes
No es posible (aún) crear una reserva delgada o un volumen delgado RAID6. Es posible crear una reserva delgada RAID6 creando en primer lugar un volumen lógico RAID6 y a continuación convertirlo en una reserva delgada con lvconvert</tt>. Se necesitan dos volúmenes lógicos: una para la reserva delgada y otro para los metadatos delgados. El proceso de conversión los mezclará en un único volumen lógico.

LVM RAID10
RAID10 is a combination of RAID0 and RAID1. It is more powerful than RAID0+RAID1 as the mirroring is done at the stripe level instead of the logical volume level, and therefore the layout doesn't need to be symmetric. A RAID10 volume can tolerate at least a single missing physical volume, and possibly more.

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

Thin RAID10
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. 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.

Experimenting with LVM
It is possible to experiment with LVM without using real storage devices. To accomplish this, loopback devices are created.

First make sure to have the loopback module loaded.

Next configure LVM to not use udev to scan for devices:

Create some image files which will become the storage devices. The next example uses five files for a total of about ~10GB of real hard drive space:

Check which loopback devices are available:

Assuming all loopback devices are available, next create the devices:

The devices are now available to use as any other hard drive in the system (and thus be perfect for physical volumes).

Troubleshooting
LVM has a few features that already provide some level of redundancy. However, there are situations where it is possible to restore lost physical volumes or logical volumes.

vgcfgrestore utility
By default, on any change to a LVM physical volume, volume group, or logical volume, LVM2 create a backup file of the metadata in. These files can be used to recover from an accidental change (like deleting the wrong logical volume). LVM also keeps a backup copy of the most recent metadata in. These can be used to restore metadata to a replacement disk, or repair corrupted metadata.

To see what states of the volume group are available to be restored (partial output to improve readability):

Recovering an accidentally deleted logical volume
Assuming the logical volume lvm_raid1 was accidentally removed from volume group vg0, it is possible to recover it as follows:

Replacing a failed physical volume
It possible to do a true "replace" and recreate the metadata on the new physical volume to be the same as the old physical volume:

The important line here is the UUID "unknown device".

This recreates the physical volume metadata, but not the missing logical volume or volume group data on the physical volume.

This now reconstructs all the missing metadata on the physical volume, including the logical volume and volume group data. However it doesn't restore the data, so the mirror is out of sync.

This will resync the mirror. This works with RAID 4,5 and 6 as well.

Deactivating a logical volume
It is possible to deactivate a logical volume with the following command:

It is not possible to mount the logical volume anywhere before it gets reactivated:

Recursos externos

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