Montei recentemente um ambiente de virtualização oVirt na empresa para homologação, a versão livre do RHEV (Red Hat Enterprise Virtualization). Enfrentei um problema com um storage em NFS e não conseguia mais iniciar minhas VMs que usavam ele. Após muita briga, resolvi montar os discos virtuais das VMs em formato qcow 2 para pegar os dados. Então segue a dica para caso alguém passe por situação semelhante:
É preciso ter o seguinte pacote:
apt-get install qemu-utils
Carregue o módulo nbd (network block device) no kernel:
modprobe nbd
Com o comando qemu-nbd conecte o seu arquivo de imagem qcow2 como um arquivo de dispositivo de blocos. É preciso informa o caminho completo, com subpastas, dos discos. Quando usei o comando pela primeira vez, ele deu falta da pasta onde o disco fica armazenado no storage. Não bastou copiar apenas o arquivo de disco. tem que criar a estrutura toda. Esta era minha estrutura de discos no storage NFS:
bb2c7d9b-2164-4596-8897-22132df948e4
│ │ ├── 9b12f83f-67c5-474f-9d6f-4fbb19bcaccc
│ │ ├── 9b12f83f-67c5-474f-9d6f-4fbb19bcaccc.lease
│ │ ├── 9b12f83f-67c5-474f-9d6f-4fbb19bcaccc.meta
│ │ ├── b1e50d5c-1e09-4693-909d-43c842d310f0
│ │ ├── b1e50d5c-1e09-4693-909d-43c842d310f0.lease
│ │ └── b1e50d5c-1e09-4693-909d-43c842d310f0.meta
Então copiei os arquivos de discos com as pastas:
cp /mnt/NSF/iddomainstorage/bb2c7d9b-2164-4596-8897-22132df948e4 /Recuperacao
Monte o disco como dispositivo de bloco /dev/nbd0:
sudo qemu-nbd –connect=/dev/nbd0 /Recuperacao/bb2c7d9b-2164-4596-8897-22132df948e4/9b12f83f-67c5-474f-9d6f-4fbb19bcaccc
Descubra quais as partições deste disco:
sudo fdisk /dev/nbd0 -l
Device Boot Start End Sectors Size Id Type
/dev/nbd0p1 * 2048 499711 497664 243M 83 Linux
/dev/nbd0p2 501758 104855551 104353794 49,8G 5 Extended
/dev/nbd0p5 501760 104855551 104353792 49,8G 8e Linux LVM
No meu caso eu precisava dos disco do /dev/nbd0p5 com LVM.
Ative os discos LVM:
vgchange -ay
Como é LVM, verifique o caminho com o grupo lógico:
vgdisplay
Monte o LVM:
mount /dev/ubuntu-vg/root /mnt/rodrigo2/
Quando terminar:
sudo qemu-nbd –disconnect /dev/nbd0