内容大纲
内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
1. XFS文件系统概述
XFS是一种高性能的日志文件系统,最初由SGI开发,现在是Linux系统中默认的文件系统之一。XFS特别适合处理大文件和大容量存储系统。
学习交流加群风哥QQ113257174
XFS文件系统的主要特点包括:
- 支持非常大的文件和分区
- 高性能的I/O操作
- 高效的日志功能
- 支持在线扩容
- 优秀的并行I/O性能
2. mkfs.xfs命令基本用法
mkfs.xfs命令用于在分区上创建XFS文件系统。
# mkfs.xfs [选项] 设备
# 简单格式化
# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# 查看文件系统信息
# xfs_info /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
3. 常用选项详解
mkfs.xfs命令支持多种选项,用于定制文件系统的创建过程。
# -f:强制格式化,即使设备已经有文件系统
# mkfs.xfs -f /dev/vdb1
# -L:指定卷标
# mkfs.xfs -L data1 /dev/vdb1
# -b:指定块大小
# mkfs.xfs -b size=4096 /dev/vdb1
# -m:指定元数据相关选项
# mkfs.xfs -m crc=1 /dev/vdb1 # 启用CRC校验
# -d:指定数据区相关选项
# mkfs.xfs -d agcount=8 /dev/vdb1 # 设置分配组数量
# -l:指定日志相关选项
# mkfs.xfs -l size=128m /dev/vdb1 # 设置日志大小
# 查看所有可用选项
# mkfs.xfs –help
4. 高级配置选项
对于特殊场景,
from PG视频:www.itpux.com
mkfs.xfs命令提供了更多高级配置选项。
# 创建带有实时分区的XFS文件系统
# mkfs.xfs -d size=90g -r size=10g /dev/vdb1
# 为RAID设备优化
# mkfs.xfs -d sunit=128,swidth=512 /dev/md0
# 启用reflink功能
# mkfs.xfs -m reflink=1 /dev/vdb1
# 启用sparse inode
# mkfs.xfs -m sparse=1 /dev/vdb1
# 设置inode大小
# mkfs.xfs -m isize=256 /dev/vdb1
5. 实战案例
下面通过一个完整的实战案例来演示mkfs.xfs命令的使用。
# 1. 查看分区
# lsblk /dev/vdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 200G 0 disk
├─vdb1 252:17 0 100G 0 part
└─vdb2 252:18 0 100G 0 part
# 2. 为vdb1创建XFS文件系统(优化为数据库存储)
# mkfs.xfs -L database -d agcount=16 -l size=256m /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=16, agsize=1638400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=65536, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# 3. 为vdb2创建XFS文件系统(优化为多媒体存储)
# mkfs.xfs -L media -d agcount=8 -b size=4096 /dev/vdb2
meta-data=/dev/vdb2 isize=512 agcount=8, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# 4. 挂载文件系统
# mkdir -p /database /media
# mount /dev/vdb1 /database
# mount /dev/vdb2 /media
# 5. 配置永久挂载
# echo ‘/dev/vdb1 /database xfs defaults 0 0’ >> /etc/fstab
# echo ‘/dev/vdb2 /media xfs defaults 0 0’ >> /etc/fstab
# 6. 验证挂载
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.0M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 3.5G 42G 8% /
/dev/vda1 1014M 194M 821M 20% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/vdb1 100G 33M 100G 1% /database
/dev/vdb2 100G 33M 100G 1% /media
# 7. 查看文件系统详细信息
# xfs_info /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=16, agsize=1638400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=65536, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
风哥经验总结
1. XFS文件系统特别适合处理大文件和
更多学习教程公众号风哥教程itpux_com
大容量存储,是RHEL 7+的默认文件系统。
2. 对于不同的使用场景,选择合适的配置:
学习交流加群风哥微信: itpux-com
- 数据库存储:增加分配组数量和日志大小
- 多媒体存储:使用默认配置即可
- RAID设备:设置合适的sunit和swidth参数
3. XFS支持在线扩容,但不支持在线缩容,因此在规划分区大小时要预留足够的空间。
4. 启用CRC校验可以提高文件系统的可靠性,但会 slightly 影响性能。
风哥提示:>
5. 对于大型文件系统,建议使用多个分配组,以提高并行I/O性能。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
