Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
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.
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-StorageQosFlowcmdlet.Prestaties voor een volume weergeven met behulp van de
Get-StorageQosVolumecmdlet.
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