插件窝 干货文章 CentOS磁盘管理与文件系统优化方案

CentOS磁盘管理与文件系统优化方案

data dev 文件 sdb 914    来源:    2025-04-02

CentOS磁盘管理与文件系统优化方案

一、磁盘管理基础

1. 磁盘识别与分区

# 查看磁盘信息
lsblk
fdisk -l
ls /dev/sd*

# 使用fdisk进行分区
fdisk /dev/sdb
# 常用命令:n(新建), d(删除), p(查看), w(保存), q(退出)

# 使用parted进行GPT分区
parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 100%
(parted) print
(parted) quit

2. 文件系统创建与挂载

# 创建ext4文件系统
mkfs.ext4 /dev/sdb1

# 创建XFS文件系统
mkfs.xfs /dev/sdb1

# 挂载文件系统
mkdir /data
mount /dev/sdb1 /data

# 自动挂载配置
echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab
mount -a

二、LVM管理

1. LVM基本操作

# 创建物理卷
pvcreate /dev/sdb1

# 创建卷组
vgcreate vg_data /dev/sdb1

# 创建逻辑卷
lvcreate -L 10G -n lv_data vg_data

# 格式化并挂载
mkfs.xfs /dev/vg_data/lv_data
mkdir /data
mount /dev/vg_data/lv_data /data

2. LVM扩展与缩减

# 扩展逻辑卷
lvextend -L +5G /dev/vg_data/lv_data
xfs_growfs /data  # 对于XFS文件系统
resize2fs /dev/vg_data/lv_data  # 对于ext4文件系统

# 扩展卷组
vgextend vg_data /dev/sdc1

# 缩减逻辑卷(需先缩减文件系统)
umount /data
e2fsck -f /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data 8G
lvreduce -L 8G /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /data

三、文件系统优化

1. ext4优化参数

# 挂载时优化参数
mount -o noatime,nodiratime,data=writeback,barrier=0 /dev/sdb1 /data

# /etc/fstab示例
/dev/sdb1 /data ext4 noatime,nodiratime,data=writeback,barrier=0 0 0

# 格式化时优化
mkfs.ext4 -O ^has_journal -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdb1

2. XFS优化参数

# 格式化优化
mkfs.xfs -f -i size=2048 -l size=128m,lazy-count=1 -d agcount=16 /dev/sdb1

# 挂载优化
mount -o noatime,nodiratime,logbsize=256k,allocsize=4m /dev/sdb1 /data

# /etc/fstab示例
/dev/sdb1 /data xfs noatime,nodiratime,logbsize=256k,allocsize=4m 0 0

3. 文件系统参数调整

# 调整ext4日志模式
tune2fs -o journal_data_writeback /dev/sdb1

# 调整保留块比例(默认为5%)
tune2fs -m 1 /dev/sdb1

# 调整XFS参数
xfs_admin -c "version 2" /dev/sdb1
xfs_admin -e "extsize 16m" /dev/sdb1

四、性能监控与调优

1. 磁盘I/O监控

# 实时监控
iostat -x 1

# 查看磁盘队列
sar -d 1

# 查看进程IO
iotop

# 查看块设备信息
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,FSTYPE,MOUNTPOINT,PHY-SEC,LOG-SEC,ALIGNMENT,MIN-IO,OPT-IO

2. I/O调度器优化

# 查看当前调度器
cat /sys/block/sdX/queue/scheduler

# 临时修改调度器
echo deadline > /sys/block/sdX/queue/scheduler

# 永久修改(GRUB配置)
grubby --update-kernel=ALL --args="elevator=deadline"

3. 其他优化参数

# 增加文件系统inode缓存
sysctl -w vm.vfs_cache_pressure=50

# 调整脏页比例
sysctl -w vm.dirty_ratio=10
sysctl -w vm.dirty_background_ratio=5

# 调整IO队列深度
echo 256 > /sys/block/sdX/queue/nr_requests

五、高级功能

1. 磁盘配额管理

# 启用配额
mount -o usrquota,grpquota /dev/sdb1 /data

# 初始化配额数据库
quotacheck -cug /data
quotacheck -avugm

# 启用配额
quotaon -avug

# 为用户设置配额
edquota -u username

2. SSD优化

# 分区对齐检查
parted /dev/sda align-check optimal 1

# TRIM支持
fstrim -v /data

# 自动TRIM(添加到crontab)
@weekly /usr/sbin/fstrim -v /

# 减少写入(noatime,nodiratime)
mount -o discard,noatime,nodiratime /dev/sdb1 /data

3. 多路径IO(MPIO)配置

# 安装多路径工具
yum install device-mapper-multipath

# 配置多路径
mpathconf --enable --with_multipathd y

# 编辑配置文件
vi /etc/multipath.conf

# 启动服务
systemctl start multipathd
systemctl enable multipathd

六、故障处理

1. 文件系统修复

# ext4文件系统检查
fsck.ext4 -f /dev/sdb1

# XFS文件系统检查
xfs_repair /dev/sdb1

# 强制检查(当文件系统标记为dirty时)
xfs_repair -L /dev/sdb1

2. 数据恢复

# 使用testdisk恢复分区
testdisk /dev/sdb

# 使用extundelete恢复文件
extundelete /dev/sdb1 --restore-file /path/to/file
extundelete /dev/sdb1 --restore-all

3. 日志分析

# 查看系统日志中的磁盘错误
dmesg | grep -i error
journalctl -k -b | grep -i sdb

# 检查smart状态
smartctl -a /dev/sdb

本方案涵盖了CentOS系统下磁盘管理与文件系统优化的主要方面,从基础操作到高级优化,可根据实际环境需求选择合适的配置参数。实施前建议在测试环境验证,并确保有完整的数据备份。