Sun Cluster 3.1 10/03: Guía del desarrollador de los servicios de datos

Datos de sistemas múltiples

Los conjuntos del disco de sistemas globales de archivos de alta disponibilidad se alojan en diferentes sistemas para que, en caso de caída de un sistema físico, uno de los sistemas activos pueda acceder al disco. Para que una aplicación tenga una alta disponibilidad, sus datos deben también tenerla, por lo que deben residir en los sistemas globales de archivos de HA (alta disponibilidad).

El sistema global de archivos está montado en grupos de discos creados como entidades independientes. El usuario puede elegir utilizar algunos grupos de discos como sistemas globales de archivos montados y otros como dispositivos básicos para utilizarlos con un servicio de datos, como HA Oracle.

Una aplicación puede tener conmutadores de línea de comandos o archivos de configuración que apunten a la ubicación de los archivos de datos. Si la aplicación utiliza nombres de rutas invariables, es posible cambiar los nombres de éstas por vínculos simbólicos que señalen a archivos del sistema global de archivos, sin cambiar el código de aplicación. Consulte Utilización de vínculos simbólicos para la colocación de datos de varios sistemas para ver más detalles sobre la utilización de los vínculos simbólicos.

En el peor de los casos, el código fuente de la aplicación se debe modificar para proporcionar un mecanismo de direccionamiento a la ubicación real de los datos. Esto se puede hacer implementando conmutadores de líneas de comandos adicionales.

Sun Cluster admite la utilización de sistemas UFS de UNIX y dispositivos básicos de alta disponibilidad, configurados en un gestor de volúmenes. Durante la instalación y configuración, el administrador del sistema debe especificar qué recursos de disco se deben utilizar con los sistemas de archivos UFS y cuáles con los dispositivos básicos. Generalmente, los dispositivos básicos sólo los utilizan servidores de bases de datos y servidores multimedia.

Utilización de vínculos simbólicos para la colocación de datos de varios sistemas

En ocasiones, los nombres de ruta de los archivos de datos de una aplicación son invariables y no existe ningún mecanismo para anularlos. Para evitar modificar el código de la aplicación, en ocasiones se pueden usar enlaces simbólicos.

Por ejemplo, supongamos que la aplicación le asigna al archivo de datos el nombre de ruta invariable/etc/mi_archivo_de_datos. Esa ruta se puede modificar de un archivo a un enlace simbólico cuyo valor señale a un archivo de uno de los sistemas de archivos del servidor lógico. Por ejemplo, se puede establecer un enlace simbólico a /global/phys-schost-2/mi_archivo_de_datos.

Es posible que se produzca un problema si se utilizan así los enlaces simbólicos cuando la aplicación, o uno de sus procedimientos administrativos, modifique el nombre del archivo de datos y su contenido. Por ejemplo, supongamos que la aplicación realiza una actualización, creando primero un archivo temporal nuevo, /etc/mi_archivo_de_datos.nuevo. Después, renombra el archivo temporal para que tenga el nombre del archivo real, con la llamada al sistema rename(2) (o el programa mv(1)). Al crear el archivo temporal y darle el nombre del archivo real, el servicio de datos intentará garantizar que el contenido del archivo de datos siempre esté bien formado.

Desgraciadamente, la acción rename(2) acaba con el enlace simbólico. El nombre /etc/mi_archivo_de_datos ahora es un archivo regular y está en el mismo sistema de archivos que el directorio /etc, no en el sistema global de archivos del clúster. Dado que el sistema de archivos /etc es privado para cada sistema, los datos no estarán disponibles después de una operación de control o conmutación.

El problema subyacente en esta situación es que la aplicación no conoce la existencia del enlace simbólico y no se ha escrito teniendo presentes los enlaces simbólicos. Para utilizar éstos a fin de redirigir el acceso a los datos en los sistemas de archivos de servidores lógicos, la implementación de la aplicación debe comportarse de forma que no anule los enlaces simbólicos. Por tanto, éstos no resuelven totalmente el problema de situar los datos en los sistemas globales de archivos del clúster.