Créer un pool d'instances (Aperçu) : Azure SQL Managed Instance

S’applique à : Azure SQL Managed Instance

Cet article explique comment créer un pool d'instances pour Azure SQL Managed Instance à l'aide du portail Azure, de PowerShell ou de l’Azure CLI, et comment déplacer des instances dans et hors du pool à l'aide de PowerShell ou d’Azure CLI.

Les pools d'instances permettent de déployer plusieurs instances avec des ressources partagées sur une seule machine virtuelle, ce qui fournit une infrastructure pratique et rentable pour migrer plusieurs instances SQL Server sans avoir à consolider des charges de travail plus petites et moins exigeantes en termes de calcul sur une SQL Managed Instance plus grande.

Remarque

Les pools d'instances pour Azure SQL Managed Instance sont actuellement en Aperçu.

Prérequis

Pour créer un pool d'instances, vous devez disposer des éléments suivants :

Considérations sur la taille du sous-réseau

Planifiez judicieusement la taille de votre sous-réseau lorsque vous utilisez un pool d'instances. Reportez-vous à Déterminer la taille de sous-réseau requise et la plage pour les instructions de dimensionnement de sous-réseau.

Utilisez la formule suivante pour calculer le nombre d'adresses IP requises par un pool d'instances qui contient plusieurs instances Usage général :

2 * (5 + (3 * # of MIs)) + 5

# of MIs fait référence au nombre potentiel maximum d'instances que vous prévoyez d'approvisionner. Le nombre maximum possible d'instances dans un pool est de 40.

Créer un pool d’instances

Vous pouvez créer un pool d’instance avec le portail Azure, PowerShell ou Azure CLI. Tenez compte des éléments suivants :

  • Seul le niveau de service Usage général sur la série standard (Gen5) ou le matériel de la série Premium est actuellement disponible.
  • Le nom du pool ne peut contenir que des lettres minuscules, des chiffres et des traits d’union, et ne peut pas commencer par un trait d’union.
  • La solution Azure Hybrid Benefit s'applique au niveau du pool d'instances. Vous pouvez définir le type de licence lors de la création du pool et le mettre à jour après la création du pool.

Important

Le déploiement d'un pool d'instances est une opération de longue haleine qui peut prendre jusqu'à 4,5 heures.

Pour créer un pool d'instances dans le portail Azure, procédez comme suit :

  1. Recherchez des pools d’instances dans le Portail Azure et sélectionnez le service Pools d’instances pour ouvrir la page Pools d’instances :

    Capture d’écran de la recherche de pools d'instances dans le portail Azure.

  2. Sur la page Pools d'instances, sélectionnez + Créer pour ouvrir la page Créer un pool Azure SQL Managed Instance :

    Capture d’écran de la page pool d’instances dans le portail Azure, avec +Créer sélectionné.

  3. Dans Créer un pool Azure SQL Managed Instance :

    1. Fournissez les détails du projet et de l'instance dans l'onglet Bases.
    2. Utilisez Configurer le pool d’instances sous Calcul + stockage pour ouvrir la page Calcul + Stockage, puis choisissez le niveau de service, le matériel de calcul et la licence SQL Server que vous souhaitez utiliser pour le pool. Utilisez Appliquer pour enregistrer vos paramètres de calcul et revenir à la page Créer un pool Azure SQL Managed Instance.
    3. Sélectionnez un réseau virtuel existant ou configurez un nouveau réseau virtuel sous l’onglet Mise en réseau.
    4. (Facultatif) Configurez une fenêtre de maintenance non par défaut pour le pool sous l’onglet Paramètres supplémentaires.
    5. Passez en revue votre configuration sous l’onglet Vérifier + créer, puis sélectionnez Créer pour créer votre pool d’instances.

    Capture d’écran de la page Créer un pool Azure SQL Managed Instance dans le Portail Azure avec l'option Configurer le pool d'instances.

  4. Vous pouvez surveiller le déploiement du pool depuis Notifications.

Une fois votre pool d’instances créé, vous pouvez créer une instance dans le pool à l’aide du Portail Azure, ou vous pouvez déplacer une instance existante dans le pool à l’aide de PowerShell ou d’Azure CLI.

Créer une instance à l'intérieur du pool

Une fois votre pool créé, vous pouvez créer une instance dans le pool à l'aide du portail Azure, de PowerShell ou d'Azure CLI.

Tenez compte des éléments suivants :

  • Vous devez spécifier le type de licence pour la nouvelle instance, et il doit correspondre au type de licence du pool.

Pour créer une nouvelle instance dans un pool à l'aide du portail Azure, procédez comme suit :

  1. Accédez à la page Azure SQL dans le portail Azure.

  2. Dans la page Azure SQL, sélectionnez +Créer pour ouvrir la page Sélectionner l’option de déploiement SQL.

  3. Dans la vignette SQL Managed Instances, sélectionnez Instance unique en tant que type de ressource, puis sélectionnez Créer pour ouvrir la page Créer Azure SQL Managed Instance.

  4. Dans l’onglet Bases de la page Créer Create Azure SQL Managed Instance :

    1. Sélectionnez le groupe de ressources qui contient votre pool d’instances existant.
    2. Choisissez Oui pour Appartenir à un pool d’instances ? sous Détails de Managed Instance pour créer votre nouvelle instance à l’intérieur d’un pool d’instances.
    3. Sélectionnez le pool dans la liste déroulante Pool d'instances.

    Capture d’écran de la page Créer une Azure SQL Managed Instance dans le Portail Azure avec appartient à un pool d'instances sélectionné.

  5. Remplissez les détails restants sur la page Créer Azure SQL Managed Instance, pour créer votre instance dans le pool. Pour plus d’informations, passez en revue Créer Azure SQL Managed Instance.

  6. Sélectionnez Vérifier + créer pour passer en revue les paramètres de votre nouvelle instance, puis utilisez Créer pour déployer votre instance dans le pool sélectionné.

Déplacer une instance existante

Vous pouvez déplacer une instance existante dans et hors d'un pool à l'aide de PowerShell ou d'Azure CLI si :

  • elle se trouve dans le même groupe de ressources que le pool.
  • Elle se trouve sur le même réseau virtuel et sous-réseau que le pool.
  • Elle correspond aux limites de ressources du pool d'instances.

Lorsqu'une instance existante est déplacée dans un pool, les paramètres au niveau du pool sont prioritaires sur les paramètres au niveau de l'instance. Par exemple, l'instance hérite du type de licence et de la fenêtre de maintenance définies au niveau du pool. Lorsqu'une instance est déplacée hors du pool, elle conserve les paramètres hérités du pool. La seule exception concerne le type de licence, qui revient par défaut à « LicenseIncluded » lorsqu'une instance est supprimée du pool d'instances : Azure Hybrid Benefit et l'avantage des droits de basculement hybride doit être configuré manuellement après qu'une instance a été déplacée hors d'un pool.

Le déplacement d’une instance existante à l’intérieur d’un pool à l’aide du Portail Azure n’est actuellement pas pris en charge.

Pour déplacer une instance dans un pool avec PowerShell, indiquez le nom du pool lorsque vous utilisez Set-AzSqlInstance :

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Pour déplacer une instance hors d'un pool, fournissez un nom de pool vide :

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Se connecter à une instance dans un pool

Vous pouvez choisir de vous connecter à une instance d’un pool avec un point de terminaison privé ou un point de terminaison public. Pour utiliser un point de terminaison privé, vous devez utiliser Azure Private Link.

Pour vous connecter à une instance dans un pool avec un point de terminaison public, vous devez d’abord activer le point de terminaison public, puis autoriser le trafic de point de terminaison public sur le groupe de sécurité réseau.

Création d'une base de données

La création d'une base de données pour une instance à l'intérieur d'un pool est identique à celle d'une base de données pour une instance unique. Vous pouvez créer une nouvelle base de données en utilisant le portail Azure, PowerShell ou Azure CLI.

Pour créer une nouvelle base de données pour un SQL managed instance existant en utilisant le portail Azure, procédez comme suit :

  1. Accédez à votre SQL Managed Instance dans le portail Azure.
  2. Dans le volet Vue d'ensemble, choisissez + Nouvelle base de données depuis la barre de commandes pour ouvrir la page Créer une base de données Azure SQL gérée.
  3. Fournissez les détails pour la nouvelle base de données.
  4. Sélectionnez Vérifier + créer pour passer en revue votre nouvelle configuration de base de données, puis utilisez Créer pour déployer votre base de données.

Obtenir l’utilisation du pool

Vous pouvez utiliser PowerShell pour déterminer comment les ressources sont utilisées à l'intérieur d'un pool.

Pour obtenir la liste des instances à l'intérieur d'un pool, utilisez Get-AzSqlInstance :

$instancePool | Get-AzSqlInstance

Pour obtenir l'utilisation des ressources du pool, utilisez Get-AzSqlInstancePoolUsage :

$instancePool| Get-AzSqlInstancePoolUsage

Vous pouvez ajouter le paramètre -ExpandChildren pour obtenir une vue d'ensemble détaillée du pool et des instances qu'il contient :

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Pour répertorier les bases de données d'une instance, utilisez Get-AzSqlInstanceDatabase :

$databaseParams = @{
    InstanceName = $instance01Name
    ResourceGroupName = $resourceGroupName
}

$databases = Get-AzSqlInstanceDatabase @databaseParams

Remarque

Pour vérifier les limites des instances déployées dans un pool et des bases de données par pool d'instances, consultez les limites de ressources.

Mettre à jour un pool d’instances

Vous pouvez mettre à jour les paramètres d'un pool d'instances existant à l'aide de PowerShell ou d’Azure CLI.

Vous pouvez utiliser PowerShell pour modifier les limites du pool d'instances.

L'exemple de script suivant modifie le type de licence, la taille vCore et le type de matériel :

Changer de type de licence :

$instancePoolParams = @{
    LicenseType = "BasePrice"
    VCores = 16
    ComputeGeneration = "Gen8"
}
$instancePool | Set-AzSqlInstancePool @instancePoolParams

Vous pouvez également déterminer les planifications de fenêtre de maintenance disponibles :

$parameters = @{
    Location = $location
    MaintenanceScope = "SQLManagedInstance"
}
 
$configurations = Get-AzMaintenancePublicConfiguration @parameters
$maintenanceWindowOptions = $configurations | Where-Object { $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance" }

Vous pouvez ensuite modifier la fenêtre de maintenance en spécifiant une option de fenêtre, par exemple :

$instancePoolParams = @{
    MaintenanceConfigurationId = $maintenanceWindowOptions[1].Id
}

$instancePool | Set-AzSqlInstancePool @instancePoolParams

Mettre à jour un pool d’instances

Si les limites de ressources du pool n'ont pas été dépassées, vous pouvez modifier les configurations de ressources pour une instance à l'intérieur d'un pool à l'aide de PowerShell ou d'Azure CLI,

Pour modifier les paramètres de ressource d'une instance à l'intérieur d'un pool, utilisez Set-AzSqlInstance.

L'exemple suivant met à jour les vCores sur 8 et remplace la taille de stockage par 512 Go pour Instance1 :

$instancePoolParams = @{
    VCore = 8
    StorageSizeInGB = 512
    InstancePoolName = $instancePoolName
}

$instance1name | Set-AzSqlInstance @instancePoolParams

Supprimer un pool d’instances

Vous pouvez supprimer un pool d'instances à l'aide de PowerShell ou d'Azure CLI, une fois toutes les instances du pool supprimées ou déplacées hors du pool.

Pour supprimer un pool d'instances, utilisez Remove-AzSqlInstancePool.

L'exemple de script suivant supprime un pool d'instances vide :

$params = @{
    ResourceGroupName = "<resource group name>"
    Name = "<instance pool name>"
}

Remove-AzSqlInstancePool @params

Opérations des pools d’instances

Le tableau suivant présente les opérations de pool d'instances disponibles :

Commande Portail Azure PowerShell Azure CLI
Créer un pool d’instances Oui Oui Oui
Mettre à jour les propriétés du pool Non Oui Oui
Vérifier l'utilisation et les propriétés du pool Oui Oui Oui
Supprimer un pool d’instances Oui Oui Oui
Créer une nouvelle managed instance à l'intérieur du pool Oui Oui Oui
Déplacer une Managed Instance dans un pool Non Oui Oui
Supprimer Managed Instance du pool Oui Oui Oui
Déplacer une Managed Instance hors d'un pool Non Oui Oui
Créer une base de données dans une instance à l'intérieur d'un pool Oui Oui Oui
Supprimer une base de données de SQL Managed Instance Oui Oui Oui

Pour utiliser PowerShell, installez la dernière version de PowerShell Core et suivez les instructions pour installer le module Azure PowerShell.

Commandes PowerShell disponibles :

Applet de commande Description
New-AzSqlInstancePool Crée un pool d'instances.
Get-AzSqlInstancePool Retourne des informations sur un pool d’instances.
Set-AzSqlInstancePool Définit les propriétés d'un pool d'instances.
Remove-AzSqlInstancePool Supprime un pool d'instances.
Get-AzSqlInstancePoolUsage Retourne des informations sur l'utilisation du pool d'instances.

Pour les opérations liées aux instances à la fois dans les pools et les instances uniques, utilisez les commandes de l’instance managée standard, mais la propriété de nom du pool d’instances doit être remplie lors de l’utilisation de ces commandes pour une instance d’un pool.

Limites

Pendant l'aperçu public, les instances d'un pool ont les limitations suivantes :

  • Le nom du pool ne peut contenir que des lettres minuscules, des chiffres et des traits d’union, et ne peut pas commencer par un trait d’union.
  • Toutes les instances du pool utilisent le même modèle de gestion des licences. Lorsque vous spécifiez un modèle de licence pour une instance qui est différent du modèle de licence pour le pool, ce dernier est utilisé. Lorsque l'instance est déplacée hors du pool, elle bascule automatiquement vers une licence payante complète (LicenseType = « LicenseIncluded »). Activez manuellement Azure Hybrid Benefit ou l'avantage des droits de basculement hybride pour modifier le modèle de gestion des licences.
  • Les instances groupées doivent appartenir au même sous-réseau et au même groupe de ressources. Le déplacement d'une instance dans et hors du pool n'est possible que dans le sous-réseau du pool et du même groupe de ressources.
  • Seul le niveau de service Usage général est disponible sur le matériel de série standard (Gen5) ou premium. Les niveaux de service Usage général nouvelle génération et Critique pour l’entreprise, ainsi que le matériel à mémoire optimisée de la série Premium ne sont pas disponibles.
  • Le nombre maximum possible d'instances dans le pool est de 40.
  • Un pool d'instances ne peut être supprimé qu'une fois toutes les instances du pool supprimées ou déplacées hors du pool.
  • Vous ne pouvez pas utiliser le portail Azure pour :
    • Configurer le pool d'instances. Utiliser PowerShell ou Azure CLI à la place.
    • Déplacer les instances dans et hors du pool. Utiliser PowerShell ou Azure CLI à la place.
  • Les fonctionnalités SQL Managed Instance suivantes ne sont pas prises en charge lorsque les instances se trouvent dans un pool :

Demandes de support

Créez et gérez les demandes de support pour les pools d’instances dans le portail Azure.

Pour créer une demande de support dans le portail Azure, procédez comme suit :

  1. Ouvrez la page Nouvelle demande de support dans le portail Azure.

  2. Sur la Nouvelle demande de requête, fournissez les informations suivantes :

    1. Pour le Type de problème, sélectionnez Technical.
    2. Choisissez l’Abonnement approprié dans la liste déroulante.
    3. Pour le Type de service, sélectionnez SQL Managed Instance.
    4. Pour la Ressource, indiquez le nom de votre SQL Managed Instance s’il existe, ou sélectionnez Question générale si vous n’êtes pas en mesure de déployer votre instance dans le pool.
    5. Pour Résumé, tapez instance pools.
    6. Pour le Type de problème, choisissez Create, Scale, Stop, Start, or Delete Resources.
    7. Pour le Sous-type de problème, choisissez Instance Pools.

    Capture d’écran de la Demande de support pour les pools d’instances dans le Portail Azure.

  3. Sélectionnez Suivant dans les pages suivantes jusqu’à ce que vous puissiez Créer votre demande de support.

Pour créer des déploiements SQL Managed Instance plus grands (avec ou sans pools d'instances), vous devrez peut-être obtenir un quota régional plus grand. Pour plus d’informations, consultez Demander des augmentations de quota pour Azure SQL Database. La logique de déploiement des pools d'instance compare la consommation totale de vCores au niveau du pool à votre quota pour déterminer si vous êtes autorisé à créer des ressources sans augmenter davantage votre quota.