W2016包含了很多Powershell工具,帮助用户诊断、查看和收集存储相关的日志。在接下来的实验里,我们一起看看和排错相关的命令。
用Get-StorageSubSystem命令查看测试环境里的S2D子系统的名称,比如下面这个是笔者测试用的S2D,因为名字较长,所以后续步骤命令中均以通配符“*”取代除“cluster”之外的部分:
2. Enable-StorageDiagnosticLog 命令能够配置收集不同级别的日志信息(包含Critical、Error、Informational、Verbose和Warning),这里我们启用收集详细日志:
Enable-StorageDiagnosticLog -StorageSubSystemFriendlyName *cluster* -Level Verbose
3.然后我们用以下命令收集相关日志,并将收集的日志放到C:\tmp目录下:
Get-StorageDiagnosticInfo -StorageSubSystemFriendlyName *cluster* -DestinationPath c:\tmp -Verbose
完成后我们可以在对应目录下找到各个节点的日志,如下图示,用event viewer可打开对应的.etl和evtx文件:
4.我们还可以用Get-StorageHealthAction命令查看后台正在运行的任务,用Get-StorageHealthReport命令查看实时的存储池读写延迟、CPU或者内存的占用、读写带宽占用等等性能相关的数据,这对于诊断性能问题尤其重要。命令及输出结果如下:
Get-StorageSubSystem -FriendlyName *cluster* |Get-StorageHealthAction
下图是往存储池某个卷写入大量数据时抓出的性能报告:
Get-StorageSubSystem -FriendlyName *cluster* |Get-StorageHealthReport -Verbose
5.Get-StorageReliabilityCounter同样是一个很有用的工具,比如用下面类似的命令组合能够抓出存储池里每块SSD磁盘的最大读写延迟、读写错误次数、温度、写入次数消耗情况等等重要信息(笔者怀疑是因为使用虚拟磁盘的原因,导致本例中某些数据无法正常抓出)。
Get-PhysicalDisk |? mediatype -eq ssd |Get-StorageReliabilityCounter -Verbose |select *
6. 借助于Windows自带的Performance Monitor,我们还能更进一步监控某一个VD的各项性能指标,如下图示:
7.类似其他主流的SDS产品,当前S2D也有很强健的数据保护能力,笔者曾在测试环境里模拟过单块磁盘掉线、多块磁盘掉线,甚至一个以上的节点意外宕机等各类情况。总的说来,存储池中的VD是否在故障时还能继续访问取决于创建时定义的容错布局方式,以及故障域的定义。另外需要注意的是,不论使用哪一种容错布局,仍然不能取代备份。针对业务数据的常规备份仍然至关重要。当出现多块磁盘掉线,或者多个节点故障,导致数据不能正常访问时,第一时间抓取详细日志,联系厂商售后才是最重要的。