Mover um volume
A partir do Trident 26.06, um administrador de storage pode mover de forma não disruptiva um volume iSCSI para um nó ONTAP diferente e agregá-lo dentro do mesmo cluster ONTAP enquanto a carga de trabalho que o utiliza continua em execução. Você solicita a movimentação de forma declarativa com um TridentVolumeMove recurso personalizado ou o tridentctl equivalente, e Trident coordena ONTAP e o host para que a E/S nunca seja interrompida.
Requisitos
A movimentação de volume aplica-se ao driver ontap-san para volumes iSCSI apenas. Os protocolos NVMe e NAS não são suportados.
Antes de mover um volume, certifique-se de que os seguintes requisitos sejam atendidos:
-
O backend utiliza o
ontap-sandriver com a API REST do ONTAP. -
O cluster ONTAP possui pelo menos dois nós.
-
Você possui um dos seguintes conjuntos de credenciais:
-
ONTAP 9.19.1 ou posterior se você estiver usando a função ONTAP personalizada dedicada.
-
Credenciais de administrador de cluster em versões anteriores do ONTAP.
-
Como funciona
Trident move o volume (LUN) entre dois locais dentro do mesmo cluster ONTAP. Antes da movimentação dos dados, Trident adiciona novos caminhos iSCSI ao destino, juntamente com os caminhos existentes, para que o dispositivo multipath do host nunca perca o acesso. Após a conclusão da movimentação pelo ONTAP, Trident remove os caminhos de origem obsoletos.
Trident executa a movimentação por meio de um conjunto ordenado de estados que são visíveis no TridentVolumeMove recurso, para que você possa acompanhar o progresso da movimentação.
Mover um volume
Identifique o volume e os locais
-
Encontre o nome do PV que deseja mover. O nome do PV também é o nome do recurso de movimentação.
-
No cluster ONTAP, anote o nó e o agregado atuais (de origem) para esse volume e escolha o nó de destino e o agregado de destino (alvo).
Inicie a movimentação
Use qualquer um dos métodos. Ambos criam o mesmo `TridentVolumeMove`recurso, cujo nome é o nome da PV.
tridentctl create volume-move \
--volume pvc-8a814d62-bd58-4253-b0d1-82f2885db671 \
--source-node ontap-node-01 \
--source-pool aggr1_node01 \
--target-node ontap-node-02 \
--target-pool aggr1_node02 \
-n trident
tvm é um alias para volume-move. Adicione --delete-after-success 10m para remover o recurso automaticamente após a movimentação ser concluída com sucesso.
apiVersion: trident.netapp.io/v1
kind: TridentVolumeMove
metadata:
name: pvc-8a814d62-bd58-4253-b0d1-82f2885db671 # the PV to move
namespace: trident
spec:
sourceNode: ontap-node-01
sourcePool: aggr1_node01
targetNode: ontap-node-02
targetPool: aggr1_node02
# deleteAfterSuccess: 10m # optional
Aplique o recurso:
kubectl apply -f tridentvolumemove.yaml
sourceNode/targetNode-
Nomes de nós ONTAP (não UUIDs).
sourcePool/targetPool-
Nomes de agregados do ONTAP.
deleteAfterSuccess-
Duração opcional, como
30sou10m. Defina como0para excluir o recurso imediatamente ou omita para manter o recurso.
Monitore a movimentação
Acompanhe o progresso usando o tvm`nome abreviado ou `tridentvolumemove:
kubectl get tridentvolumemove -n trident
Para visualizar o estado atual e o progresso por nó, descreva o recurso:
kubectl describe tridentvolumemove <pv-name> -n trident
O volume pode ter anexos simultâneos durante o Moving estado, porque ONTAP pode levar um tempo considerável para concluir a movimentação de um volume grande. Para garantir uma movimentação perfeita, Trident coordena a comunicação entre o Trident controller e o Trident node. Cada estado executa as seguintes etapas em ordem, terminando em Succeeded ou Failed.
| Estado | O que está acontecendo |
|---|---|
|
Trident aceita e valida a solicitação de movimentação e reúne as informações necessárias antes que qualquer alteração no storage seja iniciada. |
|
Trident prepara o local de destino. Ele mapeia as interfaces de armazenamento do nó de destino para o LUN e atualiza o Kubernetes para que uma futura reinicialização se reconecte ao local correto. |
|
Em cada host que possui o volume montado, Trident adiciona os novos caminhos de storage do nó de destino juntamente com os caminhos existentes, de forma que a E/S do pod continue em ambos os conjuntos de caminhos. |
|
ONTAP copia e transfere os dados do volume para o agregado de destino. Esta é a fase mais longa, e ONTAP a gerencia completamente enquanto Trident faz polling até terminar. Novas publicações são permitidas durante este estado. |
|
A movimentação de dados foi concluída. Trident atualiza o Kubernetes para remover os caminhos de origem do estado desejado e, em seguida, desmapeia as interfaces de storage do nó de origem do LUN. |
|
Em cada host, Trident remove os caminhos de origem obsoletos. O host fica apenas com os caminhos de destino, e o dispositivo multipath continua a fornecer E/S sem interrupção. |
|
O volume foi totalmente movido e está online no destino. Trident retém o |
|
Um erro irrecuperável interrompeu a movimentação ou impediu seu início. Trident redefine o estado do volume para que as operações normais possam ser retomadas e mantém o recurso com uma mensagem de erro. Analise a mensagem, corrija a causa raiz, exclua o recurso e tente novamente. |
A .status.attachments`lista indica o progresso de cada nó conectado em seu campo `state:
| Estado de anexação | Significado |
|---|---|
|
Nó identificado como conectado; o trabalho ainda não começou. |
|
Novos caminhos de destino adicionados juntamente com os caminhos existentes. |
|
O tráfego agora é atendido pelos novos caminhos. |
|
Caminhos de origem obsoletos removidos do nó. |
|
Nó desprendido durante a movimentação e excluído de análises posteriores enquanto Trident avalia se o anexo está pronto para prosseguir para a próxima etapa. |
|
Erro terminal neste nó. Veja a mensagem. |
Limpe o recurso de movimentação
Se você definir deleteAfterSuccess, Trident remove o recurso automaticamente. Caso contrário, você pode excluí-lo manualmente. Antes de solicitar outra movimentação no mesmo volume, certifique-se de que não exista nenhum recurso TridentVolumeMove para esse volume em um estado Succeeded ou Failed.
|
|
Trident nunca exclui automaticamente as movimentações com falha. Trident mantém um |