W2016包含了很多Powershell工具,帮助用户诊断、查看和收集存储相关的日志。在接下来的实验里,我们一起看看和排错相关的命令。

  1. 用Get-StorageSubSystem命令查看测试环境里的S2D子系统的名称,比如下面这个是笔者测试用的S2D,因为名字较长,所以后续步骤命令中均以通配符“*”取代除“cluster”之外的部分:

     wKioL1lAqueDJCwpAADCskVDcbk945.png


 2. Enable-StorageDiagnosticLog 命令能够配置收集不同级别的日志信息(包含Critical、Error、Informational、Verbose和Warning),这里我们启用收集详细日志:

Enable-StorageDiagnosticLog -StorageSubSystemFriendlyName *cluster* -Level Verbose

wKioL1lArMqTHZkfAABUOrHulJI900.png


3.然后我们用以下命令收集相关日志,并将收集的日志放到C:\tmp目录下:

 Get-StorageDiagnosticInfo -StorageSubSystemFriendlyName *cluster* -DestinationPath c:\tmp -Verbose

wKiom1lAyVuRoJMVAABGyuJPgbE102.png

完成后我们可以在对应目录下找到各个节点的日志,如下图示,用event viewer可打开对应的.etl和evtx文件:

wKioL1lA3lbRmZfbAAAsXGaHET0427.png

wKiom1lA3laRX2xLAAAkEQAa5hE395.png


4.我们还可以用Get-StorageHealthAction命令查看后台正在运行的任务,用Get-StorageHealthReport命令查看实时的存储池读写延迟、CPU或者内存的占用、读写带宽占用等等性能相关的数据,这对于诊断性能问题尤其重要。命令及输出结果如下:

 Get-StorageSubSystem -FriendlyName *cluster* |Get-StorageHealthAction

wKioL1lA5ZmQAcdtAAAvzripg5I538.png

下图是往存储池某个卷写入大量数据时抓出的性能报告:

 Get-StorageSubSystem -FriendlyName *cluster* |Get-StorageHealthReport -Verbose

wKioL1lA5cez7gt8AALAxW0Ns0M890.png


5.Get-StorageReliabilityCounter同样是一个很有用的工具,比如用下面类似的命令组合能够抓出存储池里每块SSD磁盘的最大读写延迟、读写错误次数、温度、写入次数消耗情况等等重要信息(笔者怀疑是因为使用虚拟磁盘的原因,导致本例中某些数据无法正常抓出)。

Get-PhysicalDisk |? mediatype -eq ssd |Get-StorageReliabilityCounter -Verbose |select *

wKiom1lA6RuwVVYFAAES0RbNgok986.png


6. 借助于Windows自带的Performance Monitor,我们还能更进一步监控某一个VD的各项性能指标,如下图示:

wKioL1lA64SgGhNTAABMYgmuX6Q110.png


7.类似其他主流的SDS产品,当前S2D也有很强健的数据保护能力,笔者曾在测试环境里模拟过单块磁盘掉线、多块磁盘掉线,甚至一个以上的节点意外宕机等各类情况。总的说来,存储池中的VD是否在故障时还能继续访问取决于创建时定义的容错布局方式,以及故障域的定义。另外需要注意的是,不论使用哪一种容错布局,仍然不能取代备份。针对业务数据的常规备份仍然至关重要。当出现多块磁盘掉线,或者多个节点故障,导致数据不能正常访问时,第一时间抓取详细日志,联系厂商售后才是最重要的。

无觅关联推荐,快速提升流量