Ha llegado el día. Cumplo 30 años. Este es el post oficial para los mensajes de apoyo y las felicitaciones, aunque SMS’s, llamadas y correos electrónicos también serán recibidos con mucho gusto. No habrá celebraciones, así que nada de regalos tampoco. Eso sí, por cada felicitación, a cambio, mi gratitud y un café. Oferta no acumulable y válida, en A Coruña y alrededores, hasta fin de existencias.

¡Feliz Halloween!

A menos de una semana para la treintena me envían un correo electrónico con una foto que nunca antes había visto -casi no hay fotos mías de crío; prefiero no saber por qué-. Yo con aspecto de enano repelente junto a un abuelo que tengo difuminadísimo en mis recuerdos y a una prima de mi misma edad que ha sido madre recientemente. Parábola de lo efímeras que son nuestras vidas, de la corta distancia que separa el amanecer del ocaso.

El mundo en general, y en particular el mundo de la tecnología -al menos la minúscula parte que quien aquí les escribe, humildemente, puede conocer algo-, está lleno de vendedores de sensaciones -no confundir con los consultores, que estudian en otro grupo de la misma escuela-. Éstos son expertos en hablar sin parar para acabar diciendo nada -tampoco confundir con los políticos; muchos de éstos no han ido nunca a la escuela-, o, y este el caso que aquí nos ocupa, crear términos muy bien sonantes, pero innecesarios, confusos, redundantes y/o huecos.

Un par de ejemplos de estos palabros de nuevo cuño -y muy de moda- son los shards, y el uso de éstos, o sea, el sharding. Sea quien sea el responsable de los mismos, bien que se podría haber dedicado al cultivo de la remolacha en lugar de generar entropía tan gratuitamente. A poco que lean sobre arquitecturas web, escalabilidad y particionamiento de bases de datos, enseguida aparecerán estos palabros. Si siguen documentándose, el lector atento enseguida notará que cada cual le da un interpretación ligeramente diferente a eso del sharding -mal rollo-, y que otros, como por ejemplo este buen señor -búsqueda al azar-, se montan reflexiones que ni el mismísimo Santo Tomás para tratar de darles algún significado a los palabros de nuevo cuño; reflexiones muy interesantes de leer, pero posiblemente nada prácticas. Una buena dosis de KISS es lo que les hace falta a estos inventores de nada.

Ayer, leyendo un libro sobre el tema escrito por alguien respetable -Cal Henderson, todo un señor ingeniero de Flickr-, al fin encontré una definición razonable de shard. Y es que llevaba yo ya un tiempo dándole vueltas sin mucho éxito. Pues eso, que no significa nada, o al menos nada nuevo. ¡Si es que ya está todo inventado!

[...] For architectural linear scaling, we can go vertical and partition our table space into clusters or go horizontal and partition our data into shards.

Before we dig into it, another word of warning about database scaling approaches and terminology. As with many technical concepts, there are several ambiguous ways of describing database scaling approaches. Vertical partitioning is sometimes called clustering and sometimes called segregation. The segments produced are referred to variously as clusters, partitions, and pools. Horizontal federation is sometimes called clustering or data partitioning. The segments produced are typically called shards, but can also be called cells, clusters, or partitions.

– Cal Henderson. ‘Building Scalable Web Sites’ (O’Relly)

¿Alguien en desacuerdo? ¿Más ejemplos? Me viene a la cabeza otra buena: ‘web 2.0′. Un, dos, tres, responda otra vez.

Esta semana he dedicado algún tiempo a deambular por los mundos de Xen y KVM. Sobre Xen hay información a patadas, en particular, guías rápidas paso-a-paso, como por ejemplo esta, para pasar del más completo de los desconocimientos a una instalación básica en funcionamiento en menos de media hora. Sin embargo, sobre KVM, que según el buen Jota es el futuro -y por su bien y el nuestro espero que sea así xD-, no encontré una guía para tontos satisfactoria. Resumo pues en este post los pasos elementales para poner en marcha un par de guests KVM sobre un host Debian, usando LVM tanto en el host como en los guests y configurando libvirt para facilitar el mantenimiento.


  1. Instalar todos los paquetes Debian unstable necesarios.
  2. Preparar la configuración de red para que los futuros guests tengan conectividad. Para entendernos, si parten de una configuración de red básica (/etc/network/interfaces) como la siguiente,

    Deberían de llegar a algo como lo siguiente,

  3. Crear un LV -p.e. de nombre guest- LVM en el host -en este caso en el VG disco- que albergará el disco del primer guest.
  4. Ya que en los guests se instalará Debian, descargar una image ISO mínima.
  5. Usando las utilidades libvirt, iniciar el proceso de instalación del guest en la partición LVM recién creada. El comando recibe una serie de párametros como son el nombre del guest, la memoria RAM que se le asignará, su ubicación, el número de cores que tendrá a su disposición, la interfaz de red que usará, etc. Toda esta información se recopilará en un archivo XML ubicado en /etc/libvirt/qemu y podrá retocarse en el futuro (seguida de un reinicio del servicio /etc/init.d/libvirt-bin). Lo básico: usar Grub como gestor de arranque, crear una partición primaria para el root del sistema de ficheros, y usar todo el espacio restante para un VG LVM sobre el que hacer todo el particionamiento que sea conveniente.
  6. El comando anterior termina inmediatamente después de iniciarse la instalación del guest. Para seguir con ella, accediendo al host desde algún PC con X ($ ssh -X host) o desde las propias X's del host, hay que lanzar una sesion VNC.
  7. Terminada la instalación, toca arrancar el guest por primera vez y acceder a él por VNC -o SSH si ya quedo configurado durante la instalación-, para rematar de configurarlo y pulirlo.
  8. Completadas la instalación y configuración mínimas del guest podría usarse directamente, aunque casi mejor reservarlo para sacarle copias -clones- según vayan siendo necesarios guests, y así no tener que repetir todo el proceso de instalación anterior una y otra vez. ¿Cómo hacer entonces para crear un segundo guest, este ya para uso efectivo, por ejemplo, para alojar una web? Pues creándo un disco -partición LVM- donde alojarlo y usando el comando virt-clone para sacar una copia de nuestro guest plantilla.
  9. Creado el nuevo guest toca ponerlo en marcha por primera vez y terminar de instalar y configurar todo lo que corresponda. Además, sería conveniente indicar a libvirt que lo arranque siempre que arranque la máquina host.

A mayores un par de hints de utilidad,

  1. ¿Cómo incrementar el espacio disponible en el VG de un guest para así poder extender los LVs del guest según las necesidades? Soluciones sucias aparte (p.e., crear otro LV en el host que aparecería como un segundo/tercer/etc. disco del guest que se podría agregar a continuación como un PV nuevo al VG del guest), lo más elegante es seguir una aproximación algo macarra y básada en las sabías palabras de París, 'sobrevaloras el significado de una tabla de particiones':
    1. En el host, extender el LV del guest: lvextend -L 10G /dev/disco/web.
    2. En el guest cambiar el bloque de finalización de la partición LVM (posiblemente la /dev/hda2). ¿Cómo? Con una utilidad como fdisk, basta con borrar la partición LVM para volver a crearla de nuevo con tipo LVM (0x8E), esta vez tomando todo el espacio disponible.
    3. Reiniciar el guest para forzarle a releer la tabla de particiones y a continuación hacer que el único PV que tiene tome todo el espacio nuevo que tiene a su disposición: pvresize /dev/hda2
    4. Ya hay más espacio en el VG del guest. Ahora basta con seguir el proceso normal para extender sus LV's.
  2. El proceso anterior plantea usar un LV LVM en el host por cada guest -lo que será el disco de cada guest-, que a su vez monta su propio LVM dentro del LV que le toca. Esta configuración tan elegante da algo de canguelo pensando en el día que un desastre exija acceder desde el host a las particiones de un guest. Pues oigan, que no hay problema. La solución son las MultiPath Tools y Kpartx.

Y ahora, si alguien sabe como controlar la velocidad de rotación de los escandalosos ventiladores de una Sun X4150, por dios, que se ponga en contacto conmigo. Se gratificará xD

¿Recuerdan la última vez que cocinaron castañas? Yo hace un rato de nada -la vez anterior hará más de diez años-, después de un brutal ataque de morriña y viaje a la infancia durante un café de última hora con el buen ‘Todo lo que se me ocurre‘, promotor de tantos y tantos planes estúpidos a lo largo de mi vida contemporanea. Dicho y hecho. De la facultad al super y de ahí a casa para asarlas/carbonizarlas,

Y ya puestos, de postre, unas riquísimas manzanas tabardilla asadas -siglos también desde la última vez-,

¿A que apetecen? -la treintena me está matando- xD

La tarde de ayer perpetré todo un dispendio económico con el pretexto de afinar mi escasa agudeza visual. La edad, ya saben. Al final resultó que no, que mis gafas actuales eran todavía perfectamente operativas, así que hubo que admitir ante Uxía, la competente técnico comercial de VisionLab -terceras gafas que me vende esta señorita; ¿he dicho ya lo guapa que me parece? ¿lo mucho que me gusta su figura, sus manos, su mirada, su piel, su tono serio y profesional pero también cercano…?-, que lo que yo realmente quería eran unas gafas nuevas y punto -¿la treintena jugándomela de nuevo?-. Después del pertinente ir y venir de monturas y de sopesar cada una de ellas con la ayuda del buen criterio de Roberto -mi sufrido acompañante en esta ocasión-, se han vuelto a frustrar mis ansias gafapasteras. Ahora bien, he acabo con un fondo de armario óptico como nunca antes había tenido. ¿Cuáles me recomiendan para el día a día? ¿Y para los domingos?

Al día siguiente no murió nadie‘. Así es como comienza ‘Las intermitencias de la muerte‘, la novela de José Saramago que acabo de terminar de leer, y que pasa a ser la tercera que consumo de este señor ganador del Nobel de Literatura, junto con el ‘Ensayo sobre la ceguera‘ y ‘Todos los nombres‘.

En ‘Las intermitencias de la muerte’ Saramago repite el esquema presente en otras novelas suyas y que es particularmente de mi gusto: plantear un escenario imposible que afecte a toda una sociedad e ir desgranando las consecuencias de la nueva situación. En particular, en ‘Las intermitencias de la muerte’ se centra en un país donde la muerte decide suspender su trabajo letal y la gente deja de morir. En un primer momento la euforia colectiva se desata, pero muy pronto da paso a la desesperación y el caos. Los humanos, destinados a una vejez eterna, buscan maneras de forzar a la muerte a matar aunque no lo quiera, acabando por desterrar a los ancianos por haberse convertido en estorbos irremovibles. Pero un día la muerte decide volver…

La novela está dividida -vamos, que la divido yo, con mis profundos conocimientos literarios- en tres partes claras, y durante las tres es Saramago quien adopta el papel de narrador de los hechos, haciendo explícito en varias ocasiones ese papel, muchas veces con guiños cómicos al lector -y otras resultando algo pesado-.

La primera parte, divertida y amena de leer, está dedicada a describir las consecuencias que la suspensión de las actividades de la muerte y su posterior regreso tienen en el poder político, la iglesia, la mafia, los asilos, las compañías aseguradoras, las empresas funerarias y las familias, todo ello con la particular forma de escribir de Saramago -y sorna, como se diría en gallego, que este señor debe de ir bien servido-.

La segunda parte, un rollo macabeo -no hay otra forma de decirlo-, divaga sobre la muerte como personaje y la nueva forma que adopta ante los habitantes del país ficticio en el que se desarrollan los hechos. Un coñazo.

Finalmente, en la tercera parte y desenlace de la novela, la narración se centra en la particular relación que se establece entra la muerte y un violonchelista anónimo que, por razones que no vienen al caso si no quieren que les chafe la lectura, llama la atención de ésta. Es esta última parte lo mejorcito del libro, con algunos pasajes que llegan a transmitir y construyen imágenes muy bellas, razón suficiente para darle una oportunidad al libro pese a lo irregular que resulta su lectura.

[...] Habías observado (la muerte visitando al violonchelista) con fría atención al violonchelista dormido, ese hombre al que no consigues matar porque sólo pudiste llegar hasta él cuando ya era demasiado tarde, habías visto al perro enroscado sobre la alfombra, y ni siquiera a este animal te es permitido tocar porque tú no eres su muerte, y, en la templada penumbra del dormitorio, esos dos seres vivos que rendidos al sueño te ignoraban sirvieron para aumentar en tu conciencia el peso del yerro. Tú, que te habías habituado a poder lo que nadie más puede, te ves allí impotente, atada de pies y manos, con tu licencia para matar cero cero siete sin validez en esta casa, nunca, desde que eres muerte, lo reconoces, habías sido hasta tal punto humillada. Fue entonces cuando saliste del dormitorio y entraste en la sala de música, fue entonces cuando te arrodillaste ante la suite número seis para violonchelo de johann sebastian bach e hiciste con los hombros esos movimientos rápidos que en los seres humanos suelen acompañar al llanto compulsivo, fue entonces, con tus duras rodillas todavía hincadas en el duro suelo, cuando tu exasperación se difuminó de repente como la imponderable niebla en la que a veces te transformas cuando no quieres ser del todo visible. Regresaste al dormitorio, seguiste al violonchelista cuando él fue a la cocina para beber agua y abrirle la puerta al perro, primero lo viste acostado y durmiendo, ahora lo ves despierto y de pie, tal vez debido a una ilusión óptica causada por las rayas del pijama parecía mucho más alto que tú, pero no podía ser, era un engaño de los ojos, una distorsión de la perspectiva, ahí está la lógica de los hechos que nos dice que la mayor eres tú, muerte, mayor que todo, mayor que todos nosotros. O tal vez no siempre lo seas, tal vez las cosas que suceden en el mundo se expliquen por, por ejemplo, la luna deslumbrante que el músico recuerda de su infancia habría pasado en vano si él se encontrara durmiendo, sí, la ocasión, porque tú ya eras otra vez una pequeña muerte cuando regresaste al dormitorio y te sentaste en el sillón, y más pequeña aun te hiciste cuando el perro se levantó de la alfombra y se subió a tu regazo que parecía de niña, y entonces tuviste un pensamiento de los más bonitos, pesaste que no era justo que la muerte, no tú, la otra, viniese algún día a apagar la brasa de aquel suave calor animal, así lo pensaste, quién lo diría, tu que estás tan habituada a los fríos árticos y antárticos que hacen en la sala en que te encuentras en este momento y adonde la voz de tu ominoso deber te llamó, el de matar a aquel hombre qué, dormido, parecía tener en la cara el rictus amargo de quien en toda su vida había tenido una compañía realmente humana en la cama, que hizo un acuerdo con su perro para que cada uno soñara con el otro, el perro con el hombre, el hombre con el perro, que se levanta de noche con su pijama de rayas para ir a la cocina a matar la sed, claro que sería más cómodo llevarse un vaso de agua al dormitorio cuando fuera al acostarse, pero no lo hace, prefiere su pequeño paseo nocturno por el pasillo hasta la cocina, en medio de la paz y el silencio de la noche, con el perro que siempre va detrás y a veces pide salir al patio, otras veces no, Este hombre tiene que morir, dices tú.

Y ustedes, ¿la han leído? ¿Qué les pareció?

Next Page →