Linux系统的快照是什么,linux – 文件系统快照与简单复制文件有何不同?
发布日期:2022-02-18 13:08:12 浏览次数:6 分类:技术文章

本文共 1239 字,大约阅读时间需要 4 分钟。

通过做这个,

# btrfs subvolume snapshot /mnt/1 /mnt/1/snapshot

# tree /mnt/1

/mnt/1

├── a

├── snapshot

│ ├── a

│ └── subv

└── subv

└── b

3 directories, 3 files

我们可以在btrfs上从/ mnt / 1创建快照.

我的问题是:

使用快照比使用rsync简化备份文件系统有什么好处?

解决方法:

快照可以被视为复制的一个特例,但不同于复制.

我不是很熟悉Btrfs的细节,但以下内容适用于ZFS,Btrfs从中吸取了很多灵感.显然是Btrfs snapshots are actually read/write,使它们与ZFS file system clones更相似,但这并没有改变它们与文件副本的关系.

快照是文件系统状态的只读时间点副本.

这是有效的,因为Btrfs和ZFS都是所谓的Copy On Write文件系统.每当更改数据块时,更改的数据将写入与原始副本不同的磁盘上的位置.这样做的主要好处是它大大提高了可靠性:因为需要覆盖的数据非常少,所以导致数据丢失的问题可能性大大降低.但是,还有其他优点.一个这样的优点是您可以有效地进行文件系统级快照.一个主要的缺点是,随着存储空间的填满,它会大大增加存储碎片,因为块分配器很难在任何地方找到物理存储副本的地方.事实上,建议到keep ZFS pool usage below 80%,大概不是因为这个原因.

快照基本上告诉文件系统代码“仍然需要这些块”.因此,它们不会被回收并可能被新数据覆盖.但是,它们仍然引用相同的旧数据块.

现在,与使用rsync,cp,cat或其他任何东西简单地制作副本有何不同?它是不同的,因为在数据实际更改之前,不会生成额外的数据物理副本.

这就像立体声的硬连接;在以不同名称访问文件时,使用相同的数据物理磁盘副本.不同之处在于,对于硬链接,对一个名称下的文件的更改会传播到每个其他副本,因为它们实际上引用了相同的数据块.通过写时复制和快照,更改的块仅显示在更改的位置. (对于只读快照,这意味着在文件的“当前”版本中.)您还只需要重写实际已更改的块;其余的块正好留在原处.例如,对于快照files containing VM disk images这样的事情,这可能会使存储在磁盘上所需的数据量产生巨大差异.

所以,回顾一下:

>快照只需要更改块所需的磁盘空间.复制需要的份数乘以文件大小.

>快照是只读或读/写,具体取决于文件系统设计.副本是按设计读/写的.

>副本是独立的.快照引用与文件当前版本相同的数据块,直到文件的当前版本发生变化(全部或部分).

标签:linux,backup,filesystems,snapshot,btrfs

来源: https://codeday.me/bug/20190812/1643981.html

转载地址:https://blog.csdn.net/weixin_28871097/article/details/116599001 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何在空硬盘Linux系统,Linux系统如何新增一块硬盘
下一篇:debian linux忘记密码,debian ubuntu linux 忘记root密码的重置方法

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月10日 03时38分53秒