一.链接文件
在了解链接文件两种类型之前,必须先了解的知识:
文件在Linux中被分成两部分:数据(data block)和文件元数据(inode)
inode与block
每个文件都有一个 inode(索引节点),用来存储文件的元信息。
具体存储内容:
- 文件大小(字节数)
- 权限(读写执行rwx)
- 所有者
- 创建/修改时间(时间戳)
- 数据块在磁盘上的位置(文件数据block位置)
- 链接计数(有多少个文件指向这个文件)
文件名只是一个“指向 inode 的标签”,真正的数据在 inode 和数据块中。
划重点:****文件名!=(不等)文件本身
----->就像名字,叫张三的人一堆,但每个张三都唯一(名字只是符号)
block,用来记录文件真实内容
系统访问文件三部曲:
- 系统通过文件名称找到对应inode;
- 通过inode编号,获取inode信息;
- 根据inode信息,找到block,读取数据。
1.硬链接
不同文件名指向同一个inode(同一个真实的数据源)
同一个inode意味着什么?
1)同一个文件,修改一个另一个会立即生效
2)删除:但为什么删除一个硬链接不影响另一个?
先揭晓答案:只有当链接计数变为 0 时,系统才会真正删除 inode 和数据块
“一个文件,多个名字”。
删除 一个链接` 只是删了一个“名字”,不影响其他名字访问文件内容。
另一个仍然指向同一个 inode,数据完好无损
2.软链接
快捷方式(不理解的话就自己试着在win/mac创一个)
链接文件inode指向源文件block,访问链接文件时=访问源文件block
与硬链接区别:
链接文件与源文件inode以及文件名称不一样,但指向同一block;
主要用途:代码发布和版本升级
易混淆:ln -s
用法:分清楚哪个是源文件
1)ln -s
<目标文件或目录> <链接文件名>
2)ll
查看文件时:
[root@node~]#:ls -l
lrwxrwxrwx 1 user user 15 Apr 5 10:00 mylink -> /path/to/target
mylink -> /path/to/target
表示链接名和指向的目标
二.克隆
链接克隆 = 节省空间、依赖父镜像;完整克隆 = 独立运行、性能更好。
1.链接克隆
基于一个父虚拟机(或快照) 创建的克隆体,它共享父镜像的磁盘数据,只保存与父镜像的差异部分。
2.完整克隆
父虚拟机的完全独立副本,包含操作系统、应用程序和所有数据的完整拷贝,不依赖原始虚拟机。
3.适配场景
开发测试用“链接”,生产部署用“完整”。