Migração de volumes Block Storage for VPC de perfis Gen-1 para Gen-2
Nuvem Privada Virtual
Migre seus volumes Block Storage for VPC dos perfis da Geração 1 (baseados em camadas) para os perfis da Geração 2 (Desempenho definido por software) para aproveitar o desempenho aprimorado, o ajuste dinâmico de IOPS e a melhor otimização de custos.
Entendendo as gerações de perfil
Block Storage for VPC evoluiu da Geração 1 (baseada em camadas) para os perfis da Geração 2 (Desempenho definido por software).
- Geração 1 (baseada em níveis)
- Os IOPS são calculados com base no tamanho do volume. Para obter mais informações, consulte Block Storage profiles.
- Geração 2 (SDP)
- IOPS personalizado independente do tamanho do volume. Para obter mais informações, consulte SDP Block Storage profile.
Para obter as informações mais recentes sobre os perfis de armazenamento em bloco e seus recursos, consulte Block Storage profiles.
Antes de Iniciar
Antes de migrar seus volumes, conclua as etapas a seguir.
- Instale a CLI do IBM Cloud.
- Certifique-se de que você tenha acesso
kubectlouocao seu cluster. - Verifique se o complemento VPC Block CSI Driver é da versão 5.0 ou posterior. Para verificar a versão, execute o seguinte IBM MobileFirst Platform Command Line Interface
kubectl get deployment -n kube-system vpc-block-csi-controller -o jsonpath='{.spec.template.spec.containers[0].image}' - Certifique-se de que o complemento VPC Block CSI Driver esteja instalado. Para obter mais informações, consulte Instalação do complemento do driver CSI de bloco VPC.
- Certifique-se de que o complemento VPC Block CSI Driver esteja configurado. Para obter mais informações, consulte Configuração do complemento VPC Block CSI Driver.
- Certifique-se de que o complemento VPC Block CSI Driver esteja em execução. Para obter mais informações, consulte Verificação do complemento do driver CSI de bloco VPC.
- Certifique-se de que o complemento VPC Block CSI Driver esteja atualizado. Para obter mais informações, consulte Atualização do complemento do driver CSI de bloco VPC.
- Documente seus requisitos de desempenho atuais.
- Crie um backup ou um instantâneo de seus dados. Para obter mais informações, consulte Configuração de snapshots com o complemento de cluster Block Storage for VPC.
Identificar volumes para migração
Encontre PVCs que usam perfis de armazenamento em bloco Gen-1.
-
Liste todos os PVCs de armazenamento em bloco em seu cluster.
kubectl get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block -
Obter o ID do volume VPC de um PVC.
PV_NAME=$(kubectl get pvc <pvc-name> -n <namespace> -o jsonpath='{.spec.volumeName}') VOLUME_ID=$(kubectl get pv $PV_NAME -o jsonpath='{.spec.csi.volumeHandle}') echo "Volume ID: $VOLUME_ID"Exemplo de saída
Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
Verificar a configuração atual do volume
-
Visualizar o perfil e a configuração atuais do volume de blocos.
ibmcloud is vol $VOLUME_IDExemplo de saída antes da migração
ID r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4 Name pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344 Status available Attachment state attached Capacity 100 IOPS 3000 Bandwidth(Mbps) 393 Profile 5iops-tier Storage Generation 1 Adjustable IOPS false Busy false -
Observe os seguintes valores na saída. Você os usará para verificar se a migração foi bem-sucedida.
- Perfil:
5iops-tier( Gen-1 ) - Geração de armazenamento:
1 - IOPS ajustável:
false
- Perfil:
Inicie a migração
O processo de migração é executado em segundo plano enquanto o volume permanece conectado ao pod e o aplicativo continua em execução. O IOPS é ajustado automaticamente para os padrões do SDP e o processo normalmente leva de 5 a 15 minutos.
-
Iniciar a migração para o perfil SDP.
ibmcloud is volume-job-create $VOLUME_ID --profile sdp
Monitorar o progresso da migração
-
Verifique o status da tarefa de migração. Se a saída indicar
Status: updatingeBusy: true, a migração estará em andamento. Quando a saída mostrarStatus: availableeBusy: false, a migração estará concluída.ibmcloud is volume-jobs $VOLUME_ID -
Verifique o status do volume.
watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"Exemplo de saída durante a migração
Status updating Busy true Profile 5iops-tier
Verificar a conclusão da migração
-
Confirme se o volume está usando o perfil Gen-2.
ibmcloud is vol $VOLUME_IDExemplo de saída após a migração
ID r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4 Name pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344 Status available Attachment state attached Capacity 100 IOPS 4000 Bandwidth(Mbps) 1000 Profile sdp Storage Generation 2 Adjustable IOPS true Adjustable Capacity States unattached,attached Adjustable IOPS States unattached,attached Busy false -
Verifique os seguintes indicadores de sucesso:
- Perfil:
sdp - Geração de armazenamento:
2 - IOPS ajustável:
true - IOPS: Aumentado (por exemplo, 3000 a 4000)
- Largura de banda: aprimorada
- Perfil:
Atualização dos metadados do site PersistentVolume
-
Atualize os metadados do PV para refletir o perfil Gen-2.
kubectl patch pv $PV_NAME --type='json' -p='[ {"op": "replace", "path": "/spec/storageClassName", "value": "ibmc-vpc-block-sdp"}, {"op": "replace", "path": "/spec/csi/volumeAttributes/profile", "value": "sdp"}, {"op": "replace", "path": "/spec/csi/volumeAttributes/iops", "value": "4000"} ]' -
Verifique a atualização.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Saída esperada
ibmc-vpc-block-sdpO PVC continua a mostrar o nome original StorageClass. Esse comportamento é esperado porque o campo
storageClassNameem um PVC é imutável. O perfil de armazenamento real é determinado pelo PV, que você atualizou nesta etapa.
Valide seu aplicativo
Verifique se o seu aplicativo está funcionando corretamente após a migração.
-
Verifique o status do pod. Verifique se todos os pods estão no estado “
Running”.kubectl get pods -n <namespace> -
Verifique a conexão do volume. Confirme se o volume está montado corretamente.
kubectl describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:" -
Verifique os registros do aplicativo. Procure erros relacionados ao armazenamento ou às operações de E/S.
kubectl logs <pod-name> -n <namespace> --tail=50 -
Teste o endpoint do aplicativo, se aplicável. Verifique se o aplicativo responde corretamente.
curl -I https://<app-endpoint>/health
Crie um Gen-2 StorageClass
Crie um SDP StorageClass para provisionar novos volumes.
-
Crie um arquivo YAML para o StorageClass. Salve a seguinte configuração como
storageclass-sdp.yaml.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ibmc-vpc-block-sdp-general labels: app: ibm-vpc-block-csi-driver provisioner: vpc.block.csi.ibm.io parameters: profile: "sdp" iops: "5000" csi.storage.k8s.io/fstype: "ext4" billingType: "hourly" encrypted: "false" region: "" zone: "" tags: "generation:2,profile:sdp" reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer -
Aplique o StorageClass.
kubectl apply -f storageclass-sdp.yaml -
Verifique se o arquivo “ StorageClass ” foi criado.
kubectl get storageclass ibmc-vpc-block-sdp-general
Ajuste o IOPS e a taxa de transferência para otimizar o desempenho
Após a migração, você poderá ajustar o IOPS e a taxa de transferência (largura de banda) dinamicamente, de acordo com os requisitos da sua carga de trabalho.
- Comece com 5.000 IOPS para cargas de trabalho gerais.
- Use 10.000 IOPS ou mais para bancos de dados.
- Monitore o uso e ajuste com base nas necessidades reais.
Atualização de IOPS
-
Aumente o IOPS para obter maior desempenho.
ibmcloud is volume-update $VOLUME_ID --iops 8000 -
Verifique a atualização do IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS
Atualização da taxa de transferência (largura de banda)
Após a migração para o perfil SDP, os volumes passam a ter uma alocação padrão de largura de banda. É possível aumentar a largura de banda para melhorar a taxa de transferência em cargas de trabalho com uso intensivo de E/S.
-
Verifique a alocação atual de largura de banda.
ibmcloud is vol $VOLUME_ID | grep Bandwidth -
Aumente a largura de banda para obter maior taxa de transferência. Use a opção “
--bandwidth” para especificar a largura de banda desejada em Mbps.ibmcloud is volume-update $VOLUME_ID --bandwidth 2000 -
Verifique a atualização da largura de banda.
ibmcloud is vol $VOLUME_ID | grep BandwidthO valor da largura de banda representa a taxa de transferência máxima, em MB/s, que o volume pode atingir. Valores mais altos de largura de banda proporcionam melhor desempenho em operações que envolvem grande volume de dados.
Resolução de problemas
Migração travada na atualização do status
Se o status da migração permanecer em updating por mais de 30 minutos, conclua as etapas a seguir. Observe que volumes maiores levam mais tempo para migrar e podem permanecer no estado updating por 45 minutos.
-
Verifique os detalhes do trabalho.
ibmcloud is volume-jobs $VOLUME_ID -
Verifique se há erros ou avisos no status do volume.
ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy" -
Aguarde mais 15 minutos, pois volumes grandes demoram mais para serem migrados.
-
Verifique na página de status IBM Cloud se há problemas de serviço de VPC.
-
Se a migração ficar parada por mais de uma hora, entre em contato com o suporte do IBM com o ID do trabalho.
O PVC mostra o antigo StorageClass
Se o PVC ainda fizer referência ao Gen-1 StorageClass após a migração, esse comportamento é esperado e não requer nenhuma ação. O campo PVC storageClassName é imutável. O perfil de armazenamento real é determinado pelo PV, que
você atualizou nas etapas anteriores. A funcionalidade não é afetada.
-
Verifique se o PV (não o PVC) está correto.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Saída esperada
ibmc-vpc-block-sdp
O desempenho não melhorou
Se você não observar um aumento de desempenho após a migração, conclua as etapas a seguir.
-
Verifique a alocação real de IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS -
Verifique o perfil do volume.
ibmcloud is vol $VOLUME_ID | grep Profile -
Aumente a alocação de IOPS.
ibmcloud is volume-update $VOLUME_ID --iops 10000 -
Verifique a atualização.
ibmcloud is vol $VOLUME_ID | grep IOPS
Próximas etapas
Após concluir a migração, considere as próximas etapas a seguir.
- Migre volumes adicionais repetindo este tutorial.
- Monitore o desempenho do volume e ajuste o IOPS conforme necessário.
- Atualize seus modelos de implantação para usar Gen-2 StorageClasses para novos volumes.
- Analise a capacidade e o desempenho do site Block Storage para obter orientação de otimização.