Migration des volumes Block Storage for VPC des profils Gen-1 vers Gen-2

Cloud privé virtuel

Migrez vos volumes Block Storage for VPC des profils de la génération 1 (basés sur les niveaux) vers les profils de la génération 2 (Software Defined Performance) pour bénéficier de performances améliorées, d'un ajustement dynamique des IOPS et d'une meilleure optimisation des coûts.

Comprendre le profil des générations

Block Storage for VPC a évolué de la génération 1 (basée sur les niveaux) à la génération 2 (performance définie par logiciel).

Génération 1 (par paliers)
Les IOPS sont calculés en fonction de la taille du volume. Pour plus d'informations, voir Block Storage profiles.
Génération 2 (SDP)
IOPS personnalisé indépendant de la taille du volume. Pour plus d'informations, voir le profil SDP Block Storage.

Pour obtenir les dernières informations sur les profils de stockage en bloc et leurs fonctionnalités, consultez la page « Profils de stockage en bloc » à l'adresse Block Storage.

Avant de commencer

Avant de migrer vos volumes, suivez les étapes suivantes.

Identifier les volumes à migrer

Recherchez les PVC qui utilisent les profils de stockage de blocs Gen-1.

  1. Listez tous les PVC de stockage de blocs dans votre cluster.

    oc get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block
    
  2. Obtenir l'ID du volume VPC à partir d'un PVC.

    PV_NAME=$(oc get pvc <pvc-name> -n <namespace> -o jsonpath='{.spec.volumeName}')
    VOLUME_ID=$(oc get pv $PV_NAME -o jsonpath='{.spec.csi.volumeHandle}')
    echo "Volume ID: $VOLUME_ID"
    

    Exemple de sortie

    Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    

Vérifier la configuration actuelle du volume

  1. Visualiser le profil et la configuration actuels du volume de blocs.

    ibmcloud is vol $VOLUME_ID
    

    Exemple de résultats avant la migration

    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
    
  2. Notez les valeurs suivantes dans la sortie. Vous les utiliserez pour vérifier que la migration s'est bien déroulée.

    • Profil : 5iops-tier ( Gen-1 )
    • Génération de stockage : 1
    • IOPS réglable : false

Démarrez la migration.

Le processus de migration s'exécute en arrière-plan, tandis que votre volume reste attaché à votre pod et que votre application continue de fonctionner. Les IOPS sont automatiquement ajustés aux valeurs par défaut du SDP, et le processus prend généralement de 5 à 15 minutes.

  1. Lancer la migration vers le profil SDP.

    ibmcloud is volume-job-create $VOLUME_ID --profile sdp
    

Contrôler la progression de la migration

  1. Vérifiez l'état de la tâche de migration. Si la sortie indique Status: updating et Busy: true, la migration est en cours. Lorsque la sortie indique Status: available et Busy: false, la migration est terminée.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. Vérifier l'état du volume.

    watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"
    

    Exemple de sortie pendant la migration

    Status                  updating
    Busy                    true
    Profile                 5iops-tier
    

Vérifier l'achèvement de la migration

  1. Confirmez que le volume utilise le profil Gen-2.

    ibmcloud is vol $VOLUME_ID
    

    Exemple de résultat après la migration

    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
    
  2. Vérifier les indicateurs de succès suivants :

    • Profil :sdp
    • Génération de stockage : 2
    • IOPS réglable : true
    • IOPS : Augmentation (par exemple, de 3000 à 4000)
    • Largeur de bande : améliorée

Mise à jour des métadonnées de PersistentVolume

  1. Mettre à jour les métadonnées PV pour refléter le profil Gen-2.

    oc 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"}
    ]'
    
  2. Vérifiez la mise à jour.

    oc get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    Sortie attendue

    ibmc-vpc-block-sdp
    

    Le PVC continue d'afficher le nom original StorageClass. Ce comportement est attendu car le champ storageClassName d'un PVC est immuable. Le profil de stockage réel est déterminé par le PV, que vous avez mis à jour au cours de cette étape.

Validez votre demande

Vérifiez que votre application fonctionne correctement après la migration.

  1. Vérifiez le statut du pod. Vérifiez que tous les pods sont dans l'état Running.

    oc get pods -n <namespace>
    
  2. Vérifier l'attachement du volume. Confirmez que le volume est monté correctement.

    oc describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:"
    
  3. Vérifier les journaux d'application. Recherchez les erreurs liées aux opérations de stockage ou d'E/S.

    oc logs <pod-name> -n <namespace> --tail=50
    
  4. Tester le point final de l'application, le cas échéant. Vérifiez que l'application répond correctement.

    curl -I https://<app-endpoint>/health
    

Créer un site Gen-2 StorageClass

Créez un SDP StorageClass pour l'approvisionnement de nouveaux volumes.

  1. Créer un fichier YAML pour l' StorageClass. Enregistrez la configuration suivante sous 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
    
  2. Appliquer le site StorageClass.

    oc apply -f storageclass-sdp.yaml
    
  3. Vérifier la création de l' StorageClass.

    oc get storageclass ibmc-vpc-block-sdp-general
    

Ajustez les IOPS et le débit pour optimiser les performances

Une fois la migration effectuée, vous pouvez ajuster dynamiquement les IOPS et le débit (bande passante) en fonction des besoins de votre charge de travail.

  • Commencez par 5 000 IOPS pour les charges de travail générales.
  • Utilisez 10 000 IOPS ou plus pour les bases de données.
  • Contrôler l'utilisation et l'ajuster en fonction des besoins réels.

Mise à jour des IOPS

  1. Augmenter les IOPS pour une meilleure performance.

    ibmcloud is volume-update $VOLUME_ID --iops 8000
    
  2. Vérifiez la mise à jour des IOPS.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

Mise à jour du débit (bande passante)

Après la migration vers le profil SDP, les volumes disposent d'une allocation de bande passante par défaut. Vous pouvez augmenter la bande passante afin d'améliorer le débit pour les charges de travail nécessitant de nombreuses opérations d'E/S.

  1. Vérifiez l'attribution actuelle de la bande passante.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    
  2. Augmentez la bande passante pour un débit plus élevé. Utilisez l'option « --bandwidth » pour définir la bande passante souhaitée en Mbps.

    ibmcloud is volume-update $VOLUME_ID --bandwidth 2000
    
  3. Vérifiez la mise à jour de la bande passante.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    

    La valeur de la bande passante correspond au débit maximal, exprimé en Mo/s, que le volume peut atteindre. Des valeurs de bande passante plus élevées offrent de meilleures performances pour les opérations impliquant un volume important de données.

Traitement des incidents

Migration bloquée dans la mise à jour de l'état

Si l'état de la migration reste updating pendant plus de 30 minutes, effectuez les étapes suivantes. Notez que les volumes plus importants prennent plus de temps à migrer et peuvent rester dans l'état updating pendant 45 minutes.

  1. Vérifiez les détails de l'emploi.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. Vérifiez l'état du volume pour voir s'il y a des erreurs ou des avertissements.

    ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy"
    
  3. Attendez 15 minutes supplémentaires, car la migration des gros volumes prend plus de temps.

  4. Consultez la page d'état IBM Cloud pour connaître les problèmes de service VPC.

  5. Si la migration est bloquée pendant plus d'une heure, contactez le service d'assistance IBM en indiquant l'identifiant de la tâche.

Le PVC montre d'anciennes StorageClass

Si le PVC fait toujours référence à Gen-1 StorageClass après la migration, ce comportement est normal et ne nécessite aucune action. Le champ PVC storageClassName est immuable. Le profil de stockage réel est déterminé par le PV, que vous avez mis à jour dans les étapes précédentes. La fonctionnalité n'est pas affectée.

  1. Vérifier que le PV (et non le PVC) est correct.

    oc get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    Sortie attendue

    ibmc-vpc-block-sdp
    

La performance ne s'est pas améliorée

Si vous ne constatez pas d'augmentation des performances après la migration, suivez les étapes suivantes.

  1. Vérifier l'allocation réelle d'IOPS.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    
  2. Vérifier le profil du volume.

    ibmcloud is vol $VOLUME_ID | grep Profile
    
  3. Augmenter l'allocation d'IOPS.

    ibmcloud is volume-update $VOLUME_ID --iops 10000
    
  4. Vérifiez la mise à jour.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

Etapes suivantes

Une fois la migration terminée, envisagez les étapes suivantes.

  • Migrez d'autres volumes en répétant ce tutoriel.
  • Surveillez les performances du volume et ajustez les IOPS si nécessaire.
  • Mettez à jour vos modèles de déploiement pour utiliser Gen-2 StorageClasses pour les nouveaux volumes.
  • Examiner la capacité et les performances du site Block Storage en vue d'une optimisation.