{"id":2422,"date":"2017-11-26T21:19:56","date_gmt":"2017-11-26T20:19:56","guid":{"rendered":"http:\/\/www.jmarior.net\/itank\/?p=2422"},"modified":"2017-11-26T21:27:13","modified_gmt":"2017-11-26T20:27:13","slug":"optimizar-el-backup-de-maquinas-virtuales-qemu-y-kvm-linux-con-zerofree","status":"publish","type":"post","link":"https:\/\/www.jmarior.net\/itank\/optimizar-el-backup-de-maquinas-virtuales-qemu-y-kvm-linux-con-zerofree\/","title":{"rendered":"Optimizar el backup de m\u00e1quinas virtuales QEmu y KVM Linux con zerofree"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2423\" src=\"https:\/\/www.jmarior.net\/itank\/files\/disk-usage.png\" alt=\"\" width=\"1316\" height=\"956\" srcset=\"https:\/\/www.jmarior.net\/itank\/files\/disk-usage.png 1316w, https:\/\/www.jmarior.net\/itank\/files\/disk-usage-400x291.png 400w, https:\/\/www.jmarior.net\/itank\/files\/disk-usage-768x558.png 768w, https:\/\/www.jmarior.net\/itank\/files\/disk-usage-800x581.png 800w\" sizes=\"auto, (max-width: 1316px) 100vw, 1316px\" \/><\/p>\n<p>Una forma de ahorrar tiempo y espacio al comprimir m\u00e1quinas virtuales QEmu o KVM con GNU\/Linux es utilizar el comando <a href=\"http:\/\/manpages.ubuntu.com\/manpages\/zesty\/man8\/zerofree.8.html\">zerofree<\/a>.<\/p>\n<p>El comando zerofree\u00a0escribe con ceros los cl\u00fasteres marcados como espacio libre en particiones con sistema de archivos ext2, ext3 o ext4.\u00a0 Las utilidades de compresi\u00f3n como zip o lzo ignoran esos cl\u00fasteres vac\u00edos ahorrando espacio y tiempo de compresi\u00f3n.<\/p>\n<p>zerofree requiere que el volumen est\u00e9 montado en modo s\u00f3lo lectura o desmontado. Por ejemplo para optimizar la partici\u00f3n home:<\/p>\n<pre># apt-get install zerofree\r\n# umount -f \/home\r\n# zerofree \/dev\/vdb1\r\n# mount -a<\/pre>\n<p>Yo lo he utilizado en particiones formateadas con ext3 y ext4 sobre unidades de disco virtualizadas en formato RAW y QCOW2 de m\u00e1quinas virtuales KVM con Ubuntu Server Linux gestionadas con <a href=\"https:\/\/www.proxmox.com\/en\/proxmox-ve\">Proxmox VE 5.x<\/a><\/p>\n<p>He tenido problemas para utilizarlo sobre la partici\u00f3n ra\u00edz \/ porque no consigo liberarla de uso ni montarla en modo readonly. telinit llama al modo singleuser y mount ro a s\u00f3lo lectura:<\/p>\n<pre># telinit 1\r\n# mount -o remount,ro \/\r\n# zerofree \/dev\/vda1\r\nzerofree: filesystem \/dev\/vda1 is mounted rw<\/pre>\n<p>Hay una forma alternativa (m\u00e1s lenta y un poco menos elegante) que consiste en crear un archivo relleno completamente de ceros (con ayuda de <a href=\"https:\/\/es.wikipedia.org\/wiki\/\/dev\/zero\">\/dev\/zero<\/a>) con todo el espacio libre (saturando la partici\u00f3n) con dd e inmediatamente borrarlo:<\/p>\n<pre># dd if=\/dev\/zero of=\/tmpZEROfile\r\n# rm -f \/tmpZEROfile<\/pre>\n<p>De este modo he ara\u00f1ado varios cientos de GB y decenas de minutos en tiempo de compresi\u00f3n y copia durante las tareas de backup.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una forma de ahorrar tiempo y espacio al comprimir m\u00e1quinas virtuales QEmu o KVM con GNU\/Linux es utilizar el comando zerofree. El comando zerofree\u00a0escribe con ceros los cl\u00fasteres marcados como espacio libre en particiones con sistema de archivos ext2, ext3 o ext4.\u00a0 Las utilidades de compresi\u00f3n como zip o lzo ignoran esos cl\u00fasteres vac\u00edos ahorrando [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2423,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-2422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-itank-ideas"],"views":1026,"_links":{"self":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/2422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/comments?post=2422"}],"version-history":[{"count":0,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/2422\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media\/2423"}],"wp:attachment":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media?parent=2422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/categories?post=2422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/tags?post=2422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}