LVM es un Gestor de volúmenes lógicos (Logical Volume Manager) para el sistema operativo Linux.
Contents
Presentación
La gestión de volúmenes lógicos proporciona una vista de más alto nivel sobre el almacenamiento de disco en un sistema de computación que la visión tradicional de discos y particiones. Esto da al administrador del sistema mucha mayor flexibilidad en preparar almacenaje para aplicaciones y usuarios.
Los volúmenes de almacenaje creados bajo el control del gestor de volúmenes lógicos pueden ser redimensionados y movidos de lugar a deseo.
Definiciones
PV : Volúmenes Físicos (Physical Volumes). Esto significa el disco duro, particiones de discos duros, ?RAID o ?LUNs de un ?SAN que forman "Volúmenes físicos" (o PVs).
VG : Grupos de Volúmenes (Volume Groups). Esto es una colección de uno o más Volúmenes Físicos.
LV : Volúmenes Lógicos (Logical Volumes). Los LVs están dentro de un Grupo de Volúmenes y conforman, en efecto, una partición virtual.
PE : Extensiones Físicas (Physical Extents). Para manipular los verdaderos datos, se divide en bloques de datos llamados Extensiones Físicas.
LE : Extensiones Lógicas (Logical Extents). Similar a las Extensiones Físicas, pero a nivel de Volumen Lógico. Las extensiones físicas son a los volúmenes lógicos tal como las Extensiones Lógicas son a los Volúmenes Lógicos. El tamaño de los bloques es el mismo para cada Volumen Lógico (LV) del mismo Grupo de Volúmenes (VG).
Un ejemplo:
||-------------------------------OS---------------------------------|| ||-No-LVM-||-------------------------LVM---------------------------|| || /boot || LV-1 (/) | LV-2 (swap)| LV 3 (/home) | LV-4 (/tmp)|| Volúmenes Lógicos(LV) || ||------------------------------------------|------------|| || || VG 1 | VG 2 || Grupo de Volúmenes(VG) || ||------------------------------------------|------------|| ||/dev/sda1|| /dev/sda2 | /dev/sda3 | /dev/sdb2 | /dev/sdd4 || Volúmenes Físicos(PV) ||---------||-------------------------------------------------------||
Deberías saber
LVM cifrado
Al formatear un volumen LVM, se puede elegir entre LVM cifrado o LVM sin cifrar. Para proteger la confidencialidad de tus valiosos datos, por caso en el suceso de una pérdida o robo de tu computador o almacenamiento, tales como un volumen, un disco de estado sólido, o un disco duro; al formatear un volumen LVM se sugiere que consideres formatearlo usando la opción LVM cifrado (encrypted LVM).
Si eliges la opción LVM cifrado,se sugiere que consideres la creación de un contraseñas de respaldo. Para que la recuperación sea rápida y fácil
De otro modo en caso de que tu contraseña no esté funcionando, te arriesgas a perder permanentemente todos tus datos de valor. e sorprendentemente frecuente que la gente pierda todos sus datos porque por alguna razón ya no les funcione su contraseña, y no crearon un respaldo de las mismas. El cifrado de LVM es muy fuerte, así que si por algún motivo te has quedado bloqueado fuera, a menos que tengas las contraseñas de respaldo es muy probable que te quedes permanentemente bloqueado
Contraseñas de respaldo
Crear contraseñas de respaldo es un proceso en dos partes. Primero añades las contraseñas de respaldo, segundo haces la copia de seguridad de esas contraseñas.
Pasos
- Añadir contraseñas de respaldo
Ejecuta en la Terminal como Root
cryptsetup luksChangeKey <dispositivo> -S <ranura>
- Notas
Donde -S significa que quieres editar una ranura de claves específica. Necesitas cambiar <ranura> por un número entre cero y siete [0-7]. Este número identificará cuál ranura de claves quieres editar. Hay ocho ranuras de claves disponibles en total. En ek rango de cero a siete. Necesitas reemplazar <dispositivo> con la ruta a tu volumen LVM cifrado. Por ejemplo /dev/sda.
- Notas
Se sugiere crear al menos 3 contraseñas de respaldo. Si quieres añadir una contraseña de respaldo adicional simplemente ejecuta la misma orden, pero cambia el número de la <ranura> al que te plazca. Por ejemplo:
cryptsetup luksChangeKey /dev/sda -S 2
- Haz una copia de seguridad de las contraseñas
Ejecuta la siguiente orden en la Terminal como Root
cryptsetup luksHeaderBackup <dispositivo> --header-backup-file <fichero>
- Notas
Donde <dispositivo> es la ubicación para guardar tu respaldo, por ejemplo /dev/sda. Y <fichero> es el nombre de tu fichero de respaldo, por ejemplo /media/jenn/2017-05-18_luks_sda_backup. Esta orden hará una copia de seguridad de todas las ocho ranuras de claves.
- Se sugiere guardar el fichero en una ubicación segura, fuera de línea, y en una ubicación distinta. Tal que en caso de se dañe el computador o fuera robado, aun serías capaz de recuperar y acceder a tus datos respaldados si los hiciste.
Documentación wiki de LUKS (eng) original y oficial
- Notas
Recuperar contraseñas
- Recuperar el respaldo de contraseñas
Ejecuta la siguiente orden en la Terminal como Root
cryptsetup luksHeaderRestore <dispositivo> --header-backup-file <fichero>
- Notas
Este comando eliminará todas las ocho ranuras de contraseñas actuales, luego restaurará todas tus contraseñas de respaldo. Antes de ejecutar esta orden, se sugiere comprobar doblemente que esta orden esta correctamente configurada y que realmente se necesita proceder a hacerlo. No se puede deshacer
Necesitas cambiar <dispositivo> por ela ruta a tu volumen LVM cifrado, por ejemplo /dev/sda. Necesitas cambiar <fichero> por la ruta a tu fichero de respaldo, por ejemplo /media/jenn/2017-05-18_luks_sda_backup.
Documentación wiki de LUKS original y oficial
- Notas
Nota: La(s) contraseña(s) de un volumen LVM cifrado se almacenan dentro de su(s) cabecera(s) Configuracion de clave unificada, Linux Unified Key Setup (LUKS). Es importante crear contraseñas de respaldo porque en el futuro si por algún motivo ya no funcionara más tu clave, o si simplemente la olvidaras, o si la recordaras pero sucede algo inesperado como un bug tras una actualización del núcleo y de algún modo ya no funcionase la contraseña, entonces sin contraseñas de respaldo te arriesgas a perder permanentemente todos tus valiosos datos guardados y cifrados en ese almacenamiento LVM cifrado.
Partición cifrada LVM de swap
Cuando se usa una particion LVM cifrada, la clave de cifrado se almacena en memoria (RAM). Puesto que recuperar esta clave permite descifrar los datos, es frecuentemente recomendado evitar dejar una copia de ella que fueraaccesible a un posible ladrón del computador o del volumen, o a un técnico de mantenimiento. Eso es sin embargo algo que puede fácilmente ocurir con un laptop, ya que al hibernar los contenidos de la RAM se almacenan en la partición swap. Si esta partición no está cifrada, el ladrón puede acceder a la clave y usarla para descifrar los datos de las particiones cifradas. Este es el motivo por el cual, cuando uses particiones cifradas, se recomienda también cifrar la partición swap. El instalador de Debian te avisará a ti o a otros usuarios si se intenta crear una partición LVM cifrada y mientras tanto la partición swap no lo estuviera. Fuente.
Etiquetas
Deberiasutilizar etiquetas para la identificación de Volumen Lógico (LV) en /etc/fstab, en vez de UUIDs o de las reglas de nombrado del kernel (/dev/sda) para evitar conflictos con las restauraciones de capturas de Volúmenes (snapshots).
/boot
Ni Grub ni ?LiLo son compatibles con LVM, así que el /boot debería quedar fuera del disco de almacenamienteo gestionado por LVM.
Capturas de LVM2 y udev en Debian
Hay algunos problemas al crear capturas LVM en Debian con udev, véase 343671
Instalación
Todas las herramientas para gestionar un volumen LVM están disponibles en el paquete lvm2
sudo apt-get install lvm2
Luego arranque el servicio lvm:
sudo service lvm2 start
Si es necesario, puedes instalar el paquete system-config-lvm, es una utilidad gráfica para configurar Volúmenes Lógicos gráficamente (necesita bibliotecas de KDE).
sudo apt-get install system-config-lvm
Listado de ordenes de LVM
lvmchange — Cambia atributos del Gestor de Volúmenes Lógicos.
lvmdiskscan — Escruta por si hay dispositivos visibles a LVM2.
lvmdump — Crea volcados de información de lvm2 para propósito de diagnosis.
Volúmenes Físicos (PV)
Crear un PV
Para declarar el /dev/sda2 como un volumen físico disponible para LVM:
sudo pvcreate /dev/sda2
Eliminar un PV
Para eliminar un Volumen Físico (PV) en /dev/sda2 todos los datos deben haber sido movidos fuera de allí. Para hacer eso, asegúrese de que otros volúmenes físicos que contengan el mismo grupo de volúmenes tienen suficiente espacio libre y entonces lance esta orden:
pvmove /dev/sda2
Después de haber movido los datos fuera del disco, elimínelo del grupo de volúmenes (en este caso, del llamado myVirtualGroup1:
sudo vgreduce myVirtualGroup1 /dev/sda2
Y tras estas preparaciones finalmente:
sudo pvremove /dev/sda2
Listado de órdenes de PV
pvchange — Cambia atributos del Volúmen Físico.
pvck — Comprueba los metadatos del Volumen Físico.
pvcreate — Inicializa un disco o partición para su uso por LVM.
pvdisplay — Muestra atributos del Volumen Físico.
pvmove — Mueve Extensiones Físicas.
pvremove — Elimina un Volumen Físico.
pvresize — Redimensiona un disco o partición en uso por LVM2.
pvs — Comunica información sobre Volúmenes Físicos.
pvscan — Escruta todos los discos para hallar Volúmenes Físicos.
Grupo de Volúmenes (VG)
Crear un grupo de volúmenes de volúmenes físicos
sudo vgcreate myVirtualGroup1 /dev/sda2
Extender un grupo de volúmenes
Declare otro volumen físico:
sudo pvcreate /dev/sda3
Luego añada el nuevo PV al VG que ya existe:
sudo vgextend myVirtualGroup1 /dev/sda3
Verificar la configuración de VG
Simplemente ejecute esta orden:
sudo vgdisplay
Listado de órdenes de VG
vgcfgbackup — Respalda el descriptor de área de un VG.
vgcfgrestore — Restaura el descriptor de área de un VG.
vgchange — Cambia atributos de un VG.
vgck — Comprueba los metadatos de un VG.
vgconvert — Convierte el formato de metadatos de un VG.
vgcreate — Crea un VG.
vgdisplay — Muestra atributos de VGs.
vgexport — Hace que los VGs sean desconocidos para el sistema.
vgextend — Añade Volumenes Físicos PV al VG.
vgimport — Hace que los VGs exportados sean conocidos para el sistema.
vgimportclone — Importa y renombra VGs duplicados (p.ej. una captura de hardware).
vgmerge — Mezcla dos VGs.
vgmknodes — Recrea directorio de VG y ficheros especiales de Volúmenes Lógicos LV
vgreduce — Reduce un VG mediante la eliminación de uno o más Volúmenes Físicos PVs.
vgremove — Elimina un VG.
vgrename — Renombra un VG.
vgs — Comunica información sobre VGs.
vgscan — Escruta todos los discos para hallar VGs y reconstruir las caches.
vgsplit — Secciona un VG en dos, moviendo cualesquiera Volúmenes Lógicos LVs de un VG a otro moviendo Volúmenes Físicos PVs enteros.
Volúmenes Lógicos (LV)
Crear un LV
No olvides comprobar que tienes espacio suficiente: naturalmente, un LV de 100 GB (Giga Bytes) no entra en un Grupo Virtual VG de 10 GB.
Crea un LV en un VG:
sudo lvcreate -n myLogicalVolume1 -L 10g myVirtualGroup1
Formatea el LV con el sistema de ficheros deseado (ext4,xfs...)
sudo mkfs -t ext4 /dev/myVirtualGroup1/myLogicalVolume1
Puedes probar si funciona:
mkdir /test sudo mount /dev/myVirtualGroup1/myLogicalVolume1 /test df -h
También puedes probar tus LVs con:
sudo lvdisplay
Eliminar un LV
Para eliminar un LV, asegurate de que no esta ya en uso. Luego simplemente lance esta orden para eliminar el LV myLogicalVolume1 del VG myVirtualGroup1:
sudo lvremove myVirtualGroup1/myLogicalVolume1
Puede que se tem pregunte si quieres realmente eliminar un LV activo. Si es así, confírmalo.
Listado de órdenes de LV
lvchange — Cambiar atributos de un LV.
lvconvert — Convierte un LV de lineal a espejo o captura snapshot.
lvcreate — Crea un LV en un VG existente.
lvdisplay — Muestra los atributos de un LV.
lvextend — Extiende el tamaño de una LV.
lvreduce — Reduce el tamaños de una LV.
lvremove — Elimina un LV.
lvrename — Renombra un LV.
lvresize — Redimensiona un LV.
lvs — Comunica información sobre LVs.
lvscan — Escruta todos los discos para hallar LVs.
Véase también:
Comparación de soluciones de ?gestión de volúmenes Linux para usuarios Debian
- Upstream:
http://sourceware.org/lvm2/ - Pagina principal, lista de correo, IRC...