Linux常见文件系统类型
常见的包括ext2、ext3、ext4、btrfs、xfs等等,当然还可以通过加载模块的方式来支持更多的文件系统。
Linux文件系统介绍
#ext2文件系统
第二代扩展文件系统(second extended filesystem),用于替代ext,在1993年1月的时候加入到linux内核中,是linux上的第一个商业级文件系统。ext2文件系统也是采取将文件数据存放到数据块中的方式来存储数据的,这些数据块的大小可以在创建文件系统时指定,对于存放的每个文件和目录都会有一个inode指定,文件系统中所有的inode都是通过inode表来进行记录的,一定数据量的块就会成为一个块组。
在ext2文件系统中,整个分区的文件系统信息都被存放在超级块中,并在每个块组的开头都会有相同的备份。
在ext2文件系统中最大的缺点就是无日志功能,它不支持日志记录,这样很容易在一些场景下造成数据丢失,这个重大的缺点导致ext2无法在关键应用中使用。
#ext3文件系统
第三代扩展文件系统(Third extended filesystem),在Centos5下默认的文件系统就是ext3,为了拟补ext2没有日志记录的缺陷,于是有日志记录的ext3文件系统诞生了,ext3文件系统是由ext2文件系统发展而来,所以ext3文件系统完全兼容ext2文件系统,并且支持从ext2直接转换为ext3,由于这种特性,所以当时很多老用户都升级使用了ext3文件系统。
ext3文件系统写入数据时,会先在日志中写入,然后在开始真实的写入,写入数据完成后会将之前写入日志的内容删除,这样如果遇到问题需要修复时,只需要检查日志即可。
当时在设计ext3的时候就是对ext2的高度兼容,很多磁盘上的结构都和ext2相似,这样ext3缺乏了很多最新设计的功能,比如动态分配inode和可变块大小,ext3在被挂载写入的时候是不能进行fsck的。
#ext4文件系统
第四代扩展文件系统(Fourth extended filesystem),是ext3的增强版,在Centos6系统中默认的文件系统系统就是ext4,和ext2到ext3一样,ext3到ext4也可以在线迁移的。
ext3文件系统下,一个目录下最多只能用32000个子目录,ext4子目录可达到64000(甚至可以更多)。
ext4文件系统下,最大单个文件大小可以达到16TB,最大文件系统大小为1EB。
ext4使用校验和特性来提高文件系统的可靠性,这个特性的好处就是可以安全地避免日志处理时磁盘I/O等待,稍微提高一些性能。
ext4将未使用的区块标记在inode中,这样可以在磁盘检查时将这些区块跳过,从而节约大量的文件系统检查时间。
ext系列的文件系统都不支持inode动态分配。
#xfs文件系统
xfs高性能64位日志文件系统,在Centos7系统中默认的文件系统就是xfs,最大文件系统大小8EB,xfs对文件系统元数据提供了日志支持,当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志,
xfs的日志被保存在磁盘块的循环缓冲区上,不会被正常的文件系统操作影响。
xfs日志所保存的是“逻辑”条目,以更加容易理解的方式来描述当前正在进行的操作,如果发生系统崩溃宕机,可以根据日志中的记录来重做并完成崩溃前一时刻发生的系统操作,可以快速的恢复可能被破坏的文件,恢复的速度不受文件系统大小的影响,取决于需要重做的操作系统数量。
xfs文件系统支持动态分配inode,所以不存在inode不够的情况,xfs文件系统的创建速度、恢复速度比ext系列更快。
#查看linux系统支持的文件格式类型
mkfs.(通过双击TAB键查看系统文件类型)
![](https://i-blog.csdnimg.cn/blog_migrate/4e6674517fcf066e3f6169b7ae5faac6.png)
Linux磁盘管理
#在Linux系统中磁盘的管理也是整个系统的重中之重,磁盘的管理将会影响到系统整个的性能问题。
#常见查看磁盘空间命令
#查看磁盘空间占用情况(df)
#df --用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
#命令使用选项
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
#查看df命令帮助
#df --help
![](https://i-blog.csdnimg.cn/blog_migrate/a95180b191a62c1c8ac11cb3c76fa78b.png)
#常见df命令使用场景
#在linux系统中df常见方式:查看空间占用情况、inode查看
![](https://i-blog.csdnimg.cn/blog_migrate/7571873637e29d925f7b933cb5fb70b9.png)
#对文件和目录磁盘使用的空间的查看(du)
命令du选项
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
示范:
du --max-depth=1 -h /etc
#查看磁盘信息之 fdisk
fdisk -l
可以显示磁盘大小以及磁盘分区信息。
![](https://i-blog.csdnimg.cn/blog_migrate/04411ea3da254ec91ef50e3b9a4715ed.png)
#查看磁盘信息之stat
stat 命令
后面可以直接跟上文件或目录,用于显示文件/目录或文件系统的大小和其他统计信息。
![](https://i-blog.csdnimg.cn/blog_migrate/c57ff06bb465b3979b749135f69d8a22.png)
Linux磁盘分区工具
fdisk分区工具
fdisk 思路概述
1)查看磁盘现有分区 (命令:fdisk -l)
(如果没有显示新添加的磁盘,可以通过磁盘热刷新命令进行刷新,再进行查看)
(添加一个scandisk别名热刷新,添加成功执行scandisk刷新)
alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'
2)开始分区某一块磁盘,如/dev/sdb (命令:fdisk /dev/sdb)
3)用fdisk的内置命令进行分区 先输入【p】 查看当前分区表,再输入【n】new一个新的分区,再根据给出的提示(如选择分区类型和分区号)输入相应的fdisk内置命令给新的分区设置参数。
4)所有分区创建完成后,输入fdisk内置命令【w】保存退出即可。
fdisk工具使用帮助
![](https://i-blog.csdnimg.cn/blog_migrate/2873c8856e91cb48847d70de3be76177.png)
fdisk磁盘 分区
fdisk /dev/sdb #新添加的磁盘地址
![](https://i-blog.csdnimg.cn/blog_migrate/37965369d2cb5344c0377ca110be995c.png)
磁盘分区正常使用
#新创建的磁盘分区正常使用步骤!
1)一定要先创建文件格式类型(格式化磁盘分区)
2)创造挂载点并进行挂载
3)配置开机自动挂载
![](https://i-blog.csdnimg.cn/blog_migrate/c493b52b1798eb5a4e85b593e883003d.png)
#配置开机自动挂载
![](https://i-blog.csdnimg.cn/blog_migrate/46a9dbe605d9168443c825ab49bce24c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/623e1d90fc31ed005d2ce0d8c0f010d0.png)
parted分区工具
准备中。。。。。。。。。