一、Linux文件系统的特性
1、super block(超级块):记录整个文件系统的信息,包括 block 与 inode 的总量,已经使用的 inode 和 block 的数量,未使用的 inode 和 block 的数量,block 与 inode 的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。 可通过dumpe2fs查询
2、date block(数据块,也称作 block):用来实际保存数据的,block 的大小(1KB、2KB 或 4KB)和数量在格式化后就已经决定,不能改变,除非重新格式化每个 blcok 只能保存一 个文件的数据,要是文件数据小于一个 block 块,那么这个 block 的剩余空间不能被其他文件使用;要是文件数据大于一个 block 块,则占用多个 block 块。Windows 中磁盘碎片整理 工具的原理就是把一个文件占用的多个 block 块尽量整理到一起,这样可以加快读写速度
3、inode(i 节点)128字节:用来记录文件的权限(r、w、x),文件的所有者和属 组,文件的大小,文件的状态改变时间(ctime),文件的最近一次读取时间(atime),文件的最近一次修改时间(mtime),文件的数据真正保存的 block 编号。每个文件需要占用 一个 inode
二、常见的一些磁盘管理命令
使用ll 命令查看到的目录大小是不准的,一般都是4k或者是4k的倍数,这是因为ll只会统计目录下的文件名占用多大空间(占用的block大小)。使用du 命令可以查看目录的总大小
du 与 df 的区别:du 是用于统计文件大小的,统计的文件大小是准确的;df 是用于统计空间大小的,统计的剩余空是准确的(因为零时文件和垃圾文件都会占用空间)
fsck 文件系统修复命令
dumpe2fs显示磁盘状态
stat查看文件的详细时间
fdisk MBR分区 (SWAP分区大小可以添加),parted GPT分区
free -h查看内存的状态
buffers:主要用于I/O写,将应用程序的多次零碎写事件,集中到一个缓冲区(即buffers),然后再一次性写入磁盘中,这样就提高了写磁盘的效率。
cached:主要用于提升读取相关页面的效率,内核会将经常访问的页面放到cached中,这样就提高了页面的命中率,cached越大,命中率就越高,就减少了I/O读请求。
磁盘配额:
限制用户和用户组磁盘空间和文件个数
LVM逻辑卷管理
物理卷---->卷组----->逻辑卷