Delen via


Quality of Service voor opslag

QoS (Storage Quality of Service) in Windows Server 2016 biedt een manier om de opslagprestaties voor virtuele machines centraal te bewaken en te beheren met behulp van Hyper-V en de Scale-Out bestandsserverfuncties. De functie verbetert automatisch de billijkheid van opslagresources tussen meerdere virtuele machines met hetzelfde bestandsservercluster en maakt het mogelijk om op beleid gebaseerde minimum- en maximale prestatiedoelen te configureren in eenheden van genormaliseerde IOPS.

U kunt QoS voor opslag in Windows Server 2016 gebruiken om het volgende te bereiken:

  • Los problemen met lawaaierige buren op. Standaard zorgt QoS voor opslag ervoor dat één virtuele machine niet alle opslagbronnen kan verbruiken en andere virtuele machines met opslagbandbreedte kan verhongeren.

  • Bewaak de end-to-end opslagprestaties. Zodra virtuele machines die zijn opgeslagen op een Scale-Out Bestandsserver zijn gestart, worden de prestaties gecontroleerd. Prestatiedetails van alle actieve virtuele machines en de configuratie van het Scale-Out Bestandsservercluster kunnen vanaf één locatie worden weergegeven

  • Opslag-I/O per workload bedrijfsbehoeften beheren QoS-beleid voor opslag definieert prestatieminimums en -maximum voor virtuele machines en zorgt ervoor dat aan deze vereisten wordt voldaan. Dit biedt consistente prestaties voor virtuele machines, zelfs in dichte en overprovisioned omgevingen. Als er niet aan beleid kan worden voldaan, zijn waarschuwingen beschikbaar om bij te houden wanneer VM's geen beleid meer hebben of als er ongeldig beleid is toegewezen.

In dit document wordt beschreven hoe uw bedrijf kan profiteren van de nieuwe QoS-functionaliteit voor opslag. Hierbij wordt ervan uitgegaan dat u een eerdere werkkennis hebt van Windows Server, Windows Server Failover Clustering, Scale-Out Bestandsserver, Hyper-V en Windows PowerShell.

Overview

In deze sectie worden de vereisten beschreven voor het gebruik van QoS voor opslag, een overzicht van een softwaregedefinieerde oplossing met behulp van QoS voor opslag en een lijst met QoS-gerelateerde terminologie voor opslag.

QoS-vereisten voor opslag

QoS voor opslag ondersteunt twee implementatiescenario's:

  • Hyper-V een Scale-Out bestandsserver gebruiken Voor dit scenario zijn beide van de volgende zaken vereist:

    • Opslagcluster dat een Scale-Out Bestandsservercluster is

    • Rekencluster met ten minste één server waarvoor de Hyper-V-functie is ingeschakeld

    Voor QoS voor opslag is het failovercluster vereist op opslagservers, maar de rekenservers hoeven zich niet in een failovercluster te bevinden. Op alle servers (gebruikt voor zowel Storage als Compute) moet Windows Server 2016 worden uitgevoerd.

    Als u geen Scale-Out File Server-cluster hebt geïmplementeerd voor evaluatiedoeleinden, raadpleegt u Windows Server 2012 R2 Storage stapsgewijze instructies voor het bouwen van een cluster met bestaande servers of virtuele machines : Stapsgewijs met Opslagruimten, SMB Scale-Out en Gedeelde VHDX (fysiek).<

  • Hyper-V met Cluster Shared Volumes. Voor dit scenario zijn beide van de volgende zaken vereist:

    • Rekencluster waarvoor de Hyper-V-rol is ingeschakeld

    • Hyper-V gedeelde clustervolumes (CSV) gebruiken voor opslag

Failover cluster is nodig. Op alle servers moet dezelfde versie van Windows Server 2016 worden uitgevoerd.

QoS voor opslag gebruiken in een softwaregedefinieerde opslagoplossing

Quality of Service voor opslag is ingebouwd in de softwaregedefinieerde opslagoplossing van Microsoft die wordt geleverd door Scale-Out Bestandsserver en Hyper-V. De Scale-Out Bestandsserver maakt bestandsshares beschikbaar voor de Hyper-V-servers met behulp van het SMB3-protocol. Er is een nieuw beleidsbeheer toegevoegd aan het bestandsservercluster, dat de centrale bewaking van de opslagprestaties biedt.

Scale-Out Bestandsserver en QoS voor opslag

Afbeelding 1: QoS voor opslag gebruiken in een softwaregedefinieerde opslagoplossing in Scale-Out Bestandsserver

Wanneer Hyper-V servers virtuele machines starten, worden ze bewaakt door Beleidsbeheer. Beleidsbeheer communiceert het QoS-beleid voor opslag en eventuele limieten of reserveringen terug naar de Hyper-V-server, waarmee de prestaties van de virtuele machine naar behoren worden bepaald.

Wanneer er wijzigingen optreden in het QoS-beleid voor opslag of in de prestatievereisten van virtuele machines, geeft de Beleidsbeheerder melding aan de Hyper-V-servers om hun gedrag aan te passen. Deze feedbacklus zorgt ervoor dat alle VHD's van virtuele machines consistent presteren volgens het QoS-beleid voor opslag zoals gedefinieerd.

Glossary

Term Description
Genormaliseerde IOPS Al het opslaggebruik wordt gemeten in 'Genormaliseerde IOPS'. Dit is een telling van de opslaginvoer-/uitvoerbewerkingen per seconde. Elke I/O die 8 KB of kleiner is, wordt beschouwd als één genormaliseerde IO. Io's die groter zijn dan 8 kB, worden behandeld als meerdere genormaliseerde IO's. Een aanvraag van 256 kB wordt bijvoorbeeld behandeld als 32 genormaliseerde IOPS.

Windows Server 2016 bevat de mogelijkheid om de grootte op te geven die wordt gebruikt om IOS te normaliseren. Op het opslagcluster kan de genormaliseerde grootte worden opgegeven en van kracht worden clusterbreed voor de berekeningen van normalisatie. De standaardwaarde blijft 8 kB. Deze instelling is van invloed op alle virtuele machines. (De virtuele machines die op lokale volumes zijn gemaakt, worden ook beïnvloed.)

Flow Elke bestandsingang die door een Hyper-V server naar een VHD- of VHDX-bestand wordt geopend, wordt beschouwd als een 'stroom'. Als aan een virtuele machine twee virtuele harde schijven zijn gekoppeld, heeft deze één stroom naar het bestandsservercluster per bestand. Als een VHDX wordt gedeeld met meerdere virtuele machines, heeft deze één stroom per virtuele machine.
InitiatorName Naam van de virtuele machine die wordt gerapporteerd aan de Scale-Out bestandsserver voor elke stroom.
InitiatorID Een id die overeenkomt met de id van de virtuele machine. Dit kan altijd worden gebruikt om afzonderlijke stromen op unieke wijze te identificeren, zelfs als de virtuele machines dezelfde InitiatorName hebben.
Policy QoS-beleid voor opslag wordt opgeslagen in de clusterdatabase en heeft de volgende eigenschappen: PolicyId, MinimumIOPS, MaximumIOPS, ParentPolicy en PolicyType.
PolicyId Unieke identificatie voor een beleid. Deze wordt standaard gegenereerd, maar kan desgewenst worden opgegeven.
MinimumIOPS Minimale genormaliseerde IOPS die worden geleverd door een beleid. Ook wel bekend als 'Reservering'.
MaximumIOPS Maximale genormaliseerde IOPS die worden beperkt door een beleid. Ook wel 'Limit' genoemd.
Aggregated Een beleidstype waarbij de opgegeven MinimumIOPS & MaximumIOPS en bandbreedte worden gedeeld tussen alle stromen die aan het beleid zijn toegewezen. Alle VHD's die aan het beleid op dat opslagsysteem zijn toegewezen, hebben een gezamenlijke toewijzing van I/O-bandbreedte om met elkaar te delen.
Dedicated Een beleidstype waarbij de opgegeven Minimum & MaximumIOPS en bandbreedte worden beheerd voor afzonderlijke VHD/VHDx.

QoS voor opslag instellen en basisprestaties bewaken

In deze sectie wordt beschreven hoe u de nieuwe QoS-functie voor opslag inschakelt en hoe u de opslagprestaties bewaakt zonder aangepast beleid toe te passen.

QoS voor opslag instellen op een opslagcluster

In deze sectie wordt beschreven hoe u QoS voor opslag inschakelt op een nieuw of bestaand failovercluster en Scale-Out bestandsserver waarop Windows Server 2016 wordt uitgevoerd.

QoS voor opslag instellen op een nieuwe installatie

Als u een nieuw failovercluster hebt geconfigureerd en een gedeeld clustervolume (CSV) hebt geconfigureerd in Windows Server 2016, wordt de functie QoS voor opslag automatisch ingesteld.

QoS-installatie voor opslag controleren

Nadat u een failovercluster hebt gemaakt en een CSV-schijf hebt geconfigureerd, wordt de QoS-resource voor opslag weergegeven als een clusterkernresource en zichtbaar in failoverclusterbeheer en Windows PowerShell. De bedoeling is dat het failoverclustersysteem deze resource beheert en u geen acties hoeft uit te voeren voor deze resource. We geven het weer in zowel Failoverclusterbeheer als PowerShell om consistent te zijn met de andere failoverclustersysteemresources, zoals de nieuwe Health Service.

QoS-resource voor opslag wordt weergegeven in clusterkernresources

Afbeelding 2: QoS-resource voor opslag die wordt weergegeven als clusterkernresource in Failoverclusterbeheer

Gebruik de volgende PowerShell-cmdlet om de status van QoS-resource voor opslag weer te geven.

PS C:\> Get-ClusterResource -Name "Storage Qos Resource"

Name                   State      OwnerGroup        ResourceType
----                   -----      ----------        ------------
Storage Qos Resource   Online     Cluster Group     Storage QoS Policy Manager

QoS voor opslag instellen op een rekencluster

De Hyper-V-functie in Windows Server 2016 heeft ingebouwde ondersteuning voor QoS voor opslag en is standaard ingeschakeld.

Externe beheerprogramma's installeren voor het beheren van QoS-beleid voor opslag vanaf externe computers

U kunt QoS-beleid voor opslag beheren en stromen van rekenhosts bewaken met behulp van de Remote Server Administration Tools. Deze zijn beschikbaar als optionele functies op alle Windows Server 2016-installaties en kunnen afzonderlijk worden gedownload voor Windows 10 op de website van het Microsoft Downloadcentrum .

De optionele functie RSAT-Clustering bevat de Windows PowerShell-module voor extern beheer van failoverclustering, inclusief QoS voor opslag.

  • Windows PowerShell: Add-WindowsFeature RSAT-Clustering

De optionele functie RSAT-Hyper-V-Tools bevat de Windows PowerShell-module voor extern beheer van Hyper-V.

  • Windows PowerShell: Add-WindowsFeature RSAT-Hyper-V-Tools

Virtuele machines implementeren om workloads uit te voeren voor testen

U hebt een aantal virtuele machines nodig die zijn opgeslagen op de Scale-Out bestandsserver met relevante werkbelastingen. Voor enkele tips voor het simuleren van belasting en het uitvoeren van stresstests, zie de volgende pagina voor een aanbevolen hulpprogramma (DiskSpd) en enkele voorbeelden van gebruik: DiskSpd, PowerShell en opslagprestaties: IOPS, doorvoer en latentie voor zowel lokale schijven als SMB-bestandsshares.

De voorbeeldscenario's in deze handleiding bevatten vijf virtuele machines. BuildVM1, BuildVM2, BuildVM3 en BuildVM4 voeren een desktopworkload uit met weinig tot gemiddelde opslagvereisten. TestVm1 voert een benchmark voor onlinetransactieverwerking uit met een hoge opslagvraag.

Huidige metrische gegevens over opslagprestaties weergeven

Dit gedeelte bevat:

  • Queries uitvoeren op processen met behulp van de Get-StorageQosFlow cmdlet.

  • Prestaties voor een volume weergeven met behulp van de Get-StorageQosVolume cmdlet.

Querystromen uitvoeren met behulp van de cmdlet Get-StorageQosFlow

De cmdlet Get-StorageQosFlow toont alle huidige stromen die door Hyper-V servers worden gestart. Alle gegevens worden verzameld door het Scale-Out Bestandsservercluster. De cmdlet kan daarom worden gebruikt op elk knooppunt in het Scale-Out bestandsservercluster of op een externe server met behulp van de parameter -CimSession.

In de volgende voorbeeldopdracht ziet u hoe u alle bestanden kunt weergeven die door Hyper-V op de server zijn geopend met behulp van 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

De volgende voorbeeldopdracht is geformatteerd om de naam van de virtuele machine weer te geven, Hyper-V hostnaam, IOPS en VHD-bestandsnaam, gesorteerd op 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

In de volgende voorbeeldopdracht ziet u hoe u stromen filtert op basis van InitiatorName om eenvoudig de opslagprestaties en -instellingen voor een specifieke virtuele machine te vinden.

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 gegevens die door de Get-StorageQosFlow cmdlet worden geretourneerd, omvatten:

  • De Hyper-V hostnaam (InitiatorNodeName).

  • De naam van de virtuele machine en de bijbehorende id (InitiatorName en InitiatorId)

  • Recente gemiddelde prestaties zoals waargenomen door de Hyper-V host voor de virtuele schijf (InitiatorIOPS, InitiatorLatency)

  • Recente gemiddelde prestaties zoals waargenomen door het Opslagcluster voor de virtuele schijf (StorageNodeIOPS, StorageNodeLatency)

  • Huidig beleid dat wordt toegepast op het bestand, indien van toepassing, en de resulterende configuratie (PolicyId, Reservering, Limiet)

  • Status van het beleid

    • Ok - Er zijn geen problemen

    • InsufficientThroughput: er wordt een beleid toegepast, maar de minimale IOPS kunnen niet worden geleverd. Dit kan gebeuren als het minimum voor een virtuele machine of alle VM's samen meer is dan het opslagvolume kan leveren.

    • UnknownPolicyId : er is een beleid toegewezen aan de virtuele machine op de Hyper-V host, maar ontbreekt op de bestandsserver. Dit beleid moet worden verwijderd uit de configuratie van de virtuele machine of er moet een overeenkomend beleid worden gemaakt op het bestandsservercluster.

Prestaties voor een volume weergeven met behulp van Get-StorageQosVolume

Metrische gegevens voor opslagprestaties worden ook verzameld op volumeniveau per opslag, naast de metrische prestatiegegevens per stroom. Dit maakt het eenvoudig om het gemiddelde totale gebruik te zien in genormaliseerde IOPS, latentie en aggregaties en reserveringen die worden toegepast op een volume.

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

QoS-beleid voor opslag maken en bewaken

In deze sectie wordt beschreven hoe u QoS-beleid voor opslag maakt, deze beleidsregels toepast op virtuele machines en een opslagcluster bewaakt nadat het beleid is toegepast.

QoS-beleid voor opslag maken

QoS-beleid voor opslag wordt gedefinieerd en beheerd in het Scale-Out Bestandsservercluster. U kunt zoveel beleidsregels maken als nodig is voor flexibele implementaties (maximaal 10.000 per opslagcluster).

Elk VHD-/VHDX-bestand dat aan een virtuele machine is toegewezen, kan worden geconfigureerd met een beleid. Verschillende bestanden en virtuele machines kunnen hetzelfde beleid gebruiken of ze kunnen elk worden geconfigureerd met afzonderlijke beleidsregels. Als meerdere VHD-/VHDX-bestanden of meerdere virtuele machines zijn geconfigureerd met hetzelfde beleid, worden ze samengevoegd en worden de MinimumIOPS en MaximumIOPS redelijk gedeeld. Als u afzonderlijke beleidsregels gebruikt voor meerdere VHD-/VHDX-bestanden of virtuele machines, worden de minimum- en maximumeenheden afzonderlijk bijgehouden voor elk bestand.

Als u meerdere vergelijkbare beleidsregels voor verschillende virtuele machines maakt en de virtuele machines gelijke opslagvraag hebben, ontvangen ze een vergelijkbaar deel van IOPS. Als de ene VM meer vraagt en de andere minder, volgt IOPS die vraag.

Typen QoS-beleid voor opslag

Er zijn twee soorten beleidsregels: Geaggregeerd (voorheen bekend als SingleInstance) en Dedicated (voorheen MultiInstance genoemd). Geaggregeerd beleid past maximum- en minimumwaarden toe voor de gecombineerde set VHD-/VHDX-bestanden en virtuele machines waarop ze van toepassing zijn. In feite delen ze een opgegeven set IOPS en bandbreedte. Toegewezen beleidsregels passen de minimum- en maximumwaarden voor elke VHD/VHDx afzonderlijk toe. Hierdoor kunt u eenvoudig één beleid maken dat vergelijkbare limieten toepast op meerdere VHD-/VHDX-bestanden.

Als u bijvoorbeeld een geaggregeerd beleid maakt met minimaal 300 IOPS en maximaal 500 IOPS. Als u dit beleid toepast op 5 verschillende VHD/VHDx-bestanden, zorgt u ervoor dat deze 5 VHD/VHDx-bestanden gezamenlijk minimaal 300 IOPS en maximaal 500 IOPS krijgen, mits er vraag is en het opslagsysteem die prestaties kan leveren. Als de VHD-/VHDX-bestanden vergelijkbare hoge vraag naar IOPS hebben en het opslagsysteem kan bijhouden, krijgt elk VHD-/VHDX-bestand ongeveer 100 IOPS.

Als u echter een toegewezen beleid met vergelijkbare limieten maakt en toepast op VHD-/VHDX-bestanden op vijf verschillende virtuele machines, krijgt elke virtuele machine ten minste 300 IOPS en niet meer dan 500 IOPS. Als de virtuele machines vergelijkbare hoge vraag naar IOPS hebben en het opslagsysteem kan bijhouden, krijgt elke virtuele machine ongeveer 500 IOPS. Als op een van de virtuele machines meerdere VHD-/VHDX-bestanden zijn geconfigureerd met hetzelfde MulitInstance-beleid, delen ze de limiet, zodat de totale IO van de VIRTUELE machine uit bestanden met dat beleid de limieten niet overschrijdt.

Als u dus een groep VHD-/VHDX-bestanden hebt die dezelfde prestatiekenmerken hebben en u niet wilt dat er meerdere, vergelijkbare beleidsregels worden gemaakt, kunt u één toegewezen beleid gebruiken en toepassen op de bestanden van elke virtuele machine.

Houd het aantal VHD-/VHDX-bestanden dat is toegewezen aan één geaggregeerd beleid op 20 of minder. Dit beleidstype is bedoeld om aggregatie uit te voeren met enkele VM's in een cluster.

Een toegewezen beleid maken en toepassen

Gebruik eerst de New-StorageQosPolicy cmdlet om een beleid te maken op de Scale-Out Bestandsserver, zoals wordt weergegeven in het volgende voorbeeld:

$desktopVmPolicy = New-StorageQosPolicy -Name Desktop -PolicyType Dedicated -MinimumIops 100 -MaximumIops 200

Pas deze vervolgens toe op de harde schijfstations van de juiste virtuele machines op de Hyper-V-server. Noteer de PolicyId uit de vorige stap of sla deze op in een variabele in uw scripts.

Maak op de Scale-Out Bestandsserver met behulp van PowerShell een QoS-beleid voor opslag en haal de bijbehorende beleids-id op, zoals wordt weergegeven in het volgende voorbeeld:

PS C:\> $desktopVmPolicy = New-StorageQosPolicy -Name Desktop -PolicyType Dedicated -MinimumIops 100 -MaximumIops 200

C:\> $desktopVmPolicy.PolicyId

Guid
----
1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5

Stel op de Hyper-V-server met behulp van PowerShell het QoS-beleid voor opslag in met behulp van de beleids-id, zoals wordt weergegeven in het volgende voorbeeld:

Get-VM -Name Build* | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5

Controleer of het beleid is toegepast

Gebruik Get-StorageQosFlow de PowerShell-cmdlet om te controleren of de MinimumIOPS en MaximumIOPS zijn toegepast op de juiste stromen, zoals wordt weergegeven in het volgende voorbeeld.

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

Op de Hyper-V-server kunt u ook het opgegeven script Get-VMHardDiskDrivePolicy.ps1 gebruiken om te zien welk beleid wordt toegepast op een virtuele harde schijf.

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

Query uitvoeren op QoS-beleid voor opslag

Get-StorageQosPolicy bevat alle geconfigureerde beleidsregels en hun status op een Scale-Out bestandsserver.

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

De status kan na verloop van tijd worden gewijzigd op basis van de prestaties van het systeem.

  • OK : alle stromen die dit beleid gebruiken, ontvangen hun aangevraagde MinimumIOPS.

  • InsufficientThroughput : een of meer van de stromen die dit beleid gebruiken, ontvangen niet de minimum-IOPS

U kunt ook een beleid doorsturen naar Get-StorageQosPolicy om de status op te halen van alle flows die zijn geconfigureerd om het beleid als volgt te gebruiken:

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...

Een samengevoegd beleid maken

Geaggregeerd beleid moet worden gebruikt als u wilt dat meerdere virtuele harde schijven één groep IOPS en bandbreedte delen. Als u bijvoorbeeld hetzelfde geaggregeerde beleid toepast op harde schijven van twee virtuele machines, wordt het minimum gesplitst op basis van de vraag. Beide schijven hebben een gegarandeerd gecombineerd minimum, en samen zullen ze niet de opgegeven maximale IOPS of bandbreedte overschrijden.

Dezelfde benadering kan ook worden gebruikt om één toewijzing te bieden aan alle VHD-/VHDX-bestanden voor de virtuele machines die bestaan uit een service of behoren tot een tenant in een omgeving met meerdere hosten.

Er is geen verschil in het proces voor het maken van toegewezen en geaggregeerde beleidsregels, behalve het PolicyType dat is opgegeven.

In het volgende voorbeeld ziet u hoe u een QoS-beleid voor geaggregeerde opslag maakt en de bijbehorende policyID op een Scale-Out Bestandsserver opgeeft:

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

In het volgende voorbeeld ziet u hoe u het QoS-beleid voor opslag toepast op Hyper-V server met behulp van de policyID die u in het vorige voorbeeld hebt verkregen:

PS C:\> Get-VM -Name WinOltp1 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID 1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5

In het volgende voorbeeld ziet u hoe u effecten van het QoS-beleid voor opslag van de bestandsserver kunt weergeven:

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

Op elke virtuele harde schijf worden de MinimumIOPS- en MaximumIOPS- en MaximumIobandwidth-waarde aangepast op basis van de belasting. Dit zorgt ervoor dat de totale hoeveelheid bandbreedte die wordt gebruikt voor de groep schijven binnen het bereik blijft dat is gedefinieerd door beleid. In het bovenstaande voorbeeld zijn de eerste twee schijven inactief en mag de derde schijf maximaal de maximale IOPS gebruiken. Als de eerste twee schijven io opnieuw uitgeven, worden de maximale IOPS van de derde schijf automatisch verlaagd.

Bestaand beleid bewerken

De eigenschappen van Name, MinimumIOPS, MaximumIOPS en MaximumIoBandwidth kunnen worden gewijzigd nadat een beleid is gemaakt. Het beleidstype (geaggregeerd/toegewezen) kan echter niet worden gewijzigd zodra het beleid is gemaakt.

In de volgende Windows PowerShell-cmdlet ziet u hoe u de eigenschap MaximumIOPS voor een bestaand beleid kunt wijzigen:

[DBG]: PS C:\demoscripts>> Get-StorageQosPolicy -Name SqlWorkload | Set-StorageQosPolicy -MaximumIops 6000

De volgende cmdlet controleert de wijziging:

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

Veelvoorkomende problemen identificeren en oplossen

In deze sectie wordt beschreven hoe u virtuele machines kunt vinden met ongeldig QoS-beleid voor opslag, hoe u een overeenkomend beleid maakt, hoe u een beleid verwijdert van een virtuele machine en hoe u virtuele machines kunt identificeren die niet voldoen aan de QoS-beleidsvereisten voor opslag.

Virtuele machines identificeren die een ongeldig beleid hebben

Als een beleid van de bestandsserver wordt verwijderd voordat het van een virtuele machine wordt verwijderd, blijft de virtuele machine actief alsof er geen beleid is toegepast.

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"):

De status voor de stromen wordt nu 'UnknownPolicyId' weergegeven

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...

Een overeenkomend QoS-beleid voor opslag opnieuw maken

Als een beleid onbedoeld is verwijderd, kunt u een nieuw beleid maken met behulp van de oude PolicyId. Haal eerst de benodigde PolicyId op

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

Maak vervolgens een nieuw beleid met behulp van die 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

Controleer ten slotte of deze is toegepast.

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...

QoS-beleid voor opslag verwijderen

Als het beleid opzettelijk is verwijderd of als een virtuele machine is geïmporteerd met een beleid dat u niet nodig hebt, kunt u het verwijderen.

PS C:\> Get-VM -Name WinOltp1 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID $null

Zodra de PolicyId is verwijderd uit de instellingen voor de virtuele harde schijf, wordt de status OK en wordt er geen minimum of maximum toegepast.

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

Virtuele machines zoeken die niet voldoen aan QoS-beleid voor opslag

De status InsufficientThroughput wordt toegewezen aan stromen die:

  • Een minimaal gedefinieerde IOPS hebben ingesteld op basis van beleid; en

  • Starten met IO met een snelheid die voldoet aan of het minimum overschrijdt; en

  • Het minimum IOP-percentage wordt niet behaald.

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

U kunt stromen voor elke status bepalen, waaronder InsufficientThroughput , zoals wordt weergegeven in het volgende voorbeeld:

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

Gezondheid bewaken met QoS voor opslag

De nieuwe Health Service vereenvoudigt de bewaking van het opslagcluster en biedt één plaats om te controleren op eventuele bruikbare gebeurtenissen in een van de knooppunten. In deze sectie wordt beschreven hoe u de status van uw opslagcluster bewaakt met behulp van de debug-storagesubsystem cmdlet.

Opslagstatus weergeven met Debug-StorageSubSystem

Geclusterde opslagruimten bieden ook informatie over de status van het opslagcluster op één locatie. Dit kan beheerders helpen om snel actuele problemen in opslagimplementaties te identificeren en te controleren bij het optreden van problemen of wanneer ze worden opgelost.

VM met ongeldig beleid

VM's met ongeldig beleid worden ook gerapporteerd via de statuscontrole van het opslagsubsysteem. Hier is een voorbeeld van dezelfde staat als beschreven in VM's vinden met ongeldige beleidsregels van dit document.

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            :

Redundantie voor een virtuele schijf met opslagruimten is verloren gegaan

In dit voorbeeld heeft een geclusterde opslagruimte een virtuele schijf die is gemaakt als een spiegel in drie richtingen. Er is een mislukte schijf verwijderd uit het systeem, maar er is geen vervangende schijf toegevoegd. Het opslagsubsysteem rapporteert een verlies van redundantie met HealthStatus Warning, maar OperationalStatus "OK omdat het volume nog steeds online is.

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            :

Voorbeeldscript voor continue bewaking van QoS voor opslag

Deze sectie bevat een voorbeeldscript waarin wordt getoond hoe veelvoorkomende fouten kunnen worden bewaakt met behulp van WMI-script. Het is ontworpen als een startonderdeel voor ontwikkelaars om gezondheidsevenementen in realtime op te halen.

Voorbeeldscript:

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
}

Veelgestelde vragen

Hoe bewaar ik een QoS-beleid voor opslag dat wordt afgedwongen voor mijn virtuele machine als ik de VHD-/VHDX-bestanden naar een ander opslagcluster verplaats

De instelling in het VHD-/VHDX-bestand dat het beleid aangeeft, is de GUID van een beleids-id. Wanneer een beleid wordt gemaakt, kan de GUID worden opgegeven met behulp van de parameter PolicyID . Als deze parameter niet is opgegeven, wordt er een willekeurige GUID gemaakt. Daarom kunt u de PolicyID ophalen op het opslagcluster waar de virtuele machines momenteel hun VHD-/VHDX-bestanden opslaan en een identiek beleid maken op het doelopslagcluster en vervolgens opgeven dat deze met dezelfde GUID wordt aangemaakt. Wanneer de VM-bestanden worden verplaatst naar de nieuwe opslagclusters, wordt het beleid met dezelfde GUID van kracht.

System Center Virtual Machine Manager kan worden gebruikt om beleid toe te passen op meerdere opslagclusters, waardoor dit scenario veel eenvoudiger wordt.

Als ik het QoS-beleid voor opslag wijzig, waarom zie ik het dan niet onmiddellijk effect hebben wanneer ik Get-StorageQoSFlow uitvoer?

Als u een stroom hebt die een maximum van een beleid bereikt en u het beleid wijzigt zodat het hoger of lager wordt, en u onmiddellijk de latentie/IOPS/BandWidth van de stromen bepaalt met behulp van de PowerShell-cmdlets, duurt het maximaal vijf minuten om de volledige effecten van de beleidswijziging voor de stromen te zien. De nieuwe limieten zijn binnen enkele seconden van kracht, maar de PowerShell-cmdlet Get-StorgeQoSFlow gebruikt een gemiddelde van elke teller met een schuifvenster van 5 minuten. Als er anders een huidige waarde wordt weergegeven en u de PowerShell-cmdlet meerdere keren op rij hebt uitgevoerd, ziet u mogelijk enorm verschillende waarden, omdat waarden voor IOPS en latenties aanzienlijk van de ene seconde naar de andere kunnen fluctueren.

Welke nieuwe functionaliteit is toegevoegd in Windows Server 2016

In Windows Server 2016 zijn de namen van het QoS-beleid voor opslag hernoemd. De naam van het beleidstype voor meerdere exemplaren wordt gewijzigd in Dedicated en Single-instance is gewijzigd als Geaggregeerd. Het beheergedrag van toegewezen beleidsregels wordt ook gewijzigd: VHD-/VHDX-bestanden binnen dezelfde virtuele machine waarop hetzelfde toegewezen beleid is toegepast, delen geen I/O-toewijzingen.

Er zijn twee nieuwe QoS-functies voor opslag in Windows Server 2016:

  • Maximale bandbreedte

    QoS voor opslag in Windows Server 2016 introduceert de mogelijkheid om de maximale bandbreedte op te geven die de stromen die aan het beleid zijn toegewezen, kunnen gebruiken. De parameter bij het opgeven in de StorageQosPolicy-cmdlets is MaximumIOBandwidth en de uitvoer wordt uitgedrukt in bytes per seconde. Als zowel MaximimIops als MaximumIOBandwidth zijn ingesteld in een beleid, worden ze beide van kracht en wordt de eerste die wordt bereikt door de stroom(en) de I/O van de stromen beperkt.

  • IOPS-normalisatie kan worden geconfigureerd

    QoSin voor opslag maakt gebruik van normalisatie van IOPS. De standaardinstelling is om een normalisatiegrootte van 8K te gebruiken. QoS voor opslag in Windows Server 2016 introduceert de mogelijkheid om een andere normalisatiegrootte voor het opslagcluster op te geven. Deze normalisatiegrootte is van invloed op alle stromen in het opslagcluster en wordt onmiddellijk van kracht (binnen een paar seconden) zodra deze is gewijzigd. Het minimum is 1 KB en het maximum is 4 GB (het is raadzaam niet meer dan 4 MB in te stellen omdat het ongebruikelijk is om meer dan 4 MB IOs te hebben).

    Er moet rekening mee worden gehouden dat hetzelfde IO-patroon/dezelfde doorvoer wordt weergegeven met verschillende IOPS-nummers in de QoS-uitvoer van opslag wanneer u de IOPS-normalisatie wijzigt vanwege de wijziging in de normalisatieberekening. Als u IOPS vergelijkt tussen opslagclusters, kunt u ook controleren welke normalisatiewaarde er wordt gebruikt, omdat dit van invloed is op de gerapporteerde genormaliseerde IOPS.

Voorbeeld 1: Een nieuw beleid maken en de maximale bandbreedte in het opslagcluster weergeven

In PowerShell kunt u de eenheden opgeven waarin een getal wordt uitgedrukt. In het volgende voorbeeld wordt 10 MB gebruikt als de maximale bandbreedtewaarde. QoS voor opslag converteert dit en slaat deze op als bytes per seconde. Daarom wordt 10 MB geconverteerd naar 10485760 bytes per seconde.

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

Voorbeeld 2: IOPS-normalisatie-instellingen ophalen en een nieuwe waarde opgeven

In het volgende voorbeeld ziet u hoe u de IOPS-normalisatie-instellingen voor opslagclusters (standaard 8 kB) opgeeft, deze instelt op 32 kB en vervolgens opnieuw weergeeft. In dit voorbeeld geeft u '32 kB' op, omdat PowerShell het mogelijk maakt om de eenheid op te geven in plaats van de conversie naar bytes te vereisen. In de uitvoer wordt de waarde in bytes per seconde weergegeven. Deze instelling is van invloed op alle virtuele machines. (De virtuele machines die op lokale volumes zijn gemaakt, worden ook beïnvloed.)

PS C:\Windows\system32> Get-StorageQosPolicyStore

IOPSNormalizationSize
---------------------
8192

PS C:\Windows\system32> Set-StorageQosPolicyStore -IOPSNormalizationSize 32KB
PS C:\Windows\system32> Get-StorageQosPolicyStore

IOPSNormalizationSize
---------------------
32768

Zie ook