Mostrando entradas con la etiqueta qemu. Mostrar todas las entradas
Mostrando entradas con la etiqueta qemu. Mostrar todas las entradas

domingo, 17 de julio de 2011

Storage distribuido con SheepDog

Instalé SheepDog siguiendo las instrucciones del sitio sobre un Debian Sid, todo funcionó excelente!

Todo el esquema de pruebas lo armé en mi notebook:
  • Host: acer (Ubuntu Desktop 11.04)
    • Guest: debian-virt-server-01 (Debian Sid / libvirt+KVM)
      • ejecutando SheepDog
    • Guest: debian-virt-server-02 (Debian Sid / libvirt+KVM)
      • ejecutando SheepDog
    • Guest: debian-virt-server-03 (Debian Sid / libvirt+KVM)
      • ejecutando SheepDog
    • Guest: linux-over-sheepdog (Ubuntu 10.04 Server / QEMU)
      • usando "linux-over-sheepdog" como disco (esta imagen es creada usando qemu-img).
Luego configuré coresync y arranqué sheepdog en debian-virt-server-01debian-virt-server-02 y debian-virt-server-03.

Ahora, a crear la imagen de disco!

root@debian-virt-server-01:~# collie cluster format --copies=2

Este comando sólo se debe ejecutar en 1 nodo.

root@debian-virt-server-01:~# collie node list
 Idx - Host:Port Number of vnodes
------------------------------------------------
* 0 - 192.168.122.101:7000 64
 1 - 192.168.122.102:7000 64
 2 - 192.168.122.103:7000 64
El cluster fue "formateado" para que mantenga 2 copias de la información. Los 3 nodos se están viendo, ya que aparecen al ejecutar "collie node list". 

Creamos imagen para ser usado como disco

acer| ~$ qemu-img create sheepdog:192.168.122.101:7000:linux-over-sheepdog 4G
Formatting 'sheepdog:192.168.122.101:7000:linux-over-sheepdog', fmt=raw size=4294967296
Booteamos QEMU

acer| ~$ qemu-system-x86_64 -enable-kvm -m 512 -cdrom ubuntu-10.04-server-amd64-LTS.iso sheepdog:192.168.122.101:7000:linux-over-sheepdog

Y listo! La instalación de Ubuntu Server se inició correctamente sobre un "disco virtual" hosteado usando SheepDog.



miércoles, 15 de junio de 2011

Compactar particiones con zerofree

Para realizar backups de imágenes de discos usadas en QEmu/KVM se puede optimizar usar zerofree. Este programa  escribe 0 (ceros) en los lugares de la imagen que NO está siendo usada por archivos, y que han sido usadas pero actualmente están libres (por ejemplo, en el lugar donde se haya creado un archivo que luego haya sido borrado).

Zerofree funciona para ext2/ext3/ext4, en particiones que no están montadas, o montadas solo-lectura. Esta utilidad es "inteligente" en el sentido que no hace "crecer" a los archivos sparse. 


Los pasos a seguir son:

  • cargar nbd

   ~$ sudo modprobe nbd max_part=16

  • asociar imagen de disco disk01.qcow2nbd1 y crear dispositivos asociados a particiones

   ~$ sudo qemu-nbd -c /dev/nbd1 -v disk01.qcow2
   ~$ sudo partprobe /dev/nbd1

  • ejecutar zerofree

   ~$ sudo zerofree -v /dev/nbd1p5

Listo! El archivo "disk01.qcow2" ocupa teóricamente 11G, pero como es un archivo sparse, en realidad está ocupado en disco sólo 1.9G:


   ~$ ls -lh disk01.qcow2
   -rw-r--r-- 1 root root 11G 2011-06-15 14:51 disk01.qcow2
   ~$ du -h disk01.qcow2 

   1.9G disk01.qcow2

El .tar ocupa sólo 918M:

   ~$ tar --sparse -cf disk01.qcow2.tar disk01.qcow2
   ~$ ls -lh disk01.qcow2.tar 
   -rw-r--r-- 1 horacio horacio 918M 2011-06-15 15:10 disk01.qcow2.tar

Y al comprimirlo solo nos queda 305M:

   $ gzip -1 disk01.qcow2.tar 
   $ ls -lh disk01.qcow2.tar.gz 
   -rw-r--r-- 1 horacio horacio 305M 2011-06-15 15:10 disk01.qcow2.tar.gz



   ~$ du -h *
   1.9G disk01.qcow2
   305M disk01.qcow2.tar.gz



En este caso, un archivo que ocupa inicialmente 1.9G lo llevamos a ocupar 918M (305M comprimido).