RAID技术知识详解到RAID 10的linux实现过程

1.RAID技术简介

RAID(Redundant Array of Independent Disks)独立磁盘冗余阵列。通俗来说就是将多个硬盘通过软件或硬件结合成虚拟单台大容量的硬盘使用。

RAID技术的特点:

可以自动检测故障硬盘;

可以重建硬盘坏道的资料;

支持在不停机的情况下对硬盘进行备份;

支持不停机的情况下更换硬盘;

支持动态扩展硬盘容量;

RAID技术分为不同的级别,不同级别表示有着不同的工作模式,整个RAID技术通过对磁盘进行组合,达到提高效率,减少错误的目的。RAID技术规范主要包含RAID0~RAID6等规范。

2.RAID 0规范介绍

定义:RAID 0是所有RAID中读写性能最高的。要实现RAID 0必须要有两个以上硬盘驱动器,RAID 0 并不是真正的RAID结构,RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。

特点:RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

示意图:

3.RAID 1规范介绍

定义:与RAID 0相比,有很好的数据保护性能,但是数据的读取速度会受到影响,因为数据要一边写一边备份,如果要求数据的可靠性,可以考虑RAID 1,即使一个硬盘出现问题也不会对整个数据造成损害。

示意图:

4.RAID 2和RAID 3规范介绍

定义:RAID 2与RAID 3类似,两者都是将数据条块化地分布于不同的硬盘上,然而RAID 2使用称为“加重平均纠错码”的编码技术来提供错误检查及恢复服务。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术的实施更复杂,因此在商业环境中很少使用。RAID 3使用单块磁盘存放奇偶校验信息,奇偶盘失效并不影响数据使用,RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。

示意图:

5.RAID 4规范介绍

定义:RAID 4同RAID 2、RAID 3一样,也同样将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,成为写操作的瓶颈,其在商业应用中很少使用。

示意图:

6.RAID 5规范介绍

定义:RAID 5没有单独指定的奇偶盘,而是交叉地存取数据及奇偶校验信息于所有磁盘上。在RAID 5上读/写指针,可同时对阵列设备进行操作, 提供了更高的数据流量,RAID 5更适合于小数据块随机读写的数据。RAID 3与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及所有的阵列盘,而对于RAID 5来说,大部分数据传输只对一块磁盘操作, 可进行并行操作。在RAID 5中有“写的损失”,即每一次写操作将产生4个实际的读/写操作, 其中两次读旧的数据及奇偶信息, 两次写新的数据及奇偶信息。

示意图:

7.RAID 6规范介绍

定义:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效,也不会影响数据的使用,但需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写的损失”。RAID 6的写性能非常差, 较差的性能和复杂的实施使得RAID 6很少使用。

示意图:

8.RAID 10规范介绍

定义: 把RAID 0和RAID 1技术结合起来,即RAID 0+1。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障而不影响数据可用性,并具有快速读/写能力,要求至少4个硬盘才能做成RAID 0+1。

示意图:

9、RAID 10规范在linux中实现流程

(1)添加四块硬盘(大小自定义)

(2)使用parted命令对添加的四块硬盘进行分区

(3)展示分区完成后的结果

(4)使用添加的四块硬盘,创建两个raid 1,用于后面创建raid 1+0使用。

(mdadm -Cv /dev/md2 -l1 -n2 -c128 /dev/sde1 /dev/sdf1

解析:这条命令的作用是创建一个名为md2的raid1设备,使用/dev/sde1/dev/sdf1两个分区作为成员,并且设置条带大小为128个扇区。

参数解释:C——表示创建设备,v——表示显示创建进度,-l1——表示raid 1,-n2表示2块硬盘进行raid阵列,-c128表示块大小)

(5)使用创建的两个raid1,创建一个raid 10并查看创建结果(注意事项:不要将创建的两个raid1挂载)

(6)格式化raid 10,并进行永久挂载

(7)fstab文件中的内容(使用vim /etc/fstab命令后):

对创建完成的raid10进行检验:

(dd if=/dev/zero of=/mnt/raid1/3gfile bs=1M count=3072——这条命令的作用是在/mnt/raid1目录下生成一个名为3gfile、大小为3GB的文件,并且文件内容全为0,按照自己需求修改count参数即可得到想要大小的文件)

结果分析:说明创建完成的raid 10实际存储空间小于2G.

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

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

相关文章

【Leetcode每日一刷】顺/逆时针旋转矩阵 |48. 旋转图像、矩阵的螺旋遍历 |54. 螺旋矩阵

一、48. 旋转图像 1.1:题目 48. 旋转图像 1.2:解题思路 题型:顺/逆时针旋转矩阵; ❗❗核心思想/ 关键:不可暴力模拟,先镜像,后水平翻转 这题的意思很简单,就是让我们把矩阵顺时…

可视化搭建一个智慧零售订单平台

前言 智慧零售行业是在数字化浪潮中快速发展的一个领域,它利用先进的信息技术和大数据分析来提升零售业务的效率和顾客体验。智慧零售订单平台,具有跨平台、数据智能清洗和建模,以及更加丰富的数据展示形式等优势。智慧零售订单平台可以以文…

mysql数据库备份学习笔记

数据库备份 方法1 物理备份:xtrabackup 方法2 逻辑备份 mysqldump 参考备份与恢复的方法: 【MySql】Mysql之备份与恢复_mysql数据库备份与还原-CSDN博客 可以借鉴的物理备份: 思路是 先做一次全量备份,然后每天做一次增量备份…

让el-input与其他组件能够显示在同一行

让el-input与其他组件能够显示在同一行 说明&#xff1a;由于el-input标签使用会默认占满一行&#xff0c;所以在某些需要多个展示一行的时候不适用&#xff0c;因此需要能够跟其他组件显示在同一行。 效果&#xff1a; 1、el-input标签内使用css属性inline 111<el-inp…

uniapp运行钉钉小程序

因项目原因&#xff0c;公司需要在钉钉里面开发小程序。之前用uniapp开发过app&#xff0c;H5&#xff0c;小程序。还真没尝试过钉钉小程序&#xff0c;今天就简单的记录下uniapp运行钉钉小程序中的过程。 在项目目录新建package.json文件&#xff0c;在文件中添加如下代码&am…

异构计算关键技术之多线程技术(四)

异构计算关键技术之多线程技术&#xff08;四&#xff09; 最近遇到了一个项目&#xff0c;需要写一个用户态的测试程序&#xff08;独立进程&#xff09;&#xff0c;用来测试FPGA PCIe DMA的性能&#xff0c;具体的要求如下&#xff1a; 1. 需要一个主线程&#xff0c;用来…

指针的函数传参的详细讲解(超详细)

如果对指针基础知识已经有可以直接跳到 函数的指针传参与解引用&#xff0c;哪里不明白可以评论&#xff0c;随时解答。 目录 所以就有了一句话&#xff1a;指针就是地址&#xff0c;地址就是指针 对于指针在C语言中&#xff0c;指针类型就是数据类型&#xff0c;是给编译器…

诚意满满之MySQL实现事务隔离的秘诀:锁与MVCC

如果对事务没有太多理解&#xff0c;可以看前面三篇&#xff1a; 诚意满满之讲透事务 诚意满满之讲透事务隔离级别 诚意满满之MySQL如何实现原子性、持久性 不看前两篇也没有关系&#xff0c;知识点是独立的。 MySQL的四个事务隔离级别&#xff1a;读未提交、读已提交、可重…

GoLang:云原生时代致力于构建高性能服务器的后端语言

Go语言的介绍 概念 Golang&#xff08;也被称为Go&#xff09;是一种编程语言&#xff0c;由Google于2007年开始设计和开发&#xff0c;并于2009年首次公开发布。Golang是一种静态类型、编译型的语言&#xff0c;旨在提供高效和可靠的软件开发体验。它具有简洁的语法、高效的编…

JS-12-关键字this、apply()、call()

一、对象的方法 在一个对象中绑定函数&#xff0c;称为这个对象的方法。 示例&#xff1a; 1、对象&#xff1a; var xiaoming {name: 小明,birth: 1990 }; 2、给xiaoming绑定一个函数。比如&#xff0c;写个age()方法&#xff0c;返回xiaoming的年龄&#xff1a; var x…

SwiftUI的context Menu

SwiftUI的 context Menu 现在来演示一下如何使用 SwiftUI 的 Context Menu 。 代码&#xff1a; import SwiftUIstruct ContextMenuBootCamp: View {State var bgColor: Color .purplevar body: some View {VStack(alignment: .leading, spacing: 10.0) {Image(systemName: …

LLVM-3.5 —— 01记,编译 LLVM 3.5.0 clang and clang-query

包括编译&#xff1a;clang clang-tools-extra 0, prepare env sudo apt install llvm sudo apt install clang 使用最新的g 会出错。 1, source code $ git clone --recursive $ cd llvm-project $ git checkout llvmorg-3.5.0 $ cp -r ./clang ./llvm/tools/ $ mkdir llv…

冥想与AI:打造定制的放松体验

如今&#xff0c;在浏览网页或社交网络时&#xff0c;您似乎很难对一条条心理健康信息无动于衷。遇到这种情况的可不只是您。当今不断变化的时代给人们平添压力&#xff0c;企业纷纷利用智能技术满足人们的减压需求&#xff0c;让人们的生活多一些平和从容。 冥想就是一种练习呼…

高效Go编程: encoding/csv标准库深度解析

高效Go编程: encoding/csv标准库深度解析 引言了解encoding/csv库CSV文件的基本结构encoding/csv库的核心功能应用场景 读取CSV文件基本步骤代码示例处理不同的分隔符错误处理 处理CSV数据数据解析代码示例处理不规则数据代码示例 写入CSV文件基本步骤代码示例自定义设置错误处…

Vue组件之间的通信方式

文章目录 组件间通信的概念组件间通信的分类组件间通信的方案父组件将方法传递给子组件&#xff08;props&#xff09;子组件向父组件传值(emit)通过 ref 属性获取DOM元素EventBus p a r e n t 或 parent 或 parent或 root a t t r s 与 attrs 与 attrs与 listeners provide 与…

Kotlin编程权威指南学习知识点预览

一、变量、常量和类型&#xff1a; 变量、常量以及 Kotlin 基本数据类型。变量和常量在 应用程序中可用来储值和传递数据。类型则用来描述常量或变量中保存的是什么样的数据。 1、声明变量: // 变量定义关键字 —— 变量名 —— 类型定义 —— 赋值运算符 —— 赋值var na…

cesium wall 扩散墙(动态立体墙效果 Primitive 方法)

cesium wall 扩散墙(动态立体墙效果)以下为源码直接复制可用 1、实现思路 1、此效果运用cesium 中 Primitive 方法,通过传入中心点、半径、顶点数、颜色来进行加载。 2、运用 Math 方法 对传进来的中心点、半径、定点数,来计算个顶点经纬度。 3、通过Primitive 方法中upda…

643.子数组最大平均数

题目&#xff1a;给你一个由 n 个元素组成的整数数组 nums 和一个整数k。 找出平均数最大且长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于10^-5 的答案都将被视为正确答案。 解题思路&#xff1a;规定了子数组的长度为k&#xff0c;因此可以通过寻找子…

洛谷——P1352 没有上司的舞会

题目描述 某大学有 n 个职员&#xff0c;编号为1…n。 他们之间有从属关系&#xff0c;也就是说他们的关系就像一棵以校长为根的树&#xff0c;父结点就是子结点的直接上司。 现在有个周年庆宴会&#xff0c;宴会每邀请来一个职员都会增加一定的快乐指数 ri​&#xff0c;但…

【MySQL】深入解析索引实现原理

文章目录 1、索引介绍2、索引分类2.1、数据结构HashB Tree 2.2、存储方式聚簇索引非聚簇索引 2.3、功能特性主键索引唯一索引普通索引 2.4、字段数量单列索引多列索引 3、最佳实践3.1、索引覆盖3.2、回表操作3.3、最左匹配原则3.4、索引下推 1、索引介绍 对于MySQL数据库来说…