DRBD (I de IV)

Dado que mis especialidades son las redes y la seguridad informática, en estas entradas os voy a hablar sobre una herramienta que utiliza “la red” para “darnos seguridad”, y así desarrollar una solución que aúna ambas disciplinas.

Dada la longitud de la entrada, he decidido separarla en cuatro partes. Las dos primeras dedicadas a la explicación de la herramienta en sí, y la tercera y cuarta entrega para contaros como puede ser utilizada mediante un ejemplo real en un entorno de producción. No es una herramienta muy novedosa, pero si es una herramienta bastante desconocida, aunque una vez que se conoce, difícilmente se olvida…

La herramienta en cuestión se llama DRBD (www.drbd.org).

Tal y como podemos leer en su página oficial, DRBD (Distributed Replicated Block Device)consiste en crear un RAID-1, pero teniendo los discos “distribuidos” a través de la red. Esto, evidentemente, nos va a dar mucho “juego” y nos va a permitir crear soluciones redundantes en tiempo real, perfectas para utilizar por ejemplo, como dispositivos para clústeres y alta disponibilidad (HA, high availability).

Imagen

En principio, esta herramienta nos puede interesar y llamar la atención. Para todos aquellos que estéis pensando en probarla, sólo tiene una “pega”, y es que por el momento sólo funciona en entornos Linux. Esta es otra buena ocasión para plantearnos el comenzar a utilizar dichos entornos y aprender todas las ventajas que nos pueden aportar para entornos de producción que requieran minimizar errores basados en el sistema operativo, seguridad de los equipos y facilidad de administración (aunque parezca mentira, con las herramientas adecuadas, puede resultar muy fácil la administración de estos entornos. Por ejemplo, Suse Linux en su versión Enterprise, ya trae herramientas gráficas integradas en el propio sistema para la gestión del clúster y la creación de dispositivos DRBD que se puedan utilizar integrados en el propio clúster).

Comencemos pues con la parte un poco más técnica de la herramienta.

En principio, se puede utilizar casi cualquier tipo de dispositivo de almacenamiento para DRBD.

Por ejemplo pueden ser:

• Una partición del disco duro (o una unidad física completa).
• Un dispositivo RAID basado en software.
• Un volume lógico LVM o cualquier otro dispositivo de bloques que sea accesible por el mapeador de discos de Linux.
• Cualquier otro dispositivo de bloques que nuestro sistema reconozca (por ejemplo un disco USB).

Como podemos comprobar, esto nos da una flexibilidad increíble, ya que podremos crear un RAID 1 sobre red entre un disco o partición de nuestro propio equipo y un disco externo USB remoto conectado a otro equipo (aunque esté en una localización remota y distante), sin olvidar en ningún momento que se realiza en tiempo real. Es decir, los datos que escribo sobre uno de los discos, automáticamente serán replicados por red sobre el segundo disco.

Además, podemos replicar tantos dispositivos como queramos, es decir, no se sincroniza únicamente un único disco, sino que podemos sincronizar todos los que queramos simultáneamente, sincronizando por ejemplo uno que contenga las bases de datos, otro que contenga configuraciones de máquinas virtuales para realizar “failover” mediante Xen, etc.

Hace tiempo, la instalación y configuración, no eran triviales, ya que había que compilar los fuentes de la aplicación a mano, buscar las dependencias necesarias y realizar configuraciones mediante “prueba y error” hasta dar con la configuración idónea que funcionase en nuestro entorno. Además, la configuración de los dispositivos que íbamos a utilizar para nuestra réplica, se configuraban mediante un archivo de texto de configuración, el cuál había que realizar a mano y conocer previamente las instrucciones necesarias para ponerlo en funcionamiento. Tal y como he comentado antes, esto es historia, ya que viendo las funcionalidades que nos aporta, los desarrolladores de Novell lo han integrado directamente en su sistema operativo Enterprise accesible mediante un DVD que se puede descargar e incorporar a la instalación del propio sistema operativo, dejando las herramientas necesarias para su configuración y funcionamiento perfectamente integradas en la administración del sistema de Suse (Yast2), permitiendo su gestión y configuración mediante una herramienta gráfica muy fácil de utilizar. Se puede utilizar en otros entornos Linux que no sean de Novell, pero yo os comento esta opción ya que como digo, ya está testeada, desarrollada y adaptada por ellos mismos para funcionar correctamente sobre su sistema, evitando así problemas de compatibilidades, dependencias y demás. Para comenzar, es la mejor opción.

La manera de funcionar es muy simple.

Lo primero que hay que tener claro es que, ya que vamos a estar replicando datos en tiempo real y continuamente, necesitamos una tarjeta de red dedicada en exclusiva para este trabajo. Para entornos de pruebas, se puede utilizar la misma tarjeta de red mediante la que accedemos al equipo y la que utiliza para navegar, pero para entornos de producción, se debería utilizar un dispositivo específico sólo para esta tarea. Además hay que tener en cuenta el volumen de datos a replicar, ya que no es lo mismo utilizar este sistema para replicar ciertos archivos que sólo se modifican una vez al día que utilizarlo por ejemplo para almacenar dentro de él las bases de datos de nuestra empresa, ya que estarán continuamente actualizando los datos, eliminando y creando registros, etc, pudiendo llegar a generar grandes cantidades de datos a replicar y por consiguiente un alto tráfico de red.

Después deberemos elegir los dispositivos que queremos utilizar. Deberán ser del mismo tamaño (para que no haya problemas a la hora de replicar datos de un dispositivo de mayor tamaño sobre otro menor). Una vez escogidos los dispositivos, se formatean y se dejan listos para configurarlos sobre DRBD. Es importante formatearlos, para que no haya problemas a la hora de configurarlos y crear los “metadatos” necesarios para el funcionamiento. Además, si no lo hacemos nosotros, cuando creemos dichos “metadatos”, perderemos todo el contenido igualmente.

Sólo nos queda realizar dos pasos más para tener la herramienta operativa.

Una es crear los propios “metadatos” en los discos que queramos replicar (es una información que se queda almacenada en las propias particiones que contiene información sobre la estructura, configuración… necesaria para el funcionamiento de la herramienta). Los metadatos pueden ser creados dentro de la propia unidad a replicar o incluso en un disco distinto, pero la recomendación es siempre “internos”, ya que son datos necesarios para el correcto funcionamiento del dispositivo y si se perdiese la configuración, perderíamos los datos almacenados.

Y para finalizar, la configuración en sí de los discos a replicar (dispositivo físico, direcciones IP de los nodos involucrados en la réplica, método de réplica…).

Dicha configuración, la dejo para la siguiente entrada del blog, ya que requiere una explicación un poquito más extensa y, además, os hablaré de los modos de funcionamiento que puede tener (“Activo/Pasivo”, “Activo/Activo”, confirmación de escritura del nodo secundario…).

Espero haber llamado vuestra atención sobre esta herramienta y que estéis interesados en seguir leyendo la siguiente entrada.

Saludos.