Monthly Archives: January 2009 - Page 2

Apache: solucionar “(28) No space left on device”

Apache Web Server

Apache Web Server

Recién me topé con un error medio raro, que jamás me había sucedido y afortunadamente encontré rápido la solución en internet. Por eso me pareció bueno compartirlo, para que si se encuentran con este error sepan cómo corregirlo y para que quede la solución online por si a otra persona le sucede.

De repente me avisan que está caído el Apache de uno de los servers y que al reiniciarlo no levanta. Entro al servidor y veo que efectivamente falla al iniciar. Reviso el error log y veo lo siguiente:

[Tue Jan 13 14:34:03 2009] [notice] mod_python: Creating 8 session mutexes based on 450 max processes and 0 max threads.
[Tue Jan 13 14:34:03 2009] [notice] mod_python: using mutex_directory /tmp
[Tue Jan 13 14:34:03 2009] [error] (28)No space left on device: mod_python: Failed to create global mutex 0 of 8 (/tmp/mpmtx297990).
Configuration Failed

No me parecía que pudiera haber un error con mod_python porque siempre funcionó. De todas formas, lo deshabilité, probé de nuevo y me daba el mismo error en otra parte:

[Tue Jan 13 14:31:05 2009] [emerg] (28)No space left on device: Couldn't create accept lock (/var/logs/accept.lock.29427) (5)

Evidentemente el problema iba por otro lado, y lo primero que pensé era que me estaba quedando sin espacio en el disco. Revisé eso y tampoco. El consumo del disco era muy bajo (25%). Entonces recurrí a Google y encontré la solución en eHow.

Al parecer es un problema común, que se solucione revisando los arrays de semáforos que está usando el Apache y removiéndolos.

# Revisar los semáforos de Apache
ipcs -s | grep apache
# Remover todos los semáforos
for i in `ipcs -s | grep apache | awk '{print $2}'` ; do ipcrm -s $i; done
# Iniciar Apache
service httpd start

Fuente: http://www.ehow.com/how_4397601_error-no-space-left-device.html

DNS: otro bug arreglado

BIND DNS

BIND DNS

Sigo con algunas noticias un poco viejas, pero que creo que no podía dejar de publicar. Hace un par de días salió este post en Slashdot. Luego de que el año pasado Dan Kaminsky descubriera un bug crítico en todos los DNS que los hacía vulnerables a ataques de DNS Cache Poisoning (algo así como “envenenamiento” o “contaminación de cache de DNS”), se encuentra una nueva falla que afecta a DNSSEC que, dicho sea de paso, se suponía que era el salvador de la falla de Kaminsky. Afortunadamente, el problema no es tan grande y ya hay un parche disponible. Sin embargo, Joao Damas, manager senior de programación de ISC, indicó a Internet News que se recomienda especialmente que todas las implementaciones de BIND DNSSEC sean actualizadas por si es que están usando algún patron particular afectado (llaves DSA en algunos casos) y para evitar toparse con el problema en el futuro, cuando menos lo esperen.

Fotolog: de PHP a Java

Una noticia que salió hace un par de días y no había tenido tiempo de reseñar aquí. Como vemos en Exodica, reproduciendo un post de Sun is shining, Fotolog.com el popular sitio de photo blogging que tan famoso se hizo en nuestro país (y en muchas otras partes del mundo), está migrando su plataforma de PHP a Java.

Fotolog.com

Fotolog.com

Sinceramente no me gusta nada el sitio, ni estéticamente ni como aplicación. He tenido fotolog, en alguna negra etapa de mi vida, pero aún entonces me resultaba bastante malo. El diseño siempre fue pésimo, poco atractivo y poco adaptable. Además, en su momento (hace mucho que no entro), tenía muy pocos features: sobre todo para ser una aplicación tan popular y que mueve tanto dinero.

Sin embargo, más allá de todo lo que uno tenga que decir, según Sun is shining, es el sitio número 18 en términos de tráfico (y el tercero entre las redes sociales). En esas condiciones, la escalabilidad es un problema clave. Ya hablamos un poco sobre la arquitectura de Facebook. Ahora bien, de acuerdo al citado blog de Sun:

“La solución utilizada por Fotolog consta de Solaris 10 corriendo MySQL Enterprise e InnoDB Storage Engine. Esta combinación permite aumentar el número de transacciones sin agregar nuevos servidores, incrementando únicamente el número de threads concurrentes. Hasta el momento, Fotolog ha escalado de 8 threads a 32, luego a 64 , y esperan incrementar la cantidad a 96.

“Fotolog también ha escalado al portar su aplicacion PHP a Java utilizando Tomcat corriendo sobre Solaris 10 y la tecnología para servidores CoolThreads. Todo esto permitió disminuir el número de servidores necesarios para mantener Fotolog online. Inicialmente utilizaron servidores Sun Fire V210, y actualmente Fotolog corre sobre servidores Sun Fire T1000. Según Warren Habbib, Chieff Technical Officer de Fotolog, ‘A mayor presión impuesta sobre los T1000, mejor se comportan‘.”

Un punto interesante, es que esta nueva arquitectura le permitirá emplear menos servidores para antender la misma cantidad de usuarios, con lo cual el consumo eléctrico final se verá muy reducido. Este es un problema al que solemos darle poca importancia, sobre todo por estos lares, pero algunas empresas grandes están empezando a prestarle atención (Google tiene algún programa al respecto y ahora vemos la mención en este caso). Es evidente que para las empresas, reducir el consumo de energía redunda en beneficios pues reduce costos, pero a quienes no nos interesa la acumulación de capital, debemos reconocer la importancia de lograr un consumo más racional de recursos energéticos.

Mantente seguro

Link: WARNING

Fuente: Cesarius Revolutions

Sistemas de control con Asterisk

Reproduzco un artículo encontrado a través de Barrapunto en Bytecoders. Es muy interesante la cantidad de cosas que se están haciendo con Asterisk, sin lugar a dudas el softswitch open source más importante.

Asterisk

Asterisk

“Se suele decir que Asterisk es mucho más que una PBX, ya que las funcionalidades que podemos incorporar a un sistema Asterisk suelen ir mucho más allá de lo que entendemos por una simple PBX. Asterisk ha sido capaz de integrar la VoIP con gran cantidad de sistemas, entre ellos los sistemas de control.

Hace un tiempo ya vimos la integración con sistemas de riego (BotaniCalls), tal y como nos contaba Elio se trata de un sistema con sensores de humedad, de movimiento, micrófonos, bases de datos de tipos de plantas, estadísticas de humedad y movimiento, avisos por SMS …

Obviamente otro uso práctico y más común es el control de aplicaciones en una computadora. James Forman detalla un sistema para controlar aplicaciones con Asterisk, con un ejemplo para traducir dígitos DTMF a combinaciones de teclas que le permiten controlar un reproductor VLC Media Player usando el siguiente esquema:

DTMF -> SIP -> HTTP -> PHP -> VBS -> VLC

Pasamos los tonos DTMF del teléfono a Asterisk usando SIP, el servidor ejecuta un script PHP que a su vez ejecuta un Visual Basic Script encargado de controlar VLC.

Por otro lado Michael Graves está actualmente trabajando en un sistema de control domótico que le permita controlar ciertas partes automatizadas de la casa. Es una aproximación muy similar donde el proceso IVR llama a scripts AGI que mandan comandos predefinidos a un ejecutable (xsend.exe) para que esté actúe sobre módulos X10 de automatización domésticos (aunque parece que actualmente existen sistemas de automatización más fiables que X10). Por otro lado el proyecto también implica hacer accesible el control de ciertas partes usando el microbrowser disponible en los teléfonos Polycom IP650. Se trata de un sistema inspirado en BotaniCalls a raíz de la charla de Mark Spencer sobre nuevos usos de Asterisk.

En nuestro país, existe un interesante proyecto que está llevando a cabo el genial equipo de desarrolladores de VoIPminic. Ya existe un prototipo basado en la placa que se presentó en el VoIP2day capaz de controlar una regleta de enchufes usando Asterisk o un interfaz web, ganador del Primer Premio del área tecnológica de telecomunicaciones, multimedia e informática de la edición XX de los premios nacionales Don Bosco. El sistema puede interactuar usando cualquier lenguaje de programación además de ser independiente del sistema operativo al no depender de la máquina.”

Artículo original: http://bytecoders.homelinux.com/content/sistemas-de-control-con-asterisk.html