RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种将多个物理硬盘组合成一个逻辑单元的技术,以提高数据冗余性、性能或容量。在Linux系统中,可以通过软件RAID(mdadm工具)或硬件RAID来实现。本文主要介绍如何使用mdadm
工具在Linux系统中配置软件RAID。
RAID有多种级别,每种级别都有不同的特点和用途:
mdadm
是Linux下管理软件RAID的主要工具。首先需要确保系统已安装该工具。
# 对于Debian/Ubuntu系统
sudo apt-get install mdadm
# 对于CentOS/RHEL系统
sudo yum install mdadm
假设我们有两块未分区的硬盘 /dev/sdb
和 /dev/sdc
,准备用来创建RAID 1。
# 查看硬盘信息
lsblk
fdisk -l
为了确保RAID设备正常工作,建议对硬盘进行分区并设置正确的分区类型(Linux RAID autodetect, ID: fd)。
# 使用fdisk工具对/dev/sdb进行分区
sudo fdisk /dev/sdb
# 创建新分区
n # 新建分区
p # 主分区
1 # 第一个分区
[回车] # 起始扇区默认值
[回车] # 结束扇区默认值
# 设置分区类型为RAID
t
fd # 设置为Linux RAID autodetect
w # 写入并退出
# 对/dev/sdc重复上述操作
sudo fdisk /dev/sdc
使用mdadm
命令创建RAID设备。以下示例创建一个RAID 1设备 /dev/md0
。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
--level=1
:指定RAID级别为RAID 1。--raid-devices=2
:指定使用的硬盘数量为2。/dev/sdb1 /dev/sdc1
:参与RAID的分区。cat /proc/mdstat
mdadm --detail /dev/md0
创建文件系统,例如ext4格式。
sudo mkfs.ext4 /dev/md0
创建挂载点并挂载RAID设备。
sudo mkdir /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
编辑/etc/fstab
文件,添加以下行:
/dev/md0 /mnt/raid1 ext4 defaults 0 0
为了让系统在重启后仍然识别RAID设备,需要保存配置。
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
RAID的优缺点:
RAID故障恢复:如果RAID设备中的某个硬盘出现故障,可以使用mdadm --manage
命令替换故障硬盘并重新同步数据。
硬件RAID vs 软件RAID:硬件RAID由专门的RAID控制器处理,性能较好但成本较高;软件RAID依赖操作系统,灵活性高且成本低。