¿Qué es ASM?

ASM es a la vez un file system y un volume manager integrado, creado específicamente para archivos de bases de datos Oracle.
ASM es una solución muy interesante que nos brinda Oracle ya que nos ofrece la alta performance de los raw devices y la facilidad de administración de un file system.
ASM permite dividir todo el storage disponible en diskgroups. Luego uno administra los diskgroups, y ASM automatiza la ubicación de los archivos dentro de los diskgroups.
Cuando utilizamos ASM en las sentencias SQL de creación de estructuras (tablespaces, control files, archive log files) se especifica la ubicación en términos de diskgroups. ASM crea y administra los archivos dentro de los diskgroups sin necesidad de intervención humana.
ASM brinda además, capacidades adicionales de mirroring y striping, dividiendo los archivos en extensiones de 1Mb. y distribuyéndolos entre los discos que componen un diskgroup. Estas capacidades adicionales optimizan el rendimiento del sistema y la utilización de disco, haciendo que el tuning manual de input-output sea prácticamente innecesario.
La forma en que ASM administra el mirroring (espejado) es incluso más flexible que el espejado vía sistema operativo ya que ASM permite especificar el nivel de redundancia a nivel de archivo. De este modo, dos archivos pueden compartir el mismo diskgroup estando uno espejado y el otro no. Oracle administra el espejado a nivel de extensión; si un archivo está espejado, cada extensión de dicho archivo tendrá una o más copias dependiendo del nivel de redundancia configurado para dicho archivo. Las copias espejadas siempre residen en diferentes discos de distintos diskgroups. ASM soporta tres opciones de espejado a nivel de archivo:

  • 2-way mirroring: cada extensión  tiene una copia
  • 3-way mirroring: cada extensión tiene dos copias
  • desprotegido: sin espejado. Se utiliza cuando el espejado es provisto por el propio subsistema de discos.

ASM se implementa como una instancia Oracle, con su propia SGA y procesos background. Una configuración “single instance” de ASM puede dar servicio a una o más bases de datos también single instance, todo residente en un solo servidor. Cada diskgroup ASM puede ser compartido por todas las bases de datos del servidor.

En un ambiente clusterizado, cada nodo corre una instancia ASM, y las instancias ASM se comunican entre ellas mediante una relación peer-to-peer. Esta arquitectura es válida tanto para un entorno RAC o no RAC (en el que múltiples bases de datos “single instance” residen en diversos nodos compartiendo el mismo storage administrado por ASM.

Anuncios

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.

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 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

La instalación de una base de datos Oracle RAC 10g comprende dos fases. En la primer etapa se instala el software de cluster. En la segunda etapa se instala el software de base de datos que incluye los componentes RAC y se crea la base en cluster. El Oracle Home que se usa para Oracle Clusterware (el software de cluster propio de Oracle) debe ser diferente del que se usa para el software de RAC.

Si bien es posible instalar el software de Oracle RAC en un storage compartido, es recomendable que se instale en un file system local a cada nodo. De este modo se evita que el software sea un posible punto único de falla en nuestro ambiente de alta disponibilidad.

Existen dos archivos muy importantes que deben quedar almacenados en storage compartido:

  • El voting file que es utilizado por algunos procesos para monitorear el estado de los nodos del cluster. Este archivo ocupa aproximadamente 20 MB.
  • El OCR file (Oracle Cluster Registry) que mantiene información sobre los componentes de alta disponibilidad dentro del cluster. Su tamaño es de aproximadamente 100 MB.

Tanto el voting file como el OCR file no pueden ser almacenado en ASM puesto que deben poder ser accedidos antes de levantar cualquier instancia Oracle. Ambos archivos pueden ser redundantes. La recomendación para estos archivos es almacenarlos en raw devices dentro de los discos más rápidos de los que se disponga.