Volumes de importação
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
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.
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
StorageClassDeve 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
retainno 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
deleteO 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-managesinalizador para importar um volume não gerenciado. Se você usar--no-manageA 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.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.
-
Crie o arquivo Persistent Volume Claim (PVC) (por exemplo,
pvc.yaml) que será usado para criar o PVC. O arquivo PVC deve incluirname,namespace,accessModes, estorageClassName. Opcionalmente, você pode especificarunixPermissionsna 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_classNão inclua parâmetros adicionais como nome do PV ou tamanho do volume. Isso pode fazer com que o comando de importação falhe. -
Use o
tridentctl importComando 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.
|
|
|
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.
A seguir, apresentamos um exemplo de importação de um volume gerenciado e de um volume não 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
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.
A seguir, apresentamos um exemplo de importação de um volume gerenciado e de um volume não 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
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.

Elemento
O Trident oferece suporte ao software NetApp Element e à importação de volumes NetApp HCI usando o solidfire-san motorista.
|
|
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. |
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.
|
|
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 .
|
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.
|
|
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 .
|
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.
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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+