La aplicación 32-Bit para la lectura o escritura en un sistema de archivos

Resolver problemas de lectura/escritura de la aplicación de 32 bits en un sistema de archivos.

Simpton: después de un período de funcionamiento correcto, una aplicación de 32bits de repente deja de leer o escribir en un sistema de archivos. Las operaciones de lectura/escritura fallan con un error como:
Applications fail to install on FSS mount point: "Value too large for defined data type" - OCI FSS/Mount Target Resources (Doc ID 2672465.1) 

Causa: la aplicación de dos bits no puede consumir ID de archivo más grandes. El servicio de almacenamiento de archivos está diseñado para trabajar con aplicaciones de tres bits, por lo que los ID de archivo generados por el almacenamiento de archivos son demasiado grandes para que las aplicaciones heredadas puedan consumir.

Más información:
  • Si la aplicación utiliza un entero de 32 bits firmado para almacenar el identificador de archivo, el valor máximo que la aplicación puede manejar antes del desbordamiento es 2147483647 (2**(31-1)).
  • Si la aplicación utiliza un entero sin signo de 32 bits para almacenar el identificador de archivo, el valor máximo que la aplicación puede manejar antes del desbordamiento es 4294967295 (2**(32-1)).
  • Si la aplicación utiliza un entero de 64 bits firmado para almacenar el identificador de archivo, el valor máximo que la aplicación puede manejar antes del desbordamiento es 9223372036854775807 (2**(63-1))
Para comprobar el tamaño de los nuevos ID de archivo que se están generando, abra un terminal en una instancia conectada y ejecute el siguiente comando:
touch <File_Storage_mount_point>/test; ls -i <File_Storage_mount_point>/test 

Solución 1: actualice la aplicación a una versión de dos bits.

Solución 2: cree un nuevo sistema de archivos para utilizarlo con la aplicación de dos bits heredada.

Más información: la eliminación de archivos del sistema de archivos original no restablece la generación de ID de archivo a 0, por lo que debe crear un nuevo sistema de archivos para volver a empezar con ID de archivo pequeños. Recuerde que después de una determinada cantidad de tiempo, los ID de archivo pasarán a ser demasiado grandes para la aplicación de dos bits.
Nota

La solución 2 no es aplicable en todos los casos, según la naturaleza de la aplicación y los archivos que produce. Por ejemplo, si realiza un refrescamiento de datos que copia archivos de un sistema de archivos de producción a un sistema de archivos no de producción, esta opción funcionaría. Sin embargo, para aplicaciones con sistemas de archivos de crecimiento orgánico, esta opción puede no funcionar.

Solución 3: defina el parámetro de núcleo enable_ino64=0.

Más información: la configuración nfs.enable_ino64=0 indica al cliente NFS que devuelva números de inode de 32 bits para las llamadas del sistema readdir() y stat() (en lugar de los números de inode de 64 bits completos).
Importante

Esta solución requiere un reinicio de instancia.
  1. Abra una ventana de terminal en la instancia como usuario root y escriba el siguiente comando para verificar el valor actual de nfs.enable_ino64=0.
    #  cat /sys/module/nfs/parameters/enable_ino64

    El sistema debe devolver Y, lo que indica que los inodes de 64 bits están activados.

  2. Ejecute el siguiente comando para definir nfs.enable_ino64=0.
    echo "options nfs enable_ino64=0"  > /etc/modprobe.d/nfs.conf
  3. Reinicie la instancia.
  4. Verifique que la configuración se actualice con el siguiente comando:
    #  cat /sys/module/nfs/parameters/enable_ino64

    El sistema debe devolver N, lo que indica que los inodes de 64 bits están desactivados y se devuelven a 32-bit.

  5. Verifique que el sistema de archivos esté montado en la instancia o monte el sistema de archivos. Consulte Montaje de sistemas de archivos.