Read on Write快照如何处理修改/删除?

时间:2017-07-21 21:53:34

标签: snapshot

读取写入快照将导致任何更改/更新重定向到新块。如果要追加数据,很容易看出这是如何工作的,但如果块中的数据被修改或删除怎么办?由于无法修改快照块,如何应用修改或删除的信息?它不能只是从这里出来的元数据,对吗?如果要将数据用于分析,这确实会减慢速度。

1 个答案:

答案 0 :(得分:0)

通常,您使用分层文件系统。每个快照都会创建一个新图层,当您要求提供文件元数据/文件数据时,如果当前图层中没有关于查询的数据,则查询将委托给下层的顶层。

当您删除文件时,您只需将顶层文件xxx删除即可。   修改块时,在顶层创建新块,元数据引用新层中的一个块,将其他块委托给下层。

就像docker的工作方式一样,为了更深入,您可以查看这些链接:

https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/#how-container-reads-and-writes-work-with-overlay-or-overlay2

https://docs.docker.com/engine/userguide/storagedriver/btrfs-driver/#how-the-btrfs-storage-driver-works