设为首页 收藏本站
查看: 1234|回复: 0

[经验分享] Windows Server 2016软件定义存储之存储QoS

[复制链接]

尚未签到

发表于 2018-6-24 12:34:12 | 显示全部楼层 |阅读模式
  存储QoS简介
  Windows Server 2016文件服务器和Hyper-V群集默认集成了存储QoS功能,基于群集存储空间的存储无论是SOFS SMB共享还是CSV都支持存储QoS,存储QoS通过策略应用到Hyper-V群集上的虚机。文件服务器群集里默认开启QoS策略管理器,用于集中监视存储性能,保存在SMB或者CSV的Hyper-V虚机被策略管理器监视着。策略管理器和Hyper-V服务器形成一个存储QoS策略优化的闭环来反馈调节QoS,策略管理器保持着和Hyper-V沟通存储QoS策略、限制及保留信息,Hyper-V按照QoS策略缩放虚机VHDX的存储性能。如果存储QoS策略有更新的时候,策略管理器指挥Hyper-V对虚机虚拟硬盘QoS进行调整。存储QoS策略优化的闭环保证所有虚机的虚机硬盘遵循存储QoS策略,如图1所示。
DSC0000.jpg

  图1 存储QoS逻辑结构图
  
  设置存储QoS
  Windows Server 2016 故障转移群集配置了CSV后,存储QoS功能自动启动,无需额外配置。在群集里添加可用的磁盘为CSV后,存储QoS资源便会在群集核心资源里显示。可以通过故障转移群集管理器或者PowerShell查看存储QoS资源。同样,Windows Server 2016 启用Hyper-V角色以后也会自动启动存储QoS功能,如图2所示。
DSC0001.jpg

  图2 Windows Server 2016群集存储QoS资源
  检索文件流和卷的存储QoS
  我们已经配置好S2D和超融合结构,在其CSV里存储着若干运行着的虚机,可使用PowerShell命令查看所有虚机文件流的IOPS和带宽情况,如下示例所示。
PS C:\>  Get-StorageQoSflow |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=”File”}  -AutoSize  
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File
  
------------     ----------     ----------     ---------------    ----
  
SQL14        0         0         1           sql14.vhdx
  
VMM16        0         0         3           vmm16.vhdx
  
WS16-VM01      0         0         1           WS16-VM01.vhdx
  
WS16-VM02      0         0         1           WS16-VM02.vhdx
  除了可以查看虚机级别的QoS流的情况外,还可以查看卷(这里指的是群集共享卷)级别的QoS信息,使用PowerShell命令Get-StorageQoSVolume检索CSV QoS配置情况,如下示例所示。
PS C:\> Get-StorageQoSVolume |fl  
Bandwidth          : 0
  
BandwidthLimit       : 0
  
Interval          : 300000
  
IOPS            : 0
  
Latency           : 0
  
Limit            : 0
  
Mountpoint          : C:\ClusterStorage\Volume1\
  
Reservation         : 0
  
Status           : Ok
  
TimeStamp          : 8/5/2016 5:14:23 PM
  
VolumeId          : 2406be47-4757-4b75-a193-c874b69c0e8c
  
MaximumIops         : 0
  
MinimumIops         : 0
  创建存储QoS策略
  在规划好虚机QoS策略类型和QoS策略具体参数后,第一步先创建存储QoS策略,可以使用PowerShell命令New-StorageQoSPolicy设置专有和共享QoS策略。我们先创建一个名为HighPerf的专有QoS策略,最小IOPS设置为200,最大为800,不设置吞吐带宽。
PS C:\> New-StorageQosPolicy -Name  HighPerf -PolicyType Dedicated -MinimumIops 200 -MaximumIops 800  使用PowerShell命令Get-StorageQoSPolicy获取QoS策略,如下示例所示。
PS C:\> Get-StorageQosPolicy  
Name     MinimumIops    MaximumIops    MaximumBandwidth    Status
  
----     ----------     ----------     ---------------     ------
  
Default    0         0         0 MB/s         OK
  
HighPerf   200        800        0 MB/s         OK
  接着创建一个名为MediumPerf的共享QoS策略,设置最小IOPS为100,最大为400,不设置吞吐带宽。
PS C:\> New-StorageQosPolicy -Name  MediumPerf -PolicyType Aggregated -MinimumIops 100 -MaximumIops 400  到此我们已经创建了两个不同大小的存储QoS策略,如下示例所示。
PS C:\> Get-StorageQosPolicy  
Name        MinimumIops      MaximumIops      MaximumBandwidth      Status
  
----        ----------       ----------       ---------------       ------
  
Default       0           0           0 MB/s            OK
  
MediumPerf     100          400          0 MB/s            OK
  
HighPerf      200          800          0 MB/s            OK
  接下来我们将选取两台虚机分配存储QoS策略,一台虚机只有一个VHDX文件,这台虚机需要IOPS;另外一台虚机有三个VHDX文件,这台虚机只需要中等IOPS,而且三个VHDX共享一个存储QoS策略。
  
  分配存储QoS策略
  首先将名为HighPerf的专有策略分配给一台SQL Server虚机,使用PowerShell命令进行分配即可。在分配之前需要使用如下命令定义变量并获取存储QoS策略的ID,存储QoS策略ID将在分配QoS策略时作为QoSPolicyID要赋予的值。
PS C:\> $HighPerfQoS=Get-StorageQoSPolicy | ? Name -eq HighPerf  
PS C:\> $HighPerfQoS.PolicyId
  

  
Guid
  
----
  
6b56f995-08d1-4bb0-9eaa-96f6de29a2ab
  使用PowerShell命令将策略应用到选择的SQL Server虚机,QoSPolicyID这个参数后接名为HighPerf的QoS策略ID。
PS C:\> Get-VM -Name SQL14 | Get-VMHardDiskDrive | Set-VMHardDiskDrive -QoSPolicyID  6b56f995-08d1-4bb0-9eaa-96f6de29a2ab  分配完毕,打开分配了QoS策略的虚机的设置窗口。大家会发现,我们以往在Hyper-V虚机设置窗口里直接对VHDX虚拟硬盘进行IOPS的最大最小值进行设置,但是应用了QoS策略的VHDX虚拟硬盘并没有显示QoS策略所定义的IOPS最大及最小值,取而代之的是QoS策略ID,如图3 所示。
DSC0002.jpg

  图3 查看虚机分配的QoS策略ID
  虽然在设置窗口看不到直观的IOPS值,但是要查看虚机分配QoS策略之后是否生效以及生效后虚机磁盘QoS值,可以运行Get-StorageQoSflow命令查看,示例命令和结果如下。
PS C:\> Get-StorageQoSflow |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=”File”}  -AutoSize  
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File
  
------------     ----------     ----------     ---------------    ----
  
SQL14        200         800        0           sql14.vhdx
  
VMM16        0         0         0           vmm16.vhdx
  
WS16-VM01      0         0         1           WS16-VM01.vhdx
  
WS16-VM02      0         0         1           WS16-VM02.vhdx
  接着将名为MediumPerf的共享QoS策略分配给一台具有三块VHDX虚拟磁盘的虚机,同样使用PowerShell命令进行。在分配之前需要定义变量获取存储QoS策略的ID,如下示例所示,存储QoS策略ID将在分配QoS策略时作为QoSPolicyID后接参数值使用。
PS C:\> $MediumPerf=Get-StorageQoSPolicy | ? Name -eq MediumPerf  
PS C:\> $MediumPerf.PolicyId
  

  
Guid
  
----
  
c0cea944-981e-445e-ad20-d6a33d294fb7
  使用PowerShell命令将策略用应用到选择的虚机,QoSPolicyID这个参数后接名为MediumPerf 的QoS策略ID。
PS C:\>Get-VM -Name  WS16-VM01 | Get-VMHardDiskDrive | Set-VMHardDiskDrive –QoSPolicyID  c0cea944-981e-445e-ad20-d6a33d294fb7  分配完毕,打开分配了QoS策略的虚机的设置窗口,和专有QoS策略一样,应用了QoS策略的VHDX虚拟硬盘并没有显示QoS策略所定义的IOPS最大及最小值,取而代之的是QoS策略ID,如图4所示。
DSC0003.jpg

  图4查看虚机分配的QoS策略ID
  要查看虚机分配QoS策略之后是否生效以及生效后虚机磁盘QoS值,可以运行Get-StorageQoSflow命令查看。在查询结果中,可以看到具有三个VHDX文件的虚机应用了一个最小100,最大400的QoS策略,那么每个VHDX的IOPS最小为100/3取整,最大为400/3取整,如下示例所示。
PS C:\> Get-StorageQoSflow  |Sort-Object InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf(‘\’)+1)};Label=”File”}  -AutoSize  
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File
  
------------     ----------    ----------     ---------------    ----
  
SQL14        200        800        0           sql14.vhdx
  
VMM16        0         0         7           vmm16.vhdx
  
WS16-VM01      33         133        0           WS16-VM01.vhdx
  
WS16-VM01      33         133        0           DATADisk01.vhdx
  
WS16-VM01      33         133        0           DATADisk02.vhdx
  
WS16-VM02      0         0         0           WS16-VM02.vhdx
存储QoS策略的重设
  我们经常需要按照环境的变化对策略做对相应的调整,存储QoS也不会例外,比如某些应用应为访问量和数量增大时,对存储的读写速度提出了更高的要求。如果虚机的虚拟硬盘已经应用了存储QoS策略,那么我们不需要重新创建存储QoS策略分配给虚机的虚拟磁盘,而是在线调整已有的QoS策略,虚机虚拟硬盘的QoS策略会在线同步更新。接下来我们找一个之前应用到虚机的名为HighPerf的存储QoS策略,将IOPS值最小和最大值分别从200和800调整到500和1000。先使用如下PowerShell命令Set-StorageQosPolicy完成QoS策略变更,然后使用Get-StorageQosPolicy查询QoS策略修改结果,结果应如下示例所示。
PS C:\> Get-StorageQosPolicy  -Name HighPerf | Set-StorageQosPolicy -MinimumIOPS 500 -MaximumIops 1000 PS C:\> Get-StorageQosPolicy  

  
Name      MinimumIops    MaximumIops       MaximumBandwidth    Status
  
----      ----------     ----------       ---------------     ------
  
Default     0         0           0 MB/s         OK
  
MediumPerf    100        400          0 MB/s         OK
  
HighPerf    500        1000          0 MB/s         OK
  
LowPerf     50         200          0 MB/s         OK
  调整完毕,不需要再次应用QoS策略到虚机,虚机虚拟磁盘会自动更新策略。使用PowerShell命令可查看到应用了名为HighPerf存储QoS策略的SQL Server虚机虚拟硬盘更新后的IOPS QoS信息,如下示例命令所示。
PS C:\> Get-StorageQoSflow |Sort-Object  InitiatorName | ft InitiatorName,MinimumIOPs,MaximumIOPs,StorageNodeIOPs,@{Expression={$_.FilePath.Substring($_.FilePath.LastIndexOf('\')+1)};Label="File"}  -AutoSize  

  
InitiatorName    MinimumIops    MaximumIops    StorageNodeIOPs    File
  
------------     ----------     ----------     ---------------    ----
  
SQL14        500        1000        0           sql14.vhdx
  
VMM16        50         200         7           vmm16.vhdx
  
WS16-VM01      33         133         0           WS16-VM01.vhdx
  
WS16-VM01      33         133        0           DATADisk01.vhdx
  
WS16-VM01      33         133        0           DATADisk02.vhdx
  
WS16-VM02      0         0         0           WS16-VM02.vhdx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-530036-1-1.html 上篇帖子: Windows Server 2016 VOL 简体中文版 2017 年 1 月版 下篇帖子: WinSer 2016 Enable Adobe Flash Player
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表