Dela via


Tjänstkvalitet för lagring

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.

Scale-Out filserver och QoS för lagring

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.

QoS-resurs för lagring visas i Klusterkärnresurser

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

Se även