centos 使用mdadm 工具做软raid

2024-05-22 08:39:43 浏览数 (2)

创建raid

下面是在CentOS上使用mdadm进行软件RAID10设置的详细步骤:

在CentOS上安装mdadm软件包:

代码语言:javascript复制
sudo yum install mdadm

查看可用的磁盘设备:

代码语言:javascript复制
sudo fdisk -l

记下要用于RAID的磁盘设备的名称,例如/dev/sdb、/dev/sdc等。

创建分区:

代码语言:javascript复制
sudo fdisk /dev/sdb

在fdisk命令提示符下,按下n创建一个新分区,选择分区类型为主分区或逻辑分区,然后按照提示设置分区大小。重复此步骤为每个磁盘创建分区。

创建RAID设备:

代码语言:javascript复制
sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

这里创建了一个名为/dev/md0的RAID10设备,使用了4个磁盘分区。根据实际情况修改磁盘设备和分区号。

等待RAID设备同步完成:

代码语言:javascript复制
watch cat /proc/mdstat

使用上述命令可以实时查看RAID设备的同步状态。等待所有设备同步完成。

创建文件系统:

代码语言:javascript复制
sudo mkfs.ext4 /dev/md0

这里使用ext4文件系统作为示例,你也可以选择其他文件系统类型。

挂载RAID设备:

代码语言:javascript复制
sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid

这里将RAID设备挂载到/mnt/raid目录,你可以选择其他目录作为挂载点。

更新/etc/fstab文件以实现开机自动挂载:

代码语言:javascript复制
echo '/dev/md0 /mnt/raid ext4 defaults 0 0' | sudo tee -a /etc/fstab

完成!现在你已经成功设置了一个RAID10设备,并将其挂载到指定目录。

请注意,在进行磁盘操作时要小心谨慎,并确保备份重要数据。

删除raid

以下是删除RAID阵列的步骤:

首先,使用以下命令查看系统中所有的RAID阵列:

代码语言:javascript复制
mdadm --detail --scan

这将显示所有已配置的RAID阵列的信息,包括设备名称(如 /dev/md0)和对应的设备列表。

确定要删除的RAID阵列的设备名称。

使用以下命令停止该RAID阵列:

代码语言:javascript复制
mdadm --stop /dev/md0

/dev/md0 替换为要删除的RAID阵列的设备名称。

最后,使用以下命令将RAID阵列的配置信息从系统中删除:

代码语言:javascript复制
mdadm --remove /dev/md0

同样,将 /dev/md0 替换为要删除的RAID阵列的设备名称。

请注意,删除RAID阵列后,相关的数据将无法恢复。确保在执行此操作之前备份重要数据,并且仔细确认要删除的RAID阵列的设备名称。

更换故障硬盘

1.检查硬盘损坏情况

代码语言:javascript复制
# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb[0]
      83819520 blocks super 1.2 [2/1] [U_]  #_可以看出有个硬盘故障,正常是两个U
      
unused devices: <none>

2.查看详情

代码语言:javascript复制
# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Jan 30 15:10:59 2024
        Raid Level : raid1
        Array Size : 83819520 (79.94 GiB 85.83 GB)
     Used Dev Size : 83819520 (79.94 GiB 85.83 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent

       Update Time : Tue Jan 30 16:51:27 2024
             State : clean, degraded 
    Active Devices : 1   #可以看出活跃磁盘只有一个
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 4ddce06d:44158f8e:cddc4231:752ddd91
            Events : 24

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       -       0        0        1      removed    #坏盘

4.查看新加的磁盘

代码语言:javascript复制
# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda      8:0    0   50G  0 disk  
├─sda1   8:1    0    1M  0 part  
├─sda2   8:2    0  800M  0 part  /boot
├─sda3   8:3    0    4G  0 part  [SWAP]
├─sda4   8:4    0    1K  0 part  
└─sda5   8:5    0 45.2G  0 part  /
sdb      8:16   0   80G  0 disk  
└─md0    9:0    0   80G  0 raid1 /data
sdc      8:32   0   80G  0 disk    #可以看出sdc是新加的磁盘

3.添加新硬盘到RAID

代码语言:javascript复制
# mdadm /dev/md0 -a /dev/sdc
mdadm: added /dev/sdc

4.检查RAID状态

代码语言:javascript复制
# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdc[2] sdb[0]
      83819520 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  1.7% (1465728/83819520) finish=17.7min speed=77143K/sec                #可以看到软raid已经以恢复正在重构。
      
unused devices: <none>               

5.查看详细状态

代码语言:javascript复制
# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue Jan 30 15:10:59 2024
        Raid Level : raid1
        Array Size : 83819520 (79.94 GiB 85.83 GB)
     Used Dev Size : 83819520 (79.94 GiB 85.83 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jan 30 17:18:17 2024
             State : clean, degraded, recovering 
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 53% complete

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 4ddce06d:44158f8e:cddc4231:752ddd91
            Events : 34

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       2       8       32        1      spare rebuilding   /dev/sdc    #可以看到已经恢复

重装系统恢复raid

要实现重装系统之后恢复软raid前提是,组成软raid的磁盘不包括系统盘。是单独分开的。比如有三块磁盘/dev/sda /dev/sdb /dev/sdc 系统装在/dev/sda 软raid是由/dev/sdb 和 /dev/sdc磁盘组成。

1.查看磁盘信息

代码语言:javascript复制
# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda      8:0    0   50G  0 disk  
├─sda1   8:1    0    1M  0 part  
├─sda2   8:2    0  800M  0 part  /boot
├─sda3   8:3    0    4G  0 part  [SWAP]
├─sda4   8:4    0    1K  0 part  
└─sda5   8:5    0 45.2G  0 part  /
sdb      8:16   0   80G  0 disk  
└─md0    9:0    0   80G  0 raid1 
sdc      8:32   0   80G  0 disk  
└─md0    9:0    0   80G  0 raid1 
sr0     11:0    1 1024M  0 rom   

从上面可以看到,sdb和sdc组的raid1

2.在新装的CentOS上安装mdadm软件包:

代码语言:javascript复制
sudo yum install mdadm

3.挂载软raid

代码语言:javascript复制
# blkid
/dev/sda5: UUID="4c1e0be9-02e3-4a89-a6b4-dd38b9b3dade" TYPE="xfs" 
/dev/sda2: UUID="9b005cb9-40db-4fca-8bc8-aec66bbe73da" TYPE="xfs" 
/dev/sda3: UUID="38813349-c5c2-4bf0-a030-55c393449cc5" TYPE="swap" 
/dev/sdb: UUID="4ddce06d-4415-8f8e-cddc-4231752ddd91" UUID_SUB="4a602763-a1ed-05af-2ab1-59950aee6ff7" LABEL="localhost.localdomain:0" TYPE="linux_raid_member" 
/dev/md0: UUID="d7747fb5-5e03-49e6-95e0-9bb6b537734b" TYPE="xfs" 
/dev/sdc: UUID="4ddce06d-4415-8f8e-cddc-4231752ddd91" UUID_SUB="90b6c0b6-eed0-e39a-78b0-943ac5627078" LABEL="localhost.localdomain:0" TYPE="linux_raid_member" 

echo "UUID="d7747fb5-5e03-49e6-95e0-9bb6b537734b" /data       xfs     defaults        0 0" >> /etc/fstab

下面没测试的命令

代码语言:javascript复制
装好后,直接用mdadm -A /dev/md0 /dev/hdb /dev/hdc加载上来就行了,因为这2个raid分区的superblock都没有改变。

0 人点赞