Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

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 recuperación de errores 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.