Apprivoisez le stockage Azure

Le stockage de données est présent dans toute infrastructure IT. Il peut se présenter sous différentes formes selon le besoin. Une base de données ou un serveur de fichiers sont les exemples les plus connus. Mais il est possible d’en avoir besoin sous d’autres formes, comme pour du stockage objet (sauvegardes) ou des services de messageries (transitoires) entre applications.

Quel que soit son type, les fournisseurs de Cloud disposent d’une flexibilité inégalée, car leur offre de stockage peut s’adapter aux besoins dans la forme et dans le temps. Pour cela, les calculateurs de prix, comme Azure Pricing Calculator, sont d’une grande aide pour estimer au mieux le coût du stockage.

Prenons en exemple le compte de stockage Azure. Il s’agit est une ressource régulièrement utilisée car elle couvre justement plusieurs types de stockage :

Voici d’ailleurs quelques articles de ce blog parlant du stockage Azure, ainsi qu’une très bonne vidéo d’introduction en français :

Enfin, cet article s’inscrit dans la continuité des précédents exercices ateliers, dont voici les liens directs :

Afin de vous familiariser avec le compte de stockage Azure, je vous propose de suivre cet exercice dédié. La version originale de Microsoft est également disponible en anglais sur la page GitHub juste ici. Voici la liste des tâches que nous allons réaliser :

  • Tâche 1 : Préparez votre environnement Azure
  • Tâche 2 : Créez votre compte de stockage Azure
  • Tâche 3 : Testez le stockage Azure blob
  • Tâche 4 : Créez un partage de fichiers Azure
  • Tâche 5 : Gérer l’accès au réseau du compte de stockage Azure
  • Tâche 6 : Joignez le compte de stockage à un Active Directory

Je me répète souvent, mais une ressource déployée entraîne un début de facturation de la part de Microsoft. Il est donc important de correctement dimensionner les ressources, et de les supprimer quand elles ne sont plus utilisées.

Rappel des prérequis :

Pour réaliser cet exercice Azure, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure active

Tâche 1 – Préparez votre environnement Azure :

Commencez par télécharger localement les fichiers de scripts Microsoft disponibles juste ici :

Décompressez cette archive ZIP sur votre poste local :

Depuis votre portail Azure, ouvrez Azure Cloud Shell via l’icône situé en haut à droite :

Configurez si besoin les options liées à la création du compte de stockage utilisé pour Azure Cloud Shell :

Attendez que le compte de stockage soit créé et que la ligne de commande d’Azure Cloud Shell vous soit accessible :

Dans la barre d’outils d’Azure Cloud Shell, cliquez sur l’icône pour téléverser des fichiers vers le compte de stockage :

Commencez par téléverser le premier fichier présent dans l’archive précédemment décompressée :

\Allfiles\Labs\07\az104-07-vm-template.json

Puis téléversez le second fichier suivant :

\Allfiles\Labs\07\az104-07-vm-parameters.json

Copiez la commande suivante en modifiant si besoin la région Azure souhaitée :

$location = 'West Europe'

Faites-en de même pour une seconde variable, en modifiant si besoin le nom du groupe de ressources à créer :

$rgName = 'az104-07-rg0'

Exécutez la commande suivante dans votre Azure Cloud Shell pour créer le groupe de ressources qui hébergera la machine virtuelle créée juste après :

New-AzResourceGroup -Name $rgName -Location $location

Attendez quelques secondes, puis constatez le succès de la création :

Exécutez ensuite la commande suivante pour déployer une machine virtuelle grâce aux deux fichiers précédemment téléversés :

New-AzResourceGroupDeployment `
   -ResourceGroupName $rgName `
   -TemplateFile $HOME/az104-07-vm-template.json `
   -TemplateParameterFile $HOME/az104-07-vm-parameters.json `
   -AsJob

Spécifiez un mot de passe pour le compte de l’administrateur local de votre Windows Server :

La création de la machine est alors effectuée en tâche de fond. Il n’est donc pas nécessaire d’attendre que le déploiement se termine :

Fermez le volet d’Azure Cloud Shell.

Suivez l’avancement du déploiement de votre VM depuis le groupe de ressources :

Quelques minutes plus tard, retrouvez les ressources créées dans la page principale du groupe de ressources :

Recherchez dans vos machines virtuelles celle créée à l’instant par le script :

Afin de préparer une connexion future, cliquez-ici pour déployer le service Azure Bastion :

Cliquez-ici pour déployer un Azure Bastion en utilisant une configuration par défaut :

Le déploiement d’Azure Bastion a commencé, inutile d’attendre la fin de son déploiement. Nous allons pouvoir nous intéresser au compte de stockage Azure.

Tâche 2 – Créez votre compte de stockage Azure :

Depuis le portail Azure, recherchez puis sélectionnez le service comptes de stockage :

Cliquez sur Créer pour ajouter un second compte de stockage :

Sur le premier onglet, commencez par créer un nouveau groupe de ressources Azure :

Donnez à votre compte de stockage un nom, unique dans tout l’environnement Azure :

Prenez du temps pour passer en revue les options disponibles, puis cliquez sur Suivant :

Prenez du temps pour passer en revue les options disponibles, puis cliquez sur Suivant :

Prenez du temps pour passer en revue les options disponibles, puis cliquez sur Suivant :

Prenez du temps pour passer en revue les options disponibles, puis cliquez sur Suivant :

Prenez du temps pour passer en revue les options disponibles, puis cliquez sur Valider :

Une fois la validation terminée, lancez la création de votre compte de stockage :

Environ une minute plus tard, la création de votre compte de stockage est terminée. Cliquez-ici pour accéder directement à votre compte de stockage :

Dans la section Redondance, notez l’emplacement secondaire, présent grâce à l’option GRS laissée lors de la création de votre compte de stockage :

Un compte de stockage vide ne coûte rien. Le volume de données et les transactions vont générer les coûts.

Tâche 3 – Testez le stockage Azure blob :

Cliquez sur Conteneurs, puis cliquez sur Créer pour en créer un nouveau :

Créez un conteneur blob avec les options suivantes, puis cliquez sur Créer :

Dans la liste des conteneurs blob, cliquez sur le conteneur az104-07-container nouvellement créé :

Cliquez sur Téléverser pour déposer un fichier depuis votre ordinateur vers votre conteneur :

Retrouvez les fichiers de l’archive décompressée, puis choisissez le fichier LICENCE :

Dans l’onglet Avancée, ajoutez le dossier licenses, puis cliquez sur Téléverser :

Environ une seconde plus tard, Azure vous confirme le succès de l’envoi du fichier et la création du dossier :

Retrouvez sur la page le dossier nouvellement créé, puis cliquez dessus :

Dans ce dossier, constatez le tier utilisé par le fichier LICENSE précédemment téléversé :

Cliquez sur le fichier LICENSE, puis copiez l’URL du blob comme ceci :

Ouvrez un navigateur privé depuis votre poste local :

Collez l’URL du blob copiée précédemment dans la barre d’adresse, puis constatez le message erreur d’accès, dû à un manque d’autorisations :

Afin de pouvoir accéder au blob, générez un accès SAS, en y indiquant une date de validité supérieure à la date du jour :

Copiez l’URL générée par votre accès SAS de votre blob LICENSE :

Voici en exemple URL avec mon accès SAS :

https://jlosto2.blob.core.windows.net/az104-07-container/licenses/LICENSE?sp=r&st=2023-04-25T19:34:42Z&se=2023-04-27T03:34:42Z&spr=https&sv=2021-12-02&sr=b&sig=YQUFaXmpBJhi7E3bt5WmmuF%2FmszjQ29UP46YS9747zU%3D

Rouvrez à nouveau un navigateur privé depuis votre poste local :

Collez l’URL précédemment copiée, puis constatez le téléchargement ou l’affichage du fichier LICENSE :

Ouvrez le fichier LICENSE si celui-ci ne s’est pas affiché :

Dans un autre registre, un serveur de fichiers est aussi remplaçable par un service Azure PaaS. Déjà cité plus haut, l’article Stockez vos données sur un service PaaS vous explique également quelques notions importantes.

Tâche 4 – Créez un partage de fichiers Azure :

Sur votre compte de stockage, cherchez le menu Partages de fichiers afin d’en créer un nouveau :

Nommez ce partage de fichiers az104-07-share conservant les propriétés par défaut :

Une fois créé, cliquez sur votre partage de fichiers :

Cliquez sur le bouton Connecter :

Sur la partie de droite, choisissez de vous connecter via la clef du compte de stockage, puis affichez le script de connexion afin de le copiez dans votre presse-papier :

Retournez sur la machine virtuelle créée précédemment, puis allez dans le menu suivant :

Collez le script précédemment copié, puis lancez l’exécution du traitement :

Attendez environ deux minutes, puis constatez sa bonne exécution :

Ce script lancé à distance sur la machine virtuelle a monté un lecteur réseau Z. La connexion est passée par l’URL publique via une session HTTPS.

Copiez les deux lignes de code ci-dessous dans votre presse-papier :

New-Item -Type Directory -Path 'Z:\az104-07-folder'

New-Item -Type File -Path 'Z:\az104-07-folder\az-104-07-file.txt'

Encore une fois, collez ce code, puis lancez l’exécution du traitement :

Attendez environ deux minutes, puis constatez sa bonne exécution :

Ce second script lancé à distance a créé dans le partage un dossier et un fichier txt depuis la machine virtuelle.

Retournez sur le partage de fichiers depuis le compte de stockage Azure :

Cliquez sur le dossier nouvellement créé :

Constatez la bonne présence du fichier txt :

Intéressons-nous maintenant à la configuration réseau de votre compte de stockage. Les URLs précédemment utilisées pour le blob et le partage de fichiers reprenaient l’accès publique de votre compte de stockage.

Un filtrage réseau est possible pour bloquer l’accès en plus de l’authentification déjà en place.

Tâche 5 – Gérer l’accès au réseau du compte de stockage Azure :

Sur votre compte de stockage, activez la restriction firewall à des réseaux virtuels connus, ainsi que votre adresse IP publique comme ceci :

Ouvrez à nouveau un navigateur internet privé :

Collez l’URL précédemment générée pour l’accès SAS de votre blob dans la barre d’adresse :

https://jlosto2.blob.core.windows.net/az104-07-container/licenses/LICENSE?sp=r&st=2023-04-25T19:34:42Z&se=2023-04-27T03:34:42Z&spr=https&sv=2021-12-02&sr=b&sig=YQUFaXmpBJhi7E3bt5WmmuF%2FmszjQ29UP46YS9747zU%3D

Constatez le téléchargement ou l’affichage du fichier LICENSE :

Ouvrez Azure Cloud Shell via l’icône situé en haut à droite du portail Azure :

Reprenez la commande suivante et ajoutez-y l’URL précédemment générée pour l’accès SAS de votre blob :

Invoke-WebRequest -URI '[blob SAS URL]'

Cela donne dans mon cas la commande suivante :

Invoke-WebRequest -URI 'https://jlosto2.blob.core.windows.net/az104-07-container/licenses/LICENSE?sp=r&st=2023-04-25T19:34:42Z&se=2023-04-27T03:34:42Z&spr=https&sv=2021-12-02&sr=b&sig=YQUFaXmpBJhi7E3bt5WmmuF%2FmszjQ29UP46YS9747zU%3D'

Exécutez la commande, puis constatez l’erreur dû un blocage du firewall configuré précédemment sur le compte de stockage :

Retournez sur la configuration réseau et firewall de votre compte de stockage, puis ajoutez un réseau virtuel :

Sélectionnez le réseau virtuel et le sous-réseau rattaché à la machine virtuelle créée :

Attendez quelques secondes que le service endpoint s’active sur le sous-réseau sélectionné :

Une fois activé, ajoutez-le à la configuration :

N’oubliez pas de sauvegarde la configuration réseau du compte de stockage :

Si votre réseau virtuel n’apparait pas, exécutez les deux commandes PowerShell suivantes sous Azure Cloud Shell and modifiant les variables :

Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Set-AzVirtualNetworkSubnetConfig -Name "mysubnet" -AddressPrefix "10.0.0.0/24" -ServiceEndpoint "Microsoft.Storage.Global" | Set-AzVirtualNetwork
$subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"
Add-AzStorageAccountNetworkRule -ResourceGroupName "myresourcegroup" -Name "mystorageaccount" -VirtualNetworkResourceId $subnet.Id

Nous avons vu certaines restrictions possibles pour bloquer des connexions réseaux non souhaitées. Dans la prochaine tâche, nous allons voir comment joindre un compte de stockage à un domaine AD.

Tâche 6 – Joindre le compte de stockage à un Active Directory :

A l’heure actuelle, il existe 3 méthodes de joindre un compte de stockage Azure à un domaine. Dans notre exercice, nous utiliserons la première méthode, grâce à la machine virtuelle créée précédemment :

Connectez-vous à la machine virtuelle créée précédemment via le script en reprenant comme identifiant Student, et comme mot de passe celui renseigné lors de la création de la VM :

Une fois connecté à la machine virtuelle, ajoutez des rôles à votre Windows Server :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cochez les deux rôles AD DS et DNS, puis cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Installer :

Attendez environ deux minutes que l’installation des 2 rôles se termine :

Cliquez-ici pour promouvoir votre machine virtuelle en tant que contrôleur de domaine :

Créez une nouvelle forêt et nommez votre domaine AD comme vous le souhaitez, puis cliquez sur Suivant :

Créez un mot de passe pour la DSRM, puis cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Suivant :

Cliquez sur Installer :

Cliquez sur Fermer puis fermez l’onglet Azure Bastion :

Copiez l’adresse IP privée de votre machine virtuelle :

Sur le réseau virtuel de votre VM, renseignez l’adresse IP privée dans la section DNS :

Dans la section des partages de fichiers de votre compte de stockage, constatez l’absence de configuration Active Directory :

Rouvrez une session sur votre machine virtuelle via Azure Bastion :

Attendez la fin de l’ouverture de session plusieurs minutes :

Dans Server Manager, désactivez la sécurité renforcée d’Internet Explorer :

Désactivez la sécurité pour les utilisateurs ayant un profil administrateur :

Ouvrez Microsoft Edge :

Ouvrez l’URL suivante :

https://github.com/Azure-Samples/azure-files-samples/releases

Téléchargez l’archive ZIP contenant le script de jointure AD :

Décompressez l’archive ZIP :

Décompressez cette archive dans un dossier à la racine du disque C :

Ouvrez Windows PowerShell ISE :

Positionnez-vous dans le dossier contenant l’archive extraite :

Commencez par exécutez les commandes suivantes pour préparer votre environnement

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

.\CopyToPSPath.ps1

Validez toutes les alertes de sécurité :

Installez les modules nécessaires à la configuration :

install-Module -Name Az
Import-Module -Name AzFilesHybrid

Validez toutes les alertes de sécurité :

Patientez plusieurs minutes avant l’installation complète des modules AZ :

Fermez puis rouvrez la session PowerShell si celui-ci vous le demande :

Connectez à vous à votre compte Azure AD :

Connect-AzAccount

Renseignez les variables suivantes depuis la page de votre compte de stockage Azure :

$SubscriptionId = "<your-subscription-id-here>"
$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"

Select-AzSubscription -SubscriptionId $SubscriptionId 

Join-AzStorageAccount `
        -ResourceGroupName $ResourceGroupName `
        -StorageAccountName $StorageAccountName

Le résultat de la commande devrait être le suivant :

En cas de souci, la commande de debug peut vous aider à comprendre ce qui se passe :

Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

Enfin vérifiez la bonne jointure de votre compte de stockage à Azure Active Directory avec le changement de statut en Configured :

Il reste bien évidemment quelques étapes pour finaliser la configuration afin que les utilisateurs puissent accéder à un partage de fichier via leur compte AD :

Conclusion

Dans cet atelier dédié au stockage et conçu par Microsoft, vous avez :

  • Préparé votre environnement Azure
  • Créé votre compte de stockage Azure
  • Testé le stockage Azure blob
  • Créé un partage de fichiers Azure
  • Géré l’accès au réseau du compte de stockage Azure
  • Joint le compte de stockage à un Active Directory

J’espère que toutes opérations vous ont montré la facilité de déploiement d’un compte de stockage Azure. Enfin, pensez à supprimer les ressources une fois cet atelier terminé afin d’éviter les surcoûts inutiles :

Suppression des ressources Azure :

Que valent les disques Azure ?

Microsoft vient d’annoncer il y quelques jours la disponibilité générale des disques Ultra dans plusieurs régions Azure, dont Suisse Nord. Depuis quelques mois déjà, un nouveau type de disque, appelé Premium SSD v2, a également fait son apparition sur Azure.

Au total, 5 types de disque managé sont disponibles pour les machines virtuelles Azure. SLA, IOPS, débit, taille, région ou encore sauvegarde sont quelques-uns des paramètres à prendre en compte lors de ce choix.

Dans cet article, nous allons aborder quelques points définissant les différents types de disque Azure, et nous ferons également quelques tests de performances IOPS et Débit. Durant mes tests, j’ai relevé des valeurs de latence très hautes. Je ne pense pas qu’elles représentent la réalité, et c’est pour cela qu’elles vous seront affichées mais pas commentées.

Compte-tenu de mes possibilités, à l’heure où ces lignes sont écrites, les tests ne porteront que sur les 4 types de disque suivants :

  • Premium SSD
  • Standard SSD
  • Standard HDD
  • Ultra disk

A quoi correspondent les IOPS d’un disque ?

IOPS (input/output operations per second en anglais, opérations d’entrée-sortie par seconde) est une unité de mesure commune en informatique. Elle est utilisée dans les tests de performance de supports de stockage tels les disques durs (HDD), solid-state drives (SSD) et réseaux de stockage SAN.

Wikipédia

Une courte vidéo de John vaut mieux qu’un long discours ???? :

A quoi correspond le débit d’un disque ?

Taux de transfert (ou débit) : quantité de données pouvant être lues ou écrites sur le disque par unité de temps. Il s’exprime en bits par seconde.

CommentCaMarche.net

Merci encore une fois à John pour ses vidéos :

Quelles sont les tailles disponibles pour un disque Azure ?

Azure vous propose de créer des disques très petits ou très grands. La plupart des types de disque peuvent aller jusqu’à 64 Tio :

Quels sont les coûts d’un disque Azure ?

Il existe deux principaux coûts aux disques managés d’Azure. La taille du disque et les transactions influent sur le montant mensuel :

  • Taille du disque : Un disque managé Azure est facturé toutes les heures au niveau supérieur le plus proche de sa taille. Autrement dit, un disque de 120 Go coûte autant qu’un disque de 128 Go, que la machine virtuelle soit allumée ou non.
  • Transaction : Sont appelées transaction, les lectures, les écritures, … effectuées par le disque, elles sont facturées par paquet de 10 000 transactions. Certains types de disque, comme les disques Premium ou Ultra, incluent le coût des transactions dans leur tarification les coûts sont alors plus prévisibles et mieux maîtrisés.

Voici une brève comparaison tarifaire pour un disque de 128 Go en Europe de l’Ouest, selon Azure Pricing Calculator :

  • Premium SSD : 20.13 CHF / mois
  • Premium SSD v2 : 11.49 CHF / mois
  • Standard SSD : 12.63 CHF / mois
  • Standard HDD : 6.39 CHF / mois
  • Ultra disk : 88.73 CHF / mois

Pourquoi le type de disque influe sur la SLA d’une machine virtuelle Azure ?

Azure est découpé en centaines de services. Chaque service dispose de sa propre SLA, elle-même calculée selon des paramètres précis.

Certains services proposent différents niveaux de performances et de fonctionnalités. Ces changement influent souvent sur l’architecture ou les composants physiques. Cela joue naturellement sur la SLA. Microsoft met à disposition une liste des SLA par service, régulièrement mise à jour.

Derrière chaque disque d’Azure se trouve une technologie de stockage. Microsoft se base donc sur cette SLA pour calculer la SLA de la machine virtuelle :

Quel scénario pour quel type de disque ?

Le coût du disque reste un facteur important pour une machine virtuelle. Néanmoins, Microsoft conseille un ou plusieurs types de disque, selon le rôle que celle-ci doit jouer :

Pourquoi les machines virtuelles Azure ont-elles un maximum d’IOPS ?

Quand vous sélectionnez une taille de machine virtuelle lors de sa création, une colonne concerne la performance des disques et doit attirer votre attention :

Les machines virtuelles d’Azure ont donc elles aussi un plafond IOPS :

Ce nombre maximal d’IOPS ne garantit en rien la performance de vos disques rattachés, mais agira en goulet d’étranglement si la puissance demandée par vos disques est supérieure à cette limite :

Etape 0 – Rappel des prérequis :

Peu de prérequis sont nécessaires pour réaliser les tests de performances des disques Azure :

  • Un tenant Microsoft
  • Une souscription Azure valide

Dans cet article, nous allons déployer une machine virtuelle Azure, avec différents types de disque. Cela nous permettra de comparer leurs performances.

Etape I : Enregistrement de la souscription Azure :

Tous les types de disque sont accessibles, à l’exception du nouveau type de disque Premium SSD v2. A l’heure où ces lignes sont écrites, un enrôlement de votre souscription Azure est encore nécessaire pour déployer ces derniers.

Cliquez-ici pour accéder au formulaire Microsoft :

Une fois le formulaire rempli, il ne vous restera qu’à attendre un retour de la part de Microsoft pour tester ce nouveau type de disque.

En attendant, rien ne vous empêche de continuer les étapes de cet article pour tester les autres types.

Etape II : Déploiement de la machine virtuelle Azure

Afin de tester différents types de disque, j’ai déployé une seule machine virtuelle sur Windows Server. J’ai choisi une machine virtuelle de type D8s v5 pour disposer de :

  • Une puissance de calcul CPU suffisante
  • Un nombre maximal d’IOPS élevé
  • Une limitation haute pour le nombre maximal de disques de données

Dans l’onglet des disques :

  • Pensez à cocher la case de comptabilité Ultra disque.
  • Pour les tests, tous les disques ont une taille proche pour comparer des performances de même tranche.
  • Quelques gigas seulement les séparent pour les identifier plus facilement par leur taille.
  • J’ai ajouté un second disque type Premium SSD, de plus grande capacité que les autres, pour mesurer l’impact sur les performances selon la taille.
J’ai aussi retiré le cache d’hôte pour ne pas avoir de variation de résultats.

Retirez l’adresse IP publique si vous utilisez comme moi le service Azure Bastion :

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 :

Configurez au besoin les performances de votre Ultra disk :

J’ai configuré ces valeurs pour tester les limites liées à ma machine virtuelles. Attention à la consommation Azure qui peut s’envoler très vite ???????? :

Déployez également le service Azure Bastion pour vous y connecter plus facilement :

Attendez quelques minutes la fin du déploiement d’Azure Bastion, puis connectez-vous à votre machine virtuelle de test avec le compte d’un administrateur local :

Etape III – Configurations des disques de données :

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 disques de données ajoutés, cliquez sur OK :


Ajoutez un volume simple sur chacun des disques ajoutés :

Conservez toutes les options de bases pour chaque volume créé :

Contrôlez la présence des 5 partitions dans l’explorateur de fichier, 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 Learn

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.

Windows OS Hub

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 meilleur des deux caractéristiques :
    • 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 disques Azure :

Commencez une première salve de tests pour déterminer les IOPS maximums sur chacun des disques.

Ouvrez le programme de ligne de commande, puis positionnez-vous dans le dossier de l’exécutable Diskspd :

Lancez les commandes des test suivantes, une à une ou à la chaîne, en modifiant les paramètres si besoin :

diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L E:\diskpsdtmp.dat > IOPS-PremiumSSD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L F:\diskpsdtmp.dat > IOPS-StandardSSD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L G:\diskpsdtmp.dat > IOPS-StandardHDD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L H:\diskpsdtmp.dat > IOPS-PremiumSSD1024.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L I:\diskpsdtmp.dat > IOPS-UltraDisk.txt

Les arguments utilisés pour diskspd.exe sont les suivants :

  • -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)
  • -d120 : 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
  • E:\diskpsdtmp.dat : chemin du fichier généré pour le test
  • > IOPS-PremiumSSD.txt : fichier de sortie des résultats

En attendant la fin du traitement, ouvrez Resource Monitor et constatez la charge maximale du disque :

Une fois tous les tests terminés, retrouvez les fichiers des résultats dans le même dossier que l’exécutable :

Ouvrez chacun des fichiers de résultats, puis descendez au paragraphe suivant :

Pour plus de clarté, j’ai synthétisé tous mes résultats IOPS dans le tableau ci-dessous :

Etape VI – Tests débits des disques :

Continuez avec une seconde salve de tests pour mesurer les débits maximums des types de disque Azure.

Ouvrez le programme de ligne de commande si vous l’aviez fermé, puis repositionnez-vous dans le dossier de l’exécutable Diskspd :

Lancez les commandes de tests suivantes, une à une ou à la chaîne, en modifiant leurs paramètres si besoin :

diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L E:\diskpsdtmp.dat > Throughput-PremiumSSD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L F:\diskpsdtmp.dat > Throughput-StandardSSD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L G:\diskpsdtmp.dat > Throughput-StandardHDD.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L H:\diskpsdtmp.dat > Throughput-PremiumSSD1024.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L I:\diskpsdtmp.dat > Throughput-UltraDisk.txt

Les deux paramètres ayant changés rapport aux commandes de test IOPS sont :

  • -b8K : taille du bloc
  • > Throughput-PremiumSSD.txt : fichier de sortie des résultats

Une fois les tests débits terminés, retrouvez les fichiers dans le même dossier que les IOPS :

Ouvrez chacun des fichiers de résultats de débits et compilez-les dans un tableau :

Etape VII – Analyse des résultats IOPS / Débits :

Après analyse des résultats de chaque type de disque, comparez-les à la documentation Microsoft : on retrouve bien des valeurs approchantes pour les IOPS et les débits. Voici quelques explications :

Premium SSD :

  • Premium SSD P10 : 3548 IOPS – 162 Mio/sec
  • Premium SSD P30 : 5099 IOPS – 194 Mio/sec

Le nombre d’IOPS et le débit garantit augmentent par parlier, en rapport avec la taille du disque.

  • A partir de 4 Gio et jusqu’à 512 Gio, le mode Burst est disponible et s’active automatiquement selon la charge, comme le montre le test réalisé.
  • A partir de 1024 Gio, les performances de base sont bien meilleures, mais le mode Burst s’active uniquement sur demande.

Voici d’ailleurs l’excellente vidéo de John sur le fonctionnement du mode Burst dans le temps :

Durant le premier test, le disque Premium SSD d’1 Tio n’a pas utilisé le mode Burst et est resté aux alentours de 5000 IOPS et 200 Mio/sec, soit les valeurs provisionnées sur un disque P30.

L’activation du burst à la demande doit se faire sur le disque, uniquement lorsque ce dernier est détaché ou quand la machine virtuelle est désallouée, donc éteinte.

Pour effectuer un test de burst sur le disque P30, éteignez votre machine virtuelle et cochez la case suivante sur le disque, puis rallumez-là :

Voici les résultats IOPS / débits du disque Premium SSD d’un 1 Tio avec le mode burst à la demande :

  • Premium SSD P30 + Burst : 19321 IOPS – 967 Mio/sec

Le test de débit est bon, mais la valeur IOPS aurait dû se rapprocher des 30 000 IOPS. L’écart s’explique à cause de la machine d8s_v5, qui vient limiter les performances du mode burst du disque.

Cela n’empêche pas d’avoir de performances très honorables. Passons maintenant au disques Standard SSD.

Standard SSD :

Je trouve le test de débit un peu faible comparé au tableau Microsoft :

  • Standard SSD E10 : 600 IOPS – 38 Mio/sec

Standard HDD :

Pour celui-ci, les résultats des tests sont cohérents avec la documentation Microsoft :

  • Standard HDD S10 : 543 IOPS – 35 Mio/sec

Rappel important : Pour les disques de type standard HDD, chaque opération a un impact sur la facturation.

Ultra disk :

Ce type de disque apporte le plus de flexibilité car ils sont disponibles à partir de 4 Gio et jusqu’à 64 Tio. De plus, la SLA qui les couvre est très élevée : 99.99 %.

Comme le montre l’écran de paramétrage de notre test, nous pouvons jouer avec les limites débit et IOPS selon des besoins très précis, et cela sans aucun redémarrage de la machine virtuelle.

Les limites maximales des IOPS et des débits sont très hautes, comme le montre le tableau ci-dessous :

Rappel important : Pour les disques Ultra, ces options ont un lourd impact sur la facturation.

Le test d’IOPS sur le disque ultra a plafonné à 20 000 IOPS car nous avons là encore été bridé par la limite d’IOPS de la machine virtuelle d8s_v5. Le tableau ci-dessous nous affiche cette limite et le mode burst possible :

Les machines virtuelles les plus puissantes acceptent jusqu’à 80 000 IOPS, ce qui reste en dessous de la limite maximale des IOPS des plus puissants disques ultra. C’est pour cela que ces derniers peuvent être utilisés en tant que disques partagés, pour prendre en charge plusieurs machines virtuelles.

Conclusion :

Je peux déjà commencer par vous dire que j’aurais bien aimé tester un disque Premium SSD v2 ????. Cela devrait arriver sous peu, je vous ferai alors une mise à jour de cet article.

Cela dit, je pense que les performances et les usages de ces derniers sont proches des disques Ultra. A ce titre, je pense que la stratégie de Microsoft est bien de démocratiser la performance et la customisation des disques selon les besoins, avec un prix bien plus attractif ✌️????

Edit :

Seulement quelques jours après la publication de mon article, j’ai reçu un avis favorable de la part d’un Product Manager de chez Microsoft pour tester les disques Premium SSD v2, sur une souscription Azure de mon tenant, en disponibilité générale depuis octobre 2022.

Je suis parti donc sur un disque Premium SSD v2 avec les caractéristiques suivantes :

Pour rappel, voici quelques caractéristiques maximales pour un disque Premium SDD v2 :

  • Taille maximale : 65 536 Gio
  • IOPS provisionnées : 80 000 IOPS
  • Débit provisionné : 1200 Mio / Sec

Afin d’atteindre les performances maximales de mon disque, j’ai créé une machine virtuelle D32s v5, qui dispose des limites suivantes :

Grâce à Diskspd et aux commandes suivantes :

diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b8K -Sh -L E:\diskpsdtmp.dat > IOPS-PremiumSSDv2.txt
diskspd.exe –c50G -d120 -r -w100 -F4 -o128 -b64K -Sh -L E:\diskpsdtmp.dat > Throughput-PremiumSSDv2.txt

Cela m’a permis de compléter mes tableaux de performances :

Il s’agit sans aucun doute d’un type de disque flexible aux performances incroyables. Voici un rappel du prix bien moins chère qu’un Ultra disk ????

Attention aux limitations encore présentes sur le disques Premium SSD v2.

Stockez vos données sur un service PaaS

Azure propose depuis longtemps plusieurs méthodes efficaces pour le stockage de donnée dans le Cloud. Disponibles sous différentes formes, le compte de stockage est une méthode PaaS (Platform As A Service) simple, rapide à déployer et pouvant correspondre à de nombreux scénarios d’architecture.

Il y a tant de choses à dire sur le compte de stockage d’Azure, qu’un seul article ne suffira pas. Dans cet article, nous allons donc parcourir les principales fonctionnalités du compte de stockage à travers différentes questions que l’on peut naturellement se poser.

Quels sont les principaux bénéfices du compte de stockage Azure ?

Il est facile de résumer les principaux avantages à utiliser un compte de stockage Azure :

  • Résilient : comme beaucoup de services Azure, celui-ci affiche une haute disponibilité grâce à différents types de redondance (LRS/ZRS/GRS). De plus, les outils de sauvegarde natifs d’Azure s’y applique également.
  • Sécurisé : toute donnée sur un compte de stockage Azure est systématiquement chiffrée. Ce chiffrage est aussi gérable avec une clef CMK.
  • Adaptatif : la flexibilité est une composante majeure du compte de stockage Azure grâce à une tarification ajustable selon la fréquence et les besoins en taille et en performances.
  • Accessible : les données stockées sont accessibles depuis n’importe où dans le monde via le protocole HTTPS. Microsoft fournit également des bibliothèques clientes dans de nombreux langages, notamment .NET, Java, Node.js, Python, PHP, Ruby, Go.

Quels services de stockage sont alors possibles sur un Azure Storage Account ?

Un compte de stockage Azure propose 4 différents services de stockage, selon la nature même des objets à stocker :

  • Objets blob : stockage objet hautement scalable pour les données texte ou binaires.
  • Partage de fichier : partage de fichiers classique géré via le protocole SMB.
  • Files d’attente : outil de messagerie entre différents composants d’application.
  • Tables : magasin NoSQL pour le stockage sans schéma de données structurées.

Quels types de compte de stockage Azure sont disponibles ?

Plusieurs types de comptes de stockage sont proposés par Azure. Il faut en retenir que l’utilisation de tel ou tel type de compte de stockage dépend de la performance désirée et du mode de réplication :

TypeServices disponiblesOptions de redondance disponibles
Usage général v2 StandardBlob, File d’attente, Table et Azure FilesLRS
ZRS
GRS
RA-GRS
GZRS
RA-GZRS
Objets bloc blob PremiumStockage BlobLRS
ZRS
Partage de fichiers PremiumAzure FilesLRS
ZRS
Objets page blob PremiumObjets page blob de pages LRS
Les comptes de stockage à hautes performances proposent une réplication limitée.

Comment la réplication fonctionne sous Azure ?

Les centres de données Azure sont maintenant présents en grand nombre à travers le monde. Il existe donc plus de 60 régions Azure, elles-mêmes regroupées en géographie :

Dans une région Azure, souvent composé de plusieurs centres, aussi appelés zone de disponibilité, sont interconnectés via un réseau haute performance et apporte une protection supplémentaire contre les défaillances matérielles, les pannes de réseau, d’électricité ou les catastrophes naturelles.

Comme vu précédemment, les options de réplication disponibles vont dépendre du type de compte de stockage sélectionné :

  • Donnée sur une région Azure :
    • Stockage localement redondant (LRS) : 3 copies synchrones dans un seul centre de données d’une seule région.
    • Stockage redondant interzone (ZRS) : 3 copies synchrones dans les 3 centres de données d’une seule région.
  • Donnée sur deux régions Azure (région paire de la première)
    • Stockage géo-redondant (GRS) : 3 copies synchrones dans un seul centre de données d’une seule région + 3 copies asynchrones dans un seul centre de données de la région paire de la première.
    • Stockage géo-redondant avec accès en lecture (RA-GRS) : 3 copies synchrones dans un seul centre de données d’une seule région + 3 copies asynchrones dans un seul centre de données de la région paire avec accès en lecture.
    • Stockage géo-redondant interzone (GZRS) : 3 copies synchrones dans 3 centres de données d’une seule région + 3 copies asynchrones dans un seul centre de données de la région paire.
    • Stockage géo-redondant interzone avec accès en lecture (RA-GZRS) : 3 copies synchrones dans les 3 centres de données d’une seule région + 3 copies asynchrones dans un seul centre de données de la région paire avec accès en lecture.

Ces options de réplication ont évidemment un impact conséquent sur les prix, comme le montre ce lien vers le calculateur Azure :

Comment accède-t-on à différents objets sur le compte de stockage ?

Un stockage de données a besoin au minium d’un point réseau pour remplir son rôle dans l’architecture. Par défaut, tout compte de stockage dispose d’URL uniques. Celles-ci reprennent le nom du compte de stockage suivi du service de stockage employé :

  • Service de conteneurs : https://mystorageaccount.blob.core.windows.net
  • Service de table : https://mystorageaccount.table.core.windows.net
  • Service de file d’attente : https://mystorageaccount.queue.core.windows.net
  • Partage de fichiers : https://mystorageaccount.file.core.windows.net

Par exemple, cet accès public met à disposition de la donnée sans authentification, comme par exemple pour un conteneur blob public :

Une URL ne signifie pas que l’accès est non contrôlé, comme le montre la création d’un second conteneur :

L’accès est bien refusé car une authentification est nécessaire.

L’accès au contenu devra donc passer par l’utilisation d’une des 2 clefs du compte de stockage, pour générer une signature d’accès partagé (SAS). L’avantage de cette gestion est de mieux gérer les droits précis et la durée d’accès :

Exemple d’URL avec signature SAS :

https://jlosto.blob.core.windows.net/pictures-secure/Geneva-at-night.jpg?sp=r&st=2022-11-09T12:33:20Z&se=2022-11-09T20:33:20Z&spr=https&sv=2021-06-08&sr=b&sig=AIWmVLKklAgOPoCYBvd%2BOl5fr5K0mZe3xAowIOXcq7

Les choses sont sensiblement proches pour un partage de fichiers. Dans ce service, l’authentification est possible de 2 manières :

  • Active Directory
  • Clef du compte de stockage

La première méthode demande au préalable de joindre le compte de stockage à un domaine Active Directory. Un précédent article parlant de FSLogix, au sein d’un environnement Azure Virtual Desktop, en fait référence ici.

La seconde méthode repose assez sur l’utilisation d’une des 2 clefs du compte de stockage. C’est un risque d’octroyer plus que de droits que nécessaires, car une clef donne un accès complet au compte de stockage.

Important : Microsoft le précise, vos clés d’accès de compte de stockage sont similaires au mot de passe racine pour votre compte de stockage. Veillez toujours à protéger vos clés d’accès :

  • Utilisez le service Azure Key Vault pour gérer et effectuer la rotation de vos clés en toute sécurité.
  • Évitez de distribuer des clés d’accès à d’autres utilisateurs, de les coder en dur ou de les enregistrer en texte brut dans un emplacement accessible à d’autres personnes.
  • Effectuez une rotation de vos clés si vous pensez qu’elles ont pu être compromises.

Exemple de montage du partage de fichier via le script proposé sur le portail et utilisant une des 2 clefs du compte de stockage :

Peut-on restreindre les IP publiques pouvant s’y connecter ?

Oui c’est tout à fait possible. L’onglet Réseau du compte de stockage apporte ce type de restriction, basée sur les ip publiques :

Même en possession de la clef du compte de stockage, un autre poste ayant une IP publique non référencée ne pourra s’y connecter :

Attention, la mise en place de cette restriction bloquera automatiquement l’accès aux ressources situées de la même région Azure :

Les services déployés dans la même région que le compte de stockage utilisent des adresses IP Azure privées. Vous ne pouvez donc pas restreindre l’accès à des services Azure spécifiques en fonction de leur plage d’adresses IP sortantes publiques.

Microsoft Doc

Pour les ressources Azure situées dans la même région que le compte de stockage, il est alors nécessaire de rajouter le réseau virtuel Azure pour retrouver un accès public fonctionnel :

Cette action ajoute un point de terminaison du service sur le sous-réseau rajouté sur la configuration :

Peut-on fermer l’accès public (URL) et ne transiter que via un adressage réseau privé ?

Il parfaitement possible de fermer l’accès public et d’intégrer le compte de stockage sur un réseau virtuel privé Azure.

Un point de terminaison privé est une interface réseau qui utilise une adresse IP privée de votre réseau virtuel. Cette interface réseau vous connecte de manière privée et sécurisée à un service fonctionnant avec Azure Private Link. En activant un point de terminaison privé, vous intégrez le service à votre réseau virtuel.

Ayant associé un service DNS privé à mon réseau virtuel, je retrouve bien un enregistrement dns pointant vers mon compte de stockage :

L’accès est bien à nouveau fonctionnel depuis le réseau virtual Azure :

La mise en place du point de terminaison privé permet alors la désactivation complète de l’accès public du compte de stockage :

La fermeture de l’accès public a aussi pour effet de restreindre l’accès aux données du compte de stockage depuis le portail Azure :

Existe-t-il un soft-delete pour les données ?

Oui et non ????. Les services de stockages principalement utilisés sont le blob et le partage de fichier. Le soft-delete consiste à ne pas vraiment supprimer définitivement la donnée lors de sa suppression par un utilisateur.

Le stockage blob propose deux soft-deletes : Un pour le container tout entier et un autre pour les blobs eux-mêmes :

Le partage de fichier ne propose l’option que pour la suppression du partage de fichiers, pas son contenu individuel :

Comment sauvegarder facilement les données ?

Deux services du compte de stockage se sauvegardent très facilement à travers des services Azure.

Le stockage blob nécessite la mise en place d’un coffre de sauvegarde, en veillant à le placer dans la même région Azure que le compte de stockage à sauvegarder :

Une fois le coffre de sauvegarde créé, mettez en place votre sauvegarde :

Définissez votre police de sauvegarde selon vos besoins de rétention :

Ajoutez le compte de sauvegarde blob et attendez quelques minutes pour confirmer sa validation :

Le coffre de sauvegarde a besoin du rôle pour pouvoir gérer la sauvegarde blob, cliquez comme ceci pour ajouter le rôle attendu :

Ce rôle est bien implémenté sur le compte de stockage :

Attendez quelques minutes pour constater la validation :

Déclenchez la configuration de sauvegarde, il est à noter que nous n’avons jamais pu choisir le ou les conteneurs du compte de stockage à sauvegarder :

Un contrôle dans le coffre de sauvegarde nous montre bien la bonne prise en compte de la configuration :

Pour le partage de fichier, il est nécessaire de passer par la création d’un coffre de récupération Azure :

Une fois le coffre de récupération créé, mettez en place votre sauvegarde :

Ajoutez le compte de stockage et le partage de fichier à sauvegarder, définissez la police et activez la sauvegarde :

Contrôler le paramétrage dans le coffre de récupération :

Comment fonctionne la synchronisation entre différents comptes de stockage ?

Lorsque la réplication d’objets blob est activée, les blobs sont copiés de manière asynchrone depuis un compte de stockage source vers un compte de stockage de destination.

Créez une règle de réplication sur le premier compte de stockage (source) :

Vérifiez le contre paramétrage sur le compte de stockage (destination) :

Comme la réplication est asynchrone, il faut attendre plusieurs minutes pour constater l’apparition des blobs sur le second compte de stockage :

Peut-on réduire les coûts blob ?

La gestion blob via un cycle de vie utilise des règles pour déplacer automatiquement les blobs vers des niveaux plus froids ou pour les supprimer. Cette stratégie est intéressante car les coûts varient selon la chaleur du stockage :

Cette variation impacte également le prix des transactions blob :

Par exemple, la création de règle en escalier est logique pour refroidir d’anciennes sauvegardes :

Si vous créez plusieurs règles, les actions associées doivent être mises en œuvre dans l’ordre des niveaux (du stockage chaud au stockage froid, puis l’archivage, puis la suppression).

Conclusion

On pourrait continuer encore longtemps sur toutes les autres fonctionnalités proposées par le compte de stockage Azure. Je vous conseille les vidéos suivantes pour en apprendre un peu plus ????????