GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo administrar el almacenamiento en Linux con LVM

Logical Volume Manager (LVM) es un sistema similar a RAID basado en software que le permite crear "grupos" de almacenamiento y agregar espacio en el disco duro a esos grupos según sea necesario. Hay muchas razones para usarlo, especialmente en un centro de datos o en cualquier lugar donde los requisitos de almacenamiento cambien con el tiempo. Sin embargo, muchas distribuciones de Linux lo usan de forma predeterminada para las instalaciones de escritorio, porque los usuarios encuentran conveniente la flexibilidad y hay algunas funciones de cifrado integradas que la estructura LVM simplifica.

Sin embargo, si no está acostumbrado a ver un volumen LVM cuando arranca desde un Live CD con fines de rescate o migración de datos, LVM puede resultar confuso porque el montaje El comando no puede montar volúmenes LVM. Para eso, necesita herramientas LVM instaladas. Es muy probable que su distribución tenga utilidades LVM disponibles, si aún no están instaladas.

Este tutorial explica cómo crear y manejar volúmenes LVM.

Crear un grupo LVM

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Este artículo asume que tiene un conocimiento práctico de cómo interactuar con discos duros en Linux. Si necesita más información sobre los conceptos básicos antes de continuar, lea mi introducción a los discos duros en Linux.

Por lo general, no tiene que configurar LVM en absoluto. Cuando instala Linux, a menudo se crea de manera predeterminada un "grupo" virtual de almacenamiento y se agregan los discos duros de su máquina a ese grupo. Sin embargo, la creación manual de un grupo de almacenamiento LVM es una excelente manera de aprender qué sucede detrás de escena.

Puede practicar con dos memorias USB de repuesto de cualquier tamaño, o dos discos duros, o una máquina virtual con dos unidades imaginarias definidas.

Primero, formatee la unidad imaginaria /dev/sdx para que tenga una unidad nueva lista para usar en esta demostración.

# echo "warning, this ERASES everything on this drive."
warning, this ERASES everything on this drive.
# dd if=/dev/zero of=/dev/sdx count=8196
# parted /dev/sdx print | grep Disk
Disk /dev/sdx: 100GB
# parted /dev/sdx mklabel gpt
# parted /dev/sdx mkpart primary 1s 100%

Este comando LVM crea un grupo de almacenamiento. Un grupo puede constar de una o más unidades, y en este momento consta de uno. Este grupo de almacenamiento de ejemplo se llama billar , pero puedes llamarlo como quieras.

# vgcreate billiards /dev/sdx1

Ahora tienes un gran y nebuloso grupo de espacio de almacenamiento. Es hora de repartirlo. Para crear dos volúmenes lógicos (puede pensar en ellos como unidades virtuales), uno llamado vol0 y el otro llamado vol1 , ingresa lo siguiente:

# lvcreate billiards 49G --name vol0
# lvcreate billiards 49G --name vol1

Ahora tiene dos volúmenes extraídos de un grupo de almacenamiento, pero ninguno de ellos tiene un sistema de archivos todavía. Para crear un sistema de archivos en cada volumen, debe traer los billares grupo de volumen en línea.

# vgchange --activate y billiards

Ahora crea los sistemas de archivos. El -L La opción proporciona una etiqueta para la unidad, que se muestra cuando la unidad está montada en su escritorio. La ruta al volumen es un poco diferente a las rutas de dispositivos habituales a las que está acostumbrado porque estos son dispositivos virtuales en un grupo de almacenamiento LVM.

# mkfs.ext4 -L finance /dev/billiards/vol0
# mkfs.ext4 -L production /dev/billiards/vol1

Puede montar estos nuevos volúmenes en su escritorio o desde una terminal.

# mkdir -p /mnt/vol0 /mnt/vol1
# mount /dev/billiards/vol0 /mnt/vol0
# mount /dev/billiards/vol1 /mnt/vol1

Agregue espacio a su grupo

Hasta ahora, LVM no ha proporcionado nada más que la partición que normalmente proporciona una unidad:dos secciones distintas de espacio en una sola unidad física (en este ejemplo, 49 GB y 49 GB en una unidad de 100 GB). Imagine ahora que el departamento de finanzas necesita más espacio. Tradicionalmente, tendrías que reestructurar. Tal vez movería los datos del departamento de finanzas a una nueva unidad física dedicada, o tal vez agregaría una unidad y luego usaría un feo truco de enlace simbólico para proporcionar a los usuarios un fácil acceso a su espacio de almacenamiento adicional. Sin embargo, con LVM, todo lo que tiene que hacer es expandir el grupo de almacenamiento.

Puede agregar espacio a su grupo formateando otra unidad y usándola para crear más espacio adicional.

Primero, cree una partición en la nueva unidad que está agregando al grupo.

# part /dev/sdy mkpart primary 1s 100%

Luego use el vgextend comando para marcar la nueva unidad como parte del grupo.

# vgextend billiards /dev/sdy1

Finalmente, dedique una parte del grupo de almacenamiento recientemente disponible al volumen lógico adecuado.

# lvextend -L +49G /dev/billiards/vol0

Por supuesto, la expansión no tiene que ser tan lineal. Imagine que el departamento de producción de repente necesita 100 TB de espacio adicional. Con LVM, puede agregar tantas unidades físicas como necesite, agregando cada una y usando vgextend para crear un grupo de almacenamiento de 100 TB y luego usar lvextend para "ampliar" el espacio de almacenamiento del departamento de producción en 100 TB de espacio disponible.

Utilice herramientas para comprender su estructura de almacenamiento

Una vez que comience a usar LVM en serio, el panorama del almacenamiento puede volverse abrumador. Hay dos comandos para recopilar información sobre la estructura de su infraestructura de almacenamiento.

Primero, hay vgdisplay , que muestra información sobre sus grupos de volúmenes (puede considerarlos como unidades virtuales grandes de alto nivel de LVM).

# vgdisplay
  --- Volume group ---
  VG Name               billiards
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <237.47 GiB
  PE Size               4.00 MiB
  Total PE              60792
  Alloc PE / Size       60792 / <237.47 GiB
  Free  PE / Size       0 / 0  
  VG UUID               j5RlhN-Co4Q-7d99-eM3K-G77R-eDJO-nMR9Yg

El segundo es lvdisplay , que muestra información sobre sus volúmenes lógicos (puede considerarlos como unidades orientadas al usuario).

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/billiards/finance
  LV Name                finance
  VG Name                billiards
  LV UUID                qPgRhr-s0rS-YJHK-0Cl3-5MME-87OJ-vjjYRT
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-12-16 07:31:01 +1300
  LV Status              available
  # open                 1
  LV Size                149.68 GiB
  Current LE             46511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

[...]

Usar LVM en un entorno de rescate

El "problema" con LVM es que envuelve las particiones de una manera que no es familiar para muchos usuarios administrativos que están acostumbrados a la partición de unidades tradicional. En circunstancias normales, las unidades LVM se activan y montan de forma bastante invisible durante el proceso de arranque o la integración LVM del escritorio. No es algo en lo que normalmente tengas que pensar. Solo se vuelve problemático cuando te encuentras en modo de recuperación después de que algo sale mal con tu sistema.

Si necesita montar un volumen que está "oculto" dentro de la estructura de LVM, debe asegurarse de que la cadena de herramientas de LVM esté instalada. Si tiene acceso a su /usr/sbin directorio, probablemente tenga acceso a todos sus comandos LVM habituales. Pero si ha arrancado en un shell mínimo o en un entorno de rescate, es posible que no tenga esas herramientas. Un buen entorno de rescate tiene LVM instalado, por lo que si está en un shell mínimo, busque un sistema de rescate que lo tenga. Si está utilizando un disco de rescate y no tiene LVM instalado, instálelo manualmente o busque un disco de rescate que ya lo tenga.

En aras de la repetición y la claridad, aquí se explica cómo montar un volumen LVM.

# vgchange --activate y
2 logical volume(s) in volume group "billiards" now active
# mkdir /mnt/finance
# mount /dev/billiards/finance /mnt/finance

Integre LVM con cifrado LUKS

Muchas distribuciones de Linux usan LVM de forma predeterminada al instalar el sistema operativo. Esto permite la extensión del almacenamiento más adelante, pero también se integra muy bien con el cifrado de disco proporcionado por la cadena de herramientas de cifrado Linux Unified Key Setup (LUKS).

El cifrado es bastante importante, y hay dos formas de cifrar las cosas:puede cifrar por archivo con una herramienta como GnuPG, o puede cifrar una partición completa. En Linux, cifrar una partición es fácil con LUKS, que, al estar completamente integrado en Linux por medio de módulos del kernel, permite que las unidades se monten para leer y escribir sin problemas.

Cifrar todo el disco principal suele ocurrir como una opción durante la instalación. Selecciona cifrar todo el disco o solo la partición de inicio cuando se le solicite y, a partir de ese momento, utilizará LUKS. En su mayoría es invisible para usted, aparte de una solicitud de contraseña durante el arranque.

Si su distribución no ofrece esta opción durante la instalación, o si solo desea cifrar una unidad o partición manualmente, puede hacerlo.

Puede seguir este ejemplo utilizando una unidad de repuesto; Usé una pequeña memoria USB de 4GB.

Primero, conecte la unidad a su computadora. Asegúrate de que sea seguro borrar el disco y usa lsblk para localizar el disco en tu sistema.

Si el disco aún no está particionado, hágalo ahora. Si no sabe cómo particionar una unidad, consulte el enlace anterior para obtener instrucciones.

Ahora puede configurar el cifrado. Primero, formatee la partición con cryptsetup comando.

# cryptsetup luksFormat /dev/sdx1

Tenga en cuenta que está cifrando la partición , no la unidad física en sí. Verá una advertencia de que LUKS borrará su disco; debe aceptarlo para continuar. Se le pedirá que cree una frase de contraseña, así que hágalo. No olvides esa contraseña. ¡Sin él, nunca podrá volver a acceder a ese disco!

Cifraste la partición de la memoria USB, pero todavía no hay ningún sistema de archivos en la unidad. Por supuesto, no puede escribir un sistema de archivos en la unidad mientras está bloqueado, así que primero abra la unidad con LUKS. Puede proporcionar un nombre amigable para los humanos para su unidad; para este ejemplo, utilicé mySafeDrive .

# cryptsetup luksOpen /dev/sdx1 mySafeDrive

Ingrese su frase de contraseña para abrir la unidad.

Busque en /dev/mapper y verá que ha montado el volumen junto con cualquier otro volumen LVM que pueda tener, lo que significa que ahora tiene acceso a esa unidad. El nombre personalizado (por ejemplo, mySafeDrive) es un enlace simbólico a un designador generado automáticamente en /dev/mapper . Puede usar cualquiera de las dos rutas cuando opere en esta unidad.

# ls -l /dev/mapper/mySafeDrive
lrwxrwxrwx. 1 root root 7 Oct 24 03:58 /dev/mapper/mySafeDrive -> ../dm-4

Crea tu sistema de archivos.

# mkfs.ext4 -o Linux -L mySafeExt4Drive /dev/mapper/mySafeDrive

Ahora haz un ls -lh en /dev/mapper y verá que mySafeDrive es en realidad un enlace simbólico a algún otro desarrollador; probablemente /dev/dm0 o similar. Ese es el sistema de archivos que puedes montar:

# mount /dev/mapper/mySafeExt4Drive /mnt/hd

Ahora el sistema de archivos en la unidad encriptada está montado. Puede leer y escribir archivos como cabría esperar con cualquier unidad.

Utilice unidades cifradas con el escritorio

LUKS está integrado en el kernel, por lo que su sistema Linux es plenamente consciente de cómo manejarlo. Desconecte la unidad, vuelva a conectarla y móntela desde su escritorio. En el administrador de archivos Dolphin de KDE, se le solicitará una contraseña antes de descifrar y montar la unidad.

Usar LVM y LUKS es fácil y le brinda flexibilidad como usuario y administrador. Al estar estrechamente integrado en el propio Linux, tiene un buen soporte y es una excelente manera de agregar una capa de seguridad a sus datos. ¡Pruébalo hoy!


Linux
  1. Cómo administrar las capacidades de archivos de Linux

  2. Cómo administrar la contraseña de la cuenta en Linux

  3. Cómo usar Google Drive en Linux

  4. Cómo administrar múltiples versiones de Python con Pyenv en Linux

  5. Cómo administrar estaciones de trabajo Linux con políticas

Cómo administrar varias versiones de Java con jEnv en Linux

Cómo administrar versiones de Nodejs con n en Linux

Cómo crear un grupo de volúmenes en Linux con LVM

Cómo asegurar servidores Linux con SE Linux

Cómo administrar de forma remota un servidor Linux con SSH

Cómo administrar el almacenamiento con GParted Linux