CentOS7上组建软RAID

本文详细介绍了在Linux环境下如何使用fdisk和mdadm工具对2T硬盘进行分区,创建RAID1阵列,包括配置文件编辑、格式化、挂载及开机自动挂载设置。同时,提供了常见错误处理方法,如md0设备不存在、设备忙等问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.fdisk 查看

sda和sdb 是新装的2T硬盘

磁盘 /dev/sdb:2000.4 GB, 2000398934016 字节,3907029168 个扇区
磁盘 /dev/sda:2000.4 GB, 2000398934016 字节,3907029168 个扇区

2.给硬盘分区

[root@localhost ~]# fdisk /dev/sda
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p

分区号 (1-4,默认 1):1

分一个区全部按默认值即可,再修改分区的类型。(如果是GPT分区,要用gdisk命令,分区类型要选fd00)

 命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):w

最后使用w命令保存修改。
查看分区结果

[root@localhost ~]# fdisk /dev/sda -l
磁盘 /dev/sda:2000.4 GB, 2000398934016 字节,3907029168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x345b0465

   设备 Boot      Start         End      Blocks   Id  System
   /dev/sda1            2048  3907029167  1953513560   fd  Linux raid autodetect

 同样的方式对sdb进行分区处理

3.安装mdadm工具

直接使用yum安装即可
yum -y install mdadm

4.使用mdadm创建raid1

mdadm -C /dev/md0 -ayes -l1 -n2 /dev/sda1 /dev/sdb1

说明:
-C  --create  创建阵列;

-a  --auto   同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;

-l  --level   阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n --raid-devices 阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;

/dev/md0    阵列的设备名称;

/dev/sd[a,b]1  参与创建阵列的磁盘名称

Continue creating array?
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

会有一个提示,选择 y 继续即可。
我们的boot是使用的另外一块硬盘。

查看md0的状态

cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
      1953382464 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  1.4% (28150720/1953382464) finish=164.1min speed=195451K/sec
      bitmap: 15/15 pages [60KB], 65536KB chunk

unused devices: <none>

还需要比较长的时间同步,等待完成即可。
不影响继续操作。
mdadm -D /dev/md0 查看信息

/dev/md0:
       Version : 1.2
 Creation Time : Tue Jan 16 20:56:33 2018
    Raid Level : raid1
    Array Size : 1953382464 (1862.89 GiB 2000.26 GB)
 Used Dev Size : 1953382464 (1862.89 GiB 2000.26 GB)
  Raid Devices : 2
 Total Devices : 2
   Persistence : Superblock is persistent

 Intent Bitmap : Internal

   Update Time : Tue Jan 16 21:01:04 2018
         State : clean, resyncing
 Active Devices : 2
 Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

Consistency Policy : bitmap

 Resync Status : 2% complete

          Name : buildsvr:0  (local to host buildsvr)
          UUID : 862ba0aa:097df3b5:e0343731:161c0c74
        Events : 54

Number   Major   Minor   RaidDevice State
   0       8        1        0      active sync   /dev/sda1
   1       8       17        1      active sync   /dev/sdb1

  

5.创建md0的配置文件

echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.conf
mdadm -Evs >> /etc/mdadm.conf

6.格式化&创建目录并挂载

mkfs.ext4 /dev/md0
mkdir /raid1
mount /dev/md0 /raid1

7.写入分区表,开机自动挂载

echo "/dev/md0 /raid1 ext4 defaults 0 0" >> /etc/fstab

8.清除软raid

8.1 卸载md0的挂载点

umount /raid1

8.2 停止md0这个阵列,并释放与该阵列相关的所有资源

mdadm -S /dev/md0
mdadm: stopped /dev/md0

 8.3 清除成员磁盘当中阵列的超级块信息 

mdadm --zero-superblock /dev/sda /dev/sdb

 8.4 删除或注释/etc/fstab上的挂载信息

vi /etc/fstab
#/dev/md0 /data ext4 defaults 0 0

8.5 删除或注释/etc/mdadm.conf对应的RAID信息

vi /etc/mdadm.conf 
#DEVICE /dev/sdb /dev/sda
#ARRAY /dev/md0 metadata=1.2 name=myhostname:0 UUID=ba6c37b0:3acbd94c:7cd55917:de7c61ea

8.6 删除md0

rm -f /dev/md0

9.用mdadm创建软raid遇到的问题

9.1 用mdadm -C...创建raid时提示:

mdadm: error opening /dev/md0: No such file or directory

这主要是/dev/下没有md0这个设备文件,需要用mknod命令创建一个

mknod /dev/md0 b 9 0  #b为块设备,9为主设备号,0为次设备号

9.2 创建raid时提示:

mdadm: cannot open device /dev/sdb1: Device or resource busy

这个通常是因为/dev/sdb1已经被挂载到了某个目录下,解决的方法是:

umount /dev/sdb1

9.3 创建raid过程中进行格式化:

在raid初始化过程中,可以对该其进行格式化,但是要注意必须在raid初始化完成到一定程度才可以开始,比如对于ext2、ext3,默认情况下它们的inode信息要占到卷空间5%的大小,所以尽量在初始化完成到5%以上的时候,再开始格式化。

 

 

 

### 如何在 CentOS 上设置 RAID 5 #### 安装必要的工具 为了管理和创建 RAID,在 CentOS 系统上需要先安装 `mdadm` 工具。通过执行以下命令来完成安装: ```bash yum install mdadm.x86_64 ``` 这一步骤确保了拥有用于创建和管理RAID 所需的工具[^4]。 #### 准备硬盘分区 假设已经准备好了至少三块相同容量的硬盘 `/dev/sdb`, `/dev/sdc`, 和 `/dev/sdd` 并进行了适当分区,每一块都划分了一个大小相等的主分区(例如 sdb1, sdc1, sdd1),这些将成为构成 RAID 5 的成员盘[^1]。 #### 创建 RAID 5 阵列 接下来使用 `mdadm` 命令行工具创建一个名为 `/dev/md0` 的 RAID 5 设备,并指定其中一块磁盘作为热备份盘。具体操作如下所示: ```bash mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd[b-e]1 ``` 这里 `-l 5` 表示创建的是 RAID Level 5 类型的阵列;`-n 3` 指定参与构建 RAID 5 的活动磁盘数目为三个;而 `-x 1` 则定义了一张额外的热备用磁盘以增强数据安全性。 #### 查看 RAID 状态 可以利用下面这条指令查询刚刚建立起来的 RAID 5 是否成功以及其当前的工作状况: ```bash mdadm -D /dev/md0 ``` 此命令会返回有关 RAID 5 构建进度的信息以及其他重要细节。 #### 格式化并挂载文件系统 一旦确认 RAID 成功组建完毕之后,则可继续对其进行格式化处理,比如将其转换成 Ext4 文件系统: ```bash mkfs.ext4 /dev/md0 ``` 最后还需要编辑 `/etc/fstab` 文件以便让新的存储卷能够在每次启动时自动加载至特定路径下,如 `/data` 目录[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值