Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Instalar y administrar un servidor GNU/Linux con LVM (2ªEntrega 2/3)

Leopoldo Álvarez Huerta
  • Escrito por Leopoldo Álvarez Huerta el 12 de Febrero de 2014
  • <1 min de lectura | Linux
Instalar y administrar un servidor GNU/Linux con LVM (2ªEntrega 2/3)

Tras la primera entrega de esta guía, continuamos con este segundo post.

Instalación de LVM en la inicialización de un sistema

Al instalar un sistema basado en una distribución GNU/Linux actual, nos encontramos con las siguientes opciones después de haber seleccionado idioma, teclado, etc….
  • Guiado – Utilizar todo el disco.
  • Guiado – Utilizar el disco completo y configurar LVM.
  • Guiado – Utilizar todo el disco y configurar LVM cifrado.
  • Manual.
Esto puede darse por lo general en varios tipos de distribuciones, sea gestor de instalación gráfico o basado en texto. Si cambian de una a otra, no será significativo. Vamos a ver por ejemplo capturas de pantalla de una distribución OpenSuse 13.1. [caption id="attachment_2573" align="alignnone" width="300"] Comenzando Comenzando[/caption]   [caption id="attachment_2567" align="alignnone" width="296"] Captura de primer paso en la configuración del sistema LVM[/caption] La selección por defecto es la de proponer una partición “/home” independiente. Seleccionaremos la de crear una propuesta basada en LVM o “Guiado – Utilizar el disco completo y configurar LVM.“ Seleccionaremos también un “/home” independiente e iremos a crear una configuración de las particiones. [caption id="attachment_2569" align="alignnone" width="300"] Captura2SuseLVM Seleccionando home independiente, y alguna cosilla más[/caption] Ahora vamos a configurar la configuración de las particiones. Normalmente nos dejará siempre en modo normal o en modo experto (avanzado). Si no tenéis ni idea de particiones, dejadlo en modo normal a no ser que tengáis un espacio de disco muy reducido. Si por el contrario sabéis algo de discos, particionado y sistemas de ficheros, no tengáis miedo al modo avanzado/experto. El disco utilizado es de 32Gb creado desde para esta máquina virtual. [caption id="attachment_2568" align="alignnone" width="300"] Disco duro[/caption] Seleccionamos el modo experto y nos aparecerá la siguiente captura de pantalla. [caption id="attachment_2570" align="alignnone" width="296"] Modo experto particionador gráfico[/caption] Este es el modo gráfico de particionado de Suse. Más adelante veremos cómo usarlo, aunque como operadores o administradores de LINUX aprenderemos a trabajar con LVM desde CLI. Si nos fijamos vemos el dispositivo de disco /dev/sda y 2 particiones:
  • /dev/sda1: Partición no LVM. Se deja el /boot sin estar en LVM por recomendación (En este caso la formatearemos en Ext4)
  • /dev/sda2: Partición LVM. El resto del disco quitando la partición no LVM. LVM2 y volúmenes lógicos home, root y swap.
Por ejemplo, vemos que solo tenemos “/” y “/home” separados, y queremos tener también “/opt”. Nos vamos a “Gestión de Volúmenes”à”System” y vemos los volúmenes lógicos existentes. Si hemos ocupado todo el disco, en este caso es de 32 Gb pequeñito, debemos reducir espacio antes de poder crear más volúmenes. Editamos el “home” y reducimos de 18GB a 10GB, por ejemplo. A continuación, añadimos un volumen lógico nuevo, el “lvopt” y lo montamos en “/opt”. Vemos que nos quedan 2GB libres, así que creamos el “lvvar” y lo montamos en “/var”. Nos quedaría algo tal que así: [caption id="attachment_2571" align="alignnone" width="300"] Resultado final[/caption] Hasta ahora hemos utilizado el grupo de volúmenes (VG) denominado “system”, trabajando sobre el mismo. A continuación un ejemplo desde CLI de otro entorno con mucho más espacio en disco:
poldix@PoldixSunset:~> df -k

Filesystem                  1K-blocks     Used    Available         Use%     Mounted on

/dev/mapper/Vg0-lvroot       4128448   1551580   2367156          40%        /
devtmpfs                     16443260       156       16443104    1%         /dev
tmpfs                        16443260     16008  16427252         1%         /dev/shm
/dev/sda1                    1027768     43652    931908          5%         /boot
/dev/mapper/Vg0-lvhome        4128448   1393440   2525296         36%        /home
/dev/mapper/Vg0-lvtmp          4128448    365244   3553492        10%        /tmp
/dev/mapper/Vg0-lvusr            8256952   4213688   3623836      54%        /usr
/dev/mapper/Vg0-lvvar            4128448    362332   3556404      10%        /var
/dev/mapper/Vgdatos-lvdatos      625442184 350538124 243140280    60%        /datos
/dev/mapper/Vgdatos-lvbackup 625442184 349010484 244674860        59%        /datos_backup
/dev/mapper/Vg0-lvopt         1032088    252584    727076         26%        /opt/bmc
/dev/mapper/Vgdatos1-lvdatos_pro  15477744   9336144   5355376    64%       /datos_pro
Hemos creado los volúmenes lógicos con “lv” delante por una cuestión meramente visual.
  • Grupos de volúmenes: Vg0, Vgdatos y Vgdatos1.
  • Volúmenes lógicos: lvroot, lvhome, lvtmp, lvusr, lvvar, lvdatos,lvbackup,lvopt y lvdatos_pro
  • Partición no LVM: sda1 montado en /boot
Una vez explicado este ejemplo y  creados nuevos volúmenes en nuestro sistema, seguimos adelante con la instalación: Prosigue la instalación Una vez ya tenemos el sistema instalado, queda tal que así: poldix@PoldixSunset:~> df -k
S.ficheros               1K-blocks  Usados Disponibles Uso% Montado en
/dev/mapper/system-root   12306740 4151496     7507052  36% /
devtmpfs                    501884      32      501852   1% /dev
tmpfs                       513616      76      513540   1% /dev/shm
tmpfs                       513616    2748      510868   1% /run
tmpfs                       513616       0      513616   0% /sys/fs/cgroup
/dev/sda1                   387456   84897      278035  24% /boot
/dev/mapper/system-lvopt   6146180   12472     5798452   1% /opt
/dev/mapper/system-home   10190136   64864     9584600   1% /home
/dev/mapper/system-lvvar   1998672  440980     1436452  24% /var
tmpfs                       513616    2748      510868   1% /var/lock
tmpfs                       513616    2748      510868   1% /var/run
Ahora vamos a empezar a trabajar con LVM.

Gestión de volúmenes lógicos

Comandos informativos entorno LVM

Antes de meternos a eliminar volúmenes lógicos, crearlos, redimensionarlos, etc… vamos a ver como visualizar el estado, y los detalles, de los diferentes volúmenes físicos, grupos de volúmenes y volúmenes lógicos de nuestro sistema. Los comandos con los que empezaremos son los siguientes: pvdisplay , vgdisplay y lvdisplay . El comando pvdisplay tiene una salida muy amigable. Sirve para que de un vistazo rápido podamos comprobar los discos y particiones en el sistema. Es decir, visualización de volúmenes físicos. Un ejemplo:
  poldix:/home/poldo# pvdisplay
  --- Physical volume ---
  PV Name               /dev/hdb
  VG Name               testing
  PV Size               2.00 GB / not usable 4.00 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              511
  Free PE               0
  Allocated PE          511
  PV UUID               pE7qSU-COhd-j6a4-YnWg-1mR7-xZ48-XDstZk
   --- Physical volume ---
  PV Name               /dev/hdc1
  VG Name               testing
  PV Size               976.96 MB / not usable 984.50 KB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              244
  Free PE               1
  Allocated PE          243
  PV UUID               rmvKFh-0hGJ-mBby-zPjT-eyvf-2CrP-TjTKG3
Vemos que en este sistema existen 2 PV: hdb y hdc1 Están siendo usados por el grupo de volúmenes testing En el caso del sistema que estábamos usando para pruebas, si recordamos las imágenes anteriores, vemos que tenemos:
  PoldixSunset:~ # pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               system
  PV Size               31.61 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB

  Total PE              8091
  Free PE               1
  Allocated PE          8090
  PV UUID               2uOwRK-x0Bm-BAjY-gUmU-2xiM-bIQo-mq79gv
Donde aparece el PV  “sda2” dedicado al LVM. Con un simple pvdisplay –h o –help veremos otras opciones para el comando, por ejemplo:
  PoldixSunset:~ # pvdisplay -C -a
  PV                VG     Fmt  Attr PSize  PFree
  /dev/root                     ---      0     0 
  /dev/sda1                     ---      0     0 
  /dev/sda2         system lvm2 a--  31.61g 4.00m
  /dev/system/home              ---      0     0 
  /dev/system/lvopt             ---      0     0 
  /dev/system/lvvar             ---      0     0 
  /dev/system/swap              ---      0     0
Aquí tenemos una salida amigable de mucha más información. Vemos por ejemplo los diferentes LVs el VG y una partición que antes no veíamos la “sda1”, donde se encuentran los 400 Mb del arranque. Si le pasamos el parámetro “-v” la salida será más detallada (verbose):
  PoldixSunset:~ # pvdisplay -C -a -v
  PV                VG     Fmt  Attr PSize  PFree DevSize PV UUID
  /dev/root                     ---      0     0   12.05g
  /dev/sda1                     ---      0     0  399.00m
  /dev/sda2         system lvm2 a--  31.61g 4.00m  31.61g 2uOwRK-x0Bm-BAjY-gUmU-2xiM-bIQo-mq79gv
  /dev/system/home              ---      0     0   10.00g
  /dev/system/lvopt             ---      0     0    6.08g
  /dev/system/lvvar             ---      0     0    2.00g 
  /dev/system/swap              ---      0     0    1.47g
En esta salida, además de lo indicado en la anterior, vemos el tamaño de los LV. Resumiendo, tenemos un listado de las particiones, los Vg utilizados, los LV montados y sus tamaños. También comprobamos si hemos utilizado LVM o LVM2 (1ª entrega) Ahora vamos a visualizar los VGs:
PoldixSunset:~ # vgdisplay  --- Volume group ---
  VG Name               system
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               31.61 GiB
  PE Size               4.00 MiB

  Total PE              8091
  Alloc PE / Size       8090 / 31.60 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               5OczRm-Ky2Z-L7XL-7CO2-t8pu-x4ij-9gvGEH
Otra salida del comando “vgdisplay” en otro sistema de ejemplo.
  poldix:/home/poldo# vgdisplay
  --- Volume group ---
  VG Name               testing
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.95 GB
  PE Size               4.00 MB
  Total PE              755
  Alloc PE / Size       754 / 2.95 GB
  Free  PE / Size       1 / 4.00 MB
  VG UUID               epQoNY-6JWP-1vUX-IZm0-LRwo-4fR4-AEEo1p
Si tuviésemos varios VGs con la ejecución de este comando se mostrarían con sus detalles. En los ejemplos mostrados anteriormente tenemos un VG por sistema, “testing” y “system”. Sin embargo, en otro sistema con más VGs, utilizando el parámetro “-C” para listar para una salida en modo listado, vemos que:
  PoldixTesting:~ # vgdisplay -C
  VG   #PV #LV #SN Attr   VSize   VFree
  vg03   1   1   0 wz--n-  15.00G     0
  vg00   1   6   0 wz--n-  27.00G  2.00G
  vg01   3   1   0 wz--n- 605.99G 12.00M
  vg02   2   1   0 wz--n- 605.99G 16.00M
Para finalizar la parte de comandos informativos, nos queda el “lvdisplay”, utilizado para comprobar los LVs del sistema y ver todos los atributos de los mismos. La salida es de la máquina que hemos instalado:
  PoldixSunset:~ # lvdisplay 
  --- Logical volume ---
  LV Path                /dev/system/home
  LV Name                home
  VG Name                system
  LV UUID                Rh1ACL-OEpq-AHES-KARi-5awK-hscZ-S7n3O6
  LV Write Access        read/write
  LV Creation host, time linux, 2014-02-11 16:02:21 +0100
  LV Status              available

  # open                 1
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/system/lvopt
  LV Name                lvopt
  VG Name                system
  LV UUID                wxIlk3-N2gv-N2az-NYqH-nkQP-SPk1-zg5pET
  LV Write Access        read/write
  LV Creation host, time linux, 2014-02-11 16:02:24 +0100
  LV Status              available

  # open                 1
  LV Size                6.08 GiB
  Current LE             1557
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/system/lvvar
  LV Name                lvvar
  VG Name                system
  LV UUID                smVCQw-WfLl-MVBm-8B0z-h36e-uGVb-Jz9NDi
  LV Write Access        read/write
  LV Creation host, time linux, 2014-02-11 16:02:25 +0100
  LV Status              available

  # open                 1
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/system/root
  LV Name                root
  VG Name                system
  LV UUID                kFcfWa-gl1L-UZLD-1bz5-gjOu-uYxF-IIR6x6
  LV Write Access        read/write
  LV Creation host, time linux, 2014-02-11 16:02:27 +0100
  LV Status              available

  # open                 1
  LV Size                12.05 GiB
  Current LE             3085
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:3

  --- Logical volume ---
  LV Path                /dev/system/swap
  LV Name                swap
  VG Name                system
  LV UUID                8myA4S-XJrt-xeb3-Whlc-jPsX-BCpx-1P01U0
  LV Write Access        read/write
  LV Creation host, time linux, 2014-02-11 16:02:28 +0100
  LV Status              available

  # open                 2
  LV Size                1.47 GiB
  Current LE             376
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1024
  Block device           253:4
En la siguiente entrega veremos como:
  • Crear de un PV
  • Crear de un VG
  • Crear de un LV
  • Montar nuevos LVs
  • Redimensionado de VGs y LVs existentes
  • ...

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars