侧边栏壁纸
博主头像
YOUZI

我依旧在追寻自由的路上

  • 累计撰写 85 篇文章
  • 累计创建 10 个分类
  • 累计创建 27 个标签

目 录CONTENT

文章目录

RAID实验

柚子
原创 / 2024-05-15 / 0 评论 / 0 点赞 / 52 阅读 / 0 字
温馨提示:
本文最后更新于59天前,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响您的利益,请联系 站长 删除。

RAID实验

一、前期准备

(一)添加两块硬盘

image-20230606085446182

图1-1 添加两块硬盘

(二)验证是否能上网

ping DNS或者网站地址
ping 114.114.114.114

(三)安装mdadm

mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动,能完成所有软件RAID的管理功能。
yum -y install mdadm

二、RAID实验

(一)查看硬盘是否已添加

fdisk -l

image-20230606092425050

图1-2 查看两块硬盘是否已添加

(二)划分主分区

1./dev/sdb

fdisk /dev/sdb

#回显如下
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xe03c8371 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 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.
正在同步磁盘。

2./dev/sdc

fdisk /dev/sdc

#回显如下
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xb7637373 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 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.
正在同步磁盘。

(三)RAID创建

说明:
/dev/md1  md1为阵列名称,可自定义
--create / -C创建一个新的阵列
--level= / -l指定RAID的级别,目前支持raid0,1,4,5,6,10
--raid-devices= / -n指定磁盘的数量
mdadm -C /dev/md1 -l1 -n2 /dev/sdb /dev/sdc

#回显如下
mdadm: partition table exists on /dev/sdb
mdadm: partition table exists on /dev/sdb but will be lost or
       meaningless after creating array
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: partition table exists on /dev/sdc
mdadm: partition table exists on /dev/sdc but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

(四)查看阵列

cat /proc/mdstat 用于显示软件RAID阵列的状态。它显示了每个阵列设备的状态、阵列类型和阵列中的磁盘数量。

cat /proc/mdstat

#回显如下
Personalities : [raid1]
md1 : active raid1 sdc[1] sdb[0]
      20954112 blocks super 1.2 [2/2] [UU]

unused devices: <none>

(五)查看设备

mdadm -D /dev/md1

#回显如下
/dev/md1:
           Version : 1.2
     Creation Time : Tue Jun  6 09:47:11 2023
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jun  6 09:47:45 2023
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : HYX-RAID:1  (local to host HYX-RAID)
              UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
            Events : 17

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

(六)格式化与挂载

1.格式化

mkfs.xfs /dev/md1

#回显如下
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, 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

2.挂载

mkdir mount #创建挂载目录
mount /dev/md1 /root/mount #挂载
df -l #查看挂载信息

#回显如下
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 17811456 1242564 16568892    7% /
devtmpfs                  919504       0   919504    0% /dev
tmpfs                     931624       0   931624    0% /dev/shm
tmpfs                     931624    9772   921852    2% /run
tmpfs                     931624       0   931624    0% /sys/fs/cgroup
/dev/sda1                1038336  148536   889800   15% /boot
tmpfs                     186328       0   186328    0% /run/user/0
/dev/md1                20943872   32992 20910880    1% /root/mount #挂载成功

(七)故障与恢复

1.故障

mdadm /dev/md1 -f /dev/sdb #强制删除/dev/sdb
mdadm: set /dev/sdb faulty in /dev/md1

mdadm -D /dev/md1 #查看状态
/dev/md1:
           Version : 1.2
     Creation Time : Tue Jun  6 09:47:11 2023
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jun  6 11:41:04 2023
             State : clean, degraded
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 1
     Spare Devices : 0

Consistency Policy : resync

              Name : HYX-RAID:1  (local to host HYX-RAID)
              UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
            Events : 19

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

       0       8       16        -      faulty   /dev/sdb #/dev/sdb已故障

2.恢复

mdadm /dev/md1 --add /dev/sdb

#如果回显如下则恢复失败
mdadm: Cannot open /dev/sdb: Device or resource busy

#可使用下面的命令强制恢复
#强制重新同步可能会导致数据丢失或损坏,因此请谨慎使用
mdadm /dev/md1 --re-add /dev/sdb

#回显如下
mdadm: re-add /dev/sdb to md1 succeed

#查看状态
mdadm -D /dev/md1

#回显如下
/dev/md1:
           Version : 1.2
     Creation Time : Tue Jun  6 09:47:11 2023
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Tue Jun  6 11:49:59 2023
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : HYX-RAID:1  (local to host HYX-RAID)
              UUID : 45fb1437:49eab644:e905e5c6:a6ceb130
            Events : 38

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb #/dev/sdb恢复成功
       1       8       32        1      active sync   /dev/sdc

RAID故障后,恢复数据需要进行以下步骤:
1.确认故障:首先需要确认RAID组的哪个磁盘发生了故障,并且确认所有其它磁盘仍然正常工作。在某些RAID级别中,可能需要同时发生多个故障才会导致数据丢失,可以尝试重新启动RAID设备或者重新插拔磁盘来确定问题。
2.更换故障磁盘:如果确认了故障磁盘,请使用与该磁盘类型、容量、转速等方面相同的新磁盘替换故障磁盘。新磁盘状态应为未分区,未格式化或未初始化。
3.重建RAID:启动RAID,在BIOS中进行配置,或是使用RAID控制器中的工具进行重建。该过程可能需要更新RAID组配置,对数据进行重新组织和重新分布等。在重建过程中,可以选择保留原始数据,或是在重建时进行格式化,此时将丢失所有数据。
4.恢复数据:如果选择保留原始数据,那么重建完成后,可以重新对RAID组进行分配,恢复所有数据。如果RAID组上没有重要数据,可以在重建时格式化,配置RAID组后重新存储数据。
0

评论区