Uitleg over het optimaliseren van Azure Storage voor virtuele SQL Server-machines
Opslagprestaties zijn een essentieel onderdeel van een zware I/O-toepassing, zoals een database-engine. Azure biedt een breed scala aan opslagopties en kan zelfs uw opslagoplossing bouwen om te voldoen aan uw workloadvereisten.
Azure Storage is een robuust en veilig platform dat is ontworpen om te voldoen aan de diverse behoeften van verschillende toepassingen. Het biedt een breed scala aan schaalbare oplossingen, zodat alle typen opslag versleuteling in rust ondersteunen. Gebruikers kunnen kiezen tussen een door Microsoft beheerde versleutelingssleutel of een door de gebruiker gedefinieerde versleutelingssleutel voor extra beveiliging.
Blob Storage : Blob Storage wordt ook wel op objecten gebaseerde opslag genoemd en bevat koude, dynamische en archiefopslaglagen. In een SQL Server-omgeving wordt blobopslag doorgaans gebruikt voor databaseback-ups, met behulp van de back-up van SQL Server tot url-functionaliteit.
File Storage- Bestandsopslag is in feite een bestandsshare die kan worden gekoppeld in een virtuele machine, zonder dat u hardware hoeft in te stellen. SQL Server kan File Storage gebruiken als opslagdoel voor een failoverclusterexemplaren.
Disk Storage - Azure Managed Disks bieden blokopslag die wordt gepresenteerd aan een virtuele machine. Deze schijven worden net als een fysieke schijf op een on-premises server beheerd, behalve dat ze worden gevirtualiseerd. Er zijn verschillende prestatielagen binnen beheerde schijven, afhankelijk van uw workload. Dit type opslag is het meest gebruikte type voor SQL Server-gegevens- en transactielogboekbestanden.
Beheerde Azure-schijven
Azure Managed Disks zijn opslagvolumes op blokniveau die worden gepresenteerd aan virtuele Azure-machines. Opslag op blokniveau verwijst naar onbewerkte opslagvolumes die worden gemaakt en kunnen worden behandeld als een afzonderlijke harde schijf. Deze blokapparaten kunnen worden beheerd binnen het besturingssysteem en de opslaglaag is niet op de hoogte van de inhoud van de schijf. Het alternatief voor blokopslag is objectopslag, waarbij bestanden en metagegevens worden opgeslagen op het onderliggende opslagsysteem. Azure Blob Storage is een voorbeeld van een objectopslagmodel. Hoewel objectopslag goed werkt voor veel moderne ontwikkeloplossingen, maken de meeste werkbelastingen die worden uitgevoerd op virtuele machines gebruik van blokopslag.
De configuratie van uw beheerde schijven is belangrijk voor de prestaties van uw SQL Server-workloads. Als u overstapt van een on-premises omgeving, is het belangrijk om metrische gegevens vast te leggen, zoals gemiddelde schijf seconden/leestijd en gemiddelde schijf seconden/schrijfbewerking van Performance Monitor, zoals eerder beschreven. Een andere metrische waarde die moet worden vastgelegd, is de I/O-bewerkingen per seconde, die kunnen worden vastgelegd met behulp van de SQL Server: Resource Pool Stats Disk Read and Write IO/sec-tellers , die laten zien hoeveel IOPS SQL Server op zijn piek dient. Het is belangrijk om inzicht te hebben in uw workloads. U wilt uw opslag en virtuele machine ontwerpen om te voldoen aan de behoeften van deze workloadpieken zonder dat er sprake is van aanzienlijke latentie. Elk type virtuele Azure-machine heeft een limiet voor IOPS.
Beheerde Azure-schijven zijn beschikbaar in vier typen:
Ultra disk - Ultra disks ondersteunen high-IO-workloads voor bedrijfskritieke databases met lage latentie.
Premium SSD - Premium SSD-schijven zijn hoge doorvoer en lage latentie en kunnen voldoen aan de behoeften van de meeste databaseworkloads die in de cloud worden uitgevoerd.
Standard SSD - Standard SSD's zijn ontworpen voor licht gebruikte ontwikkel-/testworkloads of webservers die een kleine hoeveelheid IO uitvoeren en voorspelbare latentie vereisen.
Standard HDD - Standard HDD's zijn geschikt voor back-ups en bestandsopslag die niet vaak worden geopend.
Normaal gesproken maken productie-SQL Server-workloads gebruik van Ultra disk of Premium SSD, of een combinatie van de twee. Ultraschijven worden meestal gebruikt waar u een latentie van submilliseconden zoekt in reactietijd. Premium SSD's hebben doorgaans een reactietijd van één milliseconde, maar hebben lagere kosten en meer flexibiliteit in het ontwerp. Premium SSD's bieden ook ondersteuning voor het opslaan van leescache. Dit kan voordelen opleveren voor databaseworkloads met veel leesbewerkingen door het aantal ritten naar de schijf te verminderen. De leescache wordt opgeslagen op de lokale SSD (het D:\-station in Windows of /dev/sdb1/ op Linux), waardoor het aantal retouren naar de werkelijke schijf kan worden verminderd.
Schijven stripen voor maximale doorvoer
Een van de manieren om meer prestaties en volume uit Azure-schijven te halen, is door uw gegevens over meerdere schijven te stripen. Deze techniek is niet van toepassing op Ultra Disk, omdat u IOPS, doorvoer en maximale grootte onafhankelijk op één schijf kunt schalen. Met Premium-SSD's kan het echter nuttig zijn om zowel IOPS- als opslagvolume te schalen. Als u schijven in Windows wilt stripen, voegt u het aantal schijven toe dat u aan de virtuele machine wilt toevoegen en maakt u vervolgens een groep met opslagruimten in Windows. Configureer geen redundantie voor uw pool (waardoor uw prestaties worden beperkt) omdat de redundantie wordt geleverd door het Azure-framework, waarmee drie kopieën van alle schijven in synchrone replicatie worden opgeslagen om te beschermen tegen een schijffout. Wanneer u een pool maakt, heeft uw pool de som van de IOPS en de som van het volume van alle schijven in uw pool. Als u bijvoorbeeld 10 P30-schijven hebt gebruikt die elk 1 TB zijn en 5000 IOPS per schijf hebben, hebt u een volume van 10 TB met 50.000 IOPS beschikbaar.
Aanbevolen procedures voor sql Server-opslagconfiguratie
Er zijn enkele aanbevelingen voor aanbevolen procedures voor SQL Server op Azure-VM's en hun opslagconfiguratie:
- Een afzonderlijk volume maken voor gegevens- en transactielogboekbestanden
- Leescache inschakelen op het gegevensbestandsvolume
- Schakel geen caching in op het logboekbestandsvolume
- Plan een extra 20% IOPS en doorvoer bij het bouwen van uw opslag voor uw VM om pieken in de werkbelasting te verwerken
- Gebruik het station D: (de lokaal gekoppelde SSD) voor TempDB-bestanden omdat TempDB opnieuw wordt gemaakt bij het opnieuw opstarten van de server, dus er is geen risico op gegevensverlies
- Schakel direct initialisatie van bestanden in om de impact van bestandsgroeiactiviteiten te verminderen.
- Traceringsbestand en foutenlogboekmappen verplaatsen naar gegevensschijven
- Voor workloads waarvoor opslaglatentie van minder dan 1 milliseconden is vereist, kunt u overwegen ultraschijf te gebruiken via Premium SSD.
Resourceprovider voor virtuele Azure-machines
Een manier om de complexiteit van het bouwen van opslag voor uw SQL Server op een virtuele Azure-machine te verminderen, is het gebruik van de SQL Server-sjablonen in Azure Marketplace, waarmee u uw opslag kunt configureren als onderdeel van uw implementatie. U kunt de IOPS indien nodig configureren en de sjabloon voert het werk uit van het maken van uw opslagruimtegroepen in Windows.
Deze resourceprovider ondersteunt ook het toevoegen van TempDB aan het lokale SSD-station en maakt een geplande taak om de map te maken bij het opstarten.