【命令操作】Linux上通过mdadm配置软RAID _ 统信 _ 麒麟 _ 方德

往期好文:【功能介绍】麒麟2403支持配置任务栏上的图标“从不合并”啦!
Hello,大家好啊!今天给大家带来一篇关于如何在Linux系统上使用mdadm工具配置软件RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)的文章。RAID是一种将多块磁盘组合成一个逻辑磁盘以提高性能、冗余性或可靠性的技术。通过mdadm工具,您可以轻松地在Linux系统中配置软RAID。本文将详细介绍如何使用mdadm配置各种RAID级别的步骤和方法。欢迎大家分享转发,点个关注和在看吧!

什么是RAID?

RAID是一种将多块硬盘组合成一个逻辑单元的方法,用于提高存储系统的性能、容错性和存储容量。不同的RAID级别提供了不同的优点:

RAID 0:条带化,将数据分割并分散存储在多块硬盘上,提高性能,但没有冗余。

RAID 1:镜像,数据在多块硬盘上完全复制,提高数据冗余和安全性。

RAID 5:至少需要3块磁盘,通过分布式奇偶校验实现数据冗余,同时提供一定的存储效率。

RAID 6:类似RAID 5,但有双重奇偶校验,提供更高的容错性。

RAID 10:结合RAID 1和RAID 0,既提供性能提升,也提供冗余保护。

什么是mdadm?

mdadm是Linux系统中配置和管理软RAID阵列的工具。它能够创建、组装、监控和管理RAID阵列,不依赖于硬件RAID控制器,因此灵活性高,适用于各种软RAID配置需求。

1.查看系统信息

pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version 
pdsyw@pdsyw-PC:~/Desktop$ uname -a

2.查看系统磁盘

pdsyw@pdsyw-PC:~/Desktop$ lsblk 

3.更新系统源

pdsyw@pdsyw-PC:~/Desktop$ sudo apt update

4.安装mdadm

pdsyw@pdsyw-PC:~/Desktop$ sudo apt install mdadm

5.创建RAID阵列

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device.  If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 524155904K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
pdsyw@pdsyw-PC:~/Desktop$ 

内容解释:

/dev/md0 是创建的 RAID 设备名称。

–level=1 表示要创建 RAID 1。

–raid-devices=2 表示使用 2 个磁盘。

/dev/sdb 和 /dev/sdc 是要用于 RAID 的磁盘。

RAID 阵列的元数据版本:

系统提示该 RAID 阵列的元数据(metadata)位于开始部分,使用的默认元数据版本是 v1.x。这种元数据版本可能在某些引导程序(如 GRUB)中不受支持,因此不适合直接作为引导设备(即 /boot)。

如果你计划将 /boot 分区放在该 RAID 上,请确保引导程序可以理解 md/v1.x 元数据格式,否则建议使用 --metadata=0.90。

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sdb /dev/sdc

6.查看 RAID 阵列状态

pdsyw@pdsyw-PC:~/Desktop$ cat /proc/mdstat

解释输出内容:

Personalities: [raid1]

当前系统加载了 RAID 1 模块。

md0 : active raid1 sdc[1] sdb[0]

md0 是 RAID 设备名称,表示你创建的 RAID 阵列。

active raid1 说明 md0 正在以 RAID 1 级别工作。

sdc[1] sdb[0] 表示 RAID 阵列由两个磁盘组成,sdb 和 sdc,它们在 RAID 阵列中的编号分别是 [0] 和 [1]。

524155904 blocks super 1.2 [2/2] [UU]

524155904 blocks:RAID 阵列的总块数。

super 1.2:RAID 元数据的版本,这里是 1.2,表示元数据存储在磁盘的开头部分。

[2/2]:阵列的设备总数是 2,当前有 2 个设备是正常工作的。

[UU]:U 表示一个磁盘是 Up 状态,两个 U 表示两个磁盘都处于正常工作状态。

resync = 19.8% (104024832/524155904) finish=34.9min speed=200041K/sec

resync = 19.8%:表示同步进度,目前已经完成 19.8%。

(104024832/524155904):表示已经同步的块数和总块数。

finish=34.9min:预计还需要 34.9 分钟完成同步。

speed=200041K/sec:当前同步速度为每秒 200041 KB。

bitmap: 4/4 pages [16KB], 65536KB chunk

这是关于写入意图位图(bitmap)的信息,表示使用了位图机制来加速同步和恢复。

7.使用mdadm查看 RAID 阵列状态

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0

关键字段解释:

Version: 1.2

使用的 RAID 元数据版本是 1.2,它将元数据存储在磁盘的起始位置。

Creation Time: Mon Oct 14 13:57:46 2024

显示 RAID 阵列的创建时间。

Raid Level: raid1

当前 RAID 级别为 RAID 1(镜像模式)。

Array Size: 524155904 (499.87 GiB 536.74 GB)

阵列的总容量为约 500 GiB,两个磁盘组成的 RAID 1 阵列,其有效容量为单个磁盘的容量。

Used Dev Size: 524155904 (499.87 GiB 536.74 GB)

每个设备的有效大小。

Raid Devices: 2

阵列中使用的 RAID 设备数为 2。

Total Devices: 2

当前阵列中总共有 2 个设备。

Persistence: Superblock is persistent

表示超级块是持久化的,这意味着 RAID 阵列的配置信息存储在阵列的每个成员磁盘中,可以在重启后自动恢复。

Intent Bitmap: Internal

使用了内部写意图位图(intent bitmap),用于跟踪同步状态,加快故障后的重建速度。

Update Time: Mon Oct 14 14:11:40 2024

阵列的最后更新时间。

State: clean, resyncing

RAID 阵列的状态是 “clean”,表示阵列是干净的且工作正常,但目前正在进行同步(resyncing)。

Active Devices / Working Devices: 2

当前有 2 个设备处于活跃且正常工作状态。

Failed Devices: 0

没有失败的设备。

Spare Devices: 0

没有备用设备。

Consistency Policy: bitmap

一致性策略是使用位图以加速同步和重建。

Resync Status: 31% complete

同步状态为 31% 完成。

Devices Details:

/dev/sdb 和 /dev/sdc 都处于 “active sync” 状态,这意味着它们都正常参与 RAID 同步。

8.创建文件系统(需同步完成后操作)

pdsyw@pdsyw-PC:~/Desktop$ sudo mkfs.ext4 /dev/md0

9.挂载 RAID 阵列

pdsyw@pdsyw-PC:~/Desktop$ sudo mkdir -p /mnt/raid1
pdsyw@pdsyw-PC:~/Desktop$ sudo mount /dev/md0 /mnt/raid1
pdsyw@pdsyw-PC:~/Desktop$ sudo chmod 777 /mnt/raid1/
pdsyw@pdsyw-PC:~/Desktop$ df -h

10.配置开机自动挂载

pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/fstab 
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/fstab 
/dev/md0    /mnt/raid1    ext4    rw,relatime,x-gvfs-show    0    0

11.保存 RAID 配置

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u

12.重启

13.打开磁盘

14.写入测试

15.添加磁盘

pdsyw@pdsyw-PC:~/Desktop$ lsblk 

16.添加磁盘到raid

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --add /dev/md0 /dev/sdd 
mdadm: added /dev/sdd

17.保存RAID配置

pdsyw@pdsyw-PC:~/Desktop$ sudo sed -i '$d' /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=pdsyw-PC:0 UUID=46ea30c8:cf312776:613f8677:9b6da3f9
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u

18.查看RAID详细信息

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0

19.移除磁盘

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --fail /dev/md0 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --remove /dev/md0 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0

20.保存RAID配置

pdsyw@pdsyw-PC:~/Desktop$ sudo sed -i '$d' /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=pdsyw-PC:0 UUID=46ea30c8:cf312776:613f8677:9b6da3f9
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u

21.查看RAID详细信息

pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0

通过本文的介绍,您已经了解了如何使用mdadm工具在Linux上配置各种RAID级别。无论是提高性能的RAID 0,还是提供冗余的RAID 1、RAID 5、RAID 10,mdadm工具都可以灵活地帮助您实现高效可靠的数据存储。如果您觉得这篇文章有用,请分享和转发,同时别忘了点个关注和在看,以便未来获取更多实用的Linux系统管理技巧。感谢大家的阅读,我们下次再见!

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

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

相关文章

高频面试手撕

手撕高频结构 前言,以下内容,都是博主在秋招面试中,遇到的面试手撕代码题目,包含常见的数据结构、多线程以及数据库连接池等。 ArrayList 实现了ArrayList的基本功能,包括随机访问和自动扩容。 添加元素时&#xff…

施磊C++ | 进阶学习笔记 | 1.对象的应用优化、右值引用的优化

一.对象的应用优化、右值引用的优化 文章目录 一.对象的应用优化、右值引用的优化1.1 构造,拷贝,赋值,析构中的优化课后练习: 1.2 函数调用过程中对象背后调用的方法1.3 对象优化三原则1.4 右值引用、move移动语意、完美转发 1.1 …

ThingsBoard规则链节点:Clear Alarm节点详解

引言 Clear Alarm 节点含义 使用场景 实际项目中的运用场景 智能建筑管理系统 工业生产线监控 远程医疗监护 结论 引言 ThingsBoard 是一个开源的物联网平台,它提供了设备管理、数据收集、处理和可视化等功能。在 ThingsBoard 中,规则链&#xff…

QExcel 保存数据 (QtXlsxWriter库 编译)

QtXlsxWriter 是一个用于在 Qt 应用程序中创建和操作 Excel XLSX 文件的库。它提供了一个简单的 API,使开发者能够轻松地生成和修改 Excel 文件,而无需依赖 Microsoft Excel 或其他外部应用程序。支持初始化、写文件、读文件、格式设置、合并单元格、加粗…

scala 高阶函数 (下)

一.fold fold的作用 idea实例 二.sorted函数 sort基础知识 idea实例 三.sortWith sortWith基础知识 idea实例

音乐播放器项目专栏介绍​

1.简介 本专栏使用Qt QWidget作为显示界面,你将会学习到以下内容: 1.大量ui美化的实例。 2.各种复杂ui布局。 3.常见显示效果实现。 4.大量QSS实例。 5.Qt音频播放,音乐歌词文件加载,展示。 6.播放器界面换肤。 相信学习了本专栏…

Java学习-JUC

目录 1. 简介 2. Atomic包 2.1 什么是原子类 2.2 Atomic包里的类 3. CAS 3.1 CAS是什么 3.2 Java中对CAS的实现 3.3 CAS的缺陷 4. JUC里面的常见锁 4.1 锁分类 4.1.1 按上锁方式划分 4.1.2 按特性划分 4.1.3 其他锁 4.2 Synchronized和JUC的锁对比 5. 锁原理分析…

智慧园区能带来哪些便利?

所谓智慧园区,是指通过信息化手段,实现园区内各项业务的数字化和智能化管理。园区管理者可以利用智能化平台实时监控各项运营情况,如能源使用、安全监控和物流运输等,及时调整管理策略,提高运营效率。智慧园区利用大数…

pycharm 找不到conda环境

参考:新版Pycharm解决Conda executable is not found-CSDN博客

WNMP环境本地搭建并配置公网地址远程搭建动态网站或服务器

文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 本教程主要介绍如何在Windows系统电脑本地下载安装 Wnmp,以及结合cpolar内网穿透工具一键配…

【C++】——多态(上)

【C】——多态(上) 1 多态的概念2 多态的定义及实现2.1 多态的构成条件2.1.1 实现多态的必要条件2.1.2 虚函数2.1.3 感受多态2.1.4 判断是否满足多态2.1.5 多态场景的一道选择题2.1.6 虚函数重写的一些其他问题2.1.6.1 协变2.1.6.2 析构函数的重写 2.1.7…

深度学习-26-基于PyTorch的多层感知机DNN

文章目录 1 代码分析1.1 加载数据集1.2 定义模型1.3 定义损失函数和优化器1.4 定义训练函数1.4.1 定义累加器Accumulator1.4.2 计算准确率accuracy1.4.3 评估函数evaluate_accuracy1.4.4 单轮训练函数train_epoch1.4.5 训练函数train1.2 执行训练2 整体代码3 参考附录1 代码分析…

使用Python构建一个高级计算器

使用Python构建一个高级计算器 在现代编程中,构建一个功能强大的计算器不仅是学习编程的好项目,还有助于提高对数据处理和用户交互的理解。本文将带您通过使用Python构建一个高级计算器,该计算器支持基本运算、科学运算以及简单的图形用户界…

将SpringBoot项目部署到linux服务器使得本地可以访问

首先我们要先从本地打包jar文件上传到linux中,这些的步骤可以参考其他打包上传的博客哈 打包上传后,可以看到对应的 .jar 文件 如果这样直接运行java -jar code-sandbox-0.0.1-SNAPSHOT.jar 是不行的,因为你还没有在服务器上开放端口&#x…

ubuntu中使用cmake编译报错No CMAKE_CXX_COMPILER could be found.的解决方法

ubuntu中使用cmake编译报错No CMAKE_CXX_COMPILER could be found.的解决方法 No CMAKE_CXX_COMPILER could be found.Could NOT find CUDA (missing: CUDA_NVCC_EXECUTABLE CUDA_CUDART_LIBRARY)Could not find a package configuration file provided by "OpenCV" …

中国制造业精益生产管理的现状与挑战

在当今全球制造业竞争日益激烈的背景下,精益生产管理作为一种高效、灵活的生产模式,已成为众多企业追求的核心竞争力之一。然而,尽管精益生产理念在中国制造业中已得到广泛传播和应用,其实践水平却参差不齐,多数企业仍…

Ansible概述

目录 一、ansible简介 二、absible的特点 三、ansible的工作原理以及流程 四、ansible环境安装部署 五、ansible命令行模块 六、inventory 主机清单 一、ansible简介 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。…

解决ultralytics中的YOLOv8在执行task.py文件添加模块操作出现的KeyError报错

报错详情: 在ultralytics项目文件夹内运行/home/xxx/ultralytics/train.py进行单GPU训练的时候训练可以正常进行 from ultralytics import YOLO# Load a model model YOLO("/home/xxx/ultralytics/ultralytics/cfg/models/v8/yolov8s-FASFF.yaml") # …

3.C++经典实例-计算一个数的阶乘

阶乘(factorial)是‌基斯顿卡曼于1808年发明的运算符号,用于表示一个正整数n的所有小于及等于该数的正整数的积。自然数n的阶乘写作n!。例如,5的阶乘表示为5! 1 2 3 4 5 120。 阶乘在数学和计算机科学中有广泛的应用。例如…

git--git reset

HEAD 单独一个HEAD eg:git diff HEAD 表示当前结点。 HEAD~ HEAD~只处理当前分支。 注意:master分支的上一个结点是tmp分支的所在的结点fc11b74, 79f109e才是master的第二个父节点。 HEAD~ 当前结点的父节点。 HEAD~1 当前结点的父节点。 HEAD~n 当前结点索…