注意:

在 Oracle Linux 上构建软件 RAID 阵列

简介

独立磁盘或 RAID 设备的冗余阵列是从两个或多个实际块设备创建的虚拟设备。此功能允许将多个设备(通常是磁盘驱动器或磁盘分区)组合到单个设备中以容纳单个文件系统。某些 RAID 级别包括冗余,允许文件系统在一定程度的设备故障后存活。

Oracle Linux 内核使用多设备 (Multiple Device, MD) 驱动程序支持 Linux 软件 RAID,并允许您将磁盘驱动器组织到 RAID 设备中并实施不同的 RAID 级别。

有关这些不同 RAID 级别的更多信息,请参见 Oracle 文档

本教程将与 MD 实用程序 (mdadm) 配合使用,创建一个带备件的 RAID1 设备,然后解决磁盘故障。

目标

先决条件

具有以下配置的任何 Oracle Linux 8 系统:

设置实验室环境

注意:使用免费实验室环境时,请参见 Oracle Linux Lab Basics 了解连接和其他使用说明。

  1. 如果尚未连接,请打开一个终端并通过 ssh 连接到上述每个实例。

    ssh oracle@<ip_address_of_instance>
    
  2. 验证块存储卷是否存在。

    sudo lsblk
    

    空闲实验环境的输出应显示现有文件系统的 /dev/sda 以及可用磁盘 /dev/sdb/dev/sdc/dev/sdd

安装 MD 实用程序

  1. 如果系统中尚不可用,请安装 MD 实用程序。

    检查是否已安装 mdadm

    sudo dnf list --installed mdadm
    

    如果未安装,请安装 mdadm

    sudo dnf -y install mdadm
    

    注:免费实验室环境已安装 MD 实用程序。

创建 RAID 设备。

RAID1 通过将相同的数据写入阵列中的每个驱动器,提供数据冗余和弹性。如果一个驱动器发生故障,则镜像可以满足 I/O 请求。镜像是一种昂贵的解决方案,因为系统会将相同的信息写入阵列中的所有磁盘。

RAID1 的功能:

  1. 列出可用于创建 RAID 设备的选项。

    使用 mdadm --help 显示器使用 --create 选项从未使用的设备创建新数组。

    sudo mdadm --create --help
    
  2. 创建具有一个备用磁盘的 RAID1 设备。

    sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    
    • --create::创建新数组
    • --level: raid 级别
    • --raid-devices:数组中的活动设备数
    • --spare-devices:初始阵列中的备件(额外)设备数

    在此命令中,设备(数组)名为 /dev/md0,使用 /dev/sdb/dev/sdc 创建 RAID1 设备。设备 /dev/sdd 自动用作从任何活动设备的故障中恢复的备件。

    通过键入 y 并按 ENTER 接受 Continue creating array? 提示。

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    mdadm: Note: this array has metadata at the start and
        may not be suitable as a boot device.  If you plan to
        store '/boot' on this device please ensure that
        your boot-loader understands md/v1.x metadata, or use
        --metadata=0.90
    mdadm: size set to 52395008K
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

创建文件系统

  1. 在 RAID 设备上创建 ext4 文件系统并挂载该文件系统。

    sudo mkfs.ext4 -F /dev/md0
    sudo mkdir /u01
    sudo mount /dev/md0 /u01
    
    
  2. 报告文件系统磁盘使用情况。

    df -h
    

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    ...
    /dev/md0                     49G   53M   47G   1% /u01
    
  3. 将条目添加到 /etc/fstab 并使挂载点在重新引导后保持不变。

    echo "/dev/md0    /data01    ext4    defaults    0 0" | sudo tee -a /etc/fstab > /dev/null
    

验证 RAID 设备

  1. 获取阵列的详细信息。

    sudo mdadm --detail /dev/md0
    

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 20:28:58 2022
                 State : clean, resyncing 
        Active Devices : 2
       Working Devices : 3
        Failed Devices : 0
         Spare Devices : 1
    
    Consistency Policy : resync
    
         Resync Status : 59% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 9
    
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
    
           2       8       48        -      spare   /dev/sdd
    

    在输出中,State 显示了数组清理和重新同步。Resysc 总是发生在最初创建数组之后,或者在恢复之后。输出显示重新同步已完成 59%。

  2. 从内核检查实时信息。

    sudo cat /proc/mdstat
    

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ cat /proc/mdstat 
    Personalities : [raid1] 
    md0 : active raid1 sdd[2](S) sdc[1] sdb[0]
          52395008 blocks super 1.2 [2/2] [UU]
          [==================>..]  resync = 92.2% (48341824/52395008) finish=2.7min speed=24677K/sec
          
    unused devices: <none>
    

创建 RAID 配置文件

  1. (可选)将 RAID 配置添加到 /etc/mdadm.conf

    配置文件标识哪些设备是 RAID 设备,以及特定设备所属的阵列。根据此配置文件,mdadm 能够在引导时汇编数组。

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

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
    ARRAY /dev/md/0  metadata=1.2 UUID=f6c35144:66a24ae9:5b96e616:f7252a9f name=ol-mdadm-2022-06-04-180415:0
       spares=1
    

管理 RAID 设备

此选项用于管理阵列中的组件设备,例如添加、删除或故障设备。

  1. 列出可用于管理 RAID 设备的选项。

    sudo mdadm --manage --help
    
    • --add:Hotadd 后续设备。
    • --remove:删除后续的非活动设备。
    • --fail:将后续设备标记为有故障。
  2. 将高速缓存的写入同步到持久存储。

    在运行任何磁盘管理之前,这是必需的,以确保所有磁盘高速缓存都写入磁盘。

    sudo sync
    
  3. 将磁盘标记为故障。

    sudo mdadm --manage /dev/md0 --fail /dev/sdb
    
  4. 获取数组详细信息。

    sudo mdadm --detail /dev/md0 
    

    输出示例:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 21:34:19 2022
                 State : clean, degraded, recovering 
        Active Devices : 1
       Working Devices : 2
        Failed Devices : 1
         Spare Devices : 1
    
    Consistency Policy : resync
    
        Rebuild Status : 1% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 19
    
        Number   Major   Minor   RaidDevice State
           2       8       48        0      spare rebuilding   /dev/sdd
           1       8       32        1      active sync   /dev/sdc
    
           0       8       16        -      faulty   /dev/sdb
    

    数组标记为 degradedrecovering。输出还显示备用设备 /dev/sdd 自动重建阵列,而 /dev/sdb 有故障。

  5. 删除故障磁盘。

    sudo mdadm --manage /dev/md0 --remove /dev/sdb
    
  6. 更换故障磁盘。

    将服务器的故障物理磁盘替换为新的物理磁盘。

    注意:使用免费实验室环境时,此步骤无需执行任何操作。实验室将重新使用现有的 dev/sdb 设备。

  7. 删除以前的 linux_raid_member 签名。

    签名(元数据)在 RAID 阵列中使用时会写入磁盘,在删除这些签名之前无法将该磁盘移至其他系统或重复使用。

    sudo wipefs -a -f /dev/sdb
    

    警告:wipefs 命令具有破坏性,并删除目标磁盘上的整个分区表 (/dev/sdb) 和任何签名。

  8. 向数组添加新备件。

    sudo mdadm --manage /dev/md0 --add /dev/sdb
    
  9. 验证备用磁盘是否存在。

    sudo mdadm --detail /dev/md0 
    

    在输出底部,设备 /dev/sdb 应显示在列表中,并且 State 设置为 spare

详细信息:

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle 学习资源管理器。

有关产品文档,请访问 Oracle 帮助中心