12 de octubre de 2010

Apache: Migración transparente de un sitio web

Hay situaciones en las que nos vemos forzados a migrar un sitio web de un servidor a otro por diversos motivos, como podría ser la alta carga del sitio web. Como suele suceder en esos casos, no basta con colocar un mensaje de "Nos encontramos en Mantenimiento" y solo procedemos a mover el contenido del sitio web de un servidor a otro.

Luego de efectuar dicha labor es necesario actualizar la entrada o entradas DNS que guardan la relación IP del sitio web - Dominio.

Si nuestro sitio web cuenta con visitantes de diversas partes del planeta, el proceso de replicación del registro DNS en todos los servidores alrededor del mundo puede tomar varios días. Ello significa que mientras dura el proceso de replicación, los visitantes que intenten visitar nuestra página web pueden ser dirigidos (en el mejor caso) al nuevo servidor en el que se halla el sitio web o (en el peor caso) serán dirigidos al antiguo servidor.

En sitios de alto tráfico o que proporcionan un servicio, mantener el mensaje de "Sitio en mantenimiento" por varios días no es viable y optar por redirigir todos los visitantes que vayan al antiguo servidor haciendo uso de la dirección IP del nuevo servidor puede provocar más de una sospecha (y más de un susto) en los visitantes; es extraño visitar un sitio web accediendo a una url: http://sitio-web.com y al momento de ser redireccionado al nuevo servidor ver en la barra de direcciones una dirección IP.

A continuación, a manera de sugerencia, se presentará una alternativa para poder llevar a cabo las migraciones de sitios web de forma transparente para el usuario.

5 de septiembre de 2010

Problemas con la reproducción de videos flash en Ubuntu 10.04 64 bits

Si alguna vez han notado problemas al reproducir videos en Flash (no funcionan los controles del reproductor) al utilizar Firefox en Ubuntu 10.04 "Lucid Lynx", en la versión de 64 bits, o han notado que las páginas con Flash generan un consumo de CPU/Memoria mayor del habitual, el siguiente tipo podría resultar útil.

Para corregir estos problemas, es necesario modificar el siguiente archivo: /usr/lib/nspluginwrapper/i386/linux/npviewer. Agregar las líneas en rojo.

#!/bin/sh
TARGET_OS=linux
TARGET_ARCH=i386
export GDK_NATIVE_WINDOWS=1
. /usr/lib/nspluginwrapper/noarch/npviewer

26 de agosto de 2010

Linux: Obtener información del hardware

En algún momento hemos tenido la necesidad de abrir el equipo para verificar, por ejemplo, el número de slots disponibles con los que contamos antes de comprar memoria RAM adicional.

En GNU/Linux, se cuenta con el comando dmidecode, el cual muestra información del DMI (Desktop Management Interface) del equipo.

Es importante recordar que se requieren permisos de root para la ejecución de dicho comando.

# dmidecode | less

28 de junio de 2010

Linux: Calcular el total de archivos en un directorio

Para calcular el número de archivos dentro de un directorio en Linux, podemos hacer uso de los comandos ls y wc

  • ls: Lista los archivos contenidos en un directorio
  • wc: Imprime el número de líneas, palabras y bytes contenidos en un archivo

Comando:

$ ls -R directorio | wc -l

Detalle:
La opción -R indica que el comando ls sea ejecutado de forma recursiva; mientras que la opción -l del comando wc indica que cuente el número de líneas del archivo (en este caso el archivo de salida estándar)

31 de mayo de 2010

Apache y Mod_Evasive: Protegiendo nuestro sitio web de ataques DOS

Mod_evasive es un módulo de Apache pensado para proteger nuestros sitios web de ataques de Denegación de Servicio (DOS). Para configurarlo de forma adecuada, seguir los siguientes pasos.

17 de mayo de 2010

Problemas accediendo a un CD/DVD

Hay situaciones en las que debido al deterioro de algunos CD's o DVD's, nos es difícil poder acceder a la información contenida por los mismos. Muchas veces, debido a que algunos sectores se hallan dañados, las aplicaciones no son capaces de poder leer la información contenida en los discos (así se hallen en sectores que no presenten problemas).

Antes de considerar que toda la información se ha perdido debido al problema mencionado, podría ser útil probar con una última alternativa.

  1. Generamos una imagen del disco
    dd if=/dev/cdrom of=/ruta/de/destino/cdrom.iso
  2. En caso el paso anterior fuera exitoso, procederemos a montar la imagen en un directorio local del equipo
    mount -t iso9660 -o ro,loop=/dev/loop0 /ruta/a/la/imagen/cdrom.iso /directorio/donde/se/montará/la/imagen
  3. Para acceder al contenido solo se requerirá acceder al directorio "/directorio/donde/se/montará/la/imagen" (Sólo será posible si los pasos previos se ejecutaron con éxito)

Nota: Los pasos mencionados no garantizan que se podrá recuperar la información dañada del CD/DVD. La intención es intentar recuperar la información ubicada en las secciones no dañadas del disco.

3 de mayo de 2010

Reemplazando el Evolution con Thunderbird en Ubuntu

Para los usuarios de Ubuntu que no hagan uso del cliente de correo Evolutión; sino que en su lugar utilicen como herramienta a Thunderbird, habrán notado que luego de efectuar la instalación de Thunderbird, éste no figura en el listado del Indicator Applet.

En la presente entrada se busca dar a conocer los pasos necesarios para integrar Thunderbird con en el Indicator Applet.

17 de abril de 2010

Subversion - Instalación, Configuración, Administración

Subversion

Es una herramienta que permite administrar los cambios efectuados en documentos, programas, entre otros. Las distintas revisiones pueden ser comparadas, restauradas o combinadas con otros archivos.

Ventajas de utilizar esta herramienta

  • Respaldo y restauración: Los archivos, que hayan sido versionados, pueden ser recuperados en cualquier momento.
  • Sincronización: Permite a todos los miembros dentro del equipo contar con la última versión del código de la aplicación.
  • Deshacer los cambios: Si se han efectuado cambios erróneos, o se ha modificado un archivo que no debía de ser manipulado, es posible deshacer los cambios retornando a la última versión almacenada en el servidor.
  • Seguimiento de Cambios: Es posible determinar el cambio efectuado en el archivo según el comentario dejado por la persona quien lo efectuó. Así mismo, es posible determinar quien o quienes manipularon el archivo.
  • Branching and Merging: Es posible crear un espacio (branching) para efectuar pruebas sobre algunas funcionalidades del código para más adelante proceder a anexar (merging) dichos cambios con el código principal de la aplicación.
  • Estandarización: Fuerza a desarrollar sobre un código estandarizado, debido a que más de un desarrollador trabajará sobre los mismos archivos.
  • Empleo de buenas prácticas: El emplear buenas prácticas de programación facilitará la lectura del código por parte de los involucrados en el proyecto; esto permitirá una mayor eficiencia y un ahorro de tiempo al efectuar cambios.

16 de abril de 2010

Alta Disponibilidad en Linux: Heartbeat y Pacemaker

Para conseguir la Alta Diponibilidad de nuestros servicios, se detallará como llevar a cabo la configuración de dos herramientas:

  • Heartbeat: Encargado de revisar que cada nodo se halle funcionando. En caso un nodo falle migrará los recursos a otro nodo que también se halle ejecutando el servicio heartbeat
  • Pacemaker: Verifica el estado de los recursos (o servicios) que le han sido asignados. En caso algún servicio falle, en caso se halla configurado, Pacemaker puede reiniciarlo.
Mientras heartbeat se encarga que revisar el estado de cada nodo; Pacemaker es el responsable de verificar el estado de los servicios que deseemos sean HA dentro de los nodos.

19 de febrero de 2010

CentOS Live USB en RAID 1

Requisitos Previos

  • Cerciorarse que la máquina en donde se trabajará puede bootear desde dispositivos extraibles (memorias USB).
  • Contar con dos memorias USB de iguales características.

Configuración de dos USB en RAID 1

Para configurar dos memorias USB en RAID-1 es necesario seguir los siguientes pasos:
  1. Insertar dos memorias USB en los respectivos puertos de la computadora.
  2. Bootear el equipo desde el disco de instalación del CentOS 5.X.
  3. Seguir los pasos normales de una instalación hasta llegar a la pantalla de creación de particiones.
  4. Identificar los dispositivos USB en los que se llevará a cabo la instalación. Tener cuidado de no llevar a cabo la instalación en un disco duro del equipo.

    Para cada partición que se desee crear dentro de las memorias USB, seleccionar la opción RAID y a continuación: "Create a Software RAID Partition".

    En la siguiente ventana, seleccionar el tipo de partición "Software RAID", seleccionar el dispositivo USB en donde se creará la partición y el tamaño de la misma.

    Aplicar los mismos pasos para cada una de las unidades de disco que formarán parte del arreglo.

  5. Seleccionar la opción RAID / "Create a RAID device".

    En la ventana mostrada a continuación, ingresar el punto de montaje, sistema de archivos, en RAID Level seleccionar la opción RAID 1 y proceder a marcar las particiones que se sincronizarán (Para RAID 1 se recomienda solo marcar 2 particiones). En la opción de Number of Spares ingresar el valor "0", a menos se desee contar con una tercera partición de respaldo.

    Importante: No crear una partición swap dentro de las USB, La existencia de una partición swap dentro de la USB, puede acortar el tiempo de vida de este dispositivo debido a la gran cantidad de escrituras que pueden llegar a darse.

  6. Proseguir normalmente con los pasos de instalación.

Considerar: Una vez concluida la instalación, deshabilitar los logs que no sean críticos.

Posibles problemas con el GRUB

En caso hubiera problemas con el GRUB, hay que ejecutar los siguientes comandos para corregirlo:
  1. Reiniciar con el disco de instalación del sistema operativo y seleccionar la opción "linux rescue".
  2. La unidad USB será montada automáticamente en /mnt/sysimage. Procederemos a establecerla como nuevo directorio raíz.
    chroot /mnt/sysimage
  3. Analizar el estado del arreglo de discos.
    cat /proc/mdstat

    En caso tuvieramos una salida con las siguientes entradas:

    md1 : active raid1 sda3[1] sdb3[0]

    md0 : active raid1 sda1[1] sdb1[0]

    Procedemos a agregar los discos marcados con [0] al arreglo:

    mdadm /dev/md0 --add /dev/sdb1

    mdadm /dev/md1 --add /dev/sdb3

  4. Procedemos a configurar el GRUB haciendo uso del comando grub.

    grub> device (hd0) /dev/sda

    grub> root (hd0,0)

    grub> setup (hd0)

    grub> device (hd1) /dev/sdb

    grub> root (hd1,0)

    grub> setup (hd1)

    grub> quit

  5. Procedemos a reiniciar el equipo y verificar que la configuración funciona.

A continuación se detallarán los pasos a seguir en caso se desee reemplazar una memoria defectuosa.

8 de enero de 2010

Limpiar la caché de Linux.

Previamente a indicar como limpiar la caché, es importante saber como un sistema GNU/Linux hace uso de la memoria dentro del equipo:

  • Memoria Física: Memoria RAM del equipo.
    • En uso: Memoria utilizada por procesos actualmente en ejecución.
      • En Buffer: Almacena datos pendientes a ser escritos en disco.
      • En Caché: Almacena la información generada / requerida por las últimas aplicaciones que se estuvieron ejecutando por si se requeriera volver a ejecutar en corto plazo.
    • Libre: Memoria disponible que puede ser utilizada por nuevos procesos o procesos ya existentes
  • Swap: Memoria Virtual, almacenada en disco. Cuando el sistema operativo requiere alojar más recursos en RAM; pero ésta se encuentra llena, el sistema baja parte de la información en RAM a disco y procede a colocar los nuevos datos en RAM.

7 de enero de 2010

Cambiar codificación de archivos en Linux

Cuando uno copia un archivo de un equipo a otro es probable éste tenga problemas al ser visualizado (algunos caracteres no son visibles o son mostrados de forma errónea). Muchas veces, ello se debe a que el archivo al que uno accede ha sido guardado con una codificación diferente a la que tenemos configurada de forma predefinida.