apt install mdadm
1.查看系统磁盘
创建前可以通过如下命令查看可用的磁盘:
lsblk
(下面结果中的sda和sdc两个磁盘是我们准备创建RAID 0的两块盘)
2.创建raid
mdadm --create --verbose /dev/md0 --level=10 --raid-devices=8 /dev/nvme{0..7}n1
解读命令
mdadm --create: 创建一个新的 RAID 阵列。
--verbose: 输出详细信息,方便检查和调试。
/dev/md0: 指定 RAID 设备名。
--level=10: RAID 级别,RAID 10 是条带化 (striping) 和镜像 (mirroring) 的结合。
--raid-devices=8: 指定参与 RAID 阵列的设备数量,总共 8 个。
/dev/nvme{0..7}n1: 使用设备名模式指定了 8 个 NVMe 硬盘(如 /dev/nvme0n1 到 /dev/nvme7n1)。
输出解析
layout defaults to n2: RAID 10 的默认布局是 n2,表示每个镜像组有两个设备。
chunk size defaults to 512K: RAID 阵列的块大小默认为 512 KB。
size set to 976630272K: 每个条带(stripe)的总大小设置为 976630272 KB(约 930 GB),具体大小取决于硬盘容量和 RAID 配置。
write-intent bitmap: 自动启用了写意图位图功能,用于加速重建过程。
version 1.2 metadata: 默认使用 1.2 版本的 RAID 元数据。
array /dev/md0 started: RAID 阵列成功创建并启动。
3.查看创建结果
cat /proc/mdstat
可以看到md0已经创建成功。
关键点解析:
RAID类型:
Personalities : [raid10] 表明这组 RAID 阵列使用的是 RAID 10(1+0),即既有数据镜像,又有数据条带化。
RAID 10 提供了良好的数据冗余和性能。
阵列名称和组成设备:
md0 : active raid10 是阵列名称(md0)。
包含的设备为 nvme0n1 到 nvme7n1,共计 8 块 NVMe SSD。
阵列状态:
[8/8] [UUUUUUUU] 表示阵列有 8 个磁盘([8/8]),所有磁盘均在线并正常工作([UUUUUUUU])。
若某些磁盘离线或故障,U 会被替换为 _。
阵列大小:
3906521088 blocks:整个阵列大小约为 3.91TB(每个 block 通常是 1KB)。
同步进度:
[>....................] 表示阵列正在进行同步操作。
resync = 2.1% 当前同步进度为 2.1%。
finish=316.4min 预计需要约 316.4 分钟完成。
speed=201313K/sec 同步速度约为 201MB/s。
bitmap:
bitmap: 30/30 pages [120KB], 65536KB chunk 说明位图机制被启用,用于跟踪未同步的区域以提高同步效率。
建议与操作:
监控同步进度:
同步操作会影响磁盘 I/O 性能,可以通过 watch cat /proc/mdstat 实时监控进度。
若需要调整同步速度,可以使用以下命令:
echo 50000 > /proc/sys/dev/raid/speed_limit_min echo 300000 > /proc/sys/dev/raid/speed_limit_max此命令会将同步速度限制范围调整为 50MB/s 到 300MB/s。
优化性能:
RAID 10 的性能与配置息息相关,例如块大小(512K chunks)。根据实际应用需求(如数据库、文件存储)进行调优。
4.格式化raid
创建完成后会创建一个虚拟设备:/dev/md0,我们格式化:
mkfs.ext4 /dev/md0
解析输出
命令执行:
mkfs.ext4 /dev/md0这是在 /dev/md0 设备上格式化为 EXT4 文件系统的命令。
设备信息:
文件系统包含 976630272 个 4KB 块。
有 244162560 个 inode 可供分配文件和目录使用。
文件系统 UUID:
每个文件系统都有唯一的 UUID,在这里是:
34b2527c-f57a-41f0-a2f3-8e82e49abc8b这个 UUID 可用于挂载配置文件(如 /etc/fstab),避免直接依赖设备名称。
超级块和备份:
超级块用于存储文件系统的元数据(如块组信息、inode 表位置等)。
默认情况下,EXT4 文件系统会在指定的块位置存储超级块备份(例如 32768, 98304 等)。
如果主超级块损坏,可用这些备份进行恢复。
组表和 inode 表:
每个块组分配了 inode 表,用于存储文件/目录信息。
262144 块的日志区 用于支持文件系统的日志功能,确保系统崩溃后数据完整性。
1.手动挂载(手动挂载重启后会失效,文章后面会介绍如何设置开机自动挂载):
mkdir -p /mnt/raid10
# mnt为root权限,因此需要使用sudo来创建
mount /dev/md0 /mnt/raid10
完成挂载后,我们查看当前文件系统
df -h
可以看到我们创建的 md0 已经被挂载到了 /mnt/raid10 ,其空间大小为 3.6T
2.开机自动挂载raid
查询 md0 设备的UUID
blkid /dev/md0
运行结果:
/dev/md0: UUID="34b2527c-f57a-41f0-a2f3-8e82e49abc8b" BLOCK_SIZE="4096" TYPE="ext4"
上面的结果中的UUID后面的字符串即为我们要获取的内容,然后通过 nano 打开配置文件:
nano /etc/fstab
具体配置如下,将下面这行添加到打开的文件末尾即可:
UUID=34b2527c-f57a-41f0-a2f3-8e82e49abc8b /mnt/raid10 ext4 defaults 0 0
(nano说明:添加完成后按Ctrl + x 然后按 Y 然后回车即可)
3.配置 RAID 自动恢复
为了保证系统重启后 RAID 自动组装,执行以下操作:
完成上述命令后为保证下次重启RAID配置自动生效,还需要将RAID信息保存到配置文件。
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
4.验证性能
在 RAID 配置完成后,可以使用工具测试性能:
测试读取速度:
hdparm -tT /dev/md0
测试随机读写性能:使用 fio 工具:
apt install fio -y fio --name=test --filename=/mnt/raid10/testfile --size=1G --bs=4k --rw=randrw --ioengine=libaio --direct=1 --numjobs=4
点击 数据中心 - 存储 - 添加 - 目录
ID填自定义昵称;目录填写我们刚刚挂载的/mnt/raid0目录;内容将全部类型勾选,其他默认即可,如下图:
最后添加成功!如图所示:
上面的内容已经结束了,下面是如果想删除raid怎么操作:
删除命令
mdadm -D /dev/md0 umount 之前组建的raid
umount /dev/md0
停止raid设备
mdadm -S /dev/md0
删除raid里的所有磁盘
mdadm --misc --zero-superblock /dev/sda mdadm --misc --zero-superblock /dev/sdc
删除raid和开启启动配置文件中的配置,删除创建时候添加的对应信息
/etc/mdadm/mdadm.conf /etc/fstab
教程来源于飞跃云端,本站作部分修改。