Inicio Ampliando el vps
Entrada
Cancelar

Ampliando el vps

Como tengo el virus de linux haciendo de las suyas, resulta que el vps que tenía contratado se me ha quedado pequeño y, aprovechando que ha cumplido el año de contrato, por unos pocos euros más he ampliado la RAM, el núcleo y el almacenamiento. Todo esto lo hace el proveedor, pero cuando entro en el servidor resulta que la unidad sigue teniendo los mismos gigas que antes, sólo que ahora el disco es más grande, así que hay que usar LVM para ampliarlo y poder usar todo el espacio nuevo disponible.

Sin meterme en explicaciones muy técnicas (ya hay documentación de sobra para quien quiera saber exactamente cómo funciona), en el vps usamos particiones lógicas en lugar de físicas, con lo que podemos montar una partición única de trabajo usando varias partes de un disco físico para que todo fluya como debe. ¿Y qué ganamos con esto? Pues por ejemplo, no tener que reinstalarlo todo para ampliar la capacidad del servidor. Cogemos el que ya tenemos y le pegamos un trozo nuevo que está sabe Dios dónde y lo seguimos usando como si nada.

Así que vamos al lío.

Lo primero hacer un backup del sistema, bien lo tengas contratado con el proveedor o lo hagas como yo, que tengo en el pc un disco preparado para eso, así con lo que lanzo mi script y yastá. Lo segundo crear un snapshot del sistema por si algo falla. Desde la web de mi proveedor apago el vps y creo el snapshot.

Ya tenemos las espaldas cubiertas por si algo falla, así que podemos empezar con la ampliación.

Primero comprobamos la estructura de nuestro disco con lsblk, lo que nos muestra algo así:

1
2
3
4
5
6
7
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   80G  0 disk 
├─sda1          8:1    0  487M  0 part /boot
└─sda2          8:2    0 19.5G  0 part 
  ├─vg00-lv00 254:0    0  1.9G  0 lvm  [SWAP]
  └─vg00-lv01 254:1    0 17.6G  0 lvm  /
sr0            11:0    1 1024M  0 rom  

Como podemos ver, tenemos el disco sda de 80 gigas con dos particiones: sda1 y sda2. En la partición sda1 está el boot y en la partición sda2 tenemos dos volúmenes lógicos que suman 19.5 gigas. Nos faltan 60 gigas que están sin formatear. En este caso lo que vamos a hacer en el espacio nuevo es crear una partición y otro grupo de volúmenes donde alojar un nuevo volumen lógico preparado para poder ampliarlo en un futuro.

  • Creamos la nueva partición usando fdisk.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    fdisk /dev/sda
      
    [pulsamos "n" para crear una nueva partición]
      
    [pulsamos "p" para que la partición sea primaria]
      
    [asignamos el nuevo número de partición]
      
    [pulsamos enter dos veces para que ocupe todo el espacio libre]
      
    [De vuelta en el prompt de fdisk, pulsamos "t" para cambiar el identificador de sistema de la partición]
      
    [elegimos la partición que hemos creado (en mi caso la 3)]
      
    [introducimos el código hexadecimal para Linux LVM (8e)]
      
    [imprimimos la tabla de particiones pulsando "p" para comprobar que todo esté bien y debería salir algo como esto:
    
      Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors
      Disk model: Virtual disk    
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0x1d120e0a
        
      Device     Boot    Start       End   Sectors  Size Id Type
      /dev/sda1  *        2048    999423    997376  487M 83 Linux
      /dev/sda2         999424  41943039  40943616 19.5G 8e Linux LVM
      /dev/sda3       41943040 167772159 125829120   60G 8e Linux LVM
    ]
    
    [pulsamos "w" para guardar los cambios]
    
  • Ahora vamos a crear el volumen físico de la partición.
    1
    2
    
    pvcreate /dev/sda3
      Physical volume "/dev/sda3" successfully created.
    

    Si quisiéramos añadir más particiones haría que hacer lo mismo con estas.

  • Creamos el grupo de volumen.
    1
    2
    
    vgcreate vg01 /dev/sda3
      Volume group "vg01" successfully created
    

    Con el comando vgscan podemos consultar los grupos creados, con el comando pvscan los volúmenes físicos.

    1
    2
    3
    4
    5
    6
    7
    
    vgscan
      Found volume group "vg01" using metadata type lvm2
      Found volume group "vg00" using metadata type lvm2
    pvscan
      PV /dev/sda3   VG vg01            lvm2 [<60.00 GiB / <60.00 GiB free]
      PV /dev/sda2   VG vg00            lvm2 [<19.52 GiB / 0    free]
      Total: 2 [<79.52 GiB] / in use: 2 [<79.52 GiB] / in no VG: 0 [0   ]
    
  • Creamos el volumen lógico donde montaremos el sistema de archivos usando todo el espacio disponible en el grupo de volúmenes.
    1
    2
    
    lvcreate -l 100%VG -n lv02 vg01
      Logical volume "lv02" created.
    

    Comprobamos el estado de los volúmenes con lvscan.

    1
    2
    3
    4
    
    lvscan
      ACTIVE            '/dev/vg01/lv02' [<60.00 GiB] inherit
      ACTIVE            '/dev/vg00/lv00' [<1.91 GiB] inherit
      ACTIVE            '/dev/vg00/lv01' [17.61 GiB] inherit
    
  • Formateamos y montamos el volumen como una partición normal.
    1
    2
    3
    
    mkfs.ext4 /dev/vg01/lv02
    mkdir /media/newvol
    mount /dev/vg01/lv02 /media/newvol
    
  • Modificamos el fichero /etc/fstab para añadir el nuevo volumen y que se monte al arrancar el sistema.
    1
    
    /dev/mapper/vg01-lv02 /media/archivo    ext4    defaults   0       0
    
  • Reiniciamos y ya debería estar todo bien.
Esta entrada está licenciada bajo CC BY 4.0 por el autor.