Imaginaros que nos dejan en nuestras manos un servidor a miles de kilómetros de distancia, con 4 discos de 2 Terabytes cada uno y te dicen: «Créame un volumen».

Pues eso es lo que me ha pasado hace poco y la solución es relativamente fácil, después de pelearte unas pocas horas :-). Vamos a ello.

Conectarnos como Root al servidor

Estoy toda la sesión loqueado como root, ya que sino no me permite ejecutar el comando fdisk.

ssh root@dominio.com

Listar discos duros

fdisk -l

Nos devolverá los dispositivos de almacenamiento:

Disk /dev/sda: 250 GB, 250056737280 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1   *           1       29366   235882363   83  Linux
Warning: Partition 1 does not end on cylinder boundary.
/dev/sda2           29366       30402     8321670    5  Extended
Warning: Partition 2 does not end on cylinder boundary.
/dev/sda5           29366       30402     8321670   82  Linux swap
Warning: Partition 5 does not end on cylinder boundary.
Error: /dev/sdb: unrecognised disk label
Error: /dev/sdc: unrecognised disk label
Error: /dev/sdd: unrecognised disk label
Error: /dev/sde: unrecognised disk label

En este caso los nuestros discos duros discos duros son: /dev/sdb, /dev/sdc, /dev/sdd y /dev/sde ya que están sin formatear.

Formatear los discos duros

Ejecuto cfdisk con cada unos de las 4 unidades de disco duro: strong>/dev/sdb, /dev/sdc, /dev/sdd y /dev/sde

cfdisk /dev/sdb

Creo una nueva tabla de particiones del tipo msdos, y creo una nueva partición primaria, desde el inicio del disco (Begining) en ext4, hago Commit y luego Quit por cada uno de los 4 discos.

Una vez creado todo, si volvemos a ejecutar fdisk -l, aparecerán la siguiente información:

Disk /dev/sda: 250 GB, 250056737280 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1   *           1       29366   235882363   83  Linux
Warning: Partition 1 does not end on cylinder boundary.
/dev/sda2           29366       30402     8321670    5  Extended
Warning: Partition 2 does not end on cylinder boundary.
/dev/sda5           29366       30402     8321670   82  Linux swap
Warning: Partition 5 does not end on cylinder boundary.
 
Disk /dev/sdb: 2000 GB, 2000396321280 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sdb1               1      243201  1953512001   83  Linux
 
Disk /dev/sdc: 2000 GB, 2000396321280 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sdc1               1      243201  1953512001   83  Linux
 
Disk /dev/sdd: 2000 GB, 2000396321280 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sdd1               1      243201  1953512001   83  Linux
 
Disk /dev/sde: 2000 GB, 2000396321280 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sde1               1      243201  1953512001   83  Linux

que indica que ya están formateados. Además ya no se llaman /dev/sdb sino /dev/sdb1 …etc.

Crear el volumen

Instalamos lvm2:

sudo apt-get install lvm2

Ahora creamos volúmenes físicos por cada uno de los 4 discos duros

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

y podremos verlo con

pvdisplay /dev/sdb1

o ver todos con

pvdisplay

Ahora juntamos todos los discos en uno nuevo volumen virtual con:

vgcreate datos /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

Nota: si queremos añadir más volúmenes físicos al virtual creado:

vgextend datos /dev/sdf1

Ahora vamos a crear el volumen lógico ocupando el 100% de espacio con el nombre datos_vol:

lvcreate -n datos_vol -l 100%FREE datos

listamos el volumen:

lvdisplay
 --- Logical volume ---
  LV Path                /dev/datos/datos_vol
  LV Name                datos_vol
  VG Name                datos
  LV UUID                5WZE9U-8pn3-eHqh-o5z7-hHFB-CcBk-bYOiEY
  LV Write Access        read/write
  LV Creation host, time lummyflv, 2014-07-01 18:47:19 +0900
  LV Status              available
  # open                 0
  LV Size                7,28 TiB
  Current LE             1907724
  Segments               4
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

Formatemamos el volumen en Ext4:

mkfs.ext4 /dev/datos/datos_vol

Creamos el directorio para montar el volumen y acceder a él:

mkdir /media/datos_vol

Lo montamos en el anterior directorio:

mount /dev/datos/datos_vol  /media/datos_vol/

Editamos el fichero fstab para que monta siempre el volumen al arrancar:

nano /etc/fstab

y ponemos al final:

/dev/datos/datos_vol    /media/datos_vol/       ext4    defaults        0       0

Con todos estos pasos, ya tendremos creado un volumen de 8TB donde almacenar ingentes cantidades de datos en nuestro servidor.

Fuente: Linuxconfig