什么是RAID?

磁盘阵列,把多个磁盘组合成一个磁盘组,在逻辑上看起来就是一块大的磁盘,提供单个物理磁盘的存储量和更高的存储性能,同时提供不同级别的冗余备份的一种技术,不同的RAID技术对应不同级别

生产环境常用RAID级别: RAID0, RAID1, RAID5,RAID10

什么是冗余?

  冗余值重复配置系统的一些部件,当系统发生故障的时,冗余配置的部件介入并承担故障不见得工作,由此减少系统的故障时间

RAID分类:

  软RAID,通过系统自带的软件就能实现软RAID功能,省去购买昂贵的硬件RAID控制器和附件,就能增强磁盘的IO性能和可靠性,互联网企业不用,性能不好,操作系统坏了RAID受到影响

  硬RAID,检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面优秀,生产场景首选

什么是LVM?

逻辑卷管理,最大用途可以随意放大或缩小,灵活管理磁盘存储,必须将分区调成8e,工作中不用它,给虚拟机进行分区扩容,有一定的冗余和性能,但很弱

如果过于强调性能与备份,那么应该使用RAID功能而不是LVM,RAID根侧重性能和安全

使用RAID的直接好处:

  1. 提升数据安全性
  2. 提示数据读写性能
  3. 提供更大的单一逻辑盘数据容量存储

RAID0:

  

提高存储性能的原理是连续数数据分散多个磁盘上存储

至少需要一块盘,由于数据分散在不同的磁盘上,读写数据时候实现并发,生产中使用单盘,要做出RAID0

  

做raid时候,磁盘的大小最好一样

  生产场景:

    1. 负载均衡集群下面的多个相同RS节点服务器
    2. 分布式文件存储下面的节点
    3. MySQL主从复制的多个Slave服务器

  总之一句话,数据丢了没问题,对性能要求高

RAID1

  

  镜像,最大限度的保证用户数据的可用性和可修复,写入数据时候会把一个磁盘的数据百分百的自动复制到另一个磁盘上,从而实现存储双份的数据,写性能下降,因为它需要同时写两份同同样的数据到两块盘,对性能要求不高,对数据安全要求非常高的服务器

  至少两块盘

RAID5

  

一种存储性能、数据安全和存储成本兼容的解决方案,至少3个盘

把奇偶校验信息和想对应的数据分别存储与不同的磁盘上,当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应奇偶校验信息去恢复被损坏的数据

不管有多少块磁盘,最多只能坏一块,RAID0和RAID1的折中方案

RAID10

  

RAID10系统要比RAID01冗余度高,安全性高,最好是4块盘

总结RAID后盘容量

RAID0    支持1块盘到多块盘,容量是所有盘之和

RAID1 只支持2块盘,容量损失一块盘

RAID5 最少三块盘,不管硬盘数量多少,只损失一块盘容量

RAID10 最少4快盘,必须是偶数硬盘,不管硬盘多少,都损失一半的容量,不支持虚拟磁盘

RAID总结:

  

  1. 对读取速度要求高,对数据丢不丢无关紧要,使用RAID0

  2. 对mysql数据库服务主服务器,使用SAS盘RAID10,保证安全性和读取性能

  3. RAID5 是一种中庸状态,最多损失一块盘,还有较快的读写速度和一定的冗余,常见磁盘阵列

  4. RAID0不损失磁盘空间,RAID1损失一半磁盘空间,RAID5损失一块磁盘,RAID10损失一半磁盘空间

linux_RAID的更多相关文章

  1. 专题:mdadm Raid & LVM

    >FOR FREEDOM!< {A} Introduction Here's a short description of what is supported in the Linux R ...

随机推荐

  1. RGB颜色 对照表

      来自为知笔记(Wiz)

  2. jdk8新特性(文章推荐)

    文章推荐 jdk9都已经出来了,虽然很多项目都已经使用jdk8,但是很少会用到jdk8中的新特性.本人经常用的到也就是使用Stream,Lambda,但也仅仅是使用,基本不知道什么Function,C ...

  3. C#wxpay和alipay

    wxpayapi using System; namespace EPayInterfaceApp { public class EPayInterfaceApp { /** * 提交被扫支付API ...

  4. 用mint ui去实现滚动选择日期并可以关闭拾取器

    转发要备注出处哈,么么哒 注释的那些部分都是我在尝试的时候写得,留给自己看得,删除不影响效果哈,希望对你们有帮助,比较忙可能写得很粗糙,不好意思,有空再改了 实例一:   <template&g ...

  5. python3之序列化(pickle&json&shelve)

    1.pickle模块 python持久化的存储数据: python程序运行中得到了一些字符串,列表,字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据.python ...

  6. 解读Scrum燃尽图

    我的Understand the burndown chart读书笔记. 什么是燃尽图: 在敏捷开发中,燃尽图主要用于显示某一特定时间段内团队的剩余工作量,从而了解团队状态和项目进度. 燃尽图其实很简 ...

  7. js中的稀疏数组和密集数组

    原文地址: http://www.2ality.com/2012/06/dense-arrays.html 一般来说JavaScript中的数组都是稀疏的,也就是说数组中的元素与元素之间是由空格的,因 ...

  8. 前端学习:html基础学习五

    9.HTML表单设计(主要内容<form><input><select>标记) 表单标记 <form>...</form> <form ...

  9. C++雾中风景6:拷贝构造函数与赋值函数

    在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数.初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容.这篇文章我们会详细来梳理拷贝构造函数与赋值函数的区别. 1.调用了 ...

  10. Progressive Web Applications

    Progressive Web Applications take advantage of new technologies to bring the best of mobile sites an ...