在Linux系统中,创建镜像卷(通常指RAID 1)是提升数据可靠性的常用方法,通过将数据同时复制到多个磁盘实现冗余,即使单块磁盘故障也不会丢失数据,以下以主流工具mdadm
为例,详细介绍Linux环境下镜像卷的完整搭建流程。
准备工作
在创建镜像卷前,需确保系统已安装mdadm
工具(Debian/Ubuntu系统可通过sudo apt install mdadm
安装,CentOS/RHEL系统可通过sudo yum install mdadm
安装),并准备好两块或多块未挂载的磁盘(此处以两块磁盘/dev/sdb
和/dev/sdc
为例,容量建议相同)。
查看磁盘信息
使用lsblk
或fdisk -l
命令确认磁盘状态,确保目标磁盘未被系统使用:
lsblk
输出示例中,/dev/sdb
和/dev/sdc
应显示为独立的磁盘,无分区或文件系统。
清除磁盘分区表(可选)
若磁盘原有分区信息,需使用wipefs
或fdisk
清除,避免冲突:
sudo wipefs -a /dev/sdb sudo wipefs -a /dev/sdc
目标磁盘信息表
磁盘名称 | 容量 | 状态 | 用途 |
---|---|---|---|
/dev/sdb | 100GB | 未使用 | 镜像卷成员1 |
/dev/sdc | 100GB | 未使用 | 镜像卷成员2 |
创建镜像卷(RAID 1)
使用mdadm创建RAID设备
通过mdadm --create
命令创建RAID 1设备,指定设备名(如/dev/md0
)、镜像级别(--level=1
)、成员磁盘数量(--raid-devices=2
)及成员磁盘路径:
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
执行后,系统会开始同步数据(初始同步可能耗时较长,取决于磁盘容量)。
查看RAID同步状态
使用cat /proc/mdstat
实时监控同步进度,输出中[>....................]
表示同步进度,resync
表示正在同步:
cat /proc/mdstat
配置RAID设备持久化
为避免系统重启后RAID设备失效,需将RAID信息写入配置文件/etc/mdadm/mdadm.conf
:
生成RAID详细信息
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
更新initramfs(可选)
部分系统需更新initramfs以确保RAID在启动时正确加载:
sudo update-initramfs -u # Debian/Ubuntu sudo dracut --force # CentOS/RHEL
格式化并挂载镜像卷
格式化RAID设备
创建文件系统(如ext4):
sudo mkfs.ext4 /dev/md0
创建挂载点并挂载
sudo mkdir /mnt/raid1 sudo mount /dev/md0 /mnt/raid1
设置开机自动挂载
编辑/etc/fstab
文件,添加RAID设备信息:
echo "/dev/md0 /mnt/raid1 ext4 defaults 0 0" | sudo tee -a /etc/fstab
可通过mount -a
测试配置是否正确。
测试镜像功能
写入数据并验证
在挂载目录创建测试文件:
sudo dd if=/dev/zero of=/mnt/raid1/testfile bs=1M count=100
卸载RAID设备后,检查成员磁盘/dev/sdb
和/dev/sdc
是否均包含该文件:
sudo mdadm --stop /dev/md0 sudo mount /dev/sdb1 /mnt/test # 需先创建分区,此处简化演示 ls /mnt/test/testfile
模拟磁盘故障
重新启动RAID设备,模拟/dev/sdb
故障:
sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc sudo mdadm --fail /dev/md0 /dev/sdb sudo mdadm --remove /dev/md0 /dev/sdb
此时RAID会自动切换到“degraded”状态(降级模式),但数据仍可正常访问。
监控与维护
- 查看RAID状态:
sudo mdadm --detail /dev/md0
- 添加替换磁盘:若故障磁盘修复或新磁盘加入,可通过
sudo mdadm --add /dev/md0 /dev/sdd
添加,系统会自动同步数据。
相关问答FAQs
Q1:镜像卷(RAID 1)和RAID 0有什么区别?
A:RAID 1(镜像卷)通过数据复制实现冗余,两块磁盘存储完全相同数据,安全性高但可用空间为单块磁盘容量(如两块100GB磁盘仅可用100GB);RAID 0(条带卷)将数据分段存储于多块磁盘,读写速度快,但无冗余,单块磁盘故障会导致所有数据丢失,可用空间为多块磁盘之和(如两块100GB磁盘可用200GB)。
Q2:如何修复镜像卷中的故障磁盘?
A:若RAID 1中某块磁盘故障,需先移除故障磁盘(sudo mdadm --fail /dev/md0 /dev/sdb
和sudo mdadm --remove /dev/md0 /dev/sdb
),然后替换为新磁盘,使用sudo mdadm --add /dev/md0 /dev/sdb
(新磁盘路径)将新磁盘加入RAID,系统会自动同步数据至新磁盘,同步完成后可通过mdadm --detail /dev/md0
确认状态恢复为“clean”。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38560.html