首页 > 编程知识 正文

linux硬实时(linux)

时间:2023-05-06 02:32:18 阅读:96788 作者:1309

概述

Linux,一切都是一个文件,每个文件都有一个inode。索引节点与文件关联后,系统将通过索引节点号而不是文件名来标识文件。在访问文件时,您将首先找到索引节点,并通过索引节点中记录的数据块位置找到文件。

00-1010虽然每个文件都有一个索引节点,但也有可能多个文件的索引节点是相同的,即索引节点号、元数据和块位置都是相同的。这是什么情况?假设这些具有相同索引节点的文件使用相同的索引节点记录,因此它们都表示相同的文件。这些文件所在目录的数据块中的索引节点指针的目的地是相同的,但是每个指针对应的文件名彼此不同。这种具有相同索引节点的文件在Linux中被称为“硬链接”。

硬链接文件的索引节点都是一样的,每个文件都有一个“硬链接数”属性。使用ls -l的第二列是硬链接的数量,这表明文件有几个硬链接。

例如,下图描述了目录1中的文件名1及其硬链接目录2/名称2,它们的信息节点和数据块位于右侧。还可以看出,硬链接文件之间唯一的区别是它们目录中的记录不同。请注意,下图中有一列链接计数,它是标记硬链接数量的属性。

为每个文件创建一个硬链接本质上是多了一个指向索引节点记录的索引节点指针,并且硬链接的数量增加了1。

删除文件的本质是删除文件所在目录中对应的inode指针,所以也是为了减少硬链接的数量。因为块指针存储在信息节点中,所以删除数据是不正确的。如果有指向信息节点的其他指针,则文件的块指针仍然可用。当硬链接数为1时,删除文件实际上就是删除文件。此时,索引节点记录中的块指针也将被删除。

不能跨分区创建硬链接,因为不同文件系统的信息节点号可能相同。如果允许创建硬链接,则在复制到另一个分区时,索引节点可能会与该分区已经使用的索引节点号冲突。

硬链接创建方法:ln file_target link_name。

00-1010软链接是字符链接,链接文件默认是指字符链接文件(注意不是字符设备),用‘l’表示其类型。

不能跨文件系统创建硬链接,否则信息节点号可能会冲突。因此,实现了软链接来建立跨文件系统的链接。由于它是跨文件系统的,软链接必须有自己的信息节点号。

软链接在功能上相当于Windows系统中的快捷方式。它指向原始文件。如果原始文件损坏或消失,软链接文件将被损坏。可以认为软链接索引节点记录中的指针内容是目标路径的字符串。

如何创建:lns source _ file soft link _ name,记住是source _ file-link _ name的指向关系(反向箭头)。

查看软链接的值:readlink软链接_name

设置软链接时,虽然source_file不需要绝对路径,但建议给出绝对路径。

1 、硬链接

信息节点大小是128字节的倍数,最小值是128字节。它有一个默认大小,其默认值在/etc/mke2fs.conf文件中指定。不同文件系统的默认值可能不同。

# cat /etc/mke2fs.conf

还观察到块大小和索引节点分配比率inode_ratio的默认值也记录在该文件中。Inode_ratio=16384意味着每16384字节(即16KB)分配一个Inode号。因为默认数据块大小为4 KB,所以每4个数据块分配一个信息节点号。当然,这些分配的索引节点号只是预先分配的,并不意味着它们都将被使用。毕竟,每个文件都将被分配一个信息节点号。但是分配的inode本身会占用块,本身256字节的大小也不算小,所以inode号的浪费就代表了空间的浪费。

知道了索引节点的分配比例,我们就可以计算出每个块组分配了多少个索引节点号,索引节点表占用了多少块。

如果文件系统中存储了大量的电影等文件,那么索引节点号就会被浪费,索引节点占用的空间也会被浪费。但是我没办法。文件系统不知道您的文件系统用于存储什么类型的数据、有多少数据以及有多少数据。

2 、软链接

Ext为特殊功能保留了一些索引节点,具体如下:有些可能并不总是准确的,具体索引节点号对应哪些文件可以通过‘find/-inum NUM’查看。

虚拟文件系统0中不存在ext4的特殊Inode编号,如/proc和/sys2根目录3 ACL索引4 ACL数据5 Boot loader6取消删除目录7保留的块组描述符inode8日志inode11第一个未保留的inode通常是丢失找到的目录,因此在Ext4文件系统的dumpe2fs信息中可以观察到fisrt inode编号可能是11或12。

请注意,/'的索引节点号是2,这将用于文件访问。

应当注意,每个文件系统将被分配其自己的索引节点号,并且不同的文件系统可能具有相同索引节点号的文件。例如:

# find/-ignore _ readdir _ race-inum 2-ls

从结果中我们可以看到,除了根inode数为2之外,还有几个Inode数为2的文件,它们是独立的文件系统,有些是虚拟文件系统,比如/proc和/sys。

后面我会分享更多关于devops和DBA的信息,感兴趣的朋友可以关注一下~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。