Páginas

viernes, 21 de agosto de 2009

Crear Imagen de particion con SystemRescuecd y FSArchiver

Crear una imagen de partición con FSArchiver GNU-Linux

Esta utilidad esta incluida en el livecd SystemRescue

Lo de siempre cambiar la boot sequence desde la bios para arrancar desde la unidad lectora de cd/dvd.

Crear un directorio para montar la partición en la que se guardará el archivo de imagen, (en mi caso /dev/sda6):

root@sysresccd /root % mkdir imagen

Luego:

root@sysresccd /root % mount /dev/sda6 /root/imagen

Para ver el listado de los sistemas de archivos detectados:

root@sysresccd /root % fsarchiver probe simple

[=====DEVICE=====] [==FILESYS==] [=====LABEL=====] [====SIZE====] [MAJ] [MIN]
[/dev/sda1 ] [ext4 ] [ubunturoot] [ 14.82 GB] [ 8] [ 1]
[/dev/sda3 ] [ext4 ] [ubuntu_home] [ 21.42 GB] [ 8] [ 3]
[/dev/sda5 ] [swap ] [ ] [ 4.38 GB] [ 8] [ 5]
[/dev/sda6 ] [ext4 ] [UTILS ] [ 16.16 GB] [ 8] [ 6]
[/dev/sda7 ] [ext3 ] [archlinux] [ 8.01 GB] [ 8] [ 7]
[/dev/sda8 ] [ext3 ] [archlinux_home ] [ 9.02 GB] [ 8] [ 8]

Crear imagen de la particion /dev/sda1 (sistema de archivos ext4):

root@sysresccd /root % fsarchiver -v savefs /root/imagen/ubunturoot.fsa /dev/sda1

Al finalizar verá algo como esto:

Statistics for filesystem 0 * files successfully processed:...regfiles=149160, directories=17177, symlinks=46007, hardlinks=12, specials=130 * files with errors:....................regfiles=0, directories=0, symliks=0, hardlinks=0, specials=0

Para obtener información del archivo:

root@sysresccd /root/imagen % fsarchiver archinfo /root/imagen/ubunturoot.fsa

====================== archive information ====================== Archive type: filesystems Filesystems count: 1 Archive id: 4a8e7198 Archive file format: FsArCh_001 Archive created with: 0.5.8 Archive creation date: 20090821-10:57:26 Archive label: archive-label Compression level: 3 (gzip level 6) Encryption algorithm: none ===================== filesystem information ==================== Filesystem id in archive: 0 Filesystem format: ext4 Filesystem label: Filesystem uuid: 17cd5f7e-6278-4b02-ac40-60ef27862bfb Original filesystem size: 14.59 GB (15665754112 bytes) Space used in filesystem: 4.39 GB (4712210432 bytes)

root@sysresccd /root/imagen % ls
ubunturoot.fsa

Restaurar la imagen previamente creada será tan sencillo como teclear:

root@sysresccd /root/imagen % fsarchiver restfs /root/imagen/ubunturoot.fsa id=0, dest=/dev/sda1

Comandos y argumentos de fsarchiver:

root@sysresccd /root % fsarchiver

the first argument must be a command.
====> fsarchiver version 0.5.8 (2009-07-12) - http://www.fsarchiver.org <==== Distributed under the GPL v2 license (GNU General Public License v2).
* usage: fsarchiver [] [ [ [...]]]

* savefs: save filesystems to an archive file (backup a partition to a file)
* restfs: restore filesystems from an archive (overwrites the existing data)
* savedir: save directories to the archive (similar to a compressed tarball)
* restdir: restore data from an archive which is not based on a filesystem
* archinfo: show information about an existing archive file and its contents
* probe simple|detailed: show list of filesystems detected on the disks

-o: overwrite the archive if it already exists
-v: verbose mode (can be used several times to increase the level of details)
-d: debug mode (can be used several times to increase the level of details)
-A: allow to save a filesystem which is mounted in read-write (live backup)
-a: allow to run savefs when partition mounted without the acl/xattr options
-z : valid compression level are between 1 (very fast) and 9 (very good)
-s : split the archive into several files of megabytes each
-j : create more than one compression thread. useful on multi-core cpu
-c : encrypt/decrypt data in archive. password length: 6 to 64 chars
-h: show help and information about how to use fsarchiver with examples
-V: show program version and exit
Support for optional features: (enabled or disabled during compilation):
* support for lzo compression:............yes
* support for lzma compression:...........yes
* support for encryption:.................yes
Warnings:
* fsarchiver is still in development, don't use it for critical data yet.

3 comentarios:

  1. Muy bueno... ahora sólo falta que realmente funcione bien... en condiciones no ideales...

    Me explico: En lugar de tener la partición del sistema en /dev/sda1 por ejemplo, tenerla en un Raid, por lo que sería /dev/md0... etc.

    En detalle:
    -Salvar sistema de /dev/md0 (Linux Raid)
    -Restaurar sobre /dev/sda (Sin Raid)
    -Probar a arrancar, a ver si arranca

    Otro detalle:
    -Salvar el sistema (Ext4)
    -restaurar en particion con sistema (XFS)
    -Probar a arrancar, a ver si arranca

    En mi caso es justo lo que busco:
    -Crear una imagen "clon" para luego poderla restaurar en el mismo PC, pero con un esquema de particiones diametralmente diferente...

    Dicho de otra forma:
    -Salvar un sistema montado en /dev/sda1 (sin raid ni nada raro, particion tipo XFS, ext2, etc...
    -Reparticionar
    -Agregar más discos duros
    -Crear un Linux Software Raid (para mayor velocidad) que use todos los discos en Raid0 (para temas de seguridad ya está la imagen "clon" salvada, luego no es necesario un Raid5...) o si fuere necesario pues ala en Raid5 / Raid6 o Raid7, ... muy diferente a como estaba
    -Ajustar el tamaño de la partición para que sobre más o menos un 15% y no más de un 25% (para no desperdiciar espacio, pero de forma que no se fragmenten los archivos modificados o nuevos)
    -Restaurar sobre /dev/md0
    -Reiniciar y que arranque

    ... continuará ...

    ResponderEliminar
  2. ... continuación ...

    Si esto realmente se puede hacer y funciona, hurra! y si encima es fiable, mejor que mejor...

    Pero le veo algunas pegas...
    -Fichero /etc/fstab <-> debería ser modificado al restaurar, ¿lo hace fsarchiver?
    -UUIDs de las particiones <-> cambian, porque el esquema de particiones no se parece en nada, ¿tiene en cuenta esto fsArchiver?, en concreto /etc/fstab puede contener las referencias a las particiones a montar como UUIDs en lugar de /dev/xxx#
    -Rutas de dispositivos <-> fsarchiver debería al restaurar reparar/recrear las necesarias y eliminar las que no procedan,... el esquema de particiones no tiene porqué ser el mismo... si bien podrían estar en modo dinámico y que se creen en cada arranque, puede que el SO Linux no tenga UDEV y solo use DEV...
    -Y si la partición es de Windows... me explico: Windows sobre NTFS y al restaurar lo ponemos en FAT32, ¿arrancará o la ACL de windows quedará dañada?, etc...

    Si restauramos con un esquema de particiones similar (aunque cambie el tamaño de la partición) es factible que todo funcione,... pero en cuanto cambiemos el esquema de particiones es difícil que todo funcione bien...

    Y se puede poner un ejemplo mucho más simple:
    -Salvamos la NTFS de Windows de /dev/sda2
    -Formateamos /dev/sda2 en Ext4
    -Restauramos sobre /dev/sdb13
    -Hemos pasado de una primaria a una extendida en otro disco, Windows no será capaz de arrancar porque la referencia al disco que tiene en el archivo boot.ini ya no es válida, habrá que modificarlo... etc.

    Ese cambio necesario, ¿lo hará automáticamente fsArchiver?

    Muchas incognitas... y yo por mi parte no tengo ganas de arriesgarme,... y para colmo estoy en el peor caso...

    Por rendimiento tengo el SO Linux montado sobre /dev/md0, el cual es un Linux Raid 0 sobre tres discos duros (dos Sata y un Pata, los tres de tamaño y prestaciones casi idénticas),... con rendimiento de escritura sostenida de más de 168MB/s,... y Linux tarda en arrancar desde pasado el POST de la BIOS hasta que puedo escribir en gedit (editor de texto plano bajo entorno X) menos de catorce segundos y en apagar tarda menos de tres segundos...

    Si lo pongo sin Raid, los tiempos se disparan,... Arranque -> Casi dos minutos; apagado -> Casi medio minuto...

    ... continuará ...

    ResponderEliminar
  3. ... continuación ...

    Inaceptable, cuando tengo que usar el PC lo necesito rápido,... y habitualmente manejo archivos de más de diez gigas... en Raid leer/copiar una archivo de 10GB (similar en tamaño a un DVD de doble capa llenito) tardo menos de un minuto en Raid0, sin Raid tarda más de ocho minutos...

    Me he muy mal acostumbrado al rendimiento del Linux Software Raid, al menos eso creo,... pues al usar los PCs de otros me dan la sensación de ser tortugas, de que se han colgado,... etc... se me hace inaguantable tener que esperar media hora, para algo que puedo hacer en un par de minutos, ...

    Viva el Linux Software Raid.

    Por cierto, la controladora Sata que tengo tiene Raid0 por hardware,... pero el rendimiento comparado con el Linux Software Raid es pésimo, por no comentar que además está limitado a dos discos (sólo hay dos canales Sata),... es una de esas que vienen integradas en Placa Base...

    -El rendimiento de cada disco es de unos 58MB/s por separado
    -El rendimiento del hardware Raid de la placa base (dos discos en Raid0) es de 75MB/S ... una verdadera mierda!!!
    -El rendimiento de Linux Software Raid 0 sobre los tres discos (dos sata en la mencionada controladora integrada en placa y otro Pata también en la misma placa base) es de 168MB/s, justo casi el triple que el de cada disco por separado, wow!!!
    -Por cierto y como curiosidad, probé a poner un cuarto disco (otro PATA en el otro canal Pata que tiene la placa base, ambos como Master, cada uno en un canal)... mierda de placa,... si accede a un canal Pata al otro no puede (hablo de dos canales, cada uno con su conector y cable, no confundir con maestro/esclavo)...

    Si, si, la placa es una mierda: Sólo maneja un únido dispositivo PATA a la vez de los cuatro que se pueden conectar... eso de poner dos discos duros, uno en cada canal pata y acceder a ambos a la vez que en otras placas se puede hacer, en la mía no... de ahí que sólo use tres HDDs para el Raid 0...
    Nota: Cuando tenía cuatro, el rendimiento era peor que el de uno sólo -> unos 36MB/s; baja cabronada... bueno, no tanto, puse ese cuarto HDD recien comprado en una caja USB que tenía vacía... y listo.

    Ahora lo que ando buscando es una manera de clonar ese Linux, de forma que no sólo me sirva de "clon"/backUp, ... sino que también me sirva para reducir el tamaño de la partición del sistema... ya que me pase´de precabido,... le di 24GB (tres stripes de 8GB) del total de 480GB (tres hdds de 160GB cada uno)... y total sólo tiene ocupados algo menos de 8GB... por lo que un mejor tamaño sería unos 10GB (3.2GB por disco)...

    Resulta que el rendimiento de los discos en los cilindros más bajos es casi del triple que en los altos... estimo que con esa reducción, la siguiente partición (según posición físca) que sería la de datos /dev/md1 subiría de velocidad bastante, suficiente como para justificar el cambio,... salvo que tenga que reinstalar el Linux,... y las aplicaciones, configuraciones, ... iconos en el escritorio, menús, accesos NFS, etc... Eso no compensaría.

    Si alguien ya ha probado a salvar con fsArchiver una partición raíz bajo Linux Raid 0 y restaurarla sobre un tamaño menor que comente cómo le ha ido, y sobre todo en que hay que tener especial cuidado...

    En particular:
    -Salvado con fsArchiver de /dev/md0/
    -Destrucción del Raid0
    -Reparticionado
    -Recreación del Raid0 de menor tamaño
    -Restauración con fsArchiver sobre /dev/md0/

    Gracias.

    ResponderEliminar