解决方案
什么是S.M.A.R.T.
随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要
90年代如果一块硬盘故障,可能损失掉几百MB或者几个GB的数据
而今,单块硬盘存储容量可轻松达到500GB,硬盘损坏带来的影响非常巨大
SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及
每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来
这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等
硬盘运行了几千小时后,很多内在的物理参数都会发生变化
某一参数超过报警阈值,则说明硬盘接近损坏
此时硬盘依然在工作,如果用户不理睬这个报警继续使用
那么硬盘将变得非常不可靠,随时可能故障
启用SMART
SMART是和主板BIOS上相应功能配合的
要使用SMART,必须先进入到主板BIOS设置里边启动相关设置
一般从Pentium2级别起的主板,都支持SMART
BIOS启动以后,就是 *** 作系统级别的事情了
很遗憾,Windows没有内置SMART相关工具(需要安装第三方工具软件)
好在Linux上很早就有了SMART支持了
如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd
这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错)
首先通过dmesg工具,确认一下硬盘的设备符号
例如一个IDE硬盘连接到Primary IDE 总线上的Slave位置,硬盘设备符号是/dev/hdb
hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI
最后一个字幕b代表Primary总线,第二块硬盘即Slave位置
确认硬盘是否打开了SMART支持
smartctl -i /dev/hdb
例如看到如下返回结果
[root@3.6.0Biz-46 ~]# smartctl -i /dev/hdb
smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: ST380011A
Serial Number: 3JVAPRGH
Firmware Version: 3.04
User Capacity: 80,026,361,856 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 6
ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2
Local Time is: Tue Apr 3 15:39:52 2007 CST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
SMART Disabled. Use option -s with argument 'on' to enable it.
[root@3.6.0Biz-46 ~]#
例如,我们从下边可以看到SMART support is: Disabled表示SMART未启用
执行如下命令,启动SMART:
smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb
例如看到如下返回结果
[root@3.6.0Biz-46 ~]# smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb
smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.
[root@3.6.0Biz-46 ~]#
现在硬盘的SMART功能已经被打开
执行如下命令查看硬盘的健康状况:
smartctl -H /dev/hda
例如可以看到如下结果:
[root@3.6.0Biz-46 ~]# smartctl -H /dev/hdb
smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
[root@3.6.0Biz-46 ~]#
请注意result后边的结果:PASSED,这表示硬盘健康状态良好
如果这里显示Failure,那么最好立刻给服务器更换硬盘
SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的
通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间
有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了
但是一旦出现报警,侥幸心里是万万不能的……
执行如下命令可以看到详细的参数:
smartctl -A /dev/hdb
例如可以看到如下结果:
[root@3.6.0Biz-46 ~]# smartctl -A /dev/hdb
smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 053 051 006 Pre-fail Always - 11338710
3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 17
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 610059516
9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 11974
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 110
194 Temperature_Celsius 0x0022 045 052 000 Old_age Always - 45
195 Hardware_ECC_Recovered 0x001a 053 051 000 Old_age Always - 11338710
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0
[root@3.6.0Biz-46 ~]#
上边列出的参数表中可供进行技术分析和参考,使用下边的命令可以输出完整结果:
smartctl -a /dev/hdb
定期登录到服务器上运行smartctl是比较麻烦的,Linux提供了系统进程smartd
编辑配置文件:
vi /etc/smartd.conf
这个配置文件中大部分可能是注释掉的说明,只需要和当前硬盘相关的一行写入正确即可:
/dev/hdb -H -m test@test123123.com
上边的配置表示smartd以静默状态工作,当SMART中报告PASSED的时候不理睬
一旦出现Failure,立刻用邮件通知用户指定的邮箱
修改配置后重启服务:
/etc/init.d/smartd
即可完成对SMART的全部配置。
linux怎么清理磁盘空间呢,下面就让我们来看看吧。1、打开linux系统,在linux的桌面的空白处右击。
2、在d出的下拉选项里,点击打开终端。
3、可以在打开的Linux服务器终端中用命令来执行。
4、在终端窗口中输入df_lh,找到占用空间最大的文件并进入。
5、进入之后输入rm-需要删掉的文件命令,释放掉空间,再次输入命令df_lh可查看是否删除。
以上就是的分享,希望能帮助到大家。
本文章基于ThinkpadE15品牌、centos7系统撰写的。
ps命令的输出格式可以通过-o参数定制,可以使用如下命令显示进程所对应的执行CPU:# ps -eo pid,args,psr
参数的含义:
pid - 进程ID
args - 该进程执行时传入的命令行参数
psr - 分配给进程的CPU
有关ps命令的其它信息请查阅ps手册:
# man ps
示例:
[root@www ~]# ps -eo pid,args,psr
.............
20965 /usr/local/php-fcgi/bin/php 1
21683 /bin/sh /usr/local/ddos/ddo 1
21684 sleep 600 3
21746 /sbin/udevd -d2
21832 /bin/sh /usr/local/ddos/ddo 1
21833 sleep 600 0
21865 sshd: root@pts/0 3
21873 -bash 1
21927 ps -eo pid,args,psr 1
23520 [pdflush] 3
23744 nginx: master process /usr/ 1
23745 nginx: worker process 3
23749 nginx: worker process 3
23753 nginx: worker process 3
23755 nginx: worker process 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)