我们有一个基于CentOS 6.4的服务器连接到Hitachi HNAS 3080存储,并观察到内核以只读模式重新挂载了文件系统:
5月16日07:31:03 GNS3-SRV-CMP-001内核:[1259725.675814] EXT3-fs(dm-1):错误:重新挂载文件系统为只读
这发生在几个I / O错误之后,并且据报道该设备的所有路径都中断了:
5月16日07:31:03 GNS3-SRV-CMP-001多路径:mpatha:剩余活动路径:0
我一直在查看sar日志,可以看到很少的很大的等待时间(2秒):
07:40:00 dev8-0 17.91 112.04 98.03 11.73 0.00 0.20 0.07 0.12
07:40:00 dev8-16 0.23 1.85 0.00 8.00 0.00 3.71 3.71 0.09
07:40:00 dev8-32 91.50 8338.76 5292.93 148.98 8.38 91.60 9.76 89.35
07:40:00 dev252-0 91.27 8336.91 5292.93 149.34 17.79 194.88 9.79 89.38
07:40:00 dev252-1 674.80 8168.16 5292.93 19.95 1473.53 2183.60 1.32 88.98
07:30:00-07:40:00之间的持续时间确实发生在文件系统以只读方式挂载的时间。但是,即使在正常条件下,一个反复观察到的结果是,底层设备的等待时间比多路径设备的等待时间低得多。例如:
00:00:00 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00:10:00 dev8-0 19.27 129.41 78.61 10.80 0.01 0.27 0.16 0.32
00:10:00 dev8-16 0.23 1.80 0.00 8.00 0.00 0.86 0.84 0.02
00:10:00 dev8-32 94.88 10285.16 3363.48 143.86 3.39 35.76 6.83 64.82
00:10:00 dev252-0 94.65 10283.34 3363.48 144.18 3.64 38.47 6.86 64.89
00:10:00 dev252-1 435.06 10087.12 3363.48 30.92 118.42 272.21 1.47 64.12
dev8-0恰好是本地磁盘,而dev8-16(/dev/sdb
)和dev8-32(/dev/sdc
)是dev252-0()的基础磁盘/dev/mapper/mpatha
。dev252-1(/dev/mapper/mpathap1
)是一个跨越整个多路径设备的单个分区。这是来自的输出multipath -ll
:
mpatha (2521501cbffffffffe96773b50ec30020) dm-0 BlueArc,NAS Platform
size=10T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 9:0:0:0 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=active
`- 8:0:0:0 sdb 8:16 active ready running
为什么等待时间/dev/mapper/mpathap1
要比/dev/mapper/mpatha
甚至甚至/dev/sdb
更长/dev/sdc
呢?
/dev/mapper/mpathap1
到的过程 中显然发生了很多请求合并/dev/mapper/mpatha
。这也是大多数情况下await
似乎要添加的层。您能否检查/sys/block/mpathap1/queue/scheduler
和中使用了哪些电梯/sys/block/mpatha/queue/scheduler
,可能将其切换到deadline
或noop
进行比较?