{"id":230,"date":"2013-04-30T15:34:00","date_gmt":"2013-04-30T15:34:00","guid":{"rendered":"http:\/\/hoper.dnsalias.net\/atdc\/index.php\/2013\/04\/30\/20130424btrfs\/"},"modified":"2017-05-18T16:51:11","modified_gmt":"2017-05-18T14:51:11","slug":"20130424btrfs","status":"publish","type":"post","link":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/2013\/04\/30\/20130424btrfs\/","title":{"rendered":"btrfs : La fiabilit\u00e9 a un prix"},"content":{"rendered":"<p>Cela faisait tr\u00e8s longtemps que je voulais jeter un \u0153il \u00e0 <a href=\"https:\/\/btrfs.wiki.kernel.org\/index.php\/Main_Page\">btrfs<\/a>. Et apr\u00e8s quelques jours de lecture et deux ou trois tests rapides, je suis maintenant certain de pouvoir me passer sereinement de ce FS, pendant encore de nombreuses ann\u00e9es.<\/p>\n<h3>Un produit \u00ab\u00a0tout en un\u00a0\u00bb<\/h3>\n<p>La volont\u00e9 de btrfs est de remplacer toutes les couches habituellement utilis\u00e9es (mdadm\/lvm\/fs&#8230;) par un produit unique. Un \u00ab\u00a0tout en un\u00a0\u00bb capable, parce qu&rsquo;il \u00e0 justement connaissance de l&rsquo;ensemble des couches, de faire plus de choses et de les faire plus rapidement qu&rsquo;en utilisant des couches ind\u00e9pendantes (et universelles).<\/p>\n<p>Malheureusement, tant que son d\u00e9veloppement n&rsquo;est pas termin\u00e9, il y a au final tr\u00e8s peu de choses dont il soit capable et qui ne soit pas d\u00e9j\u00e0 possible en utilisant les produits actuels. Pire, il est pour le moment moins dou\u00e9 dans chaque tache que le produit ind\u00e9pendant correspondant&#8230;<\/p>\n<p>Faisons donc rapidement un petit tour d&rsquo;horizon de ce qui existe d\u00e9j\u00e0, de ces points forts et de ces points faibles.<\/p>\n<h3>De vrais avantages<\/h3>\n<p>L&rsquo;argument fort de btrfs est de garantir la fiabilit\u00e9 des donn\u00e9es. Pour cela, chaque bloc de donn\u00e9e est r\u00e9pliqu\u00e9 (si possible sur plusieurs disques physique, sur le m\u00eame si ce n&rsquo;est pas possible) et dispose d&rsquo;une somme de contr\u00f4le. A chaque lecture, on v\u00e9rifie donc cette somme de contr\u00f4le, et on passe \u00e0 l&rsquo;autre copie du bloc en cas de soucis (puis on r\u00e9pare le bloc corrompu). Cela revient un peu \u00e0 du raid1 si l&rsquo;on dispose de deux disques (mais cela fonctionne aussi tr\u00e8s bien avec un seul disque). A un d\u00e9tail pr\u00e8s, cette r\u00e9plication ne se fait pas au niveau device, mais au niveau fichier, ce qui, \u00e0 l&rsquo;avenir pourrait apporter d&rsquo;autres avantages bien sympathiques (niveau de protection diff\u00e9rent en fonction des r\u00e9pertoires ou des types de fichiers etc).<\/p>\n<p>J&rsquo;ai aussi beaucoup appr\u00e9ci\u00e9 la possibilit\u00e9 de r\u00e9aliser des snapshot au niveau fichier (cp &#8211;reflink). Tr\u00e8s utile dans le cas de gros fichiers dont seules certaines parties \u00e9volues (images disques pour des VM etc)<\/p>\n<h3>Mais \u00e0 quel prix\u00a0!<\/h3>\n<p>J&rsquo;ai beau \u00eatre parano\u00efaque et placer la s\u00e9curit\u00e9 de mes donn\u00e9es au dessus de toute le reste, le prix \u00e0 payer dans le cas de btrfs me semble aujourd&rsquo;hui trop \u00e9lev\u00e9. Jugez plut\u00f4t&#8230;<\/p>\n<ul>\n<li>Plus de 50% du disque sera utilis\u00e9 pour assurer cette s\u00e9curit\u00e9<\/li>\n<li>Car le raid5\/6 est toujours en cours de d\u00e9veloppement<\/li>\n<li>Pas de chiffrement des donn\u00e9es<\/li>\n<li>En cas de panne d&rsquo;un disque, il est n\u00e9c\u00e9ssaire de d\u00e9monter le FS\u00a0!<\/li>\n<li>Une fragmentation importante.<\/li>\n<li>Une fiabilit\u00e9 encore tr\u00e8s \u00e9loign\u00e9es des FS habituels.<\/li>\n<\/ul>\n<p>Surtout, le fonctionement interne de btrfs fait qu&rsquo;il est pratiquement impossible de savoir combien de place il reste. Vous avez bien lu, la commande \u00ab\u00a0df\u00a0\u00bb ne vous donnera aucune information utile, vous ne saurez jamais ce qu&rsquo;il est encore possible ou non de copier sur votre disque, et cela n&rsquo;est apparemment pas pr\u00e8s de changer.<\/p>\n<p>Voici un petit extrait de la <a href=\"https:\/\/btrfs.wiki.kernel.org\/index.php\/FAQ#Why_is_free_space_so_complicated.3F\">FAQ<\/a> \u00e0 ce sujet\u00a0:<\/p>\n<p>\u00ab\u00a0So, in general, it is impossible to give an accurate estimate of the amount of free space on any btrfs filesystem. Yes, this sucks. If you have a really good idea for how to make it simple for users to understand how much space they&rsquo;ve got left, please do let us know, but also please be aware that the finest minds in btrfs development have been thinking about this problem for at least a couple of years, and we haven&rsquo;t found a simple solution yet.\u00a0\u00bb<\/p>\n<p>J&rsquo;ai fait le test (cr\u00e9ation d&rsquo;un volume btrfs, copie de donn\u00e9es dessus etc). S\u00e9rieusement, c&rsquo;est une horreur. La commande habituelle df est totalement \u00e0 l&rsquo;ouest, quand \u00e0 \u00ab\u00a0btrfs filesystem df \/point_de_montage\u00a0\u00bb il faut avoir de s\u00e9rieuses connaissances sur le fonctionement interne de btrfs, deux aspirines, une calculatrice et du temps devant soit (tester balancing\/defrag&#8230;) pour ne serait-ce qu&rsquo;estimer ce qu&rsquo;il est encore possible de copier dans son volume. Je doute sinc\u00e8rement que ce FS puisse \u00eatre un jour utilis\u00e9 par le commun des mortels. Ou alors, il s&rsquo;agira d&rsquo;un usage tr\u00e8s basique (une seule copie des donn\u00e9es etc) auquel cas pourquoi se compliquer autant la vie\u00a0? ext4 sera toujours plus adapt\u00e9 pour madame michu.<\/p>\n<h3>Conclusion<\/h3>\n<p>Aujourd&rsquo;hui, entre un FS \u00ab\u00a0nextgen\u00a0\u00bb forc\u00e9ment bugu\u00e9, en cours de d\u00e9veloppement, et auquel il faudrait pourtant confier l&rsquo;int\u00e9gralit\u00e9 de ses donn\u00e9es (les diff\u00e9rents FS ne seraient que des sous volumes du FS principal) et un ext4 finalement plus robuste (lui aussi <a href=\"https:\/\/lwn.net\/Articles\/469805\/\">toujours en d\u00e9veloppement<\/a>), le choix est assez vite fait. Surtout que, gr\u00e2ce \u00e0 LVM, on assure un vrai d\u00e9coupage (physique) de ses donn\u00e9es. Dans le pire des cas, si un FS se vautre, ce n&rsquo;est que ce FS la qu&rsquo;il faudra restaurer (Tout le monde \u00e0 bien fait des sauvegardes hein ?).<\/p>\n<p>Regardez la liste des <a href=\"http:\/\/linuxsoft.cern.ch\/cern\/slc59\/i386\/yum\/updates-srpms\/repoview\/lvm2.html\">corrections r\u00e9centes<\/a> sur LVM, et vous aurez la preuve de la tr\u00e8s grande fiabilit\u00e9 de ce syst\u00e8me. Deux philosophies s&rsquo;affrontent. L&rsquo;ancienne\u00a0: Chaque logiciel ne fait qu&rsquo;une seule chose, mais il l&rsquo;a fait bien. et la nouvelle\u00a0: On fait tout, parce que cela permet de faire des choses que des briques s\u00e9par\u00e9es ne peuvent pas faire (d\u00e9duplication, snapshot (y compris \u00e0 distance) etc.<\/p>\n<p>En fait, je me demande m\u00eame si je passerai \u00e0 btrfs lorsqu&rsquo;il aura r\u00e9ussit \u00e0 \u00e9galer puis \u00e0 d\u00e9passer mdadm et lvm (en fonctionnalit\u00e9 ET en s\u00e9curit\u00e9). Parce que le jour ou un nouvel FS arrivera, mes anciennes couches seront toujours valables. Si je m&rsquo;en s\u00e9pare pour passer \u00e0 btrfs, je devrai tout reconstruire pour pouvoir tester\/utiliser un \u00e9ventuel futur FS qui n&rsquo;assurerai que son r\u00f4le de syst\u00e8me de fichier. N&rsquo;oubliez pas, \u00ab\u00a0le mieux est l&rsquo;ennemi du bien\u00a0\u00bb&#8230;<\/p>\n<h3>A lire<\/h3>\n<ul>\n<li>https:\/\/btrfs.wiki.kernel.org\/index.php\/Main_Page<\/li>\n<li>https:\/\/btrfs.wiki.kernel.org\/index.php\/Using_Btrfs_with_Multiple_Devices<\/li>\n<li>https:\/\/btrfs.wiki.kernel.org\/index.php\/Gotchas<\/li>\n<li>https:\/\/btrfs.wiki.kernel.org\/index.php\/FAQ<\/li>\n<li>http:\/\/richardhartmann.de\/blog\/posts\/2012\/02\/RAID-sucks\/<\/li>\n<li>http:\/\/linuxfr.org\/news\/le-noyau-linux-est-disponible-en-version%C2%A030#toc_11<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cela faisait tr\u00e8s longtemps que je voulais jeter un \u0153il \u00e0 btrfs. Et apr\u00e8s quelques jours de lecture et deux ou trois tests rapides, je suis maintenant certain de pouvoir me passer sereinement de ce FS, pendant encore de nombreuses ann\u00e9es. Un produit \u00ab\u00a0tout en un\u00a0\u00bb La volont\u00e9 de btrfs est de remplacer toutes les [&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":[],"class_list":["post-230","post","type-post","status-publish","format-standard","hentry","category-geekitude"],"_links":{"self":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts\/230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":1,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts\/230\/revisions"}],"predecessor-version":[{"id":689,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/posts\/230\/revisions\/689"}],"wp:attachment":[{"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/categories?post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hoper.dnsalias.net\/atdc\/index.php\/wp-json\/wp\/v2\/tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}