UNIX文件系统备份与管理技术详解
1. fscat命令与快照文件系统读取
在UNIX文件系统中, fscat 命令基于 VX_SNAPREAD ioctl 实现,其作用是从文件系统中读取指定的块。在读取时,会参考快照文件系统上的位图,以此来决定是从被快照的文件系统还是从快照本身返回块。
以下是运行 fscat 命令时使用 truss 输出的示例:
13672:
open64("/snap", O_RDONLY)
= 3
...
13672:
ioctl(3, 0x56584680, 0xFFBEFCF4)
= 5120
13672:
write(1, "\fD5 , nD4F89E 0E6 xDF o".., 5120) = 5120
13672:
ioctl(3, 0x56584680, 0xFFBEFCF4)
= 5120
13672:
write(1, "95DB .9A v04B4938C B 1F".., 5120) = 5120
从上述输出可以看出,首先打开快照文件系统,接着执行一系列 VX_SNAPREAD ioctl 命令从快照中读取块,最后将读取的数据写入标准输出。
2. VxFS快照的实现原理
VxFS快照在磁盘上的布局有其特定方式。超级块是在创建快照时,对被快照文件系统超级块的一个复制,不过会有少量修改。
位图为被快照文件系统中的每个块分配
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



