Linux下使用RAID

目录

1. 创建RAID准备

2. 创建RAID 0

2.1. 创建磁盘阵列

(1)创建磁盘阵列

(2)查看磁盘阵列信息

(3)挂载文件系统

(4)保存RAID信息

(5)开机自动挂载RAID

2.2. 添加新设备到磁盘阵列

2.3. 删除磁盘阵列

(1)卸载挂载的目录

(2)停止磁盘阵列的活动

(3)清除超级块

(4)清除对磁盘阵列的引用

(5)更新RAID信息

3. 创建RAID 1

3.1. 创建磁盘阵列

(1)创建磁盘阵列

  (2)查看磁盘阵列信息

(3)挂载文件系统

(4)保存RAID信息

(5)开机自动挂载RAID

3.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

(2)添加新硬盘

 (3)更新磁盘阵列

4. 创建RAID 5

4.1. 创建磁盘阵列

(1)创建磁盘阵列

(2)查看磁盘阵列信息

(3)挂载文件系统

(4)保存RAID信息

(5)开机自动挂载RAID

4.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

(2)添加新硬盘

 (3)更新磁盘阵列

4.3. 删除磁盘阵列

(1)卸载挂载的目录

(2)停止磁盘阵列的活动

(3)清除超级块

(4)清除对磁盘阵列的引用

(5)更新RAID信息

5. 创建RAID 10

5.1. 创建磁盘阵列

(1)创建磁盘阵列

(2)查看磁盘阵列信息

(3)挂载文件系统

(4)保存RAID信息

(5)开机自动挂载RAID

5.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

(2)添加新硬盘

 (3)更新磁盘阵列


1. 创建RAID准备

       在Linux中,使用mdadm工具来创建和管理RAID, mdadm是Multiple Devices Admin的缩写(简称MD),它是Linux下的一款标准的软件 RAID 管理工具。

       首先,你需要确保Linux系统中已经安装了 mdadm。在大多数基于 Debian 的系统(如 Ubuntu)中,可以使用以下命令安装:

                              sudo apt-get install mdadm

       利用VMWare Workstation或者VirtualBox中创建一个虚拟机,在该虚拟机中安装Ubuntu 64位操作系统,并创建7块虚拟硬盘:sba,sbb,sbc,sbd, sbe, sbf, sbg,挂载到该虚拟机中,其中,sba为系统盘,sbb,sbc, sbd, sbe, sbf, sbg作为创建RAID使用,如图1所示。

图1. 虚拟机的配置

2. 创建RAID 0

       RAID 0 是一种简单的、无数据校验的数据条带化技术。一个RAID 0包含至少2个成员盘,RAID 0 将所在磁盘条带化后组成大容量的存储空间,数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问,如图2所示。

图2. RAID 0架构示意图

2.1. 创建磁盘阵列

(1)创建磁盘阵列

       使用两个硬盘:/dev/sdb和/dev/sdc,创建一个名为/dev/md0的RAID 0磁盘阵列。

       sudo mdadm - - create  - -verbose /dev/md0 - -level=0  - -raid-devices=2 /dev/sdb /dev/sdc

       或者

       sudo mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]

(2)查看磁盘阵列信息

  • 查看机器上所有磁盘阵列的信息:     

       cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid0 sdc[1] sdb[0]
      20953088 blocks super 1.2 512k chunks
      
unused devices: <none>

       输出显示只有一个RAID 0磁盘阵列。

  • 查看磁盘阵列的详细信息:

        sudo mdadm --detail /dev/md0

       或者

       sudo mdadm -D /dev/md0

/dev/md0:
           Version : 1.2
     Creation Time : Sat May  4 15:35:37 2024
        Raid Level : raid0
        Array Size : 20953088 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sat May  4 15:35:37 2024
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

            Layout : -unknown-
        Chunk Size : 512K

Consistency Policy : none

              Name : myvm1:0  (local to host myvm1)
              UUID : 4ffd69e7:c9ba4b67:8f78005c:d379391f
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

       输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。

  • 查看磁盘阵列的摘要:

       sudo mdadm -Q /dev/md0 

/dev/md0: 19.98GiB raid0 2 devices, 0 spares. Use mdadm --detail for more detail.
  • 查看磁盘阵列中单个设备详细信息:

       sudo mdadm -E /dev/sdb

       sudo mdadm -E /dev/sdc

       或者

       sudo mdadm --examine /dev/sdb

       sudo mdadm --examine /dev/sdc

  • 查看单个磁盘阵列中单个设备摘要:

       sudo mdadm -Q /dev/sdb

       sudo mdadm -Q /dev/sdc

(3)挂载文件系统

  • 在磁盘阵列上创建文件系统

       sudo mkfs  -t ext4 /dev/md0

       或者

       sudo mkfs.ext4 -F /dev/md0

  • 在文件系统上创建挂载点文件夹(/mnt/md0)

       sudo mkdir  -p /mnt /md0

  • 将磁盘阵列(/dev/md0)挂载到所创建文件夹(/mnt/md0)上

       sudo mount /dev/md0 /mnt/md0  

  • 检查是否有新的可用空间

       df -h –x devtmpfs –x tmpfs

(4)保存RAID信息

       必须更改 /etc/mdadm/mdadm.conf 文件以确保该列表在启动时自动重新组装。通过以下命令序列自动搜索当前阵列、连接文件并更新初始RAM文件系统:

       sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

       sudo update-initramfs -u

(5)开机自动挂载RAID

      为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:

      echo ‘/dev/md0 /mnt/md0 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab

      现在每次启动都可以自动添加所创建的RAID 0磁盘阵列并安装它。

2.2. 添加新设备到磁盘阵列

       在磁盘阵列/dev/md0中增加一个硬盘/dev/sdd,磁盘阵列中的设备数量由2变为3。

       sudo mdadm --grow /dev/md0 --raid-devices=3 --add /dev/sdd

      参看机器上的磁盘阵列信息:

      cat /proc/mdstat

Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid0 sdd[3] sdc[1] sdb[0]
      31429632 blocks super 1.2 512k chunks
      
unused devices: <none>

      输出显示RAID 0磁盘阵列中的设备数量为3个:/dev/sdb, /dev/sdc和/dev/sdd。

      调整文件系统的大小以使用额外的空间:

      sudo resize2fs /dev/md0

resize2fs 1.45.5 (07-Jan-2020)
/dev/md0 上的文件系统已被挂载于 /mnt/md0;需要进行在线调整大小
old_desc_blocks = 3, new_desc_blocks = 4
/dev/md0 上的文件系统现在为 7857408 个块(每块 4k)。

2.3. 删除磁盘阵列

(1)卸载挂载的目录

       sudo umount /mnt/md0

       其中,/mnt/md0为RAID 0磁盘阵列所挂载的目录。

(2)停止磁盘阵列的活动

      sudo mdadm --stop /dev/md0

      或者

      sudo mdadm -S /dev/md0

mdadm: stopped /dev/md0

(3)清除超级块

  • 查看磁盘阵列中是否存在超级块:

       lsblk --fs

sda                                                                   
├─sda1
│    vfat         0069-2021                               511M     0% /boot/efi
├─sda2
│                                                                     
└─sda5
     ext4         a30b6613-548e-444e-858e-642c58dfc676     33G    27% /

sdb  linux_ myvm1:0
                  cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac                
sdc  linux_ myvm1:0
                  cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac                
sdd  linux_ myvm1:0
                  cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac    
           
sde                                                                   
sdf                                                                   
sdg                                                                   
sr0  iso966 Ubuntu 20.04.1 LTS amd64

       红色输出信息说明存在超级快。

  • 清除磁盘阵列的超级块信息:

       sudo mdadm - -zero-superblock  /dev/sbb

       sudo mdadm - -zero-superblock  /dev/sbc

       sudo mdadm - -zero-superblock  /dev/sbd

       或者

       sudo mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd

(4)清除对磁盘阵列的引用

  • 删除或注释掉 /etc/fstab文件中对磁盘阵列的任何引用。

        首先,打开/etc/fstab文件:

        sudo nano /etc/fstab

        然后,在/etc/fstab文件中注释或删除下面对对磁盘阵列的引用语句(“#”为注释):

...

# /dev/md0 /mnt/md0 ext4 defaults, nofail,discard 0 0

        最后,保存并关闭文件。

  • 删除或注释掉/etc/mdadm/mdadm.conf文件对磁盘阵列的任何引用.

       首先,打开/etc/mdadm/mdadm.conf文件:

       sudo nano /etc/mdadm/mdadm.conf

       然后,在/etc/mdadm/mdadm.conf文件注释或删除对磁盘阵列的引用语句(“#”为注释):

...

# ARRAY /dev/md0 metadata=1.2 name=myvm1:0 UUID=cf4a5e7e:aa7b2778:fa93383d:fc23a0ac

       最后,保存并关闭文件。

(5)更新RAID信息

       sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

3. 创建RAID 1

       RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,当数据写入到一个硬盘上时,数据的副本会同时存储在镜像硬盘上。一个RAID 1组存储的数据量只是单个硬盘的容量,另一硬盘保存的是数据的副本,相当于每一个字节的数据存储占用了两个字节的硬盘空间,所以说两个硬盘组成的RAID 1的空间利用率是50%,如图3所示。

图3. RAID 1架构示意图

3.1. 创建磁盘阵列

(1)创建磁盘阵列

      使用两个硬盘:/dev/sdf和/dev/sdg,创建一个名为/dev/md1的RAID 1磁盘阵列。

       sudo mdadm - - create  - -verbose /dev/md1 - -level=1  - -raid-devices=2 /dev/sdf /dev/sdg

       或者

       sudo mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[f,g]

  (2)查看磁盘阵列信息

  • 查看机器上所有磁盘阵列的信息:     

       cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdg[1] sdf[0]
      10476544 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

       输出显示系统只有一个RAID 1磁盘阵列。

  • 查看单个磁盘阵列的详细信息:

       sudo mdadm --detail /dev/md1

       或者

       sudo mdadm -D /dev/md1

dev/md1:
           Version : 1.2
     Creation Time : Sun May  5 14:29:51 2024
        Raid Level : raid1
        Array Size : 10476544 (9.99 GiB 10.73 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sun May  5 14:30:43 2024
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : myvm1:1  (local to host myvm1)
              UUID : 254b4b71:1ab318a1:54677370:c7e5f4a1
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       80        0      active sync   /dev/sdf
       1       8       96        1      active sync   /dev/sdg

输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。

(3)挂载文件系统

  • 在磁盘阵列上创建文件系统

       sudo mkfs  -t ext4 /dev/md1

       或者

       sudo mkfs.ext4 -F /dev/md1

mke2fs 1.45.5 (07-Jan-2020)
创建含有 2619136 个块(每块 4k)和 655360 个inode的文件系统
文件系统UUID:c44a7b6b-caf7-44cb-af5e-43d503328a12
超级块的备份存储于下列块: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(16384 个块) 完成
写入超级块和文件系统账户统计信息: 已完成

  • 在文件系统上创建挂载点目录(/mnt/md1)

       sudo mkdir  -p /mnt /md1

  • 将磁盘阵列(/dev/md1)挂载到所创建目录(/mnt/md1)上

       sudo mount /dev/md1 /mnt/md1  

  • 检查是否有新的可用空间

       df -h –x devtmpfs –x tmpfs

文件系统        容量  已用  可用 已用% 挂载点
/dev/sda5        49G   14G   33G   29% /
......
/dev/sda1       511M  4.0K  511M    1% /boot/efi
/dev/sr0        2.6G  2.6G     0  100% /media/myvm1/Ubuntu 20.04.1 LTS amd64

/dev/md1        9.8G   24K  9.3G    1% /mnt/md1

(4)保存RAID信息

       必须更改 /etc/mdadm/mdadm.conf 文件以确保该列表在启动时自动重新组装。通过下面的命令自动搜索当前阵列、连接文件并更新初始RAM文件系统:

       sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

ARRAY /dev/md1 metadata=1.2 name=myvm1:1 UUID=254b4b71:1ab318a1:54677370:c7e5f4a1

      sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

(5)开机自动挂载RAID

       为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:

      echo ‘/dev/md1 /mnt/md1 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab     

/dev/md1 /mnt/md1 ext4 defaults, nofail,discard 0 0

      现在每次启动都可以自动添加所创建的RAID 1磁盘阵列并安装它。

3.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

       如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要删除的设备,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:

       sudo mdadm --detail /dev/md1

     如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将硬盘/dev/sdf标记为失败:

       sudo mdadm --manage /dev/md0 --fail /dev/sdf       

mdadm: set /dev/sdf faulty in /dev/md1

     如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。

       sudo mdadm --detail /dev/md1

/dev/md1:
           Version : 1.2
     Creation Time : Sun May  5 14:29:51 2024
        Raid Level : raid1
        Array Size : 10476544 (9.99 GiB 10.73 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sun May  5 15:51:02 2024
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 1
     Spare Devices : 0

Consistency Policy : resync

              Name : myvm1:1  (local to host myvm1)
              UUID : 254b4b71:1ab318a1:54677370:c7e5f4a1
            Events : 21

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       96        1      active sync   /dev/sdg

       0       8       80        -      faulty   /dev/sdf

        将出现故障的硬盘从RAID 1磁盘阵列中移除:

        sudo mdadm --manage /dev/md1 --remove /dev/sdf

mdadm: hot removed /dev/sdf from /dev/md1

(2)添加新硬盘

         接下来,我们增加新的硬盘到RAID 1磁盘阵列:

         sudo mdadm --manage /dev/md1 --add /dev/sde

mdadm: added /dev/sde

          查看RAID 1磁盘阵列的信息,

          sudo mdadm --detail /dev/md1

/dev/md1:
           Version : 1.2
     Creation Time : Sun May  5 14:29:51 2024
        Raid Level : raid1
        Array Size : 10476544 (9.99 GiB 10.73 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Sun May  5 16:10:49 2024
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : myvm1:1  (local to host myvm1)
              UUID : 254b4b71:1ab318a1:54677370:c7e5f4a1
            Events : 41

    Number   Major   Minor   RaidDevice State
       2       8       64        0      active sync   /dev/sde
       1       8       96        1      active sync   /dev/sdg

 (3)更新磁盘阵列

       重新将磁盘阵列(/dev/md1)挂载到目录(/mnt/md1)加上

       sudo mount /dev/md1 /mnt/md1  

       更新initramfs:

       sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

4. 创建RAID 5

        RAID 5是一种旋转奇偶校验独立存取的阵列方式,它至少需要三块硬盘,其架构如图4所示。RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。

图4. RAID 5架构示意图

4.1. 创建磁盘阵列

(1)创建磁盘阵列

       使用三个硬盘:/dev/sdb、/dev/sdc和/dev/sdd,创建一个名为/dev/md5的RAID 5磁盘阵列。         sudo mdadm - - create  - -verbose /dev/md5 - -level=5  - -raid-devices=3 /dev/sdb              /dev/sdc /dev/sdd

       或者

       sudo mdadm -C /dev/md5 -ayes -l5 -n3 /dev/sd[b,c, d]

(2)查看磁盘阵列信息

  • 查看机器上所有磁盘阵列的信息:     

      cat /proc/mdstat 

md5 : active raid5 sdd[3] sdc[1] sdb[0]
      20953088 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md1 : active raid1 sdg[1] sde[2]
      10476544 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

     输出显示系统有两个磁盘阵列,一个是刚刚创建的RAID 5磁盘阵列,另一个是上一节创建的RAID 1磁盘阵列。

  • 查看RAID 5磁盘阵列信息:

       sudo mdadm --detail /dev/md5

/dev/md5:
           Version : 1.2
     Creation Time : Sun May  5 18:38:30 2024
        Raid Level : raid5
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Sun May  5 18:39:22 2024
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : myvm1:5  (local to host myvm1)
              UUID : 168f7d01:787aa7fc:74a95b58:3471d0a7
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

(3)挂载文件系统

  • 在磁盘阵列上创建文件系统

       sudo mkfs  -t ext4 /dev/md5

       或者

       sudo mkfs.ext4 -F /dev/md5

mke2fs 1.45.5 (07-Jan-2020)
创建含有 5238272 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:a139c695-9c6a-4b2e-bf04-c28dbea7a3e1
超级块的备份存储于下列块: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(32768 个块) 完成
写入超级块和文件系统账户统计信息: 已完成 

  • 在文件系统上创建挂载点目录(/mnt/md5)

       sudo mkdir  -p /mnt /md5

  • 将磁盘阵列(/dev/md5)挂载到所创建目录(/mnt/md5)上

       sudo mount /dev/md5 /mnt/md5  

  • 检查是否有新的可用空间

       df -h –x devtmpfs –x tmpfs

文件系统        容量  已用  可用 已用% 挂载点
/dev/sda5        49G   14G   33G   29% /
/dev/loop0      128K  128K     0  100% /snap/bare/5
/dev/loop1       56M   56M     0  100% /snap/core18/2812
/dev/loop2       56M   56M     0  100% /snap/core18/2823
/dev/loop3       64M   64M     0  100% /snap/core20/1852
/dev/loop5      219M  219M     0  100% /snap/gnome-3-34-1804/90
/dev/loop4       64M   64M     0  100% /snap/core20/2264
/dev/loop6      219M  219M     0  100% /snap/gnome-3-34-1804/93
/dev/loop7      350M  350M     0  100% /snap/gnome-3-38-2004/137
/dev/loop10      92M   92M     0  100% /snap/gtk-common-themes/1535
/dev/loop8      350M  350M     0  100% /snap/gnome-3-38-2004/143
/dev/loop9       66M   66M     0  100% /snap/gtk-common-themes/1519
/dev/loop11      55M   55M     0  100% /snap/snap-store/558
/dev/loop12      46M   46M     0  100% /snap/snap-store/638
/dev/loop13      50M   50M     0  100% /snap/snapd/18596
/dev/loop14      39M   39M     0  100% /snap/snapd/21465
/dev/sda1       511M  4.0K  511M    1% /boot/efi
/dev/sr0        2.6G  2.6G     0  100% /media/myvm1/Ubuntu 20.04.1 LTS amd64

/dev/md5         20G   24K   19G    1% /mnt/md5

(4)保存RAID信息

  • 打开/etc/mdadm/mdadm.conf 文件:

       sudo nano /etc/mdadm/mdadm.conf

  • 在/etc/mdadm/mdadm.conf文件末尾添加如下信息:    
ARRAY /dev/md5 metadata=1.2 name=myvm1:5 UUID=168f7d01:787aa7fc:74a95b58:3471d0a
  • 保存并关闭/etc/mdadm/mdadm.conf文件。
  • 更新initramfs:

            sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

(5)开机自动挂载RAID

       为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:

      echo ‘/dev/md5 /mnt/md5 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab     

/dev/md5 /mnt/md5 ext4 defaults, nofail,discard 0 0

      现在每次启动都可以自动添加所创建的RAID 5磁盘阵列并安装它。

4.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

       如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要移除的硬盘,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:

       sudo mdadm --detail /dev/md5

     如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将RIAD 5磁盘阵列md5中的硬盘/dev/sdb标记为失败:

       sudo mdadm --manage /dev/md5 --fail /dev/sdf       

mdadm: set /dev/sdb faulty in /dev/md5

     如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。

       sudo mdadm --detail /dev/md5

/dev/md5:
           Version : 1.2
     Creation Time : Sun May  5 18:38:30 2024
        Raid Level : raid5
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon May  6 15:13:26 2024
             State : clean, degraded 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 1
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : myvm1:5  (local to host myvm1)
              UUID : 168f7d01:787aa7fc:74a95b58:3471d0a7
            Events : 24

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

       0       8       16        -      faulty   /dev/sdb

将出现故障的硬盘从RAID 5磁盘阵列中移除:

        sudo mdadm --manage /dev/md5 --remove /dev/sdb

mdadm: hot removed /dev/sdb from /dev/md5

(2)添加新硬盘

         接下来,我们增加新的硬盘/dev/sdf到RAID 5磁盘阵列:

         sudo mdadm --manage /dev/md5 --add /dev/sdf

mdadm: added /dev/sd

          查看RAID 5磁盘阵列的信息,

          sudo mdadm --detail /dev/md5

/dev/md5:
           Version : 1.2
     Creation Time : Sun May  5 18:38:30 2024
        Raid Level : raid5
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Mon May  6 15:35:40 2024
             State : clean 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : myvm1:5  (local to host myvm1)
              UUID : 168f7d01:787aa7fc:74a95b58:3471d0a7
            Events : 44

    Number   Major   Minor   RaidDevice State
 
     4       8       80        0      active sync   /dev/sdf
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      active sync   /dev/sdd

 (3)更新磁盘阵列

       sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generi

4.3. 删除磁盘阵列

(1)卸载挂载的目录

       sudo umount /mnt/md5

       其中,/mnt/md5为RAID 5磁盘阵列/dev/md5所挂载的目录。

(2)停止磁盘阵列的活动

      sudo mdadm --stop /dev/md5

      或者

      sudo mdadm -S /dev/md5

mdadm: stopped /dev/md5

(3)清除超级块

       查看磁盘阵列中是否存在超级块:

       lsblk --fs

...

sda                                                                   
├─sda1
│    vfat         0069-2021                               511M     0% /boot/efi
├─sda2
│                                                                     
└─sda5
     ext4         a30b6613-548e-444e-858e-642c58dfc676   33.4G    26% /

sdb  linux_ myvm1:5
                  168f7d01-787a-a7fc-74a9-5b583471d0a7                
sdc  linux_ myvm1:5
                  168f7d01-787a-a7fc-74a9-5b583471d0a7                
sdd  linux_ myvm1:5
                  168f7d01-787a-a7fc-74a9-5b583471d0a7                

sde  linux_ myvm1:1
│                 254b4b71-1ab3-18a1-5467-7370c7e5f4a1                
└─md1
     ext4         c44a7b6b-caf7-44cb-af5e-43d503328a12    9.2G     0% /mnt/md1

sdf  linux_ myvm1:5
                  168f7d01-787a-a7fc-74a9-5b583471d0a7                

sdg  linux_ myvm1:1
│                 254b4b71-1ab3-18a1-5467-7370c7e5f4a1                
└─md1
     ext4         c44a7b6b-caf7-44cb-af5e-43d503328a12    9.2G     0% /mnt/md1

       红色输出信息说明存在超级快。

       清除磁盘阵列的超级块信息:

       sudo mdadm - -zero-superblock  /dev/sbb

       sudo mdadm - -zero-superblock  /dev/sbc

       sudo mdadm - -zero-superblock  /dev/sbd

       sudo mdadm - -zero-superblock  /dev/sbf

       或者

       sudo mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd /dev/sdf

(4)清除对磁盘阵列的引用

  •  删除或注释掉 /etc/fstab文件中对磁盘阵列/dev/md5的任何引用。

        首先,打开/etc/fstab文件:

        sudo nano /etc/fstab

        然后,在/etc/fstab文件中注释或删除下面对对磁盘阵列的引用语句(“#”为注释):

...

# /dev/md5 /mnt/md5 ext4 defaults, nofail,discard 0 0

        最后,保存并关闭文件。

  • 删除或注释掉/etc/mdadm/mdadm.conf文件对磁盘阵列的任何引用.

       首先,打开/etc/mdadm/mdadm.conf文件:

       sudo nano /etc/mdadm/mdadm.conf

       然后,在/etc/mdadm/mdadm.conf文件注释或删除对磁盘阵列的引用语句(“#”为注释):

...

RRAY /dev/md5 metadata=1.2 name=myvm1:5 UUID=168f7d01:787aa7fc:74a95b58:3471d0a7

       最后,保存并关闭文件。

(5)更新RAID信息

       sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

5. 创建RAID 10

       RAID 10是将镜像和条带进行组合的RAID级别,先进行RAID 1镜像然后再做RAID 0,其价架构如图5所示。RAID 10组的硬盘数量总是偶数,最少需要4块硬盘(2个RAID1组成一个RAID0),一半硬盘进行用户数据写入,另一半保存用户数据的镜像副本,镜像基于分条执行。

图5. RAID 10架构示意图

5.1. 创建磁盘阵列

(1)创建磁盘阵列

       使用4个硬盘:/dev/sdb、/dev/sdc,/dev/sdd、/dev/sdf,创建一个名为/dev/md10的RAID 10磁盘阵列,其中,/dev/sdb和/dev/sdc组成一个RAID 1,/dev/sdd和/dev/sdf组成一个RAID 1,两个RAID 1组成一个RAID 10。

       sudo mdadm - - create  - -verbose /dev/md10 - -level=10  - -raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sdf  

       或者

       sudo mdadm -C /dev/md10 -ayes -l10 -n4 /dev/sd[b, c, d, f]

(2)查看磁盘阵列信息

  • 查看机器上所有磁盘阵列的信息:     

       cat /proc/mdstat

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md10 : active raid10 sdf[3] sdd[2] sdc[1] sdb[0]
      20953088 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

      
md1 : active raid1 sdg[1] sde[2]
      10476544 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

       输出显示目前系统有2个磁盘阵列,一个是刚刚建立的RAID 10磁盘阵列,另一个是RAID 1磁盘阵列。

  • 查看磁盘阵列的详细信息:

        sudo mdadm --detail /dev/md10

       或者

       sudo mdadm -D /dev/md10

/dev/md10:
           Version : 1.2
     Creation Time : Tue May  7 07:27:40 2024
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue May  7 07:29:27 2024
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : myvm1:10  (local to host myvm1)
              UUID : a38b437b:b21aee49:7f8f5b38:989df011
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd

       输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。

(3)挂载文件系统

  • 在磁盘阵列上创建文件系统

       sudo mkfs  -t ext4 /dev/md10

       或者

       sudo mkfs.ext4 -F /dev/md10

创建含有 5238272 个块(每块 4k)和 1310720 个inode的文件系统
文件系统UUID:7bb813d9-90bd-4179-94ea-61f2f2a2bda5
超级块的备份存储于下列块: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(32768 个块) 完成
写入超级块和文件系统账户统计信息: 已完成 

  • 在文件系统上创建挂载点文件夹(/mnt/md10)

       sudo mkdir  -p /mnt /md10

  • 将磁盘阵列(/dev/md10)挂载到所创建文件夹(/mnt/md10)上

       sudo mount /dev/md10 /mnt/md10  

  • 检查是否有新的可用空间

       df -h –x devtmpfs –x tmpfs

文件系统        容量  已用  可用 已用% 挂载点
...
/dev/md1        9.8G   24K  9.3G    1% /mnt/md1
/dev/sda1       511M  4.0K  511M    1% /boot/efi
tmpfs           791M   20K  791M    1% /run/user/1000
/dev/sr0        2.6G  2.6G     0  100% /media/myvm1/Ubuntu 20.04.1 LTS amd64
/dev/md10        20G   24K   19G    1% /mnt/md10

(4)保存RAID信息

  • 打开/etc/mdadm/mdadm.conf 文件:

       sudo nano /etc/mdadm/mdadm.conf

  • 在/etc/mdadm/mdadm.conf文件末尾添加如下信息:    
ARRAY /dev/md10 metadata=1.2 name=myvm1:10 UUID=a38b437b:b21aee49:7f8f5b38:989df011
  • 保存并关闭/etc/mdadm/mdadm.conf文件。
  • 更新initramfs:

            sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic

(5)开机自动挂载RAID

       为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:

  • 打开etc/fstab文件:

        sudo nano /etc/fstab

  • 在etc/fstab文件末尾添加如下信息:    

       /dev/md10 /mnt/md10 ext4 defaults, nofail, discard 0 0

  • 保存并关闭/etc/fstab文件。

      现在每次启动都可以自动添加所创建的RAID 10磁盘阵列并安装它。

5.2. 更换磁盘阵列中的硬盘

(1)移除故障硬盘

       如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要移除的硬盘,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:

       sudo mdadm --detail /dev/md10

     如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将RIAD 10磁盘阵列md10中的硬盘/dev/sdf标记为失败:

       sudo mdadm --manage /dev/md10 --fail /dev/sdf       

mdadm: set /dev/sdf  faulty in /dev/md10

     如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。

       sudo mdadm --detail /dev/md10

/dev/md10:
           Version : 1.2
     Creation Time : Tue May  7 07:27:40 2024
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue May  7 08:20:05 2024
             State : clean, degraded 
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 1
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : myvm1:10  (local to host myvm1)
              UUID : a38b437b:b21aee49:7f8f5b38:989df011
            Events : 23

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd
       -       0        0        3      removed

       3       8       80        -      faulty   /dev/sdf

将出现故障的硬盘/dev/sdf从RAID 10磁盘阵列中移除:

        sudo mdadm --manage /dev/md10 --remove /dev/sdf

mdadm: hot removed /dev/sdf from /dev/md10

(2)添加新硬盘

         接下来,我们增加新的硬盘/dev/sde到RAID 5磁盘阵列:

         sudo mdadm --manage /dev/md10 --add /dev/sde

mdadm: added /dev/sde

          查看RAID 10磁盘阵列的信息,

          sudo mdadm --detail /dev/md10

/dev/md10:
           Version : 1.2
     Creation Time : Tue May  7 07:27:40 2024
        Raid Level : raid10
        Array Size : 20953088 (19.98 GiB 21.46 GB)
     Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue May  7 08:24:24 2024
             State : clean, degraded, recovering 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 26% complete

              Name : myvm1:10  (local to host myvm1)
              UUID : a38b437b:b21aee49:7f8f5b38:989df011
            Events : 30

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd
    
  4       8       64        3      active sync set-B   /dev/sde

 (3)更新磁盘阵列

       sudo update-initramfs -u

update-initramfs: Generating /boot/initrd.img-5.15.0-105-generi

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

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

相关文章

阿里云国际服(alibabacloud)介绍、注册、购买教程?

一、什么是阿里云国际版&#xff1f; 阿里云分为国内版和国际版。国内版仅面向中国大陆客户&#xff0c;国际版面向全球客户。 二、国际版与国内版有何异同&#xff1f; 1&#xff09;异&#xff1a;除了目标客户不同&#xff0c;运营主体不同&#xff0c;所需遵守的法律与政…

【吃透Java手写】Spring(下)-AOP-事务及传播原理

【吃透Java手写】Spring&#xff08;下&#xff09;AOP-事务及传播原理 6 AOP模拟实现6.1 AOP工作流程6.2 定义dao接口与实现类6.3 初始化后逻辑6.4 原生Spring的方法6.4.1 实现类6.4.2 定义通知类&#xff0c;定义切入点表达式、配置切面6.4.3 在配置类中进行Spring注解包扫描…

Java多线程编程之synchronizaed和锁分类

并发编程第三周 1 锁的分类 1.1 可重入锁&#xff0c;不可重入锁 Java提供的synchronized&#xff0c;ReentrantLock,ReentrantReadWriteLock都是可重入锁 可重入&#xff1a;当前线程获取到A锁&#xff0c;在获取之后尝试再次获取A锁是可以直接拿到的。 不可重入:当前线程…

美业SaaS系统多门店收银系统源码-【分润常见问题】讲解(二)

美业管理系统源码 博弈美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 ▶ 分润常见问题&#xff1a; 4、若产品的服务方分润>0&#xff0c;则销售方分润和服…

Unity Shader中获取像素点深度信息

1.顶点着色器中对深度进行计算 v2f vert(appdata v) {v2f o;o.pos UnityObjectToClipPos(v.vertex);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.depth (o.pos.z / o.pos.w 1.0) * 0.5; // Normalize depth to [0, 1]return o; }但是达不到预期&#xff0c;最后返回的值一直大于…

2024智能电网与能源系统国际学术会议(ICSGES2024)

2024智能电网与能源系统国际学术会议&#xff08;ICSGES2024) 会议简介 我们诚挚邀请您参加将在南京隆重举行的2024年智能电网与能源系统国际学术会议&#xff08;ICSGES2024&#xff09;。南京&#xff0c;一座历史与现代交织的城市&#xff0c;将为这场盛会提供独特的学术…

力扣刷题--数组--第一天

一、数组 数组特点&#xff1a; 连续内存空间存储得数据元素类型一致数组可以通过下标索引查找数据元素&#xff0c;可以删除、替换、添加元素等 1.1 二分查找 使用二分查找需满足得条件&#xff1a; 数组是有序的&#xff1b;数组中没有重复元素&#xff1b;查找的target…

论文辅助笔记:TimeLLM

1 __init__ 2 forward 3 FlattenHead 4 ReprogrammingLayer

暗区突围进不去/游戏无法启动/掉帧卡顿/报错的解决方法

暗区突围是一款高拟真硬核射击手游&#xff0c;打造了全新的沉浸式暗区战局体验&#xff0c;发行商是腾讯公司。这个游戏名词虽然看起来有些陌生&#xff0c;但其本身的玩法内核毫无疑问的是&#xff0c;这款游戏在画面质量和枪械操作方面&#xff0c;都是手游市场上同类游戏中…

springboot模块以及非springboot模块构成的多模块maven项目最佳构建方式

文章目录 背景一般的实现使用spring-boot-dependencies 更优雅的实现. 背景 有时候构建一个多模块maven项目其中某一个模块是web-service需要使用spring boot,其他模块跟spring boot 完全无关,本文总结一下在这个场景下maven项目最佳构建方式. 一般的实现 网上应该也看到过很…

我独自升级崛起下载教程 我独自升级崛起怎么一键下载

定于5月8日全球盛大发布的动作RPG力作《我独自升级崛起》&#xff0c;基于备受追捧的同名动画及网络漫画&#xff0c;誓为热情洋溢的游戏爱好者们呈献一场深度与广度兼具的冒险盛宴。这款游戏巧妙融合网络武侠元素&#xff0c;其创意十足的设计框架下&#xff0c;核心叙述聚焦于…

记录一次给PCAN升级固件pcan_canable_hw-449dc73.bin

方法一:网页升级 首先将3.3V与BOOT短接,插入电脑USB接口,识别为STM32 BOOTLOADER,芯片进入DFU模式。 如果电脑没有识别到STM32 BOOTLOADER,或无法驱动,则需要安装ImpulseRC_Driver_Fixer修复工具。 推荐使用Google浏览器打开网页升级选择PCAN固件,点Connect and Update,…

一部手机实现全行业的AI实景自动无人直播软件:为商家提供更便捷的推广方式

随着人工智能技术的快速发展&#xff0c;AI实景自动无人直播软件成为了商家推广产品的新宠。这款软件结合了智能讲解、一键开播、智能回复等多项功能&#xff0c;为商家提供了一种全新的直播方式。 首先&#xff0c;智能讲解功能让专业主播录制直播脚本&#xff0c;并通过软件自…

如何从零开始学习数据结构?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;数据结构 算法&#xff1d;程…

Navicat Data Modeler Ess for Mac:强大的数据库建模设计软件

Navicat Data Modeler Ess for Mac是一款专为Mac用户设计的数据库建模与设计工具&#xff0c;凭借其强大的功能和直观的界面&#xff0c;帮助用户轻松构建和管理复杂的数据库模型。 Navicat Data Modeler Ess for Mac v3.3.17中文直装版下载 这款软件支持多种数据库系统&#x…

MySQL之查询 拿下 * 。*

DQL数据查询语言 对上述的的查询操作进行代码演示&#xff08;续上一篇学生表代码进行处理&#xff09; 下面是上一篇的代码分享 下面进行简单的查询操作 字符串如果强行进行算数运算默认只为0 查询时常用的单行函数列举 未完待续

什么牌子的骨传导耳机质量好?五大宝藏热门机型测评对比!

我作为一名音乐发烧友&#xff0c;对各类耳机产品都有深入的了解&#xff0c;最近也经常被人问及骨传导耳机哪个牌子好。通过交流&#xff0c;我发现很多人在选择骨传导耳机的时候&#xff0c;都有出现踩坑的情况&#xff0c;这也难怪&#xff0c;随着骨传导耳机热度逐渐增加&a…

Google搜索广告怎么开户?谷歌广告开户投放引流技巧、账户搭建、谷歌ads广告推广投放策略 #搜索引擎 #谷歌广告#互联网营销

Google搜索广告开户步骤&#xff1a; 选择代理商&#xff1a;首先&#xff0c;您需要选择一个经验丰富、信誉良好的Google广告代理商。可以选择上海上弦来广告开户和代运营。 初步咨询&#xff1a;与代理商进行初步沟通&#xff0c;了解他们的服务内容、成功案例、收费标准等。…

RCLAMP0854P.TCT ESD抑制器 静电和浪涌保护 应用领域

RCLAMP0854P.TCT 是一款电路保护器件&#xff0c;属于Transient Voltage Suppressor (TVS) 系列产品。它是一种低电容TVS阵列&#xff0c;具有 RailClamp 标志性技术&#xff0c;旨在为电子设备提供高效防护&#xff0c;免受高电压瞬变和静电放电&#xff08;ESD&#xff09;的…

22_Scala集合Seq

文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序&#xff0c;数据可重复的集合 1.构建集合 …