RAID在mysq中适用场景

raid0:由于性能高和成本低,以及基本没有数据恢复的能力,而且它比单片磁盘损坏的概率要高。建议只在不担心数据丢失的情况下使用,如备库(slave)或者某些原因"一次性使用"的时候。

 

raid1:在很多情况下提供很好的读性能(比raid0要快),并且提供冗余。它非常适合存放日志这样顺序写操作的东西

 

raid5:由于raid5级有性能上的提示,而且提供冗余,磁盘利用率也和高,所以在某些应用方面是个不错的选择。raid5在读方面还很好(随机读和顺序读),因为不需要考虑校验机制的问题。但是在写方面raid5需要两次读写的操作,所以随机写代价很大,但是顺序写还可以接受。Raid5一般用于以读为主的业务中,如果像日志这样的顺序写也可以。

另外,raid5在生产环境中使用(MySQL),一旦出现一块盘的损坏,那么它将立即根据校验机制来恢复数据,而此时的I/O就会很高,性能将慢到2-5倍,如果业务上对MySQL服务器压力也很大,那么MySQL或者系统有可能有崩溃的危险。

硬件的raid5性能上也很强大了,基本上可达到raid10的性能水准

 

raid10:读写性能都很好,相对于RAID来说,它重建起来很简单,速度也很快。但是当有一块磁盘损坏的使用,整体读的性能将会有所下降.软件RAID对raid10也有很好的支持

 

raid50:如果有很多盘的话,这可能是raid5的经济和raid10高性能的折中。主要用于存放庞大的数据集,例如数据仓库或者非常庞大的OLTP系统

 

Raid的缓存和配置

raid条带化,理论上来讲,对随机读写来说,更大的块更好,这样数据就不用跨块读取,也就说可以在单个磁盘上读取。但在实践中,控制器可能把块大小,缓存大小,读取单元的大小匹配起来。最好情况是把Innodb的块,文件系统的块,LVM,分区偏移,RAID条带,磁盘扇区多有的块都对齐,这样性能会有15%-23%的提升

RAID缓存

    raid缓存读对MySQL来说,并不好。因为MySQL有自己缓存机制。一般在操作系统层面和MySQL自身的缓存层级可以读到的数据就不会读取raid中的缓存的数据,但是没有命中数据,raid中的缓存也基本不可能存在

Raid预读:如果数据库服务器设定了有自己的预读机制(如Innodb),此时的预读可能对MySQL有反作用

    raid的缓存写入:raid控制器可以在高速缓存例缓冲写操作,并且一段时间在写到磁盘中,这样一来磁盘反馈给内核写"成功"信号将快得多。其次,通过累计的写,可以将随机写变成顺序写。

写入缓存对同步写入用处很大,例如事务日志和二进制日志,但是raid控制器一定要有独立的电池,这样能在断电的时候,不至于损坏数据库和事务性文件系统。一般生产环境最好先做断电测试。

通常情况下,对于raid0,raid1,raid10应该把控制器缓存100%分配给写入用;对于raid5来说,应该保留一些内存给内部操作。

 

raid监控:

硬件raid:一般使用厂商提供的或者使用开源软件监控:MegaCli或者lsiutil

软件raid:cat /proc/mdstat

这里我只是做个了解:

http://imysql.com/2014/09/11/pc-server-raid-controller-disk-health-monitoring.shtml

http://blog.chinaunix.net/uid-25135004-id-3139293.html

最新文章

  1. jQuery选择什么版本 1.x? 2.x? 3.x?
  2. opendrive
  3. LINUX的磁盘管理du命令详解
  4. css3-实现3D立方体旋转
  5. SASS学习笔记(1)
  6. MFC坐标空间与映射模式
  7. 使用Android Studio打Andorid apk包的流程
  8. 传染病控制(codevs 1091)
  9. Less 导入命令 @import
  10. VB.net 字符串 分割 及 重新倒序组装
  11. delete大批量数据引起空间爆满处理
  12. C++ 函数声明中指定,默认参数
  13. IT技术有感
  14. 在k8s上配置ingress并启用HTTPS证书
  15. AI 朴素贝叶斯分类
  16. android 知识点汇总
  17. 批量初始化数组和memset函数
  18. SOA 设计的 9 大原则
  19. Eclipse JUnit简单示例
  20. 字符串(string) 的基本操作

热门文章

  1. NameNode备份策略以及恢复方法
  2. glibc CVE-2015-7547漏洞的分析和修复方法【转】
  3. NOT IN clause and NULL values
  4. 对象数组、集合、链表(java基础知识十五)
  5. vmware9虚拟机通过NAT上网方式设置
  6. Oracle: 禁忌给一般用户授权create any procedure、execute any procedure
  7. g00 网站说明
  8. POJ2689:Prime Distance(大数区间素数筛)
  9. BZOJ_3963_[WF2011]MachineWorks_斜率优化+CDQ分治
  10. java利用Aspose.words.jar将本地word文档转化成pdf(完美破解版 无水印 无中文乱码)