28 jun 2010

Probando el nuevo sistema de ficheros Btrfs en Ubuntu

Btrfs es un nuevo sistema de ficheros soportado por Linux, que se centra en incorporar las funciones más avanzadas, tolerancia a fallos y reparación sencilla.

En este artículo veremos cuales son las características principales del sistema de ficheros Btrfs, como usarlo en Ubuntu 10.10 y finalmente una serie de pruebas de rendimiento para ver que tal se porta.


  • Caracterísitcas destacadas
  1. Soporte extents
  2. Compresión de datos
  3. Desfragmentación automática
  4. Comprobación con el sistema montado
  5. Backups incrementales
  6. Comprobacion de integridad de datos
  7. Subvolúmenes
  8. Copy-on-write
  9. Tamaño máximo de archivo 16EiB (16 millones de terabytes)
  10. Máximo número de archivos 2^64 (18.446.744.073 mil millones de archivos)
Podeis ver una lista más completa en http://es.wikipedia.org/wiki/Btrfs#Features

  • Instalación de Ubuntu 10.10 alternate (daily build)
Vamos a aprovechar que las nuevas ISOs alternate de Maverick ya soportan btrfs desde la instalación para instalar el sistema directamente en una particion btrfs. Puedes descargar esta ISO de http://cdimage.ubuntu.com/daily/current/:


Soporte btrfs en Ubuntu 10.10

Una vez instalado comprobaremos el soporte Btrfs con:
$ dmesg | grep -i btrfs
[ 2.516098] Btrfs loaded


Y el correcto formato de nuestra partición Btrfs con:
$ mount | grep btrfs
/dev/sda7 on /media/btrfs type btrfs (rw)


  • Crear un sistema de ficheros btrfs
Si no hemos creado una partición de tipo Btrfs durante la instalación podemos hacerlo después. Para las pruebas yo usaré /dev/sda7, usa cualquier partición libre que tengas:
$ sudo mkfs -t btrfs /dev/sda7

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sda7
nodesize 4096 leafsize 4096 sectorsize 4096 size 10.08GB
Btrfs Btrfs v0.19


También podemos convertir directamente una partición de tipo ext3/ext4 directamente a Btrfs sin perder los datos que contiene con la orden (de nuevo hago las pruebas con la partición /dev/sda7):
$ sudo btrfs-convert /dev/sda7
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete.


  • Usar las herramientas para gestionar particiones btrfs
Listar las particiones Btrfs locales:
$ sudo btrfs-show

Analizar un sistema de ficheros Btrfs (con la partición desmontada):
$ sudo btrfsck /dev/sda7

  • Las pruebas
Para las pruebas he preparado 3 particiones: una de tipo ext4, una de tipo reiserfs y una de tipo btrfs de 10Gb cada una. Sobre cada una de ellas he ejecutado pruebas que evalúan la velocidad de creación y eliminación de archivos, copia de un archivo grande y multiples archivos pequeños, compresión y descompresión de datos.

Los resultados son los siguientes: (todos los resultados en segundos excepto la primera prueba)


BTRFS REISERFS EXT4
Creación de ficheros 1Gb (en Mb/s) 71,9 66,6 59,25
Copia de 1 archivo 2Gb 61,43 65,34 66,075
Copia de 1 archivo 2Gb (misma partición) 69,14 67,395 68,76
Copia de múltiples archivos 4Gb 261,03 268,1 275,11
Copia de múltiples archivos 4Gb (misma partición) 147,84 210,42 244,585
Comprimir 4Gb 165,29 224,115 268,18
Descomprimir 4Gb 98,825 84,105 97,77
Borrar 4Gb 36,915 11,605 13,02

Para los que no se os dé bien interpretar números aquí dejo unas cuantas gráficas que se entienden mejor:


  • Conclusiones
De los anteriores resultados se extrae que el sistema Btrfs funciona realmente bien, de las 8 pruebas realizadas supera a reiserfs y ext4 en 5 de ellas (creación de archivos, copia de un archivo, copia de múltiples archivos, copia de múltiples archivos dentro de la misma partición y compresión de archivos).

En 2 pruebas los resultados son similares en los 3 sistemas (copia de un archivo dentro de la misma partición y descompresión de archivos)

Como dato curioso (y negativo) ha tardado casi tres veces más que ext4 en borrar un directorio completo con sus 4Gb de archivos. Habría que investigar por qué está pasando esto.

  • Más información
http://es.wikipedia.org/wiki/Btrfs
http://btrfs.wiki.kernel.org/index.php/Main_Page


  • Artículos relacionados
Usar el nuevo sistema de ficheros ext4 en Ubuntu

6 comentarios :

Anónimo dijo...

gran trabajo

Anónimo dijo...

Grácias por documentar el metodo cientifico aplicado a los sistemas de ficheros.

fzeta dijo...

Hola hacha!!, excelente post tío, muy bueno...10 pts

Thedemon007 dijo...

Reiser que 3 o 4??

Unknown dijo...

@Thedemon007: creo recordar que cuando hice esto lo que había era reiser3

Ubaldo Arias Flores - Concepción, Chile dijo...

Reiser4 supongo, introducido en el año 2004..., por lo que veo, y si hiciste las pruebas el mismo año de esta publicación, esto es 6 años después de que Linux conociera Reiser4, entonces las pruebas las hiciste con esa versión del ya mencionado sistema de ficheros...!

Visitas