RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列,旧称Redundant Array of Inexpensive
Disk,廉价磁盘冗余阵列) 是一种可以让我们把多块磁盘当作单独一块磁盘来使用的技术。可使用它来提
高磁盘的可靠性或性能,或二者兼有。一组使用RAID技术的磁盘被称作RAID磁盘阵列。
RAID根据性能的不同,存在着多种配置方式,通常兼顾了速度与容错性。下列是几种最常见的配置方式。

RAID0
使用磁盘分割技术(disk striping)将多个磁盘并列起来以提升性能。每块磁盘保存一部分数据,
与MongoDB中的分片类似。由于存在多个底层磁盘,因此大量数据可在同一时间写入磁盘内。这一方
式可提高写入效率。然而,如果其中一块磁盘发生故障导致数据丢失,则这些数据不会存在备份。这
也会导致读取速度变慢(尤其是在Amazon的Elastic Block Store服务上),因为一些数据卷可能比另
一些要慢。
RAID1
使用镜像来提高可靠性。同样的数据副本会被写入到阵列的每一个成员当中。这一方法的性能要
比RAID0低,因为阵列中一个速度慢的成员会拖慢整个阵列的写入速度。然而,如果其中一块磁盘发
生故障,还可以在阵列中的其他成员上找到数据副本。

RAID5
在使用磁盘分割技术的基础上,额外存储数据的校验信息,以防服务器故障导致数据丢失。一般情况
下,在一块磁盘发生故障时RAID5可以自动处理它,用户并不会感觉到故障的发生。然而,这也使
得RAID5成为这些RAID配置方案中最慢的一种,因为它需要在写入数据时计算校验信息。
而MongoDB所进行的恰恰是典型的多次少量的数据写入工作,因此使用RAID5所带来的代价尤为可
观。

RAID10
RAID10是一种RAID0和RAID1的组合:数据被分割以提升速度,又被复制镜像以提高可靠性。

推荐使用RAID10,它比RAID0更安全,也能解决RAID1的性能问题。有人觉得在副本集的基础上再使
用RAID1有些浪费,从而选择RAID0。这是个人喜好问题:你原意为了性能承担多大的风险呢?
不要使用RAID5,它非常非常慢。

最新文章

  1. 由于log太多导致ubuntu硬盘空间满了,进入不了系统解决办法
  2. JavaScript中的正则表达式(终结篇)
  3. Android的init过程(二):初始化语言(init.rc)解析
  4. Effective Java 62 Document all exceptions thrown by each method
  5. UESTC 288 青蛙的约会 扩展GCD
  6. Bootstrap系列 -- 14. 表单控件输入框input
  7. BZOJ4289 : PA2012 Tax
  8. [LeetCode]题解(python):074-Search a 2D Matrix
  9. 手动purge优化器的统计信息与AWR快照,减少对sysaux表空间的占用
  10. C# C/S系统软件开发平台架构图(原创)
  11. Lisp: Common Lisp, Racket, Clojure, Emacs Lisp - Hyperpolyglot
  12. (三)、Struts第三天
  13. Java对Jar文件的操作[转]
  14. 【憩园】C#并发编程之异步编程(三)
  15. imagecreatefrombmp、imagebmp php处理bmp文件
  16. [Swift]LeetCode718. 最长重复子数组 | Maximum Length of Repeated Subarray
  17. xcode 编译或者打包的时候 找不到图片的错误
  18. java学习碰到死胡同了
  19. 形成一个zigzag数组(JPEG编码里取像素数据的排列顺序)
  20. PHP面向对象常见符号总结($this-> 、self ::)

热门文章

  1. 带有命名空间的xml解析,C#
  2. web安全测试---跨站点脚本测试
  3. python-网络编程-03
  4. [adb 学习篇] python将adb命令集合到一个工具上
  5. js的编码函数
  6. URAL 1099 Work scheduling 一般图的最大匹配 带花树算法(模板)
  7. 知名游戏引擎公司Havok发布免费3D移动游戏引擎“Project Anarchy”
  8. hdoj--2082<母函数>
  9. 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky
  10. [SCOI2016] 背单词 (Trie 树,贪心)