一、软件磁盘阵列 (Software RAID)

1.1 RAID 基础概念

1.1.1 RAID 定义与目标

  • 全称Redundant Arrays of Independent Disks(独立容错式磁盘阵列)
  • 核心目标:扩大磁盘容量、实现磁盘容错、提升读写性能
  • 分类:硬件 RAID(独立 RAID 芯片)与软件 RAID(通过 mdadm 软件实现)

1.1.2 常见 RAID 级别对比

RAID 级别 最少磁盘数 容错能力 可用容量 性能特点 适用场景
RAID 0 2 磁盘容量 读写性能最佳 临时存储、非关键数据
RAID 1 2 n-1 50%磁盘容量 读性能提升,写性能不变 数据备份、高可用性
RAID 10 4 每组 RAID1 容错 50%磁盘容量 高性能 + 高容错 数据库服务器
RAID 5 3 1 (n-1)×磁盘容量 读写性能均衡 企业级存储
RAID 6 4 2 (n-2)×磁盘容量 更强容错,性能略降 关键业务数据

1.2 软件 RAID 实践 (mdadm)

1.2.1 创建 RAID 阵列

1
2
3
4
5
6
# 创建RAID 5阵列,使用4个磁盘,1个备用盘,块大小256K
mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-devices=1 /dev/sd{a,b,c,d,e}
# 格式化RAID阵列
mkfs.xfs -d su=256k,sw=3 /dev/md0
# 挂载使用
mount /dev/md0 /srv/raid

1.2.2 管理与救援

1
2
3
4
5
6
7
8
9
# 查看RAID状态
mdadm --detail /dev/md0
cat /proc/mdstat
# 模拟磁盘故障
mdadm --manage /dev/md0 --fail /dev/sda
# 移除故障磁盘
mdadm --manage /dev/md0 --remove /dev/sda
# 添加新磁盘
mdadm --manage /dev/md0 --add /dev/sdf

二、逻辑卷管理 (Logical Volume Manager, LVM)

2.1 LVM 核心组件

2.1.1 组件架构

  • PV (Physical Volume):物理卷,可是分区或整个磁盘
  • PE (Physical Extent):物理扩展块,LVM 最小存储单位(默认 4MB
  • VG (Volume Group):卷组,多个 PV 的集合
  • LV (Logical Volume):逻辑卷,从 VG 中划分的可使用空间

2.1.2 组件关系图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PV1  PV2  PV3
| | |
v v v
+-------+-------+-------+
| VG | |
+-------+-------+-------+
|
v
+-------+
| LV |
+-------+
|
v
文件系统

2.2 LVM 实战流程

2.2.1 基础操作

1
2
3
4
5
6
7
8
9
# 创建PV
pvcreate /dev/vda{9,10,11,12}
# 创建VG,PE大小16MB
vgcreate -s 16M myvg /dev/vda{9,10,11,12}
# 创建LV,容量500MB
lvcreate -n mylv -L 500M myvg
# 格式化并挂载
mkfs.xfs /dev/myvg/mylv
mount /dev/myvg/mylv /srv/lvm

2.2.2 动态扩容

1
2
3
4
5
6
7
8
9
10
# 新增磁盘并创建PV
pvcreate /dev/vda13
# 扩展VG
vgextend myvg /dev/vda13
# 扩展LV(增加21个PE)
lvresize -l +21 /dev/myvg/mylvm2
# 扩展文件系统(EXT4)
resize2fs /dev/myvg/mylvm2
# 扩展XFS文件系统
xfs_growfs /dev/myvg/mylv

三、RAID 与 LVM 综合应用

3.1 组合架构优势

  • RAID:提供性能优化与数据容错
  • LVM:实现动态容量管理
  • 组合使用:在 RAID 阵列上部署 LVM,兼顾容错、性能与弹性

3.2 实战案例:在 RAID 5 上构建 LVM

1
2
3
4
5
6
7
8
9
10
11
# 创建RAID 5阵列
mdadm --create /dev/md0 --level=5 --raid-devices=5 /dev/vda{4..8}
# 创建PV
pvcreate /dev/md0
# 创建VG
vgcreate raidvg /dev/md0
# 创建LV
lvcreate -l 1533 -n raidlv raidvg
# 格式化并挂载
mkfs.xfs /dev/raidvg/raidlv
mount /dev/raidvg/raidlv /srv/raid-lvm

四、特殊文件系统技术

4.1 Stratis 卷管理系统

4.1.1 核心概念

  • 分层架构Block Device → Pool → Filesystem
  • 优势:简化存储管理,支持动态扩容,自动数据优化

4.1.2 操作示例

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装Stratis
yum install stratisd stratis-cli
# 启动服务
systemctl start stratisd
systemctl enable stratisd
# 创建存储池
stratis pool create vbirdpool /dev/raidvg/raidlv
# 添加数据磁盘
stratis pool add-data vbirdpool /dev/rocky/lvm
# 创建文件系统
stratis filesystem create vbirdpool fs1
# 挂载使用
mount /dev/stratis/vbirdpool/fs1 /srv/pool1

4.2 虚拟数据优化 (VDO)

4.2.1 技术特点

  • 用途:专为虚拟机磁盘设计,支持数据压缩与去重
  • 优势1TB 物理空间可虚拟出更大逻辑空间,减少存储占用

4.2.2 实战配置

1
2
3
4
5
6
7
# 安装VDO
yum install vdo kmod-kvdo lvm2
# 创建VDO支持的LV
lvcreate -l 1533 --vdo --name vdolv --compression y --deduplication y --virtualsize 10G raidvg
# 格式化并挂载
mkfs.xfs /dev/raidvg/vdolv
mount /dev/raidvg/vdolv /srv/vdo

五、磁盘配额管理 (Quota)

5.1 Quota 基础概念

5.1.1 核心功能

  • 限制对象:用户、群组、项目
  • 限制类型:
    • 容量限制(Block
    • 文件数限制(Inode
  • 阈值类型:
    • 软限制(Soft):可临时突破,触发宽限期
    • 硬限制(Hard):严格限制,不可突破

5.2 XFS 文件系统配额配置

5.2.1 启用 Quota 支持

1
2
3
4
5
6
# 修改fstab添加配额参数
vim /etc/fstab
/dev/mapper/rocky-home /home xfs defaults,usrquota,grpquota 0 0
# 重新挂载
umount /home
mount /home

5.2.2 配置用户配额

1
2
3
4
5
6
# 查看配额状态
xfs_quota -x -c "state" /home
# 配置student用户配额:软限制1.8G,硬限制2G
xfs_quota -x -c "limit -u bsoft=1800M bhard=2G student" /home
# 查看配额报告
xfs_quota -x -c "report -ubih" /home

六、关键命令速查表

6.1 RAID 管理

操作 命令示例
创建 RAID mdadm --create /dev/md0 --level=5 ...
查看状态 mdadm --detail /dev/md0
管理磁盘 mdadm --manage /dev/md0 --add/remove ...

6.2 LVM 管理

操作 命令示例
创建 PV pvcreate /dev/sda1
创建 VG vgcreate myvg /dev/sda{1,2}
创建 LV lvcreate -n mylv -L 1G myvg
扩展 LV lvresize -l +100 myvg/mylv
扩展文件系统 xfs_growfs /dev/myvg/mylv

6.3 Stratis 管理

操作 命令示例
创建存储池 stratis pool create vbirdpool /dev/sda1
创建文件系统 stratis filesystem create vbirdpool fs1
查看状态 stratis pool list

6.4 Quota 管理

操作 命令示例
查看配额状态 xfs_quota -x -c "state" /home
配置配额 xfs_quota -x -c "limit -u bsoft=1G bhard=2G user1"
生成报告 xfs_quota -x -c "report -ubih" /home