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.

Anuncios

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

Oracle RAC y tecnologías de storage compartido

Tradicionalmente el storage estaba conectado directamente al servidor (configuración denominada Directly Attached Storage o DAS). En los últimos años han aparecido configuraciones más flexibles que permiten el acceso sobre redes de storage (redes SAN) o redes Ethernet (NAS). Estas nuevas alternativas de configuración permiten que múltiples servidores accedan a los mismos conjuntos de discos, simplificando la administración de espacio en disco en ambientes distribuidos.

Para el caso particular de Oracle RAC hay al menos 3 posibles configuraciones para suministrar el acceso compartido al storage:

  • Raw volumes son dispositivos conectados directamente al servidor (DAS) que requieren discos que operan en modo bloque (fiber channel o iSCSI)
  • Cluster File System uno o más file systems en cluster pueden utlizarse para todos los archivos de RAC. En este caso también se necesitan dispositivos  trabajando en modo bloque como fiber channel o iSCSI.
  • Automatic Storage Management (ASM) Es un Cluster File System dedicado para archivos de bases de datos Oracle.

Oracle RAC & Storage compartido

La principal diferencia entre el storage para una instalación RAC y el storage para una instalación single instance es que en RAC, todos los data files deben residir en un storage compartido (ya sea raw devices o cluster file system) a fin de que todos los nodos del cluster puedan acceder a la misma base de datos. Deben crearse además al menos dos grupos de redo log por cada instancia, y todos los redo log groups deben quedar almacenados en un storage compartido por si es neceario hacer un recover de  instancia o crash. Al conjunto de redo log groups de una instancia se los denomina threads de redo.

Además deberá crearse un tablespace de undo compartido por cada instancia si se piensa utilizar el manejo autómatico de undo (automatic undo management), feature recomendado por Oracle. El tablespace de undo de cada instancia debe ser compartido por todas las instancias del RAC para casos de recuperación.

Los archivos de archive log no pueden almacenarse en raw devices, ya que sus nombres son generados automáticamente y son distintos para cada archivo que se genera. Ese es el motivo por el cual deben almacenarse en un file system común. Si se está utilizando Cluster File System (CFS) todos los archivos pueden ser accededidos por cualquier nodo en cualquier momento. Si no se está utilizando CFS, entonces forzosamente habrá que hacer que todos los archivos estén disponibles para todo el cluster en tiempo de recuperación, por ejemplo utilizando Network File System (NFS) a través de los nodos. Si se está utilizando flash recovery area (lo cual es recomendado por Oracle), entonces deberá ser almacenada en un storage compartido de modo tal que todas las instancias puedan accederlo.