# 查看磁盘信息
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
# 创建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
# 创建物理卷
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
# 扩展逻辑卷
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
# 挂载时优化参数
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
# 格式化优化
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
# 调整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
# 实时监控
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
# 查看当前调度器
cat /sys/block/sdX/queue/scheduler
# 临时修改调度器
echo deadline > /sys/block/sdX/queue/scheduler
# 永久修改(GRUB配置)
grubby --update-kernel=ALL --args="elevator=deadline"
# 增加文件系统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
# 启用配额
mount -o usrquota,grpquota /dev/sdb1 /data
# 初始化配额数据库
quotacheck -cug /data
quotacheck -avugm
# 启用配额
quotaon -avug
# 为用户设置配额
edquota -u username
# 分区对齐检查
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
# 安装多路径工具
yum install device-mapper-multipath
# 配置多路径
mpathconf --enable --with_multipathd y
# 编辑配置文件
vi /etc/multipath.conf
# 启动服务
systemctl start multipathd
systemctl enable multipathd
# ext4文件系统检查
fsck.ext4 -f /dev/sdb1
# XFS文件系统检查
xfs_repair /dev/sdb1
# 强制检查(当文件系统标记为dirty时)
xfs_repair -L /dev/sdb1
# 使用testdisk恢复分区
testdisk /dev/sdb
# 使用extundelete恢复文件
extundelete /dev/sdb1 --restore-file /path/to/file
extundelete /dev/sdb1 --restore-all
# 查看系统日志中的磁盘错误
dmesg | grep -i error
journalctl -k -b | grep -i sdb
# 检查smart状态
smartctl -a /dev/sdb
本方案涵盖了CentOS系统下磁盘管理与文件系统优化的主要方面,从基础操作到高级优化,可根据实际环境需求选择合适的配置参数。实施前建议在测试环境验证,并确保有完整的数据备份。