三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

保姆级教程:在银河麒麟V10桌面版(2205)上,用mdadm搞定软RAID1(附黑名单解除指南)

保姆级教程:在银河麒麟V10桌面版(2205)上,用mdadm搞定软RAID1(附黑名单解除指南)

银河麒麟V10桌面版软RAID1实战指南:从黑名单解除到自动挂载

在国产操作系统逐步成熟的今天,银河麒麟V10作为主流选择之一,其稳定性和安全性备受开发者青睐。然而,当我们需要在2205版本上实现数据冗余时,官方默认禁用的软RAID功能成为了许多技术人员的"拦路虎"。本文将手把手带您突破这一限制,完整演示在银河麒麟V10桌面版(2205)上配置软RAID1的全流程,特别针对该版本特有的模块黑名单机制提供解决方案。

1. 环境准备与问题诊断

在开始RAID1配置前,我们需要确认几个关键点。首先通过uname -a和cat /etc/os-release命令确认系统版本为银河麒麟V10桌面版2205。这个版本基于Linux内核,但出于稳定性考虑默认屏蔽了软RAID模块。

准备两块容量相同的磁盘分区作为RAID1成员。假设我们已经准备好/dev/sda8和/dev/sda9两个分区,并通过fdisk -l确认了分区信息。如果尚未分区,可以使用以下步骤:

sudo fdisk /dev/sda # 对sda磁盘进行操作 n → p → [分区号] → [起始扇区] → [结束扇区] → w # 创建新分区 mkfs.ext4 /dev/sda8 # 格式化为ext4文件系统

尝试直接创建RAID时会发现mdadm命令报错,这是因为关键模块被屏蔽。通过lsmod | grep raid检查会发现没有任何RAID相关模块加载,这是银河麒麟2205版本的特殊设定。

2. 解除软RAID模块黑名单

银河麒麟2205版本将软RAID模块列入了黑名单,配置文件位于/etc/modprobe.d/blacklist.conf。使用sudo权限编辑该文件:

sudo vim /etc/modprobe.d/blacklist.conf

找到包含以下内容的行并注释掉(在行首添加#):

blacklist raid0 blacklist raid1 blacklist raid10 blacklist raid456

保存退出后,必须更新initramfs使修改生效:

sudo update-initramfs -u

重启系统后,再次执行lsmod | grep raid应该能看到类似raid1、linear等模块已加载。这是银河麒麟系统特有的关键步骤,普通Linux教程往往忽略这一点。

注意:不同版本的黑名单文件位置可能略有不同,如果在/etc/modprobe.d/下找不到,可以尝试/etc/modprobe.blacklist.conf等类似名称的文件。

3. 创建并验证RAID1阵列

确认模块加载后,可以开始创建RAID1阵列。使用mdadm工具执行以下命令:

sudo mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda8 /dev/sda9

参数说明:

  • --create:创建新阵列
  • --verbose:显示详细过程
  • /dev/md1:阵列设备名称
  • --level=1:RAID级别为1(镜像)
  • --raid-devices=2:使用2个设备

创建完成后,通过以下命令验证阵列状态:

cat /proc/mdstat # 查看RAID运行状态 sudo mdadm --detail /dev/md1 # 查看详细配置信息

此时应该能看到两个设备处于"active sync"状态,表示镜像关系已建立。为了确保阵列信息持久化,需要将配置保存到mdadm.conf:

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

再次更新initramfs(银河麒麟特殊要求):

sudo update-initramfs -u

4. 文件系统创建与自动挂载

在RAID设备上创建ext4文件系统:

sudo mkfs.ext4 /dev/md1

创建挂载点并临时挂载测试:

sudo mkdir /mnt/raid1 sudo mount /dev/md1 /mnt/raid1

为了实现开机自动挂载,需要编辑/etc/fstab文件,添加以下行:

/dev/md1 /mnt/raid1 ext4 defaults 0 0

验证fstab配置是否正确:

sudo mount -a

最后,再次更新initramfs(银河麒麟特殊要求):

sudo update-initramfs -u

5. 常见问题排查与性能优化

即使按照上述步骤操作,在银河麒麟2205版本上仍可能遇到一些特殊问题。以下是几个典型场景的解决方案:

问题1:重启后RAID阵列未自动激活检查/etc/mdadm/mdadm.conf是否包含阵列配置,并确认update-initramfs命令已执行。可以尝试在/etc/rc.local中添加:

mdadm --assemble --scan

问题2:阵列状态显示为"degraded"这可能表示有设备未正常加入阵列。尝试以下命令修复:

sudo mdadm --manage /dev/md1 --add /dev/sda8 sudo mdadm --manage /dev/md1 --add /dev/sda9

性能优化建议:

  • 调整RAID超级块版本:创建阵列时添加--metadata=1.0参数
  • 修改调度算法:echo deadline > /sys/block/md1/queue/scheduler
  • 增加read-ahead:blockdev --setra 4096 /dev/md1

6. 数据安全与监控方案

建立RAID1后,建议设置定期监控以确保数据安全。创建监控脚本/usr/local/bin/raid_monitor.sh:

#!/bin/bash ERROR=$(cat /proc/mdstat | grep -i "error") if [ -n "$ERROR" ]; then echo "RAID Error detected: $ERROR" | mail -s "RAID Alert" admin@example.com logger -t RAID "Error detected in /proc/mdstat" fi

添加到cron定时任务:

sudo chmod +x /usr/local/bin/raid_monitor.sh (crontab -l 2>/dev/null; echo "0 * * * * /usr/local/bin/raid_monitor.sh") | sudo crontab -

对于重要数据,即使有RAID1保护,仍建议实施额外备份策略。可以使用rsync建立增量备份:

rsync -avz --delete /mnt/raid1/ backupuser@backupserver:/backups/raid1/

在银河麒麟2205版本上,由于安全机制较为严格,可能需要在/etc/ssh/sshd_config中调整AllowUsers设置,并确保防火墙规则允许备份流量通过。

← 返回列表