mount ,mkfs工具详细说明(ext4,xfs)
mount -o options device directory
Option:Description
async:允许文件系统异步的输入与输出
auto:Allows the file system to be mounted automaticallyusing the mount -a command.
defaults:Provides an alias forasync,auto,dev,exec,nouser,rw,suid.
exec:允许二进制文件执行
loop:把镜像文件回环设备挂载
noauto:Default behavior disallows the automatic mount of thefile system using the mount -a command.
noexec:不允许二进制文件执行
nouser:禁止普通用户mount与umount
remount:重新挂载
ro:只读
rw:允许读写
user: 允许普通用户mount与umount
acl:访问控制列表
mount -oro,loop Fedora-14-x86_64-Live-Desktop.iso /media/cdrom
XFS:
XFS格式化: 块设备分割成八个或以上相等的线性区域(region,或块chunk)-->称为“分配组”.
分配组是唯一的,独立管理自己的inode节点和空闭空间(类似文件子系统,使用高效的B+树来跟踪主要数据),分配组机制给XFS提供了可伸缩和并行特性(多个线程和进程可以同时在同一个文件系统上执行IO操作)。
XFS:数据段(数据,元数据),日志段,实时段.(默认mkfs.xfs下:实时段不存在,日志段包含在数据段中)
详细信息:请参考man mkfs.xfs
mkfs.xfs -b block_size(块大小) options
-ddata_section_options(数据属性)(sunit/swidth(单位为512byte)=su/sw 条带大小/宽度)
mkfs.xfs -d su=4k,sw=16 /dev/sdb4
-i inode_options
-l log_section_options (日志属性)(internal/logdev)
-n naming_options
-p protofile
-r realtime_section_options (实时数据属性)(rtdev/size)
-s sector size(扇区大小)
-L label
-q(quiet 不打印) -f(Force强制)
1.元数据日志可以独立存放
mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1
(日志大小为10000block,存放在sdb1上)
mount -o 选项
allocsize=延时分配时,预分配buffered大小,
sunit= /swidth= 使用指定的条带单元与宽度(单位为512byte)(优先级高于mkfs时指定的)
barrier write barrier
swalloc 根据条带宽度的边界调整数据分配
discard 块设备自动回收空间
dmapi 使能DataManagement API事件
mtpt=mountpoint
inode64 创建inode节点位置不收限制
inode32 inode节点号不起过32位(为了兼容)
largeio 大块分配,(先swidth,后allocsize)
nolargeio 尽量小块分配
noalign 数据分配时不用条带大小对齐
noatime 读取文件时不更新访问时间
norecovery 挂载时不运行日志恢复(只读挂载)
logbufs= 在内存中的日志缓存区数量
logbsize= 内存中每个日志缓存区的大小
logdev= /rtdev=指定日志设备或实时设备(xfs文件系统可以分为三部分:数据,日志,实时(可选))
sysctls:/proc/sys/fs/xfs/
stats_clear : (Min: 0 Default: 0 Max: 1) 清除状态信息(/proc/fs/sys/xfs/stat)
xfssyncd_centisecs: (Min: 100 Default: 3000 Max: 720000)xfssyncd刷新时间间隔(写到磁盘)
xfsbufd_centisecs: (Min: 50 Default: 100Max: 3000)xfsbufd扫瞄脏buffer的时间间隔
age_buffer_centisecs:(Min: 100 Default: 1500 Max: 720000)xfsbufd刷新脏buffer到磁盘的时间
irix_symlink_mode: (Min: 0 Default: 0 Max: 1)控制符号链接的模式是不是0777
inherit_nosymlinks:(Min: 0 Default: 1 Max: 1) xfs_io下chattr命令设置nosymlinks标志
inherit_sync: (Min: 0 Default: 1 Max: 1)xfs_io 下chattr命令设置sync标志
inherit_nodump: (Min: 0 Default: 1 Max: 1)xfs_io 下chattr命令设置nodump标志
inherit_noatime: (Min: 0 Default: 1 Max: 1)xfs_io 下chattr命令设置noatime标志
rotorstep: (Min: 1 Default: 1 Max: 256)inode32模式下
error_level: (Min: 0 Default: 3 Max: 11)文件系统出错时会显示详细信息
XFS_ERRLEVEL_OFF:0
XFS_ERRLEVEL_LOW:1
XFS_ERRLEVEL_HIGH:5
panic_mask:(Min: 0 Default: 0 Max: 127)遇到指定的错误时调用BUG()(调试时用)
XFS_NO_PTAG 0
XFS_PTAG_IFLUSH 0x00000001
XFS_PTAG_LOGRES 0x00000002
XFS_PTAG_AILDELETE 0x00000004
XFS_PTAG_ERROR_REPORT 0x00000008
XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010
XFS_PTAG_SHUTDOWN_IOERROR 0x00000020
XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040
XFS工具:
mkfs.xfs: 创建 xfs 文件系统
xfs_admin: 调整 xfs 文件系统的各种参数
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
xfs_check: 检测 xfs 文件系统的完整性
xfs_bmap: 查看一个文件的块映射
xfs_repair: 尝试修复受损的 xfs 文件系统
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系统的磁盘配额
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
xfsdump: 增量备份XFS文件系统
xfsrestore: 恢复XFS文件系统
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
xfs_freeze: 暂停(-f)和恢复(-u)xfs 文件系统
xfs_info:查询XFS文件系统信息
xfs_estimate: 评估XFS文件系统的空间
xfs_repair: 修复XFS文件系统
xfs_mkfile: 创建XFS文件系统
xfs_rtcp: XFS实时拷贝命令
xfs_ncheck: 从i节点号生成路径
xfs_io: 调试XFS I/O路径
xfs_logprint: 打印XFS文件系统日志
示例:
检查文件系统:先确保umount
xfs_check /dev/sdd(盘符); echo $?
返回0表示正常
修复文件系统:
xfs_repair /dev/sdd (ext系列工具为fsck)
根据打印消息,修复失败时:先执行 xfs_repair -L /dev/sdd( 清空日志,会丢失文件), 再执行 xfs_repair /dev/sdd, 再执行xfs_check /dev/sdd 检查文件系统是否修复成功。
增大XFS文件系统:先用lvextend扩大XFS所在的LUN,
如: lvextend -L +5G/dev/mapper/lun5
xfs_growfs /demo (lun5在扩大之前已经格式化为XFS并挂载在/demo下 )
df -h 查看文件系统变化
mkfs.ext4 -b block-size
-c 坏块测试
-l filename从文件读坏块列表
-C cluster-size 簇大小 (大块分配持性)
-D 使用direct I/O
-E 扩展属性
mmp_update_interval=MMP更新时间间隔
stride= 条块大小(RAID组中每个条带单元chunk大小)
stripe_width= 条带大小 (单位为block)
resize= 保留在线调整时的空间大小
lazy_itable_init=0/1inode表不完全初始化
lazy_journal_init=0/1日志inode表不完全清0
test_fs 设置文件系统体验标志
-F (force 强制)
-f fragment-size
-g blocks-per-group
-G number-of-groups
-i bytes-per-inode
-I inode-size
-j -J日志属性 (size,device)
-L 设置volume 标签
-m 指定保留空间百分比,为root用户
-n 不真正创建文件系统,只是显示创建的信息
-O feature 指定创建文件系统时的持性(/etc/mke2fs.conf)
bigalloc 使能大块分配(cluster-size)
dir_index 使用哈希B树加速目录查找
extents 使用extents替代间接块
filetype 在目录项中存储文件类型信息
mount -o 选项
EXT4:选项
刷新cache时间:ext3,ext4
commit=nsec文件系统CACHE刷新时间
stripe= 条带大小(以block为单位)
delalloc 开启延时块分配
nodelalloc 禁止延时块分配
barrier 开启write barrier
nobarrier 禁止write barrier
模式:
data=writeback 性能,高; 写回模式,先写metadata(代表日志),后写data
data=ordered 性能,中; 命令模式,[先写data,后写metadata]==事务,最后写metadata journal
data=journal 性能,低: 日志模式, 先日志(metadatajournal,data journal),后数据(metadata,data)
文件系统属性:
1,/proc/fs/ext4/设备/options 查已挂载文件系统属性
rw 文件系统挂载时的读写策略
delalloc 开启延时块分配
barrier 开启write barrier(提供写顺序)
user_xattr
acl
resuid=0 可以使用保留块的用户ID
resgid=0 可以使用保留块的组ID
errors=continue 文件系统出错时动作
commit=5 文件系统刷cache的时间间隔
max_batch_time=15000us 最大的等待合并一起提交的时间,默认15ms
min_batch_time=0us 最小的等待合交一起提交的时间,0us
stripe=0 多块分配时和对齐的块数,对于raid5/6,大小为数据磁盘数*chunk大小
data=ordered 文件系统挂载模式
inode_readahead_blks=32 先行读入缓冲器缓存(buffercache)的inode表块(table block)数的最大值
init_itable=10
max_dir_size_kb=n 目录大小限制
mb_order2_req=2 对于大于该值(2的幂次方)的块,要求使用Buddy检索
lifetime_write_kbytes 文件系统生成后写入的数据量(KB)
mb_stats 指定收集(1)或不收集(0)多块分配的相关统计信息。统计信息在卸载时显示 0(禁用)
max_writeback_mb_bump 进行下一次inode处理前尝试写入磁盘的数据量的最大值(MB) 128
mb_stream_req=0 块数小于该值的文件群被集中写入到磁盘上相近的区域
mb_group_prealloc 未指定挂载选项的stripe参数时,以该值的倍数为单位确保块的分配 512
session_write_kbytes 挂载后写入文件系统的数据量(KB)
2,/sys/fs/ext4/设备/
mb_stream_req=16 块数小于该值的文件群被集中写入到磁盘上相邻的区域
inode_readahead_blks=32 控制进行预读的inode表的数量
inode_goal 下一个要分配的inode编号(调试用) 0(禁用)
delayed_allocation_blocks 等待延迟分配的块数
max_writeback_mb_bump=128 进行下一次inode处理前尝试写入磁盘数据量的最大值(MB)
mb_group_prealloc=512 未指定stripe参数时,以该值的倍数为单位确保块的分配
mb_max_to_scan=200 分配多块时为找出最佳extent而搜索的最大extent数
mb_min_to_scan=10 分配多块时为找出最佳extent而搜索的最小extent数
mb_order2_req=2 对于大于该值的块(2的幂),要用buddy算法。
mb_stats=0 指定收集1,与不收集0多块分配的相关统计信息,统计信息会在卸载时显示
reserved_clusters
lifetime_write_kbytes 只读,记录已经写入文件系统的数据量(kb).
session_write_kbytes 只读,记录此记挂载以来已写入的数据(kb)