使用RAID增加传统机器硬盘的性能

下面我们来看如何使用RAID增加传统机器硬盘的性能,首先我们来了解一下什么是RAID,RAID是磁盘冗余队列的简称,

简单的来说就是RAID可以把多个容量较小的磁盘组成一组容量更大的磁盘,并且提供数据冗余来保证数据完整性的技术,

从定义中我们也可以看到,RAID的主要作用呢,是可以利用多个小的磁盘,组成一组大的磁盘,这样就扩展了传统磁盘的

存储空间,从前面我们对传统磁盘的介绍中呢,可以看到,对于服务器传统的磁盘来说,越小性能可能就越高,但是相对于

来说呢,存储空间也会越小,所以我们就可以使用RAID来解决这个技术,这个问题,提供了数据的冗余,也就是减少了因为

磁盘的损坏导致数据丢失的可能性,当然具体是否可以提供这种冗余呢,要看我们的RAID级别,RAID通过在多个磁盘上

存储和读取数据呢,来大幅度的提高系统的存储量,在RAID中呢可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器呢

在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍的几十倍上百倍的存储效率,传输速率也是和我们

有多少磁盘是息息相关的,这也是RAID最初想解决的一个问题,因为当时CPU已经很快了,磁盘驱动器的速度始终是无法大幅度

提高的,所以需要一种方案来解决这种矛盾,下面我们看一下主要的一种级别,不会覆盖所有的RAID级别的,所以在数据库中会

经常使用到这些级别

我们先来看看最简单的RAID级别,也就是RAID0,这是在百度百科中的对RAID0的一种说明,RAID0是最早出现的

RAID模式,也称之为数据条带,是组件磁盘阵列中最简单的一种形式,只需要两块及两块以上的磁盘就可以了,

他的成本也比较低,可以提高磁盘的性能和吞吐量,RAID0没有,但是实现的成本就是最低的

从上面的图中呢,可以很清楚的看到RAID0的实现方式,简单来说,就是多个磁盘串联在一起,

从而形成一个更大的磁盘,比如我们有3块300G的磁盘,RAID0就可以得到一个900G的磁盘

并且在写入的时候,并发像3个磁盘进行写入,理论上就是磁盘的3倍,同时RAID0也是最简单的一种RAID方式,

最少只需要两块磁盘就可以组成RAID0了,所以从成本上和性能上来说,RAID0可能是性价比最高的一种配置了,

但是如果考虑到数据的恢复,和可靠性因素,应该就称为成本最高的一种配置,因为在RAID0中,数据没有冗余,

并且比单个的损坏性还要高,因为RAID0中任何一块磁盘的损坏,都会导致数据丢失,我们所举的三个磁盘的

例子,损坏的可能性比一块要高出三倍,所以呢RAID0适合不担心数据丢失的情况,比如可以从其他的数据库,

克隆的备库,一次性使用的数据库,这种情况我们可以使用RAID0,存储的一种机制

我们再来看RAID1的定义,RAID1又称之为磁盘镜像,原理就是把一个磁盘的数据镜像到另一个磁盘上,在写入

一块磁盘的同时,也会在另一块闲置的磁盘呢生成镜像文件,在不影响性能的情况下,最大限度的保证系统的

可靠性和可修复性

还是以这个图来看一看吧,这个图就是RAID1的虚拟图,我们看与RAID0唯一的不同之处呢,就是画了一个

等于号,也就是说这两块磁盘是完全一样的,从定义上呢,我们也可以知道,RAID1中呢,只要任何一个镜像盘中,

至少有一块盘是可以使用的,甚至在一半数据量的硬盘出现问题的时候呢,系统仍然可以正常运行,当一块硬盘

失效时,系统会忽略该硬盘,转而使用剩下的镜像盘,来读取数据,具有很好的磁盘的冗余能力,虽然这样对数据库的

安全性来讲是绝对安全的,但是成本也会明显增加,磁盘的使用率就减少了百分之五十,以4块300G的硬盘来说呢,可使用的

磁盘空间呢,只有600G,另外出现故障的系统就不再可靠了,应当更换硬盘,否则剩余的镜像盘也出现问题,整个系统就会

奔溃,更换硬盘后,也有的数据需要很长的时间来进行同步镜像,这个时候虽然数据的访问不受到影响,但是整个系统的性能

是有所下降的,RAID1在很多情况下,可以提供很好的服务性能,并且在不同的磁盘间冗余数据,所以数据冗余性很好,RAID1比

RAID0要快一些,所以非常适合存放日志啊,或者是类似的一些工作,RAID0和RAID1都是很简单的,大部分系统都可以通过软件

来实现这两种RAID模式

我们下面要介绍这种RAID模式呢,就是要比RAID0和RAID1要复杂一些,那就是RAID5,同样我们来看看RAID5

是如何定义的,RAID5又称之为分布式奇偶校验磁盘阵列,他通过分布式奇偶校验快把数据分散到多个磁盘上,

这样如果任何一个磁盘数据丢失,都可以从奇偶校验快中重建,但是如果两块磁盘失效,则整个卷的数据都无法

恢复

同样我们可以通过这个图看看RAID5的方式,上图中Ap,Dp,Cp,Dp,分别代表了各个区的奇偶校验值,可见如果磁盘0

出现问题,则可以通过其他三块磁盘的数据,重新计算出磁盘0的数据,进行恢复,但是如果两块磁盘同时出现问题,

就无法通过奇偶计算值计算数据了,这是一种最经济的一种冗余配置,因为一个阵列只需要一块磁盘的存储空间,

在RAID5上随机写比较慢,因为每次写呢,都要磁盘上两次读两次写,以存储校验位的数值,但是随机读和顺序读呢,

都很快,就是因为读取时并不需要校验位,所以RAID5比较适合于以读为主的数据业务,RAID5的最大性能问题呢,就是在

磁盘失效的时候,因为数据需要重新分配到其他磁盘上,这回严重的影响磁盘的性能,所以一定要使用RAID5的话,一定要

使用在那种从数据库服务器上

最后我们来看一看对数据库来说,最好的一种RAID配置,也就是RAID10,可以说RAID10是对于数据库最好的一种选择,

RAID10又分为分片的镜像,他对磁盘先做RAID1,只会对两组RAID1做RAID0,所以对读写性能都是非常好,相对于RAID5重建

起来会更加的简单,速度也会更快

这个图就是RAID10的示意图,最下面的磁盘进行RAID1,两组RAID1进行RAID0的操作,但是在RAID10中呢,

如果出现一块磁盘损坏,性能也会出现大幅的下降,读取可以精确到两块盘中同时读取,如果损坏了一块,

就从一块盘中进行读取了,所以读取性能可能会下降到百分之五十

上面我们介绍了数据库常用的RAID的几种级别,下面我们看看如何在RAID中进行选择,关于RAID的级别选择呢,

我们提供了一个各个级别对比的表,大家可以从表上看出,RAID0的特点是便宜,快速,比较危险,一旦一块磁盘出现问题呢,

我们整个数据都会受到影响,同时也就是说他是没有冗余的,磁盘的盘数呢,只要他大于两块,都可以做RAID0,他的特点是

读写特别快,RAID1他的特点是高速读,简单且安全,它是完全的做了数据的冗余,要求的盘数至少要有两块,我们说他的读是快的,

但是写呢相对就比较慢,因为每次写都要进行一次镜像,而RAID5的特点呢,安全,成本比较适中,同时具有冗余,他的盘数至少是N+1块,

他的读比较快,而写呢就取决于我们RAID5最慢的一块磁盘,而RAID10呢,特点就是一个字,贵,但是高速且安全,并且存在数据冗余,

盘的数量需要2N块,比如4块8块那种,磁盘的数量,特点是读块,写也快,对于数据库应用,特别是读写比较频繁的数据库,大家最好还是

选择RAID10这种RAID级别,而对于不重要的,重建的从库呢可以选择RAID0,RAID5这种RAID级别,但是要小心RAID5出现磁盘损坏时候的

IO的大幅下降,带来主从延迟的问题,另外RAID对速度还是有很大的影响的,所以大家在选择RAID卡的时候呢,要注意最好选用缓存的

RAID控制器,这个就是我们对RAID大概的一个讲解,也就告诉大家如何选择RAID的级别,下面我们再来看看另外一种存储设备

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值