查看MegaSAS RAID卡的缓存策略

[root@localhost ~]# MegaCli -LDInfo -Lall -aALLAdapter 0 -- Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 3.816 TB
Sector Size         : 512
Is VD emulated      : No
Parity Size         : 558.406 GB
State               : Optimal
Strip Size          : 256 KB
Number Of Drives    : 8
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default
Encryption Type     : None
Bad Blocks Exist: No
PI type: No PIIs VD Cached: NoExit Code: 0x00
  • Default Cache Policy: 默认的缓存策略,针对每个RAID可以有不同的设置.
  • Current Cache Policy: 当前生效的缓存策略.

策略说明

第一段: WriteBack, WriteThrough

  • WriteBack:回写。进行写操作时,将数据写入RAID卡缓存,并直接返回,RAID卡控制器将在系统负载低或者Cache满了的情况下把数据写入硬盘。该设置会大大提升RAID卡写性能,绝大多数的情况下会降低系统IO负载。 数据的可靠性由RAID卡的BBU(Battery Backup Unit)进行保证。
  • WriteThrough: 写通。数据写操作不使用缓存,数据直接写入磁盘。RAID卡写性能下降,在大多数情况下该设置会造成系统IO负载上升。

第二段: ReadAheadNone, ReadAdaptive, ReadAhead.

  • ReadAheadNone: 不开启预读。这是默认的设置
  • ReadAhead: 在读操作时,预先把后面顺序的数据加载入Cache,在顺序读取时,能提高性能,相反会降低随机读的性能。
  • ReadAdaptive: 自适应预读,当Cache memory和IO空闲时,采取顺序预读,平衡了连续读性能及随机读的性能,需要消耗一定的计算能力。

第三段: Direct, Cached.

  • Direct: Direct IO模式,读操作不缓存到cache memory中,数据将同时传输到cache中和应用,如果接下来要读取相同的数据块,则直接从Cache memory中获取. 这是默认的设置
  • Cached: Cached IO模式,所有读操作都会缓存到cache memory中。

第四段: Write Cache OK if Bad BBU, No Write Cache if Bad BBU

  • No Write Cache if Bad BBU: 如果BBU出问题,则关闭Write Cache。由WriteBack自动切换到WriteThrough模式。如果没有特殊要求,强烈建议采用该设置,以确保数据的安全。
  • Write Cache OK if Bad BBU: 如果BBU出问题,依然启用Write Cache. 这是不推荐的设置,BBU出问题将无法保证断电情况下数据的正常,如果此时依然采用WriteBack模式,遇到断电将发生数据丢失。除非有UPS作额外保证,不然不推荐采用这个设置。

策略自动切换的问题

由于MegaSAS RAID卡默认采用No Write Cache if Bad BBU的设置,将可能发生Write Cache策略变更的情况(由WriteBack变成WriteThrough),导致写性能下降,如果该自动变更发生在业务高峰且系统Io负载高的时候,可能会引发不可预测的问题,如卡机。以下原因将造成Write Cache策略的变更.

  1. RAID卡进入BBU Learn Cycle: 详细介绍见下面
  2. 检测到某些电池故障,如电池容量过低等,一般是电池老化带来的影响,IBM建议一年更换一次RAID卡电池
  3. 没有安装电池, 部分服务器购买时不带电池,导致被自动设置为WriteThrough

查看当前BBU的状态

MegaCli -AdpBbuCmd -GetBbuStatus -aALL

root@localhost:~#  MegaCli -AdpBbuCmd -GetBbuStatus -aALLBBU status for Adapter: 0BatteryType: CVPM02
Voltage: 9480 mV
Current: 0 mA
Temperature: 23 C
Battery State: Optimal
BBU Firmware Status:Charging Status              : NoneVoltage                                 : OKTemperature                             : OKLearn Cycle Requested                   : NoLearn Cycle Active                      : NoLearn Cycle Status                      : OKLearn Cycle Timeout                     : NoI2c Errors Detected                     : NoBattery Pack Missing                    : NoBattery Replacement required            : NoRemaining Capacity Low                  : NoPeriodic Learn Required                 : NoTransparent Learn                       : NoNo space to cache offload               : NoPack is about to fail & should be replaced : NoCache Offload premium feature required  : NoModule microcode update required        : NoBBU GasGauge Status: 0x6ffd Pack energy             : 253 J Capacitance             : 111 Remaining reserve space : 0 Exit Code: 0x00
root@10-2-72-138:~# 
  1. Charging Status: 当前电池处于什么状态,有Charging, Discharging, None等值,分别代表电池充电,放电,及没有充放电操作的状态
  2. Learn Cycle Requested: Learn Cycle请求,当为Yes时,并且下面的Learn Cycle Active为No, 说明已经开始了Learn Cycle的第一阶段, 此时策略开始变为WriteThrough, 电池将经历一个放电后充电或者充电的过程
  3. Learn Cycle Active: 是否处于Learn Cycle的校准阶段,如果为Yes, 则进入了Learn Cycle的第二阶段,控制器开始校准电池.
  4. Battery Replacement required: 电池是否需要维修,如果为Yes, 请尽快更换电池
  5. Remaining Capacity Low: 剩余电容量低, 如果为Yes, 需要更换电池

参考文档:https://www.cnblogs.com/ylqmf/archive/2013/02/28/2936895.html

Linux查看MegaSAS raid卡缓存策略相关推荐

  1. linux raid卡缓存,RAID卡的缓存与磁盘自带的缓存的关系

    RAID卡的缓存与磁盘自带的缓存的关系 RAID卡是否有(启用)缓存对"随机读写"性能有巨大的影响.中高端的RAID卡都有缓存(价格也高). 那么RAID卡的缓存与磁盘自带的缓存是 ...

  2. MegaSAS RAID卡 BBU Learn Cycle周期的影响

    背景 最近遇到有些带MegaSAS RAID卡的服务器,在业务高峰时突然IO负载飚升得很高,IO性能急剧下降,查了日志及各种设置最后才发现是RAID卡的Cache写策略由WriteBack变成Writ ...

  3. raid卡缓存对硬盘性能_我们怎么解决机械硬盘既慢又容易坏的问题

    我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子单元组成的.但机械硬盘却是一个特殊的例外,它更多是用机械技术做出来的一个产品.当把带有机械技术基因的 ...

  4. raid卡缓存对硬盘性能_我们怎么解决机械硬盘既慢又容易坏的问题?

    我们使用的计算机的全称叫电子计算机,前面有电子两个字,这说的是整个计算机中的核心元器件基本上都是电子单元组成的.但机械硬盘却是一个特殊的例外,它更多是用机械技术做出来的一个产品.当把带有机械技术基因的 ...

  5. linux查看硬盘阵列卡信息命令,查看服务器RAID卡信息的SHELL脚本及MegaCLI命令介绍...

    目前维护的dDell服务器,大多使用的都是LSI的MegaRAID卡. 查看系统使用的什么RAID卡,可以使用以下命令:# dmesg |grep -i raid # cat /proc/scsi/s ...

  6. dell linux raid 查看,HP_DELL RAID卡查看工具介绍

    操作系统自带的命令查看RAID: 软件raid:查看raid级别,状态等信息[生产环境没人敢用软raid,除非他不想干了] # cat/proc/mdstat 硬件raid:查看raid的厂商,型号, ...

  7. 【案例】RAID卡写策略改变引发的问题

    一 现象描述       开发反馈某产品的agent  的进程hang在某些线程上,查看日志,agent  master 累积很多未处理的消息队列. 在17:00 – 21:00 之间,有一定程度的写 ...

  8. raid卡缓存对硬盘性能_服务器RAID配置方法大全

    说明 本文以浪潮服务器为例,适用于LSI芯片Raid卡,包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/9271 等Raid卡. 不同型号的Raid卡在 ...

  9. 如何用命令查看服务器raid信息,查看服务器RAID卡信息的SHELL脚本和命令介绍

    转自:www.mysqlops.com http://www.mysqlops.com/2011/08/11/raid-megacli.html 自动检查服务器RAID信息的SHELL脚本: #!/b ...

最新文章

  1. 简单的安卓app小程序代码_开发一款APP大概需要多少钱?
  2. 速卖通代运营靠谱吗?招人做对比代运营,找代运营经验分享
  3. Android中实现调用摄像头拍照并显示在ImageView中
  4. 【五校联考6day2】er
  5. 8s yaml 配置生成_cfg4py:一个严肃的Python配置模块应有的风格-层级式、部署环境自适应、自动补全...
  6. SAP Spartacus User form属性的运行时字段明细
  7. 使用Treeview模拟操作系统的文件系统
  8. 玫瑰花函数matlab,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  9. python爬虫requests实战_Python爬虫之requests库网络爬取简单实战
  10. 专业课程设计之客户与服务器程序的同步与通信机制的设计(四)信号量
  11. Docker资源汇总
  12. css3实现翻转效果,css3 实现3D翻转效果
  13. no response after clicking clone in github desktop
  14. 100道练习题,玩转Numpy模块!(上)
  15. 树莓派+英特尔神经网络计算棒
  16. EXCEL中数据分析涉及的一些操作
  17. debussy和modelsim联合仿真配置
  18. 登陆mysql的命令行
  19. PLC学习第一篇:PLC程序架构
  20. MATLAB 画五星红旗

热门文章

  1. Leetcode:剑指 Offer 58 - II. 左旋转字符串(C++)
  2. 【3D游戏模型】在ZBrush中制作3D兽人
  3. [poj1797] Heavy Transportation
  4. java并发编程之再学习
  5. C++ 中打开 exe 文件
  6. css 文本超出就隐藏并且显示省略号
  7. 亿道丨三防平板丨加固平板丨三防加固平板丨改善资产管理
  8. 多项式A除以B(模拟多项式除法)
  9. iOS开发中解决第三方静态库符号冲突的终极方案
  10. 一个计算机网络题目——给局域网分配合适的网络前缀。