Red Hat Training

A Red Hat training course is available for RHEL 8

68.13. Control de la asignación de LVM

Por defecto, un grupo de volúmenes asigna extensiones físicas de acuerdo a reglas de sentido común como no colocar franjas paralelas en el mismo volumen físico. Esta es la política de asignación normal. Puedes usar el argumento --alloc del comando vgcreate para especificar una política de asignación de contiguous, anywhere, o cling. En general, las políticas de asignación diferentes a normal son requeridas sólo en casos especiales donde se necesita especificar una asignación de extensión inusual o no estándar.

68.13.1. Políticas de asignación de LVM

Cuando una operación LVM necesita asignar extensiones físicas para uno o más volúmenes lógicos, la asignación procede como sigue:

  • Se genera el conjunto completo de extensiones físicas no asignadas en el grupo de volúmenes para su consideración. Si proporciona cualquier rango de extensiones físicas al final de la línea de comandos, sólo se considerarán las extensiones físicas no asignadas dentro de esos rangos en los volúmenes físicos especificados.
  • Cada política de asignación se intenta por turnos, empezando por la política más estricta (contiguous) y terminando con la política de asignación especificada mediante la opción --alloc o establecida por defecto para el volumen lógico o grupo de volúmenes concreto. Para cada política, trabajando desde la extensión lógica más baja del espacio del volumen lógico vacío que necesita ser llenado, se asigna tanto espacio como sea posible, de acuerdo con las restricciones impuestas por la política de asignación. Si se necesita más espacio, LVM pasa a la siguiente política.

Las restricciones de la política de asignación son las siguientes:

  • Una política de asignación de contiguous requiere que la ubicación física de cualquier extensión lógica que no sea la primera extensión lógica de un volumen lógico sea adyacente a la ubicación física de la extensión lógica inmediatamente anterior.

    Cuando un volumen lógico está dividido en franjas o en espejo, la restricción de asignación contiguous se aplica independientemente a cada franja o imagen en espejo (pierna) que necesite espacio.

  • Una política de asignación de cling requiere que el volumen físico utilizado para cualquier extensión lógica se añada a un volumen lógico existente que ya esté en uso por al menos una extensión lógica anterior en ese volumen lógico. Si se define el parámetro de configuración allocation/cling_tag_list, se considera que dos volúmenes físicos coinciden si alguna de las etiquetas enumeradas está presente en ambos volúmenes físicos. Esto permite que grupos de volúmenes físicos con propiedades similares (como su ubicación física) sean etiquetados y tratados como equivalentes a efectos de asignación.

    Cuando un Volumen Lógico es rayado o reflejado, la restricción de asignación cling se aplica independientemente a cada raya o imagen reflejada (pierna) que necesite espacio.

  • Una política de asignación de normal no elegirá una extensión física que comparta el mismo volumen físico que una extensión lógica ya asignada a un volumen lógico paralelo (es decir, una franja o imagen espejo diferente) en el mismo desplazamiento dentro de ese volumen lógico paralelo.

    Cuando se asigna un registro en espejo al mismo tiempo que volúmenes lógicos para contener los datos en espejo, una política de asignación de normal intentará primero seleccionar volúmenes físicos diferentes para el registro y los datos. Si eso no es posible y el parámetro de configuración allocation/mirror_logs_require_separate_pvs se establece en 0, entonces permitirá que el registro comparta volumen(s) físico(s) con parte de los datos.

    Del mismo modo, al asignar los metadatos del thin pool, una política de asignación de normal seguirá las mismas consideraciones que para la asignación de un mirror log, basándose en el valor del parámetro de configuración allocation/thin_pool_metadata_require_separate_pvs.

  • Si hay suficientes extensiones libres para satisfacer una solicitud de asignación pero una política de asignación de normal no las utilizaría, la política de asignación de anywhere lo hará, incluso si eso reduce el rendimiento al colocar dos franjas en el mismo volumen físico.

Las políticas de asignación pueden modificarse mediante el comando vgchange.

Nota

Si confía en cualquier comportamiento de distribución más allá de lo documentado en esta sección según las políticas de asignación definidas, debe tener en cuenta que esto podría cambiar en futuras versiones del código. Por ejemplo, si proporcionas en la línea de comandos dos volúmenes físicos vacíos que tienen un número idéntico de extensiones físicas libres disponibles para la asignación, LVM actualmente considera usar cada uno de ellos en el orden en que están listados; no hay garantía de que las futuras versiones mantengan esa propiedad. Si es importante obtener un diseño específico para un Volumen Lógico en particular, entonces deberías construirlo a través de una secuencia de pasos de lvcreate y lvconvert de tal manera que las políticas de asignación aplicadas a cada paso no dejen a LVM ninguna discreción sobre el diseño.

Para ver cómo funciona actualmente el proceso de asignación en cualquier caso específico, puede leer la salida del registro de depuración, por ejemplo, añadiendo la opción -vvvv a un comando.