LVM (Español)

Bloques para construir LVM

Logical Volume Management (en adelante LVM, siglas en inglés) hace uso de la función device-mapper del kernel de Linux para proporcionar un sistema de particiones independientes de la estructura subyacente del disco. Con LVM es posible crear un espacio de almacenamiento abstracto así como distintas «particiones virtuales», por lo que es más fácil de agrandar/encoger particiones (siempre sujeto a posibles limitaciones de su sistema de archivos).

Las particiones virtuales permiten añadir/eliminar particiones sin tener que preocuparse acerca de si se tiene suficiente espacio contiguo en un disco concreto, ni quedar atrapado en el fdisking de un disco en uso (y preguntándose si el kernel está utilizando una tabla de particiones vieja o nueva), ni tener que mover otras particiones en el camino. Esto es un asunto que afecta estrictamente a la facilidad de gestión: LVM no proporciona ninguna seguridad.

Los bloques básicos que construyen LVM son:

Physical volume —volúmenes físicos— (en adelante PV)
Nodo de dispositivo de bloque de Unix, utilizable para almacenamiento por LVM. Ejemplos: un disco duro, una partición MBR o GPT, un archivo loopback, un dispositivo mapeador de dispositivos (por ejemplo, dm-crypt (Español)). Alberga un encabezado LVM.
Volume group —grupo de volúmenes— (en adelante VG)
Grupo de volúmenes físicos que sirve de contenedor para volúmenes lógicos. Las extensiones físicas se asignan desde un grupo de volúmenes para un volumen lógico.
Logical volume —volúmenes lógicos— (en adelante LV)
«Partición virtual/lógica» que reside en un grupo de volúmenes y está compuesta de extensiones físicas. Los volúmenes lógicos son dispositivos de bloque de Unix análogos a las particiones físicas, por ejemplo, se pueden formatear directamente con un sistema de archivos.
Physical extent —extensiones físicas— (en adelante PE)
La extensión contigua más pequeña (por defecto 4 MiB) en el volumen físico que se puede asignar a un volumen lógico. Piense en las extensiones físicas como partes de los volúmenes físicos que pueden asignarse a cualquier volúmen lógico.

Ejemplo:

 Discos físicos

  Disco1 (/dev/sda):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partición1 50 GiB (Volumen físico) |Partición2 80 GiB (Volumen físico)   |
    |/dev/sda1                          |/dev/sda2                            |
    |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  _ _ |
                                    
  Disco2 (/dev/sdb):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Partición1 120 GiB (Volumen físico)                |
    |/dev/sdb1                                          |
    | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _|
Volúmenes lógicos LVM

  Grupo de volumen1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1):
     _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    |Volumen lógico1 15 GiB  |Volumen lógico2 35 GiB      |Volumen lógico3 200 GiB              |
    |/dev/MyVolGroup/rootvol |/dev/MyVolGroup/homevol     |/dev/MyVolGroup/mediavol             |
    |_ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|

Ventajas

LVM le da más flexibilidad que la simple partición de un disco duro para:

  • Poder utilizar cualquier número de discos como un gran disco.
  • Tener volúmenes lógicos estirados sobre varios discos.
  • Crear pequeños volúmenes lógicos y cambiar su tamaño «dinámicamente», cuando se llenen.
  • Cambiar el tamaño de los volúmenes lógicos sin importar su orden en el disco. No depende de la posición del volumen lógico dentro del grupo de volúmenes, ni hay necesidad de asegurar el espacio disponible circundante.
  • Redimensionar/crear/borrar el tamaño de los volúmenes lógicos y físicos en línea. Los sistemas de archivos en ellos todavía tendrán que ser redimensionados, pero algunos (como ext4) apoyan el cambio de tamaño en línea.
  • Migración en línea/vivo de volumenes lógicos, siendo utilizado por los servicios para diferentes discos sin tener que reiniciar los servicios.
  • Realizar instantáneas que permiten hacer copias de respaldo del sistema de archivos, mientras se mantiene el tiempo de inactividad del servicio a un mínimo.
  • Soporte para albergar distintos mapeadores de dispositivos, incluido el cifrado del sistema de archivos transparente y almacenamiento en caché de los datos de uso frecuente. Esto permite crear un sistema con (uno o más) discos físicos (cifrados con LUKS) y LVM en la parte superior para permitir el cambio de tamaño y la administración de volúmenes separados (por ejemplo, para /, /home, /backup, etc.) sin la molestia de introducir una clave varias veces al arrancar.

Desventajas

  • Los pasos adicionales en la configuración del sistema, que lo hace más complicado.
  • Si tiene un arranque dual, tenga en cuenta que Windows no es compatible con LVM; no podrá acceder a ninguna partición LVM desde Windows.

Primeros pasos

Asegúrese de tener instalado el paquete lvm2.

Instalar Arch Linux sobre LVM

Se deben crear los volúmenes LVM entre el particionado y el formateado durante el procedimiento de instalación. En lugar de dar formato directamente a una partición para que sea su sistema de archivos root, esta operación se hará dentro de un volumen lógico (LV).

Remítase primero a «Primeros pasos».

He aquí un breve resumen:

  • Cree la partición(s) donde residirá su volumen físico (PV).
  • Cree los volúmenes físicos (PV). Si se tiene un disco lo mejor es simplemente crear un volumen físico en una partición grande. Si tiene varios discos se pueden crear particiones en cada uno de ellos y crear un volumen físico en cada partición.
  • Cree el grupo de volúmenes (VG) y asocie todos los volúmenes físicos (PV) al mismo.
  • Cree volúmenes lógicos (LV) dentro de su grupo de volúmenes (VG).
  • Continúe con el paso «Formatear las particiones» de Installation guide (Español)#Formatear las particiones.
  • Cuando llegue al paso «Crear entorno inicial ramdisk» en la guía de instalación, agregue el hook a (vea detalles más abajo ).

Crear particiones

Es necesario particionar el dispositivo antes de configurar LVM.

Cree las particiones:

Crear volúmenes físicos

Para listar todos los dispositivos capaces de ser utilizados como un volumen físico, lance:

# lvmdiskscan

Cree un volumen físico en ellos:

# pvcreate DISPOSITIVO

Esta orden crea una cabecera en cada dispositivo para que se pueda utilizar para LVM. Tal como se define en #Bloques para construir LVM, el DISPOSITIVO puede ser cualquier dispositivo de bloque, por ejemplo, un disco ), una partición /dev/sda2 o un dispositivo Loopback.

Por ejemplo:

# pvcreate /dev/sda2

Puede hacer un seguimiento de los volúmenes físicos creados con:

# pvdisplay

También puede obtener información resumida sobre volúmenes físicos con:

# pvscan
	

Crear grupo de volúmenes

El siguiente paso será crear un grupo de volúmenes sobre el volumen físico:

Lo primero que se necesita es crear un grupo de volúmenes sobre uno de los volúmenes físicos:

# vgcreate <grupo_de_volúmenes> <volumen_físico>

Por ejemplo:

# vgcreate VolGroup00 /dev/sda2

A continuación, puede añadir a dicho grupo de volúmenes tantos volúmenes físicos como desee tener en el mismo (a modo de una sola unidad):

# vgextend <grupo_de_volúmenes> <volumen_físico>
# vgextend <grupo_de_volúmenes> <otro_volumen_físico>
# ...

Por ejemplo:

# vgextend VolGroup00 /dev/sdb1
# vgextend VolGroup00 /dev/sdc

Puede hacer un seguimiento de cómo su grupo de volúmenes ha crecido con:

# vgdisplay

Esto también es lo que haría si quisiera agregar un disco a un RAID o grupo de réplica con discos fallidos.

Crear en un solo paso

LVM le permite la creación de un grupo de volúmenes sobre varios volúmenes físicos en un solo paso. Por ejemplo, para crear el grupo VolGroup00 con los tres dispositivos mencionados anteriormente, puede ejecutar:

# vgcreate VolGroup00 /dev/sda2 /dev/sdb1 /dev/sdc

Esta orden configurará primero las tres particiones como volúmenes físicos (si es necesario) y luego creará el grupo de volúmenes con los tres volúmenes físicos. La orden le advertirá si detecta un sistema de archivos existente en cualquiera de los dispositivos.

Crear volúmenes lógicos

Ahora necesitaremos crear volúmenes lógicos en el mencionado grupo de volúmenes. Para ello debe utilizar la siguiente orden, proporcionándole como parámetros, su tamaño (-L), el grupo de volúmenes al que pertenecerá, y el nombre (-n) que queremos darle al nuevo volumen lógico:

# lvcreate -L <tamaño> <grupo_de_volúmenes> -n <volumen_lógico>

Por ejemplo:

# lvcreate -L 10G VolGroup00 -n lvolhome

Luego, podrá acceder al nuevo volumen lógico creado con /dev/VolGroup00/lvolhome. Igual que sucede con los grupos de volúmenes, puede ponerle el nombre que desee al volumen lógico cuando lo crea, salvo algunas excepciones enumeradas en .

También puede especificar uno o más volúmenes físicos para limitar donde quiere que LVM asigne los datos. Por ejemplo, es posible que desee crear un volumen lógico para el sistema de archivos raíz en SSD (si es pequeño), y el volumen de su home en una unidad mecánica más grande y lenta. Tan solo tiene que añadir el dispositivo del volumen físico a la línea de órdenes, por ejemplo:

# lvcreate -L 10G VolGroup00 -n lvolhome /dev/sdc1

Si desea ocupar todo el espacio libre que queda del grupo de volúmenes, utilice la siguiente orden:

# lvcreate -l +100%FREE  <grupo_de_volúmenes> -n <volumen_lógico>

Puede hacer un seguimiento de los volúmenes lógicos creados con:

# lvdisplay

Crear sistemas de archivos y montar los volúmenes lógicos

Sus volúmenes lógicos deberian encontrarse en . De no encontrarse, utilice la siguiente orden para cargar el modulo que crea nodos de dispositivos y hacer que los grupos de volúmenes estén disponibles:

# modprobe dm-mod
# vgscan
# vgchange -ay

Ahora puede crear el sistema de archivos en los volúmenes lógicos, y montarlos como particiones normales (si está instalando Arch, remítase a montar las particiones para obtener información adicional):

# mkfs.<tipo_sistema_archivos> /dev/<grupo_de_volúmenes>/<volumen_lógico>
# mount /dev/<grupo_de_volúmenes>/<volumen_lógico> /<punto_de_montaje>

Por ejemplo:

# mkfs.ext4 /dev/VolGroup00/lvolhome
# mount /dev/VolGroup00/lvolhome /home
Advertencia: Al elegir los puntos de montaje, solo tiene que seleccionar los volúmenes lógicos recién creados (utilice: /dev/Volgroup00/lvolhome). No seleccione las particiones reales sobre las que se crearon los volúmenes lógicos (por tanto, no utilice: /dev/sda2).

Configurar mkinitcpio

En caso de que su sistema de archivos raíz esté sobre LVM, tendrá que activar los hooks de mkinitcpio (Español) apropiados, de lo contrario su sistema podría no arrancar. Active:

  • y predeterminados para initramfs basado en busybox.
  • y para initramfs basado en systemd.
está presente de forma predeterminada. Edite el archivo e inserte  entre  y filesystems como sigue:

Para initramfs basado en systemd :

Después, puede continuar con las instrucciones de instalación normales en el paso crear una imagen ramdisk inicial.

Opciones del kernel

Si el sistema de archivos raíz reside en un volumen lógico, el Kernel parameters (Español) debe apuntar al dispositivo mapeado, por ejemplo /dev/<nombre_grupodevolúmenes>/<nombre_volumenlógico>.

También podría ser necesario .

Operaciones sobre los volúmenes

Opciones avanzadas

Puede restringir los volúmenes que se activan de forma automática mediante el establecimiento de la variable en el archivo . En caso de duda, deje esta opción comentada.

Volúmenes físicos

Después de aumentar o antes de reducir el tamaño de un dispositivo que tiene sobre él un volumen físico, necesita aumentar o reducir el tamaño del volumen físico mediante .

Agrandar

Para ampliar el volumen físico existente sobre el dispositivo , después de aumentar dicha partición, ejecute:

# pvresize /dev/sda1

Esto detectará automáticamente el nuevo tamaño del dispositivo y extenderá el volumen físico a su máximo.

Nota: esta orden se puede ejecutar mientras el volumen está en línea.
Encoger

Para reducir un volumen físico antes de reducir el dispositivo subyacente, agregue el parámetro a la orden, por ejemplo:

# pvresize --setphysicalvolumesize 40G /dev/sda1

La orden anterior puede arrojar el siguiente error:

 /dev/sda1: cannot resize to 25599 extents as later ones are allocated.
 0 physical volume(s) resized / 1 physical volume(s) not resized

De hecho se negará a reducir un volumen físico si tiene asignadas extensiones adyacentes a lo que sería su nuevo final. Se tiene que ejecutar pvmove de antemano para reubicar estas extensiones en el grupo de volúmenes a otro lugar, si no hay suficiente espacio libre.

Mover extensiones físicas

Antes de mover extensiones libres al final del volumen, se debe ejecutar para ver los segmentos físicos. En el siguiente ejemplo, hay un volumen físico sobre , un grupo de volumen y un volumen lógico .

# pvdisplay -v -m
    Finding all volume groups.
    Using physical volume(s) on command line.
  --- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               vg1
  PV Size               1.52 TiB / not usable 1.97 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              399669
  Free PE               153600
  Allocated PE          246069
  PV UUID               MR9J0X-zQB4-wi3k-EnaV-5ksf-hN1P-Jkm5mW
   
  --- Physical Segments ---
  Physical extent 0 to 153600:
    FREE
  Physical extent 153601 to 307199:
    Logical volume	/dev/vg1/backup
    Logical extents	1 to 153599
  Physical extent 307200 to 307200:
    FREE
  Physical extent 307201 to 399668:
    Logical volume	/dev/vg1/backup
    Logical extents	153601 to 246068

Se puede observar que el espacio FREE (LIBRE) se intercala por todo el volumen. Para reducir el tamaño del volumen físico, primero tenemos que mover todos los segmentos utilizados al comienzo.

Aquí, el primer segmento libre es desde 0 a 153.600, lo cual nos deja con 153.601 extensiones libres. Ahora podemos mover este número de segmentos desde la última extensión física de la primera. La orden sería así:

Redimensionar volumen físico

Una vez que todos sus segmentos físicos libres estén en las últimas extensiones físicas, ejecute y vea su extensión física libre.

Entonces, podrá ejecutar de nuevo la orden:

# pvresize --setphysicalvolumesize tamaño VolumenFísico

Vea el resultado:

Cambiar el tamaño del volumen lógico y del sistema de archivos a la vez
Nota: solo los sistemas de archivos ext2, ext3, ext4, ReiserFS y XFS son ​​compatibles. Para un tipo diferente de sistema de archivos, consulte #Cambiar el tamaño del volumen lógico y del sistema de archivos separadamente.

Extienda el volumen lógico del grupo de volúmenes en 10 GiB y redimensione a la vez su sistema de archivos :

# lvresize -L +10G --resizefs MyVolGroup/mediavol

Establezca el tamaño del volumen lógico presente en a 15 GiB y redimensione a la vez su sistema de archivos:

# lvresize -L 15G --resizefs MyVolGroup/mediavol

Si desea ocupar todo el espacio libre con un grupo de volúmenes, utilice la siguiente orden:

# lvresize -l +100%FREE --resizefs MyVolGroup/mediavol

Consulte para obtener más opciones detalladas.

Cambiar el tamaño del volumen lógico y del sistema de archivos separadamente

Para los sistemas de archivos no admitidos por necesitará utilizar la utilidad apropiada para cambiar el tamaño del sistema de archivos antes de reducir el volumen lógico o después de expandirlo.

Para extender el volumen lógico dentro del grupo de volúmenes en 2 GiB sin tocar su sistema de archivos:

# lvresize -L +2G MyVolGroup/mediavol

Ahora expanda el sistema de archivos (ext4 en este ejemplo) al tamaño máximo del volumen lógico subyacente:

# resize2fs /dev/MyVolGroup/mediavol

Para reducir el tamaño del volumen lógico en en 500 MiB, primero calcule el tamaño del sistema de archivos resultante y reduzca el tamaño del sistema de archivos (ext4 en este ejemplo) al nuevo tamaño:

# resize2fs /dev/MyVolGroup/mediavol NewSize

Una vez encogido el sistema de archivos, reduzca el tamaño del volumen lógico:

# lvresize -L -500M MyVolGroup/mediavol

Consulte para obtener más opciones detalladas.

Renombrar un grupo de volúmenes

Utilice la orden vgrename(8) para cambiar el nombre de un grupo de volúmenes existente.

Cualquiera de las siguientes órdenes cambia el nombre del grupo de volúmenes existente a

# vgrename /dev/vg02 /dev/my_volume_group
# vgrename vg02 my_volume_group

Renombrar volúmenes lógicos

Para cambiar el nombre de un volumen lógico existente, utilice la orden .

Cualquiera de las siguientes órdenes cambia el nombre del volumen lógico presente en el grupo de volúmenes a lvnew.

# lvrename /dev/vg02/lvold /dev/vg02/lvnew
# lvrename vg02 lvold lvnew

Eliminar volúmenes lógicos

En primer lugar, averigüe el nombre del volumen lógico que desea eliminar. Se puede obtener una lista de todos los volúmenes lógicos instalados en el sistema con:

# lvs

A continuación, busque el punto de montaje del volumen lógico elegido, con:

$ lsblk

Ahora, desmonte el sistema de archivos del volumen lógico:

# umount /<punto_montaje>

Por último, elimine el volumen lógico:

# lvremove <grupo_volúmenes>/<volumen_lógico>

Por ejemplo:

# lvremove VolGroup00/lvolhome

Confirme la operación escribiendo .

No se olvide actualizar el archivo .

Se puede verificar la eliminación del volumen lógico escribiendo con privilegios de root de nuevo (vea el primer paso de esta sección).

Agregar un volumen físico a un grupo de volúmenes

En primer lugar, cree un nuevo volumen físico en el dispositivo de bloque que desea usar, y luego intégrelo en su grupo de volúmenes:

# pvcreate /dev/sdb1
# vgextend VolGroup00 /dev/sdb1

Por supuesto, esto aumentará el número total de extensiones físicas en el grupo de volúmenes, que podrá asignar a los volúmenes lógicos como mejor le parezca.

Nota: se considera una buena práctica tener una tabla de particiones en el soporte de almacenamiento que aloja LVM. Utilice el tipo de código apropiado para su partición: 8e para MBR, y 8e00 para.

Eliminar una partición de un grupo de volúmenes

Si ha creado un volumen lógico en la partición, elimínelo primero.

Todos los datos de la partición deben ser movidos a otra partición. Afortunadamente, LVM lo hace sencillo:

# pvmove /dev/sdb1

Si quiere tener los datos en un volumen fisico específico, agréguelo como segundo argumento a :

# pvmove /dev/sdb1 /dev/sdf1

Luego, eliminamos los volúmenes físicos del grupo de volúmenes:

# vgreduce myVg /dev/sdb1

O, eliminamos todos los volúmenes vacíos:

# vgreduce --all vg0

Por ejemplo: si tiene un disco dañado en un grupo que no se puede encontrar porque se eliminó o falló:

# vgreduce --removemissing --force vg0

Por último, si quiere usar la partición para algo más, y quiere evitar a LVM, piense que esa partición es un volumen fisico más:

# pvremove /dev/sdb1

Desactivar un grupo de volúmenes

Basta con invocar la orden:

# vgchange -a n <grupo_de_volúmenes>

Esto desactivará el grupo de volúmenes y le permitirá desmontar el contenedor donde está almacenado.

Activar grupo de volúmenes

# vgchange -a y vg0

Esto reactivará el grupo de volúmenes si, por ejemplo, tuvo un fallo de unidad en una réplica y cambió la unidad, al ejecutar , y .

Reparar un grupo de volúmenes lógicos

Para iniciar el proceso de reconstrucción de la matriz de réplica degradada en este ejemplo, debe ejecutar:

# lvconvert --repair /dev/vg0/mirror

Puede supervisar el proceso de reconstrucción (Cpy%Sync Column output) con:

# lvs -a -o +devices

Tipos de volúmenes lógicos

Además de volúmenes lógicos simples, LVM admite instantáneas, volúmenes lógicos para almacenamiento caché, volúmenes lógicos de aprovisionamiento ligero y RAID.

Instantáneas/Snapshots

LVM permite tomar instantáneas («snapshots») de su sitema, lo que es mucho más eficiente que las tradicionales copias de respaldo («backup»). Podemos hacer esto usando una politica COW (copy-on-write/copia-cuando-escribe). La instantánea inicial simplemente contiene enlaces fuertes a los inodos de sus datos actuales. Mientras los datos estén descargados, la instantánea simplemente contará con punteros a sus respectivos inodos y no a los datos en sí mismos. Cada vez que se modifica un archivo o un directorio a la que apunte la isntantanea, LVM automaticamente clonará los datos. Por lo tanto, puede tener instantáneas de un sistema de 35 GiB de datos usando solo 2 GiB de espacio libre, mientras sean modificados menos de 2GiB de datos (en el original y en la instantánea). Para poder crear instantáneas necesita tener espacio no asignado en su grupo de volúmenes. La instantánea, como cualquier otro volumen, ocupará espacio en el grupo de volúmenes. Por lo tanto, si planea usar instantáneas para hacer una copia de seguridad de su partición raíz, no asigne el 100% de su grupo de volúmenes para el volumen lógico raíz.

Configuración

Los volúmenes lógicos para las instantáneas se crean igual que los normales:

# lvcreate --size 100M --snapshot --name snap01 /dev/mapper/vg0-pv

Con dicho volumen, podrá modificar hasta de 100 MiB de datos, antes de que el volumen para las instantáneas se llene.

Para revertir el volumen lógico del «volumen físico» modificado al estado en que se tomó la instantánea «snap01», ejecute:

# lvconvert --merge /dev/vg0/snap01

En caso de que el volumen lógico de origen esté activo, la fusión se producirá en el siguiente reinicio (la fusión se puede hacer, incluso, desde un CD Live)

Se pueden tomar también varias instantáneas y cada una se puede combinar con el volumen lógico de origen a voluntad.

La instantánea se puede montar y respaldar con dd o tar. El tamaño del archivo de respaldo hecho con dd será equivalente al tamaño de los archivos que residen en el volumen de instantánea. Para restaurar basta con crear una instantánea, montarla y escribir o extraerla de la copia de seguridad. Y luego fusionarla con la de origen.

Las instantáneas se utilizan principalmente para proporcionar una copia congelada de un sistema de archivos para respaldarlo; una copia de seguridad que tome dos horas ofrece una imagen más coherente del sistema de archivos que una copia de respaldo directamente de la partición.

Vea Create root filesystem snapshots with LVM para automatizar la creación de instantáneas límpias del sistema de archivos raíz durante el inicio del sistema para respaldar y restaurar.

dm-crypt (Español)/Encrypting an entire system (Español)#LVM sobre LUKS y dm-crypt (Español)/Encrypting an entire system (Español)#LUKS sobre LVM.

Si tiene volúmenes LVM no activados a través de initramfs (Español), active el servicio , proporcionado por el paquete lvm2.

La memoria caché de LVM

De lvmcache(7):

El tipo de volumen lógico de caché utiliza un volumen lógico pequeño y rápido para mejorar el rendimiento de un volumen lógico grande y lento. Lo hace almacenando en el volumen lógico más rápido los bloques utilizados con más frecuencia (del volumen lógico grande). LVM se refiere al volumen lógico pequeño y rápido como un volumen lógico que actúa como un contenedor de memoria caché. El volumen lógico lento se llama volumen lógico de origen. Debido a los requisitos de dm-cache (el controlador del kernel), LVM divide aún más el volumen lógico que sirve de contenedor de la memoria caché en dos dispositivos: el volumen lógico para la caché de datos y el volumen lógico para la caché de metadatos. El volumen lógico para la caché de datos es donde se guardan copias de bloques de datos del volumen lógico de origen para aumentar la velocidad. El volumen lógico para la memoria caché de los metadatos contiene la información de recuento que especifica dónde se almacenan los bloques de datos (por ejemplo, en el volumen lógico de origen o en el volumen lógico para la caché de los datos). Los usuarios deben estar familiarizados con estos volúmenes lógicos si desean crear los mejores y más robustos volúmenes lógicos como almacenamientos de caché. Todos estos volúmenes lógicos asociados deben estar en el mismo grupo de volúmenes.

Crear la memoria caché

El método rápido es crear un volumen físico (si es necesario) en el disco y agregarlo al grupo de volúmenes existente:

# vgextend dataVG /dev/sdx

Cree un contenedor de caché con metadatos automáticos en sdb y convierta el volumen lógico existente (dataLV) a un volumen de almacenamiento caché, todo en un solo paso:

# lvcreate --type cache --cachemode writethrough -L 20G -n dataLV_cachepool dataVG/dataLV /dev/sdx

Obviamente, si desea que su caché sea más grande, puede cambiar el parámetro a un tamaño diferente.

Eliminar la memoria caché

Si alguna vez necesita deshacer la operación anterior en un solo paso :

# lvconvert --uncache dataVG/dataLV

Esto confirma las escrituras pendientes que aún están en la memoria caché para que vuelvan al volumen lógico de origen, luego elimina la caché. Otras opciones están disponibles y se describen en lvmcache(7).

RAID

De :

RAID es una forma de crear un volumen lógico (LV) que utiliza varios dispositivos físicos para mejorar el rendimiento o tolerar los posibles fallos de alguno de los dispositivos. En LVM, los dispositivos físicos son volúmenes físicos (PV) integrados un solo grupo de volúmenes (VG).

RAID sobre LVM admite RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 y RAID 10. Consulte Wikipedia:Standard RAID levels para obtener detalles sobre cada nivel.

Configurar RAID

Cree los volúmenes físicos:

# pvcreate /dev/sda2 /dev/sdb2

Cree un grupo de volúmenes con los volúmenes físicos:

# vgcreate VolGroup00 /dev/sda2 /dev/sdb2

Cree volúmenes lógicos con , consulte y lvcreate(8) para obtener más opciones.

# lvcreate --type RaidLevel [OPTIONS] -n Name -L Size VG [PVs]

Por ejemplo:

# lvcreate --type raid1 --mirrors 1 -L 20G -n myraid1vol VolGroup00 /dev/sda2 /dev/sdb2

creará un volumen lógico replicado de 20 GiB llamado «myraid1vol» en VolGroup00 sobre /dev/sda2 y .

Configurar mkinitcpio para RAID

Si su sistema de archivos raíz está en LVM sobre RAID además de los hooks o , debe agregar y los módulos RAID apropiados (por ejemplo, , , raid10 y/o ) a la matriz MODULES en .

Para initramfs basado en busybox:

Para initramfs basado en systemd:

Configuración gráfica

No existe una interfaz gráfica «oficial» para administrar volúmenes LVM, pero [enlace roto: package not found] cubre la mayoría de las operaciones comunes y proporciona visualizaciones simples del estado del volumen. Puede cambiar automáticamente el tamaño de muchos sistemas de archivos cuando redimensiona los volúmenes lógicos.

Solución de problemas

Problemas de arranque/apagado debido a lvmetad desactivado

El parámetro debe ajustarse en . Este es el valor predeterminado ahora: si tiene un archivo , debe fusionarlos.

Las órdenes LVM no funcionan

  • Cargue los modulos apropiados:
# modprobe dm-mod

El módulo debería cargarse automáticamente. En caso contrario, pruebe con:

/etc/mkinitcpio.conf
MODULES=(dm_mod ...)

Tendrá que volver a crear la imagen initramfs para que surtan efectos los cambios realizados.

  • Anteponga lvm a la orden:
# lvm pvdisplay

No se muestran los volúmenes lógicos

Si se está tratando de montar volúmenes lógicos existentes, pero no se muestran con , puede utilizar las siguientes órdenes para activarlos:

# vgscan
# vgchange -ay

LVM sobre un medio extraíble

Síntomas:

Causa:

Extraer una unidad externa con LVM sin ​​desactivar el grupo(s) de volúmenes primero. Antes de desconectar el medio, asegúrese de ejecutar:
# vgchange -an nombre_del_grupo_de_volumen

Arreglo:

Asumiendo que ya ha intentado activar el grupo de volúmenes con , y se siguen recibiendo los errores de entrada/salida, ejecute:
# vgchange -an nombre_del_grupo_de_volumen
Desconecte la unidad externa y espere unos minutos:
# vgscan
# vgchange -ay nombre_del_grupo_de_volumen

Al redimensionar un volumen lógico contiguo falla

Si al intentar extender un volumen lógico produce errores con:

" Insufficient suitable contiguous allocatable extents for logical volume "

La razón es que el volumen lógico se creó con una explícita política de asignación contigua (con las opciones o --alloc contiguous) y no hay extensiones contiguas adyacentes adicionales disponibles (vea también reference).

Para solucionar este problema, antes de extender el volumen lógico, cambie su política de asignación con . Si necesita mantener la política de asignación contigua, un método alternativo consistiría en mover el volumen a un área del disco con suficientes extensiones libres (vea ).

La orden «grub-mkconfig» informa del error «unknown filesystem»

Asegúrese de retirar los volúmenes de instantáneas antes de generar grub.cfg.

Dispositivo de volumen raíz aprovisionado para agotar tiempo de espera

Con una gran cantidad de instantáneas, se ejecuta durante un tiempo suficientemente prolongado para que se agote el tiempo de espera del dispositivo raíz. Para compensar, agregue el parámetro de arranque del kernel a la configuración de su gestor de arranque. O haga que omita la comprobación de asignaciones de bloques (consulte ) y regenere initramfs:

Demora al apagar

Si utiliza RAID, instantáneas o aprovisionamiento, y experimenta un retraso en el apagado, asegúrese de que está iniciado. Consulte .

Véase también

gollark: Maybe I should have said natural numbers. Oh well.
gollark: I don't know how to prove that for the case where a, b, c have no common factors.
gollark: The proof is trivial and left to the reader.
gollark: There exist infinitely many integers a, b, c such that a²+b²=c².
gollark: It is said that the bee which buzzes loudly exists.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.