1. 存储管理是啥
在 Linux 里,存储管理就是规划、使用、维护磁盘和分区,让数据既能高效读写,又能安全可靠地保存。
主要包括:
- 磁盘分区(fdisk/parted)
- 文件系统创建与挂载(mkfs、mount)
- 容量扩容/缩容(LVM、RAID、云盘动态调整)
- 备份与恢复(tar、rsync、快照、dump/restore)
- 监控与维护(df、du、iostat、smartctl)
类比:
- 磁盘 = 空地
- 分区 = 分好的地块
- 文件系统 = 修好的路和仓库布局
- 挂载 = 把仓库入口开到你的操作系统里
- 存储管理 = 既要规划仓库,也要保证物品可找、可搬、可修复
2. XFS 增量备份与恢复
2.1 XFS 是啥
- 高性能日志文件系统,Red Hat/CentOS 7 默认使用
- 擅长处理大文件、大目录
- 支持在线扩展容量
- 自带专用的备份恢复工具:
xfsdump
/xfsrestore
2.2 增量备份原理
完全备份:备份整个文件系统
增量备份:只备份上次备份后变化过的文件
XFS 用备份等级(level)控制:
- level 0 = 完全备份
- level 1 = 在 level 0 的基础上增量
- level 2 = 在 level 1 的基础上增量
- 以此类推
2.3 增量备份命令
假设挂载点是 /data
,备份到 /backup/data.dump
# 第一次完全备份(level 0)
xfsdump -l 0 -f /backup/data.l0.dump /data
# 第二次增量备份(level 1)
xfsdump -l 1 -f /backup/data.l1.dump /data
-l
:备份等级-f
:备份文件存储位置
2.4 恢复命令
恢复到 /restore
目录:
# 先恢复完全备份
xfsrestore -f /backup/data.l0.dump /restore
# 再按顺序恢复增量备份
xfsrestore -f /backup/data.l1.dump /restore
⚠️ 恢复必须按备份顺序执行,否则数据不完整。
3. LVM 是啥(Logical Volume Manager)
3.1 LVM 解决什么问题
传统分区(/dev/sda1、/dev/sda2…)容量固定,不好扩展。
LVM 可以:
- 把多个物理磁盘/分区合成一个大存储池(Volume Group, VG)
- 在存储池里灵活分配逻辑卷(Logical Volume, LV)
- 支持在线扩容、缩容、快照
3.2 核心结构
PV(Physical Volume)物理卷
- 真正的磁盘或分区
VG(Volume Group)卷组
- 存储池,由多个 PV 组成
LV(Logical Volume)逻辑卷
- 相当于“虚拟分区”,挂载后可以像普通分区使用
3.3 常用命令
# 创建物理卷
pvcreate /dev/sdb /dev/sdc
# 创建卷组
vgcreate myvg /dev/sdb /dev/sdc
# 创建逻辑卷(10G)
lvcreate -L 10G -n mylv myvg
# 格式化并挂载
mkfs.xfs /dev/myvg/mylv
mount /dev/myvg/mylv /data
# 扩容(在线)
lvextend -L +5G /dev/myvg/mylv
xfs_growfs /data
3.4 LVM 快照
- 类似“时间点备份”,几乎瞬间完成
- 可用于备份时保证数据一致性
lvcreate -L 1G -s -n mylv_snap /dev/myvg/mylv
4. 企业实战场景整合
场景:
某公司 /data
挂载了一个 XFS 文件系统,业务数据每天都会变化,要求:
- 每周日做完全备份
- 每天做一次增量备份
- 存储空间可动态扩容
方案:
/data
建在 LVM 上,方便未来扩容:pvcreate /dev/sdb /dev/sdc vgcreate datavg /dev/sdb /dev/sdc lvcreate -L 100G -n datalv datavg mkfs.xfs /dev/datavg/datalv mount /dev/datavg/datalv /data
定时任务执行 XFS 备份:
# 每周日 level 0 0 2 * * 0 xfsdump -l 0 -f /backup/data.l0.dump /data # 周一到周六 level 1 0 2 * * 1-6 xfsdump -l 1 -f /backup/data.l1-$(date +\%Y\%m\%d).dump /data
当数据接近 90% 容量时:
lvextend -L +50G /dev/datavg/datalv xfs_growfs /data