共计 1799 个字符,预计需要花费 5 分钟才能阅读完成。
首先有必要先介绍一下有关 RAID 卡的使用,有关 Cache 问题也有个人理解:生产系统上的物理机磁盘配置大多都是 RAID5,之前会经常性的遇到磁盘 IO 在某个时间极度的跟不上节奏,稍微写入量,磁盘 utils 就能够飙到 80% 多;最后发现是 RAID 卡的模式改变导致的性能影响;一般 RAID 卡的电池都会进行充放电的操作来进行电池的保护,一般时间在 90 天进行一次充放电,放电时间不一(没有验证过这个,感觉有 1 - 2 小时)。RAID 卡电池放电时有默认策略会关闭 RAID 模式“Write Back”使用“Write through”
Write Back:在系统与磁盘的数据交互中启用 RAID 的 Cache,在写入数据开启时,其性能能够提高是一个数量级的(一般 RAID 卡都配备有 512M、1G 缓存)
Write Throug:不启用 RAIDcache,直接有磁盘进行数据交互;但是在读取性能上较好;电池放电启用此功能 是为了防止在 write back 下并且无 RAID 卡电池的情况中,系统断电导致数据丢失
最终,考虑 IDC 机房情况我们都开启了电池放电状态下也强制开启缓存的策略,以解决短时间性上在写入性能的过分差距
查看是否是目前模式,如下是 Write Throug
强制开启方法
强制开启步骤
强制修改 RAID 卡由 writethrough 到 writeback 方法
# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp CachedBadBBU -Lall -aALL
Set Write Cache OK if bad BBU on Adapter 0, VD 0 (target id: 0) success
若是放电关闭缓存 强制设置电池放电依然开启缓存方法
# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -Lall -aALL
Set Write Policy to WriteBack on Adapter 0, VD 0 (target id: 0) success
查看是否成功
# /opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -Cache -L0 -a0
Adapter 0-VD 0(target id: 0): Cache Policy:WriteBack, ReadAheadNone, Direct, Write Cache OK if bad BBU
开启后
Esxi 下使用 MegaCli
esxcli software vib install -v /tmp/vmware-esx-MegaCli-8.07.07.vib –no-sig-check
/opt/lsi/MegaCLI/MegaCli -LDInfo -Lall -aALL
强制修改 RAID 卡为 WB:
cd /opt/lsi/MegaCLI/
/opt/lsi/MegaCLI/MegaCli -LDSetProp CachedBadBBU -Lall -aALL
/opt/lsi/MegaCLI/MegaCli -LDSetProp WB -Lall -aALL
/opt/lsi/MegaCLI/MegaCli -LDGetProp -Cache -L0 -a0
如何在 Linux 上构建 RAID 10 阵列 http://www.linuxidc.com/Linux/2014-12/110318.htm
Debian 软 RAID 安装笔记 – 使用 mdadm 安装 RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm
常用 RAID 技术介绍以及示例演示(多图) http://www.linuxidc.com/Linux/2013-03/81481.htm
Linux 实现最常用的磁盘阵列 – RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm
RAID0+ 1 和 RAID5 的性能测试结果 http://www.linuxidc.com/Linux/2012-07/65567.htm
Linux 入门教程:磁盘阵列(RAID)http://www.linuxidc.com/Linux/2014-07/104444.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133272.htm