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设备相关信息
更多linux知识可以查看《Linux就该这么学》
你说的是磁盘吧,我给你一个资料看看。Linux硬盘分区简介磁盘命名 相对Solaris来说,Linux磁盘命名的概念就简单多了,而且和我们平常使用的Windows系统多少有些瓜葛。和Solaris一样,在Linux中,每个硬件设备都有一个称为设备名称的特别名字,例如,接在IDE1的第一个硬盘(master主硬盘),其设备名称为/dev/hda,也就是说我们可以用“/dev/hda”来代表此硬盘,下面的信息相信大家看了以后会有“一目了然”的感觉: 磁盘 设备名称 IDE1的第1个硬盘(master) /dev/hda IDE1的第2个硬盘(slave) /dev/hdb IDE2的第1个硬盘(master) /dev/hdc IDE2的第2个硬盘(slave) /dev/hdd SCSI的第1个硬盘 /dev/sda SCSI的第2个硬盘 /dev/sdb 这么看来,是不是比Solaris的硬盘命名容易理解多了? 分区命名 分区的目的,是为了让数据能够分类存放。每一个分割出来的区域,就称为一个“分区”(partition),在Solaris中,也常常用“slice”(片)的概念,例如我们前面所讲过的c0t0d0s0中的s0,就是指代第一个分区。在Linux中,分区的概念和Windows得更加接近,硬盘分区按照功能的不同,可以分为以下几类: 1. 主分区(primary) 2. 扩展分区(extended) 3. 逻辑分区(logical) 主分区(primary) 通常在划分硬盘的第1个分区时,会指定为主分区。但是和Windows不同的是,windows中一个硬盘最多只允许有1个主分区,而Linux最多可以让用户创建4个主分区。 扩展分区(extended) 由于Linux中一个硬盘最多只允许有4个主分区,如果想要创建更多的分区,怎么办?于是就有了扩展分区的概念。用户可以创建一个扩展分区,然后在扩展分区上创建多个逻辑分区。从理论上来说,逻辑分区没有数量上的限制。 需要注意的是,创建扩展分区的时候,会占用一个主分区的位置,因此,如果创建了扩展分区,一个硬盘上便最多只能创建3个主分区和一个扩展分区。而且,扩展分区不是用来存放数据的,它的主要功能是为了创建逻辑分区。这个概念,和Windows可说是一模一样。 逻辑分区(logical) 逻辑分区不能够直接创建,它必须依附在扩展分区下,容量受到扩展分区大小的限制。通常逻辑分区是存放文件和数据的地方。 有了磁盘命名和分区命名的概念,理解诸如/dev/hda1之类的分区名称,应该就不是难事了。具体的,可以看下面的表示: 分区 分区名称 IDE1的第1个硬盘(master)的第1个主分区 /dev/hda1 IDE1的第1个硬盘(master)的第2个主分区 /dev/hda2 IDE1的第1个硬盘(master)的第3个主分区 /dev/hda3 IDE1的第1个硬盘(master)的第4个主分区 /dev/hda4 IDE1的第1个硬盘(master)的第1个逻辑分区 /dev/hda5 IDE1的第1个硬盘(master)的第2个逻辑分区 /dev/hda6 ...... ...... IDE1的第2个硬盘(slave)的第1个主分区 /dev/hdb1 IDE1的第2个硬盘(slave)的第2个主分区 /dev/hdb2 ...... ...... SCSI的第1个硬盘的第1个主分区 /dev/sda1 SCSI的第1个硬盘的第2个主分区 /dev/sda2本文介绍在Linux HA集群中的stonith模块功能。
Stonith,全称Shoot The Other Node In The Head,用于防止集群出现脑裂现象。简单来说,一旦集群中的节点相互之间失去了通信,无法知道其他节点的状态,此时集群中的每个节点将尝试fence(隔离或“射杀”)失去通信的节点,确保这些节点不再抢夺资源,然后才继续启动服务资源,对外提供服务。
在3台集群主机上安装fence-agents软件包。
安装完毕后可查看到系统支持的stonith设备类型:
以上输出中的每个Fence agent都是一种Stonith设备,从名字的后缀可以看出,这些Agent有以下几类:
前两种都属于电源类型的Stonith设备,而第三种和电源无关,之所以要这样划分,是因为:
以下以fence_scsi为例进行实验。
安装 《在CentOS7上配置iSCSI》 中的方法,通过一台专用的存储节点ha-disks为集群中的3个主机提供共享存储(即在ha-disks上创建iscsi硬盘,然后将其映射到3个集群主机上)。
在iscsi-disks上创建3个100M的硬盘fen1,fen2,fen3,挂载到主机上后设备名称分别为sdb,sdc,sdd
测试一下这些硬盘是否支持PR Key:
首先使用一个fence盘/dev/sdb来进行实验:
使用sg_persist -s参数获取/dev/sdb上的所有信息:
可以看到,3个节点使用不同的PR Key在这个磁盘上进行了注册(register),并且ha-host1保留(reservation)成功,类型为“Write Exclusive, registrants only”。表明此时只有ha-host1对该磁盘进行写 *** 作。
此时如果断开其中两个节点的的链接,如ha-host1和ha-host3:
可以看到,经过协商后,ha-host3退出集群,并且也删除在fencing磁盘中的注册信息。由于stonith资源运行在ha-host2上,所以在ha-host2的日志中可以看到ha-host3被fence的过程:
ha-host3被fence之后,必须重启才能重新注册PR Key,否则即使网络恢复,其也无法运行需要stonith支持的资源。
问题:仲裁机制保证了必须有超过半数的节点的partition才能启动资源,拿为什么还需要stonith设备?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)