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)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络.系统.数据库.开发.安全.监控于一身 ...
随机推荐
- Java“被迫”退出争霸,Python继续霸占首位!老牌程序员:我不服
2019年转眼已经接近尾声,如果盘点下2019年最火的语言,除了Python还能有谁?你心中的王者语言又是谁? 这一年Python风光无限 这一年JAVA走向右边 这一年,我们都很感慨,你呢? 关于P ...
- 如何在windows和linux搭建django环境
注:本文以python3为例,python2.x是一样的不再赘述 提前准备: python/python3已经安装好,如果没有请参考以下资料进行安装 linux安装python3 win安装pytho ...
- C++转换构造函数和隐式转换函数
今天是第一次听到C++还有个转换构造函数,之前经常见到默认构造函数.拷贝构造函数.析构函数,但是从没听说过转换构造函数,隐式转换函数也是一样,C++的确是够博大精深的,再次叹服! 其 ...
- 空字符串(“”)和null和空格字符串(" ")的区别
1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0,但它是一个字符 ...
- 使用SqlDataReader的查询操作
原创weixin_42430576 发布于2019-01-31 18:49:41 阅读数 762 收藏 展开 using System; using System.Collections.Gener ...
- Oracle expdp 多表导出处理
一个项目中需要在oracle数据库某个用户下导出1000多个表,导入到测试库做数据分析测试.很少遇到需要导出这么多表的情况,通常都是按schema导出,或者整库导出.考虑到expdp中include参 ...
- 利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试 通过从零到一的教程,我们已经得到了通过mnist训练集生成的caffemodel,主要包含下面四个文 ...
- xampp 配置多域名工程 解决 Access forbidden!
XAMPP虚拟主机配置,多域名绑定访问本地站点 XAMPP有时候你需要一些顶级域名访问方式来访问你本地的项目也就是虚拟主机配置,这时候就需要配置虚拟主机,给你的目录绑定一个域名,实现多域名绑定访问. ...
- GIT-maven
maven 一:什么是maven 1.maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的创建,报告和文档的软件项目管理工具. 2.maven是跨平台的项目管理工具,主要服务于 ...
- Python环境搭建后,多种方式的使用进行程序的执行。
Python环境搭建后,可以使用多种方式进行程序的执行. 第一种: 进入CMD命令提示符 输入python 进入python环境(可以使用Ctrl+C退出) 输入print("hello&q ...