1.1.3 分区方案与文件系统选择
分区方案与文件系统选择需围绕业务类型、可用性、性能与可维护性展开。生产环境建议系统分区与数据分区分离,关键服务(数据库、日志、缓存)独立挂载点便于监控与扩容。云主机/虚拟化场景可结合块存储快照与在线扩容能力设计挂载与LVM。
原理草图(分层与挂载关系示意):
常见分区建议(示例):
- / 根分区:20–50GB,存放系统与基础软件
- /boot:1–2GB,UEFI 环境 /boot/efi 300–500MB
- swap:内存≤8GB时 1–2 倍内存;内存>32GB可 4–16GB
- /var:日志、数据库、容器数据,建议独立分区
- /data 或 /srv:业务数据目录,独立分区便于扩展
- /tmp:高安全场景独立分区并启用 noexec,nosuid,nodev
文件系统选择要点:
- ext4:通用稳定,兼容性好,适合系统分区
- xfs:大文件与高并发写入性能好,适合数据库/日志/容器数据
- btrfs:支持快照与校验,运维复杂度高需评估
- LVM:在线扩容/快照,适合容量弹性需求
- RAID:提升可靠性与性能,关键数据建议 RAID10
安装与规划示例(LVM + XFS,分出 /var 与 /data):
# 1) 查看磁盘与现有分区
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
# 2) 使用分区工具创建 /boot 与 LVM 分区
# 交互式分区示例(/dev/sda)
fdisk /dev/sda <<'EOF'
g
n
1
+1G
n
2
+200G
t
2
8e
w
EOF
# 3) 创建物理卷、卷组、逻辑卷
pvcreate /dev/sda2
vgcreate vg_data /dev/sda2
lvcreate -n lv_root -L 40G vg_data
lvcreate -n lv_var -L 50G vg_data
lvcreate -n lv_data -l 100%FREE vg_data
# 4) 格式化文件系统
mkfs.xfs /dev/vg_data/lv_root
mkfs.xfs /dev/vg_data/lv_var
mkfs.xfs /dev/vg_data/lv_data
mkfs.ext4 /dev/sda1
# 5) 挂载并配置开机自动挂载
mkdir -p /mnt/sysroot /mnt/sysroot/var /mnt/sysroot/data /mnt/sysroot/boot
mount /dev/vg_data/lv_root /mnt/sysroot
mount /dev/vg_data/lv_var /mnt/sysroot/var
mount /dev/vg_data/lv_data /mnt/sysroot/data
mount /dev/sda1 /mnt/sysroot/boot
# 6) 生成 /etc/fstab 示例(安装系统后写入)
cat <<'EOF' > /mnt/sysroot/etc/fstab
/dev/vg_data/lv_root / xfs defaults 0 0
/dev/vg_data/lv_var /var xfs defaults 0 0
/dev/vg_data/lv_data /data xfs defaults 0 0
/dev/sda1 /boot ext4 defaults 1 2
EOF
命令说明与关键参数:
- lvcreate -L 40G:创建固定大小逻辑卷
- lvcreate -l 100%FREE:使用卷组所有剩余空间
- mkfs.xfs:创建 XFS 文件系统
- fstab 中 defaults:包含 rw、relatime 等常用挂载参数
挂载参数示例(增强安全与性能):
# /etc/fstab 追加安全参数示例
/dev/vg_data/lv_var /var xfs defaults,nodev 0 0
/dev/vg_data/lv_data /data xfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
# 使新参数生效
mount -a
排错与诊断:
# 1) fstab 配置错误导致无法启动,进入救援模式后注释错误行
vi /etc/fstab
# 使用此命令测试挂载
mount -a
# 预期:无输出即成功
# 2) 查看 LVM 状态
pvs; vgs; lvs -a -o +devices
# 3) 文件系统只读(常见于异常关机)
mount | grep ' /data '
# 修复 XFS
xfs_repair -n /dev/vg_data/lv_data # 先试运行
xfs_repair /dev/vg_data/lv_data # 确认后修复
扩容示例(在线扩容 /data):
# 1) 扩展逻辑卷(增加 100G)
lvextend -L +100G /dev/vg_data/lv_data
# 2) 扩展 XFS 文件系统(在线)
xfs_growfs /data
# 3) 验证容量
df -h /data
练习:
1. 规划一套 200GB 磁盘的分区:/、/var、/data、swap,并写出容量分配理由。
2. 使用 LVM 创建 lv_data 并格式化为 XFS,验证 df -h 输出。
3. 修改 /etc/fstab 为 /tmp 设置 noexec,nosuid,nodev,重启后验证挂载参数。
4. 模拟扩容 /data 50GB,完成 lvextend + xfs_growfs。