Almacenamiento en Oracle RAC: raw devices, Cluster File System y ASM

Un sistema de archivos tradicional (file system) es una estructura de árbol compuesta por directorios y archivos que se implementa a traves del kernel del sistema operativo. El sistema de archivos utiliza el concepto de buffering de cache optimizando el número de veces que el sistema operativo debe acceder al disco. El sistema de archivos toma el control de las operaciones de entrada/salida liberando a los procesos de esta operación y permitiéndoles continuar con otras operaciones. El sistema de archivos retiene en cache los datos a escribir hasta tener múltiples datos para procesar en forma conjunta, lo cual mejora el rendimiento del sistema.

En una arquitectura de Oracle RAC dos o mas instancias en servidores separados compartirían un mismo sistema de archivos pues el almacenamiento es único para ambas instancias. Sin embargo los sistemas de archivos tradicionales provistos por Unix no ofrecen esta prestación; es decir que dos servidores Unix no pueden compartir un mismo file system.

Las opciones que propone Oracle para poder implementar un sistema de múltiples instancias sobre un almacenamiento único son tres: raw devices, Cluster file System (CFS) y Automatic Storage Management (ASM). A continuación, un detalle de cada opción.

Raw Devices
Un raw device es una región contigua de un disco accedida a través de una interface que provee acceso “crudo” al sistema de entrada/salida. Al decir acceso “crudo” estamos diciendo que no es a través del sistema de archivos. En Unix, esta interface se implementa con un dispositivo de caracter (character-device). De este modo se logra un acceso directo entre un proceso y un disco lógico. En una implementación de este tipo, la ejecución de una operación de escritura hecha por un proceso moverá los datos al dispositivo en forma directa (no a través del file system). Si bien esta solución es muy eficiente (sobre todo en un sistema con alta contención de entrada/salida), es la mas compleja de todas las opciones desde el punto de vista administrativo.

Cluster File System (CFS)
Los sistemas de archivos en cluster (CFS) permiten que múltiples servidores puedan acceder al mismo sistema de archivos. CFS resuelve las desventajas y complejidades de los raw devices proveyendo una solución más simple para la administración del almacenamiento. Oracle soporta diversos tipos de CFS: Oracle Cluster File system (OCFS), Veritas Cluster File System (VCFS), IBM GPFS, Tru64 File System. La desventaja de esta solución es su costo, dado que las alternativas provistas por los diversos vendors requerirán de su correspondiente licencia. En el caso de Oracle Cluster File System (OCFS), si bien es libre, sólo está disponible para entornos Linux y Windows.

Automatic Storage Management (ASM)
Automatic Storage Management es la solución provista y elegida por Oracle que virtualiza el acceso al almacenamiento actuando como interface entre una instancia Oracle y el dispositivo de almacenamiento que contiene los datos. ASM provee tanto las prestaciones de un file system como las de un volume manager. ASM se implementa como una instancia Oracle que deberá estar presente en cada uno de los nodos que conforman el cluster. ASM es la solución mas recomendada por Oracle. Implementando ASM se evita la complejidad de los raw devices y se evita el costo económico de licenciamiento de Cluster File System.

Direcciones IP virtuales en Oracle RAC

El objetivo de las direcciones virtuales es mantener la disponibilidad de la base de datos cuando se cae un nodo completo.

Cuando un nodo se cae, la ip virtual (VIP) asociada a él hace un failover automático hacia algún otro nodo disponible del cluster. Cuando el nodo se cae:

  • El nuevo nodo indica la nueva dirección MAC para la VIP
  • Los paquetes enviados a la VIP irán al nuevo nodo, el cual enviará paquetes RST (Error Reset Packets) a los clientes.

¿Qué significa esto?

  • En el caso de que el cliente haya ejecutado código SQL, obtendrá un código de error ORA-3113 en forma inmediata
  • En el caso de que se trate de una nueva conexión, se utilizará la dirección siguiente informada en el tnsnames.ora

Si las conexiones se hubieran hecho a través de direcciones directas (sin utilizar VIPs) los clientes conectados al nodo caido habrían tenido que esperar 10 minutos antes de recibir un error de timeout de TCP.

En resumen, sin direcciones IP virtuales no sería posible una buena solución de alta disponibilidad.

Servicios en RAC

Los servicios son abstracciones lógicas para administrar cargas de trabajo. Los servicios dividen en clases disjuntas al universo de la carga de trabajo que se produce en una base de datos Oracle. Luego, cada servicio representa una carga de trabajo que tiene atributos y prioridades comunes.

En RAC, los servicios facilitan el balanceo de carga y proveen transparencia en cuanto a ubicación de los mismos.

Un servicio puede estar en una o mas instancias del cluster y una simple instancia puede soportar múltiples servicios. El número de instancias soportando un servicio es transparente para la aplicación.

Matriz de certificación RAC

Utilice la matriz de certificación para responder cualquier duda o pregunta relacionada con su instalación de RAC:

  • Conéctese a Metalink en http://metalink.oracle.com
  • Diríjase al menú y haga click en el tab Certify
  • Click en View Certifications by Product
  • Seleccione Real Application Clusters y luego haga click en Submit
  • Seleccione la plataforma de interés y haga click en Submit

Cluster File System o Raw Devices?

Cluster File System provee las siguientes ventajas:

  • Instalación y admininstración del RAC más simple
  • Permite utlizar OMF (Oracle Managed Files)
  • Posibilidad de instalar el software de Oracle una sola vez
  • Permite utilizar datafiles autoextensibles
  • Acceso uniforme a los archivos de archive en caso de que sea necesario hacer una recuperación

Las implicancias de utilizar Raw Devices son las siguientes:

  • Siempre es una opción disponible cuando CFS no está disponible o soportado por Oracle para el sistema operativo sobre el que se vaya a instalar
  • Es la solución óptima en cuanto a performance ya que no existen capas adicionales entre Oracle y los dispositivos de disco
  • No permite el autoextendido de datafiles
  • ASM puede utilizarse sobre raw devices.

Puede acceder a mas informacion sobre CFS, raw devices y ASM haciendo click aqui

Automatic Storage Management

Automatic Storage Management (ASM) es una nueva característica de Oracle Database 10g. Provee virtualización del storage actuando como interface entre la instancia Oracle y los dispositivos de disco que contienen los datos.

ASM es implementado como una instancia Oracle adicional, presente en cada uno de los nodos del cluster.

ASM distribuye la carga de I/O  a través de todos los dispositivos disponibles con el objeto de lograr una óptima performance y evitando la necesidad de hacer tuning manual del I/O.

ASM puede mantener copias redundantes de los datos o puede configurarse sobre otros mecanismos de redundancia provistos por terceras partes.

ASM es la estrategia para el almacenamiento de los archivos de la base de datos anunciada formalmente por Oracle. Igualmente Oracle continuará desarrollando y dando soporte sobre OCFS para aquellos que han decidido usarlo.

Debido al gran interés que ha despertado el tema de ASM, estoy desarrollando el tema con mayor detalle en este mismo Blog. Para mas informacion acerca de esta tecnología puedes leer los siguientes posts:

Oracle Cluster File System

Oracle Cluster File System es un sistema de archivos compartidos diseñado específicamente para Oracle RAC. Los volúmenes de OCFS pueden estar compuesto por uno varios discos compartidos para proveer redundancia y mejor rendimiento. A continuación presento una lista de los archivos que pueden alojarse en Oracle Cluster File System versión 1:

  • Software de instalación de Oracle
  • Archivos de Oracle (control files, data files, redo logs, bfiles, etc)
  • Archivos de configuración compartidos (spfile)
  • Archivos creados por Oracle en tiempo de ejecución
  • Voting file y OCR file

Oracle Cluster File System es libre para desarrolladores y cliente. El código fuente es provisto bajo licencia GPL en el caso de Linux. El software puede ser descargado del sitio Web de Oracle Technology Network.