Armazenamento de Arquivos Persistente para Aplicativos Hospedados

Mantenha arquivos de aplicativos em reinicializações e reimplantações de contêineres com o File Storage gerenciado pelo serviço no OCI Generative AI.

Anexe o File Storage a um aplicativo hospedado e especifique um caminho de contêiner absoluto no qual o serviço o monta. Os arquivos gravados nesse caminho permanecem disponíveis nas reinicializações e reimplantações. Use arquivos persistentes para artefatos de modelo, resultados intermediários, pontos de verificação e estado do aplicativo necessários para sua carga de trabalho nesses eventos.

Cada aplicativo recebe um sistema de arquivos separado, inclusive quando os aplicativos usam o mesmo recurso de armazenamento gerenciado. Reutilizar uma configuração de armazenamento não compartilha arquivos entre aplicativos. Os aplicativos acessam seus próprios arquivos por meio do caminho de montagem configurado.

Importante

O armazenamento de arquivos persistente suporta uma réplica nesta release. Defina as contagens de réplicas mínima e máxima do aplicativo como 1.
  • Um aplicativo pode ter uma montagem do serviço File Storage e um recurso de armazenamento anexado de cada tipo de armazenamento.
  • Cada anexo de armazenamento de arquivos tem uma cota fixa de 50 GB (50.000.000.000 de bytes).
  • É necessário especificar o caminho de montagem ao criar o aplicativo. Não é possível alterá-lo posteriormente.
  • Os arquivos gravados fora do caminho de montagem não ganham persistência deste anexo. Use /tmp para arquivos temporários.

Você pode configurar o File Storage por meio da Console ou da API do Generative AI. Para o workflow da Console, consulte Armazenamento.

Selecionando um Caminho de Montagem

O caminho de montagem recomendado é /mnt/persistent/data. Você pode especificar outro caminho válido, como /data, /app/storage ou /mount. Configure seu aplicativo para ler e gravar arquivos persistentes no caminho selecionado.

O caminho deve atender aos seguintes requisitos:

  • Utilize um caminho absoluto no formato canônico UTF-8, com no máximo 4.096 bytes no total e 255 bytes por componente de caminho.
  • Não inclua componentes vazios, . ou .., caracteres de controle ou uma barra à direita.
  • Não use o caminho raiz (/) ou um caminho que sobreponha outra montagem de volume de contêiner.
  • Não use um caminho que sobreponha um diretório de sistema reservado ou uma montagem de plataforma.

Os seguintes caminhos são reservados:

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

O File Storage requer um caminho de montagem explícito. Os caminhos de montagem gerados e a configuração environmentVariableKey não são suportados para este tipo de armazenamento.

Criando o Serviço File Storage com a API

Certifique-se de ter permissão para criar armazenamento gerenciado e aplicativos hospedados. Consulte Permissões no Nível da API para o Serviço Application Storage e Permissões para Implantar Aplicativos.

Configure o aplicativo com contagens de réplicas mínima e máxima de 1. O armazenamento persistente de arquivos suporta uma réplica nesta versão.

Use a API do plano de controle do serviço Generative AI para criar um recurso de armazenamento gerenciado e referenciá-lo na configuração de armazenamento do aplicativo.

  1. Crie o recurso de armazenamento com CreateHostedApplicationStorage.

    Envie uma solicitação POST para /20231130/hostedApplicationStorages com um corpo de solicitação CreateHostedApplicationStorageDetails. Forneça o OCID do compartimento, um nome para exibição e FILE_STORAGE como o tipo de armazenamento.

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

    Você também pode fornecer uma descrição opcional, tags definidas e tags de formato livre.

  2. Registre o OCID do recurso HostedApplicationStorage criado. Se você estiver usando o File Storage existente, use seu OCID de recurso de armazenamento gerenciado.
  3. Inclua uma entrada do File Storage em storageConfigs ao criar o aplicativo hospedado.

    Na entrada StorageConfig, defina storageId como o OCID do recurso de armazenamento gerenciado e mountPath para o caminho do contêiner selecionado. Omita environmentVariableKey.

    O fragmento a seguir mostra apenas a configuração do anexo. Inclua as outras propriedades necessárias para a operação de criação de aplicativo que você usa.

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

    O aplicativo suporta até quatro configurações de armazenamento, com um anexo por tipo de armazenamento. Para ADB, PostgreSQL e armazenamento em cache, forneça environmentVariableKey e omita mountPath.

  4. Verifique se o aplicativo retornou storageConfigs[].fileStorageDetails.mountState antes de usar a montagem.

    READY significa que a revisão do aplicativo ativo pode usar o caminho de montagem configurado. Consulte Verificando o Status do Anexo.

Verificando o Status do Anexo

A entrada storageConfigs do aplicativo inclui fileStorageDetails com o status de anexo. Consulte FileStorageDetails na referência da API. Estes campos reportam o estado gerenciado pelo serviço.

Status do anexo do File Storage
CampoDescrição
mountStateREADY significa que o serviço reconciliou o anexo e a revisão do aplicativo ativo pode usar o caminho de montagem configurado. Outros valores são CREATING, NEEDS_ATTENTION, DELETING, DELETED e FAILED. Nesses estados, o anexo não se encaixa no armazenamento local ou em uma montagem NFS direta.
lifecycleDetailsQuando fornecido, descreve um anexo ou falha de montagem e a ação que você pode executar.
quotaLimitInGigabytesA cota de anexo fixa de 50 GB.

Verificando o Uso do Armazenamento

Use os campos de uso no fileStorageDetails para revisar o consumo observado mais recentemente. Os valores de uso são aconselháveis. O File Storage impõe a cota fixa.

Uso do Armazenamento de Arquivos
CampoDescrição
usageStateCURRENT indica uma amostra atual. STALE indica uma amostra mais antiga que o alvo de atualização do serviço. UNAVAILABLE indica que nenhuma amostra de uso está disponível.
usageInBytesO uso observado mais recentemente em bytes.
usagePercentageA porcentagem mais recente observada da cota de 50 GB em uso.
timeUsageObservedA hora da observação de uso, no formato RFC 3339.

Os valores de uso e o tempo de observação são retornados somente quando usageState é CURRENT ou STALE. Quando é UNAVAILABLE, esses campos são omitidos. Valores ausentes não significam que nenhum armazenamento está em uso.