Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Volumes de importação

Colaboradores netapp-aruldeepa

Você pode importar volumes de armazenamento existentes como um PV do Kubernetes usando tridentctl import .

Visão geral e considerações

Você pode importar um volume para o Trident para:

  • Containerize uma aplicação e reutilize seu conjunto de dados existente.

  • Utilize um clone de um conjunto de dados para uma aplicação efêmera.

  • Reconstruir um cluster Kubernetes com falha

  • Migrar dados de aplicativos durante a recuperação de desastres

Considerações

Antes de importar um volume, revise as seguintes considerações.

  • O Trident só pode importar volumes ONTAP do tipo RW (leitura e gravação). Os volumes do tipo DP (proteção de dados) são volumes de destino do SnapMirror . Você deve quebrar a relação de espelhamento antes de importar o volume para o Trident.

  • Sugerimos importar volumes sem conexões ativas. Para importar um volume que esteja sendo usado ativamente, clone o volume e, em seguida, execute a importação.

    Aviso Isso é especialmente importante para volumes de bloco, pois o Kubernetes não teria conhecimento da conexão anterior e poderia facilmente anexar um volume ativo a um pod. Isso pode resultar em corrupção de dados.
  • No entanto StorageClass Deve ser especificado em um PVC; o Trident não usa esse parâmetro durante a importação. As classes de armazenamento são usadas durante a criação de volumes para selecionar entre os pools disponíveis com base nas características de armazenamento. Como o volume já existe, não é necessário selecionar um pool durante a importação. Portanto, a importação não falhará mesmo que o volume exista em um backend ou pool que não corresponda à classe de armazenamento especificada no PVC.

  • O volume existente é determinado e definido no PVC. Após o volume ser importado pelo driver de armazenamento, o PV é criado com uma referência ClaimRef para o PVC.

    • A política de recuperação é inicialmente definida como retain no PV. Após o Kubernetes vincular com sucesso o PVC e o PV, a política de recuperação é atualizada para corresponder à política de recuperação da classe de armazenamento.

    • Se a política de recuperação da Classe de Armazenamento for delete O volume de armazenamento será excluído quando o PV for excluído.

  • Por padrão, o Trident gerencia o PVC e renomeia o FlexVol volume e o LUN no backend. Você pode passar o --no-manage sinalizador para importar um volume não gerenciado. Se você usar --no-manage A Trident não realiza nenhuma operação adicional no PVC ou PV durante o ciclo de vida dos objetos. O volume de armazenamento não é excluído quando o PV é excluído, e outras operações como clonagem e redimensionamento de volume também são ignoradas.

    Dica Essa opção é útil se você deseja usar o Kubernetes para cargas de trabalho em contêineres, mas, fora isso, prefere gerenciar o ciclo de vida do volume de armazenamento fora do Kubernetes.
  • Uma anotação é adicionada ao PVC e ao PV com a dupla função de indicar que o volume foi importado e se o PVC e o PV são gerenciados. Esta anotação não deve ser modificada nem removida.

Importar um volume

Você pode usar tridentctl import Importar um volume.

Passos
  1. Crie o arquivo Persistent Volume Claim (PVC) (por exemplo, pvc.yaml ) que será usado para criar o PVC. O arquivo PVC deve incluir name , namespace , accessModes , e storageClassName . Opcionalmente, você pode especificar unixPermissions na sua definição de PVC.

    Segue abaixo um exemplo de especificação mínima:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: my_claim
      namespace: my_namespace
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: my_storage_class
    Aviso Não inclua parâmetros adicionais como nome do PV ou tamanho do volume. Isso pode fazer com que o comando de importação falhe.
  2. Use o tridentctl import Comando para especificar o nome do backend Trident que contém o volume e o nome que identifica exclusivamente o volume no armazenamento (por exemplo: ONTAP FlexVol, Element Volume, caminho do Cloud Volumes Service ). O -f É necessário fornecer o argumento para especificar o caminho para o arquivo PVC.

    tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>

Exemplos

Consulte os exemplos de importação de volume a seguir para obter informações sobre os drivers compatíveis.

ONTAP NAS e ONTAP NAS FlexGroup

O Trident suporta a importação de volumes usando o ontap-nas e ontap-nas-flexgroup motoristas.

Observação
  • O Trident não suporta importação de volume usando o ontap-nas-economy motorista.

  • O ontap-nas e ontap-nas-flexgroup Os drivers não permitem nomes de volume duplicados.

Cada volume criado com o ontap-nas O driver é um FlexVol volume no cluster ONTAP . Importando volumes FlexVol com o ontap-nas O driver funciona da mesma forma. Um volume FlexVol que já existe em um cluster ONTAP pode ser importado como um ontap-nas PVC. Da mesma forma, os volumes do FlexGroup podem ser importados como ontap-nas-flexgroup PVCs.

Exemplos de ONTAP NAS

A seguir, apresentamos um exemplo de importação de um volume gerenciado e de um volume não gerenciado.

Volume gerenciado

O exemplo a seguir importa um volume chamado managed_volume em um backend chamado ontap_nas :

tridentctl import volume ontap_nas managed_volume -f <path-to-pvc-file>

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-bf5ad463-afbb-11e9-8d9f-5254004dfdb7 | 1.0 GiB | standard      | file     | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true    |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Volume não gerenciado

Ao usar o --no-manage argumento: Trident não renomeia o volume.

O exemplo a seguir importa unmanaged_volume no ontap_nas backend:

tridentctl import volume nas_blog unmanaged_volume -f <path-to-pvc-file> --no-manage

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-df07d542-afbc-11e9-8d9f-5254004dfdb7 | 1.0 GiB | standard      | file     | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | false   |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

ONTAP SAN

O Trident suporta importação de volume usando o ontap-san (iSCSI, NVMe/TCP e FC) e ontap-san-economy motoristas.

O Trident pode importar volumes ONTAP SAN FlexVol que contêm um único LUN. Isto é consistente com o ontap-san driver, que cria um FlexVol volume para cada PVC e um LUN dentro do FlexVol volume. O Trident importa o FlexVol volume e o associa à definição de PVC. Trident pode importar ontap-san-economy volumes que contêm vários LUNs.

Exemplos de SAN ONTAP

A seguir, apresentamos um exemplo de importação de um volume gerenciado e de um volume não gerenciado.

Volume gerenciado

Para volumes gerenciados, o Trident renomeia o FlexVol volume para pvc-<uuid> formato e o LUN dentro do FlexVol volume para lun0 .

O exemplo a seguir importa o ontap-san-managed FlexVol volume que está presente no ontap_san_default backend:

tridentctl import volume ontapsan_san_default ontap-san-managed -f pvc-basic-import.yaml -n trident -d

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-d6ee4f54-4e40-4454-92fd-d00fc228d74a | 20 MiB | basic         | block    | cd394786-ddd5-4470-adc3-10c5ce4ca757 | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Volume não gerenciado

O exemplo a seguir importa unmanaged_example_volume no ontap_san backend:

tridentctl import volume -n trident san_blog unmanaged_example_volume -f pvc-import.yaml --no-manage
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-1fc999c9-ce8c-459c-82e4-ed4380a4b228 | 1.0 GiB | san-blog      | block    | e3275890-7d80-4af6-90cc-c7a0759f555a | online | false   |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

Se você tiver LUNs mapeadas para igroups que compartilham um IQN com o IQN de um nó do Kubernetes, como mostrado no exemplo a seguir, você receberá o seguinte erro: LUN already mapped to initiator(s) in this group . Você precisará remover o iniciador ou desvincular o LUN para importar o volume.

Imagem de LUNS mapeada para iqn e cluster iqn.

Elemento

O Trident oferece suporte ao software NetApp Element e à importação de volumes NetApp HCI usando o solidfire-san motorista.

Observação O driver Element suporta nomes de volume duplicados. No entanto, o Trident retorna um erro se houver nomes de volume duplicados. Como solução alternativa, clone o volume, forneça um nome exclusivo para o volume e importe o volume clonado.
Exemplo de elemento

O exemplo a seguir importa um element-managed volume no backend element_default .

tridentctl import volume element_default element-managed -f pvc-basic-import.yaml -n trident -d

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-970ce1ca-2096-4ecd-8545-ac7edc24a8fe | 10 GiB | basic-element | block    | d3ba047a-ea0b-43f9-9c42-e38e58301c49 | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+

Plataforma Google Cloud

O Trident suporta a importação de volumes usando o gcp-cvs motorista.

Observação Para importar um volume com suporte do NetApp Cloud Volumes Service no Google Cloud Platform, identifique o volume pelo seu caminho. O caminho do volume é a porção do caminho de exportação do volume após o :/ . Por exemplo, se o caminho de exportação for 10.0.0.1:/adroit-jolly-swift , o caminho do volume é adroit-jolly-swift .
Exemplo do Google Cloud Platform

O exemplo a seguir importa um gcp-cvs volume no backend gcpcvs_YEppr com o caminho de volume de adroit-jolly-swift .

tridentctl import volume gcpcvs_YEppr adroit-jolly-swift -f <path-to-pvc-file> -n trident

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-a46ccab7-44aa-4433-94b1-e47fc8c0fa55 | 93 GiB | gcp-storage   | file     | e1a6e65b-299e-4568-ad05-4f0a105c888f | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+

Azure NetApp Files

O Trident suporta a importação de volumes usando o azure-netapp-files motorista.

Observação Para importar um volume do Azure NetApp Files , identifique o volume pelo seu caminho. O caminho do volume é a porção do caminho de exportação do volume após o :/ . Por exemplo, se o caminho de montagem for 10.0.0.2:/importvol1 , o caminho do volume é importvol1 .
Exemplo de Azure NetApp Files

O exemplo a seguir importa um azure-netapp-files volume no backend azurenetappfiles_40517 com o caminho do volume importvol1 .

tridentctl import volume azurenetappfiles_40517 importvol1 -f <path-to-pvc-file> -n trident

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-0ee95d60-fd5c-448d-b505-b72901b3a4ab | 100 GiB | anf-storage   | file     | 1c01274f-d94b-44a3-98a3-04c953c9a51e | online | true    |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

Google Cloud NetApp Volumes

O Trident suporta a importação de volumes usando o google-cloud-netapp-volumes motorista.

Exemplo de Google Cloud NetApp Volumes

O exemplo a seguir importa um google-cloud-netapp-volumes volume no backend backend-tbc-gcnv1 com o volume testvoleasiaeast1 .

tridentctl import volume backend-tbc-gcnv1 "testvoleasiaeast1" -f < path-to-pvc> -n trident

+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS        | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
| pvc-a69cda19-218c-4ca9-a941-aea05dd13dc0 |  10 GiB | gcnv-nfs-sc-identity | file     | 8c18cdf1-0770-4bc0-bcc5-c6295fe6d837 | online | true    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+

O exemplo a seguir importa um google-cloud-netapp-volumes Volume quando dois volumes estão presentes na mesma região:

tridentctl import volume backend-tbc-gcnv1 "projects/123456789100/locations/asia-east1-a/volumes/testvoleasiaeast1" -f <path-to-pvc> -n trident

+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS        | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
| pvc-a69cda19-218c-4ca9-a941-aea05dd13dc0 |  10 GiB | gcnv-nfs-sc-identity | file     | 8c18cdf1-0770-4bc0-bcc5-c6295fe6d837 | online | true    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+