什么是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. 【最大权闭合子图】bzoj4873 [Shoi2017]寿司餐厅

    4873: [Shoi2017]寿司餐厅 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 369  Solved: 256[Submit][Status ...

  2. 如何将VS 2015中的项目上传到github

    最近开始慢慢接触github,现在希望将自己平时写的小程序,上传到github上,以便以后有个参考,在遇到同样问题的时候不至于想不起来怎么做而到处找别人的例子. VS 2015设置 首先下载跟gith ...

  3. SLAVE为什么一直不动了

    导读 遇到SLAVE延迟很大,binlog apply position一直不动的情况如何排查? 问题描述 收到SLAVE延迟时间一直很大的报警,于是检查一下SLAVE状态(无关状态我给隐去了):   ...

  4. ComboBox 中 DisplayMember 和 ValueMember 都是具体干什么的?

    ComboBox组件的数据绑定,在得到数据集后,只有设定好ComboBox组件的的三个属性就可以完成数据绑定了,这三个属性是:"DisplayMember". "Valu ...

  5. Kotlin——从无到有系列教程(5): 你该知道的Kotlin可空类型、空安全(null)、类型转换等特性

    在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...

  6. 使用xUnit为.net core程序进行单元测试(中)

    第一部分: http://www.cnblogs.com/cgzl/p/8283610.html 下面有一点点内容是重叠的.... String Assert 测试string是否相等: [Fact] ...

  7. Java异常(输出[D@139a55问题)

    简单给出一段代码说明问题: public class Main { public static void main(String[] args) { double a[]={1,4,3,2}; Sys ...

  8. Vue 组件之 Router

    Vue 组件之 Router Vue 开发单页应用的时候,免不了使用Vue组件.在单页应用上如何进行组件切换? 结构如下图所示: 主页面包含Foo组件与Bar组件,在主页面中可以进行Foo与 Bar的 ...

  9. python写unix口令破解器

    看了python绝技做出来的unix口令破解器 首先需要crypt. python并不自带!! windows下pip安装失败= = 后来直接去kali敲了 附件:jiami.txt #假设是unix ...

  10. BZOJ:4827: [Hnoi2017]礼物

    [问题描述] 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度. 但是在她生日的 ...