Migrazione dei volumi Block Storage for VPC dai profili Gen-1 a Gen-2
Cloud privato virtuale
Migrate i volumi Block Storage for VPC dai profili di Generazione 1 (basati sui livelli) ai profili di Generazione 2 (prestazioni definite dal software) per sfruttare le prestazioni migliorate, la regolazione dinamica degli IOPS e una migliore ottimizzazione dei costi.
Comprendere le generazioni del profilo
Block Storage for VPC si è evoluto dalla Generazione 1 (basata sui livelli) alla Generazione 2 (Software Defined Performance).
- Generazione 1 (basata sui livelli)
- Le IOPS sono calcolate in base alle dimensioni del volume. Per ulteriori informazioni, vedere Block Storage profiles.
- Generazione 2 (SDP)
- IOPS personalizzati indipendenti dalle dimensioni del volume. Per ulteriori informazioni, vedere il profilo SDP Block Storage.
Per ulteriori informazioni sui profili di archiviazione a blocchi e sulle loro funzionalità, consultare la pagina Block Storage profiles.
Prima di iniziare
Prima di migrare i volumi, completare le seguenti operazioni.
- Installare il sito IBM Cloud CLI.
- Assicurarsi di avere accesso a
kubectloocal cluster. - Verificare che il componente aggiuntivo VPC Block CSI Driver sia la versione 5.0 o successiva. Per verificare la versione, eseguire il seguente comando IBM MobileFirst Platform Command Line Interface
kubectl get deployment -n kube-system vpc-block-csi-controller -o jsonpath='{.spec.template.spec.containers[0].image}' - Assicurarsi che il componente aggiuntivo VPC Block CSI Driver sia installato. Per ulteriori informazioni, vedere Installazione del componente aggiuntivo VPC Block CSI Driver.
- Assicurarsi che il componente aggiuntivo VPC Block CSI Driver sia configurato. Per ulteriori informazioni, vedere Configurazione del componente aggiuntivo VPC Block CSI Driver.
- Assicurarsi che il componente aggiuntivo VPC Block CSI Driver sia in esecuzione. Per ulteriori informazioni, vedere Verifica del componente aggiuntivo VPC Block CSI Driver.
- Assicurarsi che il componente aggiuntivo VPC Block CSI Driver sia aggiornato. Per ulteriori informazioni, vedere Aggiornamento del componente aggiuntivo VPC Block CSI Driver.
- Documentate i vostri attuali requisiti di prestazione.
- Creare un backup o un'istantanea dei dati. Per ulteriori informazioni, vedere Impostazione delle istantanee con il componente aggiuntivo del cluster Block Storage for VPC.
Identificare i volumi da migrare
Trovare i PVC che utilizzano i profili di archiviazione a blocchi Gen-1.
-
Elencare tutti i PVC di archiviazione a blocchi del cluster.
kubectl get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block -
Ottenere l'ID del volume VPC da un 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"Output di esempio
Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
Controllare la configurazione attuale del volume
-
Visualizza il profilo e la configurazione del volume a blocchi corrente.
ibmcloud is vol $VOLUME_IDEsempio di output prima della migrazione
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 -
Si notino i seguenti valori dell'output. Questi dati verranno utilizzati per verificare che la migrazione sia avvenuta con successo.
- Profilo:
5iops-tier( Gen-1 ) - Generazione di storage:
1 - IOPS regolabile:
false
- Profilo:
Avviare la migrazione
Il processo di migrazione viene eseguito in background, mentre il volume rimane collegato al pod e l'applicazione continua a funzionare. Le IOPS vengono regolate automaticamente sui valori predefiniti di SDP e il processo richiede in genere 5-15 minuti.
-
Avviare la migrazione al profilo SDP.
ibmcloud is volume-job-create $VOLUME_ID --profile sdp
Monitorare i progressi della migrazione
-
Verifica lo stato del processo di migrazione. Se l'output indica
Status: updatingeBusy: true, la migrazione è in corso. Quando l'output mostraStatus: availableeBusy: false, la migrazione è completa.ibmcloud is volume-jobs $VOLUME_ID -
Controllare lo stato del volume.
watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"Esempio di output durante la migrazione
Status updating Busy true Profile 5iops-tier
Verifica del completamento della migrazione
-
Confermare che il volume sta utilizzando il profilo Gen-2.
ibmcloud is vol $VOLUME_IDEsempio di output dopo la migrazione
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 -
Verificare i seguenti indicatori di successo:
- Profilo:
sdp - Generazione di storage:
2 - IOPS regolabile:
true - IOPS: aumento (ad esempio, da 3000 a 4000)
- Larghezza di banda: migliorata
- Profilo:
Aggiornamento dei metadati di PersistentVolume
-
Aggiornare i metadati del PV per riflettere il profilo 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"} ]' -
Verificare l'aggiornamento.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Output previsto
ibmc-vpc-block-sdpIl PVC continua a mostrare il nome originale StorageClass. Questo comportamento è previsto perché il campo
storageClassNamedi un PVC è immutabile. Il profilo di archiviazione effettivo è determinato dal PV, che è stato aggiornato in questo passaggio.
Convalidare l'applicazione
Verificare che l'applicazione funzioni correttamente dopo la migrazione.
-
Controllare lo stato della capsula. Verificare che tutti i pod siano nello stato “
Running”.kubectl get pods -n <namespace> -
Verificare il collegamento del volume. Verificare che il volume sia montato correttamente.
kubectl describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:" -
Controllare i log dell'applicazione. Cercare eventuali errori relativi alle operazioni di archiviazione o I/O.
kubectl logs <pod-name> -n <namespace> --tail=50 -
Verificare l'endpoint dell'applicazione, se applicabile. Verificare che l'applicazione risponda correttamente.
curl -I https://<app-endpoint>/health
Creare un sito Gen-2 StorageClass
Creare un SDP StorageClass per il provisioning di nuovi volumi.
-
Creare un file YAML per il sito StorageClass. Salvare la seguente configurazione come
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 -
Applicare il sito StorageClass.
kubectl apply -f storageclass-sdp.yaml -
Verificare la creazione di StorageClass.
kubectl get storageclass ibmc-vpc-block-sdp-general
Regolare gli IOPS e il throughput per ottimizzare le prestazioni
Dopo la migrazione, è possibile regolare dinamicamente gli IOPS e il throughput (larghezza di banda) in base alle esigenze del proprio carico di lavoro.
- Iniziate con 5.000 IOPS per i carichi di lavoro generali.
- Utilizzare 10.000 o più IOPS per i database.
- Monitorare l'utilizzo e regolare in base alle esigenze effettive.
Aggiornamento degli IOPS
-
Aumentate gli IOPS per ottenere prestazioni più elevate.
ibmcloud is volume-update $VOLUME_ID --iops 8000 -
Verifica l'aggiornamento degli IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS
Aggiornamento della velocità di trasmissione (larghezza di banda)
Dopo la migrazione al profilo SDP, ai volumi viene assegnata una larghezza di banda predefinita. È possibile aumentare la larghezza di banda per migliorare la velocità di trasmissione nei carichi di lavoro che richiedono un uso intensivo di I/O.
-
Verifica l'attuale assegnazione della larghezza di banda.
ibmcloud is vol $VOLUME_ID | grep Bandwidth -
Aumentare la larghezza di banda per ottenere una maggiore velocità di trasmissione. Utilizza l'opzione "
--bandwidth" per specificare la larghezza di banda desiderata in Mbps.ibmcloud is volume-update $VOLUME_ID --bandwidth 2000 -
Verificare l'aggiornamento della larghezza di banda.
ibmcloud is vol $VOLUME_ID | grep BandwidthIl valore della larghezza di banda rappresenta la velocità massima in MB/s che il volume è in grado di raggiungere. Valori di larghezza di banda più elevati garantiscono prestazioni migliori nelle operazioni che richiedono un elevato volume di dati.
Risoluzione dei problemi
Migrazione bloccata nello stato di aggiornamento
Se lo stato di migrazione rimane updating per più di 30 minuti, completare i passaggi seguenti. Si noti che i volumi più grandi richiedono più tempo per la migrazione e potrebbero rimanere nello stato updating per
45 minuti.
-
Controllare i dettagli del lavoro.
ibmcloud is volume-jobs $VOLUME_ID -
Controllare lo stato del volume per verificare la presenza di errori o avvisi.
ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy" -
Attendere altri 15 minuti, poiché la migrazione di grandi volumi richiede più tempo.
-
Controllare la pagina di stato di IBM Cloud per i problemi del servizio VPC.
-
Se la migrazione rimane bloccata per più di 1 ora, contattate l 'assistenza IBM indicando l'ID del lavoro.
Il PVC mostra i vecchi StorageClass
Se il PVC fa ancora riferimento a Gen-1 StorageClass dopo la migrazione, questo comportamento è previsto e non richiede alcuna azione. Il campo PVC storageClassName è immutabile. Il profilo di archiviazione effettivo è determinato
dal PV, che è stato aggiornato nei passaggi precedenti. La funzionalità non è compromessa.
-
Verificare che il PV (non il PVC) sia corretto.
kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'Output previsto
ibmc-vpc-block-sdp
Le prestazioni non sono migliorate
Se non si nota un aumento delle prestazioni dopo la migrazione, completare i passaggi seguenti.
-
Controllare l'allocazione effettiva di IOPS.
ibmcloud is vol $VOLUME_ID | grep IOPS -
Controllare il profilo del volume.
ibmcloud is vol $VOLUME_ID | grep Profile -
Aumentare l'allocazione di IOPS.
ibmcloud is volume-update $VOLUME_ID --iops 10000 -
Verificare l'aggiornamento.
ibmcloud is vol $VOLUME_ID | grep IOPS
Passi successivi
Dopo aver completato la migrazione, considerare le seguenti fasi successive.
- Per migrare altri volumi, ripetere l'esercitazione.
- Monitorare le prestazioni del volume e regolare gli IOPS secondo necessità.
- Aggiornare i modelli di distribuzione per utilizzare Gen-2 StorageClasses per i nuovi volumi.
- Esaminare la capacità e le prestazioni di Block Storage per ottenere indicazioni sull'ottimizzazione.