RAID在企业服务器中的应用(RAID几种级别)-阿里云开发者社区

开发者社区> 丁浪> 正文

RAID在企业服务器中的应用(RAID几种级别)

简介: 企业级的数据库应用大多部署在RAID磁盘阵列的服务器上,这样能提高磁盘的访问性能,并能够实现容错/容灾。RAID(冗余磁盘阵列),简单理解,就是拿一些廉价的硬盘来做成阵列。
+关注继续查看
企业级的数据库应用大多部署在RAID磁盘阵列的服务器上,这样能提高磁盘的访问性能,并能够实现容错/容灾。
RAID(冗余磁盘阵列),简单理解,就是拿一些廉价的硬盘来做成阵列。其目的无非是为了扩展存储容量,提升读写性能,实现数据冗余(备份容灾)。就像很早就有老外拿N台旧PC,做成一个强大的“服务器集群”。RAID技术诞生于1987年,由美国加州大学伯克利分校提出。
主流的大概可以分为几个级别:RAID 0,RAID 1,RAID 5,RAID 10 。配置起来也不是很复杂,有兴趣的朋友可以找相关的资料,自己动手实践。


SQL Server 2005常用的有几个级别0,1,5,10 下面我来简单说说这个几个级别的区别及其应用。


RAID 0 简称磁盘条带化,它可以提供最好的读写性能,如果你把两块磁盘做成了RAID0,那么在写入数据的时候,就可以同时对A磁盘和B磁盘执行写入操作。这里我必须说明的是:“可以同时...写入操作”,并不是意味着将文件的相同内容“在同一时间内完全写入”A磁盘和B磁盘中打个比方:有一个100M的文件需要写入磁盘中,假设单个磁盘的写入速度是10M/S,那么需要10秒钟才能完成写入工作。但如果在具有A、B两块磁盘的RAID 0阵列环境中,(以秒/S为最小单位的)单时间内,可以将10M内容写入A磁盘中,并同时将紧随的10M内容写入B磁盘中,这样算起来,写入速度变成了20M/S,只需要5秒钟就能搞定了,而且每块磁盘中只需存储50M的文件内容,不会造成硬盘存储压力。当然,上诉例子也许不恰当,也只是指的理论环境下,实际环境中会有很多其他因素,效率肯定不能达到。
毋庸置疑的是,这样肯定是能提高读写性能的,但是这样也带来了一个问题就是,如果其中的一部分数据丢失了,你的全部数据都不会找回来的,因为RAID0没有提供冗余恢复数据的策略。所以RAID0可以用在只读的数据库数据表,或者是经过复制过来的数据库上,如果你对数据丢失不敏感的话,也可以使用RAID 0,总之这个level下是高性能、无冗余

RAID 1 磁盘镜像 它对读没有什么影响,如果有两块磁盘它只对写有影响,因为它采用了一块磁盘做冗余备份的方法,这样如果你有两块50G的磁盘,那么加起来就是100G,但是在RAID 1下,那么你只能使用50G ,这种方法会影响磁盘的空间使用,降低了I/O 写的性能。通俗点来讲:你将一个100M的文件写入RAID 1时,讲内容写入A磁盘的同时,也会将相同的内容写入B磁盘中。这样一来,两块磁盘的内容是完全一致的(这就传说中的”冗余“,并不是什么高深的东西)。本来只需要写入1块硬盘的,可是现在要写入到两块硬盘去,效率肯定会变低。至于“读”操作,RAID 1环境下,读取时候只使用到了一块硬盘,所以和普通的环境下没啥区别(如果两块硬盘都能够同时工作,那么还可以分摊压力的)。只是当第一个硬盘数据损坏或者挂掉了,就启动第二块硬盘。当然,两块硬盘都挂了,那就真的崩溃了。哈哈。值得一提的是,有些书或者文章上讲,RAID 1是在将第一块硬盘写入完成后,才将数据完整复制到第二块磁盘中做为镜像备份的这种说法有待考证,按我的理解,是同时复制写入的。


RAID 5 与RAID1 不同之处就是多了奇偶校验,所有的奇偶校验的信息会遍布各个磁盘,性能上要比RAID1高些,但是一旦发生磁盘I/O失败,就会造成性能急剧下降,同时这种方法也在RAID0 与RAID1间折了中,是比较通用的做法。 用简单的语言来表示,至少使用3块硬盘(也可以更多)组建RAID5阵列,当有数据写入硬盘的时候,按照1块硬盘的方式就是直接写入这块硬盘的,如果是RAID5的话这次数据写入会分根据算法分成3部分,然后写入这3块硬盘,写入的同时还会在这3块硬盘上写入校验信息,当读取写入的数据的时候会分别从3块硬盘上读取数据内容,再通过检验信息进行校验。当其中有1块硬盘出现损坏的时候,就从另外2块硬盘上存储的数据可以计算出第3块硬盘的数据内容。也就是说RAID5这种存储方式只允许有一块硬盘出现故障,出现故障时需要尽快更换。当更换故障硬盘后,在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块,那就是灾难性的了。

RAID 10  (也叫RAID 0+1 )就是RAID0 与 RAID1的组合,它提供了高性能,高可用,性能上要比RAID5好,特别适合大量写入的应用程序,但是就是成本比较高无论是多少块磁盘你都是将损失一半的磁盘存储。按照我的理解,至少需要4块硬盘才能完成,A和B做数据分割,分别存储一半的数据,C和D分别对应做A和B的镜像备份。这样一来,可真是完美了,也是我理想中的最佳状态。也不需要RAID 5的奇偶校验。很显然,这样子成本也会高一些。

当然,这就和我们讲架构时候经常说的“负载均衡、高可用集群,横向扩展,纵向扩展”的目的其实很类似。通俗点来讲,都是为了实现不间断的工作,保证数据完整性和高可用性,而且最重要的,还要能分摊压力。突然让我想起了上初中物理时候学的“串联和并联”,有点像哦。顺便讲个丢人的笑话,也是我的真实经历,N年前,某日和某大师在一起抽烟、吹牛、瞎侃,大师瞎侃说”google光是在中国目前有XX台服务器集群......“,当时我并不理解什么叫“集群”,第一反应就是这么多台服务器之间到底是“串联“的还是”并联”的关系呢?


  说到最后,可能某些朋友已经不耐烦了。好像本文只是在不停的解释常见RAID的和其好处,而并没提及到sqlserver或者windows存储相关的内容。大家都知道,I/O往往是数据库性能最大的瓶颈, 有时候其实很简单,只需要将sqlserver所在的db server上部署合适的RAID,并将数据库文件分布到不同的磁盘上,就能很大程度的提升数据库的性能,真可谓是立竿见影。有兴趣的朋友,不妨自己实际动手实践一下,网上这方面的资料也很多。其实RAID成本并不高(和DELL、EMC等等那些高端的存储比起来真是“廉价”)。

甚至自己在家里PC机上,也可以通过阵列卡的方式来实现(效果可能不太好)。目前一般的PC服务器,内置都会有RAID支持,在PC服务器领域使用非常广泛。


本文出自http://blog.csdn.net/dinglang_2009,转载请注明出处。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
3000~5000块预算能买阿里云什么配置企业级云服务器?
阿里云企业级云服务器的优惠促销活动还是比较多的,比如全民云计算、云上爆款、8 月 ECS 限量抢活动等。今天老古就为大家整理一些大概在 3000~5000 元左右的阿里云企业级云服务器给大家参考选购。
2202 0
阿里云入门级服务器和企业级服务器有什么区别?
  阿里云入门级服务器和企业级服务器有什么区别?   对于具有相同配置(CPU/内存)和不同规格的云服务器,入门级和企业级服务器的性能有所不同,存在很大差距。   简单地说谁工作谁不工作是片面的。不同的用户组对云服务器的需求水平不同,云服务器提供的性能也离不开用户组的需求。
986 0
云服务器与物理服务器哪一种更适合企业应用部署?
云服务器与物理服务器哪一种更适合企业应用部署呢? 全球企业早已意识到利用高端技术来提高工作效率并获得竞争优势。从目前的舆论方向来看,部分企业的转型主要围绕着如何将旧系统和应用迁移到“云”。而选用“云”的原因,是因为它的可伸缩性,高效率和高可用性。然而,有些人也发现将业务从“云”返回到传统数据中心或进行内部部署基础架构似乎更有意义。类似这样的问题,每家企业每天都在烦恼着,是选择云服务器还有传统服务器。
323 0
+关注
丁浪
关注高并发、分布式系统架构、中间件、领域建模等。 InfoQ特约作者,CSDN博客专家。
49
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载