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

RAID学习笔记

简介

概述: RAID(Redundant Array of Independent Disks, 独立磁盘冗余阵列)是一种将多个物理硬盘组合成一个逻辑单元的存储技术,旨在提升数据存储的性能、容量和可靠性。通过不同的组合方式(称为RAID级别),RAID可以实现数据冗余、提高读写速度或两者兼顾

基本原理:

  • 数据条带化:将数据分割并并行写入多个磁盘,提高读写性能
  • 数据镜像:将相同的数据写入两块或多块磁盘,实现数据冗余,提高数据安全性
  • 奇偶校验:通过计算校验信息存储在磁盘上,即使某一磁盘发生故障,也能通过校验信息恢复数据

实现方式:

  • 硬件RAID:使用专用的RAID控制器卡来管理磁盘阵列,通常提供更高的性能和更多的高级功能,如热插拔、热备盘等
  • 软件RAID:由操作系统通过软件方式实现RAID功能,例如linux中的mdadm工具,成本较低,灵活性高,但可能占用更多的cpu资源

RAID级别

RAID 0(条带化)

最少磁盘数: 2

特点: 将数据分割并并行写入多个磁盘,提高读写性能,但不提供数据冗余,任一磁盘故障都会导致数据丢失

RAID 1(镜像)

最少磁盘数: 2

特点: 将相同的数据写入两块磁盘,实现数据冗余,提高数据安全性,但存储利用率为50%

RAID 5(带奇偶校验的条带化)

最少磁盘数: 3

特点: 数据和奇偶校验信息分布在所有磁盘上,提供较好的性能和容错能力,允许一块磁盘故障而不丢失数据

RAID 6(双重奇偶校验)

最少磁盘数: 4

特点: 类似于RAID 5,但增加了第二个奇偶校验块,允许同时两块磁盘故障而不丢失数据,提高了容错能力

RAID 10(RAID1+0)

最少磁盘数: 4

特点: 将RAID 1的镜像和RAID 0的条带化结合,既提供高性能,又具有高数据冗余能力

mdadm使用

安装

sudo yum install mdadm  # 适用于 CentOS/RHEL
sudo apt install mdadm  # 适用于 Debian/Ubuntu

创建软RAID 0

1. 检查两个硬盘是否有超级块:

mdadm -E /dev/sd[b-c]

没有超级块是正常的

这里可以对磁盘进行分区,这样的话可以让分区的磁盘来创建raid设备,而不是将整个裸磁盘来创建raid设备

2. 创建raid设备:

mdadm -Cv /dev/md0 -l raid0 -n 2 /dev/sd[b-c]
  • -C:–create,创建
  • -v:–verbose,输出详细创建过程的日志
  • -l:raid级别
  • -n:磁盘数量

3. 验证:

cat /proc/mdstat

状态为active即正确

4. 检查两个磁盘是否有超级块:

mdadm -E /dev/sd[b-c]

有超级块是正常的

5. 查看raid设备详细信息:

mdadm -D /dev/md0

6. 给raid设备创建文件系统:

mkfs.ext4 /dev/md0

7. 挂载raid设备:

mkdir -p /mnt/md0
mount /dev/md0 /mnt/md0

8. 验证:

df -h

9. 配置启动自动挂载:

vim /etc/fstab
# /dev/md0	/mnt/md0	defaults	0 0# 使用一下命令验证
mount -a

10. 保存raid配置:

如果你想要重启raid设备,这一步是必须的。如果只是重启系统的话,并不会关闭raid设备,所以也可以不用这一步,如果你保证你的raid设备不会被关闭。

mdadm -E -s -v >> /etc/mdadm.conf
cat /etc/mdadm.conf

创建软RAID 10

1. 检查四个硬盘是否有超级块:

mdadm -E /dev/sd[b-e]

没有超级块是正常的

2. 创建raid设备:

mdadm -Cv /dev/md0 -l raid10 -n 4 /dev/sd[b-e]
  • -C:–create,创建
  • -v:–verbose,输出详细创建过程的日志
  • -l:raid级别
  • -n:磁盘数量

3. 验证:

cat /proc/mdstat

状态为active即正确

4. 检查四个磁盘是否有超级块:

mdadm -E /dev/sd[b-c]

有超级块是正常的

5. 查看raid设备详细信息:

mdadm -D /dev/md0

6. 给raid设备创建文件系统:

mkfs.ext4 /dev/md0

7. 挂载raid设备:

mkdir -p /mnt/md0
mount /dev/md0 /mnt/md0

8. 验证:

df -h

9. 配置启动自动挂载:

vim /etc/fstab
# /dev/md0	/mnt/md0	defaults	0 0# 使用一下命令验证
mount -a

10. 保存raid配置:

如果你想要重启raid设备,这一步是必须的。如果只是重启系统的话,并不会关闭raid设备,所以也可以不用这一步,如果你保证你的raid设备不会被关闭。

mdadm -E -s -v >> /etc/mdadm.conf
cat /etc/mdadm.conf

删除软RAID设备

1. 卸载raid设备:

umount /dev/md0

2. 关闭raid设备:

mdadm -S /dev/md0

3. 卸载raid设备中的所有磁盘:

mdadm --misc --zero-superblock /dev/sd[b-c]

使用loop设备创建raid

1. 创建几个用于模拟磁盘的文件:

mkdir -p /raid-test
cd /raid-test
dd if=/dev/zero of=disk1.img bs=100M count=10
dd if=/dev/zero of=disk2.img bs=100M count=10
dd if=/dev/zero of=disk3.img bs=100M count=10
dd if=/dev/zero of=disk4.img bs=100M count=10

2. 通过loop设备将这些文件映射为块设备:

losetup -fP disk1.img
losetup -fP disk2.img
losetup -fP disk3.img
losetup -fP disk4.img

3. 查看分配结果:

losetup -a

4. 然后创建raid的时候选择loop0-3设备即可

http://www.xdnf.cn/news/6988.html

相关文章:

  • USB和串口软件编程控制继电器通断
  • windows系统各版本下载
  • 查看电脑信息的方法-CPU核心数量、线程数量等
  • TXT记录解析技术深度解析与应用实践
  • 医疗大模型技术演进与行业应用全景
  • 在Java中调用Ant命令
  • 动态规划(3)学习方法论:构建思维模型
  • CSP 2024 提高级第一轮(CSP-S 2024)单选题解析
  • 利用SenseGlove触觉手套开发XR手术训练体验
  • profibusDP主站转profinet网关接ABB电机保护单元与1200plc通讯
  • 初探Linux内核:解锁Linux操作系统的基本核心的奥秘
  • StreamCap v0.0.1 直播录制工具 支持批量录制和直播监控
  • 数学复习笔记 17
  • arm-linux平台通过syslog + logrotate + 脚本实现日志管理
  • 互联网大厂Java求职面试:AI驱动的短视频直播平台架构设计
  • 笔试模拟 day7
  • SAP学习笔记 - 开发豆知识02 - com.sap.cds.services.cds.CdsService 废止,那么用什么代替呢?
  • 政府数据开放试点企业如何抢占特许经营协议黄金席位
  • 【C++】18.二叉搜索树
  • TCP连接状态说明
  • 光电材料的应用领域及发展前景
  • RAG文本分块
  • 【SpringBoot】 AutoWired | 关于使用@AutoWired自动装配bean对象红波浪线报错
  • 【MySQL】MySQL表操作基础(二):增删改查(进阶)
  • 项目管理进阶:精读 78页华为项目管理高级培训教材【附全文阅读】
  • linux网络内核的核心函数作用和简介
  • Vim编辑器命令模式操作指南
  • CodeBuddy 助力小程序开发,一款面试答题小程序诞生
  • C++中隐式的类类型转换知识详解和注意事项
  • Spring Boot- 2 (数万字入门教程 ):数据交互篇