{"id":361,"date":"2020-10-01T09:12:53","date_gmt":"2020-10-01T07:12:53","guid":{"rendered":"https:\/\/esferas.org\/mldt\/?p=361"},"modified":"2020-10-02T05:49:45","modified_gmt":"2020-10-02T03:49:45","slug":"una-maquina-virtual-sobre-un-disco-ssd-completo","status":"publish","type":"post","link":"https:\/\/esferas.org\/mldt\/una-maquina-virtual-sobre-un-disco-ssd-completo\/","title":{"rendered":"Una m\u00e1quina virtual sobre un disco SSD completo"},"content":{"rendered":"\n<p>Porque s\u00ed, porque con el magn\u00edfico servidor que tenemos nos lo podemos permitir. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"has-text-align-right\">jueves, 1 de octubre de 2020<\/p>\n\n\n\n<p>Tras recibir (y criticar) el informe del servidor actual hecho por el muchacho externo decidimos que de momento s\u00f3lo nos pod\u00edamos permitir comprar un disco SSD y realizar all\u00ed una instalaci\u00f3n de una m\u00e1quina (una Debian 10) con el servidor de bases de datos que se nos ped\u00eda.<\/p>\n\n\n\n<p>La instalaci\u00f3n del disco f\u00edsico fue como siempre: inc\u00f3moda. La caja es grande y c\u00f3moda pero la placa base es de servidor y tiene conectores SATA de datos muy especiales. Menos mal que quedaba uno libre y pude situar el disco (con su adaptador) en lo alto de la pila de los otros. La m\u00e1quina arranca y lo reconoce sin problemas.<\/p>\n\n\n\n<p>Luego vino el proceso de creaci\u00f3n de la m\u00e1quina virtual. Al ser una versi\u00f3n antigua de Ubuntu pens\u00e9 que podr\u00eda tener problemas en encontrar una versi\u00f3n de libvirtd que funcionase, pero no, el entorno es funcional y muy pr\u00e1ctica. Como mi usuario pertenece al grupo <em>libvirtd<\/em> pues he podido conectarme con el programa <em>virt-manager<\/em> sin problemas en remoto. <\/p>\n\n\n\n<p>Con respecto al almacenamiento entonces s\u00f3lo decir que tuve que crear un recurso espec\u00edfico (silo lo llaman en la traducci\u00f3n) de tipo <em>disco<\/em>, crear una partici\u00f3n en el disco nuevo (<em>\/dev\/sda1<\/em>) y asignarlo a dicho silo. <\/p>\n\n\n\n<p>Ahora tengo una duda curiosa sobre este montaje. La m\u00e1quina virtual est\u00e1 empleando un esquema de disco virtual sobre una partici\u00f3n de un disco f\u00edsico real SSD. Dud\u00e9 al principio si aplicar todas las medidas que suelen recomendar con estos dispositivos porque no estaba seguro de que funcionasen siendo, en el fondo, un disco virtual. Al final me decant\u00e9 con definir las opciones siguientes en el montaje porque se quiera o no est\u00e1 trabajando sobre un SSD:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>noatime<\/strong><ul><li>Desactivamos la escritura de la fecha de acceso en el disco<\/li><\/ul><\/li><li><strong>discard<\/strong><ul><li>Mecanismo TRIM cont\u00ednuo<\/li><\/ul><\/li><li><strong>nodelaloc<\/strong><ul><li>Desactivar asignaci\u00f3n de espacio vac\u00edo sin escribirlo.<\/li><\/ul><\/li><li><strong>barriend=0<\/strong><ul><li>Reducci\u00f3n del n\u00famero de barridos de escritura<\/li><\/ul><\/li><li><strong>commit=30<\/strong><ul><li>Retrasa la escritura de metadatos <\/li><\/ul><\/li><\/ul>\n\n\n\n<p>Y ya veremos c\u00f3mo funciona o si tenemos alg\u00fan problema. Lo terrible de estos discos SSD es que se mueren de forma repentina y m\u00e1s te vale haber creado copias completas o ser\u00e1 muy complicado volver a ponerlo en marcha.<\/p>\n\n\n\n<p>La red presentaba otro problema. Generalmente <em>qemu<\/em> y derivados crean su propia red  interna para las m\u00e1quinas, con su puente, su servidor DHCP y algunas cosas m\u00e1s. Eso funciona bien excepto cuando quieres que la m\u00e1quina virtual nueva tenga su IP dentro de la red normal para que los dem\u00e1s le vean como un igual y tenga acceso directo a \u00e9l. De la otra forma <em>qemu<\/em> crea un NAT y la cosa se complica. <\/p>\n\n\n\n<p>Siguiendo las recomendaciones de <a href=\"https:\/\/fabianlee.org\/2019\/05\/26\/kvm-creating-a-guest-vm-on-a-nat-network\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fabian Lee<\/a> he creado un puente de red y le he a\u00f1adido al entorno <em>libvirt<\/em>. Primero creo un archivo con lo b\u00e1sico de la definci\u00f3n:<\/p>\n\n\n\n<pre title=\"host-bride.xml\" class=\"wp-block-code\"><code lang=\"xml\" class=\"language-xml\">&lt;network>\n  &lt;name>host-bridge&lt;\/name>\n  &lt;forward mode=\"bridge\"\/>\n  &lt;bridge name=\"br0\"\/>\n&lt;\/network><\/code><\/pre>\n\n\n\n<p>Luego creo el puente de red en la configuraci\u00f3n del sistema porque me interesa que tanto el interfaz f\u00edsico como el virtual permitan tr\u00e1nsito entre ellas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">auto br0 \niface br0 inet static\n        address         192.168.100.9\n        netmask         255.255.255.0\n        network         192.168.100.0\n        broadcast       192.168.100.255\n        gateway         192.168.100.1\n        dns-nameservers 192.168.100.1 192.168.100.3 192,168.100.7\n        dns-domain      venexma.net\n        bridge-ports    eno1\n        bridge-stp      off\n        bridge-maxwait  0\n        bridge-fd       0 \n<\/code><\/pre>\n\n\n\n<p>Despu\u00e9s configuro libvirtd para la red:<\/p>\n\n\n\n<pre title=\"virsh\" class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo virsh net-define host-bridge.xml\n$ sudo virsh net-start host-bridge\n$ sudo virsh net-autostart host-bridge\n$ sudo  virsh net-list --all\nNombre               Estado     Inicio autom\u00e1tico Persistente\n----------------------------------------------------------\n host-bridge          activo     si            si\n$ <\/code><\/pre>\n\n\n\n<p>Cuando pongo en marcha la creaci\u00f3n de la red previsamente he descargado la \u00fatlimoa ISO (Debian 10.6) y le digo que arranque de all\u00ed. <\/p>\n\n\n\n<p>No ha habido problemas. Red con IP fija (ya retoqu\u00e9 el servidor DNS antes) y enrutado directo a cualquier parte de la red. <\/p>\n\n\n\n<p>El desempe\u00f1o es muy, pero que muy bueno. Como me ha falta una cable SATA interno no he podido poner el disco mec\u00e1nico para guardar archivos auxilares de Postgres como los WAL.<\/p>\n\n\n\n<p>He tomado algunas medidas b\u00e1sicas de seguridad como anular acceso como root y anular la entrada de contrase\u00f1as tambi\u00e9n por ese medio. Instalar mi fiel <em>etckeeper<\/em> para controlar el directorio <em>\/etc<\/em> y poco m\u00e1s. <\/p>\n\n\n\n<p>Respecto al servidor de bases de datos PostgreSQL he seguido las indicaciones de este art\u00edculo y activado los repositorios propios de Postgres. No ha habido problemas en tener la versi\u00f3n 12 correctamente instalada. <\/p>\n\n\n\n<p>As\u00ed que el servidor principal tiene un puente de red con su interfaz f\u00edsico y el virtual y la m\u00e1quina virtual puede tener IP fija y tr\u00e1nsito en todos los sentidos. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Referencias<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.samsung.com\/semiconductor\/minisite\/ssd\/support\/faqs-03\/\" target=\"_blank\">https:\/\/www.samsung.com\/semiconductor\/minisite\/ssd\/support\/faqs-03\/<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/slimbook.es\/tutoriales\/linux\/93-optimizar-nuestro-ssd-en-linux\" data-type=\"URL\" data-id=\"https:\/\/slimbook.es\/tutoriales\/linux\/93-optimizar-nuestro-ssd-en-linux\" target=\"_blank\">https:\/\/slimbook.es\/tutoriales\/linux\/93-optimizar-nuestro-ssd-en-linux<\/a><\/li><li><a href=\"https:\/\/computingforgeeks.com\/install-postgresql-12-on-debian\/\" data-type=\"URL\" data-id=\"https:\/\/computingforgeeks.com\/install-postgresql-12-on-debian\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/computingforgeeks.com\/install-postgresql-12-on-debian\/<\/a><\/li><li><a href=\"https:\/\/wiki.archlinux.org\/index.php\/Solid_state_drive#Continuous_TRIM\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/wiki.archlinux.org\/index.php\/Solid_state_drive#Continuous_TRIM<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Porque s\u00ed, porque con el magn\u00edfico servidor que tenemos nos lo podemos permitir.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[3],"tags":[11,77,109,94,104],"class_list":["post-361","post","type-post","status-publish","format-standard","hentry","category-logros","tag-debian","tag-libvirtd","tag-network-bridge","tag-postgresql","tag-ssd","content-box"],"_links":{"self":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/comments?post=361"}],"version-history":[{"count":6,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/361\/revisions"}],"predecessor-version":[{"id":367,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/posts\/361\/revisions\/367"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/media?parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/categories?post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/mldt\/wp-json\/wp\/v2\/tags?post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}