Montando Volumenes Lógicos

De WikiSalud
Saltar a: navegación, buscar
Commons-emblem-Under construction-green
Este artículo está en una fase temprana de desarrollo, por lo que puede estar incompleto o tener aún errores de redacción o formato

Aunque Virtualización con KVM y Instalar Xen en Debian con LVM y bridges a varias interfaces de red usan LVM en sus configuraciones, resulta que no hay en la wiki una manual para administrar LVM. Pues seguirá faltando, que este va sobre algunas tareas que en cualquier momento sería necesario hacer con ellas:

Montar un volumen lógico: La parte fácil

Lo primero que podemos hacer es listarla. `lvs` se presta a eso:

$ lvs
  LV       VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home     fedora_ilaria -wi-ao---- 139.45g
  root     fedora_ilaria -wi-ao----  55.88g
  swap     fedora_ilaria -wi-ao----   4.66g
  dns      virtual       -wi-ao----  15.00g
  firewall virtual       -wi-a-----  50.00g
  hostal   virtual       -wi-a----- 120.00g

Para empezar a trabajar, creamos directorio que usaremos con punto de montaje. Puede tener cualquier nombre, así que le llamaré punto

$ mkdir punto

El montaje es algo simple en estos días cuando nos referimos a dispositivos locales, y un volumen lógico no es más que un dispositivo lógico:

$ mount /dev/mapper/virtual-hostal punto

Por ejemplo, este volumen lógico contiene, en un vuelta interesante de la historia, discos qcow

$ ls punto
cliente-jessie.qcow  cliente-wheezy.qcow  cliente-windows-xp.qcow  jessie

Desmontar tampoco no es nada del otro mundo

$ umount punto/

`/dev/mapper` no es la única forma de referirnos a una volumen lógico. Los pasos anteriores pudieron hacerse referenciando a los dispositivos en `/dev/virtual`, donde `virtual` es el nombre del Grupo de Volumenes

$ mount /dev/virtual/hostal punto
$ ls punto/
cliente-jessie.qcow  cliente-wheezy.qcow  cliente-windows-xp.qcow  jessie
$ umount punto/


Es que al final de cuentas, en `/dev/mapper` todo no es más que un enlace simbólico a los dispositivos `/dev/dm-*`

$ ls -l /dev/mapper/virtual*
lrwxrwxrwx. 1 root root 7 ago  8 14:14 /dev/mapper/virtual-dns -> ../dm-3
lrwxrwxrwx. 1 root root 7 sep  7 17:13 /dev/mapper/virtual-firewall -> ../dm-4
lrwxrwxrwx. 1 root root 7 sep  7 18:13 /dev/mapper/virtual-hostal -> ../dm-5

En un giro inesperado de los hechos, también lo son en `/dev/virtual/`:

$ ls -l /dev/virtual/*
lrwxrwxrwx. 1 root root 7 ago  8 14:14 /dev/virtual/dns -> ../dm-3
lrwxrwxrwx. 1 root root 7 sep  7 17:13 /dev/virtual/firewall -> ../dm-4                                         
lrwxrwxrwx. 1 root root 7 sep  7 18:13 /dev/virtual/hostal -> ../dm-5


Montar una partición virtual: Particiones dentro del volumen lógico =

Probemos a montar a `/dev/virtual/firewall`, parece como interesante

$ mount /dev/virtual/firewall punto                                                                  
mount: /root/punto: wrong fs type, bad option, bad superblock on /dev/mapper/virtual-firewall, missing codepage or helper program, or other error.


Es que los volúmenes lógicos son más versátiles de lo que puede pensar. `fdisk` puede informanos al respecto:

$ fdisk -l /dev/virtual/firewall                                                                     
Disco /dev/virtual/firewall: 50 GiB, 53687091200 bytes, 104857600 sectores                                             Unidades: sectores de 1 * 512 = 512 bytes                
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes  
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos    
Identificador del disco: 0x000225b1
Disposit.              Inicio  Comienzo     Final Sectores Tamaño Id Tipo
/dev/virtual/firewall1 *           2048    999423   997376   487M 83 Linux    
/dev/virtual/firewall2         20533246 104855551 84322306  40.2G  5 Extendida                 /dev/virtual/firewall3           999424  20531199 19531776   9.3G 83 Linux
/dev/virtual/firewall5        101718016 104855551  3137536   1.5G 82 Linux swap / Solaris                                   /dev/virtual/firewall6         20533248  55687167 35153920  16.8G 83 Linux                                           
/dev/virtual/firewall7         55689216  61546495  5857280   2.8G 83 Linux
/dev/virtual/firewall8         61548544 101707775 40159232  19.2G 83 Linux                                           
Las entradas de la tabla de particiones no están en el orden del disco.


En comparación, nuestro dócil anterior volumen lógico es un disco nada más:

$ fdisk -l /dev/virtual/hostal
Disco /dev/virtual/hostal: 120 GiB, 128849018880 bytes, 251658240 sectores                                           
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes

Así que igual vamos montar ese disco. Lo primero es hacer que el sistema conozca esas particiones. En general, podemos hacer eso para cualquier dispositivo al usar `partprobe`

$ partprobe /dev/virtual/firewall

Ahora, en `/dev/mapper` estamos un poco más rellenos:

$ ls -l /dev/mapper/virtual*
lrwxrwxrwx. 1 root root 7 ago  8 14:14 /dev/mapper/virtual-dns -> ../dm-3
lrwxrwxrwx. 1 root root 7 sep  7 18:26 /dev/mapper/virtual-firewall -> ../dm-4
lrwxrwxrwx. 1 root root 7 sep  7 18:26 /dev/mapper/virtual-firewall1 -> ../dm-6
lrwxrwxrwx. 1 root root 7 sep  7 18:26 /dev/mapper/virtual-firewall2 -> ../dm-7
lrwxrwxrwx. 1 root root 7 sep  7 18:26 /dev/mapper/virtual-firewall3 -> ../dm-8
lrwxrwxrwx. 1 root root 7 sep  7 18:26 /dev/mapper/virtual-firewall5 -> ../dm-9
lrwxrwxrwx. 1 root root 8 sep  7 18:26 /dev/mapper/virtual-firewall6 -> ../dm-10
lrwxrwxrwx. 1 root root 8 sep  7 18:26 /dev/mapper/virtual-firewall7 -> ../dm-11
lrwxrwxrwx. 1 root root 8 sep  7 18:26 /dev/mapper/virtual-firewall8 -> ../dm-12
lrwxrwxrwx. 1 root root 7 sep  7 18:13 /dev/mapper/virtual-hostal -> ../dm-5


`blkid` podría darnos bastante información, pero como no le pusimos etiquetas a las particiones...

$ blkid /dev/mapper/virtual-firewall*
/dev/mapper/virtual-firewall: PTUUID="000225b1" PTTYPE="dos"
/dev/mapper/virtual-firewall1: UUID="718ff3a9-0f27-4291-be28-bf52ae2ec8c9" TYPE="ext3" PARTUUID="000225b1-01"
/dev/mapper/virtual-firewall2: PTUUID="7d587ee6" PTTYPE="dos" PARTUUID="000225b1-02"
/dev/mapper/virtual-firewall3: UUID="110915a8-cfc4-49cc-a0d1-297c14111e68" TYPE="xfs" PARTUUID="000225b1-03"
/dev/mapper/virtual-firewall5: UUID="0640b0ae-01e9-4116-bbc1-a9ce43254124" TYPE="swap" PARTUUID="000225b1-05"
/dev/mapper/virtual-firewall6: UUID="d00c5fd0-bd9a-4f87-a010-5bade190e5a2" TYPE="xfs" PARTUUID="000225b1-06"
/dev/mapper/virtual-firewall7: UUID="c7d9c0d4-b971-45ce-9493-b4572831ad2d" TYPE="xfs" PARTUUID="000225b1-07"
/dev/mapper/virtual-firewall8: UUID="b13e4006-f9cb-4cc0-9f9d-86d19f592458" TYPE="xfs" PARTUUID="000225b1-08"


Acá por ejemplo tenemos la partición `/var` del sistema:

$ mount /dev/mapper/virtual-firewall8 punto/
$ ls punto/
backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp  www
$ umount punto


Básicamente, desde acá es sencillo ir revisando el contenido del disco. Copio todo lo que necesite y luego ya borro el volumen lógico:

$ lvremove -f /dev/virtual/firewall
  Logical volume virtual/firewall is used by another device

Aunque no este montado, el hecho que las particiones estén disponibles hacen que este colocado algo así como "a bajo nivel". Así que a un nivel bajo lo vamos a sacar con `dmsetup`: Primeros listamos los dispositivos reconocidos y vemos a aquellos que forman las particiones dentro del volumen lógico:

$ dmsetup ls
virtual-dns     (253:3)
fedora_ilaria-swap      (253:1)
fedora_ilaria-root      (253:0)
virtual-firewall6       (253:10)
virtual-firewall5       (253:9)
virtual-firewall        (253:4)
virtual-hostal  (253:5)
fedora_ilaria-home      (253:2)
virtual-firewall8       (253:12)
virtual-firewall7       (253:11)

Las vamos borrando:

$ dmsetup remove virtual-firewall5
$ dmsetup remove virtual-firewall6
$ dmsetup remove virtual-firewall7
...

Y ya podremos borrar el volumen lógico

$ lvremove -f /dev/virtual/firewall
  Logical volume "firewall" successfully removed


Creando un

dd if=/dev/mapper/virtual-dns of=dns.img bs=256K conv=noerror,sync
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas