RAID磁盘阵列

RAID磁盘阵列

*本章重点:了解各RAID级别的原理优缺点及常用级别实现,企业中厂商大多提供了硬RAID方案。

1、什么是RAID?

“RAID”一词是由David Patterson, Garth A. Gibson, Randy Katz 于1987年在加州大学伯克利分校发明的。在1988年6月SIGMOD会议上提交的论文”A Case for Redundant Arrays of Inexpensive Disks””中提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价驱动器的性能所击败。尽管故障与驱动器数量的比例会上升,但通过配置冗余,阵列的可靠性可能远远超过任何大型单个驱动器的可靠性

独立硬盘冗余阵列RAID, Redundant Array of Independent Disks),旧称 廉价磁盘冗余阵列,简称 磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。

RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。

简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。

2、实现方式?

RAID功能:

  • 提高IO能力,磁盘并行读写
  • 提高耐用性,磁盘冗余算法来实现

实现方式:

  • 硬件RAID卡:一种是外接 硬盘卡提供适配;一种是主板自带RAID控制芯片,烧录在BIOS里的配置。 企业级实现方式!!
  • 软件RAID:通过OS实现,比如:群晖的NAS *家用实现方式

硬件RAID缺点:根据各个厂商有关,配置方式和界面差别很大。

3、RAID级别

级别: 多块磁盘组织在一起的的工作方式有所不同

常见的类型如下:

RAID0:条带卷,strip

RAID1:镜像卷,mirror

RAID5

RAID6

RAID10

RAID50

RAID01

3.1 RAID-0:性能最佳

以chunk单位读写数据,因为读写时都可以并行处理,所以在所有的级别中,RAID0的速度是最快的,但是RAID0既没有冗余功能,假如一个硬盘损坏, 所有是数据都会丢失

RAID磁盘阵列

要求:多块物理盘(至少两块)硬盘通过软件或者硬件方式串联在一起组成一个集合卷组,并将数据依次写入到各个物理硬盘中。大小相同,组合后系统只能识别组合后的一个逻辑盘,空间变大(两个盘之和),如上图,数据写入不同的硬盘设备中,即disk0,disk1分别保存数据,最终实现提升读取、写入速度的效果。

通俗来说:RIAD0技术能够有效提升硬盘数据IO速度,但是不具备数据冗余和纠错能力。

实现:假如一个文件有1G,会分成若干个chunk(单位)可以理解为存放数据的数据块,假设是64K,如果存放?A1 B2 A3 B4 A5…

A代表硬盘1,B代表硬盘2 ,按顺序存放, 两块可以同时写入50%数据,理论上性能提升了50%,所以硬盘越多,同时读写的速度较快。 致命缺点就是一块损坏,全部数据丢失。

企业中很少用,没有容错冗余性!!!

3.2 RAID-1:完整备份

简称:镜像卷(同步)。针对RAID0的缺陷,RAID1可以解决。

原理:两组以上的N个磁盘相互做镜像,在一些多线程操作系统中有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID0相同。另外写入速度有微小降低。

RAID磁盘阵列

读性能提升、写性能略有下降

可用空间:1*min(S1,S2,…)

磁盘利用率 50%

有冗余能力

最少磁盘数:2+

简单来说:RAID1技术注重安全性,是因为在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率就得以下降。从理论上来说,2块硬盘的利用率就是50%,3块硬盘的可用率就是33%,以此类推,无疑是一定程度上增大了系统计算的负载。

代价:空间换冗余。

3.3 RAID1+0,RAID0+1

RAID磁盘阵列

RAID1+0,即RAID1和RAID0的组合,先把两组硬盘分别作为RAID1,然后把组合好的两组RAID1组合成RAID0。

读、写性能提升。

可用空间:N/2

有容错能力: 每组镜像最多只能坏一块。

最少磁盘数:4,4+

这也是目前存储厂商最推荐的方法。

RAID磁盘阵列

RAID0+1,顾名思义就是先把两组硬盘组合成RAID0之后,再把两组RAID0组合成RAID1.

同时含有1和0的特性。

读写提升,同一时刻,只能坏一组RAID0硬盘(2块),组1和组2不能同时坏其中一个,否则全部丢失。

无校验,无容错。

3.4 RAID4(不常用)

RAID磁盘阵列

利用率好,有冗余能力,至少3块硬盘才能实现。

多块数据盘异或运算值存于专用校验盘。最后一块硬盘存放其他几块硬盘的校验位。

4块硬盘的可用率,就是75%,最后一块做校验盘。

N-1/N

Original: https://www.cnblogs.com/cn-leoblog/p/15522576.html
Author: Leo’sblog
Title: RAID磁盘阵列

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/711866/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • @AliasFor注解

    顾名思义,@AliasFor表示别名,它可以添加到自定义注解的两个属性上,表示这两个属性互为别名。也就是说,这两个属性其实是同一个含义。 通常所有注解都会有一个属性value,在使…

    技术杂谈 2023年5月31日
    0102
  • 小熊飞桨练习册-06Paddlex垃圾分类

    文件说明 文件 说明 train.py 训练程序 quant.py 量化程序 prune.py 裁剪程序 test.py 测试程序 infer.py 预测程序 onekey.sh …

    技术杂谈 2023年7月23日
    0142
  • day 1

    想法很简单,但实现起来 可能就不是那么回事了。数组的元素是不能删的,只能覆盖方法:双指针法注意题目:输入数组是以「引用」方式传递的 方法:双指针why可以用双指针:看似无序,实则有…

    技术杂谈 2023年7月10日
    085
  • Nikon Camera Control Pro 2 for Mac/win(相机远程控制软件)

    Original: https://www.cnblogs.com/aurora-123/p/16840704.htmlAuthor: 佛系女孩Title: Nikon Camer…

    技术杂谈 2023年7月11日
    0101
  • python爬虫之抓取小说(逆天邪神)

    2022-03-06 23:05:11 申明:自我娱乐,对自我学习过程的总结。 环境: 项目目标: 最终效果:都已实现。可以判断小说更新了没;更新了就下载下来;通过调整小说的已看章…

    技术杂谈 2023年7月11日
    0105
  • IO流—-读取文件,复制文件,追加/插入文件

    文件结构 读取文件 第一种方式 第二种方式: 复制文件 追加/插入文件 追加: 一个文件插入另一个文件: FileInputStream和FileOutputStream的简单用法…

    技术杂谈 2023年7月24日
    097
  • Golang使用swaggo自动生成Restful API文档

    相信很多程序猿和我一样不喜欢写API文档。写代码多舒服,写文档不仅要花费大量的时间,有时候还不能做到面面具全。但API文档是必不可少的,相信其重要性就不用我说了,一份含糊的文档甚至…

    技术杂谈 2023年7月24日
    098
  • 陈宏智:字节跳动自研万亿级图数据库ByteGraph及其应用与挑战

    导读: 作为一种基础的数据结构,图数据的应用场景无处不在,如社交、风控、搜广推、生物信息学中的蛋白质分析等。如何高效地对海量的图数据进行存储、查询、计算及分析,是当前业界热门的方向…

    技术杂谈 2023年7月25日
    0119
  • C语言建立哈夫曼树编码译码

    #include <stdio.h> #include <string.h> #include <stdlib.h> //&#x8F93…

    技术杂谈 2023年7月24日
    089
  • 日常踩坑_jpa的踩坑心得

    背景提要 使用jpa的出现了很多问题1、使用between做日期范围查询时报错2、使用@Query注解写原生sql时报错3、使用@where注解自动在sql后添加条件时查不出东西4…

    技术杂谈 2023年7月25日
    098
  • 今天学弟问我pip如何永久换源?

    pip如何永久换源 临时使用 我们在使用Python开发的时候,经常要下载第三方模块,最常用的方式就是直接 pip install &#x6A21;&#x5757;…

    技术杂谈 2023年6月21日
    0116
  • PyQt5主窗口图标显示问题汇总

    窗口程序的开发流程如下: 先通过qt designer设置界面并将程序图标设置好,通过在designer中按ctrl + R 进行预览可以看到窗口左上角的图标,然后保存 通过pyu…

    技术杂谈 2023年7月11日
    098
  • MySQL建表语句生成Golang代码

    1. 背景 对于后台开发新的需求时,一般会先进行各种表的设计,写各个表的建表语句 然后根据建立的表,写对应的model代码、基础的增删改查代码(基础的增删改查服务可以划入DAO(D…

    技术杂谈 2023年6月21日
    0143
  • Git的基本使用

    基础操作 1.选择一个合适的地方,创建一个新目录 mkdir learngit cd learngit 2.通过 git init命令把这个目录变成Git可以管理的仓库 git i…

    技术杂谈 2023年7月24日
    0101
  • 机器学习常用指标

    一、机器学习常用指标 对于一个分类任务,我们预测情况大致如下面混淆矩阵所示: 预测为正样本预测为负样本 标签为正样本 TP FN 标签为负样本 FP TN 1、accuracy a…

    技术杂谈 2023年6月21日
    0113
  • 基于zookeeper集群的云平台-配置中心的功能设计

    最近准备找工作面试,就研究了下基于zookeeper集群的配置中心。 下面是自己设想的关于开源的基于zookeeper集群的云平台-配置中心的功能设计。大家觉得哪里有问题,请提出宝…

    技术杂谈 2023年7月11日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球