整个网上只有intel的SSD查看硬盘寿命的资料,象我们这种穷人,只能使用的起Crucial和OCZ的用户来讲是太不公平了.象我要透过RAID卡就真没法子看其它商家的SSD的寿命了吗?
研究了一下,所有查看SSD的命令,只要要透过RAID的,都需要借助MegaCli和smartCtl获得ssd盘使用情况.认真研究了一下,目前我使用的
RAID卡是LSILogic/SymbiosLogicMegaRAIDSAS1078和2108这二种.使用通常的MegaCli来查询:
这个是的下载地址:
Centos5的MegaCli
Centos6的MegaCli
整个过程分二步,第一步是从过RAID卡来取得下面硬盘的信息.接下来使用smartCtl来进行硬盘详细信息的显示.
使用MegaCli来取得RAID卡下硬盘的信息:
然后使用下面的命令:
/opt/MegaRAID/MegaCli/MegaCli64-PDList-aALL
这样可以查出RAID卡下面的内容.会显示如下:
EnclosureDeviceID:252
SlotNumber:7
DeviceId:28
SequenceNumber:2
MediaErrorCount:0
OtherErrorCount:1
PredictiveFailureCount:0
LastPredictiveFailureEventSeqNumber:0
PDType:SATA
RawSize:119.242GB[0xee7c2b0Sectors]
NonCoercedSize:118.742GB[0xed7c2b0Sectors]
CoercedSize:118.277GB[0xec8e000Sectors]
Firmwarestate:Online,SpunUp
SASAddress(0):0x1e394d57aa996b80
ConnectedPortNumber:7(path0)
InquiryData:0000000011070303A99EC300-CTFDDAC128MAG0007
FDECapable:NotCapable
FDEEnable:Disable
Secured:Unsecured
Locked:Unlocked
NeedsEKMAttention:No
ForeignState:None
DeviceSpeed:6.0Gb/s
LinkSpeed:1.5Gb/s
MediaType:SolidStateDevice
注意上面几个地方,上面会输出很多这样的信息,只有MediaType:SolidStateDevice.表示这是SSD.其中DeviceId:28这个需要记下来.这个过一会使用smartctl查询时会需要.我们可以见到上面都显示了硬盘的型号:InquiryData:0000000011070303A99EC300-CTFDDAC128MAG0007.另外还有一个标志告诉你这个SSD是不是正常的Firmwarestate:Online,SpunUp这个选项,所以如果你做SSD的监控报警,直接监控这个参数基本就行了.
使用smartctl来取得SSD硬盘的详细信息
要注意,不同厂商不同型号磁盘的信息不同.象intel的硬盘信息就不介绍了.下面是查询所使用的命令.其中-a是让显示所有的信息出来.-d是用来设置硬盘的.这时需要注意不同的RAID卡所使用的接口可能不一样,所以可能会有小的不相同.
比如intel的硬盘,直接使用-dmegaraid,27就能正常了.但我使用了上面的raid卡后,需要指定sat这个参数,就变成象下面这样了:
smartctl-a-dsat+megaraid,27/dev/sdb1-son
上面这时的sat是指由SCSI转成ATA的设备,可以加象scsi,ata之类的参数.
这时,会显示如下的信息:
ModelFamily:Crucial/MicronRealSSDC300/C400
DeviceModel:C300-CTFDDAC128MAG
SMARTAttributesDataStructurerevisionnumber:16
VendorSpecificSMARTAttributeswithThresholds:
ID#ATTRIBUTE_NAMEFLAGVALUEWORSTTHRESHTYPEUPDATEDWHEN_FAILEDRAW_VALUE
1Raw_Read_Error_Rate0x002f100100000Pre-failAlways-0
5Reallocated_Sector_Ct0x0033100100000Pre-failAlways-0
9Power_On_Hours0x0032100100000Old_ageAlways-5572
12Power_Cycle_Count0x0032100100000Old_ageAlways-3
170Grown_Failing_Block_Ct0x0033100100000Pre-failAlways-0
171Program_Fail_Count0x0032100100000Old_ageAlways-0
172Erase_Fail_Count0x0032100100000Old_ageAlways-0
173Wear_Levelling_Count0x0033090090000Pre-failAlways-536
174Unexpect_Power_Loss_Ct0x0032100100000Old_ageAlways-1
181Non4k_Aligned_Access0x0022100100000Old_ageAlways-000
183SATA_Iface_Downshift0x0032100100000Old_ageAlways-0
184End-to-End_Error0x0033100100000Pre-failAlways-0
187Reported_Uncorrect0x0032100100000Old_ageAlways-0
188Command_Timeout0x0032100100000Old_ageAlways-0
189Factory_Bad_Block_Ct0x000e100100000Old_ageAlways-250
195Hardware_ECC_Recovered0x003a100100000Old_ageAlways-0
196Reallocated_Event_Count0x0032100100000Old_ageAlways-0
197Current_Pending_Sector0x0032100100000Old_ageAlways-0
198Offline_Uncorrectable0x0030100100000Old_ageOffline-0
199UDMA_CRC_Error_Count0x0036100100000Old_ageAlways-0
202Perc_Rated_Life_Used0x0018090090000Old_ageOffline-10
206Write_Error_Rate0x000e100100000Old_ageAlways-0
如果是OCZ的:
DeviceModel:OCZ-AGILITY3
SerialNumber:OCZ-1OX963Q8B5X2V684
SMARTAttributesDataStructurerevisionnumber:10
VendorSpecificSMARTAttributeswithThresholds:
ID#ATTRIBUTE_NAMEFLAGVALUEWORSTTHRESHTYPEUPDATEDWHEN_FAILEDRAW_VALUE
1Raw_Read_Error_Rate0x000f086086050Pre-failAlways-135388659
5Reallocated_Sector_Ct0x0033100100003Pre-failAlways-9
9Power_On_Hours0x0032100100000Old_ageAlways-265772576277126
12Power_Cycle_Count0x0032100100000Old_ageAlways-15
171Unknown_Attribute0x0032000000000Old_ageAlways-9
172Unknown_Attribute0x0032000000000Old_ageAlways-0
174Unknown_Attribute0x0030000000000Old_ageOffline-13
177Wear_Leveling_Count0x0000000000000Old_ageOffline-1
181Program_Fail_Cnt_Total0x0032000000000Old_ageAlways-9
182Erase_Fail_Count_Total0x0032000000000Old_ageAlways-0
187Reported_Uncorrect0x0032100100000Old_ageAlways-0
194Temperature_Celsius0x0022030030000Old_ageAlways-30(LifetimeMin/Max30/30)
195Hardware_ECC_Recovered0x001c120120000Old_ageOffline-135388659
196Reallocated_Event_Count0x0033100100003Pre-failAlways-9
201Soft_Read_Error_Rate0x001c120120000Old_ageOffline-135388659
204Soft_ECC_Correction0x001c120120000Old_ageOffline-135388659
230Head_Amplitude0x0013100100000Pre-failAlways-100
231Temperature_Celsius0x0013100100010Pre-failAlways-0
233Media_Wearout_Indicator0x0000000000000Old_ageOffline-2531
234Unknown_Attribute0x0032000000000Old_ageAlways-3465
241Total_LBAs_Written0x0032000000000Old_ageAlways-3465
242Total_LBAs_Read0x0032000000000Old_ageAlways-2030
SSD是否健康的参数分析:
注意这时的使用寿命不在是象intelssd的Media_Wearout_Indicator这个参数(当然OCZ也有,在Crucial就变成了Perc_Rated_Life_Used).但其实我们要看SSD是否健康,主要是要通过WearLevelingCount(颗粒平均擦写次数)这个参数和GrownFaillingBlockCt这个参数.
注意看下面二行:
170Grown_Failing_Block_Ct0x0033100100000Pre-failAlways-0
173Wear_Levelling_Count0x0033090090000Pre-failAlways-536
上面二个参数是关键:
WearLevellingCount(颗粒平均擦写次数):先讲这个参数.更加重要.先声明这个硬盘是使用了一年的SSD硬盘.图中显示的数据为536,即这块128G的硬盘的全盘写入/擦除(P/E)数为536次,显示还有90%的寿命.所以大约这个硬盘使用的闪存颗粒的寿命为5000多次的样子.536约为5000的10%,所以此项值为90(CA).GrownFailingBlockCount(使用中新增坏块数):此项代表SSD的闪存颗粒在使用时出现的坏块(类似于HDD的坏道)数量,此处数据为0即尚未有出现坏块,若你命不好.新购买回来SSD在正常使用时,很短的时间内这个数据产生较大变化,那代表盘可能有问题,早点找售后服务吧.
MegaCli常用参数组合介绍:
MegaCli-cfgdsply-aALL|grepError【正常都是0】
MegaCli-LDGetProp-Cache-LALL-a0【写策略】
MegaCli-cfgdsply-aALL|grepMemory【内存大小】
MegaCli-LDInfo-Lall-aALL【查RAID级别】
MegaCli-AdpAllInfo-aALL【查RAID卡信息】
MegaCli-PDList-aALL【查看硬盘信息】
MegaCli-AdpBbuCmd-aAll【查看电池信息】
MegaCli-FwTermLog-Dsply-aALL【查看RAID卡日志】
MegaCli-adpCount【显示适配器个数】
MegaCli-AdpGetTime–aALL【显示适配器时间】
MegaCli-AdpAllInfo-aAll【显示所有适配器信息】
MegaCli-LDInfo-LALL-aAll【显示所有逻辑磁盘组信息】
MegaCli-PDList-aAll【显示所有的物理信息】
MegaCli-AdpBbuCmd-GetBbuStatus-aALL|grepChargerStatus【查看充电状态】
MegaCli-AdpBbuCmd-GetBbuStatus-aALL【显示BBU状态信息】
MegaCli-AdpBbuCmd-GetBbuCapacityInfo-aALL【显示BBU容量信息】
MegaCli-AdpBbuCmd-GetBbuDesignInfo-aALL【显示BBU设计参数】
MegaCli-AdpBbuCmd-GetBbuProperties-aALL【显示当前BBU属性】
MegaCli-cfgdsply-aALL【显示RAID卡型号,RAID设置,DISK相关信息】
磁带状态的变化,从拔盘,到插盘的过程中:
Device|Normal|Damage|Rebuild|Normal
VirtualDrive|Optimal|Degraded|Degraded|Optimal
PhysicalDrive|Online|Failed–>Unconfigured|Rebuild|Online