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

MySQL与RAID的更多相关文章

  1. MySQL数据库Raid存储方案

    作为一名DBA,选择自己的数据存储在什么上面,应该是最基本的事情了.但是很多DBA却容易忽略了这一点,我就是其中一个.之前对raid了解的并不多,本文就记录下学习的raid相关知识. 一.RAID的基 ...

  2. 【Linux】系统 之 RAID

    本人从事DBA相关的工作,最近遇到了IO抖动伴随shread running抖动的情况,主机宕机重启后备库及下游解析binlog出现损坏的案例,向一些有经验的同事咨询学习,其中最大的嫌疑是:raid卡 ...

  3. MYSQL SHOW VARIABLES简介

    原文地址:http://www.2cto.com/database/201108/100546.html mysqld服务器维护两种变量.全局变量影响服务器的全局操作.会话变量影响具体客户端连接相关操 ...

  4. MySql配置参数很全的Mysql配置参数说明

    MySql配置参数 很全的Mysql配置参数说明 1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很 ...

  5. 查找mysql数据文件存放路径

    show variables like 'datadir%'; show variables当前的会话,是系统参数 是静态 show global variables全局 show status是系统 ...

  6. mysql show variables

    1. back_log 指定MySQL可能的连接数量.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程. back_log ...

  7. mysql 开发进阶篇系列 21 磁盘I/O问题(RAID)

    一.概述 作为应用系统的持久化层,不管数据库采取了什么样的Cache机制,数据库最终总是要将数据储存到可以长久保存的I/O设备磁盘上.但磁盘的存取速度显然要比cpu,ram的速度慢很多.因此,对于比较 ...

  8. MySQL Disk--SSD与RAID

    ===================================================SSD与RAID 51.在RAID 5这类Parity-RAID上存在partial-stripe ...

  9. MySQL优化聊两句

    原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL优化聊两句 MySQL不多介绍,今天聊两句该如何优化以及从哪些方面入手, ...

随机推荐

  1. java8--面向对象 上(疯狂java讲义3) 复习笔记

    1.初始化块总在构造器执行之前被调用 2.静态初始化块用于初始化类,在类初始化阶段被执行 3.如果继承树里的某个类要被初始化时,系统将会同时初始化该类的所有父类 4.一旦程序员为一个类提供了构造器,系 ...

  2. chmod|chown|chgrp和用法和区别

    1.chgrp(改变文件所属用户组) chgrp 用户组   文件名   ###就是这个格了.如果整个目录下的都改,则加-R参数用于递归. 如:chgrp -R   user smb.conf 2.c ...

  3. matlab max函数

    >> a=[1,6,3;7,5,6] a = 1 6 3 7 5 6 >> [q,p]=max(a,[],2) 返回每行最大值,q是结果.p是索引 q = 6 7 p = 2 ...

  4. vue实现单选多选反选全选全不选

    单选 当我们用v-for渲染一组数据的时候,我们可以带上index以便区分他们我们这里利用这个index来简单地实现单选 <li v-for="(item,index) in radi ...

  5. Swift语言学习(四)字符串与Array等集合的使用

    Swift 提供了C和Objective-C基础类型的自己一套版本,包括用于整型的Int,用于浮点值的Double和Float,用于布尔值的Boolean,和用于文本数据的String.Swift还提 ...

  6. silverlight 图片引入代码

    private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e) { string str = t ...

  7. 用HTTP操作和文件操作把网页下载到sd卡

    这里先把代码贴到这里做一个存档,写到SD卡的是一个txt文件,改成HTML格式之后会出现百度主页,但是中文是乱码,这一点先暂时不去研究了. 代码: package com.larry.gotcha; ...

  8. [Selenium] 操作浏览器 Cookies

    WebDriver 提供了一系列 Cookies 的操作来获取.填写.删除 Cookies 的方法,节省了多次在登陆页面的查找元素并填写登录信息的时间. 1)获取 Cookies ,并保存到文件中以备 ...

  9. 机器学习--DIY笔记与感悟--①K-临近算法(2)

    上一篇博客我手动写了KNN算法,并且之后用手写的算法预测了约会的成功率. 而今天,我在大神博客的指导下调用sklearn这个库来预测图片的内容. 一.前期准备 由于我这里使用的是mac版本,而skle ...

  10. IT兄弟连 Java Web教程 经典面试题

    1.什么是B/S结构?什么是C/S结构? B/S是Browser/Server的缩写客户机上只要安装—个浏览器(Browser)加Netscape Navigator或Internet Explore ...