Unix-BSD FreeBSD DragonFlyBSD HammerFS HammerFS, el nuevo filesystem de DragonFlyBSD Damián Alberto Vicino, Luis Agustı́n Nieto Grupo de Usuarios de BSD de Exactas 20 de agosto de 2008 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia En un principio estaba UNIX... I Unix, desarrollado originalmente en 1969 en los laboratorios Bell de AT&T autoriza a Berkeley a utilizar el código fuente y adaptarlo. I Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales, la universidad promovió la creación de una versión inspirada en Unix utilizando los aportes que ellos habı́an realizado, permitiendo luego su distribución con fines académicos. I En 1975 Berkeley publica su propia implementación de Unix, BSD. I En la actualidad los miembros mas conocidos de la familia BSD son OpenBSD, NetBSD y FreeBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia En un principio estaba UNIX... I Unix, desarrollado originalmente en 1969 en los laboratorios Bell de AT&T autoriza a Berkeley a utilizar el código fuente y adaptarlo. I Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales, la universidad promovió la creación de una versión inspirada en Unix utilizando los aportes que ellos habı́an realizado, permitiendo luego su distribución con fines académicos. I En 1975 Berkeley publica su propia implementación de Unix, BSD. I En la actualidad los miembros mas conocidos de la familia BSD son OpenBSD, NetBSD y FreeBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia En un principio estaba UNIX... I Unix, desarrollado originalmente en 1969 en los laboratorios Bell de AT&T autoriza a Berkeley a utilizar el código fuente y adaptarlo. I Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales, la universidad promovió la creación de una versión inspirada en Unix utilizando los aportes que ellos habı́an realizado, permitiendo luego su distribución con fines académicos. I En 1975 Berkeley publica su propia implementación de Unix, BSD. I En la actualidad los miembros mas conocidos de la familia BSD son OpenBSD, NetBSD y FreeBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia En un principio estaba UNIX... I Unix, desarrollado originalmente en 1969 en los laboratorios Bell de AT&T autoriza a Berkeley a utilizar el código fuente y adaptarlo. I Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales, la universidad promovió la creación de una versión inspirada en Unix utilizando los aportes que ellos habı́an realizado, permitiendo luego su distribución con fines académicos. I En 1975 Berkeley publica su propia implementación de Unix, BSD. I En la actualidad los miembros mas conocidos de la familia BSD son OpenBSD, NetBSD y FreeBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia Y Beastie engendro a Fred... I La distribución mas utilizada y reconocida de BSD es FreeBSD. I Aparecio en 1993 de la mano de Nate William, Rod Grimes y Jordan K. Hubbard. En enero de 1995 salio la versión 2.0 basado en 4.4BSD-Lite. I El 16 de julio de 2003 Matthew Dillon, un programador del kernel de FreeBSD, descontento con el rumbo que estaba tomando el proyecto anuncia DragonFlyBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia Y Beastie engendro a Fred... I La distribución mas utilizada y reconocida de BSD es FreeBSD. I Aparecio en 1993 de la mano de Nate William, Rod Grimes y Jordan K. Hubbard. En enero de 1995 salio la versión 2.0 basado en 4.4BSD-Lite. I El 16 de julio de 2003 Matthew Dillon, un programador del kernel de FreeBSD, descontento con el rumbo que estaba tomando el proyecto anuncia DragonFlyBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Historia Y Beastie engendro a Fred... I La distribución mas utilizada y reconocida de BSD es FreeBSD. I Aparecio en 1993 de la mano de Nate William, Rod Grimes y Jordan K. Hubbard. En enero de 1995 salio la versión 2.0 basado en 4.4BSD-Lite. I El 16 de julio de 2003 Matthew Dillon, un programador del kernel de FreeBSD, descontento con el rumbo que estaba tomando el proyecto anuncia DragonFlyBSD. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS ¡¡Aguante el MicroKernel!! I ¿Qué es DragonFlyBSD?. I I Objetivos de DragonFlyBSD. I I Un Fork de FreeBSD con una visión completamente diferente en materia de procesamiento distribuido. Clustering Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS ¡¡Aguante el MicroKernel!! I ¿Qué es DragonFlyBSD?. I I Objetivos de DragonFlyBSD. I I Un Fork de FreeBSD con una visión completamente diferente en materia de procesamiento distribuido. Clustering Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS ¡¡Aguante el MicroKernel!! I ¿Qué es DragonFlyBSD?. I I Objetivos de DragonFlyBSD. I I Un Fork de FreeBSD con una visión completamente diferente en materia de procesamiento distribuido. Clustering Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS ¡¡Aguante el MicroKernel!! I ¿Qué es DragonFlyBSD?. I I Objetivos de DragonFlyBSD. I I Un Fork de FreeBSD con una visión completamente diferente en materia de procesamiento distribuido. Clustering Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS ¡¡Aguante el MicroKernel!! I ¿Qué es DragonFlyBSD?. I I Objetivos de DragonFlyBSD. I I Un Fork de FreeBSD con una visión completamente diferente en materia de procesamiento distribuido. Clustering Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Confia en mi, se exactamente lo que hago I ¿Qué es Hammer?. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Confia en mi, se exactamente lo que hago I ¿Qué es Hammer?. I Objetivos de HammerFS en DragonFlyBSD. I Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Confia en mi, se exactamente lo que hago I ¿Qué es Hammer?. I Objetivos de HammerFS en DragonFlyBSD. I Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Confia en mi, se exactamente lo que hago I ¿Qué es Hammer?. I Objetivos de HammerFS en DragonFlyBSD. I Estado actual del proyecto. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Magia... I Montado instantaneo sin necesidad de FSCK. I Fácil acceso al histórico completo de archivos y directorios en tiempo real. I Reoptimización en segundo plano. I Soporte para grandes espacios (1 Exabyte). I Mirroring sin colas (en proximas versiones multimaster para clustering). I Snapshots instantaneos. I 64 bit de ids para I-nodos y directorios. I Chequeos de consistencia de la estructura del directorio y de los datos. 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS I newfs hammer I hammer prune I hammer snapshot I hammer history I hammer reblock I chflags nohistory I undo I @@transaction ID 8vas Jornadas Regionales de Software Libre Caracteristicas Instalacion y Uso Referencias HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Creando # umount /home # newfs_hammer -L Home /dev/ad3s1g Volume 0 DEVICE /dev/ad3s1g size 9.98GB initialize freemap volume 0 --------------------------------------------1 volume total size 9.98GB boot-area-size: 32.00MB memory-log-size: 32.00MB undo-buffer-size: 16.00MB total-pre-allocated: 32.00MB fsid: 1c7444a0-0459-11d6-8382-0111d83dac5f 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Creando # mount_hammer /dev/ad3s1g /home # cd /home # ls # touch me # ls me Para montarlo automaticamente hay que agregar en fstab: /dev/ad3s1g /home hammer rw 2 2 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias ¡Ay no! pise un archivo # touch test # echo aaa > test # echo aaa >> test # cat test aaa aaa # undo -i test test: objid=0x0000000100928b30 0x0000000100aaf580 20-Aug-2008 03:03:07 0x0000000100aaf5a0 20-Aug-2008 03:03:25 # undo -d test diff -u test@@0x0000000100aaf580 test (to 31-Dec-1969 21:00:00) --- test@@0x0000000100aaf580 2008-08-20 03:02:50 -0300 +++ test 2008-08-20 03:03:23 -0300 @@ -1 +1,2 @@ aaa +aaa 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias ¡Ay no! pise un archivo # undo -u test # ls test test.undo # cat test.undo aaa # hammer history test test 0000000100928b30 clean { 0000000100aaf540 20-Aug-2008 03:02:51 0000000100aaf580 20-Aug-2008 03:03:07 0000000100aaf5a0 20-Aug-2008 03:03:25 } # cat test@@0x0000000100aaf540 # touch b # sync 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias ¡Ay no! pise un archivo # b } # # b hammer history b 0000000100928b60 dirty { sync hammer history b 0000000100928b60 clean { 0000000100aaf660 20-Aug-2008 03:10:09 } # undo -o a test@@0x0000000100aaf540 # ls a b test test.undo test.undo.undo # cat a 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias ¿0xh33l, cuando grabe esto? # cd /hammer # mkdir dir1 # touch dir1/a.txt # hammer snapshot ./snap # ls dir1 snap # ls snap dir1 # rm -R dir1 # ls snap # ls snap dir1 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias ¿Está o no está? # df -h /hammer Filesystem hammerFS Size 29G Used 8.0M Avail 29G Capacity 0% Mounted on /hammer # dd if=/dev/zero of=/hammer/arch bs=1M count=256 # df -h /hammer/ Filesystem hammerFS Size 29G Used 264M Avail 29G Capacity 0% Mounted on /hammer # rm arch # ls # 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Ups, se me llenó el disco # df -h /hammer/ Filesystem Size hammerFS 29G Used 264M Avail 29G Capacity 0% Mounted on /hammer # hammer prune /hammer Prune /hammer/: snapshots objspace /hammer/ succeeded Pruned 4159/4171 records (2 directory entries) and 0 bytes # df -h /hammer/ Filesystem Size hammerFS 29G Used 8.0M Avail 29G Capacity 0% Mounted on /hammer Tambien existe prune-everything para una limpieza total 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Acomodame los datos hammer reblock /home ¿Pero no me mata la máquina limpiar y defragmentar? -c ciclefile -t time 8vas Jornadas Regionales de Software Libre HammerFS Unix-BSD FreeBSD DragonFlyBSD HammerFS Caracteristicas Instalacion y Uso Referencias Referencias I http://www.dragonflybsd.org/ I http://www.dragonflybsd.org/hammer/hammer.pdf I man 5 hammer I man 8 hammer I http://bug.dc.uba.ar 8vas Jornadas Regionales de Software Libre HammerFS