Importar volumes
Você pode importar volumes de armazenamento existentes como um PV do Kubernetes usando tridentctl import ou criando uma Persistent Volume Claim (PVC) com anotações de importação do Trident.
Visão geral e considerações
Você pode importar um volume para o Astra Trident para:
-
Conteinerize um aplicativo e reutilize seu conjunto de dados existente
-
Use um clone de um conjunto de dados para uma aplicação efêmera
-
Reconstruir um cluster do Kubernetes com falha
-
Migrar dados da aplicação durante a recuperação de desastre
Antes de importar um volume, reveja as seguintes considerações.
-
O Astra Trident pode importar apenas volumes ONTAP do tipo RW (leitura-gravação). Os volumes do tipo DP (proteção de dados) são volumes de destino do SnapMirror. Você deve quebrar a relação espelhada antes de importar o volume para o Astra Trident.
-
Sugerimos importar volumes sem conexões ativas. Para importar um volume usado ativamente, clonar o volume e, em seguida, executar a importação.
Isso é especialmente importante para volumes de bloco, já que o Kubernetes não sabia da conexão anterior e poderia facilmente anexar um volume ativo a um pod. Isso pode resultar em corrupção de dados. -
Embora
StorageClassdeva ser especificado em um PVC, o Astra Trident não usa esse parâmetro durante a importação. As classes de armazenamento são usadas durante a criação de volume para selecionar os pools disponíveis com base nas caraterísticas de armazenamento. Como o volume já existe, nenhuma seleção de pool é necessária durante a importação. Portanto, a importação não falhará mesmo se o volume existir em um backend ou pool que não corresponda à classe de armazenamento especificada no PVC. -
O tamanho do volume existente é determinado e definido no PVC. Depois que o volume é importado pelo driver de armazenamento, o PV é criado com uma ClaimRef para o PVC.
-
A política de recuperação é inicialmente definida como
retainno PV. Depois que o Kubernetes vincula com êxito 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 Astra Trident gerencia o PVC e renomeia o FlexVol e o LUN no back-end. Você pode passar o
--no-managesinalizador para importar um volume não gerenciado. Se você usar `--no-manage`o , o Astra Trident não realiza nenhuma operação adicional no PVC ou no PV para o ciclo de vida dos objetos. O volume de armazenamento não é excluído quando o PV é excluído e outras operações, como clone de volume e redimensionamento de volume também são ignoradas.Essa opção é útil se você quiser usar o Kubernetes para workloads em contêineres, mas de outra forma quiser gerenciar o ciclo de vida do volume de storage fora do Kubernetes. -
Uma anotação é adicionada ao PVC e ao PV que serve para um duplo propósito 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 ou removida.
Importar um volume
Você pode importar um volume usando tridentctl import ou criando um PVC com anotações de importação do Trident.
|
|
Se você utiliza anotações PVC, não precisa baixar ou usar tridentctl para importar o volume.
|
-
Crie um arquivo PVC (por exemplo,
pvc.yaml) que será usado para criar o PVC. O arquivo PVC deve incluirname,namespace,accessModesestorageClassName. Opcionalmente, você pode especificarunixPermissionsna sua definição de PVC.O seguinte é um exemplo de uma especificação mínima:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my_claim namespace: my_namespace spec: accessModes: - ReadWriteOnce storageClassName: my_storage_classInclua apenas os parâmetros necessários. Parâmetros adicionais, como o nome do PV ou o tamanho do volume, podem fazer com que o comando de importação falhe. -
Use o
tridentctl importcomando para especificar o nome do back-end do Astra Trident que contém o volume e o nome que identifica exclusivamente o volume no storage (por exemplo: ONTAP FlexVol, Element volume, caminho Cloud Volumes Service). O-fargumento é necessário para especificar o caminho para o arquivo PVC.tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
-
Crie um arquivo YAML de PVC (por exemplo,
pvc.yaml) com as anotações de importação do Trident necessárias. O arquivo de PVC deve incluir:-
nameenamespaceem metadados -
accessModes,resources.requests.storage, estorageClassNameem especificação -
Anotações:
-
trident.netapp.io/importOriginalName: Nome do volume no backend -
trident.netapp.io/importBackendUUID: UUID do backend onde o volume existe -
trident.netapp.io/notManaged(Opcional): Defina como"true"para volumes não gerenciados. O padrão é"false".A seguir está um exemplo de especificação para importar um volume gerenciado:
-
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: <pvc-name> namespace: <namespace> annotations: trident.netapp.io/importOriginalName: "<volume-name>" trident.netapp.io/importBackendUUID: "<backend-uuid>" spec: accessModes: - ReadWriteOnce resources: requests: storage: <size> storageClassName: <storage-class-name> -
-
Aplique o arquivo YAML do PVC ao seu cluster Kubernetes:
kubectl apply -f <pvc-file>.yaml
Trident importará automaticamente o volume e o vinculará ao PVC.
Exemplos
Reveja os exemplos de importação de volume a seguir para drivers suportados.
ONTAP nas e ONTAP nas FlexGroup
O Astra Trident é compatível com a importação de volume usando ontap-nas os drivers e. ontap-nas-flexgroup
|
|
|
Cada volume criado com o ontap-nas driver é um FlexVol no cluster do ONTAP. A importação do FlexVols com o ontap-nas driver funciona da mesma forma. Um FlexVol que já existe em um cluster ONTAP pode ser importado como ontap-nas PVC. Da mesma forma, os vols FlexGroup podem ser importados como ontap-nas-flexgroup PVCs.
Os exemplos a seguir mostram como importar volumes gerenciados e não gerenciados usando tridentctl.
O exemplo a seguir importa um volume nomeado 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, o Astra Trident não renomeará o volume.
O exemplo a seguir é importado unmanaged_volume ontap_nas no 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Os exemplos a seguir mostram como importar volumes gerenciados e não gerenciados usando anotações PVC.
O exemplo a seguir importa um volume de 1GiB ontap-nas nomeado ontap_volume1 do backend 81abcb27-ea63-49bb-b606-0a5315ac5f21 com o modo de acesso RWO definido usando anotações PVC:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: <managed-imported-volume>
namespace: <namespace>
annotations:
trident.netapp.io/importOriginalName: "ontap_volume1"
trident.netapp.io/importBackendUUID: "81abcb27-ea63-49bb-b606-0a5315ac5f21"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: <storage-class-name>
O exemplo a seguir importa 1Gi ontap-nas volume nomeado ontap-volume2 do backend 34abcb27-ea63-49bb-b606-0a5315ac5f34 com o modo de acesso RWO definido usando anotações PVC:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: <umanaged-imported-volume>
namespace: <namespace>
annotations:
trident.netapp.io/importOriginalName: "ontap-volume2"
trident.netapp.io/importBackendUUID: "34abcb27-ea63-49bb-b606-0a5315ac5f34"
trident.netapp.io/notManaged: "true"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: <storage-class-name>
San ONTAP
O Astra Trident é compatível com a importação de volume usando ontap-san o driver. A importação de volume não é suportada usando ontap-san-economy o driver.
O Astra Trident pode importar ONTAP SAN FlexVols que contenham um único LUN. Isso é consistente com o ontap-san driver, que cria um FlexVol para cada PVC e um LUN dentro do FlexVol. O Astra Trident importa o FlexVol e associa-o à definição de PVC.
Os exemplos a seguir mostram como importar volumes gerenciados e não gerenciados:
Para volumes gerenciados, o Astra Trident renomeia o FlexVol para pvc-<uuid> o formato e o LUN no FlexVol para lun0.
O exemplo a seguir importa ontap-san-managed o FlexVol que está presente no ontap_san_default back-end:
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 é importado unmanaged_example_volume ontap_san no 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 mapeados para grupos que compartilham uma IQN com um nó Kubernetes IQN, como mostrado no exemplo a seguir, você receberá o erro: LUN already mapped to initiator(s) in this group. Você precisará remover o iniciador ou desmapear o LUN para importar o volume.

Elemento
O Astra Trident é compatível com o software NetApp Element e a importação de volume NetApp HCI usando solidfire-san o driver.
|
|
O driver Element suporta nomes de volume duplicados. No entanto, o Astra Trident retorna um erro se houver nomes de volume duplicados. Como solução alternativa, clone o volume, forneça um nome de volume exclusivo 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Google Cloud Platform
O Astra Trident é compatível com a importação de volume usando gcp-cvs o driver.
|
|
Para importar um volume com o suporte do NetApp Cloud Volumes Service no Google Cloud Platform, identifique o volume pelo caminho de volume. O caminho do volume é a parte 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 será adroit-jolly-swift.
|
O exemplo a seguir importa um gcp-cvs volume no back-end gcpcvs_YEppr com o caminho de volume adroit-jolly-swift do .
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 Astra Trident é compatível com a importação de volume usando azure-netapp-files o driver.
|
|
Para importar um volume Azure NetApp Files, identifique o volume pelo seu caminho de volume. O caminho do volume é a parte 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 será importvol1.
|
O exemplo a seguir importa um azure-netapp-files volume no back-end 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+