Expliquer comment optimiser le stockage Azure pour les machines virtuelles SQL Server
Les performances de stockage sont un composant essentiel d’une application gourmande en E/S, comme un moteur de base de données. Azure offre un large choix d’options de stockage et peut même créer votre solution de stockage pour répondre à vos besoins de charge de travail.
Le stockage Azure est une plateforme robuste et sécurisée conçue pour répondre aux besoins variés de différentes applications. Il offre un large éventail de solutions évolutives, ce qui garantit que tous les types de stockage prennent en charge le chiffrement au repos. Les utilisateurs peuvent choisir entre une clé de chiffrement gérée par Microsoft ou une clé de chiffrement définie par l’utilisateur pour renforcer la sécurité.
Stockage Blob - Le stockage Blob est ce qu’on appelle le stockage basé sur des objets et se différencie en niveaux de stockage froid, chaud et archive. Dans un environnement SQL Server, le stockage de blobs est généralement utilisé pour les sauvegardes de bases de données avec la fonctionnalité de sauvegarde sur URL de SQL Server.
Stockage de fichiers : le stockage de fichiers est effectivement un partage de fichiers qui peut être monté à l’intérieur d’une machine virtuelle, sans avoir à configurer du matériel. SQL Server peut utiliser le stockage de fichiers en tant que cible de stockage pour une instance de cluster de basculement.
Stockage disque : les disques managés Azure offrent un stockage de blocs présenté à une machine virtuelle. Ces disques sont gérés comme un disque physique dans un serveur local, sauf qu’ils sont virtualisés. Il existe plusieurs niveaux de performances dans les disques managés, en fonction de votre charge de travail. Ce type de stockage est le plus couramment utilisé pour les fichiers de données et de journaux de transactions SQL Server.
Disques managés Azure
Les disques managés Azure sont des volumes de stockage de niveau bloc qui sont présentés aux machines virtuelles Azure. Le stockage de niveau bloc fait référence à des volumes bruts de stockage qui sont créés et peuvent être traités comme un disque dur individuel. Ces périphériques de bloc peuvent être gérés dans le système d’exploitation et le niveau de stockage n’est pas conscient du contenu du disque. L’alternative au stockage de bloc est le stockage d’objets, où les fichiers et leurs métadonnées sont stockés sur le système de stockage sous-jacent. Le stockage Blob Azure est un exemple de modèle de stockage d’objets. Bien que le stockage d’objets fonctionne bien pour de nombreuses solutions de développement modernes, la plupart des charges de travail exécutées dans des machines virtuelles utilisent le stockage de blocs.
La configuration de vos disques managés est importante pour les performances de vos charges de travail SQL Server. Si vous passez depuis un environnement local, il est important de capturer des métriques telles que la moyenne des secondes de disque/lecture et la moyenne des secondes de disque/écriture à partir de l’Analyseur de performances, comme indiqué précédemment. Une autre métrique à capturer est le nombre d'opérations d’E/S par seconde, qui peuvent être capturées à l’aide des compteurs SQL Server : Resource Pool Stats Disk Read and Write IO/sec, qui indiquent combien d'IOPs SQL Server sert à son pic. Il est important de comprendre vos charges de travail. Vous souhaitez concevoir votre stockage et votre machine virtuelle pour répondre aux besoins de ces pics de charge de travail sans entraîner une latence importante. Chaque type de machine virtuelle Azure a une limite sur les E/S par seconde.
Les disques managés Azure se présentent sous quatre types :
Disque Ultra : les disques Ultra prennent en charge les charges de travail d’E/S élevées pour les bases de données stratégiques avec une faible latence.
SSD Premium : les disques SSD Premium sont à débit élevé et à faible latence et peuvent répondre aux besoins de la plupart des charges de travail de base de données s’exécutant dans le cloud.
SSD Standard - Les SSD Standard sont conçus pour des charges de travail de développement/test peu sollicitées ou des serveurs web qui effectuent une faible quantité d'E/S et requièrent une latence prévisible.
HDD standard : Les disques durs de type standard conviennent aux sauvegardes et au stockage de fichiers rarement consultés.
En règle générale, les charges de travail SQL Server de production utilisent un disque Ultra ou un ssd Premium, ou une combinaison des deux. Les disques Ultra sont généralement utilisés où vous recherchez une latence de sous-milliseconde dans le temps de réponse. Les disques SSD Premium ont généralement un temps de réponse en millisecondes à un chiffre, mais leur prix est plus bas et leur conception plus souple. Les disques SSD Premium prennent également en charge la mise en cache de lecture, ce qui peut profiter aux charges de travail de base de données lourdes en lecture, car cela réduit le nombre de trajets sur le disque. Le cache de lecture est stocké sur le disque SSD local (D:\lecteur sur Windows ou /dev/sdb1/ sur Linux), ce qui permet de réduire le nombre d’allers-retours vers le disque réel.
Répartir les disques pour un débit maximal
L’une des façons d’optimiser les performances et le volume sur les disques Azure est de répartir les données sur plusieurs disques. Cette technique ne s’applique pas au disque Ultra, car vous pouvez mettre à l’échelle les E/S par seconde, le débit et la taille maximale indépendamment sur un seul disque. Toutefois, avec les disques SSD Premium, il peut être avantageux d’adapter les E/S par seconde et le volume de stockage. Pour bander des disques dans Windows, vous ajoutez le nombre de disques que vous souhaitez à la machine virtuelle, puis créez un pool à l’aide d’espaces de stockage dans Windows. Ne configurez pas de redondance pour votre pool (ce qui limiterait vos performances), car celle-ci est fournie par le framework Azure, qui conserve trois copies de tous les disques dans la réplication synchrone pour se protéger d’une panne de disque. Lorsque vous créez un pool, votre pool contient la somme des E/S par seconde et la somme du volume de tous les disques de votre pool. Par exemple, si vous avez utilisé 10 disques P30 chacun de 1 To et que vous avez 5 000 E/S par disque, vous disposez d’un volume de 10 To avec 50 000 E/S par seconde disponibles.
Bonnes pratiques pour configurer le stockage SQL Server
Voici quelques bonnes pratiques recommandées pour SQL Server sur les machines virtuelles Azure et leur configuration de stockage :
- Créer un volume distinct pour les fichiers de données et de journaux des transactions
- Activer la mise en cache de lecture sur le volume de fichiers de données
- N’activez aucune mise en cache sur le volume du fichier journal
- Planifiez une% supplémentaire de 20 E/S par seconde lors de la création de votre stockage pour votre machine virtuelle afin de gérer les pics de charge de travail
- Utilisez le lecteur D : (ssd attaché localement) pour les fichiers TempDB, car TempDB est recréé lors du redémarrage du serveur. Il n’y a donc aucun risque de perte de données
- Activer l’initialisation instantanée des fichiers pour réduire l’impact des activités de croissance des fichiers
- Déplacer les répertoires des fichiers de trace et des journaux des erreurs vers les disques de données
- Pour les charges de travail nécessitant une latence de stockage inférieure à 1 milliseconde, envisagez d’utiliser un disque Ultra sur ssd Premium.
Fournisseur de ressources de machine virtuelle Azure
Une façon de réduire la complexité de la création de stockage pour votre serveur SQL Server sur une machine virtuelle Azure consiste à utiliser les modèles SQL Server dans la Place de marché Azure, ce qui vous permet de configurer votre stockage dans le cadre de votre déploiement. Vous pouvez configurer les E/S PAR en fonction des besoins et le modèle effectue le travail de création de vos pools d’espaces de stockage dans Windows.
Ce fournisseur de ressources prend également en charge l’ajout de TempDB au disque SSD local et crée une tâche planifiée pour créer le dossier au démarrage.