Como parte de la preparación del examen RHCSA, ya aprendimos cómo administrar particiones en disco. Las particiones son útiles para separar el espacio del disco (por ejemplo, separar los archivos relacionados con la base de datos de los archivos relacionados con el servidor web), pero tenemos una solución mucho más flexible que puede separar o agregar espacio de almacenamiento.
Esta solución se llama LVM, el Administrador de volúmenes lógicos. LVM nos permite ver varios discos como un solo sistema de archivos, superando así las limitaciones del sitio de un disco físico. También podemos crear duplicación de software en discos para proteger o escribir datos en el sistema de archivos. En este tutorial cubriremos los conceptos básicos:administraremos las tres capas de LVM, volúmenes físicos, grupos de volúmenes y volúmenes lógicos.
Creación de nuevo volumen físico con LVM.
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Red Hat Enterprise Linux 8.1 |
Software | LVM 2.03 |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Con LVM, tenemos tres capas que se construyen una encima de la otra:physical volumes
(pv), que son muy parecidas a las particiones, solo están marcadas para el uso de LVM. Podemos crear un volumen físico a partir de una partición de disco o un disco sin formato completo. Si tenemos la intención de usar un disco solo como volumen físico LVM, no necesitamos crear una partición en él primero. La siguiente capa es un volume group
(vg). Como su nombre indica, es simplemente la agrupación de volúmenes físicos. En esta capa, podemos agregar todo el espacio del volumen físico subyacente en una unidad de almacenamiento más grande. Además de los grupos de volúmenes, podemos crear la capa final, logical volumes
(lv). Estos pueden contener sistemas de archivos, en los que podemos almacenar nuestros datos.
Una de las características principales de LVM es que podemos agregar otro volumen físico a un grupo de volúmenes sobre la marcha, y también podemos modificar el tamaño de un volumen lógico mientras el sistema se está ejecutando. Entonces, si nos quedamos sin espacio, podemos escalar sin apagar un sistema.
Las abreviaturas de las capas son buenos recordatorios cuando tratamos con LVM. Los comandos que funcionan en diferentes capas comienzan todos con estas abreviaturas, por ejemplo, si trabajamos con volúmenes físicos, el comando para crear uno será pvcreate
, el comando para enumerar los volúmenes físicos existentes será pvdisplay
, y así. Incluso si necesitamos hacer esto con poca frecuencia, es fácil adivinar o encontrar el comando correcto, ya que esta convención de nomenclatura es consistente en todas las capas.
Para este tutorial, agregamos discos de 2 GB cada uno a nuestra máquina de laboratorio. Se reconocen como /dev/sdb
y /dev/sdc
en nuestro sistema, mientras que /dev/sda
contiene el sistema operativo, que no tocaremos durante los siguientes pasos.
Cómo crear y eliminar volúmenes físicos
Cómo crear un volumen físico
Para crear un volumen físico, usaremos pvcreate
. Crearemos un volumen físico de 2 GB en ambos sdb
y sdc
.
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
Podemos verificar si lo hicimos bien enumerando nuestros volúmenes físicos. Usaremos pvdisplay
.
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size <14.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3583
Free PE 0
Allocated PE 3583
PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH
"/dev/sdb" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj
"/dev/sdc" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
La máquina de laboratorio ya usa LVM en su configuración predeterminada (al igual que la mayoría de las distribuciones en la actualidad), es por eso que /dev/sda2
se muestra. Estamos interesados en nuestros dos nuevos volúmenes físicos, que ya podemos verificar.
Cómo eliminar el volumen físico
Para eliminar un volumen físico, tenemos el pvremove
dominio. No elimine un volumen físico con datos escritos que se necesitan.
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
Cómo asignar volúmenes físicos a grupos de volúmenes
Creación de un grupo de volúmenes a partir de volúmenes físicos.
Después de volver a crear el sdc
caído volumen físico, tenemos todo lo que necesitamos para crear un grupo de volúmenes que pueda contener un volumen lógico. Podríamos crear un "grupo" de volúmenes que tenga solo un volumen físico, que es el caso exacto del sda2
predeterminado. – pero para demostrar la agregación de almacenamiento, usaremos nuestros dos nuevos volúmenes físicos para crear un grupo de volúmenes llamado "datos" que tiene 4 GB de espacio en disco disponible.
Podemos crear un grupo de volumen con vgcreate
. Todo lo que necesitamos es especificar el nombre de VG y los volúmenes físicos que serán miembros del grupo de volúmenes.
# vgcreate data /dev/sdb /dev/sdc
Volume group "data" successfully created
Podemos enumerar las propiedades de nuestro nuevo grupo de volúmenes con vgdisplay
.
# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 0 / 0
Free PE / Size 1022 / 3.99 GiB
VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Tenga en cuenta el tamaño de VG de cerca de 4 GB, la suma de los dos volúmenes físicos. No será exactamente la suma de los volúmenes, ya que se reserva algo de espacio para los metadatos.
Cómo crear y eliminar volúmenes lógicos
Además de un grupo de volúmenes, podemos crear volúmenes lógicos que a su vez pueden contener sistemas de archivos. La instalación predeterminada en muchas distribuciones separa el almacenamiento de esta manera, por ejemplo, los datos del usuario se guardan en /home
el volumen lógico y los registros del sistema se almacenan en /var
volumen. En el caso de que un usuario llene el volumen de inicio, el sistema general aún podrá escribir registros y, por lo tanto, sus servicios continuarán ejecutándose mientras el administrador del sistema puede manejar al usuario que se volvió loco.
Cómo crear un volumen lógico
Crearemos dos volúmenes lógicos, el primero llamado "base de datos" con 2 GB de tamaño, el otro llamado "servidor web" con 500 MB de espacio en disco. Como puede adivinar de los ejemplos anteriores, el comando que usaremos es lvcreate
.
# lvcreate -L 2G -n database data
Logical volume "database" created.
# lvcreate -L 500M -n webserver data
Logical volume "webserver" created.
Podemos mostrar nuestras propiedades de volumen con lvdisplay <volume path>
, o podemos enumerar todos nuestros volúmenes lógicos si no proporcionamos un argumento para lvdisplay
. Si bien esto puede proporcionar una salida prolongada en algunos sistemas, es útil en un entorno desconocido, ya que las rutas de volumen pueden variar según la distribución y la versión.
# lvdisplay /dev/data/database
--- Logical volume ---
LV Path /dev/data/database
LV Name database
VG Name data
LV UUID D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi
LV Write Access read/write
LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
# lvdisplay /dev/data/webserver
--- Logical volume ---
LV Path /dev/data/webserver
LV Name webserver
VG Name data
LV UUID 7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD
LV Write Access read/write
LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
Si revisamos nuestro grupo de volúmenes en este punto, podemos notar el espacio que los volúmenes lógicos ocupan del grupo de volúmenes.
# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 637 / <2.49 GiB
Free PE / Size 385 / 1.50 GiB
VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Cómo crear un volumen lógico en el sistema RHEL Linux Cómo eliminar un volumen lógico
Para liberar espacio o reorganizar volúmenes, podemos eliminar volúmenes lógicos con lvremove
.
ADVERTENCIA
No elimine volúmenes lógicos que contengan datos valiosos. Si lo hace, destruirá los datos del volumen.
Hay cinturones de seguridad incorporados, se acabaron los días en que limpiar nuestro sistema no tenía que esperar a que nos avisaran. Al menos, al usar los comandos LVM.
# lvremove /dev/data/webserver
Do you really want to remove active logical volume data/webserver? [y/n]: y
Logical volume "webserver" successfully removed
Otra lista de grupos de volúmenes muestra que los 500 MB del webserver
el volumen ahora se vuelve a agregar al tamaño libre del grupo de volúmenes:
# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 512 / 2.00 GiB
Free PE / Size 510 / 1.99 GiB
VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Ejercicios
- Cree dos grupos de volúmenes y cree volúmenes lógicos en ambos con el mismo nombre.
- Agregue otro volumen físico a su grupo de volúmenes, luego cree un volumen lógico que ocupe todo el grupo de volúmenes. Ahora intente eliminar uno de los volúmenes físicos.
- Intente crear un volumen lógico que tenga el tamaño exacto del grupo de volúmenes.
- Cree otro volumen físico en un disco, agréguelo a su grupo de volúmenes, luego apague la máquina y extraiga el disco. ¿Qué muestra
vgdisplay
? decir en el disco perdido?
- Vuelva a agregar el disco eliminado anteriormente. ¿Se reconoce en el siguiente arranque?