Les récentes et excellentes vidéos postées par Travis Roberts sur sa chaîne YouTube m’ont motivé de faire des tests sur différents espaces de stockages Azure. Le choix de la forme de stockage sur le Cloud est primordial, car il détermine son prix et ses performances selon vos besoins. D’ailleurs, saviez-vous qu’il existe maintenant un compte de stockage provisionné v2 de type de standard ?
Sa première vidéo, visible ci-dessous, montre les 3 modèles de facturation disponibles sur le compte de stockage Azure :
- Pay-As-You-Go (PAYG)
- Provisionné V1
- et le tout nouveau Provisionné V2 :
Sa seconde vidéo, disponible ci-dessous, vous fournit des conseils pratiques pour assurer un fonctionnement sans souci pour FSLogix, tout en mettant en lumière les mauvaises configurations pouvant entraîner des goulots d’étranglement très frustrants au niveau des performances :
Pour rappel, plusieurs articles sur ce blog ont déjà abordé le sujet du stockage sur Azure :
- Apprivoisez le stockage Azure
- Stockez vos données sur un service PaaS
- Que valent les disques Azure ?
Enfin, Microsoft met à disposition plusieurs pages de documentation très intéressantes sur les stockages Azure et leurs performances, dont voici quelques liens :
- Compte de stockage v1 : calcul du provisionnement
- Compte de stockage v2 : calcul du provisionnement
- Types de disques managés Azure
Dans cet article, je vous propose donc un petit exercice de test de performances de différents espaces de stockages Azure, comprenant à la fois différents types de disques managés et comptes de stockages :
- Disques :
- Premium SSD
- Standard SSD
- Standard HDD
- Premium SSD v2
- Comptes de stockage :
- provisionné v2
- provisionné v1
- PAYG – Optimisé aux transactions
- PAYG – Chaud
- PAYG – Froid
- Etape 0 – Rappel des prérequis
- Etape I – Déploiement de la machine virtuelle Azure
- Etape II – Déploiement des comptes de stockages Azure
- Etape III – Configurations des stockages
- Etape IV – Installation de l’outil de mesure Diskspd
- Etape V – Tests des IOPS des stockages Azure
- Etape VI – Tests des débits des stockages Azure
- Etape VII – Synthèse des résultats
- Etape VIII – Analyse des coûts
Maintenant, il nous reste plus qu’à tester tout cela 😎💪
Etape 0 – Rappel des prérequis :
Peu de prérequis sont nécessaires pour réaliser les tests de performances sur des espaces de stockage Azure :
- Un tenant Microsoft
- Une souscription Azure valide
Dans cet article, nous allons déployer une machine virtuelle Azure, et différents types de stockage. Cela nous permettra de comparer leurs performances, avec pour socle un environnement de test commun.
Etape I – Déploiement de la machine virtuelle Azure :
Afin de tester différents types de disque, j’ai donc déployé une machine virtuelle sur Windows. J’ai choisi une machine virtuelle de type D32s v5 pour disposer de :
- Une puissance de calcul CPU plus que suffisante
- Un nombre maximal d’IOPS très élevé
- Une limitation haute pour le nombre maximal de disques de données
Depuis le portail Azure, commencez par rechercher le service des machines virtuelles :
Cliquez-ici pour créer votre machine virtuelle :
Renseignez tous les champs concernant la souscription Azure et la région adéquates :
Choisissez une image, puis taille de machine virtuelle présente dans la liste :
Renseignez les identifiants du compte administrateur local, cochez la case concernant la licence, puis cliquez sur Suivant :
Dans l’onglet dédié au stockage, ajoutez tous les disques que vous souhaitez comparer, puis cliquez sur Suivant :
Retirer l’adresse IP publique de votre machine virtuelle, puis lancez la validation Azure :
Quand la validation est réussie, lancez le déploiement de votre machine virtuelle de test :
Une fois le déploiement terminé, cliquez ici pour consulter votre machine virtuelle :
Activez les insights de votre machines virtuelles afin de récupérer quelques métriques de performance :
Configurer le stockage de ces insights sur un LOA :
Déployez également le service Azure Bastion pour vous y connecter plus facilement en RDP de façon sécurisée :
Notre machine virtuelle est maintenant déployée, nous pourrons nous y connecter quand le service Azure Bastion sera entièrement déployé.
En attendant, nous allons pouvoir continuer les déploiements des autres stockages Azure.
Etape II – Déploiement des comptes de stockages Azure :
Depuis le portail Azure, commencez par rechercher le service des comptes de stockage :
Cliquez-ici pour créer votre premier compte de stockage :
Nommez ce dernier, spécifiez le SKU voulu, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création de votre premier compte de stockage :
Comme le montre la copie d’écran ci-dessous, j’ai créé plusieurs compte de stockage afin de comparer les éléments suivants :
- Les performances IOPS bande passante
- Les performances de bande passante
- Les prix
J’ai donc configuré les comptes de stockage Azure selon les caractéristiques suivants :
J’ai souhaité créer autant de comptes de stockage que de partage Azure Files afin de ne pas créer d’interférences dans leurs performances :
Voici le compte de stockage avec un Azure File dont le niveau d’accès est optimisé pour les transactions :
Voici le compte de stockage avec un Azure File standard en provisionnement v2 :
Voici le compte de stockage avec un Azure File de type premium :
Voici le compte de stockage avec un Azure File dont le niveau d’accès est chaud :
Voici le compte de stockage avec un Azure File dont le niveau d’accès est froid :
Pour chacun des comptes de stockage, j’ai récupéré le script de connexion en utilisant leur clef d’accès respective afin de monter les partages en lecteurs réseaux sur ma machine virtuelle de test :
La suite se passe directement sur la machine virtuelle de test.
Etape III – Configurations des stockages :
Connectez-vous à votre machine virtuelle de test avec le compte d’un administrateur local :
Une fois connecté à votre session à distance, ouvrez le gestionnaire de disque Windows :
Le gestionnaire de disque Windows vous propose automatiquement de lancer l’initialisation des nouveaux disques de données ajoutés, cliquez sur OK :
Ajoutez un volume simple sur chacun des disques ajoutés :
Nommez au besoin les disques afin de les identifier plus rapidement :
Ouvrez Windows Terminal afin de monter les différents Azure File créés sur les comptes de stockages :
Contrôlez la présence de tous les stockages dans l’explorateur de fichier, encore une fois, renommez-les au besoin :
Etape IV – Installation de l’outil de mesure Diskspd :
DISKSPD est un outil que vous pouvez personnaliser pour créer vos propres charges de travail synthétiques. Nous utiliserons la même configuration que celle décrite ci-dessus pour exécuter des tests d’évaluation. Vous pouvez modifier les spécifications pour tester différentes charges de travail.
Microsoft recommande d’utiliser l’utilitaire DiskSpd (https://aka.ms/diskspd) pour générer une charge sur un système de disques (stockage) et … pour mesurer les performances du stockage et obtenir la vitesse maximale disponible en lecture/écriture et les IOPS du serveur spécifique.
Sur votre machine virtuelle de test, téléchargez l’exécutable via ce lien Microsoft, puis ouvrez l’archive ZIP téléchargée :
Copiez le contenu de l’archive dans un nouveau dossier créé sur le disque C :
L’exécutable se trouve dans le sous-dossier amd64 :
Les 2 étapes suivantes sont dédiées aux tests de performances des disques via l’application Diskspd. Microsoft met d’ailleurs à disposition un protocole similaire de tests juste ici :
- Deux séries de tests sont conseillées pour exploiter le deux caractéristiques suivantes :
- IOPS
- Débit
- Le changement entre ces deux séries se fera au niveau de la taille des blocs.
Etape V – Tests des IOPS des stockages Azure :
Commencez une première salve de tests pour déterminer les IOPS max pour chacun des espaces de stockage.
Ouvrez Windows PowerShell ISE, puis lancez les commandes des test suivantes, une à une ou à la chaîne, en modifiant les paramètres si besoin :
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G D:\diskpsdtmp.dat > IOPS-PremiumSSD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G G:\diskpsdtmp.dat > IOPS-StandardSSD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G H:\diskpsdtmp.dat > IOPS-StandardHDD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G F:\diskpsdtmp.dat > IOPS-PremiumSSDv2.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G V:\diskpsdtmp.dat > IOPS-jlostov2std.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G W:\diskpsdtmp.dat > IOPS-jlostov1prm.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G X:\diskpsdtmp.dat > IOPS-jlostopaygopt.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G Y:\diskpsdtmp.dat > IOPS-jlostopayghot.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b8K -Sh -L -c50G Z:\diskpsdtmp.dat > IOPS-jlostopaygcool.txt
Les arguments utilisés pour diskspd.exe sont les suivants :
- -d900 : durée du test en secondes
- -r : opérations de lecture/écriture aléatoires
- -w100 : rapport entre les opérations d’écriture et de lecture 100%/0%
- -F4 : nombre de threads max
- -o128 : longueur de la file d’attente
- -b8K : taille du bloc
- -Sh : ne pas utiliser le cache
- -L : mesure de la latence
- -c50G : taille du fichier 50 GB (il est préférable d’utiliser une taille de fichier importante pour qu’il ne parte pas dans le cache du contrôleur de stockage)
- E:\diskpsdtmp.dat : chemin du fichier généré pour le test
- > IOPS-PremiumSSD.txt : fichier de sortie des résultats
Une fois tous les tests terminés, retrouvez les fichiers des résultats :
Ouvrez chacun des fichiers de résultats, puis descendez au paragraphe suivant :
Continuons avec les tests sur les débits maximums des espaces de stockage Azure.
Etape VI – Tests des débits des stockages Azure :
Continuez avec une seconde salve de tests pour mesurer les débits maximums des types de disque Azure.
Toujours sur Windows PowerShell ISE, puis lancez les commandes des test suivantes, une à une ou à la chaîne, en modifiant les paramètres si besoin :
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G D:\diskpsdtmp.dat > Throughput-PremiumSSD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G G:\diskpsdtmp.dat > Throughput-StandardSSD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G H:\diskpsdtmp.dat > Throughput-StandardHDD.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G F:\diskpsdtmp.dat > Throughput-PremiumSSDv2.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G V:\diskpsdtmp.dat > Throughput-jlostov2std.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G W:\diskpsdtmp.dat > Throughput-jlostov1prm.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G X:\diskpsdtmp.dat > Throughput-jlostopaygopt.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G Y:\diskpsdtmp.dat > Throughput-jlostopayghot.txt
C:\SPD\amd64\diskspd.exe -d900 -r -w100 -F4 -o128 -b64K -Sh -L -c50G Z:\diskpsdtmp.dat > Throughput-jlostopaygcool.txt
Les arguments utilisés pour diskspd.exe sont les suivants :
- -d900 : durée du test en secondes
- -r : opérations de lecture/écriture aléatoires
- -w100 : rapport entre les opérations d’écriture et de lecture 100%/0%
- -F4 : nombre de threads max
- -o128 : longueur de la file d’attente
- -b64K : taille du bloc
- -Sh : ne pas utiliser le cache
- -L : mesure de la latence
- -c50G : taille du fichier 50 GB (il est préférable d’utiliser une taille de fichier importante pour qu’il ne parte pas dans le cache du contrôleur de stockage)
- E:\diskpsdtmp.dat : chemin du fichier généré pour le test
- > IOPS-PremiumSSD.txt : fichier de sortie des résultats
Une fois tous les tests terminés, retrouvez les fichiers des résultats :
Ouvrez chacun des fichiers de résultats, puis descendez au paragraphe suivant :
Pour plus de clarté, j’ai synthétisé tous mes résultats de IOPS et DEBITS dans l’étape suivante.
Etape VII – Synthèse des résultats :
Voici un tableau synthétique des différentes mesures faites sur 5 essais :
- v1 premier essai à la chaîne (Les IOPS, puis les DEBITS)
- v2 second essai à la chaîne (Les IOPS, puis les DEBITS)
- v3 troisième essai en même temps (Tous les IOPS, puis tous les DEBITS)
- v4 quatrième essai en même temps (Les IOPS, puis les DEBITS)
- v5 dernier essai à la chaîne (Les IOPS, puis les DEBITS)
Les performances IOPS et DÉBITS sont différentes, car les configurations des espaces de stockages sont différentes.
J’ai souhaité comparer les chiffres de Diskspd avec ceux donnés par Azure Monitor.
Pour les disques de la machine virtuelles, nous sommes sur les mêmes chiffres entre les 2 sources :
- IOPS :
- Débits :
Pour les comptes de stockages, c’est plus difficile à vérifier, car seuls des volumes de transactions sont disponibles en tant que métriques Azure :
Mais le compte de stockage de type v1 (premium) affiche bien les mêmes IOPS :
En revanche, pour les débits sur ce même compte de stockage de type v1 (premium), j’avais obtenu via Diskspd des chiffres correspondant à la moitié de ceux donnés par Azure Monitor :
Etape VIII – Analyse des coûts :
Tous les stockages Azure listés dans cet articles fonctionnent sur différentes grilles tarifaires. Azure Pricing Calculator nous donne malgré tout un premier point de comparaison grossier.
Le tableau ci-dessous reprend toutes les options de base des stockages Azure, sans y inclure de transactions, et en prenant que pour paramètre une taille de 1024 Go :
A titre d’information, le disque Premium SSD v2 semble meilleur marché que le disque Premium SSD quand les performances configurées sont les mêmes :
Enfin, ayant testé Diskspd de façon 100% identique sur tous les stockages testés, je trouvais intéressant de vous montrer l’impact financier via le Gestionnaire des coûts Azure.
Diskspd a donc été lancé au total 10 x 15 minutes sur les 9 espaces de stockage Azure, et cela donne les coûts suivants :
Malgré des performances très honorables, les comptes de stockages de type PAYG sont à proscrire si les opérations d’écriture et de lecture sont très fréquentes :
- Coûts sur le compte de stockage froid : les opérations d’écritures représentent 99.99% du coût total !
- Coûts sur le compte de stockage chaud : les opérations d’écritures représentent 99.99% du coût total !
- Coûts sur le compte de stockage optimisé pour les transactions : les opérations d’écritures représentent 99.90% du coût total !
- Le tarif élevé du compte de stockage standard v2 s’explique par la configuration très poussée sur ce dernier
Mais Diskspd n’aura pas été capable de les atteindre :
- Quant aux disques de la machine virtuelles, leurs coûts semblent pour eux très contenus :
Et cela malgré la configuration très performante renseignée sur le disque Premium SSD v2 :
C’est à se demander si les profils FSLogix n’auraient pas leur place sur un disque Premium SSD v2, en lieu et place d’un compte de stockage Premium, mais sans oublier bien sûr d’y ajouter le prix de la machine virtuelle :
Conclusion
En conclusion, les comptes de stockage et les disques managés Azure offrent tous deux des solutions robustes et flexibles pour répondre à divers besoins de performance. Les nouvelles options de SKU permettent de personnaliser les débits et les IOPS, offrant ainsi une adaptabilité précieuse pour des exigences spécifiques. La visualisation des performances via Azure Monitor ajoute une couche de transparence et de contrôle appréciable.
Cependant, au-delà des performances, le coût reste un facteur crucial à considérer. Les frais peuvent rapidement augmenter en fonction du type de stockage et des opérations effectuées. Il est donc essentiel de garder à l’esprit les coûts associés et de toujours se référer aux caractéristiques des disques, aux options de stockage disponibles, ainsi qu’aux fonctionnalités de récupération et de réplication.
Ces éléments sont déterminants pour faire un choix éclairé et optimiser l’utilisation des ressources Azure.