En este caso vamos a crear un LVM basado en dos discos de 3TB.
Lo primero que debemos hacer es crear las particiones en ambos discos y decirle que van a usarse para LVM, para ello al ser discos de más de 2TB usaremos parted en vez de fdisk y particiones tipo GPT.
Nota: en
negrita lo que ponemos, en
cursiva lo que va poniendo el sistema. Todos los comandos se han realizado desde el usuario root, se pueden realizar desde cualquier usuario con privilegios para hacer sudo simplemente, como ya sabéis, poniendo sudo delante.
1) Creamos partición para un disco (/dev/sdc en este caso)
#parted /dev/sdc
GNU Parted 3.2
Usando /dev/sdc
¡Bienvenido/a a GNU Parted! Teclee «help» para ver la lista de órdenes.
(parted) mklabel gpt
Aviso: La etiqueta de disco existente en /dev/sdc se destruirá y todos los datos
en este disco se perderán. ¿Desea continuar?
Sí/Yes/No? S(parted) unit TB
(parted) mkpart primary 0 3TB
(parted) set 1 lvm on
(parted) print
Modelo: ATA ST3000VX006-1HH1 (scsi)
Disco /dev/sdc: 3,00TB
Tamaño de sector (lógico/físico): 512B/4096B
Tabla de particiones: gpt
Disk Flags:
Numero Inicio Fin Tamaño Sistema de archivos Nombre Banderas
1 0,00TB 3,00TB 3,00TB primary lvm
(parted) quit
Información: Puede que sea necesario actualizar /etc/fstab.#
2) Hacemos lo mismo para /dev/sdb, tal y como se ve:
# parted /dev/sdb print
Modelo: ATA ST3000VX006-1HH1 (scsi)
Disco /dev/sdb: 3001GB
Tamaño de sector (lógico/físico): 512B/4096B
Tabla de particiones: gpt
Disk Flags:
Numero Inicio Fin Tamaño Sistema de archivos Nombre Banderas
1 1049kB 3001GB 3001GB primari lvm
#
3)Creamos los volúmenes físicos para LVM
#pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
Nota: se puede hacer en una sola línea (pvcreate /dev/sdb1 /dev/sdc1) , pero en mi experiencia, si son pocos, prefiero hacerlos de uno en uno.
Si no ha habido ningún problema podemos ver con pvscan los volúmenes:
# pvscan
PV /dev/sdc1 lvm2 [2,73 TiB]
PV /dev/sdb1 lvm2 [2,73 TiB]
Total: 2 [5,46 TiB] / in use: 0 [0 ] / in no VG: 2 [5,46 TiB]
Con pvdisplay podemos ver la información en más detalle para cada volumen.
# pvdisplay
"/dev/sdc1" is a new physical volume of "2,73 TiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 2,73 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID MoApzg-ZxNp-vecS-DOw0-dmnK-H1W9-JCTkGV
"/dev/sdb1" is a new physical volume of "2,73 TiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 2,73 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID c2iEmj-1igD-tlXM-vmtR-dmqw-VDUf-Eck7b7
4) Creamos el volume group, que como sabemos no es más que un pool de almacenamiento que consiste en uno o varios discos. En nuestro caso hacemos:
# vgcreate vgzm_data /dev/sdb1 /dev/sdc1
Volume group "vgzm_data" successfully created
El parámetro zm_data no es más que el nombre que yo le he puesto a este volumen, que en vuestro caso puede llamarse como queráis.
LVM procesa el almacenamiento en unidades llamadas extents (en el momento de crear está entrada por defecto eran de 4MB). Podéis cambiar este tamaño por defecto cuando se hace el vgcreate con el parámetro -s (tal y como pone en la página del manual
-s Tamaño [kKmMgGtT] ).
Podemos ver con vgdisplay nuestro nuevo volumen:
# vgdisplay
--- Volume group ---
VG Name vgzm_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 5,46 TiB
PE Size 4,00 MiB
Total PE 1430792
Alloc PE / Size 0 / 0
Free PE / Size 1430792 / 5,46 TiB
VG UUID 8yhV48-Tm0j-TNEF-i8tC-S7vZ-VI1J-rFJhFW
5) Finalmente creamos el volumen lógico. En mis caso lo voy a crear al máximo de capacidad, ya que este VG sólo se va a usar para un fin y lo que necesito es que se puedan añadir más discos a futuro si es necesario.
# lvcreate -l 100%FREE -n zm_data vgzm_data
Logical volume "zm_data" created.
Aunque los parámetros están claros, quizás el -l sea el más confuso que es la longitud en extends, en la que se puede poner un entero o un porcentaje de, en este caso el espacio vacío que queda (man lvcreate para más info).
Con lvdisplay ya podemos ver nuestro nuevo volumen lógico.
# lvdisplay
--- Logical volume ---
LV Path /dev/vgzm_data/zm_data
LV Name zm_data
VG Name vgzm_data
LV UUID XBD7IP-21M9-49Ad-RDeu-OoXN-dL0Y-yudhiu
LV Write Access read/write
LV Creation host, time srvcam, 2016-06-06 14:24:21 +0200
LV Status available
# open 0
LV Size 5,46 TiB
Current LE 1430792
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
Si observáis el vgdisplay, veréis que en Free PE ahora pone 0, mientras antes ponía la cantidad de extends / espacio disponible sin usar en ningún volumen, al contrario que los usados Alloc PE:
#vgdisplay
--- Volume group ---
VG Name vgzm_data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
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 5,46 TiB
PE Size 4,00 MiB
Total PE 1430792
Alloc PE / Size 1430792 / 5,46 TiB
Free PE / Size 0 / 0
VG UUID 8yhV48-Tm0j-TNEF-i8tC-S7vZ-VI1J-rFJhFW
6) Formatear y usar
# mkfs.ext4 /dev/vgzm_data/zm_data
mke2fs 1.42.13 (17-May-2015)
Se está creando un sistema de ficheros con 1465131008 bloques de 4k y 183144448 nodos-i
UUID del sistema de ficheros: 41323ea1-7512-41d7-b219-51502d57dc6f
Respaldo del superbloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Reservando las tablas de grupo: hecho
Escribiendo las tablas de nodos-i: hecho
Creando el fichero de transacciones (32768 bloques): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho
Y ya lo usáis donde queráis.
# mount /dev/vgzm_data/zm_data /mnt
# df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/mapper/vgzm_data-zm_data 5,5T 58M 5,2T 1% /mnt
#