当前位置: 首页 > news >正文

Linux磁盘阵列

一.RAID磁盘阵列介绍

RAID(Redundatnt Array of lndependent Disks),全称为:独立冗余磁盘阵列

解释: RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘 更高的存储性能 和提供 数据备份技术。

RAID技术分为几种不同的级别,分别可以提供不同的速度,安全和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性,性能和容量的要求。

RAID分为不同的等级,不同等级的RAID均在数据可靠性及性能上做了不同的权衡。

常见的RAID级别别有以下几种:

RAID 0 、 RAID 1、 RAID 5、 RAID 6、 RAID 1+0

RAID 功能实现:

提高IO能力

提高耐用性

磁盘冗余备份

RAID实现方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置

软件RAID:通过OS实现

二.RAID磁盘阵列详解

1.raid 0

  • RAID 0连续以位或字节为单位分割数据,并行读/写于对个磁盘上,因此具有很高的数据传输率,但是它没有数据冗余。
  • RAID 0 只是单纯的提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。
  • RAID 0 不能应用于数据安全要求高的场合。

解释:RAID 0 是将两个以上的硬盘并联在一起,向RAID 0 存放数据时,它会分散存储到它下面所有磁盘中。读写都是从多个磁盘中进行,所以读和写速度很快,但是没有冗余功能,有一个硬盘坏了,整个RAID 0 的数据将会丢失。

2.raid 1

  • 通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
  • 当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取的性能。
  • RAID 1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

解释:RAID 1 必须是成对的磁盘组合,最少为2个磁盘,一个磁盘最为正常使用,另一个磁盘作为备份,当正常使用的磁盘繁忙或损坏时,可以切换到备份磁盘进行读写。数据写入到RAID 1时时间较长,因为需要往两个磁盘写数据,读取速度不变,但是可以提高性能,有效的读取(一个坏了,可以去另一个读)
 

3.raid 5

  • N(N>=3)块盘组成阵列,一份数据产生N-1个条带,同时还有1分校验数据,共N份数据在N块盘上循环均衡存储。
  • N块盘同时读写,读性能很高,但由于有校验机制的问题,写性能相对不高。
  • 可靠性能高,允许坏一块盘,不影响所有数据。

解释:RAID 5 最少需要3块磁盘组成,两块磁盘为数据的存储,一块磁盘为校验数据,数据存储的盘的数据读写和RAID 1(分布式存储)是一样的,但是有校验机制,所以写的速度相对RAID 0较差一点,读取的速度很高。任何一个磁盘数据丢失或损坏,都不会导致整个数据丢失,因为有校验机制的盘会通过其它没有损坏的盘计算出损坏的盘内容数据。
 

4.raid 6

  • N(N>=4)块盘组成阵列,与RAID 5相比,RAID 6 增加了第二个独立的奇偶校验信息块。
  • 两个独立的奇偶系统使用不用的算法,及时两块磁盘同时失效,也不会影响数据的使用。
  • 相对于RAID 5 有更大的“写损失”,因此写性能较差

5.raid 1+0 

  • N(偶数,N>=4)块盘,两两镜像后,再组合成一个RAID 0
  • N/2磁盘利用率
  • N/2块盘同时写入,N块同时读取
  • 性能高,可靠性高

解释:RAID 1+0 阵列,先两块硬盘做RAID 1,然后再将两个RAID 1做成RAID 0,相当于既有备份功能又能提高读取速度。写入要往4块盘进行写入,写入较慢,读取从多块磁盘读取,效率很高。且还有备份机制。

三.RAID对比

raid0  

读  提高

写  提高

最少几块盘:1块没有效果,有效果最少2块及以上

是否备份:  没有备份效果

实际利用率: 100%

raid1

读  提高

写  降低

最少  2块盘   一定要是2的倍数

实际利用率 50%

是否备份  有备份

最多可以坏   1块

raid5

读  提高

写  降低

最少  3+

是否备份  有备份

最多可以坏  1块

利用率  n-1

raid 1+0

读 写 提高

备份有

最少 4+ 偶数

利用率  50%

最多可以坏 2块  不能同一个raid1组里的,有三分之一的概率掉数据

四.配置RAID 0  案列 

准备工作

关闭防火墙和防护,加两块盘

1.检查是否安装mdadm软件包

2.进行分区

按照以下步骤对/dev/sdb和 /dev/sdc 进行创建一个分区

3.创建raid 0 设备

4.查看raid信息

查看raid信息有两种方法

一种:mdadm  -D 要查看的设备

一种:cat   /proc/mdstat

查看raid设备

5.格式化和挂载

6.模拟故障测试验证

raid0 损坏一个会导致整个磁盘阵列无法使用

五.配置RAID 1 案列

概念:RAID 1前面了解到主要是起到备份作用,且制作的盘数必须是偶数,下面演示以两块盘进行制作RAID1。

1、检查安装包、进行分区

按照配置RAID 0时,配置硬盘的分区,以及将分区id改为fd模式。

2、创建RAID 1设备

3、查看RAID 1信息

4、格式化和挂载

格式化:mkfs.xfs /dev/md1

挂载:mount /dev/md1 /data

5、故障模拟测试

在解挂载模式下进行测试

六.配置RAID 5 案列

概要:前面了解到,制作raid5,至少需要3块硬盘,但是生产环境中使用4块硬盘的较多,下面介绍使用4块硬盘进行制作RAID 5

1、分区

将4块盘安装上述RAID 0的方法进行分区,每分区给5G大小,id设置为fd

2、创建RAID5设备

3、查看RAID5信息

如果要时实查看可以用命令:watch -n1 (表示1秒刷新一次)

4、格式化以及挂载

格式化:mkfs.xfs /dev/md5

挂载:mount /dev/md5 /data

5、故障模拟测试

七.配置RAID 10 案列

概要:配置RAID10,前面了解最少需要4块盘进行配置,这边就拿4块盘进行制作,先将两块只作为RAID1,再将两个RAID 1作为RAID0。还有一种方法是直接将4块盘制作为RAID10

1、分区

根据配置RAID0一样配置4块硬盘的分区,每个分区大小5G,且id改为fd模式

步骤参考上述RAID0

2、制作RAID 10的方法

2.1 第一种制作RAID10方法

格式:mdadm -Cv /dev/md10 -l10 -n4 /dev/sd[b-e]1

2.2 第二种制作RAID 10的方法

3、格式化和挂载

4、模拟故障

模拟md1组中的sdb1故障

md1组中的sdb1无法正常使用

将模拟损坏的分区删除

重新添加损坏的分区

相关文章:

Linux磁盘阵列

一.RAID磁盘阵列介绍 RAID(Redundatnt Array of lndependent Disks),全称为:独立冗余磁盘阵列 解释: RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻…...

本地网络禁用了在哪里开启?

在当今数字化时代,网络已经成为人们生活中不可或缺的一部分。然而,有时我们可能需要禁用本地网络,无论是出于安全考虑、提高专注力还是其他原因。本文将探讨禁用本地网络的方法以及如何在需要时重新开启网络连接。 第一部分:禁用…...

[mysql 基于C++实现数据库连接池 连接池的使用] 持续更新中

目背景 常见的MySQL、Oracle、SQLServer等数据库都是基于C/S架构设计的,即(客户端/服务器)架构,也就是说我们对数据库的操作相当于一个客户端,这个客户端使用既定的API把SQL语句通过网络发送给服务器端,MyS…...

【Flink SQL API体验数据湖格式之paimon】

前言 随着大数据技术的普及,数据仓库的部署方式也在发生着改变,之前在部署数据仓库项目时,首先想到的是选择国外哪家公司的产品,比如:数据存储会从Oracle、SqlServer中或者Mysql中选择,ETL工具会从Informa…...

idea导入spring-framework异常:error: cannot find symbol

从github上clone代码spring-framework到本地后导入idea,点击gradle构建后控制台提示异常: 具体异常信息: /Users/ZengJun/Desktop/spring-framework/buildSrc/src/main/java/org/springframework/build/KotlinConventions.java:44: error:…...

Unity坦克大战开发全流程——开始场景——开始界面

开始场景——开始界面 step1:设置UI 反正按照这张图拼就行了 step2:写脚本 前面的拼UI都是些比较机械化的工作,直到这里写代码的时候才真正开始有点意思了,从这里开始,我们就要利用面向对象的思路来进行分析&#xff1…...

【SpringCloud】从实际业务问题出发去分析Eureka-Server端源码

文章目录 前言1.EnableEurekaServer2.初始化缓存3.jersey应用程序构建3.1注册jeseryFilter3.2构建JerseyApplication 4.处理注册请求5.registry() 前言 前段时间遇到了一个业务问题就是k8s滚动发布Eureka微服务的过程中接口会有很多告警,当时…...

Java 代理模式

一、代理模式概述 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 代理模式的主要作用是扩展目标…...

【Java干货教程】JSON,JSONObject,JSONArray类详解

一、定义 JSON:就是一种轻量级的数据交换格式,被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构,易于阅读和编写;同时也易于机器解析和生成,有效的提升网络传输效率;支持多种语言,很多…...

2023年高级软考系统架构师考题参考

对于一些有实践经验的同学来说,感觉不难,但是落笔到纸面上,就差强人意了,平时这方面要多练习,所想所思要落到纸面上,或者表达清晰让别人听懂,不仅是工作中的一个基本素质,也是个非常…...

【c语言】飞机大战(1)

提前准备好游戏要的素材,可以到爱给网去找,飞机大战我们需要的是一个我方战机图片,一个背景图,三个敌方战机的图,我方战机的图片,敌方战机的图片,并且将图片和.cpp放在同一文件夹下. 这里创建.…...

关于 K8s 的一些基础概念整理

〇、前言 Kubernetes,将中间八个字母用数字 8 替换掉简称 k8s,是一个开源的容器集群管理系统,由谷歌开发并维护。它为跨主机的容器化应用提供资源调度、服务发现、高可用管理和弹性伸缩等功能。 下面简单列一下 k8s 的几个特性: 自…...

Node.js-fs、path、http模块

1.初识Node.js 1.1 什么是Node.js 1.2 Node.js中的JavaScript运行环境 1.3 Node.js可以做什么 Node.js 作为一个JavaScript 的运行环境,仅仅提供了基础的功能和 AP1。然而,基于 ode.s 提供的这些基础能,很多强大的工具和框架如雨后春笋&…...

CentOS 安装WebLogic

1.JDK 安装 cd /home/ mkdir java cd java/ tar -zxvf jdk-8u321-linux-x64.tar.gzvim /etc/profile添加以下内容到 /etc/profile JAVA_HOME/home/java/jdk1.8.0_321 CLASSPATH.:$JAVA_HOME/lib.tools.jar PATH$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH刷新配置…...

Linux命令的操作练习

1.创建ss别名,查看长格式详细信息 alias ssls -l 2.创建ss别名,复制boot文件夹下的内容到data文件夹下 alias sscp -r /boot /data 3.删除别名ss unalias ss 4. 复制test文件夹下的passwd文件到qq文件夹下,并改名为ww cp test/pas…...

杰发科技AC7840——EEPROM初探

0.序 7840和7801的模拟EEPROM使用不太一样 1.现象 按照官方Demo,在这样的配置下,我们看到存储是这样的(连续三个数字1 2 3)。 使用串口工具的多帧发送功能 看不出多少规律 修改代码后 发现如下规律: 前四个字节是…...

WPF 基础入门(简介)

简介 WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了…...

【Unity动画系统】Animator有限状态机参数详解

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…...

php获取访客IP、UA、操作系统、浏览器等信息

最近有个需求就是获取下本地的ip地址、网上搜索了相关的教程,总结一下分享给大家、有需要的小伙伴可以参考一下 一、简单的获取 User Agent 信息代码: echo $_SERVER[HTTP_USER_AGENT]; 二、获取访客操作系统信息: /** * 获取客户端操作系统信息,包括win10 * pa…...

基于huffman编解码的图像压缩算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Huffman编码算法步骤 4.2 Huffman编码的数学原理 4.3 基于Huffman编解码的图像压缩 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...