Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Des disques rapides à moitié prix ou presque !

By Mike SparrAug 3, 20205 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Tour d'horizon du nouveau Balanced SSD de Google Cloud Platform

Les architectes et ingénieurs de DoiT international collaborent étroitement avec les principaux fournisseurs cloud pour tester les nouveautés, faire remonter leurs retours et former les autres aux dernières fonctionnalités, en particulier auprès de notre base de clients en pleine croissance qui repousse sans cesse les limites de ces plateformes.

Parmi les améliorations que nous attendions avec impatience figure une nouvelle classe de stockage sur Google Cloud Platform baptisée Balanced SSD. Elle offre les performances du SSD à un tarif attractif : 0,10 $/Go contre 0,17 $/Go pour le SSD standard à l'heure où nous écrivons ces lignes — soit près de 50 % d'économies.

Source : Google

Source : Google

Lorsque nous avons annoncé la disponibilité générale aux nombreux clients de DoiT International qui s'appuient massivement sur le SSD dans leur infrastructure, l'accueil a été extrêmement enthousiaste (voir exemples ci-dessous). Nous avons donc tenu à partager cette excellente nouvelle, ainsi que quelques conseils, avec le reste du monde.

Existe-t-il un bouton "plus d'e-mails comme celui-ci" ?

Je vais voir si nous pouvons l'utiliser, merci !

J'adore recevoir ce genre de notifications proactives. J'aimerais avoir le temps de suivre tous les changements de GCP, mais ce n'est pas le cas.

Prérequis pour activer Balanced SSD sur GKE

L'utilisation de Balanced SSD pour les workloads Kubernetes managés nécessite un module complémentaire de pilote CSI, qui s'active aussi simplement qu'avec la commande suivante.

gcloud beta container clusters update <YOUR-CLUSTER-NAME> --update-addons=GcePersistentDiskCsiDriver=ENABLED  # ajouter la zone ou la région

Note : selon les conditions de service de Google, le pilote CSI n'est pour l'instant pas couvert par un SLA, ce qui nous a semblé important de signaler.

Avertissement : la mise à niveau de votre cluster est une opération bloquante qui peut entraîner une indisponibilité de 10 minutes ou plus.

Si vous prévoyez de mettre à niveau vos workloads Kubernetes, consultez plus loin dans cet article les exemples de modifications à apporter à la StorageClass et aux Volume Claim Templates.

Création de disques persistants zonaux ou régionaux

La documentation de Google explique comment créer des disques via les liens ci-dessous ; il vous suffit d'utiliser le type pd-balanced :

Migrer des disques existants vers Balanced SSD

Une stratégie possible consiste à monter votre nouveau disque Balanced SSD aux côtés de l'existant et à recopier les données ; sinon, voici les étapes pour créer une nouvelle image à partir du snapshot.

1. Snapshot. Si vous changez un disque de démarrage, arrêtez d'abord l'instance. Pour un disque ordinaire, l'arrêt n'est pas nécessaire. Vous pouvez prendre un snapshot pendant l'exécution, mais cela comporte un risque de perte de données.

# arrêter l'instance (optionnel sauf si disque de démarrage ou risque de perte de données)
gcloud compute instances stop <instance name># créer le snapshot
gcloud compute disks snapshot <disk-name> --region <region>

2. Création. Créez un nouveau disque à partir de votre snapshot.

# créer un nouveau disque à partir du snapshot
gcloud compute disks create <disk-name> --type pd-balanced --source-snapshot <snapshot ID> --size <size in GB>

3. Détacher et rattacher. Pour un disque de démarrage, modifiez l'instance et remplacez le disque de démarrage par le nouveau. Pour un disque ordinaire, vous pouvez détacher l'ancien et attacher le nouveau.

# démonter le volume
sudo umount /dev/disk/by-id/google-DEVICE_NAME# détacher l'ancien disque
gcloud compute instances detach-disk <instance name> --disk <old disk> --zone <zone># attacher le nouveau disque
gcloud compute instances attach-disk <instance name> --disk <new disk> --zone <zone># démarrer l'instance (si arrêtée)
gcloud compute instances start <instance name># se connecter en SSH et monter le volume
sudo lsblk            # noter le nouveau disque (sda1, sdb, etc.)
sudo mkdir -p /path/to/mount
sudo mount -o discard,defaults /dev/sdb /path/to/mount

4. Test. Démarrez l'instance et vérifiez que l'OS démarre comme prévu. En cas de problème, vous pouvez arrêter l'instance et revenir à l'ancien disque.

Note : attention, l'option Disk Cloning n'est pas valable ici ; impossible de changer le type de disque via Disk Clone.

Exemple concret

Pour tester cette fonctionnalité, j'ai utilisé un projet sandbox sur lequel j'expérimentais la solution multi-VM MongoDB de Bitnami. J'ai décidé de remplacer un disque persistant standard par un Balanced SSD et de vérifier que mes données étaient toujours là. Voir ci-dessous.

Arrêter l'instance, détacher le disque, créer un nouveau disque, l'attacher, démarrer

Après avoir attaché le nouveau disque créé en type pd-balanced et redémarré l'instance, j'ai utilisé le terminal SSH dans le navigateur pour m'y connecter.

Cliquer sur SSH pour se connecter à l'instance

J'ai ensuite listé les périphériques attachés, monté le nouveau disque Balanced SSD et vérifié que tous mes fichiers MongoDB étaient bien là.

Nouveau disque monté et fichiers vérifiés

Succès ! J'espère que cet exemple vous sera utile et vous évitera de jongler entre plusieurs articles pour tirer parti de ce nouveau produit.

GKE : mise à jour de la StorageClass et des Volume Claims

Si vous exécutez des workloads sur GKE et que le statut du pilote CSI ne vous pose pas de problème, il vous suffit, après la mise à niveau de votre cluster, d'ajouter ou de modifier une StorageClass et de la référencer depuis vos PersistentVolumeClaims au sein de vos workloads.

L'un de mes collègues a testé la mise à niveau d'un projet GKE de démonstration pour Apache Ignite afin d'utiliser le nouveau stockage Balanced SSD ; voici les modifications apportées.

Modifier le provisioner et le type

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: ignite-persistence-storage-class  # <your-name-here>
  namespace: ignite
provisioner: pd.csi.storage.gke.io
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: pd-balanced #Par défaut : pd-standard

Seuls des ajustements mineurs sont nécessaires pour les workloads applicatifs si vous ne déclariez pas encore de StorageClass.

Si vous utilisez déjà une StorageClass personnalisée, aucun changement à prévoir ; sinon, référencez-la dans vos workloads de cette façon

Pour rester informés

Nous poursuivons notre collaboration avec nos partenaires cloud pour leur transmettre les retours du terrain, à partir des cas d'usage et des défis rencontrés chaque jour par nos clients. Nous sommes ravis que Google ait lancé des solutions comme ce Balanced SSD tant attendu.

Restez à l'écoute : d'autres actualités intéressantes sur des produits susceptibles d'aider nos clients actuels et futurs sont à venir.