Linux文件系统
1. Linux文件系统有三部分组成:文件名,inode,block(真正存取数据)
可以使用: stat 命令查看文件Inode信息
2. inode的大小,inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。
(1)一个是数据区:存放文件数据;
(2)另外一个是inode区,存放inode所包含的信息。
3. 每个文件至少有一个inode号,操作系统用inode号码来识别不同的文件
使用ls -i 命令可以查看到对应文件的inode号码:
4. 查看目录下:
5. 查看目录:
6. linux 中 ctime,mtime,atime的区别:
ctime: 改变时间(change time)
mtime: 修改时间(modification time)
改变和修改时间的区别在于是修改文件的属性还是更改它的内容。
chmod a-W myfile 这是一个改变时间。
echo foo >> myfile 这是一个修改时间。
atime: 访问时间(access time)
访问时间是文件最后一次被读取的时间,因此阅读一个文件会更新它的访问时间。但是它的改变时间和修改时间并没有变化。
7. 硬链接,ln命令可以创建软件硬链接:
ln 源文件 目标文件
文件名1 - > inode1 -> blockA
文件名2 - > inode1 -> blockA
删除一个另一个不受影响(两个文件的inode号相同)。
总结:硬链接不能跨分区,不能给文件夹创建。
8. 软连接,相当于快捷方式
ln -s 源文件 软连接名称
总结:软连接可以跨分区,可以给文件夹创建。
经验之谈:
web服务器中小文件很多,导致硬盘有空间,但是无法创建文件,可能inode数被用没了。
block设置大,效率高,利用率低。
block设置小,效果低,利用率高。
一般系统默认就行。
扩展知识:
ext4文件系统 比 ext3文件系统强有什么异同:
1. ext4 支持更大的文件系统和更大的文件,可支持1EB的文件系统,支持16TB的文件。支持无限数量的子目录。无日志模式,提升性能。
2. ext3目前所支持的最大16TB文件系统和最大2TB文件。目前支持32000个子目录。