Förklara hur du optimerar Azure Storage för virtuella SQL Server-datorer
Lagringsprestanda är en viktig komponent i ett I/O-tungt program som en databasmotor. Azure erbjuder ett brett utbud av lagringsalternativ och kan till och med skapa din lagringslösning för att uppfylla dina arbetsbelastningskrav.
Azure Storage är en robust och säker plattform som är utformad för att uppfylla olika behov i olika program. Den erbjuder ett brett utbud av skalbara lösningar som säkerställer att alla typer av lagring stöder kryptering i vila. Användare kan välja mellan en Microsoft-hanterad krypteringsnyckel eller en användardefinierad krypteringsnyckel för ökad säkerhet.
Blob Storage – Blob Storage är det som kallas objektbaserad lagring och innehåller lagringsnivåer för kall, frekvent och arkivlagring. I en SQL Server-miljö används bloblagring vanligtvis för databassäkerhetskopior med hjälp av SQL Server-säkerhetskopiera till URL-funktioner.
Fillagring – Fillagring är i praktiken en filresurs som kan monteras i en virtuell dator, utan att behöva konfigurera någon maskinvara. SQL Server kan använda Fillagring som lagringsmål för en redundansklusterinstans.
DiskLagring – Azure-hanterade diskar erbjuder blocklagring som presenteras för en virtuell dator. Dessa diskar hanteras precis som en fysisk disk på en lokal server, förutom att de är virtualiserade. Det finns flera prestandanivåer inom hanterade diskar beroende på din arbetsbelastning. Den här typen av lagring är den vanligaste typen för SQL Server-data och transaktionsloggfiler.
Azure-hanterade diskar
Azure-hanterade diskar är lagringsvolymer på blocknivå som presenteras för Virtuella Azure-datorer. Lagring på blocknivå refererar till råa lagringsvolymer som skapas och kan behandlas som en enskild hårddisk. Dessa blockenheter kan hanteras i operativsystemet och lagringsnivån är inte medveten om innehållet på disken. Alternativet att blockera lagring är objektlagring, där filer och deras metadata lagras i det underliggande lagringssystemet. Azure Blob Storage är ett exempel på en objektlagringsmodell. Objektlagring fungerar bra för många moderna utvecklingslösningar, men de flesta arbetsbelastningar som körs på virtuella datorer använder blocklagring.
Konfigurationen av dina hanterade diskar är viktig för prestanda för dina SQL Server-arbetsbelastningar. Om du flyttar från en lokal miljö är det viktigt att samla in mått som genomsnittlig disksekunder/läsning och genomsnittlig disksekunder/skrivning från Prestandaövervakaren enligt beskrivningen tidigare. Ett annat mått att samla in är I/O-åtgärder per sekund, som kan samlas in med hjälp av SQL Server: Resource Pool Stats Disk Read and Write IO/sec-räknare , som visar hur många IOPS SQL Server som fungerar som mest. Det är viktigt att förstå dina arbetsbelastningar. Du vill utforma lagringen och den virtuella datorn så att den uppfyller behoven för dessa arbetsbelastningstoppar utan att orsaka betydande svarstider. Varje typ av virtuell Azure-dator har en gräns för IOPs.
Azure-hanterade diskar finns i fyra typer:
Ultradisk – Ultra-diskar har stöd för hög I/O-arbetsbelastning för verksamhetskritiska databaser med låg svarstid.
Premium SSD – Premium SSD-diskar har högt dataflöde och låg svarstid och kan uppfylla behoven hos de flesta databasarbetsbelastningar som körs i molnet.
Standard SSD – Standard SSD är utformade för lättanvända dev/test-arbetsbelastningar eller webbservrar som utför en liten mängd I/O och kräver förutsägbar svarstid.
Standard HDD – Standard HDD:er är lämpliga för säkerhetskopior och fillagring som sällan används.
Vanligtvis använder SQL Server-arbetsbelastningar för produktion antingen Ultra disk eller Premium SSD, eller någon kombination av de två. Ultradiskar används vanligtvis där du letar efter svarstid på undermillisekunder i svarstiden. Premium-SSD:er har vanligtvis ensiffrig svarstid på millisekunder, men har lägre kostnader och större flexibilitet i designen. Premium SSD stöder också skrivskyddad cachelagring, vilket kan gynna läsintensiva databasarbetsbelastningar genom att minska antalet resor till disken. Läscachen lagras på den lokala SSD:n (D:\-enheten i Windows eller /dev/sdb1/ i Linux) vilket kan bidra till att minska antalet tur- och returresor till den faktiska disken.
Rensning av diskar för maximalt dataflöde
Ett sätt att få ut mer prestanda och volym från Azure-diskar är att strecka dina data över flera diskar. Den här tekniken gäller inte för Ultra-diskar eftersom du kan skala IOPs, dataflöde och maximal storlek oberoende av varandra på en enda disk. Men med Premium SSD kan det vara fördelaktigt att skala både IOPs och lagringsvolym. För att kunna strecka diskar i Windows lägger du till det antal diskar du vill ha till den virtuella datorn och skapar sedan en pool med lagringsutrymmen i Windows. Konfigurera inte redundans för din pool (vilket begränsar prestandan) eftersom redundansen tillhandahålls av Azure-ramverket, som behåller tre kopior av alla diskar i synkron replikering för att skydda mot diskfel. När du skapar en pool har poolen summan av IOP:erna och summan av volymen för alla diskar i poolen. Om du till exempel använde 10 P30-diskar som var och en är 1 TB och har 5 000 IOPS per disk, skulle du ha en volym på 10 TB med 50 000 tillgängliga IOP:er.
Metodtips för konfiguration av SQL Server-lagring
Det finns få rekommendationer för metodtips för SQL Server på virtuella Azure-datorer och deras lagringskonfiguration:
- Skapa en separat volym för data- och transaktionsloggfiler
- Aktivera cachelagring av läsning på datafilvolymen
- Aktivera inte cachelagring på loggfilvolymen
- Planera för ytterligare 20% ip-adresser och dataflöde när du skapar lagringen för den virtuella datorn för att hantera arbetsbelastningstoppar
- Använd D: -enheten (den lokalt anslutna SSD:n) för TempDB-filer eftersom TempDB återskapas vid omstart av servern, så det finns ingen risk för dataförlust
- Aktivera omedelbar filinitiering för att minska effekten av filtillväxtaktiviteter.
- Flytta spårningsfil- och felloggkataloger till datadiskar
- För arbetsbelastningar som kräver lagringsfördröjning under 1 millisekunder bör du överväga att använda Ultra Disk via Premium SSD.
Azure Virtual Machine-resursprovider
Ett sätt att minska komplexiteten med att skapa lagring för SQL Server på en virtuell Azure-dator är att använda SQL Server-mallarna på Azure Marketplace, vilket gör att du kan konfigurera lagringen som en del av distributionen. Du kan konfigurera IP-adresserna efter behov och mallen utför arbetet med att skapa dina lagringspooler i Windows.
Den här resursprovidern har också stöd för att lägga till TempDB på den lokala SSD-enheten och skapar en schemalagd uppgift för att skapa mappen vid start.