Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Guia de usuário/ Armazenamento/ Scalable File Service/ Configuração de opções de montagem de volume do SFS
Atualizado em 2024-11-28 GMT+08:00

Configuração de opções de montagem de volume do SFS

Esta seção descreve como configurar as opções de montagem de volume do SFS. Você pode configurar opções de montagem em um PV e vincular o PV a uma PVC. Como alternativa, configure as opções de montagem em uma StorageClass e use a StorageClass para criar uma PVC. Dessa forma, os PVs podem ser criados dinamicamente e herdar opções de montagem configuradas na StorageClass por padrão.

Pré-requisitos

A versão do complemento Armazenamento do contêiner do CCE (Everest) deve ser 1.2.8 ou posterior. Esse complemento identifica as opções de montagem e as transfere para os recursos de armazenamento subjacentes. As configurações de parâmetros terão efeito somente se os recursos de armazenamento subjacentes suportarem as opções especificadas.

Restrições

  • As opções de montagem não podem ser configuradas para contêineres seguros.
  • Devido às restrições do protocolo NFS, se um volume do SFS for montado em um nó por várias vezes, os parâmetros de montagem relacionados ao link (como timeo) terão efeito somente quando o volume do SFS for montado pela primeira vez. Por exemplo, se um volume do SFS for montado em vários pods em execução em um nó, os valores dos parâmetros de montagem configurados posteriormente não substituirão os valores de parâmetros existentes.

Opções de montagem de volume do SFS

O complemento everest no CCE predefine as opções descritas em Tabela 1 para montar volumes do SFS.

Tabela 1 Opções de montagem de volume do SFS

Parâmetro

Valor

Descrição

keep-original-ownership

Deixe em branco.

Se deve reter a propriedade do ponto de montagem do arquivo. Se esta opção for usada, o complemento everest deve ser v1.2.63 ou v2.1.2 ou posterior.

  • Por predefinição, esta opção não é adicionada e a propriedade do ponto de montagem é root:root quando o SFS é montado.
  • Se essa opção for adicionada, a propriedade original do sistema de arquivos será mantida quando o SFS for montado.

vers

3

Versão do sistema de arquivos. No momento, apenas NFSv3 é suportada. Valor: 3

nolock

Deixe em branco.

Se deseja bloquear arquivos no servidor usando o protocolo NLM. Se nolock for selecionado, o bloqueio é válido para aplicações em um host. Para aplicações em outro host, o bloqueio é inválido.

timeo

600

Tempo de espera antes do cliente de NFS retransmitir uma solicitação. A unidade é 0,1 segundo. Valor recomendado: 600

hard/soft

Deixe em branco.

Modos de montagem.

  • hard: se a solicitação NFS expirar, o cliente continuará reenviando a solicitação até que a solicitação seja bem-sucedida.
  • soft: se uma solicitação NFS expirar, o cliente retornará um erro para o programa invocando.

O valor padrão é hard.

Você pode definir outras opções de montagem, se necessário. Para obter detalhes, consulte MMontagem de um sistema de arquivos NFS para ECSs (Linux).

Definir opções de montagem em um PV

Você pode usar o campo mountOptions para definir opções de montagem em um PV. As opções que você pode configurar em mountOptions estão listadas em Opções de montagem de volume do SFS.

  1. Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
  2. Defina as opções de montagem em um PV. Exemplo:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: everest-csi-provisioner
        everest.io/reclaim-policy: retain-volume-only      # (Optional) The PV is deleted while the underlying volume is retained.
      name: pv-sfs
    spec:
      accessModes:
      - ReadWriteMany      # Access mode. The value must be ReadWriteMany for SFS.
      capacity:
        storage: 1Gi     # SFS volume capacity.
      csi:
        driver: disk.csi.everest.io   # Dependent storage driver for the mounting.
        fsType: nfs
        volumeHandle: <your_volume_id>   # ID of the SFS Capacity-Oriented volume.
        volumeAttributes:
          everest.io/share-export-location: <your_location>  # Shared path of the SFS volume.
          storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
      persistentVolumeReclaimPolicy: Retain    # Reclaim policy.
      storageClassName: csi-nas                # Storage class name.
      mountOptions:                            # Mount options.
      - vers=3
      - nolock
      - timeo=600
      - hard

  3. Depois que um PV é criado, você pode criar uma PVC e vinculá-la ao PV e, em seguida, montar o PV ao contêiner na carga de trabalho. Para mais detalhes, consulte Uso de um sistema de arquivos do SFS existente por meio de um PV estático.
  4. Verifique se as opções de montagem têm efeito.

    Neste exemplo, a PVC é montada na carga de trabalho que usa a imagem nginx:latest. Você pode executar o comando mount -l para verificar se as opções de montagem têm efeito.
    1. Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.
      kubectl get pod | grep web-sfs

      Saída do comando:

      web-sfs-***   1/1     Running   0             23m
    2. Execute o seguinte comando para verificar as opções de montagem (web-sfs-*** é um pod de exemplo):
      kubectl exec -it web-sfs-*** -- mount -l | grep nfs

      Se as informações de montagem na saída do comando forem consistentes com as opções de montagem configuradas, as opções de montagem serão definidas com sucesso.

      <Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)

Configurar opções de montagem em uma StorageClass

Você pode usar o campo mountOptions para definir opções de montagem em uma StorageClass. As opções que você pode configurar em mountOptions estão listadas em Opções de montagem de volume do SFS.

  1. Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
  2. Crie uma StorageClass personalizada. Exemplo:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: csi-sfs-mount-option
    provisioner: everest-csi-provisioner
    parameters:
      csi.storage.k8s.io/csi-driver-name: nas.csi.everest.io
      csi.storage.k8s.io/fstype: nfs
    everest.io/share-access-to: <your_vpc_id> # VPC ID of the cluster.
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    mountOptions:                            # Mount options
    - vers=3
    - nolock
    - timeo=600
    - hard

  3. Depois que a StorageClass é configurada, você pode usá-la para criar uma PVC. Por padrão, os PVs criados dinamicamente herdam as opções de montagem configuradas na StorageClass. Para mais detalhes, consulte Uso de um sistema de arquivos do SFS através de um PV dinâmico.
  4. Verifique se as opções de montagem têm efeito.

    Neste exemplo, a PVC é montada na carga de trabalho que usa a imagem nginx:latest. Você pode executar o comando mount -l para verificar se as opções de montagem têm efeito.
    1. Visualize o pod no qual o volume do SFS foi montado. Neste exemplo, o nome da carga de trabalho é web-sfs.
      kubectl get pod | grep web-sfs

      Saída do comando:

      web-sfs-***   1/1     Running   0             23m
    2. Execute o seguinte comando para verificar as opções de montagem (web-sfs-*** é um pod de exemplo):
      kubectl exec -it web-sfs-*** -- mount -l | grep nfs

      Se as informações de montagem na saída do comando forem consistentes com as opções de montagem configuradas, as opções de montagem serão definidas com sucesso.

      <Your shared path> on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=2050,mountproto=tcp,local_lock=all,addr=**.**.**.**)