{"id":8,"date":"2008-05-25T18:17:01","date_gmt":"2008-05-25T18:17:01","guid":{"rendered":"http:\/\/www.otioti.com\/?p=4"},"modified":"2013-03-05T18:30:00","modified_gmt":"2013-03-05T18:30:00","slug":"zfs-vs-btrfs","status":"publish","type":"post","link":"https:\/\/www.otioti.com\/?p=8","title":{"rendered":"ZFS vs Btrfs"},"content":{"rendered":"<p>Est\u00e1 en boca de todos \u00faltimamente el acr\u00f3nimo <a href=\"http:\/\/opensolaris.org\/os\/community\/zfs\/\" target=\"_blank\">ZFS<\/a> (<em> <a href=\"http:\/\/es.wikipedia.org\/wiki\/Zettabyte\" title=\"Zettabyte\">Zettabyte<\/a> File System <\/em>) que es el sistema de archivos desarrollado por Sun Microsystems, ya incluido desde 2005, su soporte en Solaris y en OpenSolaris en sus \u00faltimas versiones. Pero antes de todos, vamos a dedicar unos cuantos p\u00e1rrafos para explicar resumidamente en qu\u00e9 consiste ZFS, qu\u00e9 incovenientes tiene y su posible competidor en el mundo libre: btrfs.<\/p>\n<p>ZFS es un sistema de archivos cuya pecularidad es que se compone de un pool de sistemas de archivos virtuales, llamados zpools, los cuales debajo suya, puede estar compuesto de un simple disco o un RAID de ellos. Esto hace que a la hora de a\u00f1adir un nuevo disco al almacenamiento, o modificar un raid, para ZFS sea transparente, adem\u00e1s que todo el almacenamiento se comparte f\u00edsicamente entre todos estos sistemas de archivos virtuales, no desperdiciando el espacio libre de un sistema de archivos, que puede ser necesario en un caso cr\u00edtico para cualquier otro sistema de archivos del pool.<\/p>\n<p>ZFS fue dise\u00f1ado pensando en un espacio de almacenamiento <em>casi infinito<\/em>, hablamos de ZetaBytes. Por ello, es un sistema de 128 bits, esto nos permite almacenar datos hasta 18.4 \u00d7 10<sup>18<\/sup>  m\u00e1s que un FS de 64 bits.  Respecto a la capacidad del sistema, Jeff Bonwick, el arquitecto jefe de Sun para ZFS, dijo <em>&#8220;Llenar un sistema de archivos de 128 bits exceder\u00eda los l\u00edmites cu\u00e1nticos de almacenamiento de la tierra. No puedes rellenarlo sin hervir los oc\u00e9anos&#8221;<\/em>.<\/p>\n<p>Otras limitaciones te\u00f3ricas de ZFS son:<\/p>\n<ul>\n<li>2<sup>48<\/sup> \u2014 N\u00famero de <a href=\"http:\/\/es.wikipedia.org\/w\/index.php?title=Snapshot&amp;action=edit&amp;redlink=1\" class=\"new\" title=\"Snapshot (a\u00fan no redactado)\"><em>snapshots<\/em><\/a> en cualquier sistema de ficheros (2 \u00d7 10<sup>14<\/sup>)<\/li>\n<li>2<sup>48<\/sup> \u2014 N\u00famero de ficheros en un sistema de ficheros (2 \u00d7 10<sup>14<\/sup>)<\/li>\n<li>16 <a href=\"http:\/\/es.wikipedia.org\/wiki\/Exabyte\" title=\"Exabyte\">exabytes<\/a> \u2014 Tama\u00f1o m\u00e1ximo de un sistema de ficheros<\/li>\n<li>16 exabytes \u2014 Tama\u00f1o m\u00e1ximo de un fichero<\/li>\n<li>16 exabytes \u2014 Tama\u00f1o m\u00e1ximo de cualquier atributo<\/li>\n<li>3 \u00d7 10<sup>23<\/sup> <a href=\"http:\/\/es.wikipedia.org\/wiki\/Petabyte\" title=\"Petabyte\">petabytes<\/a> \u2014 Tama\u00f1o m\u00e1ximo de un <a href=\"http:\/\/es.wikipedia.org\/w\/index.php?title=Zpool&amp;action=edit&amp;redlink=1\" class=\"new\" title=\"Zpool (a\u00fan no redactado)\">zpool<\/a><\/li>\n<li>2<sup>56<\/sup> \u2014 N\u00famero de atributos de un fichero (realmente limitado a 2<sup>48<\/sup> que es el n\u00famero de ficheros que puede contener un sistema de ficheros ZFS)<\/li>\n<li>2<sup>56<\/sup> \u2014 N\u00famero de ficheros en un directorio (realmente limitado a 2<sup>48<\/sup> que es el n\u00famero de ficheros que puede contener un sistema de ficheros ZFS)<\/li>\n<li>2<sup>64<\/sup> \u2014 N\u00famero de dispositivos en cualquier zpool<\/li>\n<li>2<sup>64<\/sup> \u2014 N\u00famero de zpools en un sistema<\/li>\n<li>2<sup>64<\/sup> \u2014 N\u00famero de sistemas de ficheros en un zpool<\/li>\n<\/ul>\n<p>A continuaci\u00f3n destaco aquellas caracter\u00edsticas que hace que ZFS sea interesante:<\/p>\n<ul>\n<li><strong>Copy-on-write<\/strong>: consiste en mantener siempre la informaci\u00f3n de los datos que manejemos. Siempre que modifiquemos un fichero, los bloques de datos que compongan dicho fichero son reubicados, modificando todas las referencias de los metadatos que apunten sobre dichos bloques. Esto nos permite realizar snapshots de nuestro sistema de archivos.<\/li>\n<\/ul>\n<ul>\n<li><strong>Snapshots<\/strong>:  Consisten en tener una instant\u00e1nea del estado del FS en alg\u00fan momento del pasado. Debido al copy-on-write, disponemos siempre la informaci\u00f3n del pasado, ya que no es eliminada cuando es modificada o eliminada del sistema de archivos. Posibles aplicaciones: backups de datos empresariales. Nos dejamos de realizar backups diarios de DB&#8217;s, datos de usuarios, ficheros, perfiles, etc.<\/li>\n<\/ul>\n<ul>\n<li><strong>Dynamic Striping<\/strong>: a medida que incluimos  discos en el zpool, aumentamos el ancho de banda del mismo, incrementando as\u00ed la velocidad de las escrituras\/lecturas y el espacio disponible para los sistemas de archivos que compongan el zpool. Pero esto no es libre albedr\u00edo. Podremos aplicar quotas de disco para garantizar que haya espacio libre. Otra forma es fijar una reserva de disco para un sistema de archivos en particular.<\/li>\n<\/ul>\n<ul>\n<li><strong>Soporte POSIX<\/strong>: ZFS es directamente accesible por las aplicaciones sin tener que realizar ninguna modificaci\u00f3n en la misma.<\/li>\n<\/ul>\n<p>Esto est\u00e1 muy bien, pero ZFS en principio fue desarrollado para productos de Sun como Solaris y OpenSolaris. Exist\u00edan rumores de que ZFS lo iban a incluir en MacOSX en el lanzamiento de Leopard, pero s\u00f3lo se qued\u00f3 rumores, ya que solo soporta modo lectura de ZFS, lo cual, tampoco est\u00e1 nada mal.<\/p>\n<p>En cambio, actualmente disponemos informaci\u00f3n de que quieren portalo para FreeBSD y Linux, usando FUSE, con licencia CDDL ( <em>Common Development and Distribution License<\/em> ). Pronto realizar\u00e9 pruebas con ZFS, para ver la &#8220;portabilidad&#8221; que tiene.<\/p>\n<p>Oracle, en respuesta al sistema de archivos ZFS de Sun, contraatac\u00f3 con <a href=\"http:\/\/btrfs.wiki.kernel.org\/index.php\/Multiple_Device_Support\" target=\"_blank\">btrfs<\/a> , otro sistema de archivos con caracter\u00edsticas similares, por no decir iguales, a ZFS. Primeramente, hay que decir que btrfs es GPL, por lo que por mi parte, tiene ya medio cielo ganado \ud83d\ude42 . Por otra parte, el proyecto est\u00e1 muy verde. La gran mayor\u00eda de las features que tiene ZFS, y que dicen que quieren desarrollar, no est\u00e1n todav\u00eda soportadas.<\/p>\n<p>Como hemos dicho antes, btrfs es similar a ZFS, implementando un sistema de archivos con capacidad copy-on-write, adem\u00e1s de soportar tolerancia a fallos y su reparaci\u00f3n de forma f\u00e1cil. Soportan grandes vol\u00famenes de datos.<\/p>\n<p>Las principales caracter\u00edsticas de este FS son:<\/p>\n<ul>\n<li>Almacenamiento de ficheros grandes: tama\u00f1o m\u00e1ximo del mismo es de 2^64<\/li>\n<li>Uso eficiente del espacio para fichero peque\u00f1os.<\/li>\n<li>Uso eficiente de indexaci\u00f3n de directorios.<\/li>\n<li>Alojamiento din\u00e1mico de inodos.<\/li>\n<li>Snapshots con capacidad de escritura.<\/li>\n<li> M\u00faltiples subvol\u00famenes  (todos separados de la ruta principal del sistema)<\/li>\n<li> Checksums para los datos y metadatos, podiendo utilizar distintos algoritmos<\/li>\n<li>Fuerte integraci\u00f3n con device mapper para el soporte de m\u00faltiples dispositivos.<\/li>\n<li> Comprobaci\u00f3n del sistema de ficheros online. El chequeo offline, es mucho m\u00e1s r\u00e1pido<\/li>\n<li>Gran eficiencia con copias de seguridad incrementales y mirroring de sistema de archivos<\/li>\n<\/ul>\n<p>No recomiendan quitar discos, cuando dispongamos de m\u00faltiples dispositivos formando un raid, ya que el sistema de archivos puede producir una p\u00e9rdida de datos. No tienen testeado el soporte de tolerancia de fallos, por lo que es posibles que de esta forma tambi\u00e9n dispongamos p\u00e9rdidas de los mismos.<br \/>\nPara Gentoo existe en el portage el ebuild para poder <a href=\"http:\/\/planet.gentoo.org\/developers\/lavajoe\/2008\/05\/25\/more_on_data_integrity_enter_btrfs\" target=\"_blank\">instalar btrfs<\/a>. ZFS est\u00e1 soportado en <a href=\"http:\/\/www.genbeta.com\/2007\/06\/20-zfs-disponible-para-linux\" target=\"_blank\">Linux gracias a FUSE<\/a>. Esta semana intentar\u00e9 instalar ambos FS&#8217;s y comprobar la viabilidad de los mismos. Los resultados los colgar\u00e9 en el blog.<\/p>\n<p>Enlaces de inter\u00e9s:<\/p>\n<p><a href=\"http:\/\/es.wikipedia.org\/wiki\/ZFS_(sistema_de_archivos)\" target=\"_blank\">ZFS Wikipedia<\/a><br \/>\n<a href=\"http:\/\/opensolaris.org\/os\/community\/zfs\/\" target=\"_blank\">ZFS en Comunidad OpenSolaris <\/a><br \/>\n<a href=\"http:\/\/www.genbeta.com\/2007\/06\/20-zfs-disponible-para-linux\" target=\"_blank\">ZFS en linux &#8211; noticia de genbeta<\/a><\/p>\n<p><a href=\"http:\/\/btrfs.wiki.kernel.org\/index.php\/Main_Page\" target=\"_blank\">Btrfs &#8211; Wiki oficial del projecto<\/a><br \/>\n<a href=\"http:\/\/planet.gentoo.org\/developers\/lavajoe\/2008\/05\/25\/more_on_data_integrity_enter_btrfs\" target=\"_blank\">Btrfs en Gentoo &#8211; Planet Gentoo blog<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Est\u00e1 en boca de todos \u00faltimamente el acr\u00f3nimo ZFS ( Zettabyte File System ) que es el sistema de archivos desarrollado por Sun Microsystems, ya incluido desde 2005, su soporte en Solaris y en OpenSolaris en sus \u00faltimas versiones. Pero antes de todos, vamos a dedicar unos cuantos p\u00e1rrafos para explicar resumidamente en qu\u00e9 consiste [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[41],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-linux","tag-fliesystems"],"_links":{"self":[{"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.otioti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8"}],"version-history":[{"count":2,"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":288,"href":"https:\/\/www.otioti.com\/index.php?rest_route=\/wp\/v2\/posts\/8\/revisions\/288"}],"wp:attachment":[{"href":"https:\/\/www.otioti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otioti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otioti.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}