Haute disponibilité et Azure SQL DatabaseHigh-availability and Azure SQL Database

L’objectif de l’architecture de haute disponibilité dans Azure SQL Database est de garantir que votre base de données est opérationnelle 99,99 % du temps, sans que vous vous préoccupiez de l’impact des opérations de maintenance et des pannes.The goal of the High Availability architecture in Azure SQL Database is to guarantee that your database is up and running 99.99% of time, without worrying about the impact of maintenance operations and outages. Azure gère automatiquement les tâches de maintenance vitales, telles les mises à jour correctives, sauvegardes, mises à niveau Windows et SQL, ainsi que les événements non planifiés, comme les défaillances de matériel, logiciel ou réseau subordonnées.Azure automatically handles critical servicing tasks, such as patching, backups, Windows and SQL upgrades, as well as unplanned events such as underlying hardware, software or network failures. Quand l’instance SQL fondamentale est corrigée ou qu’elle bascule, le temps d’arrêt n’est pas perceptible si vous utilisez une logique de nouvelle tentative dans votre application.When the underlying SQL instance is patched or fails over, the downtime is not noticeable if you employ retry logic in your app. Pour assurer la disponibilité de vos données, Azure SQL Database bénéficie de fonctionnalités de récupération rapide, même dans les situations les plus critiques.Azure SQL Database can quickly recover even in the most critical circumstances ensuring that your data is always available.

La solution de haute disponibilité est conçue pour garantir que les données validées ne sont jamais perdues pour cause d’échecs, que les opérations de maintenance n’affectent pas votre charge de travail, et que la base de données n’est pas un point de défaillance unique dans votre architecture logicielle.The high availability solution is designed to ensure that committed data is never lost due to failures, that maintenance operations do not affect your workload, and that the database will not be a single point of failure in your software architecture. Rien, pas même une fenêtre de maintenance ou un temps d’arrêt, ne doit vous obliger à arrêter la charge de travail pendant la mise à niveau ou la maintenance de la base de données.There are no maintenance windows or downtimes that should require you to stop the workload while the database is upgraded or maintained.

Azure SQL Database utilise deux modèles architecturaux haute disponibilité :There are two high-availability architectural models that are used in Azure SQL Database:

  • Le modèle de disponibilité Standard est basé sur la séparation du calcul et du stockage.Standard availability model that is based on a separation of compute and storage. Il s’appuie sur la haute disponibilité et la fiabilité du niveau stockage à distance.It relies on high availability and reliability of the remote storage tier. Cette architecture cible des applications métier économiques, capables de tolérer une baisse de performances pendant les activités de maintenance.This architecture targets budget-oriented business applications that can tolerate some performance degradation during maintenance activities.
  • Le modèle de disponibilité Premium est basé sur un cluster de processus de moteur de base de données.Premium availability model that is based on a cluster of database engine processes. Il repose sur le fait qu’il existe toujours un quorum de nœuds de moteur de base de données disponible.It relies on the fact that there is always a quorum of available database engine nodes. Cette architecture s’adresse à des applications stratégiques ayant des performances d’e/s supérieures et un taux de transactions élevé ; elle garantit un impact minimal sur les performances de votre charge de travail pendant les activités de maintenance.This architecture targets mission critical applications with high IO performance, high transaction rate and guarantees minimal performance impact to your workload during maintenance activities.

Comme Azure SQL Database s’exécute sur la dernière version stable du moteur de base de données SQL Server et du système d’exploitation Windows, la plupart des utilisateurs ne se rendent pas compte des mises à niveau qui sont effectuées en continu.Azure SQL Database runs on the latest stable version of SQL Server Database Engine and Windows OS, and most users would not notice that upgrades are performed continuously.

Disponibilité des niveaux de service De base, Standard et Usage généralBasic, Standard, and General Purpose service tier availability

Ces niveaux de service tirent parti de l’architecture de disponibilité standard.These service tiers leverage the standard availability architecture. L’illustration suivante montre quatre nœuds distincts, avec les couches de calcul et de stockage séparées.The following figure shows four different nodes with the separated compute and storage layers.

Séparation du calcul et du stockage

Le modèle de disponibilité Standard comprend deux couches :The standard availability model includes two layers:

  • Une couche de calcul sans état, qui exécute le processus sqlserver.exe et contient uniquement des données transitoires et mises en cache sur le SSD attaché, comme TempDB, la base de données model, le cache du plan, le pool de mémoires tampons et le pool de stockage de colonnes.A stateless compute layer that runs the sqlserver.exe process and contains only transient and cached data on the attached SSD, such as TempDB, model database, plan cache, buffer pool and column store pool. Ce nœud sans état est géré par Azure Service Fabric qui initialise sqlserver.exe, contrôle l’intégrité du nœud et effectue le basculement vers un autre nœud si nécessaire.This stateless node is operated by Azure Service Fabric that initializes sqlserver.exe, controls health of the node, and performs failover to another node if necessary.
  • Une couche de données avec état, comprenant les fichiers de base de données (.mdf/.ldf) stockés dans le service Stockage Blob Azure.A stateful data layer with the database files (.mdf/.ldf) that are stored in Azure Blob storage. La fonctionnalité de disponibilité et redondance des données est intégrée au stockage d’objets blob Azure.Azure blob storage has built-in data availability and redundancy feature. Celle-ci garantit la conservation de chaque enregistrement dans le fichier journal, ou de chaque page dans le fichier de données, même en cas d’incident du processus SQL Server.It guarantees that every record in the log file or page in the data file will be preserved even if SQL Server process crashes.

Dès que le moteur de base de données ou que le système d’exploitation est mis à niveau, ou qu’une défaillance est détectée, Azure Service Fabric déplace le processus SQL Server sans état vers un autre nœud de calcul sans état disposant d’une capacité disponible suffisante.Whenever the database engine or the operating system is upgraded, or a failure is detected, Azure Service Fabric will move the stateless SQL Server process to another stateless compute node with sufficient free capacity. Les données conservées dans le stockage Blob Azure ne sont pas affectées par le déplacement, et les fichiers de données ou de journaux sont joints au processus SQL Server nouvellement initialisé.Data in Azure Blob storage is not affected by the move, and the data/log files are attached to the newly initialized SQL Server process. Ce processus garantit une disponibilité de 99,99 %, mais une charge de travail lourde peut accuser une baisse de performances pendant la transition, car la nouvelle instance SQL Server démarre avec le cache à froid.This process guarantees 99.99% availability, but a heavy workload may experience some performance degradation during the transition since the new SQL Server instance starts with cold cache.

Disponibilité des niveaux de service Premium et Critique pour l’entreprisePremium and Business Critical service tier availability

Les niveaux de service Premium et Critique pour l’entreprise exploitent le modèle de disponibilité Premium, qui intègre des ressources de calcul (processus de moteur de base de données SQL Server) et du stockage (SSD attaché localement) sur un seul nœud.Premium and Business Critical service tiers leverage the Premium availability model, which integrates compute resources (SQL Server Database Engine process) and storage (locally attached SSD) on a single node. La haute disponibilité est obtenue en répliquant calcul et stockage sur des nœuds supplémentaires pour la création d’un cluster à trois ou quatre nœuds.High availability is achieved by replicating both compute and storage to additional nodes creating a three to four-node cluster.

Cluster de nœuds de moteur de base de données

Les fichiers de base de données sous-jacents (.mdf/.ldf) sont placés sur le stockage SSD attaché, afin de fournir une latence des E/S très faible à votre charge de travail.The underlying database files (.mdf/.ldf) are placed on the attached SSD storage to provide very low latency IO to your workload. La haute disponibilité est implémentée au moyen d’une technologie similaire aux groupes de disponibilité AlwaysOn SQL Server.High availability is implemented using a technology similar to SQL Server Always On Availability Groups. Le cluster comprend un seul réplica principal (processus SQL Server) qui est accessible pour les charges de travail en lecture-écriture des clients, et jusqu’à trois réplicas secondaires (de calcul et de stockage) contenant les copies des données.The cluster includes a single primary replica (SQL Server process) that is accessible for read-write customer workloads, and up to three secondary replicas (compute and storage) containing copies of data. Le nœud principal envoie (push) régulièrement et dans l’ordre des modifications sur les nœuds secondaires, et s’assure que les données sont synchronisées sur au moins un réplica secondaire avant de valider chaque transaction.The primary node constantly pushes changes to the secondary nodes in order and ensures that the data is synchronized to at least one secondary replica before committing each transaction. Ce processus garantit qu’en cas de plantage du nœud principal pour une quelconque raison, il existe toujours un nœud entièrement synchronisé vers lequel basculer.This process guarantees that if the primary node crashes for any reason, there is always a fully synchronized node to fail over to. Le basculement est initié par Azure Service Fabric.The failover is initiated by the Azure Service Fabric. Lorsque le réplica secondaire devient le nouveau nœud principal, un autre réplica secondaire est créé pour garantir que le cluster dispose de suffisamment de nœuds (ensemble du quorum).Once the secondary replica becomes the new primary node, another secondary replica is created to ensure the cluster has enough nodes (quorum set). Une fois le basculement terminé, les connexions SQL sont automatiquement redirigées vers le nouveau nœud principal.Once failover is complete, SQL connections are automatically redirected to the new primary node.

Autre avantage, le modèle de disponibilité Premium comprend la possibilité de rediriger les connexions SQL en lecture seule vers un des réplicas secondaires.As an extra benefit, the premium availability model includes the ability to redirect read-only SQL connections to one of the secondary replicas. Cette fonctionnalité est appelée Scale-out en lecture. Elle fournit 100 % de capacité de calcul, sans frais supplémentaires, pour décharger depuis le réplica principal des opérations en lecture seule, telles que les charges de travail analytiques.This feature is called Read Scale-Out. It provides 100% additional compute capacity at no extra charge to off-load read-only operations, such as analytical workloads, from the primary replica.

Configuration de zone redondanteZone redundant configuration

Par défaut, le cluster de nœuds pour le modèle de disponibilité Premium est créé dans le même centre de données.By default, the cluster of nodes for the premium availability model is created in the same datacenter. Avec l’introduction des Zones de disponibilité Azure, SQL Database peut placer différents réplicas du cluster dans des zones de disponibilité distinctes au sein de la même région.With the introduction of Azure Availability Zones, SQL Database can place different replicas in the cluster to different availability zones in the same region. Pour éliminer un point de défaillance unique, l’anneau de contrôle est également dupliqué sur plusieurs fuseaux horaires sous forme de trois anneaux de passerelle (GW).To eliminate a single point of failure, the control ring is also duplicated across multiple zones as three gateway rings (GW). Le routage vers un anneau de passerelle spécifique est contrôlé par Azure Traffic Manager (ATM).The routing to a specific gateway ring is controlled by Azure Traffic Manager (ATM). Étant donné que la configuration redondante interzone dans les niveaux de service Premium ou Critique pour l’entreprise ne crée pas de redondance de base de données supplémentaire, vous pouvez l’activer sans frais supplémentaires.Because the zone redundant configuration in the Premium or Business Critical service tiers does not create additional database redundancy, you can enable it at no extra cost. En sélectionnant une configuration redondante dans une zone, vous rendez vos bases de données Premium ou Critique pour l’entreprise résistantes à un plus grand éventail d’échecs, notamment les pannes graves de centre de données, sans aucune modification à la logique d’application.By selecting a zone redundant configuration, you can make your Premium or Business Critical databases resilient to a much larger set of failures, including catastrophic datacenter outages, without any changes to the application logic. Vous pouvez également convertir vos bases de données ou pools Premium ou Critique pour l’entreprise en configuration avec redondance dans une zone.You can also convert any existing Premium or Business Critical databases or pools to the zone redundant configuration.

Les bases de données de redondance de zone, ayant des réplicas dans différents centres de données avec une certaine distance entre eux, la latence accrue du réseau peut augmenter le temps de validation et ainsi avoir un impact sur les performances de certaines charges de travail OLTP.Because the zone redundant databases have replicas in different datacenters with some distance between them, the increased network latency may increase the commit time and thus impact the performance of some OLTP workloads. Vous pouvez toujours revenir à la configuration de zone unique en désactivant le paramètre de redondance de zone.You can always return to the single-zone configuration by disabling the zone redundancy setting. Ce processus est une opération en ligne, semblable à la mise à niveau des niveaux de service ordinaires.This process is an online operation similar to the regular service tier upgrade. À la fin du processus, la base de données ou le pool est migré à partir d’un anneau de redondance de zone vers un anneau de zone unique, ou vice versa.At the end of the process, the database or pool is migrated from a zone redundant ring to a single zone ring or vice versa.

Important

Les bases de données avec redondance de zone et les pools élastiques ne sont actuellement pris en charge que dans les niveaux de service Premium et Critique pour l’entreprise, dans les régions sélectionnées.Zone redundant databases and elastic pools are currently only supported in the Premium and Business Critical service tiers in select regions. Lorsque vous utilisez le niveau Critique pour l’entreprise, la configuration de zone redondante est uniquement disponible lorsque le matériel de calcul Gen5 est sélectionné.When using the Business Critical tier, zone redundant configuration is only available when the Gen5 compute hardware is selected. Pour obtenir des informations à jour sur les régions qui prennent en charge les bases de données redondantes dans une zone, consultez Prise en charge des services par région.For up to date information about the regions that support zone redundant databases, see Services support by region.

La version avec redondance de zone de l’architecture de haute disponibilité est illustrée dans le diagramme suivant :The zone redundant version of the high availability architecture is illustrated by the following diagram:

architecture haute disponibilité avec redondance de zone

Récupération de base de données accélérée (ADR)Accelerated Database Recovery (ADR)

La récupération de base de données accélérée est une nouvelle fonctionnalité du moteur de base de données SQL qui améliore considérablement la disponibilité des bases de données, particulièrement en présence de transactions durables.Accelerated Database Recovery (ADR) is a new SQL database engine feature that greatly improves database availability, especially in the presence of long running transactions. La récupération de base de données accélérée est actuellement disponible pour les bases de données uniques, les pools élastiques et Azure SQL Data Warehouse.ADR is currently available for single databases, elastic pools, and Azure SQL Data Warehouse.

ConclusionConclusion

Azure SQL Database présente une solution de haute disponibilité intégrée, qui est incorporée en profondeur à la plateforme Azure.Azure SQL Database features a built-in high availability solution, that is deeply integrated with the Azure platform. Cette solution dépend de Service Fabric pour la détection et la récupération des défaillances, mais aussi du stockage Blob Azure pour la protection des données et des Zones de disponibilité pour une meilleure tolérance aux pannes.It is dependent on Service Fabric for failure detection and recovery, on Azure Blob storage for data protection, and on Availability Zones for higher fault tolerance. Par ailleurs, Azure SQL Database utilise amplement la technologie des groupes de disponibilité Always On à partir de SQL Server pour la réplication et le basculement.In addition, Azure SQL database leverages the Always On Availability Group technology from SQL Server for replication and failover. La combinaison de ces technologies permet aux applications de profiter pleinement des avantages d’un modèle de stockage mixte, et de prendre en charge les contrats de niveau de service les plus exigeants.The combination of these technologies enables applications to fully realize the benefits of a mixed storage model and support the most demanding SLAs.

Étapes suivantesNext steps