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

RAID磁盘阵列配置

RAID磁盘阵列配置

文章目录

  • RAID磁盘阵列配置
    • 一、磁盘管理其他相关命令
      • 1.fsck-检查文件的正确性
      • 2.dd-建立和使用交换文件
      • 3.mkswap-建立和设置SWAP交换分区
    • 二、RAID配置

一、磁盘管理其他相关命令

1.fsck-检查文件的正确性

[root@localhost ~]# fsck -aC /dev/sda1			//检查文件系统正确性,如果有错误,则自动修复
fsck,来自 util-linux 2.23.2
/sbin/fsck.xfs: XFS file system.

2.dd-建立和使用交换文件

常用参数功能
if输入文件
of输出文件
bs块大小
count块个数
-h显示帮助信息
-v显示版本信息

/dev/zero 是类UNIX操作系统中的一个特殊设备文件。当你读取它时,它会提供无限的空字符。

[root@localhost ~]# dd if=/dev/zero of=File count=1 bs=500M		//生成一个指定大小(500MB)的新文件
记录了1+0 的读入
记录了1+0 的写出
524288000字节(524 MB)已复制,3.3121 秒,158 MB/秒

3.mkswap-建立和设置SWAP交换分区

交换分区是硬盘驱动器的一部分,用作交换内存,即RAM的溢出空间。当RAM开始填满时,操作系统会将不太常用的进程或数据从RAM移动到交换分区,以扩展可用内存。交换分区在Linux系统中被称为swap,它的作用是在物理内存不足时,将部分内存数据转移到硬盘上,从而缓解内存压力。

[root@localhost ~]# mkswap /dev/sdb1			//创建此分区为交换分区
正在设置交换空间版本 1,大小 = 2096124 KiB
无标签,UUID=3dee93a7-ced0-4b01-92fc-d63ae5dc3ace
[root@localhost ~]# swapon /dev/sdb1			//加载交换分区
[root@localhost ~]# swapon -s					//显示加载的交换分区
文件名                          类型            大小    已用      权限
/dev/dm-1                               partition       2097148    0       -1
/dev/sdb1                               partition       2096124    0       -2
[root@localhost ~]# swapoff /dev/sdb1			//关闭交换分区
[root@localhost ~]# swapon -s					//
文件名                          类型            大小    已用      权限
/dev/dm-1                               partition       2097148    0       -1

二、RAID配置

# 创建4个大小都为2GB的磁盘,并将其中3个创建为RAID5阵列磁盘,1个创建为热备磁盘。
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part ├─centos-root 253:0    0   50G  0 lvm  /├─centos-swap 253:1    0    2G  0 lvm  [SWAP]└─centos-home 253:2    0   47G  0 lvm  /home
sdb               8:16   0    2G  0 disk 
sdc               8:32   0    2G  0 disk 
sdd               8:48   0    2G  0 disk 
sde               8:64   0    2G  0 disk 
sr0              11:0    1  4.2G  0 rom  # 由于RAID5要用到整块磁盘,所以直接将磁盘全部空间创建一个主分区,类型改为fd
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l | grep sdb
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdb1            2048     4194303     2096128   fd  Linux raid autodetect# 使用同样的方法设置另外3块盘
[root@localhost ~]# fdisk -l | grep sd[b-e]
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdb1            2048     4194303     2096128   fd  Linux raid autodetect
磁盘 /dev/sdc:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdc1            2048     4194303     2096128   fd  Linux raid autodetect
磁盘 /dev/sdd:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sdd1            2048     4194303     2096128   fd  Linux raid autodetect
磁盘 /dev/sde:2147 MB, 2147483648 字节,4194304 个扇区
/dev/sde1            2048     4194303     2096128   fd  Linux raid autodetect# 使用mdadm命令创建RAID5阵列及其热备份
# 直接将4个磁盘中的3个创建为RAID5阵列,1个创建为热备磁盘
[root@localhost ~]# yum install -y mdadm
[root@localhost ~]# mdadm --create /dev/md0 --auto=yes --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:28:49 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 18Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sdb11       8       33        1      active sync   /dev/sdc14       8       49        2      active sync   /dev/sdd13       8       65        -      spare   /dev/sde1
[root@localhost ~]# # 添加RAID5阵列到配置文件/etc/mdadm.conf中,默认此文件是不存在的
[root@localhost ~]# echo 'DEVICE /dev/sd[b-e]1' >> /etc/mdadm.conf
[root@localhost ~]# mdadm -Ds >> /etc/mdadm.conf 
[root@localhost ~]# cat /etc/mdadm.conf 
DEVICE /dev/sd[b-e]1
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=0449f536:b1852c5e:feb4197e:f6d664c5# 格式化磁盘阵列
[root@localhost ~]# mkfs.xfs /dev/md0 
meta-data=/dev/md0               isize=512    agcount=8, agsize=130944 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1047040, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# # 挂载磁盘阵列
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5/
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.8G   49G    4% /
devtmpfs                devtmpfs  476M     0  476M    0% /dev
tmpfs                   tmpfs     488M     0  488M    0% /dev/shm
tmpfs                   tmpfs     488M  7.7M  480M    2% /run
tmpfs                   tmpfs     488M     0  488M    0% /sys/fs/cgroup
/dev/mapper/centos-home xfs        47G   33M   47G    1% /home
/dev/sda1               xfs      1014M  130M  885M   13% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/md0                xfs       4.0G   33M  4.0G    1% /mnt/raid5
[root@localhost ~]# # 测试以热备磁盘替换阵列中的磁盘并同步数据,移除损坏的磁盘,添加一个新磁盘作为热备磁盘,并删除RAID阵列
1.写入测试文件
# 在RAID5阵列上写入一个大小为10MB的文件,命名为10M_file,以供数据恢复是测试使用
[root@localhost ~]# cd /mnt/raid5/
[root@localhost raid5]# dd if=/dev/zero of=10M_file count=1 bs=10M
记录了1+0 的读入
记录了1+0 的写出
10485760字节(10 MB)已复制,0.00878638 秒,1.2 GB/秒
[root@localhost raid5]# ll
总用量 10240
-rw-r--r--. 1 root root 10485760 531 23:36 10M_file2.RAID设备的数据恢复
# 如果RAID设备中的某个磁盘损坏,则系统会自动停止该磁盘工作,使热备磁盘代替损坏的磁盘继续工作。
[root@localhost raid5]# mdadm /dev/md0 -f /dev/sdc1			//模拟sdc损坏,进行标记失效
mdadm: set /dev/sdc1 faulty in /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0 					//查看阵列状态
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:39:56 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 1					# 失效1块Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 37Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sdb13       8       65        1      active sync   /dev/sde1				# sde代替sdc继续工作4       8       49        2      active sync   /dev/sdd11       8       33        -      faulty   /dev/sdc1
[root@localhost raid5]# ll
总用量 10240
-rw-r--r--. 1 root root 10485760 531 23:36 10M_file
[root@localhost raid5]# 3.移除损坏的磁盘
[root@localhost raid5]# mdadm /dev/md0 -r /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0
[root@localhost raid5]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Sat May 31 23:42:48 2025State : clean Active Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 38Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sdb13       8       65        1      active sync   /dev/sde14       8       49        2      active sync   /dev/sdd14.添加新的磁盘作为热备磁盘
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0  100G  0 disk  
├─sda1            8:1    0    1G  0 part  /boot
└─sda2            8:2    0   99G  0 part  ├─centos-root 253:0    0   50G  0 lvm   /├─centos-swap 253:1    0    2G  0 lvm   [SWAP]└─centos-home 253:2    0   47G  0 lvm   /home
sdb               8:16   0    2G  0 disk  
└─sdb1            8:17   0    2G  0 part  └─md0           9:0    0    4G  0 raid5 
sdc               8:32   0    2G  0 disk  
└─sdc1            8:33   0    2G  0 part  
sdd               8:48   0    2G  0 disk  
└─sdd1            8:49   0    2G  0 part  └─md0           9:0    0    4G  0 raid5 
sde               8:64   0    2G  0 disk  
└─sde1            8:65   0    2G  0 part  └─md0           9:0    0    4G  0 raid5 
sdf               8:80   0    2G  0 disk  
sr0              11:0    1  4.2G  0 rom   
[root@localhost ~]# fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x80ae3207 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs /dev/sdf1
meta-data=/dev/sdf1              isize=512    agcount=4, agsize=131008 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524032, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# # 将新添加的磁盘加入阵列,会自动变为热备磁盘
[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:Version : 1.2Creation Time : Sat May 31 23:28:38 2025Raid Level : raid5Array Size : 4188160 (3.99 GiB 4.29 GB)Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sat May 31 23:47:46 2025State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 0449f536:b1852c5e:feb4197e:f6d664c5Events : 39Number   Major   Minor   RaidDevice State0       8       17        0      active sync   /dev/sdb13       8       65        1      active sync   /dev/sde14       8       49        2      active sync   /dev/sdd15       8       81        -      spare   /dev/sdf1			# 热备磁盘
[root@localhost ~]# 5.删除RAID阵列
# RAID的删除一定要慎重,操作不当可能会导致系统无法启动
# 卸载阵列,如果配置了自动挂载,一定要在/etc/fstab中删除配置
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        50G  1.8G   49G    4% /
devtmpfs                devtmpfs  476M     0  476M    0% /dev
tmpfs                   tmpfs     488M     0  488M    0% /dev/shm
tmpfs                   tmpfs     488M  7.7M  480M    2% /run
tmpfs                   tmpfs     488M     0  488M    0% /sys/fs/cgroup
/dev/mapper/centos-home xfs        47G   33M   47G    1% /home
/dev/sda1               xfs      1014M  130M  885M   13% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
[root@localhost ~]# # 停止RAID工作
[root@localhost ~]# mdadm -S /dev/md0 
mdadm: stopped /dev/md0# 删除RAID中的相关磁盘
[root@localhost ~]# mdadm --misc --zero-superblock /dev/sd[b,d-f]1# 删除RAID相关配置文件
[root@localhost ~]# rm -f /etc/mdadm.conf# 查看验证
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# 

相关文章:

  • 前端八股 tcp 和 udp
  • C语言-10.字符串
  • 内存管理 : 04段页结合的实际内存管理
  • 第十五篇:MySQL 高级实战项目:构建高可用、可观测、性能优化一体化数据库平台
  • 【SpringBoot实战】优雅关闭服务
  • ubuntu/windows系统下如何让.desktop/.exe文件 在开机的时候自动运行
  • 【深度学习】线性因子模型:数据降维与结构解析的数学透镜
  • TDenigne 集群可视化管理
  • 华为OD机试真题——文件目录大小(2025 A卷:100分)Java/python/JavaScript/C++/C语言/GO六种语言最佳实现
  • 设计模式——工厂方法模式(创建型)
  • RabbitMQ 高级特性
  • Unity 模拟高度尺系统开发详解——实现拖动、范围限制、碰撞吸附与本地坐标轴选择
  • C语言基础(08)【循环结构】
  • PCB设计教程【强化篇】——USB拓展坞原理图设计
  • 生成式AI模型学习笔记
  • Fastapi 学习使用
  • 告别压降损耗与反向电流困扰:汽车电子电源防反接方案全面解析与理想二极管应用
  • 【Unity笔记】Unity WASD+QE 控制角色移动与转向(含 Shift 加速)实现教程
  • 【Python进阶】CPython
  • 分析XSSstrike源码
  • 工作心得/网站排名优化需要多久
  • 哈尔滨快速建站专业定制/如何优化搜索引擎
  • b2c 电子商务网站的经营特点/个人网页怎么制作
  • hbuilderx怎么制作网页/关键词优化外包服务
  • 周末游做的好的网站/应用商店关键词优化
  • 电商商城网站开发/网站建设seo