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 hosts

A veces los nombres de ruta de los archivos de datos de una aplicación no se pueden modificar, ni existe ningún mecanismo para anularlos. Para evitar modificar el código de la aplicación, en ocasiones se pueden usar vínculos 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 vínculo simbólico cuyo valor señale a un archivo de uno de los sistemas de archivos del host lógico. Puede establecer la ruta mediante un vínculo simbólico a /global/phys-schost-2/mydatafile.

Es posible que se produzca un problema si se utilizan así los vínculos simbólicos cuando la aplicación, o uno de sus procedimientos administrativos, modifique el nombre del archivo de datos y su contenido. Por ejemplo, suponga que la aplicación crea el nuevo archivo temporal /etc/mydatafile.new para realizar una actualización. A continuación, la aplicación cambia el nombre del archivo temporal por un nombre de archivo real mediante una llamada del sistema a la función rename() (o con el comando mv). Al crear el archivo temporal y cambiar su nombre por uno real, el servicio de datos intenta garantizar la integridad del contenido del archivo de datos.

Desgraciadamente, la acción rename() destruye el vínculo simbólico. El nombre /etc/mydatafile es ahora un nombre de archivo normal y reside en el mismo sistema de archivos que el directorio /etc, pero no en el sistema de archivos del clúster. Dado que el sistema de archivos /etc es privado para cada host, los datos no estarán disponibles después de una operación de recuperación de errores o conmutación.

El problema subyacente es que la aplicación actual no reconoce la existencia del vínculo simbólico, ya que no se ha creado para administrar este tipo de vínculos. Para utilizar éstos a fin de redirigir el acceso a los datos en los sistemas de archivos de hosts lógicos, la implementación de la aplicación debe comportarse de forma que no anule los vínculos simbólicos. Por lo tanto, los vínculos simbólicos no suponen una solución completa para el problema de la inclusión de los datos en los sistemas de archivos del clúster.