一、hdparm:
hdparm可以检测,显示与设定IDE,SCSI,SATA,SAS硬盘的硬件参数,
如: hdparm -I /dev/sdc 可以获取sdc的硬件信息
hdparm -W 0 /dev/sda 关闭磁盘写缓存, (这个缓存是在磁盘内部的, 一般不关闭, 只能整个盘有效)
二、iostat:
可以查看硬盘的io状态, 从这个命令中可以看出硬盘io的基本情况, 这个命令主要和硬盘的驱动对接. 如: iostat -x /dev/sdc 2 每个2秒查看一次硬盘的io情况 各个参数意义如下:
- rrqm/s 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)
- wrqm/s 每秒这个设备相关的写入请求有多少被Merge了。 r/s 每秒完成的读 I/O 设备次数 w/s 每秒完成的写 I/O 设备次数 rsec/s 每秒读取的扇区数 wsec/s 每秒写入的扇区数 avgrq-sz 平均IO速度(以扇区为单位) avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。
- await 每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
- svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。
- %util 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
三、parted/fdiisk
硬盘分区工具, 可以是gpt分区或mbr分区, 一般都是用gpt分区, 如: parted /dev/sdc print 查看分区情况, 具体用法可以man parted
四、badblocks
用来检测磁盘的坏道, 如 badblocks -v /dev/sdc 就可以用默认设置检查磁盘坏道. 如果检测到坏道,需要根据硬盘的使用的文件系统类型进行修复处理.
五、smartctl/smartd
S.M.A.R.T.是英文Self-Monitoring Analysis and Reporting Technology(自动检测分析及报告技术)的简写。它能对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。
- Smartctl/smartd 就是利用硬盘的SMART功能来监测硬盘的健康状态的, 如:
- smartctl -I /dev/sdc 查看硬盘信息
- smartctl -H /dev/sdc 查看硬盘的健康状态
- Smartctl --test=long /dev/sdc 全面检查硬盘的健康状态
- Smartctl -X /dev/sdc 停止全面检查
smartd是一个守护进程, 它能监视拥有自我监视,分析和汇报技术(Self-Monitoring, Analysis, and Reporting)的硬盘. 配置在/etc/smarted.conf, 是存储系统必不可少的进程.
六、losetup
loop 设备是一种伪设备(pseudo-device),它能使我们像块设备一样访问一个文件.如: losetup -a 可以查看所有的loop设备的情况
七、sg3_utils
sg3_utils 是Linux下用来直接使用 SCSI命令集访问设备.只要支持scsi命令集就可以使用,如FC/USB Storage/ATAPI/SAS/SATA/iscsi等设备, 也可以访问SATA兼容设备, 如:
- sg_inq: 查询/dev/sdc的信息
- sgdisk: 硬盘分区查看,设置等.
- sg_dd/sg_pdd: 顺序读写硬盘
- sg_read / sg_write / sg_read_buffer / sg_write_buffer: 读写硬盘
- sginfo: 查看硬盘信息
- sg_format: 格式化硬盘(低级格式化)
- sg_log: 查看硬盘的log信息
- sg_luns: 查看target上有多少个lun
- sg_map: 查看硬盘映射情况, 查看硬盘所在的bus, chan, id,lun,type.
- sgpio: 控制盘位的LED灯
- sg_ses: scsi enclosure service控制, ses是对接机箱状态监控,设置等服务
- sg_scan: 扫描系统中的硬盘
- sg_raw: 可以直接发送scsi命令, 如sg_raw -r 1k /dev/sg0 12 00 00 00 60 00 是inquiry命令
八、smp_utils
smp_utils是linux下来访问sas的smp协议的辅助工具, 是SAS系统管理的重要工具.
九、udevadm
udev的控制管理命令 udevadm info -a -p /block/sda 可以查看sda设备相关信息