讨论关于RAID以及RAID对于存储的影响
定义及作用
RAID是Redundent Array of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”。后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。
企业级的数据库一般部署在在RAID磁盘阵列的服务器上,这样能提高磁盘的访问性能,并能够实现容错/容灾。
最大优点,在我看来主要是两点:安全性和更快的传输速度。
主流RAID模式
目前主流的大概可以分为几个级别:RAID 0,RAID 1,RAID 5,RAID 10;这次我也简单介绍一下这几种的不同,以及对数据存储的影响。
RAID0:它可以提供最好的读写性能,如果你把两块磁盘做成了RAID0,那么在写入数据的时候,就可以同时对A磁盘和B磁盘执行写入操作,可以部分理解为两块磁盘的写入速度理论上是2倍于一块磁盘。提高读写性能,同时没有任何容错措施,如果其中的一部分数据丢失了,你的全部数据都不会找回来的,因为RAID0没有提供冗余恢复数据的策略。
适用于只读数据库等高性能无冗余的,生产环境下则完全不被考虑。
RAID1:提供了最高的安全保障,其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID 1磁盘阵列又称为Mirror或Mirroring(镜像),因为它就是将一块硬盘的内容完全复制到另一块硬盘上。不难发现,对于写入磁盘而言,至少要付出两倍的性能代价,通过镜像来保证数据的容错性。
RAID5:是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算)RAID 5具有数据安全、读写速度快,空间利用率高等优点。这种方式既可以通过磁盘分割来提高性能,也可以通过奇偶性(Parity)来提供容错,当一个磁盘崩溃后,奇偶数据可以通过计算重建丢失的数据。
RAID10:RAID 10 和其名字所示那样,融合了RAID 0(磁盘分割)和RAID1(镜像)。这种方式也被称为:分割镜像。RAID 1+0 由于将数据分割到多个磁盘中使得并且不像RAID5那样有奇偶效验码,所以写入速度非常快。但写入速度还是会有影响因为需要重复写入镜像盘,但仍然,写入速度还是非常的快。而对于RAID 1+0 存储的代价等同于RAID1 (镜像),在RAID10中只有一半的磁盘空间可以用于存储数据。
不同模式下可利用的存储空间的比较:
SQL存储推荐
SQL Server文件 | RAID级别 |
操作系统和SQL二进制文件 | RAID 1 |
数据和索引 | RAID 1+0 (如果预算不允许可以使用RAID 5) |
日志 | RAID 1+0 |
TempDB | RAID 1+0 |
备份 | RAID 5 |
总结
其实还有其他几种RAID由于应用较少,我们在这里不做讨论,RAID对于SQL Server性能和容错等是具有关键性作用的。我希望本篇文章能够帮你理解RAID是如何影响你的SQL Server的性能。在去年一年的实施过程中尝试了几种不同RAID方式对服务器的影响后,我希望我的这些经验也能帮助大家准确选出自己合适的RAID方式,避免不必要的重复工作甚至影响数据存储。
参考资料
http://msdn.microsoft.com/en-us/library/ms190764.aspx
http://www.cnblogs.com/CareySon/archive/2012/05/08/HowRAIDImpactSQLServer.html
讨论关于RAID以及RAID对于存储的影响的更多相关文章
- 图解RAID 0, RAID 1, RAID 5, RAID 10
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...
- [daily][archlinux][mdadm][RAID] 软RAID
一, 使用mdadm创建RAID 参考:https://wiki.archlinux.org/index.php/RAID 1. 安装 mdadm /home/tong [tong@TStation ...
- RAID 0 ~ RAID 7
一.RAID解析1.RAID 0(1)将几块磁盘并行组合,横向写数据(2)并发IO,写数据最快缺点:不提供数据冗余,如果其中一块磁盘废掉,则数据全毁详细:条带深度大时,一次IO只能从一块磁盘上读取,无 ...
- 什么是RAID?RAID有什么用?RAID原理
什么是RAID 硬盘是个很脆弱的东西,它经常会坏掉.所以,为了保证服务器可靠耐用,硬盘必须时时刻刻保持可用.所以有了RAID这个东西.它的目的是将好几个硬盘合并在一起,就算硬盘坏了一个,剩下还有好几个 ...
- php session (二): 同样的代码 ,不同域名访问 对session存储的影响.
一:准备工作: 位置: htdocs a目录: sessiona.php b目录 sessionb.php c目录 sessionc.php ------ sessiona.php <?php ...
- RAID在数据库存储上的应用-转
随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...
- 存储入门 – RAID技术(大图解释)
对于RAID,一直都知道个概念,但是对于细节没有去仔细的研究过.正好昨天Training的时候, 老师讲解了RAID的内容,所以顺便就整理一下.很多内容都是参考了ISMv2这本书. RAID中用到的技 ...
- 1. RAID在数据库存储上的应用
随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...
- 服务器数据恢复方法_存储raid硬盘离线数据恢复案例
[故障描述]某法院的一台HP-P4500的存储系统,底层是12块1TB的硬盘组的RAID.其中每6个1TB的盘一组,第一组的前面一部分组了一个RAID0+1,是存放HP-P4500嵌入式系统,接着组了 ...
随机推荐
- 关于ES6的对象扩展运算符
对象的扩展运算符(...),用于取出参数对象中的所有可遍历属性,然后拷贝到当前对象之中 对象扩展运算符: 1. 复制对象 let obj1 = { x: 1, y: 2, z: 3 } let obj ...
- mysql 数据库 规范
目录 mysql 数据库 规范 基础规范 命名规范 表设计规范 字段设计规范 索引设计规范 SQL编写规范 行为规范 mysql 数据库 规范 基础规范 必须使用InnoDB存储引擎 解读:支持事务. ...
- go语言实现限流器
本文:https://chai2010.cn/advanced-go-programming-book/ch5-web/ch5-06-ratelimit.html Ratelimit 服务流量限制 计 ...
- Mock测试框架(Mockito为例)
在做单元测试的时候,有的时候用到的一些类,我们构造起来不是那么容易,比如HttpRequest,或者说某个Service依赖到了某个Dao,想构造service还得先构造dao,这些外部对象构造起来比 ...
- python 笔记二
17.进程线程 进程间通信方式:管道Pipe:队列Queue:共享内存Value.Array.Manager: 多进程同步:锁Lock.递归锁RLock.Condition(条件变量):事件event ...
- Json序列化 总结
案例总结:https://www.cnblogs.com/jsll/p/11855349.html public string Json_GetDepartment_Position(...)//st ...
- Jenkins 插件:Job Configuration History(记录job的历史更新记录)
1. 添加插件 添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 . 如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...
- Keras实现Self-Attention
本文转载自:https://blog.csdn.net/xiaosongshine/article/details/90600028 一.Self-Attention概念详解 对于self-atten ...
- Linux 反弹shell(二)反弹shell的本质
Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向 ...
- mysql 两张表字段模糊匹配--字符串拼接函数
concat(A,B,C,...) 拼接字符串 例如concat('123','***','345') =>123***345 SELECT concat( substr(t1.CODE, ...