Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
QoS (Storage Quality of Service) i Windows Server 2016 är ett sätt att centralt övervaka och hantera lagringsprestanda för virtuella datorer med hjälp av Hyper-V och Scale-Out filserverroller. Funktionen förbättrar automatiskt lagringsresursens rättvisa mellan flera virtuella datorer med samma filserverkluster och gör att principbaserade lägsta och högsta prestandamål kan konfigureras i enheter med normaliserad IOPS.
Du kan använda QoS för lagring i Windows Server 2016 för att göra följande:
Åtgärda problem med bullriga grannar. Som standard säkerställer QoS för lagring att en enskild virtuell dator inte kan använda alla lagringsresurser och svälta andra virtuella datorer med lagringsbandbredd.
Övervaka lagringsprestanda från slutpunkt till slutpunkt. Så snart virtuella datorer som lagras på en Scale-Out Filserver startas övervakas deras prestanda. Prestandainformation för alla virtuella datorer som körs och konfigurationen av Scale-Out-filserverklustret kan visas från en enda plats
Hantera affärsbehov för lagrings-I/O per arbetsbelastning QoS-principer för lagring definierar prestandaminimum och max för virtuella datorer och säkerställer att de uppfylls. Detta ger konsekventa prestanda för virtuella datorer, även i kompakta och överetablerade miljöer. Om policyerna inte kan uppfyllas, finns det aviseringar tillgängliga för att spåra när virtuella datorer inte följer policyn eller har ogiltiga policys tilldelade.
Det här dokumentet beskriver hur ditt företag kan dra nytta av den nya QoS-funktionen för lagring. Det förutsätter att du har tidigare kunskaper om Windows Server, Windows Server-redundansklustring, Scale-Out Filserver, Hyper-V och Windows PowerShell.
Översikt
I det här avsnittet beskrivs kraven för att använda QoS för lagring, en översikt över en programvarudefinierad lösning med hjälp av QoS för lagring och en lista över QoS-relaterade terminologier för lagring.
QoS-krav för lagring
QoS för lagring stöder två distributionsscenarier:
Hyper-V med hjälp av en Scale-Out-filserver Det här scenariot kräver båda följande:
Lagringskluster som är ett Scale-Out filserverkluster
Beräkningskluster som har minst en server med rollen Hyper-V aktiverad
För QoS för lagring krävs redundansklustret på lagringsservrar, men beräkningsservrarna måste inte finnas i ett redundanskluster. Alla servrar (används för både lagring och beräkning) måste köra Windows Server 2016.
Om du inte har ett Scale-Out filserverkluster distribuerat i utvärderingssyfte, kan du se stegvisa instruktioner för att skapa ett genom att använda antingen befintliga servrar eller virtuella datorer i Windows Server 2012 R2 Storage: Steg-för-steg med lagringsutrymmen, SMB-Scale-Out och delad VHDX (fysisk).
Hyper-V med klusterdelade volymer. Det här scenariot kräver båda följande:
Beräkningskluster med rollen Hyper-V aktiverad
Hyper-V med klusterdelade volymer (CSV) för lagring
Redundanskluster krävs. Alla servrar måste köra samma version av Windows Server 2016.
Använda QoS för lagring i en programvarudefinierad lagringslösning
Tjänstens lagringskvalitet är inbyggd i microsofts programvarudefinierade lagringslösning som tillhandahålls av Scale-Out Filserver och Hyper-V. Scale-Out-filservern delar ut filandelar till Hyper-V-servrarna med hjälp av SMB3-protokollet. En ny principhanterare har lagts till i filserverklustret, som tillhandahåller central övervakning av lagringsprestanda.
Bild 1: Använda QoS för lagring i en programvarudefinierad lagringslösning i Scale-Out filserver
När Hyper-V servrar startar virtuella datorer övervakas de av Principhanteraren. Principhanteraren kommunicerar QoS-principen för lagring och eventuella begränsningar eller reservationer tillbaka till Hyper-V-servern, som styr prestandan för den virtuella datorn efter behov.
När det finns ändringar i QoS-principer för lagring eller prestandakrav från virtuella datorer meddelar Principhanteraren Hyper-V servrarna att anpassa sitt beteende. Den här feedbackloopen säkerställer att alla virtuella datorers virtuella hårddiskar presterar konsekvent enligt den fördefinierade lagringspolicyn för QoS.
Ordlista
Begrepp | Beskrivning |
---|---|
Normaliserad IOPS | All lagringsanvändning mäts i "Normaliserad IOPS". Det här är ett antal åtgärder för in- och utdata för lagring per sekund. Alla I/O som är 8 KB eller mindre betraktas som en normaliserad I/O. Alla I/O som är större än 8 KB behandlas som flera normaliserade IO:er. En 256 KB-begäran behandlas till exempel som 32 normaliserade IOPS. Windows Server 2016 innehåller möjligheten att ange den storlek som används för att normalisera IO:er. I lagringsklustret kan den normaliserade storleken anges och gälla för normaliseringsberäkningar i hela klustret. Standardvärdet förblir 8 KB. Den här inställningen påverkar alla virtuella datorer. (De virtuella datorer som skapas på lokala volymer påverkas också.) |
Flöde | Varje filreferens som öppnas av en Hyper-V server till en VHD- eller VHDX-fil anses vara ett "flöde". Om en virtuell dator har två anslutna virtuella hårddiskar har den ett flöde till filserverklustret per fil. Om en VHDX delas med flera virtuella datorer har den 1 flöde per virtuell dator. |
Initierarnamn | Namnet på den virtuella dator som rapporteras till Scale-Out-filservern för varje flöde. |
Initierar-ID | En identifierare som matchar det virtuella dator-ID:t. Detta kan alltid användas för att unikt identifiera enskilda flöden virtuella datorer även om de virtuella datorerna har samma InitiatorName. |
Riktlinje | QoS-principer för lagring lagras i klusterdatabasen och har följande egenskaper: PolicyId, MinimumIOPS, MaximumIOPS, ParentPolicy och PolicyType. |
Policynummer | Unik identifierare för en princip. Den genereras som standard, men kan anges om så önskas. |
Minsta IOPS | Minsta normaliserade IOPS som tillhandahålls av en policy. Kallas även "Reservation". |
Maximala IOPS | Maximal normaliserad IOPS som begränsas av en princip. Kallas även "Gräns". |
Sammansatt | En principtyp där den angivna MinimumIOPS & MaximumIOPS och Bandbredd delas mellan alla flöden som tilldelats principen. Alla virtuella hårddiskar som tilldelats policyn på lagringssystemet har en enda allokering av I/O-bandbredd att dela på. |
Dedikerad | En principtyp där den angivna minsta och högstaIOPS och bandbredden hanteras för enskilda VHD/VHDx. |
Så här konfigurerar du QoS för lagring och övervakar grundläggande prestanda
I det här avsnittet beskrivs hur du aktiverar den nya QoS-funktionen för lagring och hur du övervakar lagringsprestanda utan att tillämpa anpassade principer.
Konfigurera QoS för lagring i ett lagringskluster
I det här avsnittet beskrivs hur du aktiverar QoS för lagring på ett nytt eller ett befintligt redundanskluster och Scale-Out filserver som kör Windows Server 2016.
Konfigurera QoS för lagring vid en ny installation
Om du har konfigurerat ett nytt redundanskluster och konfigurerat en klusterdelad volym (CSV) på Windows Server 2016 konfigureras QoS-funktionen för lagring automatiskt.
Verifiera QoS-installation för lagring
När du har skapat ett Failover-kluster och konfigurerat en CSV-disk visas Storage QoS-resurs som en klusterkärnresurs och är synlig i både Failover-klusterhanteraren och Windows PowerShell. Avsikten är att redundansklustersystemet ska hantera den här resursen och du bör inte behöva utföra några åtgärder mot den här resursen. Vi visar den i både Klusterhanteraren för växling vid fel och PowerShell för att vara konsekventa med de andra systemresurserna för redundanskluster som den nya hälsotjänsten.
Bild 2: Storage QoS-resurs visas som en kärnresurs i klustret i Klusterhanteraren för övergång vid fel
Använd följande PowerShell-cmdlet för att visa status för QoS-resurs för lagring.
PS C:\> Get-ClusterResource -Name "Storage Qos Resource"
Name State OwnerGroup ResourceType
---- ----- ---------- ------------
Storage Qos Resource Online Cluster Group Storage QoS Policy Manager
Konfigurera QoS för lagring i ett beräkningskluster
Den Hyper-V rollen i Windows Server 2016 har inbyggt stöd för QoS för lagring och är aktiverad som standard.
Installera verktyg för fjärradministration för att hantera QoS-principer för lagring från fjärrdatorer
Du kan hantera QoS-principer för lagring och övervaka flöden från datavärdar med hjälp av verktyg för fjärradministration av servrar. Dessa är tillgängliga som valfria funktioner i alla Windows Server 2016-installationer och kan laddas ned separat för Windows 10 på webbplatsen för Microsoft Download Center .
Den valfria funktionen RSAT-Clustering innehåller Windows PowerShell-modulen för fjärrhantering av redundanskluster, inklusive QoS för lagring.
- Windows PowerShell: Add-WindowsFeature RSAT-Clustering
Den valfria funktionen RSAT-Hyper-V-Tools innehåller Windows PowerShell-modulen för fjärrhantering av Hyper-V.
- Windows PowerShell: Add-WindowsFeature RSAT-Hyper-V-verktyg
Distribuera virtuella datorer för att köra arbetsbelastningar för testning
Du behöver vissa virtuella datorer som lagras på Scale-Out-filservern med relevanta arbetsbelastningar. Några tips om hur du simulerar belastning och gör vissa stresstester finns på följande sida för ett rekommenderat verktyg (DiskSpd) och några exempel på användning: DiskSpd, PowerShell och lagringsprestanda: mäta IOPS, dataflöde och svarstid för både lokala diskar och SMB-filresurser.
Exempelscenarier som visas i den här guiden är fem virtuella datorer. BuildVM1, BuildVM2, BuildVM3 och BuildVM4 kör en skrivbordsarbetsbelastning med låga till måttliga lagringskrav. TestVm1 kör ett prestandamått för onlinetransaktionsbearbetning med hög lagringsefterfrågan.
Visa aktuella mått för lagringsprestanda
Det här avsnittet innehåller:
Så här ställer du frågor mot flöden med hjälp av cmdleten
Get-StorageQosFlow
.Så här visar du prestanda för en volym med hjälp av cmdleten
Get-StorageQosVolume
.
Fråga flöden med hjälp av cmdleten Get-StorageQosFlow
Cmdleten Get-StorageQosFlow visar alla aktuella flöden som initieras av Hyper-V servrar. Alla data samlas in av Scale-Out-filserverklustret, därför kan cmdleten användas på valfri nod i Scale-Out-filserverklustret eller mot en fjärrserver med hjälp av parametern -CimSession.
Följande exempelkommando visar hur du visar alla filer som öppnas av Hyper-V på servern med Get-StorageQoSFlow.
PS C:\> Get-StorageQosFlow
InitiatorName InitiatorNodeNam StorageNodeName FilePath Status
e
------------- ---------------- --------------- -------- ------
plang-fs3.pla... C:\ClusterSt... Ok
plang-fs2.pla... C:\ClusterSt... Ok
plang-fs1.pla... C:\ClusterSt... Ok
plang-fs3.pla... C:\ClusterSt... Ok
plang-fs2.pla... C:\ClusterSt... Ok
plang-fs1.pla... C:\ClusterSt... Ok
TR20-VMM plang-z400.pl... plang-fs1.pla... C:\ClusterSt... Ok
BuildVM4 plang-c2.plan... plang-fs1.pla... C:\ClusterSt... Ok
WinOltp1 plang-c1.plan... plang-fs1.pla... C:\ClusterSt... Ok
BuildVM3 plang-c2.plan... plang-fs1.pla... C:\ClusterSt... Ok
BuildVM1 plang-c2.plan... plang-fs1.pla... C:\ClusterSt... Ok
TR20-VMM plang-z400.pl... plang-fs1.pla... C:\ClusterSt... Ok
BuildVM2 plang-c2.plan... plang-fs1.pla... C:\ClusterSt... Ok
TR20-VMM plang-z400.pl... plang-fs1.pla... C:\ClusterSt... Ok
plang-fs3.pla... C:\ClusterSt... Ok
plang-fs2.pla... C:\ClusterSt... Ok
BuildVM4 plang-c2.plan... plang-fs2.pla... C:\ClusterSt... Ok
WinOltp1 plang-c1.plan... plang-fs2.pla... C:\ClusterSt... Ok
BuildVM3 plang-c2.plan... plang-fs2.pla... C:\ClusterSt... Ok
WinOltp1 plang-c1.plan... plang-fs2.pla... C:\ClusterSt... Ok
plang-fs1.pla... C:\ClusterSt... Ok
Följande exempelkommando är formaterat för att visa namn på virtuella datorer, Hyper-V värdnamn, IOPS- och VHD-filnamn, sorterade efter IOPS.
PS C:\> Get-StorageQosFlow | Sort-Object StorageNodeIOPS -Descending | ft InitiatorName, @{Expression={$_.InitiatorNodeName.Substring(0,$_.InitiatorNodeName.IndexOf('.'))};Label="InitiatorNodeName"}, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName InitiatorNodeName StorageNodeIOPS Status File
------------- ----------------- --------------- ------ ----
WinOltp1 plang-c1 3482 Ok IOMETER.VHDX
BuildVM2 plang-c2 544 Ok BUILDVM2.VHDX
BuildVM1 plang-c2 497 Ok BUILDVM1.VHDX
BuildVM4 plang-c2 316 Ok BUILDVM4.VHDX
BuildVM3 plang-c2 296 Ok BUILDVM3.VHDX
BuildVM4 plang-c2 195 Ok WIN8RTM_ENTERPRISE_VL_BU...
TR20-VMM plang-z400 156 Ok DATA1.VHDX
BuildVM3 plang-c2 81 Ok WIN8RTM_ENTERPRISE_VL_BU...
WinOltp1 plang-c1 65 Ok BOOT.VHDX
18 Ok DefaultFlow
12 Ok DefaultFlow
WinOltp1 plang-c1 4 Ok 9914.0.AMD64FRE.WINMAIN....
TR20-VMM plang-z400 4 Ok DATA2.VHDX
TR20-VMM plang-z400 3 Ok BOOT.VHDX
0 Ok DefaultFlow
0 Ok DefaultFlow
0 Ok DefaultFlow
0 Ok DefaultFlow
0 Ok DefaultFlow
0 Ok DefaultFlow
0 Ok DefaultFlow
Följande exempelkommando visar hur du filtrerar flöden baserat på InitiatorName för att enkelt hitta lagringsprestanda och inställningar för en specifik virtuell dator.
PS C:\> Get-StorageQosFlow -InitiatorName BuildVm1 | Format-List
FilePath : C:\ClusterStorage\Volume2\SHARES\TWO\BUILDWORKLOAD\BUILDVM1.V
HDX
FlowId : ebfecb54-e47a-5a2d-8ec0-0940994ff21c
InitiatorId : ae4e3dd0-3bde-42ef-b035-9064309e6fec
InitiatorIOPS : 464
InitiatorLatency : 26.2684
InitiatorName : BuildVM1
InitiatorNodeName : plang-c2.plang.nttest.microsoft.com
Interval : 300000
Limit : 500
PolicyId : 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
Reservation : 500
Status : Ok
StorageNodeIOPS : 475
StorageNodeLatency : 7.9725
StorageNodeName : plang-fs1.plang.nttest.microsoft.com
TimeStamp : 2/12/2015 2:58:49 PM
VolumeId : 4d91fc3a-1a1e-4917-86f6-54853b2a6787
PSComputerName :
MaximumIops : 500
MinimumIops : 500
De data som returneras av cmdleten Get-StorageQosFlow
innehåller:
Värdnamnet Hyper-V (InitiatorNodeName).
Den virtuella datorns namn och dess ID (InitiatorName och InitiatorId)
Senaste genomsnittliga prestanda som observerats av Hyper-V-värden för den virtuella disken (InitiatorIOPS, InitiatorLatency)
Senaste genomsnittliga prestanda som observerats av lagringsklustret för den virtuella disken (StorageNodeIOPS, StorageNodeLatency)
Aktuell princip som tillämpas på filen, om någon, och den resulterande konfigurationen (PolicyId, Reservation, Limit)
Status för principen
Ok – Det finns inga problem
InsufficientThroughput – En princip tillämpas, men det går inte att leverera minsta IOPS. Detta kan inträffa om minimivärdet för en virtuell dator, eller alla virtuella datorer tillsammans, är mer än vad lagringsvolymen kan leverera.
UnknownPolicyId – En policy tilldelades den virtuella maskinen på värden Hyper-V, men saknas från filservern. Den här principen bör tas bort från konfigurationen av den virtuella datorn, eller så bör en matchande princip skapas i filserverklustret.
Visa prestanda för en volym med hjälp av Get-StorageQosVolume
Prestandamått för lagring samlas också in på volymnivå per lagring, utöver prestandamåtten per flöde. Det gör det enkelt att se den genomsnittliga totala användningen i normaliserad IOPS, svarstid och aggregeringsgränser och reservationer som tillämpas på en volym.
PS C:\> Get-StorageQosVolume | Format-List
Interval : 300000
IOPS : 0
Latency : 0
Limit : 0
Reservation : 0
Status : Ok
TimeStamp : 2/12/2015 2:59:38 PM
VolumeId : 434f561f-88ae-46c0-a152-8c6641561504
PSComputerName :
MaximumIops : 0
MinimumIops : 0
Interval : 300000
IOPS : 1097
Latency : 3.1524
Limit : 0
Reservation : 1568
Status : Ok
TimeStamp : 2/12/2015 2:59:38 PM
VolumeId : 4d91fc3a-1a1e-4917-86f6-54853b2a6787
PSComputerName :
MaximumIops : 0
MinimumIops : 1568
Interval : 300000
IOPS : 5354
Latency : 6.5084
Limit : 0
Reservation : 781
Status : Ok
TimeStamp : 2/12/2015 2:59:38 PM
VolumeId : 0d2fd367-8d74-4146-9934-306726913dda
PSComputerName :
MaximumIops : 0
MinimumIops : 781
Skapa och övervaka QoS-principer för lagring
Det här avsnittet beskriver hur du skapar QoS-principer för lagring, tillämpar dessa principer på virtuella datorer och övervakar ett lagringskluster när principer har tillämpats.
Skapa QoS-principer för lagring
QoS-principer för lagring definieras och hanteras i Scale-Out filserverklustret. Du kan skapa så många principer som behövs för flexibla distributioner (upp till 10 000 per lagringskluster).
Varje VHD/VHDX-fil som tilldelats till en virtuell dator kan konfigureras med en policy. Olika filer och virtuella datorer kan använda samma princip, eller så kan de konfigureras med separata principer. Om flera VHD/VHDX-filer eller flera virtuella datorer konfigureras med samma princip aggregeras de tillsammans och delar MinimumIOPS och MaximumIOPS rättvist. Om du använder separata principer för flera VHD/VHDX-filer eller virtuella datorer spåras lägsta och högsta för var och en separat.
Om du skapar flera liknande principer för olika virtuella datorer och de virtuella datorerna har samma lagringsbehov får de en liknande andel IOPS. Om en virtuell dator kräver mer och den andra mindre följer IOPS den efterfrågan.
Typer av QoS-principer för lagring
Det finns två typer av principer: aggregerade (tidigare kallade SingleInstance) och Dedicated (tidigare kallat MultiInstance). Aggregerade principer tillämpar max och minimum för den kombinerade uppsättningen VHD/VHDX-filer och virtuella datorer där de gäller. I själva verket delar de en angiven uppsättning IOPS och bandbredd. Särskilda policys tillämpar minimi- och maxvärdena för varje VHD/VHDx separat. Det gör det enkelt att skapa en enda princip som tillämpar liknande gränser på flera VHD/VHDx-filer.
Om du till exempel skapar en aggregerad princip med minst 300 IOPS och högst 500 IOPS. Om du tillämpar den här principen på 5 olika VHD/VHDx-filer ser du till att de 5 VHD/VHDx-filerna som kombineras garanteras minst 300 IOPS (om det finns efterfrågan och lagringssystemet kan tillhandahålla den prestandan) och högst 500 IOPS. Om VHD/VHDx-filerna har liknande hög efterfrågan på IOPS och lagringssystemet kan hänga med, får varje VHD/VHDx-fil cirka 100 IOPS.
Men om du skapar en dedikerad princip med liknande gränser och tillämpar den på VHD/VHDx-filer på 5 olika virtuella datorer får varje virtuell dator minst 300 IOPS och högst 500 IOPS. Om de virtuella datorerna har liknande hög efterfrågan på IOPS och lagringssystemet kan hänga med får varje virtuell dator cirka 500 IOPS. Om en av de virtuella datorerna har flera VHD/VHDx-filer med samma Konfigurerade MulitInstance-princip delar de gränsen så att den totala I/O från den virtuella datorn från filer med den principen inte överskrider gränserna.
Om du har en grupp VHD-/VHDx-filer som du vill ha samma prestandaegenskaper och du inte vill ha problem med att skapa flera, liknande principer, kan du därför använda en enda dedikerad princip och tillämpa på filerna för varje virtuell dator.
Behåll antalet VHD/VHDx-filer som tilldelats till en enda aggregerad princip till 20 eller mindre. Den här policytypen var avsedd för att sammanföra några virtuella maskiner i ett kluster.
Skapa och tillämpa en dedikerad princip
Använd först cmdleten New-StorageQosPolicy
för att skapa en princip på Scale-Out-filservern enligt följande exempel:
$desktopVmPolicy = New-StorageQosPolicy -Name Desktop -PolicyType Dedicated -MinimumIops 100 -MaximumIops 200
Tillämpa den sedan på lämpliga virtuella datorers hårddiskar på Hyper-V-servern. Observera PolicyId från föregående steg eller lagra det i en variabel i dina skript.
På Scale-Out-filservern skapar du en QoS-princip för lagring med PowerShell och hämtar dess princip-ID enligt följande exempel:
PS C:\> $desktopVmPolicy = New-StorageQosPolicy -Name Desktop -PolicyType Dedicated -MinimumIops 100 -MaximumIops 200
C:\> $desktopVmPolicy.PolicyId
Guid
----
1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
På Hyper-V-servern med PowerShell anger du QoS-principen för lagring med hjälp av princip-ID:t enligt följande exempel:
Get-VM -Name Build* | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
Bekräfta att principerna tillämpas
Använd Get-StorageQosFlow
PowerShell-cmdleten för att bekräfta att MinimumIOPS och MaximumIOPS har tillämpats på lämpliga flöden enligt följande exempel.
PS C:\> Get-StorageQoSflow | Sort-Object InitiatorName |
ft InitiatorName, Status, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName Status MinimumIops MaximumIops StorageNodeIOPS Status File
------------- ------ ----------- ----------- --------------- ------ ----
BuildVM1 Ok 100 200 250 Ok BUILDVM1.VHDX
BuildVM2 Ok 100 200 251 Ok BUILDVM2.VHDX
BuildVM3 Ok 100 200 252 Ok BUILDVM3.VHDX
BuildVM4 Ok 100 200 233 Ok BUILDVM4.VHDX
TR20-VMM Ok 33 666 1 Ok DATA2.VHDX
TR20-VMM Ok 33 666 5 Ok DATA1.VHDX
TR20-VMM Ok 33 666 4 Ok BOOT.VHDX
WinOltp1 Ok 0 0 0 Ok 9914.0.AMD6...
WinOltp1 Ok 0 0 5166 Ok IOMETER.VHDX
WinOltp1 Ok 0 0 0 Ok BOOT.VHDX
På Hyper-V-servern kan du också använda det angivna skriptet Get-VMHardDiskDrivePolicy.ps1 för att se vilken princip som tillämpas på en virtuell hårddiskenhet.
PS C:\> Get-VM -Name BuildVM1 | Get-VMHardDiskDrive | Format-List
Path : \\plang-fs.plang.nttest.microsoft.com\two\BuildWorkload
\BuildVM1.vhdx
DiskNumber :
MaximumIOPS : 0
MinimumIOPS : 0
QoSPolicyID : 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
SupportPersistentReservations : False
ControllerLocation : 0
ControllerNumber : 0
ControllerType : IDE
PoolName : Primordial
Name : Hard Drive
Id : Microsoft:AE4E3DD0-3BDE-42EF-B035-9064309E6FEC\83F8638B
-8DCA-4152-9EDA-2CA8B33039B4\0\0\D
VMId : ae4e3dd0-3bde-42ef-b035-9064309e6fec
VMName : BuildVM1
VMSnapshotId : 00000000-0000-0000-0000-000000000000
VMSnapshotName :
ComputerName : PLANG-C2
IsDeleted : False
Fråga efter QoS-principer för lagring
Get-StorageQosPolicy
visar en lista över alla konfigurerade principer och deras status på en Scale-Out filserver.
PS C:\> Get-StorageQosPolicy
Name MinimumIops MaximumIops Status
---- ----------- ----------- ------
Default 0 0 Ok
Limit500 0 500 Ok
SilverVm 500 500 Ok
Desktop 100 200 Ok
Limit500 0 0 Ok
VMM 100 2000 Ok
Vdi 1 100 Ok
Status kan ändras över tid baserat på hur systemet presterar.
Ok – Alla flöden som använder den principen får sin begärda MinimumIOPS.
InsufficientThroughput – Ett eller flera av de flöden som använder den här principen får inte lägsta IOPS
Du kan också skicka en princip till för Get-StorageQosPolicy
att hämta status för alla flöden som har konfigurerats för att använda principen enligt följande:
PS C:\> Get-StorageQosPolicy -Name Desktop | Get-StorageQosFlow | ft InitiatorName, *IOPS, Status, FilePath -AutoSize
InitiatorName MaximumIops MinimumIops InitiatorIOPS StorageNodeIOPS Status FilePat
h
------------- ----------- ----------- ------------- --------------- ------ -------
BuildVM4 100 50 187 17 Ok C:\C...
BuildVM3 100 50 194 25 Ok C:\C...
BuildVM1 200 100 195 196 Ok C:\C...
BuildVM2 200 100 193 192 Ok C:\C...
BuildVM4 200 100 187 169 Ok C:\C...
BuildVM3 200 100 194 169 Ok C:\C...
Skapa en aggregerad policy
Aggregerade principer bör användas om du vill att flera virtuella hårddiskar ska dela en enda pool med IOPS och bandbredd. Om du till exempel tillämpar samma aggregerade princip på hårddiskar från två virtuella datorer delas minimivärdet mellan dem enligt efterfrågan. Båda diskarna garanteras ett kombinerat minimum och tillsammans överskrider de inte den angivna maximala IOPS- eller bandbredden.
Samma metod kan också användas för att tillhandahålla en enda allokering till alla VHD/VHDx-filer för de virtuella datorer som består av en tjänst eller som tillhör en klientorganisation i en miljö med flera värdar.
Det finns ingen skillnad i processen för att skapa dedikerade och aggregerade principer förutom den PolicyType som har angetts.
I följande exempel visas hur du skapar en Aggregerad QoS-princip för lagring och hämtar dess policyID på en Scale-Out-filserver:
PS C:\> $highPerf = New-StorageQosPolicy -Name SqlWorkload -MinimumIops 1000 -MaximumIops 5000 -PolicyType Aggregated
[plang-fs]: PS C:\Users\plang\Documents> $highPerf.PolicyId
Guid
----
1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
I följande exempel visas hur du tillämpar QoS-principen för lagring på Hyper-V server med hjälp av det policyID som erhölls i föregående exempel:
PS C:\> Get-VM -Name WinOltp1 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
I följande exempel visas hur du visar effekterna av QoS-principen för lagring från filservern:
PS C:\> Get-StorageQosFlow -InitiatorName WinOltp1 | format-list InitiatorName, PolicyId, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, FilePath
InitiatorName : WinOltp1
PolicyId : 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
MinimumIops : 250
MaximumIops : 1250
StorageNodeIOPS : 0
FilePath : C:\ClusterStorage\Volume2\SHARES\TWO\BASEVHD\9914.0.AMD64FRE.WIN
MAIN.141218-1718_SERVER_SERVERDATACENTER_EN-US.VHDX
InitiatorName : WinOltp1
PolicyId : 2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6
MinimumIops : 250
MaximumIops : 1250
StorageNodeIOPS : 0
FilePath : C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\BOOT.VHDX
InitiatorName : WinOltp1
PolicyId : 3cccccc3-4dd4-5ee5-6ff6-7aaaaaaaaaa7
MinimumIops : 1000
MaximumIops : 5000
StorageNodeIOPS : 4550
FilePath : C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\IOMETER.VHDX
PS C:\> Get-StorageQosFlow -InitiatorName WinOltp1 | for
mat-list InitiatorName, PolicyId, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, FilePath
InitiatorName : WinOltp1
PolicyId : 4dddddd4-5ee5-6ff6-7aa7-8bbbbbbbbbb8
MinimumIops : 250
MaximumIops : 1250
StorageNodeIOPS : 0
FilePath : C:\ClusterStorage\Volume2\SHARES\TWO\BASEVHD\9914.0.AMD64FRE.WIN
MAIN.141218-1718_SERVER_SERVERDATACENTER_EN-US.VHDX
InitiatorName : WinOltp1
PolicyId : 5eeeeee5-6ff6-7aa7-8bb8-9cccccccccc9
MinimumIops : 250
MaximumIops : 1250
StorageNodeIOPS : 0
FilePath : C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\BOOT.VHDX
InitiatorName : WinOltp1
PolicyId : 6ffffff6-7aa7-8bb8-9cc9-0dddddddddd0
MinimumIops : 1000
MaximumIops : 5000
StorageNodeIOPS : 4550
FilePath : C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\IOMETER.VHDX
Varje virtuell hårddisk har värdet MinimumIOPS och MaximumIOPS och MaximumIobandwidth justerat baserat på belastningen. Detta säkerställer att den totala mängden bandbredd som används för gruppen med diskar ligger inom det intervall som definieras av principen. I exemplet ovan är de två första diskarna inaktiva och den tredje tillåts använda upp till maximalT IOPS. Om de två första diskarna börjar utfärda I/O igen sänks den maximala IOPS för den tredje disken automatiskt.
Ändra en befintlig princip
Egenskaperna för Name, MinimumIOPS, MaximumIOPS och MaximumIoBandwidth kan ändras när en princip har skapats. Principtypen (aggregerad/dedikerad) kan dock inte ändras när principen har skapats.
Följande Windows PowerShell-cmdlet visar hur du ändrar egenskapen MaximumIOPS för en befintlig princip:
[DBG]: PS C:\demoscripts>> Get-StorageQosPolicy -Name SqlWorkload | Set-StorageQosPolicy -MaximumIops 6000
Följande cmdlet verifierar ändringen:
PS C:\> Get-StorageQosPolicy -Name SqlWorkload
Name MinimumIops MaximumIops Status
---- ----------- ----------- ------
SqlWorkload 1000 6000 Ok
[plang-fs1]: PS C:\Users\plang\Documents> Get-StorageQosPolicy -Name SqlWorkload | Get-Storag
eQosFlow | Format-Table InitiatorName, PolicyId, MaximumIops, MinimumIops, StorageNodeIops -A
utoSize
InitiatorName PolicyId MaximumIops MinimumIops StorageNodeIops
------------- -------- ----------- ----------- ---------------
WinOltp1 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5 1500 250 0
WinOltp1 2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6 1500 250 0
WinOltp1 3cccccc3-4dd4-5ee5-6ff6-7aaaaaaaaaa7 6000 1000 4507
Så här identifierar och åtgärdar du vanliga problem
I det här avsnittet beskrivs hur du hittar virtuella datorer med ogiltiga QoS-principer för lagring, hur du återskapar en matchande princip, hur du tar bort en princip från en virtuell dator och hur du identifierar virtuella datorer som inte uppfyller QoS-principkraven för lagring.
Identifiera virtuella datorer med ogiltiga principer
Om en princip tas bort från filservern innan den tas bort från en virtuell dator fortsätter den virtuella datorn att köras som om ingen princip tillämpades.
PS C:\> Get-StorageQosPolicy -Name SqlWorkload | Remove-StorageQosPolicy
Confirm
Are you sure you want to perform this action?
Performing the operation "DeletePolicy" on target "MSFT_StorageQoSPolicy (PolicyId =
"1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5")".
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"):
Statusen för flödena visar nu "UnknownPolicyId"
PS C:\> Get-StorageQoSflow | Sort-Object InitiatorName | ft InitiatorName, Status, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName Status MinimumIops MaximumIops StorageNodeIOPS Status File
------------- ------ ----------- ----------- --------------- ------ ----
Ok 0 0 0 Ok Def...
Ok 0 0 10 Ok Def...
Ok 0 0 13 Ok Def...
Ok 0 0 0 Ok Def...
Ok 0 0 0 Ok Def...
Ok 0 0 0 Ok Def...
Ok 0 0 0 Ok Def...
Ok 0 0 0 Ok Def...
Ok 0 0 0 Ok Def...
BuildVM1 Ok 100 200 193 Ok BUI...
BuildVM2 Ok 100 200 196 Ok BUI...
BuildVM3 Ok 50 64 17 Ok WIN...
BuildVM3 Ok 50 136 179 Ok BUI...
BuildVM4 Ok 50 100 23 Ok WIN...
BuildVM4 Ok 100 200 173 Ok BUI...
TR20-VMM Ok 33 666 2 Ok DAT...
TR20-VMM Ok 25 975 3 Ok DAT...
TR20-VMM Ok 75 1025 12 Ok BOO...
WinOltp1 UnknownPolicyId 0 0 0 UnknownPolicyId 991...
WinOltp1 UnknownPolicyId 0 0 4926 UnknownPolicyId IOM...
WinOltp1 UnknownPolicyId 0 0 0 UnknownPolicyId BOO...
Återskapa en matchande QoS-princip för lagring
Om en princip oavsiktligt har tagits bort kan du skapa en ny med hjälp av det gamla PolicyId. Först hämtar du det policyid som behövs
PS C:\> Get-StorageQosFlow -Status UnknownPolicyId | ft InitiatorName, PolicyId -AutoSize
InitiatorName PolicyId
------------- --------
WinOltp1 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
WinOltp1 2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6
WinOltp1 3cccccc3-4dd4-5ee5-6ff6-7aaaaaaaaaa7
Skapa sedan en ny princip med hjälp av det PolicyId
PS C:\> New-StorageQosPolicy -PolicyId 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5 -PolicyType Aggregated -Name RestoredPolicy -MinimumIops 100 -MaximumIops 2000
Name MinimumIops MaximumIops Status
---- ----------- ----------- ------
RestoredPolicy 100 2000 Ok
Kontrollera slutligen att det har tillämpats.
PS C:\> Get-StorageQoSflow | Sort-Object InitiatorName | ft InitiatorName, Status, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName Status MinimumIops MaximumIops StorageNodeIOPS Status File
------------- ------ ----------- ----------- --------------- ------ ----
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 8 Ok DefaultFlow
Ok 0 0 9 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
Ok 0 0 0 Ok DefaultFlow
BuildVM1 Ok 100 200 192 Ok BUILDVM1.VHDX
BuildVM2 Ok 100 200 193 Ok BUILDVM2.VHDX
BuildVM3 Ok 50 100 24 Ok WIN8RTM_ENTERPRISE_VL...
BuildVM3 Ok 100 200 166 Ok BUILDVM3.VHDX
BuildVM4 Ok 50 100 12 Ok WIN8RTM_ENTERPRISE_VL...
BuildVM4 Ok 100 200 178 Ok BUILDVM4.VHDX
TR20-VMM Ok 33 666 2 Ok DATA2.VHDX
TR20-VMM Ok 33 666 2 Ok DATA1.VHDX
TR20-VMM Ok 33 666 10 Ok BOOT.VHDX
WinOltp1 Ok 25 500 0 Ok 9914.0.AMD64FRE.WINMA...
Ta bort QoS-principer för lagring
Om principen har tagits bort avsiktligt, eller om en virtuell dator har importerats med en princip som du inte behöver, kan den tas bort.
PS C:\> Get-VM -Name WinOltp1 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID $null
När PolicyId har tagits bort från inställningarna för den virtuella hårddisken blir statusen "Ok" och inget minimum eller maximum tillämpas.
PS C:\> Get-StorageQoSflow | Sort-Object InitiatorName | ft InitiatorName, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName MinimumIops MaximumIops StorageNodeIOPS Status File
------------- ----------- ----------- --------------- ------ ----
0 0 0 Ok DefaultFlow
0 0 16 Ok DefaultFlow
0 0 12 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
BuildVM1 100 200 197 Ok BUILDVM1.VHDX
BuildVM2 100 200 192 Ok BUILDVM2.VHDX
BuildVM3 9 9 23 Ok WIN8RTM_ENTERPRISE_VL_BUILDW...
BuildVM3 91 191 171 Ok BUILDVM3.VHDX
BuildVM4 8 8 18 Ok WIN8RTM_ENTERPRISE_VL_BUILDW...
BuildVM4 92 192 163 Ok BUILDVM4.VHDX
TR20-VMM 33 666 2 Ok DATA2.VHDX
TR20-VMM 33 666 1 Ok DATA1.VHDX
TR20-VMM 33 666 5 Ok BOOT.VHDX
WinOltp1 0 0 0 Ok 9914.0.AMD64FRE.WINMAIN.1412...
WinOltp1 0 0 1811 Ok IOMETER.VHDX
WinOltp1 0 0 0 Ok BOOT.VHDX
Hitta virtuella datorer som inte uppfyller QoS-principer för lagring
Statusen InsufficientThroughput tilldelas till alla flöden som:
Ha en minsta definierad IOPS-uppsättning satt av riktlinjer.
Initierar I/O med en hastighet som uppfyller eller överskrider minimikraven. Och
Uppnår inte den minsta IOP-nivån
PS C:\> Get-StorageQoSflow | Sort-Object InitiatorName | ft InitiatorName, MinimumIOPS, MaximumIOPS, StorageNodeIOPS, Status, @{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"} -AutoSize
InitiatorName MinimumIops MaximumIops StorageNodeIOPS Status File
------------- ----------- ----------- --------------- ------ ----
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 15 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
0 0 0 Ok DefaultFlow
BuildVM3 50 100 20 Ok WIN8RTM_ENTE...
BuildVM3 100 200 174 Ok BUILDVM3.VHDX
BuildVM4 50 100 11 Ok WIN8RTM_ENTE...
BuildVM4 100 200 188 Ok BUILDVM4.VHDX
TR20-VMM 33 666 3 Ok DATA1.VHDX
TR20-VMM 78 1032 180 Ok BOOT.VHDX
TR20-VMM 22 968 4 Ok DATA2.VHDX
WinOltp1 3750 5000 0 Ok 9914.0.AMD64...
WinOltp1 15000 20000 11679 InsufficientThroughput IOMETER.VHDX
WinOltp1 3750 5000 0 Ok BOOT.VHDX
Du kan fastställa flöden för alla statusar, inklusive InsufficientThroughput enligt följande exempel:
PS C:\> Get-StorageQosFlow -Status InsufficientThroughput | fl
FilePath : C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\IOMETER.VHDX
FlowId : 1ca356ff-fd33-5b5d-b60a-2c8659dc803e
InitiatorId : 2ceabcef-2eba-4f1b-9e66-10f960b50bbf
InitiatorIOPS : 12168
InitiatorLatency : 22.983
InitiatorName : WinOltp1
InitiatorNodeName : plang-c1.plang.nttest.microsoft.com
Interval : 300000
Limit : 20000
PolicyId : 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5
Reservation : 15000
Status : InsufficientThroughput
StorageNodeIOPS : 12181
StorageNodeLatency : 22.0514
StorageNodeName : plang-fs2.plang.nttest.microsoft.com
TimeStamp : 2/13/2015 12:07:30 PM
VolumeId : 0d2fd367-8d74-4146-9934-306726913dda
PSComputerName :
MaximumIops : 20000
MinimumIops : 15000
Övervaka hälsotillstånd med hjälp av QoS för lagring
Den nya hälsotjänsten förenklar övervakningen av lagringsklustret, vilket ger en enda plats där du kan söka efter eventuella åtgärdsbara händelser i någon av noderna. I det här avsnittet beskrivs hur du övervakar hälsotillståndet för ditt lagringskluster med hjälp av cmdleten debug-storagesubsystem
.
Visa lagringsstatus med Debug-StorageSubSystem
Klustrade lagringsutrymmen innehåller också information om hälsotillståndet för lagringsklustret på en enda plats. Detta kan hjälpa administratörer att snabbt identifiera aktuella problem i lagringsdistributioner och övervaka när problem uppstår eller avvisas.
Virtuell dator med ogiltig policy
Virtuella datorer med ogiltiga principer rapporteras också via hälsoövervakningen för lagringsundersystemet. Här är ett exempel från samma tillstånd som beskrivs i avsnittet Hitta virtuella datorer med ogiltiga principer i det här dokumentet.
C:\> Get-StorageSubSystem -FriendlyName Clustered* | Debug-StorageSubSystem
EventTime :
FaultId : 0d16d034-9f15-4920-a305-f9852abf47c3
FaultingObject :
FaultingObjectDescription : Storage QoS Policy 5d1bf221-c8f0-4368-abcf-aa139e8a7c72
FaultingObjectLocation :
FaultType : Storage QoS policy used by consumer does not exist.
PerceivedSeverity : Minor
Reason : One or more storage consumers (usually Virtual Machines) are
using a non-existent policy with id
5d1bf221-c8f0-4368-abcf-aa139e8a7c72. Consumer details:
Flow ID: 1ca356ff-fd33-5b5d-b60a-2c8659dc803e
Initiator ID: 2ceabcef-2eba-4f1b-9e66-10f960b50bbf
Initiator Name: WinOltp1
Initiator Node: plang-c1.plang.nttest.microsoft.com
File Path:
C:\ClusterStorage\Volume3\SHARES\THREE\WINOLTP1\IOMETER.VHDX
RecommendedActions : {Reconfigure the storage consumers (usually Virtual Machines)
to use a valid policy., Recreate any missing Storage QoS
policies.}
PSComputerName :
Förlorad redundans för en virtuell disk för lagringsutrymmen
I det här exemplet har ett klustrat lagringsutrymme en virtuell disk som skapats med en trevägsspegling. En misslyckad disk togs bort från systemet, men ingen ersättningsdisk lades till. Lagringsundersystemet rapporterar en redundansförlust med HealthStatus Warning, men OperationalStatus "OK eftersom volymen fortfarande är online.
PS C:\> Get-StorageSubSystem -FriendlyName Clustered*
FriendlyName HealthStatus OperationalStatus
------------ ------------ -----------------
Clustered Windows Storage o... Warning OK
[plang-fs1]: PS C:\Users\plang\Documents> Get-StorageSubSystem -FriendlyName Clustered* | Deb
ug-StorageSubSystem
EventTime :
FaultId : dfb4b672-22a6-4229-b2ed-c29d7485bede
FaultingObject :
FaultingObjectDescription : Virtual disk 'Two'
FaultingObjectLocation :
FaultType : VirtualDiskDegradedFaultType
PerceivedSeverity : Minor
Reason : Virtual disk 'Two' does not have enough redundancy remaining to
successfully repair or regenerate its data.
RecommendedActions : {Rebalance the pool, replace failed physical disks, or add new
physical disks to the storage pool, then repair the virtual
disk.}
PSComputerName :
Exempelskript för kontinuerlig övervakning av QoS för lagring
Det här avsnittet innehåller ett exempelskript som visar hur vanliga fel kan övervakas med hjälp av WMI-skript. Den är utformad som en startdel för utvecklare att hämta hälsohändelser i realtid.
Exempelskript:
param($cimSession)
# Register and display events
Register-CimIndicationEvent -Namespace root\microsoft\windows\storage -ClassName msft_storagefaultevent -CimSession $cimSession
while ($true)
{
$e = (Wait-Event)
$e.SourceEventArgs.NewEvent
Remove-Event $e.SourceIdentifier
}
Vanliga frågor och svar
Hur behåller jag en QoS-princip för lagring som tillämpas för min virtuella dator om jag flyttar dess VHD/VHDx-filer till ett annat lagringskluster
Inställningen för VHD/VHDx-filen som anger principen är GUID för ett princip-ID. När en policy skapas kan GUID anges med parametern PolicyID. Om den parametern inte anges skapas ett slumpmässigt GUID. Därför kan du hämta policy-ID på lagringsklustret där de virtuella datorerna för närvarande lagrar sina VHD/VHDx-filer och skapa en identisk policy i mållagringsklustret och sedan specificera att den ska skapas med samma GUID. När de virtuella datorfilerna flyttas till de nya lagringsklusterna gäller principen med samma GUID.
System Center Virtual Machine Manager kan användas för att tillämpa principer i flera lagringskluster, vilket gör det här scenariot mycket enklare.
Varför ser jag inte att ändringen av QoS-principen för lagring träder i kraft omedelbart när jag kör Get-StorageQoSFlow?
Om du har ett flöde som når maximalt en princip och du ändrar principen så att den antingen blir högre eller lägre, och sedan omedelbart fastställer svarstiden/IOPS/BandWidth för flödena med hjälp av PowerShell-cmdletarna, tar det upp till 5 minuter att se de fullständiga effekterna av principändringen på flödena. De nya gränserna gäller inom några sekunder, men PowerShell-cmdleten Get-StorgeQoSFlow använder ett genomsnitt av varje räknare med ett skjutfönster på 5 minuter. Om det annars visar ett aktuellt värde och du körde PowerShell-cmdleten flera gånger i rad kan du se mycket olika värden eftersom värdena för IOPS och svarstider kan variera avsevärt från en sekund till en annan.
Vilka nya funktioner har lagts till i Windows Server 2016
I Windows Server 2016 har namnen på QoS-principtypen storage bytt namn. Principtypen För flera instanser har bytt namn till Dedikerad och Enskild instans har bytt namn till aggregerad. Hanteringsbeteendet för dedikerade principer ändras också – VHD/VHDX-filer på samma virtuella dator som har samma dedikerade princip som tillämpas på dem delar inte I/O-allokeringar.
Det finns två nya QoS-funktioner för lagring i Windows Server 2016:
Maximal bandbredd
QoS för lagring i Windows Server 2016 ger möjlighet att ange den maximala bandbredd som de flöden som tilldelats principen kan använda. Parametern när du anger den i cmdletarna StorageQosPolicy är MaximumIOBandwidth och utdata uttrycks i byte per sekund. Om både MaximimIops och MaximumIOBandwidth anges i en princip kommer båda att gälla och den första som ska nås av flödena begränsar I/O för flödena.
IOPS-normalisering kan konfigureras
QoSin för lagring använder normalisering av IOPS. Standardvärdet är att använda en normaliseringsstorlek på 8 K. QoS för lagring i Windows Server 2016 ger möjlighet att ange en annan normaliseringsstorlek för lagringsklustret. Normaliseringsstorleken påverkar alla flöden i lagringsklustret och börjar gälla omedelbart (inom några sekunder) när den har ändrats. Minimivärdet är 1 KB och maxvärdet är 4 GB (rekommenderar att du inte anger mer än 4 MB eftersom det är ovanligt att ha fler än 4 MB I/O).
Något att tänka på är att samma I/O-mönster/dataflöde visas med olika IOPS-tal i QoS-utdata för lagring när du ändrar IOPS-normaliseringen på grund av ändringen i normaliseringsberäkningen. Om du jämför IOPS mellan lagringskluster kanske du också vill kontrollera vilket normaliseringsvärde var och en använder eftersom det påverkar den normaliserade IOPS-rapporten.
Exempel 1: Skapa en ny princip och visa den maximala bandbredden i lagringsklustret
I PowerShell kan du ange de enheter som ett tal uttrycks i. I följande exempel används 10 MB som maximalt bandbreddsvärde. QoS för lagring konverterar detta och sparar det som byte per sekund. Därför konverteras 10 MB till 10485760 byte per sekund.
PS C:\Windows\system32> New-StorageQosPolicy -Name HR_VMs -MaximumIops 1000 -MinimumIops 20 -MaximumIOBandwidth 10MB
Name MinimumIops MaximumIops MaximumIOBandwidth Status
---- ----------- ----------- ------------------ ------
HR_VMs 20 1000 10485760 Ok
PS C:\Windows\system32> Get-StorageQosPolicy
Name MinimumIops MaximumIops MaximumIOBandwidth Status
---- ----------- ----------- ------------------ ------
Default 0 0 0 Ok
HR_VMs 20 1000 10485760 Ok
PS C:\Windows\system32> Get-StorageQoSFlow | fL InitiatorName,FilePath,InitiatorIOPS,InitiatorLatency,InitiatorBandwidth
InitiatorName : testsQoS
FilePath : C:\ClusterStorage\Volume2\TESTSQOS\VIRTUAL HARD DISKS\TESTSQOS.VHDX
InitiatorIOPS : 5
InitiatorLatency : 1.5455
InitiatorBandwidth : 37888
Exempel 2: Hämta IOPS-normaliseringsinställningar och ange ett nytt värde
I följande exempel visas hur du hämtar IOPS-normaliseringsinställningarna för lagringskluster (standardvärdet 8 KB) och sedan anger det till 32 KB och sedan visar det igen. Observera att i det här exemplet anger du "32 KB", eftersom PowerShell tillåter att enheten anges i stället för att konverteringen till byte krävs. Utdata visar värdet i byte per sekund. Den här inställningen påverkar alla virtuella datorer. (De virtuella datorer som skapas på lokala volymer påverkas också.)
PS C:\Windows\system32> Get-StorageQosPolicyStore
IOPSNormalizationSize
---------------------
8192
PS C:\Windows\system32> Set-StorageQosPolicyStore -IOPSNormalizationSize 32KB
PS C:\Windows\system32> Get-StorageQosPolicyStore
IOPSNormalizationSize
---------------------
32768