Btrfs. El nuevo sistema de ficheros para Linux
Transcripción
Btrfs. El nuevo sistema de ficheros para Linux
Btrfs. El nuevo sistema de ficheros para Linux Un nuevo chico en Linux La historia de los sistemas de ficheros para el núcleo Linux comienza en 1992, cuando Rémi Card diseña un sistema de ficheros adecuado para Linux y que sustituya al académico sistema Minix. Este sistema de ficheros se denominó ext (de ext-endido), y la historia de este sistema de ficheros está ligada al desarrollo del núcleo Linux. Otros sistemas de ficheros aparecieron por el camino (XFS, ReiserFS,...), pero indudablemente ext ha ido solucionando las limitaciones que se le han ido achacando. Sin embargo en 2007 se produce una crisis en este área del núcleo. La cuarta versión de ext no es todavía estable y el resto de sistemas adolece de algunas limitaciones que serían subsanadas en ext4. Esto favorece la aparición de proyectos alternativos como btrfs que será pronto un lugar en el que trabajar para ofrecer a Linux un sistema de ficheros de la talla de ZFS de Sun, un sistema de ficheros de referencia entonces. Btrfs aparece en la versión 2.6.29 de Linux (enero 2009), y a pesar de que en la versión actual de Linux (2.6.32) aparece como un módulo altamente experimental y de la recomendación de no usarlo para datos críticos, lo cierto es que cada día más proyectos y distribuciones lo ofrecen como una alternativa viable y con futuro. En muchos foros se anuncia que btrfs es el camino a seguir. Como usuario de btrfs, debo reconocer que estoy muy contento con este sistema de ficheros. Algunas características de btrfs: • • • • • • • • • Adición y eliminación de dispositivos en línea. Crecimiento y reducción de volúmenes en línea. Compresión transparente. Instantáneas y clonación. Desfragmentación en línea. Balanceo en línea. RAID-0 y RAID-1. Conversión instantánea de sistemas de ficheros ext3 y ext4. Opciones especiales para dispositivos SSD (Discos de Estado Sólido). Quizá esta última característica, sea interesante por el auge que se prevé de estos dispositivos en un corto plazo. Trabajando con btrfs En este artículo se muestran los primeros pasos para trabajar con sistemas de ficheros btrfs usando el intérprete de comandos. El trabajo con btrfs no es muy diferente al que se realiza con el resto de sistemas de ficheros como se podrá comprobar. Debemos en primer lugar asegurarnos que el sistema btrfs está soportado en el núcleo Linux y que disponemos de las herramientas para trabajar con este sistema de ficheros. Si usamos una distribución Linux actual, seguramente ya tengamos todo instalado y preparado, si no tendremos que compilar el núcleo con soporte para btrfs e instalarlos las herrmientas que están disponibles en la página de btrfs. Comenzaremos creando el sistema de ficheros en un dispositivo, por ejemplo en /dev/sde. # mkfs -t btrfs /dev/sde Podemos a continuación montar el sistema de ficheros, por ejemplo en /mnt/btrfs: # mount -t btrfs /dev/sde /mnt/btrfs Ahora lo podemos usar con toda normalidad: # cp /root/documento.odp /mnt/btrfs Al montar cualquier sistema de ficheros, el núcleo Linux comprueba la integridad de éstos antes de montarlos. Si deseamos hacerlo manualmente podemos usar el comando: # btrfsck /dev/sde Conviene recordar que el chequeo de los sistemas de ficheros deben realizarse cuando éstos no han sido aún montados, podríamos perder datos si ignoramos ésta advertencia. Un inconveniente del uso actual de btrfs es la poca integración que tiene con las herramientas de gestión de discos que incorporan las distribuciones Linux actuales (por ejemplo df). Al trabajar con estas herramientas debemos tener en cuenta que nos pueden indicar datos incorrectos, como el espacio disponible en el sistema de ficheros. Para un sistema de 1GB, la herramienta df informará que queda disponible un 25% del sistema de ficheros cuando realmente ya está lleno. Este 25% se usa para los metadatos del sistema de ficheros y no puede ser usado por el usuario. Por tanto, para conocer de forma precisa la cantidad de espacio disponible/usado en el sistema de ficheros deberemos usar el comando: # btrfs-show /dev/sde Muchas de las operaciones que se pueden realizar con este sistema de ficheros (desfragmentación, instantáneas, modificación del tamaño, etc.) se realizan usando el comando: # btrfsctl Opciones para SSDs En un disco duro tradicional, la fragmentación afecta al rendimiento debido a los movimientos de la cabeza en el disco. En los discos SSD (Discos de Estado Sólido) la fragmentación no es un aspecto tan importante. La opción de montaje ssd permite indicar al sistema btrfs que el acceso a nuestro disco no se ve muy afectado por la desfragmentación y optimiza el almacenamiento teniéndolo en cuenta. Es conveniente por tanto usar esta opción si usamos estos discos de última generación. Para ello, la indicaremos en el momento de montar nuestro sistema de ficheros o indicarla en el fichero del sistema: /etc/fstab, por ejemplo. # mount -t btrfs -o ssd /dev/sde /mnt/btrfs Conclusiones Btrfs ha venido para quedarse, es un sistema de ficheros que está cobrando importancia debido a su rendimiento y escalabilidad. Además su características con discos SSD lo hacen una buena opción de futuro El proyecto btrfs necesita ayuda. Si te animas a usarlo y encuentras cualquier problema, puedes crear una imagen usando el comando btrfs-image y enviarlo a los desarrolladores (Todos los datos presentes en el disco serán eliminados, menos los necesarios para averiguar la causa del problema), por ejemplo: # btrfs-image -c 9 /dev/sde /tmp/btrfs_dump.z Enlaces • • • Breve historia de btrfs (en inglés): http://lwn.net/Articles/342892/ Comparativa Ext4/btrfs (en inglés): http://tinyurl.com/ygzs6wp Página de btrfs (en inglés): https://btrfs.wiki.kernel.org/ José María Alonso Josa Profesor, autor y desarrollador [email protected] Junio 2010 Este artículo está licenciado bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir http://creativecommons.org/licenses/by-nc-sa/3.0/es/