Solução de problemas

Esta página mostra etapas de solução de problemas que podem ser úteis em caso de problemas ao usar o Filestore.

Baixo desempenho

  1. Verifique se você está usando o tipo de máquina recomendado para a VM cliente.
  2. Se sua VM de cliente estiver executando o Linux, verifique se você está usando as opções de ativação padrão.

  3. Verifique se a VM cliente está localizada na mesma região que a instância do Filestore. A ativação entre regiões não apenas reduz o desempenho, como também gera um custo de rede.

  4. Teste o desempenho da instância do Filestore usando a ferramenta fio.

    Se os resultados do teste apresentarem um desempenho lento fora do normal, entre em contato com seu representante da conta. Se os resultados do teste apresentarem um desempenho semelhante ou superior ao esperado, prossiga para a próxima seção.

Casos de uso que provocam desempenho lento

Veja abaixo alguns casos de uso e cenários que causam baixo desempenho:

Cargas de trabalho que envolvem grandes volumes de arquivos pequenos

Os compartilhamentos de arquivos do Filestore usam a opção de exportação sync para segurança de dados e conformidade com o protocolo NFS. Isso significa que, para a maioria das operações de modificação de dados, a instância do Filestore aguarda a confirmação dos dados no armazenamento antes de responder às solicitações da VM cliente. Quando uma operação envolve muitos arquivos, o cliente faz uma longa série de operações síncronas, e a latência cumulativa aumenta.

Um exemplo disso é a extração de um arquivo no compartilhamento de arquivos, como arquivos TAR. Ele cria um grande número de operações síncronas em uma série ao extrair um arquivo que contém muitos arquivos. Consequentemente, o desempenho é significativamente reduzido.

Se você estiver tentando copiar um grande número de arquivos pequenos para um compartilhamento de arquivos, tente carregar a criação de arquivos em paralelo com uma ferramenta como gsutil:

mkdir -p /mnt/nfs/many_files_rsync/
time gsutil -m -q rsync -rp many_files /mnt/nfs/many_files_rsync/

Como copiar dados entre o Cloud Storage e o Filestore

Sabe-se até o momento que a cópia de dados do Cloud Storage para uma instância do Filestore usando o gsutil é lenta. Não há mitigação conhecida.

Latência ao montar e desconectar um compartilhamento de arquivos

Há uma latência de três segundos introduzida ao montar um compartilhamento de arquivos usando as opções de montagem padrão, que são causadas pela tentativa do comando de montagem de descobrir o método de transporte compatível da instância do Filestore.

O daemon mountd primeiro tenta usar o UDP, o que não é compatível com o Filestore. Quando a tentativa inicial expirar, ela voltará para o TCP. Para ignorar esse processo de descoberta e eliminar a latência adicionada, especifique a opção de ativação tcp, por exemplo:

sudo mount -o tcp 10.0.0.2:/vol1 /mnt/nfs

Isso é especialmente importante se você estiver montando automaticamente com o autofs.

O Filestore não responde

Manutenção programada

Se o Filestore não responder por alguns minutos e depois voltar a responder, isso se deve, possivelmente, a um evento de manutenção programada. Com relação ao SLA do Filestore, consulte a página do SLA.

O Filestore não é compatível com janelas de manutenção definidas pelo cliente. A programação de janelas de manutenção do Filestore também não está disponível para os clientes.

A instância foi excluída enquanto ainda está ativada no cliente

Se uma operação de arquivo ou um comando Unix, como df, ls ou qualquer operação de leitura/gravação parar de responder, a instância do Filestore provavelmente foi excluída enquanto ainda está ativada no cliente.

Verifique se a instância ainda existe:

    gcloud filestore instances list

Se a instância não estiver mais listada, recupere o controle criando uma nova instância com o mesmo endereço IP e nome de compartilhamento de arquivo da instância que foi excluída. Depois de criá-la, a operação que não responde sai com um erro. É possível desativar o compartilhamento de arquivos e excluir a instância do Filestore se ela não for necessária.

Para evitar que isso se repita mais pra frente, desative a instância do Filestore antes de excluí-la.

"Não há espaço livre no dispositivo"

  1. Verifique se a instância do Filestore tem inodes suficientes executando o seguinte comando na VM cliente:

    df -i
    

    O comando retorna algo semelhante ao seguinte:

    Filesystem           Inodes        IUsed      IFree         IUse%  Mounted on
    10.0.0.2:/vol1    134217728        13         134217715     1%     /mnt/test
    

    Cada arquivo armazenado no compartilhamento de arquivos consome um inode. Se IUse% estiver em 100%, significa que não há inodes gratuitos e que não será possível armazenar mais arquivos no compartilhamento de arquivos, mesmo que não tenha atingido a capacidade máxima alocada. O número de inodes é escalonado de acordo com a capacidade. Para incluir mais nós, adicione mais capacidade.

  2. Se você ainda houver inodes restantes, você alcançou o número máximo de entradas (arquivos ou subdiretórios) para um diretório. O número máximo de entradas permitido em um diretório depende do comprimento do nome dessas entradas. No entanto, atingir esse limite é uma probabilidade, em vez de um limite absoluto. Para corrigir isso, crie uma hierarquia de arquivos mais detalhada distribuindo suas entradas em subdiretórios.

Não foi possível criar uma instância

PERMISSION DENIED ao criar uma instância do Filestore

  1. Verifique se a API do Filestore está ativada:

    gcloud services enable file.googleapis.com
    
  2. Verifique se você tem o papel de roles/file.editor. Para detalhes, consulte Papéis e permissões do IAM.

  3. Se o erro persistir, é possível que a conta de serviço do Filestore tenha o papel de file.serviceAgent removido. Para verificar isso, execute:

    gcloud projects get-iam-policy project-name  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:service-project-id@cloud-filer.iam.gserviceaccount.com"
    

    onde:

    • project-name é o nome do projeto do Google Cloud;
    • project-id é o número do ID do projeto do Google Cloud.

    O comando retornará algo semelhante ao seguinte:

    ROLE
    roles/file.serviceAgent
    

    Se roles/file.serviceAgent não estiver listado, restaure-o executando o seguinte:

    gcloud projects add-iam-policy-binding project-id --member serviceAccount:service-project-id@cloud-filer.iam.gserviceaccount.com --role roles/file.serviceAgent
    

    em que project-id é o número de ID do seu projeto do Google Cloud.

Como receber um código de erro 13 ao criar uma instância

Há algumas causas possíveis para erros de código de erro 13 durante a criação da instância, mas a causa mais comum é o Filestore atingir uma cota de rede interna.

Em cada rede VPC que você cria uma instância do Filestore, o Filestore precisa criar uma rede interna que esteja em peering com essa rede. Essas redes internas são preservadas mesmo quando as instâncias do Filestore e as redes VPC associadas a elas são excluídas.

Quando o número de redes internas atinge 50 para um projeto, o Filestore não pode mais criar novas redes internas, o que impede a criação de instâncias do Filestore em novas redes VPC. A tentativa de fazer isso resultará em um erro:

Error code 13, message: an internal error has occurred

A única maneira de limpar as redes internas é desativar e reativar a API do Filestore:

gcloud services disable file.googleapis.com

gcloud services enable file.googleapis.com

Se isso não for possível porque existem instâncias do Filestore necessárias e que não podem ser excluídas, entre em contato com o representante da sua conta para que remover as redes com peering manualmente.

Se você precisa excluir e criar regularmente redes VPC e instâncias do Filestore, há duas maneiras de evitar o esgotamento da cota de rede:

  1. Ao criar uma rede VPC, use o mesmo nome de uma rede anterior que foi usada na criação de instâncias do Filestore.

  2. Percorra um pool de, no máximo, 50 redes VPC em vez de excluí-las e recriá-las.

Não foi possível ativar o compartilhamento de arquivos

Permissão negada ao tentar ativar um compartilhamento de arquivos

Verifique se há opções de exportação do NFS listadas para a instância:

gcloud filestore instances describe instance-id \
    --zone=zone

onde:

  • instance-id é o ID de instância do Filestore;
  • zone é a zona em que a instância do Filestore reside.

O comando retorna algo semelhante a:

createTime: '2019-10-11T17:28:23.340943077Z'
fileShares:
- capacityGb: '1024'
  name: vol1
  nfsExportOptions:
  - accessMode: READ_WRITE
    ipRanges:
    - 128.0.0.0/29
    squashMode: NO_ROOT_SQUASH
name: projects/yourproject/locations/us-central1-c/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.0.2
  modes:
  - MODE_IPV4
  network: default
  reservedIpRange: 10.0.0.0/29
state: READY
tier: BASIC_HDD

Se você encontrar nfsExportOptions listado, verifique se o endereço IP do seu cliente está dentro de um dos intervalos listados em ipRanges para o accessMode esperado. Se não estiver, edite as opções de exportação do NFS. Para instruções sobre como fazer isso, consulte Como editar instâncias.

Não foi possível ativar o compartilhamento de arquivos no App Engine

O Filestore não é compatível com o App Engine.