Tutorial de Comandos LVM en Linux
Tutorial de Comandos LVM en Linux
Sumario
Parte 1: Volumen físico [PV]................................................................................................................2
Comando: pvcreate..........................................................................................................................2
Comando: pvdisplay........................................................................................................................2
Comando: pvchange........................................................................................................................4
Comando: pvs..................................................................................................................................5
Parte 2: Grupo de volumen [VG].........................................................................................................5
Comando: vgcreate..........................................................................................................................5
Comando: vgdisplay........................................................................................................................6
Comando: vgscan.............................................................................................................................7
Comando: vgextend.........................................................................................................................7
Comando: vgreduce.........................................................................................................................8
Comando: vgexport..........................................................................................................................8
Comando: vgimport.........................................................................................................................9
Comando: vgcfgbackup...................................................................................................................9
Comando: vgcfgrestore..................................................................................................................10
Comando: vgchange.......................................................................................................................11
Comando: vgremove......................................................................................................................11
Comando: vgsync..........................................................................................................................12
Comando: vgs................................................................................................................................12
Parte 3: Volumen lógico [LV].............................................................................................................12
Comando: lvcreate.........................................................................................................................12
Comando: lvdisplay.......................................................................................................................13
Comando: lvremove.......................................................................................................................14
Comando: lvextend........................................................................................................................14
Comando: lvreduce........................................................................................................................14
Comando: lvchange.......................................................................................................................15
Comando: lvsync...........................................................................................................................15
Comando: lvlnboot........................................................................................................................15
Comando: lvs.................................................................................................................................16
ANEXO I............................................................................................................................................16
PE es extensión física....................................................................................................................16
VG es grupo de volumen...............................................................................................................16
LV es el volumen lógico................................................................................................................16
ANEXO II..........................................................................................................................................17
Añadiendo el disco Thin-LVM......................................................................................................17
ANEXO III.........................................................................................................................................17
Creación de un pool con ZFS........................................................................................................17
Configuración desde la interfaz de Proxmox.................................................................................18
Descarga de plantillas para LXC........................................................................................................19
ANEXO IV.........................................................................................................................................19
Advertencia /dev/sde no medium found"......................................................................................19
ANEXO V..........................................................................................................................................19
Agregar más espacio a un LVM.........................................................................................................19
Cómo Expandir un LVM con otro disco........................................................................................20
Parte 1: Volumen físico [PV]
Un volumen físico es un disco sin formato presentado al sistema operativo. Puede ser un disco
local, LUN de almacenamiento remoto, disco de una matriz de disco local, etc. Todos los discos de
almacenamiento de estos tipos se formatean como volúmenes físicos bajo LVM para que puedan
usarse en sistemas de archivos definidos.
Comando: pvcreate
Comencemos con el primer comando para crear un volumen físico. Antes de usar este comando,
debe confirmar su nuevo disco sin formato en el sistema operativo. Puede usar el fdisk o cfdisk para
confirmar al directorio /dev/sdX.
Ahora que identificó el nuevo disco presentado al servidor, digamos, /dev/dev/sdb3 por ejemplo,
puede ejecutar el pvcreate comando para crear un volumen físico a partir de él.
# /usr/sbin/pvcreate /dev/dev/sdb3
Physical volume "/dev/dev/sdb3" has been successfully created.
El comando emite un mensaje de éxito confirmando que se ha creado PV. Tenga en cuenta aquí que
debe usar el archivo de dispositivo de caracteres, es decir, con . /dev/sdbX
Si por error ingresa un nombre de disco incorrecto o el disco ya se está usando en LVM en el mismo
servidor, el comando fallará. Si presentó un disco que se usó anteriormente en otro servidor y ahora
desea usarlo aquí con pérdida de datos, entonces la opción -f se puede usar para crear PV
forzosamente destruyendo cualquier dato presente en el disco. Tenga en cuenta aquí que la opción -f
no pide ninguna confirmación antes de eliminar los datos.
Hay otras opciones que se pueden usar con este comando que son:
• -B para convertirlo en un disco de arranque. Se usa durante la duplicación del disco raíz
• -b, -d relacionado con bloques defectuosos
• -s para especificar el tamaño efectivo. Normalmente todos usan el disco completo, por lo
que estas opciones no importan mucho
• -t relacionado con el conductor
Normalmente, estas opciones no se utilizan cuando apuntamos a PV solo para el uso del punto de
montaje. Por lo tanto, no profundizaremos en estas opciones.
Comando: pvdisplay
Ahora, PV ha sido creado, uno puede ver sus detalles con el comando pvdisplay.
# /usr/sbin/pvdisplay /dev/disk/disk3
--- Physical volumes ---
PV Name /dev/disk/disk3
VG Name
PV Status available
Allocatable yes
VGDA 2
Cur LV 0
PE Size (Mbytes) 32
Total PE 1557
Free PE 1557
Allocated PE 0
Stale PE 0
IO Timeout (Seconds) default
Autoswitch On
Proactive Polling On
Aquí muchos campos se explican por sí mismos. Consulte las leyendas de LVM para tener una
mejor comprensión. A partir de esta salida, también puede calcular el tamaño del disco. Tamaño
total de PE x PE = tamaño del disco (disponible para usar, es decir, después de formatear la pérdida
de espacio)
Si desea profundizar en los detalles de PE, es decir, qué PE está sirviendo a qué LV, entonces se
puede utilizar la opción -v. Esto es útil cuando el disco tiene sectores defectuosos. A continuación se
muestra la salida en la que PV ya es parte del grupo de volumen.
# /usr/sbin/pvdisplay -v /dev/disk/disk3
--- Physical volumes ---
PV Name /dev/disk/disk3
VG Name /dev/vg01
PV Status available
Allocatable yes
VGDA 2
Cur LV 1
PE Size (Mbytes) 32
Total PE 1557
Free PE 0
Allocated PE 1557
Stale PE 0
IO Timeout (Seconds) default
Autoswitch On
Proactive Polling On
Aquí puede ver cómo se distribuye PV entre diferentes LV. y además, ¡le brinda un mapeo de tablas
de PE a LE! Hay numerosas opciones que se pueden usar con este comando, pero normalmente se
usa -v.
Comando: pvchange
pvchange es utilizado para cambiar los atributos del volumen físico. Hay 6 conmutadores de
opciones que se pueden utilizar con este comando. Veámoslos uno por uno.
-a
Este conmutador se utiliza para el atributo de disponibilidad de PV. Esto debe ir acompañado de un
argumento y o n. y hace que PV esté disponible y n hace que no esté disponible. Puede ver el
ejemplo a continuación con un argumento n que hace que PV no esté disponible, lo que se puede
verificar en la pvdisplay salida.
# pvchange -a n /dev/disk/disk3
Physical volume "/dev/disk/disk3" has been successfully changed.
# pvdisplay /dev/disk/disk3
--- Physical volumes ---
PV Name /dev/disk/disk3
VG Name /dev/vg01
PV Status unavailable
Allocatable yes
VGDA 2
Cur LV 2
-S
Este interruptor habilita o deshabilita el cambio automático. También tiene un argumento y o n. Si
se activa, hace que la ruta de acceso actual cambie a la mejor ruta disponible. Si está desactivado, el
cambio de ruta ocurre solo si la ruta de acceso actual pasa a un estado no disponible (debido a fallas
de hardware o cables). Esto se aplica solo a discos con rutas múltiples.
-t
Es un valor de tiempo de espera. Este interruptor debe suministrarse con una cantidad de segundos.
Este valor determina si se agota el tiempo de espera de IO y el problema se puede declarar para IO
en un PV particular. Útil en agrupamiento.
# pvchange -t 90 /dev/disk/disk3
Physical volume "/dev/disk/disk3" has been successfully changed.
-x
Activa o desactiva la extensibilidad de PV. Este conmutador tiene argumentos y y n que permiten al
administrador agregar/restringir extensiones físicas a PV. Consulte las leyendas de LVM para
comprender mejor.
-s
Empiece a acceder de inmediato al volumen físico asociado.
-z
Define PV es repuesto o regular. Esta opción solo tiene importancia en la duplicación .
Como sugiere el nombre, solía mover datos (en el término LVM PE) de un PV a otro PV. Command
Essential mueve los PE y, por lo tanto, los datos desde el origen al PV de destino. Si no se
especifica el PV de destino, todos los PV disponibles en el grupo de volumen actual se consideran
para la operación de movimiento. El comando decide por sí mismo el PV más adecuado para la
operación de movimiento, de modo que las políticas de asignación se puedan cumplir
correctamente.
Además, si el comando se proporciona con una lista de nombres de PV, el primer PV siempre se
considera como fuente y el resto, todos los PV se consideran como destino.
# pvmove /dev/disk/disk1 /dev/disk/disk2 /dev/disk/disk3
# /usr/sbin/lvdisplay -v /dev/vg01/lvol2
Comando: pvs
Muestra y da informacion de los pv creados
pvs
/dev/sdc: open failed: No medium found
PV VG Fmt Attr PSize PFree
/dev/sdb3 pve lvm2 a-- <299.50g 15.99g
/dev/sdb4 DATOS lvm2 a-- <100.00g <100.00g
Comando: vgcreate
Como todos sabemos, el grupo de volumen, es decir, VG, es una colección de PV. Consulte las
leyendas de LVM para una mejor comprensión. La creación de VG es el siguiente paso necesario
después de la creación de PV para usar el espacio en disco en los puntos de montaje. Como en Unix
todo es un archivo, para administrar VG, el kernel crea un /dev/vgname/grouparchivo. Este archivo
representa VG en el kernel. Veamos cómo crear VG a partir de un montón de PV disponibles. Las
versiones posteriores a marzo de 2008 de HPUX crean un archivo de grupo automáticamente con el
comando vgcreate. Pero veremos aquí cómo hacer uno.
Primero, cree un directorio con el nombre deseado de su VG, por ejemplo. digamos que testvges es
nuestro nombre de VG. Después de eso, usar el mknod comando crea un archivo de grupo especial.
Al mando, debe proporcionar números mayores y menores.
# mkdir /dev/testvg
# mknod /dev/testvg/group c major 0xminor
Vgcreate también se puede ejecutar con un solo argumento PV. Este comando tiene varias opciones
como se muestra a continuación:
• -V 1.0 Para decidir versión.
• -s PE_size Tamaño de PE que se utilizará en MB. El valor predeterminado es 4 MB
• -e max_PE Max PE por PV. El valor predeterminado es 1016
• -l max_lv Número máximo de LV por VG. El valor predeterminado es 255
• -p max_pv Número máximo de PV por VG. El valor predeterminado es 255
• -S vg_size Tamaño máximo futuro de VG. Solo en v2.0.
Las opciones anteriores se pueden proporcionar al comando con los valores adecuados, pero no es
obligatorio. Si no se proporciona, sus valores respectivos se tendrán en cuenta al crear VG. Los
cambios en los parámetros con estas opciones se pueden ver en la salida de vgdisplay.
Comando: vgdisplay
Igual que el comando pvdisplay, vgdisplay se usa para ver los detalles de VG. se puede ejecutar con
la opción -v de obtener una salida más detallada. Si se ejecuta sin la opción PE es extensión física
Su porción más pequeña de PV se puede usar como un bloque bajo el sistema de archivos. PV se
compone del número de PE. Siempre usamos nombres de PV cuando usamos comandos LVM. En
el ejemplo anterior, el tamaño de PE se establece en 32 MB y hay un total de 4345 PE disponibles
en el disco.
# vgdisplay -v vg_new
--- Volume groups ---
VG Name /dev/testvg
VG Write Access read/write
VG Status available
Max LV 255
Cur LV 0
Open LV 0
Max PV 16
Cur PV 2
Act PV 2
Max PE per PV 6000
VGDA 2
PE Size (Mbytes) 32
Total PE 26
Alloc PE 0
Free PE 26
Total PVG 0
Total Spare PVs 0
Total Spare PVs in use 0
PV Name /dev/disk/disk4
PV Status available
Total PE 10
Free PE 10
Autoswitch On
vgsc En la salida anterior, se puede ver Tamaño PE (Mbytes), Max PE por PV, Max LV, Max
campos fotovoltaicos que pueden ser modificadas con opciones -s, -e, -l, -p argumentos en vgcreate
comandos que vimos anteriormente. El resultado anterior se explica por sí mismo. También muestra
detalles de PV que son parte de este VG.
Comando: vgscan
Este comando se usa para escanear todos los PV disponibles para obtener información sobre VG y
LV relacionados y reconstruir el /etc/lvmtab archivo. Este comando utilizó las siguientes opciones:
• -a Escanee todas las rutas PV disponibles.
• -B Escriba todas las rutas heredadas y persistentes en el archivo /etc/lvmtab
• -fvg_name Fuerza para actualizar las entradas de VG existentes /etc/lvmtab con información
actualizada, si la hubiera
• -k Evite sondear los discos. Construya el archivo de la estructura conocida del kernel.
• -N Complete el archivo con nombres DSF persistentes
• -p Solo modo de vista previa. No actualizará el archivo lvmtab
• -v modo detallado. Imprime mensajes en la consola.
# vgscan -v
/dev/vg00
/dev/disk/disk1_p2
/dev/disk/disk2_p2
Normalmente usamos vgscan -vsolo. Después de este comando, puede verificar la marca de tiempo
del archivo /etc/lvmtabpara verificar que se haya actualizado.
Comando: vgextend
Siempre que se necesite espacio adicional en los puntos de montaje y se agreguen nuevos discos al
sistema, los grupos de volúmenes relacionados deben acomodar estos nuevos discos. Digamos que
vg01 es un VG existente y disk5 se agrega uno nuevo al servidor, entonces debe usar el comando
vgextend para agregar estos nuevos discos en vg01. Esto, a su vez, agregará nuevo PE libre en VG
existente vg01, por lo tanto, el espacio libre aumentará en VG.
Para agregar discos a un VG existente, primero debe inicializarlo con el comando pvcreate. Una vez
hecho esto, el disco se puede utilizar vgextend, comando se muestra a continuación:
# vgextend /dev/vg01 /dev/disk/disk5
Volume group "/dev/vg01" has been successfully extended.
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Comando: vgreduce
Es justo al revés del comando anterior. Reduce VG eliminando PV especificado en el comando. Es
un poco arriesgado de usar, por lo que se necesitan precauciones adicionales. Debe asegurarse
de que no se esté utilizando PE de PV objetivo en ningún LV de VG . Esto puede ser verificado
por los comandos lvdisplay y vgdisplay. Si no, entonces usted puede utilizar pvmove, lvremove
comandos para mover / borrar los datos. Una vez que esté seguro de que no se está utilizando
ningún PE del PV objetivo, es decir, todos los PE son libres de formar este PV, ejecute el siguiente
comando para eliminar el PV del VG.
# vgreduce /dev/vg01 /dev/disk/disk5
Volume group "/dev/vg01" has been successfully reduced.
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Si está utilizando varios enlaces PV, debe eliminar todas las rutas PV de VG utilizando el comando
anterior.
Este comando permite dos opciones:
• -f Eliminar PV a la fuerza
• -l pv_path Eliminar solo la ruta PV particular especificada de VG
Comando: vgexport
El uso de vgexport puede exportar toda la información relacionada con VG de los discos al archivo
de mapa, dejando intactos los datos de los discos. Con la ayuda de este archivo de mapa, el mismo
VG se puede importar en otro sistema siempre que todos los discos relacionados se presenten en
este otro sistema.
Tenga en cuenta que ejecutar este comando elimina todos los archivos relacionados con VG del
directorio /dev y todas sus entradas relacionadas en el archivo /etc/lvmtab. Esto significa que
después de ejecutarse vgexport, ese VG en particular se convierte en VG inexistente para el
sistema.
Antes de ejecutar vgexport, uno debe asegurarse de que nadie esté utilizando datos en LVOL de este
VG. Esto se puede verificar usando el comando fuser -cu /mount_point. Además, VG no debería
estar activo en el momento de la exportación, por lo tanto, debe desactivar VG usando vgchange.
# vgchange -a n /dev/vg01
Volume group "/dev/vg01" has been successfully changed.
# vgexport -v -m /tmp/[Link] vg01
Beginning the export process on Volume Group "/dev/vg01".
/dev/dsk/c0t1d0 vgexport:Volume Group “/dev/vg01” has been successfully removed.
Comando: vgimport
Este comando importa VG que se exportó con el comando anterior. El archivo de mapa extraído del
vgimport debe proporcionarse como argumento a vgimport. En caso de que un archivo de mapa no
esté disponible, aún intentará importar VG leyendo la información LVM de los discos físicos. En
este caso, debe proporcionarse una lista de todos los PV.
Después que vgimport importe con éxito VG, tenga en cuenta que está en un estado inactivo.
Necesita activar VG para usarlo en el sistema. Además, se recomienda realizar una copia de
seguridad de la configuración una vez que importe un nuevo VG en el sistema
# vgimport -v -m /tmp/[Link] /dev/vg01 list_of_disk
vgimport: Volume group “/dev/vg01” has been successfully created.
Warning: A backup of this volume group may not exist on this machine.
Please remember to take a backup using the vgcfgbackup command after activating the volume
group.
# vgchange -a y vg01
Volume group “/dev/vg01” has been successfully changed.
# vgcfgbackup /dev/vg01
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Comando: vgcfgbackup
A medida que se lee el comando, se realiza una copia de seguridad de la configuración del grupo de
volúmenes en un archivo de disco que reside en el directorio /etc/lvmconf del archivo
/etc/lvmconf/vg_name.conf. Lee los detalles del encabezado LVM del área del sistema del disco y
lo copia en el archivo. Este archivo le ayuda a restaurar la configuración en el disco recién agregado
en lugar del disco antiguo que puede haberse dañado o fallado.
Se recomienda realizar esta copia de seguridad después de cada cambio de nivel de LVM. Por
defecto, todos los comandos LVM que alteran los detalles de LVM están diseñados para realizar
esta copia de seguridad automáticamente, por lo que no es necesario ejecutar el comando
manualmente.
Para realizar una copia de seguridad de la configuración manual, utilice el comando siguiente:
# vgcfgbackup /dev/vg01
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Esto debe ejecutarse para todos los grupos de volúmenes disponibles en el sistema. Este comando
tiene un par de opciones:
• -f file Guarde la copia de seguridad en el archivo especificado en lugar de en la ubicación
predeterminada
• -u Solo actualiza los PV adicionales que se agregan a VG después de la última copia de
seguridad. Solo se requiere que los PV nuevos estén en línea en el sistema. Si -u no se usa,
todos los PV de VG deben estar en línea mientras se ejecuta el comando.
Comando: vgcfgrestore
Este comando restaura la configuración de VG tomada con el comando anterior. El comando
necesita principalmente un nombre de grupo de volúmenes de 2 argumentos cuya configuración se
debe restaurar y un nombre de PV en el que se debe restaurar la configuración. Hay dos cosas que
deben tenerse en cuenta.
Si el PV en el que estamos restaurando la copia de seguridad es parte de la copia espejo, entonces
debería desactivarse primero. Luego restaure y vuelva a activarlo. La secuencia de comandos será:
# pvchange -a n /dev/disk/disk5
Physical volume "/dev/disk/disk5" has been successfully changed.
# pvchange -a y /dev/disk/disk5
Physical volume "/dev/disk/disk5" has been successfully changed.
Si PV no es parte del espejo, primero debe desactivar el grupo de volumen, luego restaurar la copia
de seguridad y luego activar el grupo de volumen nuevamente. La secuencia de comandos será:
# vgchange -a n /dev/vg01
Volume group "/dev/vg01" has been successfully changed.
# vgchange -a y /dev/vg01
Volume group "/dev/vg01" has been successfully changed.
Este comando tiene varias opciones que se pueden usar con él:
• -l Solo configuración de lista
• -F Restaurar con fuerza
• -f file Restaurar la configuración desde un archivo especificado, no desde la ubicación de
copia de seguridad predeterminada
• -v Modo detallado
• -R Restaure forzosamente incluso si hay una discrepancia entre PV en el kernel y en config.
• -o old_path Restaurar la configuración guardada para el PV antiguo (ruta suministrada) al
PV nuevo mencionado en el comando.
Comando: vgchange
Este comando se usa para hacer que los grupos de volúmenes estén activos o inactivos. El grupo de
volumen activado simplemente significa que está disponible para su uso. Hay diferentes modos de
grupos de volumen en los que se pueden activar. Se pueden enumerar a continuación:
1. Modo de disponibilidad normal
2. Modo de reconocimiento de clúster
3. Modo compartible
4. Modo de requisitos de Quoram
El comando vgchange se puede utilizar con las opciones especificadas y sus valores para activar o
desactivar el grupo de volumen. Por ejemplo, para activarlo normalmente se debe proporcionar el
argumento -a y su valor y. Vea la salida a continuación para activar y luego desactivar el grupo de
volumen
# vgchange -a y vg01
Volume group “/dev/vg014” has been successfully changed.
# vgchange -a n vg01
Volume group “/dev/vg014” has been successfully changed.
Comando: vgremove
vgremove es utilizado para eliminar el grupo de volúmenes del sistema. Pero esto está destruyendo
el VG ya que requiere la eliminación de todos los LV, PV en VG. SIEMPRE SE RECOMIENDA
USAR EN VGEXPORT EN LUGAR DE VGREMOVE. Dado que vgexport también elimina la
información de VG del sistema, pero la mantiene intacta en PV para que el mismo PV se pueda
importar a un nuevo VG en el nuevo/mismo sistema usando vgimport .
La eliminación segura de VG se puede realizar con los siguientes pasos:
1. Copia de seguridad de todos los datos del usuario en ese VG
2. Obtenga información sobre todos los LV y PV en ese VG usando el vgdisplay -v
3. Asegúrese de que ningún LV esté en uso usando el fuser -cu /mount_point
# fuser -cu /data /data: 223412c(user1)
Comando: vgsync
Este comando se usa para sincronizar LE obsoleto de espejos LV en VG actual. Esto se usa solo en
la duplicación . Se puede observar la salida de vgdisplay -vy confirmar si hay algún LE obsoleto en
el VG actual. Si encontró un LE obsoleto, puede sincronizarlos usando este comando.
# vgsync /dev/vg01
Resynchronized logical volume "/dev/vg01/lvol01".
Resynchronized logical volume "/dev/vg01/lvol02".
Resynchronized volume group "/dev/vg01"
Comando: vgs
Muestra y da información de los grupos de volúmenes existentes
# vgs
/dev/sdc: open failed: No medium found
VG #PV #LV #SN Attr VSize VFree
DATOS 1 0 0 wz--n- <100.00g <100.00g
pve 1 10 0 wz--n- <299.50g 15.99g
Comando: lvcreate
Este comando se usa para crear un nuevo volumen lógico. Los volúmenes lógicos se montan en
directorios como punto de montaje. Entonces, el tamaño del volumen lógico es el tamaño que desea
para el punto de montaje. Utilice un comando como el siguiente:
# lvcreate -L 1024 /dev/vg01
Logical volume "/dev/vg01/lvol1" has been successfully created with character device
"/dev/vg01/rlvol1"
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
En el comando anterior, debe proporcionar el tamaño en MB (1 GB en el ejemplo anterior) al
argumento -L y al nombre del grupo de volumen en el que debe crear ese LV. Si no se sugiere un
nombre en el comando, el comando predeterminado crea LV con nombre /dev/vg01/lvolX(X es el
siguiente número disponible).
Este comando admite las siguientes opciones:
• -l Número de LE
• -n LV Nombre
Los detalles LV creados se pueden ver usando el comando lvdisplay.
Comando: lvdisplay
Hemos visto anteriormente cómo crear LV, ahora veremos cómo ver los detalles del mismo. Este
comando es el mismo que pvdisplay para PV y vgdisplay para VG. Le muestra detalles como
nombre, grupo de volumen al que pertenece, tamaño, permiso, estado, política de asignación, etc.
# lvdisplay /dev/vg01/lvol1
--- Logical volumes ---
LV Name /dev/vg01/lvol1
VG Name /dev/vg01
LV Permission read/write
LV Status available/syncd
Mirror copies 0
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 1024
Current LE 32
Allocated PE 32
Stripes 0
Stripe Size (Kbytes) 0
Bad block on
Allocation strict
IO Timeout (Seconds) default
Se puede obtener una salida más detallada con la opción -v. En esta salida detallada, puede obtener
los detalles de LE donde residen y la distribución de LV en los discos.
# lvdisplay -v /dev/vg01/lvol1
--- Logical volumes ---
LV Name /dev/vg01/lvol1
VG Name /dev/vg01
Comando: lvremove
Eliminar un volumen lógico es una tarea de destrucción de datos. Asegúrese de realizar la copia de
seguridad de los datos dentro del punto de montaje, luego vacíelo y detenga el acceso de todos los
usuarios / aplicaciones. Si LV no está vacío, el comando le pedirá confirmación para continuar.
# lvremove /dev/vg01/lvol1
The logical volume "/dev/vg01/lvol1" is not empty;
do you really want to delete the logical volume (y/n) : y
Logical volume "/dev/vg01/lvol1" has been successfully removed.
Volume Group configuration for /dev/vg03 has been saved in /etc/lvmconf/[Link]
Una vez que se elimina lvol, su número vuelve a estar disponible para el próximo lvol nuevo que se
está creando en el mismo VG. Todo el PE asignado a este LV se liberará como PE libre y, por tanto,
aumentará el espacio libre en VG.
Los volúmenes lógicos como VG se pueden ampliar y reducir. Vamos a ver los comandos lvextend,
lvreduce, lvchange.
Comando: lvextend
Para extender el volumen lógico, debe tener suficiente espacio libre dentro de ese VG. La sintaxis
del comando es bastante similar a la del comando lvcreate. Lo único que necesita es proporcionar el
tamaño final requerido al mando. Por ejemplo, el tamaño actual de LV es de 1 GB y desea ampliarlo
con 2 GB. Luego, debe proporcionar el tamaño final de 3 GB en el argumento del comando.
# lvextend -L 3072 /dev/vg01/lvol1 -r -t
Logical volume "/dev/vg01/lvol1" has been successfully extended.
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Donde
-r (resize) realiza la redimencion del sistema de archivo (nos ahorramos luego de tener que
ejecutar resize2fs)
-t (test)verifica que todo este ok (luego repetimos sin este comando para que sea efectivo)
-l +100%FREE para ocupar todo el espacio libre del GV
-L tamaño a extender, si antoponemos + (+10GB) se toma com agregar, coso contrario
interpreta que es el tamaño final
Otra opción importante son las copias espejo. Desempeña un papel vital en la duplicación del disco
raíz. -mes la opción con el número de copias espejo como argumento.
# lvextend -m 1 /dev/vg00/lvol1 /dev/disk/disk2_p2
The newly allocated mirrors are now being synchronized. This operation will
take some time. Please wait ....
Logical volume "/dev/vg00/lvol1" has been successfully extended.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/[Link]
Comando: lvreduce
Este comando se usa para disminuir el número de copias espejo o disminuir el tamaño de LV. Este
es el comando de destrucción de datos. Por lo tanto, asegúrese de tener una copia de seguridad de
los datos del sistema de archivos relacionado primero. Las opciones de tamaño y copia espejo
funcionan igual para este comando. -L para LE_reduce_size, el -l número de LE que se reducirá y -
mes el número de copias que se reducirán.
# lvreduce -L 500 /dev/vg01/lvol1
When a logical colume is reduced useful data might get lost;
do you really want the command to proceed (y/n) : y
Logical volume "/dev/vg01/lvol1" has been successfully reduced.
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/[Link]
Mientras reduce las copias espejo si uno de los PV falla o falta, el comando no se ejecutará
correctamente. debe proporcionar la opción -k que procederá a eliminar el espejo en caso de que
falte PV.
Comando: lvchange
Este comando se utiliza para cambiar las características de LV. Existen numerosas opciones que se
pueden utilizar.
• -a y/n Activar o desactivar LV
• -C y/n Cambiar la política de asignación contigua
• -D y/n Cambiar la política de asignación distribuida
• -p w/r Establecer permiso
• -t timeout Establece el tiempo de espera en segundos
• -M y/n Cambiar el indicador de caché de escritura espejo
• -d p/s Cambiar la política de programación
Comando: lvsync
Sincroniza PE obsoleto en un LV dado. Se utiliza en entornos de reflejo. Siempre que hay una falla
en el disco o un problema con la ruta del disco, PE falla y LV, a su vez, tiene PE obsoleto. Una vez
que se corrige el problema, debemos sincronizar PE obsoleto con este comando si no se sincronizan
automáticamente.
El comando no tiene muchas opciones. Debe suministrarse únicamente con la ruta de BT.
# /usr/sbin/lvsync /dev/vg00/lvol6
Resynchronized logical volume "/dev/vg00/lvol6".
Comando: lvlnboot
Este comando se usa para definir el volumen lógico como raíz, volcado, intercambio o volumen de
inicio. Debe enviar una ruta LV junto con la opción específica de su elección para ordenar. Las
opciones son las siguientes:
• -b Volumen de arranque
• -d Volumen de descarga
• -r Volumen de la raíz
• -s Volumen de intercambio
• -R Recupere los enlaces perdidos
• -v Modo detallado
# lvlnboot -r /dev/vg00/lvol3
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/[Link]
# lvlnboot -b /dev/vg00/lvol1
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/[Link]
# lvlnboot -s /dev/vg00/lvol2
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/[Link]
# lvlnboot -d /dev/vg00/lvol2
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/[Link]
Comando: lvs
Muestra y da información de los grupos de volúmenes existentes
# lvs
LV VG Attr LSize Pool Origin Data% Meta
%
datavirtuales DATOS -wi-a----- 90.00g
data pve twi-aotz-- 184.97g 70.17 4.24
root pve -wi-ao---- 74.75g
snap_vm-101-disk-0_recien_creada pve Vri---tz-k 32.00g data vm-101-disk-0
swap pve -wi-ao---- 20.00g
vm-100-disk-0 pve Vwi-a-tz-- 32.00g data 100.00
vm-100-state-original pve Vwi-a-tz-- <2.49g data 0.00
vm-101-disk-0 pve Vwi-a-tz-- 32.00g data 100.00
vm-101-state-recien_creada pve Vwi-a-tz-- <4.49g data 38.20
vm-102-disk-0 pve Vwi-a-tz-- 32.00g data 100.00
vm-103-disk-0 pve Vwi-aotz-- 32.00g data 99.93
ANEXO I
PE es extensión física
Su porción más pequeña de PV se puede usar como un bloque bajo el sistema de archivos. PV se
compone del número de PE. Siempre usamos nombres de PV cuando usamos comandos LVM. En
el ejemplo anterior, el tamaño de PE se establece en 32 MB y hay un total de 4345 PE disponibles
en el disco.
VG es grupo de volumen
Uno o más PV se unen para formar un grupo de volumen. Esta agrupación permite reducir
la capacidad de almacenamiento combinada de discos a nuestra elección de volúmenes pequeños.
En el ejemplo anterior, vg00 es un grupo de volumen compuesto por un solo PV y se corta a 8 LV
(solo se muestra uno en el ejemplo anterior)
LV es el volumen lógico
Es una porción de grupo de volumen que usa cierta capacidad de PV para formar un volumen más
pequeño. Básicamente se usa como un punto de montaje / intercambio como unidades (C :, D :) en
Windows. Podemos ver un LV en el ejemplo anterior y sus detalles.
LE es extensión lógica.
Al igual que PE, LE es la porción más pequeña de LV.
ANEXO II
Añadiendo el disco Thin-LVM
Lo que haremos ahora es crear un nuevo pve en la partición del disco SSD (suponiendo que la
partición es /dev/sdb1):
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
ANEXO III
Creación de un pool con ZFS
Para poder hacer copias de seguridad de nuestros VPS sin necesidad de pararlas primero, debemos
guardarlas en un sistema de archivos como ZFS, que dispone de opciones de snapshot.
En mi caso voy a usar las particiones /dev/sdb1 y /dev/sdc1 para el pool, que crearemos con el
comando zpool create, y veremos el resultado con el comando zpool list, como se muestra a
continuación:
root@host:~# zpool create -f datos /dev/sdb1 /dev/sdc1
root@host:~# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
datos 222G 912K 222G - 0% 0% 1.00x ONLINE -
Configuración desde la interfaz de Proxmox
El resto de la configuración debemos hacerla desde la interfaz web de Proxmox, a la que
accederemos desde un navegador, accediendo a la URL [Link]
Recuerda que debes acceder siempre desde https o te aparecerá un error.
Pulsamos en la opción Datacenter del menú derecho, después en Storage, y en la pantalla que nos
aparece, en la opción Add
Seleccionamos un nuevo pool de tipo ZFS, indicamos el nombre y elegimos el pool que hemos
creado del desplegable.
Pulsamos en Add para crearlo.
Añadimos un nuevo pool, esta vez de tipo Directoy, con el directorio de la partición de backups,
para que Proxmox pueda utilizarlo. Además, debemos indicar que contiene Imágenes ISO, plantillas
de contenedores, y archivos de backup. También debemos configurar el número máximo de
archivos de backup que guardaremos para cada máquina o contenedor.
Desde ese menú podemos descargar las plantillas que luego usaremos para crear nuestros
contenedores LXC
ANEXO IV
Advertencia /dev/sde no medium found"
Encontré un problema, apareció una advertencia "/dev/sde open fall: no medium found" en los
resultados de muchos comandos, como pvs/vgs.
Si no va a usar esa unidad para ninguna función de lvm, se puede agregarla al filtro_global en
/etc/[Link]
global_filter = [ "r|/dev/sde|, r|/dev/zd.*|", "r|/dev/mapper/pve-.*|" "r|/dev/mapper/.*-(vm|base)--[0-
9]+--disk--[0-9]+|"]
# Example
# Accept every block device:
# filter = [ "a|.*/|" ]
# Reject the cdrom drive:
# filter = [ "r|/dev/cdrom|" ]
ANEXO V
Cómo Expandir un LVM con otro disco.
En ocasiones por un mal diseño de nuestros servidores, o por algún motivo X que hayan cambiado
las espectativas de nuestro servidor Linux, nos quedamos sin espacio en disco. Afortunadamente
hoy en día con la virtualización es muy simple agregar discos a nuestros servidores.
En casos en los que nuestros servidores estén usando LVM ( Logical Volume Manager ), se nos
hace relativamente sencillo la tarea de aumentar el espacio en disco o una partición en concreto. En
el ejemplo que os mostraré vamos a expandir la partición de root de nuestro servidor CentOS 7.
El estado inicial de nuestro servidor es 1 disco de 40GB con un LVM que tiene asignado para root
37.6GB y vamos a agregarle un disco extra de 50GB.
Una vez agregado el disco con el comando fdisk -l vemos el nuevo disco /dev/sdb/ con 53.7GB
Lo primero que vamos a hacer es crear un Physical Volume para nuestro nuevo disco sdb.
pvcreate /dev/sdb
Con ese comando creamos un nuevo volumen físico y podemos verlo con:
pvdisplay
Vemos que /dev/sdb es un nuevo volumen físico de 50.00GiB. A continuación vemos nuestros
grupo de volumenes con vgdisplay.
vgdisplay
Vemos que tenemos un VG de 39GiB llamado centos. Vamos a extenderlo con el espacio de nuestro
nuevo disco de 50GB.
vgextend (nombre del VG) (el PV creado)
vgextend centos /dev/sdb
en mi caso
lvm lvextend -l +100%FREE /dev/centos/root
Y después de expandir el lv, falta hacer un resize2fs para hacer un resize del filesystem.
resize2fs /dev/centos/root
Con ésto habremos finalizado y nuestra partición de root ha pasado a tener 84.9GB en lugar de los
37GB iniciales.
Os comento que el comando lvm lvextend se puede usar de muchas manera, por ejemplo hay veces
que no quieres asignarle todo el espacio en disco a un lv sino que lo quieres dividir entre varios,
pues no usarias los flags de +100%FREE sino que especificas el espacio en GB.