Importar volumes
Você pode importar volumes de armazenamento existentes como um PV do Kubernetes usando `tridentctl import`o .
Visão geral e considerações
Você pode importar um volume para o 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 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 de espelhamento antes de importar o volume para o 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
StorageClass
deva 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 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
retain
no 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 Trident gerencia o PVC e renomeia o FlexVol e o LUN no back-end. Você pode passar o
--no-manage
sinalizador para importar um volume não gerenciado. Se você usar `--no-manage`o , o 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
Pode utilizar tridentctl import
para importar um volume.
-
Crie o arquivo PVC (Persistent volume Claim) (por exemplo,
pvc.yaml
) que será usado para criar o PVC. O ficheiro PVC deve incluirname
namespace
, , ,accessModes
storageClassName
e . Opcionalmente, você pode especificarunixPermissions
em 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_class
Não inclua parâmetros adicionais, como nome PV ou tamanho do volume. Isso pode fazer com que o comando de importação falhe. -
Use o
tridentctl import
comando para especificar o nome do back-end do Trident que contém o volume e o nome que identifica exclusivamente o volume no storage (por exemplo: ONTAP FlexVol, volume do elemento, caminho do Cloud Volumes Service). O-f
argumento é necessário para especificar o caminho para o arquivo PVC.tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
Exemplos
Reveja os exemplos de importação de volume a seguir para drivers suportados.
ONTAP nas e ONTAP nas FlexGroup
O Trident suporta a importação de volume usando os ontap-nas
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.
A seguir mostra um exemplo de um volume gerenciado e uma importação de volume não gerenciado.
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 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
San ONTAP
O Trident suporta a importação de volume usando os ontap-san
drivers e ontap-san-economy
.
O 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. A Trident importa o FlexVol e associa-o à definição de PVC.
A seguir mostra um exemplo de um volume gerenciado e uma importação de volume não gerenciado.
Para volumes gerenciados, o 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 Trident suporta o software NetApp Element e a importação de volume NetApp HCI usando o solidfire-san
driver.
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 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 Trident suporta 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 Trident suporta 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+