miércoles, junio 18, 2014

Promox: Controlar el estado del enlace de red en una máquina KVM

Proxmox es una plataforma de virtualización que ofrece tanto la posibilidad de utilizar contenedores - paravirtualización - a través de openvz como virtualización de sistemas a través de kvm, plataforma de virtualización basada a su vez en qemu. Lo suelo usar para probar sistemas Linux con máquinas virtuales a través de kvm.

Hace unos días tuve la necesidad de comprobar con un software determinado respondía a la pérdida del enlace ethernet y si se disparaban los procesos que tenía configurado correctamente. Para poder interactuar con una máquina virtual que está corriendo se utiliza la utilidad qm, concretamente la opción monitor, acompañado por el vmid de la máquina que se quiera controlar.

root@proxmox ~ # qm monitor 101
Entering Qemu Monitor for VM 101 - type 'help' for help
qm>

Una vez conectados al control de la máquina virtual, se puede obtener la información de las interfaces de red que se tienen configuradas en el mismo con la ayuda del comando info network

qm> info network
net0: index=0,type=nic,model=e1000,macaddr=56:7c:16:86:6b:4a
\ net0: index=0,type=tap,ifname=tap101i0,script=/var/lib/qcmu-server/pve-bridge,downscript=/etc/kvm/kvm-ifdown net1: index=0,type=nic,model=e1000,macaddr=8e:53:38:3c:01:cc
\ net1: index=0,type=tap,ifname=tap101i1,script=/var/lib/qemu-server/pve-bridge,downscript=/etc/kvm/kvm-ifdown net2: index=0,type=nic,model=e1000,macaddr=46:64:f4:b1:47:6c
\ net2: index=0,type=tap,ifname=tap101i2,script=/var/lib/qemu-server/pve-bridge,downscript=/etc/kvm/kvm-ifdown

Ahora, con ayuda del comando set_link nombre on|off se puede controlar el estado del enlace. Por ejemplo, para simular la desconexión del cable en la interfaz net1:

qm> set_link net1 off

Referencias

viernes, junio 13, 2014

Fotografiando en analógico

En esta época de cámaras digitales, puede que no tenga demasiado sentido seguir fotografiando en analógico. Sin embargo, tenía cierto gusanillo por volver a tirar en analógico tras lo que he ido aprendiendo estos últimos años con las digitales. Más pausado, pensando mejor como hacer las fotos - aquí cada copia cuesta dinero - y como ver la exposicion. Tras estar tirando las Navidades pasadas con una vetusta Canon AE-1 Program de más de 30 años que tenían mis padres , decidí buscar una cámara de segunda mano analógica para calmar el gusanillo. Por algo más de 20 euros, conseguí una Nikon F65 en bastante buen estado. Enfoque automático, varios modos programables, lenta como ella sola enfocando - acostumbrado a una D80 -, sincronización de flash 1/90. Pero lo suficiente para pasar un rato divertido con ella.

Después de revelar el carrete - reconozco que no me esperaba sacar 23 de las 24 fotos -, me ha llamado muchísimo la atención lo bien que quedan las fotos en papel. Supongo que en parte, porque no suelo pasar las fotos que hago con la digital a papel. Ya aproveché el revelado para que me digitalizaran las fotos. Aquí os dejo dos fotos tomadas en el templo de Debod, eso sí al medio día y con luz bastante dura.


Templo de Debod

domingo, junio 08, 2014

Autotools, tutorial de uso (V): Añadiendo opciones

Cuando se están generando scripts de configuración con ayuda de las autotools, puede que interese activar o desactivar opciones en función de parámetros en la línea de comandos que se le pase al script. Por ejemplo, si se quiere que el script reciba un parámetro que sea --enable-sys-debug, que indique que el programa debe de configurarse para tener depuración interna

La macro que ayuda a implementar de manera sencilla esta funcionalidad es AC_ARG_ENABLE. Esta macro recibe cuatro parámetros, los dos primeros obligatorios y los otros dos opcionales.

  • feature que es la propiedad que deseamos activar a través de la macro.
  • help Que es una cadena que indica el texto de ayuda. Suele ser bastante cómodo usar la macro AS_HELP_STRING que nos ayuda a formatear el texto de ayuda de manera sencilla
  • Acciones si si: Conjunto de shell script (o macros) si usamos la opción que queremos
  • Acciones si no: Conjunto de shell script (o macros) si no usamos la opción.

Por ejemplo, se va a implementar la opcion --enable-sys-debug, la cual si está presente definirá una macro en el preprocesador C que se llamará HAVE_SYS_DEBUG y tendrá valor la cadena "1" mientras que sino está presente dicha macro tendrá el valor "0". Como en los casos anteriores las fuentes están en Autotorial tut3. La parte interesante en este caso está en las siguientes líneas del fichero configure.ac:

AC_ARG_ENABLE(sys-debug,[AC_HELP_STRING([--enable-sys-debug],
    [Habilita la depuración interna (por defecto no)])],
    [AC_DEFINE([HAVE_SYS_DEBUG],["1"],[Activada la propiedad 1])],
    [AC_DEFINE([HAVE_SYS_DEBUG],["0"],[Desactivada la propiedad 1])])

Ahora, el script de configure que se generará tendrá una nueva opción que será --enable-sys-debug. Si partiendo del código fuente de la tercera parte del tutorial generamos el script de configure, y vemos la ayuda:

./autogen.sh
...
Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --disable-dependency-tracking  speeds up one-time build
  --enable-dependency-tracking   do not reject slow dependency extractors
  --enable-sys-debug      Habilita la depuración interna (por defecto no)
...

Ahora, si se configura el programa con la opción --enable-sys-debug, compilamos y ejecutamos el programa veremos como el valor de la macro del preprocesador C que hemos definido es "1":

swordcoast:tut3 terron$ ./autogen
swordcoast:tut3 terron$ ./configure --enable-sys-debug
swordcoast:tut3 terron$ make clean
swordcoast:tut3 terron$ make
swordcoast:tut3 terron$ # Omitidas todas las salidas excepto la de este comando
swordcoast:tut3 terron$ ./tut3
HAVE_SYS_DEBUG = 1
swordcoast:tut3 terron$

Si se repite la operación, pero sin pasar el parámetro --enable-sys-debug el resultado de ejecutar el programa sería:

swordcoast:tut3 terron$ ./tut3
HAVE_SYS_DEBUG = 0
swordcoast:tut3 terron

Esta entrada es una introducción al manejo de los parámetros que se le puede pasar en línea de comando a lso configure. Sin embargo hay dos aspectos importantes sobre los cuales se ha pasado por alto:

  • El uso de la macro AC_DEFINE. Hay que explicar donde y como se definen estos valores para usar en el preprocesador de C
  • La lectura de valores en la línea de comandos y como pasar dichos valores a nuestros programas.

Referencias

sábado, junio 07, 2014

Los tipos negativos del BCE y un poco más allá

Ayer, en la rueda de prensa posterior a la reunión del Banco Central Europeo, una de las medidas estrellas que se presentó fue los tipos negativos de depósito , cobrando un 0.1% a los bancos por depositar su dinero en las cuentas del Banco Central. Por ejemplo, la banca española tiene unos 2000 millones de euros depositados en el banco central.

Supongo que el objetivo del banco central es poner a funcionar la polea de la transmisión de la política monetaria que parece ser que está bastante rota. Problema aparte, es pensar si existe una demanda solvente de crédito y que el sistema financiero no se meta otra vez en la barra libre de préstamos.

Sin embargo, a mi me gustaría ir un poco más allá, proyectando esta nueva idea a la relación entre banca comercial y los ahorradores: Se está dando todo tipo de facilidades para funcionar cada vez más sin efectivo. Un ejemplo, es el control del máximo dinero que se puede usar para una transacción en efectivo - siempre con la excusa del fraude -. Pero, ¿qué ocurrirá cuando todos los medios de pagos sean electrónico?. El escenario que me planteo - no sé si será una pesadilla - es que llegado un momento de crisis y si los Estados quieren aplicar políticas de demanda, imponga una tasa negativa a los depósitos que existan en los bancos, con la esperanza de que la gente gaste su dinero al ver que lo va perdiendo conforme pase el tiempo. Es decir, penalizar el ahorro.

No sé si será economía ficción, pero reconozco que es un escenario que me produce mucha intranquilidad. Eso sin entrar, en las posibilidades de control por parte de diversos agentes que pueden aparecer.

martes, junio 03, 2014

TenFourFox

Hay que reconocer el estupendo trabajo que han realizado la gente que mantiene el proyecto TenFourFox, un port del navegador Firefox a las antiguas plataformas de Apple que utilizan PowerPC, con versiones para toda la gama de microprocesadores desde el G3 hasta el G5. Esta opción nos permite utilizar un navagador que se desarrolla y que tiene los problemas de seguridad convenientememte corregidos en máquinas antiguas. El único problema que puede tener es que no funciona ni el Flash ni el Java bajo el mismo, pero tampoco es algo demasiado problemático.

Hay una reflexión interesante que hacer cuando uno utiliza un equipo antiguo para navegar. ¿Por qué ahora necesita uno para realizar las mismas tareas que hace diez años un maquinón?. Aquí no se trata de crujir números en análisis estadísticos, tratamiento digital de señales o virtualización. Se trata de navegar y leer el correo. Eso se hacía perfectamente hace diez años con un navegador o con código nativo. Al final, otra capa por encima, si que conviene mucho a los grandes gigantes de Internet, pero ...