Esta dica é especial para quem trabalha com virtualização (Xen/KVM), e faz muito uso de unidades lógicas LVM, mas não significa que não possa ser usada para outros fins …
Bom normalmente em ambientes de virtualização com XEN ou KVM utilizamos unidades lógicas LVM para servirem de disco para as VMs. Pois bem, isso leva a unidade LVM a ser formatada e particionada, tornando ela uma “mini fortaleza”, hehehe. Caso seja necessário visualizar e montar estas partições criadas na unidade lógica temos que mapea-las como device no S.O Linux. Para isso, podemos utilizar o comando kpartx, conforme sintaxe abaixo:kpartx -a /dev/NOME_VG/UNIDADE_LOGICA
Isso vai mapear e disponibilizar todas as partições desta unidade lógica para serem manipuladas a gosto… As partições, ficarão visíveis em /dev/mapper/UNIDADE_LOGICA1, /dev/mapper/UNIDADE_LOGICA2, /dev/mapper/UNIDADE_LOGICA3 e assim por diante.
Um exemplo rápido.
Criamos uma unidade lógica LVM com o nome cialinux:
[root@xen01 mapper]# lvcreate -L5G LVM -n cialinux
Logical volume “cialinux” created
Nela criamos 3 partições com o fdisk:
[root@xen01 mapper]# fdisk -l /dev/LVM/cialinux
Disk /dev/LVM/cialinux: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System
/dev/LVM/cialinux1 1 13 104391 83 Linux
/dev/LVM/cialinux2 14 76 506047+ 82 Linux swap / Solaris
/dev/LVM/cialinux3 77 652 4626720 83 Linux
Agora vamos mapear as partições que criamos para poder formata-las:
kpartx -a /dev/LVM/cialinux
Isso nos disponibiliza:
[root@xen01 mapper]# ls -l /dev/mapper/cialinux*
brw-rw—- 1 root disk 253, 8 Aug 23 14:05 /dev/mapper/cialinux1
brw-rw—- 1 root disk 253, 9 Aug 23 14:05 /dev/mapper/cialinux2
brw-rw—- 1 root disk 253, 10 Aug 23 14:05 /dev/mapper/cialinux3
Agora podemos fazer oque quiser com estas partições. Vamos criar um sistema de arquivos ext3 na partição 3, e depois monta-la em /mnt/cialinux:
[root@xen01 mapper]# mkfs.ext3 -v /dev/mapper/cialinux3
[root@xen01 mapper]# mount /dev/mapper/cialinux3 /mnt/cialinux/
E o resultado…
[root@xen01 mapper]# df -h /mnt/cialinux
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cialinux3 4.4G 137M 4.0G 4% /mnt/cialinux
Para retirarmos o mapeamento destas unidades, basta usar a opção -d do comando kpartx (com tas as partições desmontadas):
[root@xen01 mapper]# kpartx -d /dev/LVM/cialinux
Era isso pessoal. Abraços..!
Por: Franklin Moretti
E se a unidade LVM estiver dentro de um arquivão maquina_virtual.img por exemplo?
Pelo que percebi, o ‘kpartx -a’ não consegue enchergar os lvs dentro do arquivo pra poder mapear em /dev e disponibilizar para montagem…
Sabe se existe alguma forma ou algum comando lvm para fazer com que as partições LVM de dentro do arquivo fiquem disponível fora dele (na hospedeira)?
Obs.: Eu utilizaria por exemplo, para poder fazer na própria hospedeira, um simples “fsck /dev/vg10/raiz”, sendo que esse vg10 fica dentro do arquivão que é o disco da VM…
Sem essa funcionalidade, tive que bootar a VM com um live-cd em linux-single, dizendo que a VM tem um disco /storage/maquina_virtual.iso, e então fazer fsck na raiz do disco virtual.. resolveu, mas levou mais tempo pois tive que achar um live-cd, criar uma vm de teste com cdrom, com boot-sequence setado pra bootar pelo CD, esperar o live carregar.. etc…
O mano velho, pelo que entendi, é uma unidade LVM dentro do Disco virtual de uma VM. O kpartx consegue enchergar a partição de uma unidade, porém no seu caso, pelo que entendi, é uma unidade lógica LVM dentro de um disco Virtual… Confeço que nunca necessitei dar um kpartx para um arquivão, somente para unidades lógicas LVM (gerenciadas pelo DOM0, não dentro de um outro arquivão). Como é uma situação inusitada, creio que a melhor opção foi mesmo esta de bootar com um RESCUE-CD live, “enchergar” o LV dentro da imagem do disco virtual, e realizar a manutenção necessária. Lembrando que o kpartx não mapeia somente unidades LVM, e sim qualquer partição presente em uma unidade de disco (nunca testei com arquivão).
Abraços..!
Ola,
Essas partições usando o kpartx pode ser redimensionada normalmente como uma lvm normal?
Na verdade o trabalho do kpartx é verificar a existencia de partições no disco informado, e criar os devices no sistema caso necessário. o Kpartx pode ser usado em um disco físico…
O redimencionamento é um recurso do LVM, não do kpartx..
Abraços..!