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

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

     在vSphere环境下简单测试Windows 2016 S2D (3)_第1张图片


 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

在vSphere环境下简单测试Windows 2016 S2D (3)_第2张图片

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

在vSphere环境下简单测试Windows 2016 S2D (3)_第3张图片

在vSphere环境下简单测试Windows 2016 S2D (3)_第4张图片


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

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

在vSphere环境下简单测试Windows 2016 S2D (3)_第5张图片

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

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

在vSphere环境下简单测试Windows 2016 S2D (3)_第6张图片


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

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

在vSphere环境下简单测试Windows 2016 S2D (3)_第7张图片


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

在vSphere环境下简单测试Windows 2016 S2D (3)_第8张图片


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