您的位置:首页 > Web前端 > Node.js

Inode/硬链接/软链接

2014-08-11 23:55 543 查看
以下2台服务器的不同分区,分别显示不同的"inode size" ,1个为128byte 另一个为256byte。
CH-HOV-FTP是采用ext3分区格式,而www服务器采用的是ext4分区格式
--------------------------------------------------------------------------------------------------------------------
CH-HOV-FTP1:/home # df -k /dev/sda8
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda8 2087840 84900 1897716 5% /boot
CH-HOV-FTP1:/home # tune2fs -l /dev/sda8 | grep Inode
Inode count: 131648
Inodes per group: 7744
Inode blocks per group: 242
Inode size: 128
CH-HOV-FTP1:/home # df -i /dev/sda8
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda8 131648 41 131607 1% /boot
CH-HOV-FTP1:/home # tune2fs -l /dev/sda8 | grep "Block size"
Block size: 4096
---------------------------------------------------------------------------------------------------------------------
[root@www huxiaoming]# df -k /dev/sdb1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 2071384 73408 1892752 4% /var/log
[root@www huxiaoming]# tune2fs -l /dev/sdb1 | grep Inode
Inode count: 131648
Inodes per group: 7744
Inode blocks per group: 484
Inode size: 256
[root@www huxiaoming]# df -i /dev/sdb1
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdb1 131648 37 131611 1% /var/log
[root@www huxiaoming]# tune2fs -l /dev/sdb1 | grep "Block size"
Block size: 4096
----------------------------------------------------------------------------------------------------------------------
硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节。那么inode怎么能比最小的sector还小呢?
这个有个很容易混淆的概念“inode size”与"bytes-per-inode" ,这里的inode size指的是每个inode能包含多少byte数据。例如照片拍摄信息,修改时间 等等等。
The inode-size (
-I
) is something different than the bytes-per-inode (
-i
) setting. The inode-size determines the size of a single inode, larger inodes can contain more pointers to blocks, reducing the need for indirect blocks at the cost or increased disk usage. The bytes-per-inode setting sets a ratio that will be used to determine the maximum number of inodes. None of these two values can be changed after the filesystem had been created.
假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%. 若linux 2KB设置一个inode ,一个inode就并不一定就用掉2048 byte, 也不是说files allocation的最小单位是2048 byte, 它仅仅是代表ext3 filesystem中inode table/data area分配空间的比例是128/2048,也就是1/16,而ext4中的分配比例是1/8。
正真和工作关联比较多的是inode number (数量) ,如果设计的不好,某分区inode用完,有可能导致某分区无法建立新文件。
Inode 数量= 文件系统大小/bnpi
1024*1024/8 = 131072 也就是一个1G的文件系统,当以1/8为大小划分inode 默认的inode数量是131072
nbpi:The number of bytes per inode,每个inode所占用的字节数,它是文件系统inode数多少的决定因素
在Linux 文件系统中,inode值相同的文件是硬链接文件,也就是说,不同的文件名,inode可能是相同的,一个inode值可以对应多个文件。
[root@www huxiaoming]# df -i 查看inode使用数量
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 640848 7154 633694 2% /
tmpfs 489727 8 489719 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot
/dev/sda3 512064 153 511911 1% /home
/dev/sda5 320000 124 319876 1% /tmp
/dev/sda6 320000 88238 231762 28% /usr
/dev/sda7 320000 3509 316491 2% /var
/dev/sdb1 131648 37 131611 1% /var/log
[root@www huxiaoming]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.7G 398M 8.8G 5% /
tmpfs 1.9G 156K 1.9G 1% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
/dev/sda3 7.7G 147M 7.2G 2% /home
/dev/sda5 4.9G 138M 4.5G 3% /tmp
/dev/sda6 4.9G 2.9G 1.7G 64% /usr
/dev/sda7 4.9G 454M 4.2G 10% /var
/dev/sdb1 2.0G 72M 1.9G 4% /var/log
---------------------------------------------------------------------------------------------------------------------
硬连接:(在单个文件系统 -分区中完成)
例如我新建一个/backup文件夹 把/etc/passwd 做个硬链接过去到 /backup/passwd
我们可以看到 inode是相同的




我们这里把etc/paswd这个重要的文件删除, 其实只删除了一个链接,而此时实质的block还在,我们就可以从里面把文件拷回来。
是不是很像netapp的snapshot !




----------------------------------------------------------------------------------------------------------------------
软连接 也叫symbolic link 可以理解为windows的快捷方式。 只要源文件删除了 快捷方式也就没用了
[root@www ~]# ln [-sf] 来源档 目标档
选项与参数:-s  :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link-f  :如果 目标档 存在时,就主动的将目标档直接移除后再建立!
[root@www /]# ln -s /test.txt /backup/
[root@www /]# cat /backup/test.txt
it's a test file
[root@www /]# cat /test.txt
it's a test file



[root@www /]# rm -f /test.txt



[root@www /]# cat /backup/test.txt
cat: /backup/test.txt: No such file or directory
此时软连接就失效了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 inode