文件系统管理
文件系统是Linux系统存放文件的空间。文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统。我们以ext4文件系统为例来说明对文件系统的管理。
UFS —— Unix Filesystem
1.ext4文件系统
1.基本概念
软件包:e2fsprogs
ext4文件系统是Linux上主要的文件系统,它的早期是ext2文件系统,ext2全称第二代扩展文件系统(Second Extended filesystem),是为了替代早期ext文件系统开发的。ext2发展后的文件系统是ext3,ext3发展后的文件系统是ext4。
人们在存储文件时,有各种不同的需求,为了满足不同的需求,文件系统有各种不同的属性,对这种不同属性的设置、修改就是对文件系统的管理。
文件系统的所有属性都有缺省值,
文件系统的属性有很多,我们不可能对所有的属性进行探讨。我们只讨论实际中常用的属性。其他属性请参看man ext4及文件系统命令的帮助。
2.使用的命令:
mkfs.ext4 —创建ext4文件系统会。调用mke2fs — 创建 ext2/ext3/ext4 文件系统
tune2fs — 调整、显示文件系统参数
dumpe2fs — 列出并转储文件系统的信息,可用于查看文件系统的属性。
e2fsck — 检查修复文件系统
resize2fs --重置LV大小,自动把新增空间制作文件系统 同时i-node也会变化
e2label --设置卷标
3.属性:
1、块大小
2、inode
文件系统可以存储的文件的数量不能超过inode的值,即使还有空间,但文件个数=inode值,文件系统仍然是满的。
3、mount选项
文件系统在挂载时,缺省的挂载选项,这些选项不是在执行mount命令时制定,而是在文件系统自己具有。/etc/fstab文件中的第四字段为‘defaults‘就是标明使用文件系统自带的挂载选项。
卷标:用于标示该文件系统的字符串。是由人为指定的。
块大小和i-node:只能在创建文件系统时指定。一旦文件系统创建完成,块大小不能更改。
2.查看文件和文件系统
1.查看文件占据占据块大小
文件系统存储文件是按块(block)存放文件的,给文件分配的最小空间单位就是块。文件系统在创建时,会按照一个统一的大小,把空间划分成N多的存储块。存储文件时,分区会根据文件的大小,给其分配足够多的block块,若块中空间未能存满,也不再存其他我文件。
我们使用
ls -l --查看到的是文件的实际大小
但使用
du f1 --查看文件占据的分区空间大小,即块
du /var --查看目录及其内容占的块大小
du -s /var --只查看目录
ext4系统在分区格式化时默认设置的块大小和空间大小有关,超1G时是4KB。
文件系统的信息可使用tnue2fs命令查看:
tune2fs -l 设备名
注:块的大小只能在格式化时做设置,之后不可更改,除非重新格式化
2.dumpe2fs查看文件系统的超级块和块组的信息
dumpe2fs 命令可列出磁盘设备上文件系统的超级块和块组的信息,并转储(Dump)文件系统信息。
dumpe2fs 命令格式如下:
dumpe2fs <参数> <设备>
主要参数说明如下:
* -h — 只显示超级块中的信息,不显示块组信息
-i — 从指定的文件系统image 文件中读取文件系统信息
-x — 显示详细的块分组信息,块号使用十六进制格式
-f — 强制显示文件系统的信息,即使文件系统中含有无法识别的信息
-b — 显示文件系统中保留做坏块的信息
-V — 显示版本号
3.Inode节点:
1.基本概念
inode节点简称i节点
文件系统创建时,会把所有的block,划分成两大区域:inode区、数据区
inode区:一个inode对应一个文件,即一个文件会占用一个inode,inode会占用一定的空间用于存储该文件的元数据信息。
文件元数据:权限、大小、所属、创建时间、更改时间、地址指针(指向文件在数据IO区占用的空间的地址编号)等。
数据区,根据文件的大小,给其分配足够多的block,存储文件内容
2.查看命令
ls -i ---查看的文件的inode编号
stat f1 ---查看文件的属性,即inode节点中的信息
df -h ---查看各分区数据区的使用率
df -i ---查看各分区inode区的使用率,显示单位:个数
注:每个文件系统的第一个inode,不用与存储文件属性,专用于存储本分区的属性,如:分区大小,地址范围,使用率等
该块称为 超级块(supper block)
第31个inode,作为超级的备份块,称为次超级块
4.mke2fs命令创建文件系统
1.主要参数说明如下:
mkfs.ext4 -b 块值 -- 指定文件系统数据块的大小,有效的值为1024、2048和4096。
mke2fs <参数> <设备> --参考man mkfs.ext4
* -N — 指定 inode 数量,覆盖使用-i定义计算出的值。
* -L — 设置所创建文件系统的标签
-c — 在创建文件系统之前检查指定的设备上是否有坏快。如果连定义2次该参数,系统将采用慢速的读/写方式来代替较快的读方式来检查坏快
-i — 定义多少字节使用一个inode,即bytes/inode,值越大,文件系统上的 inode越少。该值不能比块大小小,因为1个块不能被2个文件用。
-I — 每个inode所使用的字节数。缺省512,不能比128小,太大会影响空间使用率,
-j — 创建使用ext3 卷号的文件系统
-J <扩展参数>—为使用ext3 卷号的文件系统指定一些扩展参数
-D — 使用直接IO读写
-n — 演习创建文件系统
-F — 强制执行
2.ext4配置文件和ext文件系统的缺省特性
/etc/mke2fs.conf --创建ext4文件系统的参数文件
可以再该文件中修改创建时的缺省值
ext2文件系统的缺省特性:
ext_attr resize_inode dir_index filetype sparse_super
ext3文件系统的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super
ext4文件系统的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super needs_recovery extent 64bit flex_bg huge_file uninit_bg dir_nlink extra_isize
5.tune2fs 命令调整文件系统参数
对于已创建的文件系统,可使用tune2fs 命令来调整某些参数。
1.tune2fs 命令格式
tune2fs <参数> <设备> --具体参数请参考man tune2fs
主要参数说明如下:
-j — 调整文件系统为ext3 类型,为系统增加ext3 的日志
-J — 更详细的日志控制
* -l — 列出文件系统supper block 的内容,经常用于查看文件系统的元数据。
* -L — 为文件系统设置卷标
-m — 指定文件系统保留的块,百分比表示
* -o[^] — 设置或取消挂载参数
-O — 设置文件系统特性,如ext3转ext4,增加特性即可
* -c max-mount-counts --满足挂载次数就检查
* -C mount-count--挂载次数
* -i interval-between-checks d天m月 w周 --距离下次检查的时间
-U clear — 清除文件系统的 UUID
-U random — 为文件系统产生随机的UUID
-U time — 为文件系统产生基于时间的 UUID
tune2fs -O extents,uninit_bg,dir_index --增加系统特性
2.挂载参数
挂载说明
两个分区挂载到同一目录下,后挂的生效,先挂的被隐藏在内部,卸载先卸载后挂的分区允许挂载到非空目录下,原目录下内容会被隐藏,只有卸载分区后,才会显现建议:挂载前,一定确认挂载点是空目录
tune2fs -o ^acl /dev/sdb1 --取消用户acl扩充特性
user_xattr 使能用户设置的扩充特性。
acl 使能扩充的访问控制。
3.示例
tune2fs -c 5 /dev/sdb1 ---设定扫描频率,该分区每挂载5次后,自动检查一次
tune2fs -i 5d /dev/sda7 ---设定每5天扫描一次 5m 月 5w 周
tune2fs -c -1 /dev/sda7 ---设置为负一 ,表示取消
tune2fs -i 0 /dev/sda7 ---设置为0 零 ,表示取消
tune2fs -o ^acl /dev/sdb1 --取消用户acl扩充特性
tune2fs -O extents,uninit_bg,dir_index --增加系统特性
6.e2fsck命令修复文件系统
如果文件系统出现问题,可以使用e2fsck 工具检查并修复。
1.e2fsck格式与参数
e2fsck 命令格式如下:
e2fsck <参数> <设备>
主要参数说明如下:
-p — 自动修复
-a — 同-p
-B — 指定区块的大小,单位为字节
-c — 一并执行badblocks,以标示损坏的区块
-d — 显示排错信息
-f — 即使文件系统没有错误迹象,仍强制地检查正确性
-F — 执行前先清除设备的缓冲区
-y — 以非交互方式执行,所有问题均设置以“yes”回答
2.传统的UFS检查方式和mkfs与mke2fs
fsck -t ext4 /dev/sda7 ---扫描分区
7.文件系统下的文件扩充特性
1.查看特性及特性说明 lsattr 文件名
lsattr 文件名
特性说明:有用 ASacdisu 表示的几种特性
A 它的atime(访问时间)记录不会改变。这可以在电脑系统中避免某些磁盘I/O处理.
a 只能在添加模式下打开用于写入。只有超级用户可以设置或清除该属性。
d 文件不能对其运行 dump(8) 程序进行备份。
i 文件不能进行修改:你既不能删除它, 也不能给它重新命名,你不能对该文件创建硬链接, 而且也不能对该文件写入任何数据。只有超级用户可以设置或清除该属性.
S 对文件的修改会同步写入到磁盘上。和 sync挂载选项有相同的效果。
E 扩充特性
2.修改属性:chattr
chattr [-RV] +-=属性 文件名
R:递归 v:verbose
8.xfs系统的一些命令
man -k xfs --查看有那些命令
mkfs.xfs --创建xfs文件系统
xfs_info --查看
xfs_admin --管理
xfs_growfs --扩充
xfs_repair --检查