Stockage de fichiers persistant pour les applications hébergées

Conservez les fichiers d'application entre les redémarrages et les redéploiements de conteneur avec le service de stockage de fichiers géré par le service dans OCI Generative AI.

Attachez File Storage à une application hébergée et spécifiez un chemin de conteneur absolu où le service le monte. Les fichiers écrits dans ce chemin restent disponibles entre les redémarrages et les redéploiements. Utilisez des fichiers persistants pour les artefacts de modèle, les résultats intermédiaires, les points de vérification et l'état d'application dont votre charge de travail a besoin pour ces événements.

Chaque application reçoit un système de fichiers distinct, y compris lorsque les applications utilisent la même ressource de stockage géré. La réutilisation d'une configuration de stockage ne partage pas de fichiers entre les applications. Les applications accèdent à leurs propres fichiers au moyen du chemin de montage configuré.

Important

Le stockage de fichiers persistant prend en charge une réplique dans cette version. Réglez les nombres minimal et maximal de répliques de l'application à 1.
  • Une application peut avoir un montage File Storage et une ressource de stockage attachée de chaque type de stockage.
  • Chaque attachement de stockage de fichiers a un quota fixe de 50 Go (50 000 000 000 octets).
  • Vous devez spécifier le chemin de montage lorsque vous créez l'application. Vous ne pouvez pas la modifier par la suite.
  • Les fichiers écrits en dehors du chemin de montage ne gagnent pas en persistance à partir de cet attachement. Utilisez /tmp pour les fichiers temporaires.

Vous pouvez configurer le service de stockage de fichiers au moyen de la console ou de l'API du service d'intelligence artificielle générative. Pour le flux de travail de la console, voir Stockage.

Sélection d'un chemin de montage

Le chemin de montage recommandé est /mnt/persistent/data. Vous pouvez spécifier un autre chemin valide, par exemple /data, /app/storage ou /mount. Configurez votre application pour lire et écrire les fichiers persistants dans le chemin sélectionné.

Le chemin doit répondre aux exigences suivantes :

  • Utilisez un chemin absolu au format canonique UTF-8, avec au plus 4 096 octets au total et 255 octets par composant de chemin.
  • N'incluez pas de composants vides, de composants . ou .., de caractères de contrôle ou de barre oblique de fin.
  • N'utilisez pas le chemin racine (/) ou un chemin qui chevauche un autre montage de volume de conteneur.
  • N'utilisez pas de chemin qui chevauche un répertoire système réservé ou un montage de plate-forme.

Les chemins suivants sont réservés :

  • /bin, /boot, /dev, /etc, /lib, /lib64, /proc, /sbin et /sys
  • /run, /tmp et /var/run
  • /usr/bin, /usr/sbin, /usr/lib et /usr/lib64
  • /usr/local/bin, /usr/local/sbin, /usr/local/lib et /usr/local/lib64

Le stockage de fichiers nécessite un chemin de montage explicite. Les chemins de montage générés et la configuration environmentVariableKey ne sont pas pris en charge pour ce type de stockage.

Création du stockage de fichiers avec l'API

Assurez-vous d'être autorisé à créer un stockage géré et des applications hébergées. Voir Autorisations au niveau de l'API pour le stockage d'applications et Autorisations pour le déploiement d'applications.

Configurez l'application avec un nombre minimal et maximal de répliques de 1. Le stockage de fichiers persistant prend en charge une réplique dans cette version.

Utilisez l'API du plan de contrôle du service d'intelligence artificielle générative pour créer une ressource de stockage gérée, puis référencez-la dans la configuration de stockage de l'application.

  1. Créez la ressource de stockage avec CreateHostedApplicationStorage.

    Envoyez une demande POST à /20231130/hostedApplicationStorages avec un corps de demande CreateHostedApplicationStorageDetails. Indiquez l'OCID du compartiment, un nom d'affichage et le type de stockage FILE_STORAGE.

    {
      "compartmentId": "<compartment-ocid>",
      "displayName": "application-files",
      "storageType": "FILE_STORAGE"
    }

    Vous pouvez également fournir une description facultative, des marqueurs définis et des marqueurs à structure libre.

  2. Enregistrez l'OCID de la ressource HostedApplicationStorage créée. Si vous utilisez le stockage de fichiers existant, utilisez son OCID de ressource de stockage géré.
  3. Incluez une entrée File Storage dans storageConfigs lorsque vous créez l'application hébergée.

    Dans l'entrée StorageConfig, réglez storageId à l'OCID de la ressource de stockage géré et mountPath au chemin du conteneur sélectionné. Omettre environmentVariableKey.

    Le fragment suivant affiche uniquement la configuration d'attachement. Incluez les autres propriétés requises pour l'opération de création d'application que vous utilisez.

    {
      "storageConfigs": [
        {
          "storageId": "<hosted-application-storage-ocid>",
          "mountPath": "/mnt/persistent/data"
        }
      ]
    }

    L'application prend en charge jusqu'à quatre configurations de stockage, avec un attachement par type de stockage. Pour la base de données autonome, PostgreSQL et le stockage en mémoire cache, fournissez environmentVariableKey et omettez mountPath.

  4. Vérifiez la valeur storageConfigs[].fileStorageDetails.mountState retournée par l'application avant d'utiliser le montage.

    READY signifie que la révision d'application active peut utiliser le chemin de montage configuré. Voir Vérification du statut des fichiers joints.

Vérification du statut des fichiers joints

L'entrée storageConfigs de l'application inclut fileStorageDetails avec le statut de fichier joint. Voir FileStorageDetails dans les informations de référence sur l'API. Ces champs indiquent l'état géré par le service.

Statut des fichiers joints du stockage de fichiers
ChampDescription
mountStateREADY signifie que le service a rapproché l'attachement et que la révision d'application active peut utiliser le chemin de montage configuré. Les autres valeurs sont CREATING, NEEDS_ATTENTION, DELETING, DELETED et FAILED. Dans ces états, l'attachement ne revient pas au stockage local ou à un montage NFS direct.
lifecycleDetailsLe cas échéant, décrit un échec d'attachement ou de montage et l'action que vous pouvez effectuer.
quotaLimitInGigabytesQuota fixe de fichiers joints de 50 Go.

Vérification de l'utilisation du stockage

Utilisez les champs d'utilisation de fileStorageDetails pour vérifier la consommation observée la plus récente. Les valeurs d'utilisation sont consultatives. Le stockage de fichiers applique le quota inconditionnel.

Utilisation du stockage de fichiers
ChampDescription
usageStateCURRENT indique un échantillon courant. STALE indique un échantillon plus ancien que la cible de fraîcheur du service. UNAVAILABLE indique qu'aucun échantillon d'utilisation n'est disponible.
usageInBytesUtilisation la plus récemment observée en octets.
usagePercentageLe pourcentage le plus récemment observé du quota de 50 Go utilisé.
timeUsageObservedHeure de l'observation d'utilisation, au format RFC 3339.

Les valeurs d'utilisation et le temps d'observation sont retournés uniquement lorsque usageState est CURRENT ou STALE. Lorsqu'il s'agit de UNAVAILABLE, ces champs sont omis. Les valeurs manquantes ne signifient pas qu'aucun stockage n'est utilisé.