码迷,mamicode.com
首页 > 其他好文 > 详细

Inode/硬链接/软链接

时间:2014-08-12 03:30:23      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:服务器

以下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是相同的

bubuko.com,布布扣

   

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

是不是很像netapp的snapshot !

bubuko.com,布布扣

----------------------------------------------------------------------------------------------------------------------

软连接 也叫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

bubuko.com,布布扣

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

bubuko.com,布布扣

[root@www /]# cat /backup/test.txt

cat: /backup/test.txt: No such file or directory

此时软连接就失效了

Inode/硬链接/软链接,布布扣,bubuko.com

Inode/硬链接/软链接

标签:服务器

原文地址:http://ciscolang.blog.51cto.com/8976580/1538790

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!