Aanbevolen procedures voor SQL Server voor het optimaliseren van de prestaties in Azure Stack hubSQL server best practices to optimize performance in Azure Stack Hub

In dit artikel vindt u aanbevolen procedures voor SQL Server voor het optimaliseren van SQL Server en het verbeteren van de prestaties van virtuele machines met Microsoft Azure Stack hub (Vm's).This article provides SQL server best practices to optimize SQL Server and improve performance in Microsoft Azure Stack Hub virtual machines (VMs). Als SQL Server in Azure Stack hub-Vm's worden uitgevoerd, gebruikt u dezelfde opties voor het afstemmen van de prestaties van de data base die van toepassing zijn op SQL Server in een on-premises server omgeving.When running SQL Server in Azure Stack Hub VMs, use the same database performance-tuning options applicable to SQL Server in an on-premises server environment. De prestaties van een relationele data base in een Azure Stack hub-Cloud zijn afhankelijk van een groot aantal factoren, waaronder de familie grootte van een virtuele machine en de configuratie van de gegevens schijven.The performance of a relational database in an Azure Stack Hub cloud depends on many factors, including family size of a VM and the configuration of the data disks.

Bij het maken van SQL Server-installatie kopieën kunt u overwegen uw vm's in te richten in de Azure stack hub-Portal.When creating SQL Server images, consider provisioning your VMs in the Azure Stack Hub portal. Down load de SQL IaaS-extensie van Marketplace Management in de Azure Stack hub-beheerders Portal en down load uw keuze van SQL Server VM-installatie kopieën.Download the SQL IaaS Extension from Marketplace Management in the Azure Stack Hub administrator portal and download your choice of SQL Server VM images. Dit zijn onder andere SQL Server 2016 SP1, SQL Server 2016 SP2 en SQL Server 2017.These include SQL Server 2016 SP1, SQL Server 2016 SP2, and SQL Server 2017.

Notitie

In het artikel wordt beschreven hoe u een SQL Server virtuele machine inricht met behulp van de globale Azure Portal, de richt lijnen zijn ook van toepassing op Azure Stack hub met de volgende verschillen: SSD is niet beschikbaar voor de besturingssysteem schijf en er zijn kleine verschillen in de opslag configuratie.While the article describes how to provision a SQL Server VM using the global Azure portal, the guidance also applies to Azure Stack Hub with the following differences: SSD isn't available for the operating system disk and there are minor differences in storage configuration.

In de VM-installatie kopieën kunt u voor SQL Server alleen gebruik maken van uw eigen licentie (BYOL).In the VM images, for SQL Server, you can only use bring-your-own-license (BYOL). Het standaard licentie model voor Windows Server is betalen naar gebruik (PAYG).For Windows Server, the default license model is pay-as-you-go (PAYG). Raadpleeg voor gedetailleerde informatie over Windows Server-licentie model in VM het artikel Windows Server in azure stack Veelgestelde vragen over hub Marketplace.For detailed information of Windows Server license model in VM, refer the article Windows Server in Azure Stack Hub Marketplace FAQ.

Het verkrijgen van de beste prestaties voor SQL Server op Azure stack hub-vm's is de focus van dit artikel.Getting the best performance for SQL Server on Azure Stack Hub VMs is the focus of this article. Als uw werk belasting minder veeleisend is, is het mogelijk dat u niet elke aanbevolen optimalisatie nodig hebt.If your workload is less demanding, you might not require every recommended optimization. Houd rekening met de prestatie behoeften en werkbelasting patronen wanneer u deze aanbevelingen evalueert.Consider your performance needs and workload patterns as you evaluate these recommendations.

Notitie

Raadpleeg dit artikelvoor hulp bij de prestaties van SQL Server in azure vm's.For performance guidance for SQL Server in Azure VMs, refer to this article.

Controle lijst voor aanbevolen procedures voor SQL ServerChecklist for SQL server best practices

De volgende controle lijst is voor optimale prestaties van SQL Server op Azure Stack hub-Vm's:The following checklist is for optimal performance of SQL Server on Azure Stack Hub VMs:

GebiedArea OptimalisatiesOptimizations
VM-grootteVM size DS3 of hoger voor SQL Server Enterprise Edition.DS3 or higher for SQL Server Enterprise edition.

DS2 of hoger voor SQL Server Standard Edition en Web Edition.DS2 or higher for SQL Server Standard edition and Web edition.
StorageStorage Gebruik een VM-serie die Premium-opslagondersteunt.Use a VM family that supports Premium storage.
DisksDisks Gebruik Mini maal twee gegevens schijven (één voor logboek bestanden en één voor gegevens bestand en TempDB) en kies de schijf grootte op basis van de capaciteits behoeften.Use a minimum of two data disks (one for log files and one for data file and TempDB), and choose the disk size based on your capacity needs. De standaard locaties voor gegevens bestanden instellen op deze schijven tijdens de installatie van SQL Server.Set the default data file locations to these disks during the SQL Server install.

Vermijd het gebruik van besturings systeem of tijdelijke schijven voor database opslag of logboek registratie.Avoid using operating system or temporary disks for database storage or logging.
U kunt meerdere Azure-gegevens schijven opruimen om de IO-door voer te verhogen met opslag ruimten.Stripe multiple Azure data disks to get increased IO throughput using Storage Spaces.

Indeling met gedocumenteerde toewijzings grootten.Format with documented allocation sizes.
I/OI/O Schakel de initialisatie van Instant file in voor gegevens bestanden.Enable instant file initialization for data files.

Beperk de automatische groei voor de data bases met redelijkerwijs kleine vaste stappen (64 MB-256 MB).Limit autogrow on the databases with reasonably small fixed increments (64 MB-256 MB).

Autoshrink uitschakelen voor de data base.Disable autoshrink on the database.

Stel standaard back-ups en database bestands locaties in op gegevens schijven, niet op de schijf met het besturings systeem.Set up default backup and database file locations on data disks, not the operating system disk.

Vergrendelde pagina's inschakelen.Enable locked pages.

SQL Server service packs en cumulatieve updates Toep assen.Apply SQL Server service packs and cumulative updates.
Functie-specifiekFeature-specific Maak rechtstreeks een back-up van Blob Storage (indien ondersteund door de SQL Server versie die wordt gebruikt).Back up directly to blob storage (if supported by the SQL Server version in use).

Raadpleeg de details en richt lijnen in de volgende secties voor meer informatie over hoe en Waarom u deze optimalisaties wilt maken.For more information on how and why to make these optimizations, review the details and guidance provided in the following sections.

Richt lijnen voor VM-grootteVM size guidance

Voor prestatie gevoelige toepassingen worden de volgende VM-grootten aanbevolen:For performance-sensitive applications, the following VM sizes are recommended:

  • SQL Server Enterprise-editie: DS3 of hogerSQL Server Enterprise edition: DS3 or higher

  • SQL Server Standard Edition en Web Edition: DS2 of hogerSQL Server Standard edition and Web edition: DS2 or higher

Met Azure Stack hub is er geen prestatie verschil tussen de DS-en DS_v2 serie van de VM-familie.With Azure Stack Hub, there's no performance difference between the DS and DS_v2 VM family series.

Richtlijnen voor Azure StorageStorage guidance

DS-serie (in combi natie met DSv2-serie) Vm's in Azure Stack hub bieden de maximale door Voer van het besturings systeem en de gegevens schijf (IOPS).DS-series (along with DSv2-series) VMs in Azure Stack Hub provide the maximum operating system disk and data disk throughput (IOPS). Een virtuele machine uit de DS-of DSv2-serie biedt tot 1.000 IOPS voor de besturingssysteem schijf en tot 2.300 IOPS per gegevens schijf, ongeacht het type of de grootte van de gekozen schijf.A VM from the DS or DSv2 series provides up to 1,000 IOPS for the operating system disk and up to 2,300 IOPS per data disk, no matter the type or size of the chosen disk.

De door Voer van de gegevens schijf wordt uniek bepaald op basis van de serie van de VM-familie.Data disk throughput is determined uniquely based on the VM family series. U kunt dit artikel raadplegen om de door Voer van de gegevens schijf per VM-serie te identificeren.You can refer to this article to identify the data disk throughput per VM family series.

Notitie

Selecteer voor werk belastingen voor de virtuele machine een DS-of DSv2-serie om het maximale aantal IOPS op de besturingssysteem schijf en de gegevens schijven op te geven.For production workloads, select a DS-series or DSv2-series VM to provide the maximum possible IOPS on the operating system disk and data disks.

Bij het maken van een opslag account in Azure Stack hub heeft de geo-replicatie optie geen effect omdat deze mogelijkheid niet beschikbaar is in Azure Stack hub.When creating a storage account in Azure Stack Hub, the geo-replication option has no effect because this capability isn't available in Azure Stack Hub.

Richt lijnen voor schijvenDisks guidance

Er zijn drie hoofd typen schijven op een Azure Stack hub-VM:There are three main disk types on an Azure Stack Hub VM:

  • Besturingssysteem schijf: Wanneer u een Azure Stack hub-VM maakt, koppelt het platform ten minste één schijf (gelabeld als station C ) aan de virtuele machine voor de schijf van het besturings systeem.Operating system disk: When you create an Azure Stack Hub VM, the platform attaches at least one disk (labeled as the C drive) to the VM for your operating system disk. Deze schijf is een VHD die is opgeslagen als een pagina-Blob in de opslag.This disk is a VHD stored as a page blob in storage.

  • Tijdelijke schijf: Azure Stack hub-Vm's bevatten een andere schijf, de tijdelijke schijf (aangeduid met het D -station).Temporary disk: Azure Stack Hub VMs contain another disk called the temporary disk (labeled as the D drive). Dit is een schijf op het knoop punt dat kan worden gebruikt voor Scratch ruimte.This is a disk on the node that can be used for scratch space.

  • Gegevens schijven: U kunt extra schijven aan uw virtuele machine koppelen als gegevens schijven, en deze schijven worden opgeslagen als pagina-blobs.Data disks: You can attach additional disks to your VM as data disks, and these disks are stored in storage as page blobs.

In de volgende secties worden aanbevelingen beschreven voor het gebruik van deze verschillende schijven.The following sections describe recommendations for using these different disks.

BesturingssysteemschijfOperating system disk

Een besturingssysteem schijf is een VHD die u kunt opstarten en koppelen als een actieve versie van een besturings systeem en wordt aangeduid als station C .An operating system disk is a VHD that you can boot and mount as a running version of an operating system and is labeled as C drive.

Tijdelijke schijfTemporary disk

Het tijdelijke opslag station, met het label D station, is niet permanent.The temporary storage drive, labeled as the D drive, isn't persistent. Sla geen gegevens op die u wilt kwijt raken op het D -station.Don't store any data you're unwilling to lose on the D drive. Dit omvat uw gebruikers database bestanden en logboek bestanden voor gebruikers transacties.This includes your user database files and user transaction log files.

U wordt aangeraden TempDB op een gegevens schijf op te slaan, omdat elke gegevens schijf Maxi maal 2.300 IOPS per gegevens schijf biedt.We recommend storing TempDB on a data disk as each data disk provides a maximum of up to 2,300 IOPS per data disk.

GegevensschijvenData disks

  • Gebruik gegevens schijven voor gegevens-en logboek bestanden.Use data disks for data and log files. Als u geen gebruik maakt van schijf striping, gebruikt u twee gegevens schijven van een virtuele machine die ondersteuning biedt voor Premium Storage, waarbij de ene schijf de logboek bestanden bevat en de andere de gegevens en TempDB-bestanden bevat.If you're not using disk striping, use two data disks from a VM that supports Premium storage, where one disk contains the log files and the other contains the data and TempDB files. Elke gegevens schijf biedt een aantal IOPS afhankelijk van de VM-familie, zoals beschreven in VM-grootten die worden ondersteund in azure stack hub.Each data disk provides a number of IOPS depending on the VM family, as described in VM sizes supported in Azure Stack Hub. Als u een schijf striping-techniek gebruikt, zoals opslag ruimten, plaatst u alle gegevens en logboek bestanden op hetzelfde station (inclusief TempDB).If you're using a disk-striping technique, such as Storage Spaces, place all data and log files on the same drive (including TempDB). Deze configuratie geeft u het maximale aantal IOPS dat beschikbaar is voor het gebruik van SQL Server, ongeacht welk bestand ze op een bepaald moment nodig heeft.This configuration gives you the maximum number of IOPS available for SQL Server to consume, no matter which file needs them at any particular time.

Notitie

Wanneer u in de portal een SQL Server virtuele machine inricht, hebt u de mogelijkheid om uw opslag configuratie te bewerken.When you provision a SQL Server VM in the portal, you have the option of editing your storage configuration. Afhankelijk van uw configuratie wordt met Azure Stack hub een of meer schijven geconfigureerd.Depending on your configuration, Azure Stack Hub configures one or more disks. Meerdere schijven worden gecombineerd tot één opslag groep.Multiple disks are combined into a single storage pool. De gegevens en logboek bestanden bevinden zich samen in deze configuratie.Both the data and log files reside together in this configuration.

  • Schijf striping: U kunt extra gegevens schijven toevoegen en schijf striping gebruiken voor meer door voer.Disk striping: For more throughput, you can add additional data disks and use disk striping. Als u het aantal gegevens schijven wilt bepalen dat u nodig hebt, analyseer dan het aantal IOPS dat vereist is voor uw logboek bestanden en voor uw gegevens en TempDB-bestanden.To determine the number of data disks you need, analyze the number of IOPS required for your log files and for your data and TempDB files. U ziet dat IOPS-limieten per gegevens schijf zijn gebaseerd op de serie van de VM-reeks en niet op basis van de VM-grootte.Notice that IOPS limits are per data disk based on the VM series family, and not based on the VM size. Netwerk bandbreedte limieten zijn echter gebaseerd op de grootte van de virtuele machine.Network bandwidth limits, however, are based on the VM size. Zie de tabellen over VM-grootten in azure stack hub voor meer informatie.See the tables on VM sizes in Azure Stack Hub for more detail. Volg de volgende richtlijnen:Use the following guidelines:

    • Gebruik voor Windows Server 2012 of hoger opslag ruimten met de volgende richt lijnen:For Windows Server 2012 or later, use Storage Spaces with the following guidelines:

      1. Stel de Interleave (Stripe-grootte) in op 64 KB (65.536 bytes) voor workload-workloads (online Trans Action processing) en 256 KB (262.144 bytes) voor werk belastingen voor gegevens opslag om te voor komen dat de prestaties worden beïnvloed door een onjuiste uitlijning van de partitie.Set the interleave (stripe size) to 64 KB (65,536 bytes) for online transaction processing (OLTP) workloads and 256 KB (262,144 bytes) for data warehousing workloads to avoid performance impact due to partition misalignment. Dit moet worden ingesteld met Power shell.This must be set with PowerShell.

      2. Aantal kolommen instellen = aantal fysieke schijven.Set column count = number of physical disks. Gebruik Power shell bij het configureren van meer dan acht schijven (niet Serverbeheer gebruikers interface).Use PowerShell when configuring more than eight disks (not Server Manager UI).

        Met de volgende Power shell wordt bijvoorbeeld een nieuwe opslag groep gemaakt met de Interleave-grootte ingesteld op 64 KB en het aantal kolommen op 2:For example, the following PowerShell creates a new storage pool with the interleave size set to 64 KB and the number of columns to 2:

        $PoolCount = Get-PhysicalDisk -CanPool $True
        $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
        
        New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
        
  • Bepaal het aantal schijven dat is gekoppeld aan uw opslag groep op basis van de belasting verwachtingen.Determine the number of disks associated with your storage pool based on your load expectations. Houd er wel bij dat verschillende VM-grootten verschillende aantallen gekoppelde gegevens schijven toestaan.Keep in mind that different VM sizes allow different numbers of attached data disks. Zie VM-grootten die worden ondersteund in azure stack hubvoor meer informatie.For more information, see VM sizes supported in Azure Stack Hub.

  • Om het maximale aantal IOPS voor gegevens schijven te verkrijgen, is het aan te bevelen om het Maxi maal beschik bare gegevens schijven toe te voegen dat wordt ondersteund door de VM-grootte en schijf striping te gebruiken.To get the maximum possible IOPS for data disks, the recommendation is to add the maximum number of data disks supported by your VM size and to use disk striping.

  • NTFS-Allocation Unit Size: Bij het format teren van de gegevens schijf wordt u aangeraden een 64-KB-Allocation Unit Size te gebruiken voor gegevens-en logboek bestanden en TempDB.NTFS allocation unit size: When formatting the data disk, we recommend you use a 64-KB allocation unit size for data and log files as well as TempDB.

  • Schijf beheer procedures: Wanneer u een gegevens schijf verwijdert, stopt u de SQL Server-service tijdens de wijziging.Disk management practices: When removing a data disk, stop the SQL Server service during the change. Zorg er ook voor dat de cache-instellingen op de schijven niet worden gewijzigd omdat deze geen prestatie verbeteringen opleveren.Also, don't change cache settings on the disks as it doesn't provide any performance improvements.

Waarschuwing

Als de SQL-service niet kan worden gestopt tijdens deze bewerkingen, kan de data base beschadigd raken.Failure to stop the SQL Service during these operations can cause database corruption.

I/O-richt lijnenI/O guidance

  • U kunt de initialisatie van het directe bestand inschakelen om de benodigde tijd voor de eerste bestands toewijzing te verminderen.Consider enabling instant file initialization to reduce the time that is required for initial file allocation. Als u gebruik wilt maken van de initialisatie van expres bestanden, verleent u het SQL Server (MSSQLserver)-service account met SE_MANAGE_VOLUME_NAME en voegt u het toe aan het beveiligings beleid volume onderhouds taken uitvoeren .To take advantage of instant file initialization, you grant the SQL Server (MSSQLSERVER) service account with SE_MANAGE_VOLUME_NAME and add it to the Perform Volume Maintenance Tasks security policy. Als u een SQL Server platform installatie kopie voor Azure gebruikt, wordt het standaard service account (NT Service\MSSQLSERVER) niet toegevoegd aan het beveiligings beleid volume onderhouds taken uitvoeren .If you're using a SQL Server platform image for Azure, the default service account (NT Service\MSSQLSERVER) isn't added to the Perform Volume Maintenance Tasks security policy. Met andere woorden, de initialisatie van chat bestanden is niet ingeschakeld in een SQL Server Azure-platform installatie kopie.In other words, instant file initialization isn't enabled in a SQL Server Azure platform image. Nadat u het SQL Server-service account hebt toegevoegd aan het beveiligings beleid volume onderhouds taken uitvoeren , start u de SQL Server-service opnieuw.After adding the SQL Server service account to the Perform Volume Maintenance Tasks security policy, restart the SQL Server service. Er kunnen beveiligings overwegingen zijn voor het gebruik van deze functie.There could be security considerations for using this feature. Zie initialisatie van database bestandenvoor meer informatie.For more information, see Database File Initialization.

  • Autogrow is een onverwachtheid voor onverwachte groei.Autogrow is a contingency for unexpected growth. Beheer uw gegevens en houd de groei van een dag per dag niet bij automatische groei.Don't manage your data and log growth on a day-to-day basis with autogrow. Als autogrow wordt gebruikt, moet u het bestand vooraf verg Roten met de schakel optie grootte .If autogrow is used, pre-grow the file using the Size switch.

  • Zorg ervoor dat AUTOSHRINK is uitgeschakeld om onnodige overhead te voor komen die de prestaties negatief kan beïnvloeden.Make sure autoshrink is disabled to avoid unnecessary overhead that can negatively affect performance.

  • Standaard back-up en bestands locaties voor de data base instellen.Setup default backup and database file locations. Gebruik de aanbevelingen in dit artikel en breng de wijzigingen aan in het venster Server eigenschappen.Use the recommendations in this article and make the changes in the Server properties window. Zie de standaard locaties voor gegevens en logboek bestanden weer geven of wijzigen (SQL Server Management Studio)voor instructies.For instructions, see View or Change the Default Locations for Data and Log Files (SQL Server Management Studio). In de volgende scherm afbeelding ziet u waar u deze wijzigingen kunt aanbrengen:The following screenshot shows where to make these changes:

    De standaard locaties weer geven of wijzigen

  • Schakel vergrendelde pagina's in om de i/o en eventuele wissel activiteiten te verminderen.Enable locked pages to reduce IO and any paging activities. Zie voor meer informatie de optie voor het vergren delen van pagina's in het geheugen (Windows) inschakelen.For more information, see Enable the Lock Pages in Memory Option (Windows).

  • Overweeg het comprimeren van gegevens bestanden bij het overdragen van en naar Azure Stack hub, inclusief back-ups.Consider compressing any data files when transferring in/out of Azure Stack Hub, including backups.

Functie-specifieke richt lijnenFeature-specific guidance

Sommige implementaties kunnen extra prestatie voordelen bieden met behulp van geavanceerde configuratie technieken.Some deployments may achieve additional performance benefits using more advanced configuration techniques. De volgende lijst bevat enkele SQL Server functies die u kunnen helpen betere prestaties te behaalen:The following list highlights some SQL Server features that may help you achieve better performance:

  • Maak een back-up naar Azure Storage.Back up to Azure storage. Wanneer u back-ups maakt voor SQL Server die worden uitgevoerd in Azure Stack hub-Vm's, kunt u SQL Server back-up naar URL gebruiken.When making backups for SQL Server running in Azure Stack Hub VMs, you can use SQL Server Backup to URL. Deze functie is beschikbaar vanaf SQL Server 2012 SP1 CU2 en wordt aanbevolen voor het maken van een back-up naar de gekoppelde gegevens schijven.This feature is available starting with SQL Server 2012 SP1 CU2 and recommended for backing up to the attached data disks.

    Wanneer u een back-up maakt of herstelt met Azure Storage, volgt u de aanbevelingen in SQL Server back-up naar aanbevolen procedures voor URL en probleem oplossing en herstel van back-ups die zijn opgeslagen in Microsoft Azure.When you backup or restore using Azure storage, follow the recommendations provided in SQL Server Backup to URL Best Practices and Troubleshooting and Restoring From Backups Stored in Microsoft Azure. U kunt deze back-ups ook automatiseren met behulp van automatische back-up voor SQL Server in azure-vm's.You can also automate these backups using Automated Backup for SQL Server in Azure VMs.

  • Maak een back-up naar Azure Stack hub-opslag.Back up to Azure Stack Hub storage. U kunt een back-up maken naar Azure Stack hub-opslag op een vergelijk bare manier als bij het maken van een back-up naar Azure Storage.You can back up to Azure Stack Hub storage in a similar fashion as with backing up to Azure Storage. Wanneer u een back-up in SQL Server Management Studio (SSMS) maakt, moet u de configuratie gegevens hand matig invoeren.When you create a backup inside SQL Server Management Studio (SSMS), you need to enter the configuration information manually. U kunt SSMS niet gebruiken om de opslag container of de Shared Access Signature te maken.You can't use SSMS to create the storage container or the Shared Access Signature. SSMS maakt alleen verbinding met Azure-abonnementen, niet Azure Stack hub-abonnementen.SSMS only connects to Azure subscriptions, not Azure Stack Hub subscriptions. In plaats daarvan moet u het opslag account, de container en de Shared Access Signature maken in de Azure Stack hub-portal of met Power shell.Instead, you need to create the storage account, container, and Shared Access Signature in the Azure Stack Hub portal or with PowerShell.

    SQL Server back-up

    Notitie

    De Shared Access Signature is het SAS-token van de Azure Stack hub-Portal, zonder de regel '? 'The Shared Access Signature is the SAS token from the Azure Stack Hub portal, without the leading ‘?' in de teken reeks.in the string. Als u de kopieer functie van de portal gebruikt, moet u de regel '? ' verwijderenIf you use the copy function from the portal, you need to delete the leading ‘?' het token werkt binnen SQL Server.for the token to work within SQL Server.

    Zodra u het back-updoel hebt ingesteld en geconfigureerd in SQL Server, kunt u vervolgens een back-up maken van de Azure Stack hub-blobopslag.Once you have the Backup Destination set up and configured in SQL Server, you can then back up to the Azure Stack Hub blob storage.

Volgende stappenNext steps

Services gebruiken of apps bouwen voor Azure Stack hubUsing services or building apps for Azure Stack Hub