GNU/Linux >> Tutoriales Linux >  >> Linux

Una guía para principiantes de LVM

Versión 1.0
Autor:Falko Timme
Última actualización:2015-02-09

Esta guía muestra cómo trabajar con LVM (Administración de volúmenes lógicos) en Linux. También describe cómo usar LVM junto con RAID1 en un capítulo adicional. Como LVM es un tema bastante abstracto, este artículo viene con una imagen de Debian Etch VMware que puede descargar e iniciar, y en ese sistema Debian Etch puede ejecutar todos los comandos que ejecuto aquí y comparar sus resultados con los míos. A través de este enfoque práctico, debería acostumbrarse a LVM muy rápido.

Sin embargo, ¡no doy ninguna garantía de que este tutorial funcione para usted!

1 nota preliminar

Este tutorial se inspiró en dos artículos que leí:

  • http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
  • http://www.debian-administration.org/articles/410

Estos son excelentes artículos, pero difíciles de entender si nunca antes ha trabajado con LVM. Es por eso que he creado esta imagen Debian Etch VMware que puede descargar y ejecutar en VMware Server o VMware Player (consulte https://www.howtoforge.com/import_vmware_images para obtener información sobre cómo hacerlo).

Instalé todas las herramientas que necesitamos durante el transcurso de esta guía en el sistema Debian Etch (ejecutando

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) para que no tengas que preocuparte por eso.

La red del sistema Debian Etch está configurada a través de DHCP, por lo que no tiene que preocuparse por las direcciones IP en conflicto. La contraseña de root es howtoforge. También puede conectarse a ese sistema con un cliente SSH como PuTTY. Para averiguar la dirección IP del sistema Debian Etch, ejecute

ifconfig

El sistema tiene seis discos duros SCSI, /dev/sda - /dev/sdf. /dev/sda se usa para el propio sistema Debian Etch, mientras que usaremos /dev/sdb - /dev/sdf para LVM y RAID. /dev/sdb - /dev/sdf cada uno tiene 80 GB de espacio en disco. Al principio, actuaremos como si cada uno tuviera solo 25 GB de espacio en disco (por lo tanto, usaremos solo 25 GB en cada uno de ellos), y en el curso del tutorial "reemplazaremos" nuestros discos duros de 25 GB con discos duros de 80 GB, demostrando así cómo puede reemplazar discos duros pequeños por otros más grandes en LVM.

El artículo http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html usa discos duros de 250GB y 800GB, pero algunos comandos como pvmove toman mucho tiempo con tales tamaños de disco duro, por eso decidí usar discos duros de 25 GB y 80 GB (eso es suficiente para entender cómo funciona LVM).

1.1 Resumen

Descargue esta imagen de Debian Etch VMware (~310 MB) e inícielo así. Inicie sesión como root con la contraseña howtoforge.

Diseño LVM 2

Básicamente, LVM se ve así:

Tiene uno o más volúmenes físicos (/dev/sdb1 - /dev/sde1 en nuestro ejemplo), y en estos volúmenes físicos crea uno o más grupos de volúmenes (por ejemplo, servidor de archivos), y en cada grupo de volúmenes puede crear uno o más volúmenes lógicos. Si usa varios volúmenes físicos, cada volumen lógico puede ser más grande que uno de los volúmenes físicos subyacentes (pero, por supuesto, la suma de los volúmenes lógicos no puede exceder el espacio total que ofrecen los volúmenes físicos).

Es una buena práctica no asignar todo el espacio a los volúmenes lógicos, sino dejar algo de espacio sin usar. De esa manera, puede ampliar uno o más volúmenes lógicos más adelante si siente la necesidad de hacerlo.

En este ejemplo, crearemos un grupo de volúmenes llamado servidor de archivos y también crearemos los volúmenes lógicos /dev/fileserver/share, /dev/fileserver/backup y /dev/fileserver/media (que usará solo la mitad del espacio ofrecidos por nuestros volúmenes físicos por ahora, de esa manera podemos cambiar a RAID1 más adelante (también descrito en este tutorial)).

3 Nuestra primera configuración de LVM

Descubramos nuestros discos duros:

fdisk -l

La salida se ve así:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Todavía no hay particiones en /dev/sdb - /dev/sdf. Crearemos las particiones /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1 y dejaremos /dev/sdf intacto por ahora. Actuamos como si nuestros discos duros tuvieran solo 25 GB de espacio en lugar de 80 GB por ahora, por lo que asignamos 25 GB a /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

El número de cilindros para este disco está establecido en 10443.
No hay nada de malo en eso, pero es mayor de 1024,
y podría, en ciertas configuraciones, causar problemas con:
1) software que se ejecuta en el momento del arranque (por ejemplo, versiones antiguas de LILO)
2) software de arranque y partición desde otros sistemas operativos
   (por ejemplo, DOS FDISK, OS/2 FDISK)

Comando (m para ayuda): <-- m
Comando de acción
   a   alternar una marca de arranque
   b   editar bsd disklabel
   c   alternar el indicador de compatibilidad con DOS
   d   eliminar una partición
   l   listar los tipos de partición conocidos
   m   imprimir este menú
   n   agregar una nueva partición
   o   crear una nueva tabla de particiones de DOS vacía
   p   imprimir la tabla de particiones
   q   salir sin guardar los cambios
   s   crear una nueva etiqueta de disco de Sun vacía
   t   cambiar la id del sistema de una partición
   u cambiar las unidades de visualización/entrada
    v   verificar la tabla de particiones    w   escribir tabla en disco y salir
   x   funcionalidad extra (solo expertos)

Comando (m para ayuda): <-- n
Comando de acción
e   extendido
   p   partición primaria (1-4)
<-- p
Número de partición (1-4): <-- 1
Primer cilindro (1-10443, predeterminado 1):<--
Usando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-10443, predeterminado 10443): <-- +25000M

Comando (m para ayuda): <-- t
Partición seleccionada 1
Código hex (escriba L para listar los códigos): <-- L

 0  Vacío 1e oculto W95 Fat1 80 Old Minix Be Solaris Boot
1 Fat12 24 NEC DOS 81 Minix/Old Lin Bf Solaris
2 Root Xenix 39 Plan 9 82 Linux Swap/So C1 Drdos/SEC (Fat-
3 Xenix USR 3C Partitionmagic 83 Linux C4 DRDOS/SEC (grasa-
4 grasa <32m 40 Venix 80286 84 OS/2 oculto C:C6 DRDOS/SEC (Fat-
5 extendido C Boot de preparación 85 Linux extendido C7 Syrinx
6 Fat16 42 SFS 86 NTFS Volumen Conjunto DA DA DATOS Non-FS
7 HPFS/NTFS 4D QNX4.X 87 NTFS Volumen Conjunto DB CP/M/CTOS/. <
8 aix 4e qnx4.x 2nd Parte 88 Linux Entenerxt de Dell Utilidad
9 AIX Bootable 4F Qnx4.x 3ra Parte 8e Linux LVM DF Bootit
A OS /2 Boot Manag 50 Ontrack DM 93 AMEBABA E1 DOS Access
B W95 Fat32 51 Ontrack DM6 Aux 94 AMOBA BBT E3 DOS R /O
C W95 FAT32 (LBA) 52 CP /M 9F BSD /OS E4 Speedstor
E W95 FAT16 ( Lba) 53 Ontrack DM6 Aux A0 IBM ThinkPad Hi Eb Beos FS
F W95 Ext'd (LBA) 54 OntrackDM6 A5 FreeBSD EFI EFI GPT
10 OPUS 55 EZ-DRive A6 OpenBSD EFI (FAT-12 /16/
11  FAT12 oculto    56  Golden Bow      a7  NeXTSTEP         f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS f1 speedstor
14 Fat16 oculto <3 61 Speedstor A9 Netbsd F4 Speedstor
16 Hidden Fat16 63 Gnu Hurd o Sys Ab Darwin Boot F2 DOS Secundario
17 Hidden HPFS /NTF 64 NETWARE DE NOVELLO B7 BSDI FS FS FS fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe LANstep
1b  Oculto W95 FAT3 70  DiskSecure Mult bb  Asistente de arranque hid ff BBT
1c  FAT3 Oculto/W95 /> Código hexadecimal (escriba L para listar códigos): <-- 8e
Tipo de sistema cambiado de partición 1 a 8e (Linux LVM)

Comando (m para ayuda): <-- w
¡La tabla de particiones se ha modificado!

Llamar a ioctl() para volver a leer la tabla de particiones.
Sincronizar discos.

Ahora hacemos lo mismo con los discos duros /dev/sdc - /dev/sde:

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

Entonces corre

fdisk -l

otra vez. La salida debería verse así:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Ahora preparamos nuestras nuevas particiones para LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Vamos a revertir esta última acción con fines de entrenamiento:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdd1" successfully wiped
  Labels on physical volume "/dev/sde1" successfully wiped

Entonces corre

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

de nuevo:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Ahora corre

pvdisplay

para conocer el estado actual de sus volúmenes físicos:

server1:~# pvdisplay
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU

  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B

  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B

  --- NEW Physical volume ---
  PV Name               /dev/sde1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6

Linux
  1. Creación de volúmenes lógicos en Linux con LVM

  2. La guía completa para principiantes de LVM en Linux

  3. CentOS / RHEL 7:Guía para principiantes de firewalld

  4. Guía para principiantes de NFS en CentOS / RHEL

  5. CentOS / RHEL:Guía para principiantes de cron

Guía de Spark Streaming para principiantes

Configurar una IP estática en Ubuntu:una guía para principiantes

Una guía para principiantes para entender sudo en Ubuntu

Una guía para principiantes sobre los trabajos de Cron

Los comandos LVM fallan con "Error al cargar el archivo de configuración /etc/lvm/lvm.conf"

Guía para principiantes de gestión de usuarios de MySQL