RAID磁盘阵列(RAID0/1/4/6/1+0)

news2024/11/20 0:25:41

目录

一、概述:

二、RAID 级别介绍

RAID 0

RAID 1

RAID 4

RAID 5

RAID 6

RAID1+0:


一、概述:

        RAID( Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。 RAID 的基本思想是把多个便宜的小磁盘组合到一起,组合为一个大磁盘组,使性能达到或超过一个容量巨大、价格昂贵、读写速度快的磁盘。

        目前 RAID 技术主要分为两种:基于硬件的RAID技术和基于软件的RAID 技术。

        在 Linux 系统中通过自带的软件就能模拟实现 RAID 功能,这样可省去购买昂贵的硬件 RAID 控制器的费用,便可极大地增强磁盘的 IO 性能和可靠性。

        由于是用软件去模拟实现的 RAID 功能,所以它的配置灵活、管理方便。同时使用软件 RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。

        当然基于硬件的 RAID 解决方案比基于软件 RAID 技术在性能上会胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。

二、RAID 级别介绍

        随着 RAID 技术经过不断的发展,现已有 RAID 0 到 RAID 6 七种基本的 RAID 级别,同时还有 RAID 0+RAID 1 的组合形式,称为RAID10,还有 RAID 0+RAID 5 的组合形式,称为RAID50。当然级别并不能代表技术的高低,其中 RAID 2-RAID 4 基本上不再使用了。

        目前这些常用的 RAID 级别 Linux 内核都能够支持,在 Linux 2.6 内核中的软 RAID 可支持以下级别: RAID 0、 RAID 1、RAID 4、 RAID 5 以及 RAID 6 等。 Linux 2.6 的内核除支持以上几种 RAID 级别外,还可支持 LINEAR(线性模式)的软 RAID,线性模式是将两个或更多的磁盘组合到一个物理设备中,磁盘不必具有相同的大小,在写入 RAID 设备时会首先填满磁盘 A,然后是磁盘 B,以此类推。

RAID 0

        也称为条带模式(striped),即把连续的数据分散到多个磁盘上存取。

        当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用磁盘总线的带宽,显著提高磁盘整体存取性能。

        因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行 RAID 0 的主要原因。

        但 RAID 0 没有数据冗余,如果其中一个硬盘出现故障,那么将无法恢复任何数据。

 

RAID 1

        RAID 1 又称为镜像( Mirroring),一个具有全冗余的模式。

        RAID 1 可以用于两个或 2xN 个磁盘,并使用 0 块或更多的备用磁盘,每次写数据时会同时写入镜像盘。

        这种阵列可靠性很高,但其有效容量会减小到总容量的一半, 同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。

 

RAID 4

        创建 RAID 4 需要三块或更多的磁盘,它在一个磁盘上保存校验信息,并以 RAID 0 方式将数据写入其它磁盘。因为一块磁盘是为校验信息保留的,所以阵列的空间大小是( N-l)*S,其中S 是阵列中最小磁盘的大小。就像在 RAID 1 那样,磁盘的大小应该相等。

        如果一个磁盘出现故障,那么可以使用校验信息及另一个磁盘来重建数据。如果两个磁盘出现故障,那么所有数据都将丢失。不经常使用这个级别的原因是校验信息存储在一个磁盘上。每次写入其它磁盘时,都必须更新这些信息。

        因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的 RAID 很少使用了。

 

RAID 5

        在希望结合大量物理磁盘并且仍然保留一些冗余时, RAID 5 可能是最有用的 RAID 模式。 RAID 5可以用在三块或更多的磁盘上,并使用0 块或更多的备用磁盘。就像 RAID 4 一样,RAID5 设备的大小是(N-1)*S。

        RAID5 与 RAID4 之间最大的区别就是校验信息均匀分布在各个驱动器上,这样就避免了 RAID 4 中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始往备用磁盘上同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。

 

RAID 6

        RAID 6 是在 RAID 5 基础上扩展而来的。与 RAID 5 一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。

        只是RAID 6 中多增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,这样 RAID 6 磁盘阵列就允许两个磁盘同时出现故障所以RAID 6 的磁盘阵列最少需要四块硬盘

 

RAID1+0:

        N(偶数,N>=4)块盘两两镜像后,在组合成一个RAID 0。容量为N/2,N/2块盘同时写入,写速度一般,N快盘同时读取,读速度较快。性能高,可靠性高。

 

RAID0

RAID1

RAID5

RAID6

RAID10

RAID50

特点

并行执行

读写速度快

数据完全冗余

读写速度快

数据有校验

读写速度快

数据有校验,冗余性高

读写速度更快

数据有校验高

读写速度更快

数据有校验高

缺点

数据无冗余

读写速度慢

磁盘数量太多

磁盘数量太多

磁盘数量太多

磁盘数

1

2

3

4

4

6

故障

磁盘数

0

1

1

2

2

2

空间

总和

1/2

(N-1)*S

(N-2)*S

1/2

(N-2)*S

场景

大空间测试

系统

常规服务

数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/945875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编写简单的支付接口测试用例思路

支付接口Python代码示例 以下是一个简单的支付接口Python代码示例,实现了用户登录后购买商品并支付的功能: import requests import json # 定义支付接口的URL和请求参数 url "https://example.com/pay" payment_data {"username&quo…

【业务功能篇87】微服务-springcloud-本地缓存-redis-分布式缓存-缓存穿透-雪崩-击穿

一、缓存 1. 什么是缓存 缓存的作用是减低对数据源的访问频率。从而提高我们系统的性能。 缓存的流程图 2.缓存的分类 2.1 本地缓存 其实就是把缓存数据存储在内存中(Map <String,Object>).在单体架构中肯定没有问题。 单体架构下的缓存处理 2.2 分布式缓存 在分布式环…

Iterator: hasNext()、next()、remove()

一、Iterator的API 关于Iterator主要有三个方法&#xff1a;hasNext()、next()、remove() hasNext:没有指针下移操作&#xff0c;只是判断是否存在下一个元素next&#xff1a;指针下移&#xff0c;返回该指针所指向的元素remove&#xff1a;删除当前指针所指向的元素&#xf…

树莓派 SSD1306

树莓派安装python3.9以及pip换源_树莓派安装pip_&#xff2c;&#xff2a;&#xff38;的博客-CSDN博客 树莓派使用 Python 驱动 SSD1306&#xff08;IIC/SPI 通信&#xff09; 进阶篇——树莓派OLED模块的使用 大量例程详解_oled例程_玩转智能机器人的博客-CSDN博客 使用OS 版…

从零开始学习盲盒小程序开发

在当前的电商市场中&#xff0c;微信盲盒小程序以其独特的互动性和惊喜感&#xff0c;已经成为吸引消费者的一种新兴电商模式。如果你也想搭建自己的微信盲盒小程序&#xff0c;本文将详细介绍如何从零开始实现这一目标。 第一步&#xff1a;登录【乔拓云】网后台&#xff0c;进…

自然语言处理2-NLP

目录 自然语言处理2-NLP 如何把词转换为向量 如何让向量具有语义信息 在CBOW中 在Skip-gram中 skip-gram比CBOW效果更好 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 自然语言处理2-NLP 在自然语言处理任务中&#xff0c;词向量&#xff08;…

利用fsimage分析HDFS小文件

一、Hive 小文件概述 在Hive中&#xff0c;所谓的小文件是指文件大小远小于HDFS块大小的文件&#xff0c;通常小于128 MB&#xff0c;甚至更少。这些小文件可能是Hive表的一部分&#xff0c;每个小文件都包含一个或几个表的记录&#xff0c;它们以文本格式存储。 Hive通常用于…

卫星网络中的量子通信

当今社会&#xff0c;通信已经成为人类生活中不可或缺的一部分&#xff0c;而随着科技的迅猛发展&#xff0c;我们的通信方式也在不断革新和进化。近年来&#xff0c;量子通信作为一项引人瞩目的领域&#xff0c;正逐渐走入人们的视野。与传统通信方式相比&#xff0c;量子通信…

渗透测试漏洞原理之---【任意文件上传漏洞】

文章目录 1、任意文件上传概述1.1、漏洞成因1.2、漏洞危害 2、WebShell解析2.1、Shell2.2、WebShell2.2.1、大马2.2.2、小马2.2.3、GetShell 3、任意文件上传攻防3.1、毫无检测3.1.1、源代码3.1.2、代码审计3.1.3、靶场试炼 3.2、黑白名单策略3.2.1、文件检测3.2.2、后缀名黑名…

【AI】数学基础——线代(矩阵特征值,特征向量矩阵分解)

【AI】数学基础——线代&#xff08;向量部分&#xff09; 文章目录 2.3 矩阵2.3.1 二元方程组求解与行列式行列式 2.3.2 用矩阵形式表示数据矩阵与行列式区别特殊矩阵 2.3.3 矩阵的秩矩阵的秩 2.3.4 矩阵运算加减法数乘运算矩阵乘向量线性变换角度线性组合角度 矩阵乘矩阵转置…

MySQL有哪些常见的存储引擎?

主要存储引擎 主要的三个存储引擎MyISAMMemoryInnoDB 那存储引擎应该怎么选择&#xff1f;InnoDB 和 MylSAM 主要有什么区别&#xff1f; MySQL有9种存储引擎&#xff0c;不同的引擎&#xff0c;适合不同的场景&#xff0c;我们最常用的&#xff0c;可能就是InnoDB&#xff0c;…

向前兼容与向后兼容

2012年3月发布了Go 1.0,随着 Go 第一个版本发布的还有一份兼容性说明文档。该文档说明&#xff0c;Go 的未来版本会确保向后兼容性&#xff0c;不会破坏现有程序。 即用10年前Go 1.0写的代码&#xff0c;用10年后的Go 1.18版本&#xff0c;依然可以正常运行。即较高版本的程序能…

泰凌微科创板成功上市

2023年8月25日&#xff0c;泰凌微电子&#xff08;上海&#xff09;股份有限公司&#xff08;股票简称“泰凌微”&#xff0c;股票代码为“688591.SH”&#xff09;成功于上海证券交易所科创板挂牌上市。自泰凌微成立以来&#xff0c;便一直致力于研发具有自主知识产权、国际一…

Matter 设备配网流程 ---- 配网材料和 SPAKE2P 机制

Matter 设备配网流程 ---- 配网材料和 SPAKE2P 机制 1. Matter 配网材料 Matter 配网&#xff08;commissioning&#xff09;使用 SPAKE2P 协议完成 PASE&#xff0c;进而验证 DAC&#xff08;Device Attestation Credentials&#xff09;&#xff0c;派发 NOC&#xff0c;然…

ubuntu入门01——windows上直接部署linux(WSL)

win10安装参考如下教程&#xff1a; 旧版 WSL 的手动安装步骤 | Microsoft Learn 说明&#xff1a;该文档是我按如上教程安装使用Ubuntu写的回顾&#xff0c;家人们参考官方教程更妙。 1.启用适用于Linux的wundows子系统 2.启用虚拟机功能 dism.exe /online /enable-feat…

Java IO操作——BufferedReader

BufferReader Java IO操作——BufferedReader(缓冲区读取内容&#xff0c;避免中文乱码) 要点&#xff1a; 掌握BufferedReader类的使用 掌握键盘输入的基本形式 Buffer&#xff1a;表示缓冲区的。之前的StringBuffer&#xff0c;缓冲区中的内容可以更改&#xff0c;可以提高…

递归算法学习——子集

目录 一&#xff0c;题目解析 二&#xff0c;例子 三&#xff0c;题目接口 四&#xff0c;解题思路以及代码 1.完全深度搜索 2.广度搜索加上深度优先搜索 五&#xff0c;相似题 1.题目 2.题目接口 3.解题代码 一&#xff0c;题目解析 给你一个整数数组 nums &#xff0c…

合宙Air724UG LuatOS-Air LVGL API控件--复选框 (Checkbox)

复选框 (Checkbox) 复选框主要是让用户进行一些内容选择&#xff0c;或者同意用户协议。 示例代码 – 复选框回调函数 function event_handler(obj, event) if event lvgl.EVENT_VALUE_CHANGED then print(“State”, lvgl.checkbox_is_checked(obj)) end end – 创建复选框…

python学习1之安装

前言 目前&#xff0c;Python有两个版本&#xff0c;一个是2.x版&#xff0c;一个是3.x版&#xff0c;这两个版本是不兼容的。由于3.x版越来越普及&#xff0c;我们的教程将以最新的Python 3.9版本为基础。 1、下载 官网地址 https://www.python.org/downloads/ 2、安装 点击…

并发 04(Callable,CountDownLatch)详细讲解

并发 Callable 1 可以返回值 2可以抛出异常 泛型指的是返回值的类型 public class Send {public static void main(String[] args) {//怎么启动Callable//new Thread().start();Aaa threadnew Aaa();FutureTask futureTasknew FutureTask(thread);new Thread(futureTask,&qu…