## **RAID 是什么**
**RAID ( Redundant Array of Independent Disks )**即独立磁盘冗余阵列,简称为**磁盘阵列**,其实就是用**多个独立的磁盘组成**在一起形成一个大的磁盘系统,从而**实现比单块磁盘更好的存储性能和更高的可靠性**。
## **RAID 有哪些**
常见分类:
* **RAID0**:至少需要两块硬盘,磁盘越多,读写速度越快,没有冗余。
* **RAID1**:只能用两块硬盘,两块硬盘的数据互为镜像(写慢,读快),一块磁盘冗余。
* **RAID5**:至少需要3块硬盘,一块磁盘冗余。它是最通行的配置方式。具有奇偶校验的数据恢复功能的数据存贮方式。奇偶校验数据块分布于阵列里的各个硬盘中。
* **RAID6**:至少需要4块硬盘,2块磁盘冗余,硬盘的总数大于等于4即可。
* **RAID10**:至少需要4块硬盘,冗余一半的硬盘数量,但是硬盘的总数必须是大于或等于4的偶数(相当于每两块硬盘做一个Raid0,然后把各个Raid0做成一个Raid1)。
### **RAID0**
RAID0 是一种非常简单的的方式,**它将多块磁盘组合在一起形成一个大容量的存储**。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这**N份数据会同时并发的写到磁盘中**,因此**执行性能非常的高**。
:-: ![](https://img.kancloud.cn/ca/a9/caa9a4403868f6cda12f77b79bc98c1b_659x453.png)
RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头)
**缺点: 不提供数据校验或冗余备份。一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。**
因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中
### **RAID1**
:-: ![](https://img.kancloud.cn/97/9a/979a8dbd669b070678c9131ca41d0fdf_662x538.png)
**RAID1** 是磁盘阵列中**单位成本最高**的一种方式。因为它的原理是在往磁盘写数据的时候,**将同一份数据无差别的写两份到磁盘**,分别写到**工作磁盘**和**镜像磁盘**,那么它的实际空间使用率只有50%了,**两块磁盘当做一块用**,这是一种比较昂贵的方案。
RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个**冗余备份**。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的**可靠性非常强**,但性能就没那么好了
### **RAID5**
:-: ![](https://img.kancloud.cn/37/27/37271bacf06272a0fd8370e7b5ce8200_611x332.png)
**这是目前用的最多的一种方式。**
**RAID5** 是一种将 **存储性能**、**数据安全**、**存储成本** 兼顾的一种方案。
在了解**RAID5**之前,我们可以先简单看一下**RAID3**,虽然**RAID3**用的很少,但弄清楚了**RAID3**就很容易明白**RAID5**的思路。
**RAID3的方式**是:将数据按照RAID0的形式,分成多份同时写入多块磁盘,但是还会另外再留出一块磁盘用于写**奇偶校验码**。例如总共有N块磁盘,那么就会让其中额度N-1块用来并发的写数据,第N块磁盘用记录校验码数据。一旦某一块磁盘坏掉了,就可以利用其它的N-1块磁盘去恢复数据。
但是由于第N块磁盘是校验码磁盘,因此有任何数据的写入都会要去更新这块磁盘,导致这块磁盘的**读写是最频繁**的,也就非常的容易损坏。
RAID5的方式可以说是对RAID3进行了改进
RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
**RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。**
### **RAID6**
为了进一步提高存储的高可用,又提出了**RAID6**方案,**可以在有两块磁盘同时损坏的情况下,也能保障数据可恢复。**
**RAID6**在**RAID5**的基础上再次改进,引入了**双重校验**的概念。
**RAID6**除了每块磁盘上都有**同级数据XOR校验区**以外,还有针对**每个数据块的XOR校验区**,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。
**虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差**。因此RAID6在实际环境中应用的比较少。
### **RAID10**
:-: ![](https://img.kancloud.cn/c1/de/c1dee2ef87cd44827279bd189f0dc951_538x305.png)
**RAID10**其实就是**RAID1**与**RAID0**的一个合体。
RAID10 **兼备了RAID1和RAID0的有优点**。首先基于**RAID1**模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。
出RAID10模式是有**一半的磁盘空间用于存储冗余数据的**,浪费的很严重,因此用的也不是很多。
- PHP
- PHP 核心架构
- PHP 生命周期
- PHP-FPM 详解
- PHP-FPM 配置优化
- PHP 命名空间和自动加载
- PHP 运行模式
- PHP 的 Buffer(缓冲区)
- php.ini 配置文件参数优化
- 常见面试题
- 常用函数
- 几种排序算法
- PHP - 框架
- Laravel
- Laravel 生命周期
- ThinkPHP
- MySQL
- 常见问题
- MySQL 索引
- 事务
- 锁机制
- Explain 使用分析
- MySQL 高性能优化规范
- UNION 与 UNION ALL
- MySQL报错:sql_mode=only_full_group_by
- MySQL 默认的 sql_mode 详解
- 正则表达式
- Redis
- Redis 知识
- 持久化
- 主从复制、哨兵、集群
- Redis 缓存击穿、穿透、雪崩
- Redis 分布式锁
- RedisBloom
- 网络
- 计算机网络模型
- TCP
- UDP
- HTTP
- HTTPS
- WebSocket
- 常见几种网络攻击方式
- Nginx
- 状态码
- 配置文件
- Nginx 代理+负载均衡
- Nginx 缓存
- Nginx 优化
- Nginx 配置 SSL 证书
- Linux
- 常用命令
- Vim 常用操作命令
- Supervisor 进程管理
- CentOS与Ubuntu系统区别
- Java
- 消息队列
- 运维
- RAID 磁盘阵列
- 逻辑分区管理 LVM
- 业务
- 标准通信接口设计
- 业务逻辑开发套路的三板斧
- 微信小程序登录流程
- 7种Web实时消息推送方案
- 用户签到
- 用户注册-短信验证码
- SQLServer 删除同一天用户重复签到
- 软件研发完整流程
- 前端
- Redux
- 其他
- 百度云盘大文件下载
- 日常报错记录
- GIT
- SSL certificate problem: unable to get local issuer certificate
- NPM
- reason: connect ECONNREFUSED 127.0.0.1:31181
- SVN
- SVN客户端无法连接SVN服务器,主机积极拒绝
- Python
- 基础
- pyecharts图表
- 对象
- 数据库
- PySpark
- 多线程
- 正则
- Hadoop
- 概述
- HDFS