Vamos a ver como trabajar con LVM (Logical Volume Manager).
Un documento fundamental para entender su funcionamiento y de consulta habitual es el siguiente HOWTO. Hace tiempo que no se actualiza pero los ejemplos prácticos son los mismos. El documento desaconsejan LVM para la partición de root, pero hoy en día prácticamente cualquier sistema usa LVM para root. El principal problema que existía antes era la recuperación de un sistema con root encapsulado, hoy cualquier disco de rescate, puede importar y montar este tipo de volúmenes, recuperándose el sistema sin problemas.
El funcionamiento es el siguiente; los disco o particiones física se agregan a grupos de volúmenes, en estos grupos de volúmenes, se crean volúmenes donde ya se pueden crear particiones lógica y se pueden formatear y montar como filesystems.
En este esquema se ve más claro. |
Las principales ventajas que se observan comparándolo con el modelo clásico es que con unos cuantos comandos puedes retirar un disco físico del grupo de discos y sustituirlo por otro. Otra gran ventaja es la ampliación de FS en caliente. También existe la posibilidad de clonar Volumenes o hacer Snapshots de los mismos.
Para el uso de LVM no es necesario instalar nuevos módulos desde hace tiempo esta soportado por el kernel básico de Linux.
Vamos ha hacer un par de ejemplos. Primero de todo crearemos una partición en /dev/sda de 200M y del tipo LVM (8e), lo haremos con nuestro amigo fdisk.
[root@gamma ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x08e3a6bd
Device Boot Start End Blocks Id System
/dev/sda1 1 50 401593+ 82 Linux swap / Solaris
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (51-130, default 51):
Using default value 51
Last cylinder, +cylinders or +size{K,M,G} (51-130, default 130): +200M
Command (m for help): p
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x08e3a6bd
Device Boot Start End Blocks Id System
/dev/sda1 1 50 401593+ 82 Linux swap / Solaris
/dev/sda2 51 76 208845 83 Linux
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sda: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x08e3a6bd
Device Boot Start End Blocks Id System
/dev/sda1 1 50 401593+ 82 Linux swap / Solaris
/dev/sda2 51 76 208845 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Se queja de que no ha podido actualizar la tabla de particiones, pues lo hacemos con partx.
[root@gamma ~]# partx /dev/sda
Ahora tenemos que hacer que /dev/sda sea un volumen físico, tan fácil como:
[root@gamma ~]# pvcreate /dev/sda2Writing physical volume data to disk "/dev/sda2"
Physical volume "/dev/sda2" successfully created
Crearemos el grupo de volumenes (vg1) y añadires /dev/sda2 como volumen fisico:
[root@gamma ~]# vgcreate vg1 /dev/sda2
Volume group "vg1" successfully created
Crearemos un volumen de 200M:
[root@gamma ~]# lvcreate -L 200MB -n lv1 vg1Logical volume "lv1" created
Lo formateamos:
[root@gamma ~]# mkfs.ext4 /dev/mapper/vg1-lv1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Y lo montamos:
[root@gamma ~]# mkdir /dir1
[root@gamma ~]# mount /dev/mapper/vg1-lv1 /dir1
Para que se monte el fs por defecto en el arranque, añadiremos la respectiva entrada en /etc/fstab. Está vez en vez de poner el device y el punto de montaje lo haremos por UUID. El UUID es el identificador universal para los discos y se mantiene, incluso cambiandolo de sistema.
Identificamos el UUID de nuestro volumen.
[root@gamma ~]# blkid |grep lv1Añadimos la siguiente linea al /etc/fstab:
/dev/mapper/vg1-lv1: UUID="87f364f0-b77d-49b8-9620-a13c20f729d0" TYPE="ext4"
UUID=87f364f0-b77d-49b8-9620-a13c20f729d0 /dir1 ext4 defaults 1 2
...(Continuará)
No hay comentarios:
Publicar un comentario