RAID0---RAID10(重点)
二、基本原理
RAID ( Redundant Array of Independent Disks )又叫独立磁盘冗余阵列,通常简称为磁盘阵列。
RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。

软raid和硬raid区别:
要实现RAID可以分为硬件实现和软件实现两种。所谓硬RAID就是指通过硬件实现,同理软件实现就作为软RAID.
冗余(备份)从好到坏:RAID1 RAID10 RAID 5 RAID0
性能从好到坏:RAID0 RAID10 RAID5 RAID1
成本从低到高:RAID0 RAID5 RAID1 RAID10
从实现角度看, RAID 主要分为软 RAID、硬 RAID 以及软硬混合 RAID 三种。软 RAID 所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率自然最低。硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本 在软 RAID 和硬 RAID 之间。
Raid 0:最少要两块硬盘才能实现。
优势:数据读取写入最快,硬盘硬盘使用率100%
缺点:无冗余能力,无备用硬盘,一块硬盘损坏,整个阵列的数据都会消失。
建议:做raid0 可以提供更好的容量以及性能,读写速度在RAID中最快,推荐对数据安全性要求不高的使用。
公式:[root@localhost ~]# mdadm -Cv /dev/md0 -l0 -n2 /dev/sd硬盘
Raid 1:最少要两块硬盘才能实现
优势:具有冗余能力,安全性强。具有一块备用硬盘,速度快
缺点:硬盘使用率为50%
建议:主要用在对数据安全性要求很高,而且要求能够快速恢复被损坏的数据的场合。
公式:[root@localhost ~]# mdadm -Cv /dev/md1 -l1 -n2 /dev/sd硬盘
****倘若只有两块硬盘推荐做raid1,如果是要求速度快就做raid0
Raid 2:
优势:RAID2对大数据量的输入输出有很高的性能
缺点:在少量数据的输入输出时性能不好
建议:主要用在对数据安全性要求很高,而且要求能够快速恢复被损坏的数据的场合。
公式:[root@localhost ~]# mdadm -Cv /dev/md2 -l2 -n3 /dev/sd硬盘
Raid3:至少需要3块硬盘raid3
优势:以上优势,raid5兼顾。任意N-1快硬盘都有完整的数据。
缺点:只允许单盘故障,一盘出现故障得尽快处理。有盘坏情况下,raid5 IO/CPU性能狂跌,此时性能烂到无以复加。
建议:盘不多,对数据安全性和性能都有要求,raid5是个不错选择,鉴于出问题的性能,盘多可考虑riad10
公式:[root@localhost ~]# mdadm -Cv /dev/md3 -l3 -n3 /dev/sd硬盘
Raid5:至少需要3块硬盘raid5
优势:可以保证速度为两个盘的速度,容量为两个盘的容量,安全性也和raid差不多。但是毕竟是3个盘,的出来的容量和速度都只等于两个盘之和。
缺点:只允许单盘故障,一盘出现故障得尽快处理。有盘坏情况下,raid5 IO/CPU性能狂跌,此时性能烂到无以复加。
建议:盘不多,对数据安全性和性能都有要求,raid5是个不错选择,鉴于出问题的性能,盘多可考虑riad10
公式:[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/sd硬盘
Raid6:至少需要4块硬盘做raid6
优势:raid6是在raid5的基础上为了加强数据保护而设计的。可允许损坏2块硬盘。
可用容量:C=(N-2)×D C=可用容量 N=磁盘数量 D=单个磁盘容量。
比如4块1T硬盘做raid6可用容量是:(4-2)×1000GB=2000GB=2T
缺点:性能提升方面不明显
建议:对数据安全性要求高,性能要求不高的可选择。
公式:[root@localhost ~]# mdadm -Cv /dev/md6 -l6 -n4 /dev/sd硬盘
Raid10:至少需要4快硬盘。raid10是2快硬盘组成raid1,2组raid1组成raid0,所以必须需要4块硬盘。
优势:兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。这是raid5无法做到的。
缺点:速度和容量也只有2个盘之和。却需要4个盘
建议:硬盘数量足够的情况,建议riad10.
公式:[root@localhost ~]# mdadm -Cv /dev/md10 -l10 -n4 /dev/sd硬盘
题外话:raid5 VS raid10
只看盘的数量的话,raid5的写性能不逊于raid10.
4盘的情况下,raid10提供2盘的写性能,raid5提供3盘
但,raid5的校检体质,导致额外的I0和CPU使用。
不过raid最重要的指标是可靠性:
4盘的raid5,只允许单盘故障,
raid10,允许对柜盘2块故障,可靠性高于raid5,且raid10 可随盘量上升提高容错,raid5就不行,而且IO和CPU的额外开销还涂增,从可靠性和冗余角度,达到同样的可靠性,raid10写能力高于raid5.
特殊情况下:有坏盘,无热备
radi5 CPU和IO性能狂跌。因为数据不完整,在某特殊软件下,可以实现即时重构数据进驻内存,保障业务运行,但此时raid5的性能已经烂到无以复加。
raid10 是条带化+镜像,坏盘影响读性能,不影响写性能,而且无需重构。此时的raid10完爆raid5
RAID0---RAID10(重点)的更多相关文章
- Raid0、Raid0+1、Raid1、Raid5四者的区别
RAID,可以把硬盘整合成一个大磁盘,还可以在大磁盘上再分区,放数据还有一个大功能,多块盘放在一起可以有冗余(备份)RAID整合方式有很多,常用的:0 1 5 10 Raid0Raid0是所有raid ...
- Linux运维跳槽必备的40道面试精华题(转)
Linux运维跳槽必备的40道面试精华题(转) 下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家年后跳槽找个高薪好工作. 1.什么是运维?什么是游戏运维? 1)运维 ...
- Linux运维跳槽40道面试精华题
Linux运维跳槽40道面试精华题 运维派 3天前 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护 ...
- Linux运维精华面试题
1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身 ...
- linux运维工程师面试题收集
面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...
- Linux运维40道精华题
题目 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控 ...
- Linux----知识储备
----------------------------------------------------------------------基础---------------------------- ...
- Linux运维跳槽必备的40道面试精华题
过一次年,结婚.存款.父母养老,一系列向钱看的事都在碾压我们本来还挺简单的神经,但难过没有出路,唯有找到好的方法和事业方向,才能实现一步一个脚印的逆袭. 下面是一名资深Linux运维求职数十家公司总结 ...
- Linux运维命令总结
.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身 ...
随机推荐
- 如何在IntelliJ Idea中同时启动不同端口的两个实例
在SpringCloud开发过程中需要在一个项目中启用不同的端口,我使用的工具是IDEA 步骤1 创建SpringBoot工程 步骤2 在配置文件中添加如下配置: spring.application ...
- Python开发中国象棋实战(附源码)
Pygame 做的中国象棋,一直以来喜欢下象棋,写了 python 就拿来做一个试试,水平有限,电脑走法水平低,需要在下次版本中更新电脑走法,希望源码能帮助大家更好的学习 python.总共分 ...
- promise学习,多看几次。含node,ES6知识
一.引出promise解决回调地狱 需求:你要封装一个方法,我给你一个要读取文件的路径,你这个方法能帮我读取文件,并把内容返回给我 目录图片 三个txt里面的内容分别是111,222,333 1.模块 ...
- 空字符串(“”)和null和空格字符串(" ")的区别
1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0,但它是一个字符 ...
- VS2017编写c/c++汇编函数并调用
首先在VS里面创建个空项目,然后添加汇编文件 .asm, 右键asm文件属性 --- 常规,改成下图的设置 , 从生成中排除改为否, 项类型改为自定义生成工具 然后点确定. 再次右键asm文 ...
- Springboot项目搭建(3)-shiro登录
shiro简述+实现简单登录:https://www.jianshu.com/p/7f724bec3dc3
- BFSDFS模板
BFS模板: private static void bfs(HashMap<Character, LinkedList<Character>> graph,HashMap&l ...
- 私域流量&公域流量
所谓私域流量,指的是个人拥有完全的支配权的账号所沉淀的粉丝.客户.流量,可以直接触达的,多次利用的流量.比如说QQ号.微信号.社群上的粉丝或者顾客,就属于是私域流量. 而与之相对的,就是所谓的公域流量 ...
- Django - 生成models的UML图
参考 https://simpleit.rocks/python/django/generate-uml-class-diagrams-from-django-models/ 运用django-ext ...
- Error: EACCES: permission denied, open '/Users/qinmengjiao/WebstormProjects/m-kbs-app/.babelrc
表示没有访问这个文件的权限 执行命令 sudo chown -R $(whoami) ~/WebstormProjects/m-kbs-app/.babelrc 就可以解决上面的问题 以下是chown ...