RAID磁盘阵列配置

发布于:2025-06-02 ⋅ 阅读:(29) ⋅ 点赞:(0)

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.2
     Creation Time : Sat May 31 23:28:38 2025
        Raid Level : raid5
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat May 31 23:28:49 2025
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 0449f536:b1852c5e:feb4197e:f6d664c5
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       49        2      active sync   /dev/sdd1

       3       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_file

2.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.2
     Creation Time : Sat May 31 23:28:38 2025
        Raid Level : raid5
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat May 31 23:39:56 2025
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1					# 失效1块
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 0449f536:b1852c5e:feb4197e:f6d664c5
            Events : 37

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       65        1      active sync   /dev/sde1				# sde代替sdc继续工作
       4       8       49        2      active sync   /dev/sdd1

       1       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.2
     Creation Time : Sat May 31 23:28:38 2025
        Raid Level : raid5
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Sat May 31 23:42:48 2025
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 0449f536:b1852c5e:feb4197e:f6d664c5
            Events : 38

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       65        1      active sync   /dev/sde1
       4       8       49        2      active sync   /dev/sdd1
       
4.添加新的磁盘作为热备磁盘
[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.2
     Creation Time : Sat May 31 23:28:38 2025
        Raid Level : raid5
        Array Size : 4188160 (3.99 GiB 4.29 GB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat May 31 23:47:46 2025
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 0449f536:b1852c5e:feb4197e:f6d664c5
            Events : 39

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       3       8       65        1      active sync   /dev/sde1
       4       8       49        2      active sync   /dev/sdd1

       5       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 ~]# 

网站公告

今日签到

点亮在社区的每一天
去签到