标签: snapshot

btrfs 快照数量的实际限制?

我正在考虑在我的数据驱动器上使用 btrfs,以便我可以使用snapper或类似 snapper 的东西来拍摄基于时间的快照。我相信这会让我浏览旧版本的数据。这将是我当前的异地备份的补充,因为驱动器故障会清除数据和快照。

根据我的理解,btrfs 快照不会占用太多空间(元数据和已更改的块,可能还有一些开销),因此空间似乎不是限制。

如果我有 100 万个快照(例如,两年内每分钟一个快照),假设我有足够的磁盘空间来存储数据、更改的数据和元数据,是否会造成严重破坏?

如果快照数量有实际限制,是否取决于文件数量和/或文件大小?

performance limit btrfs snapshot

25
推荐指数
3
解决办法
7631
查看次数

如何拍摄 ext4 文件系统的快照

有什么方法可以为 ext4 文件系统拍摄快照,以便我们稍后可以恢复到它?

filesystems ext4 snapshot

20
推荐指数
1
解决办法
4万
查看次数

GNU/Linux:覆盖块设备/可堆叠块设备

GNU/Linux 具有覆盖目录的联合挂载。因此,您可以在只读目录之上安装可写目录。当可写目录被卸载时,只读目录保持不变。

我正在为块设备寻找相同的功能 - 最好将可写部分存储在文件中。所以我想运行类似的东西:

device-setup /dev/newdevice /dev/read-only-device overlayfile
Run Code Online (Sandbox Code Playgroud)

如果我写入 /dev/newdevice 更改应该存储在覆盖文件中。如果我读取写入的扇区,我应该从覆盖文件中获取数据。如果我读取未写入的扇区,我应该从 /dev/read-only-device 获取数据。

有这样的工具吗?

block-device loop-device snapshot

14
推荐指数
1
解决办法
6245
查看次数

ZFS 快照到文件作为带轮换的备份

我有一个本地 FreeNAS 系统,想使用 ZFS 快照进行备份。
FreeNAS 有内置的复制任务,它使用

zfs send snapshot_name
Run Code Online (Sandbox Code Playgroud)

将快照发送到远程系统。但这需要另一端带有 ZFS 的系统。

我想将快照发送到一个文件并将这个压缩和加密的文件发送到远程机器。

这是可能的

zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
Run Code Online (Sandbox Code Playgroud)

每天我都会制作存储池的快照并将每个快照保留 30 天。
每次拍摄快照后,我都会将此快照通过管道传输到文件中。
- 快照文件 1 中包含所有文件(假设为 2GB)
- 快照文件 2 仅包含对快照文件 1 的更改(假设为 5MB)
- 快照文件 3 包含对快照文件 2 的更改;等等。

在第 31 天,snapshot_file 1 被删除(因为我只想要过去 30 天的更改)

因此,snapshot_file 2 需要保存每个文件(2GB 的 snapshot_file 1 + 5MB 更改)

但是使用这种方法每天(从第 31 天开始)必须创建一个新的 2GB 文件并将其发送到远程系统。这开销太大了。

使用管道传输到文件的快照作为具有 X 天历史记录的备份策略的最佳方法是什么?

PS:我知道有很多备份软件(例如 rdiff-backup),我可以使用它们。但我很好奇如何做到这一点。

freebsd zfs backup freenas snapshot

14
推荐指数
1
解决办法
2万
查看次数

创建快照时出错:不支持操作:不支持具有基于 pflash 的固件的 VM 的内部快照

我正在使用 Arch Linux,无论是主机还是访客。对于 UEFI 启动,我已安装edk2-ovmf并让访客使用固件/usr/share/edk2-ovmf/x64/OVMF_CODE.fd。我想创建虚拟机的快照,但收到错误:

Error creating snapshot: Operation not supported: internal snapshots of a VM with pflash based firmware are not supported

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/details/snapshots.py", line 237, in _do_create_snapshot
    self.vm.create_snapshot(xml)
  File "/usr/share/virt-manager/virtManager/object/domain.py", line 1124, in create_snapshot
    self._backend.snapshotCreateXML(xml, flags)
  File "/usr/lib/python3.9/site-packages/libvirt.py", line 3059, in snapshotCreateXML
    raise libvirtError('virDomainSnapshotCreateXML() failed')
libvirt.libvirtError: Operation not supported: internal snapshots of a VM with pflash based firmware are not …
Run Code Online (Sandbox Code Playgroud)

arch-linux snapshot virt-manager libvirt

14
推荐指数
1
解决办法
1万
查看次数

创建 linux 系统的快照

我想执行以下操作 - 保存我的 linux 操作系统 (centOS6.5) 的当前状态。做一些改变(更具体地说,注入一个故障并测试一些服务,以检查它在特定类型的故障发生时的行为。)然后将系统恢复到保存的状态。我无法弄清楚如何在 linux 系统上执行此操作。我有一台带有 ext4 文件系统的 CentOS 6.5 机器。此外,这是一台物理服务器,而不是虚拟机。

有什么想法或建议吗?

linux snapshot

12
推荐指数
3
解决办法
4万
查看次数

在 Linux Overlay (OverlayFS) 挂载中将上层文件系统的更改合并到下层文件系统

我希望能够将覆盖挂载的上层文件系统的更改合并到下层文件系统。

我对在线(即安装叠加层时合并)和离线(卸载叠加层然后合并)解决方案都感兴趣。

我找到了几个离线解决方案,我已将其添加为答案。

有谁知道任何在线解决方案?最好有一个“提交”类型的命令,您可以在仍安装覆盖层时运行以合并图层。

在以下问题中提出了类似的问题,但没有答案:

这些帖子中的评论提出了不同的mergefsbcache,它们都解决了特定的用例,但不是覆盖提供的通用文件系统不可知的用例。

我的目标是拥有一个带有快照的安全文件系统沙箱,可用于任何 Linux 应用程序上的任何(如果可行)底层文件系统,允许您在准备好时回滚更改或手动提交它们。

我怀疑现代主流 Linux 具有所有必要的内置功能,这要归功于过去几年的所有沙箱/虚拟化创新,如果我知道如何使用它们就好了。

linux sandbox snapshot overlayfs union-mount

12
推荐指数
2
解决办法
8765
查看次数

`cp -al` 快照,其硬链接在编辑时被定向到新文件

我正在尝试定期拍摄大型文件夹的快照。

我在这里读过:http : //www.mikerubel.org/computers/rsync_snapshots/#Incremental通过简单地复制硬链接
cp -al获取文件夹的快照。

这一切都很好,但问题是在这个快照中,如果我更改一个文件,它会在所有快照中更改。我想要的是让系统在更改时创建一个新文件并链接到该文件。这样每个快照在编辑第一个文件时不会变得无效。

我怎样才能做到这一点?

ps 我试过rsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/,但它有同样的问题。

backup hard-link cp rsync snapshot

11
推荐指数
1
解决办法
1万
查看次数

如何删除名称中带有 <FS_TREE> 的 btrfs 子卷

我有一堆 btrfs 快照,如下所示:

20:17:37 [root@galaxy /]$ btrfs subvolume list -a / |grep apt
ID 271 gen 348 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:44:30
ID 272 gen 352 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:46:25
ID 273 gen 361 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:51:13
... # lots more
Run Code Online (Sandbox Code Playgroud)

我想摆脱它们。所以我试过了

20:21:31 [root@galaxy ~]$ btrfs subvolume delete '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:36 [root@galaxy ~]$ btrfs subvolume delete '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:43 [root@galaxy ~]$ btrfs subvolume delete '/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/@apt-snapshot-2013-04-17_21:44:30'
20:21:47 [root@galaxy …
Run Code Online (Sandbox Code Playgroud)

btrfs snapshot

10
推荐指数
1
解决办法
1万
查看次数

为什么 ZFS 回滚会破坏中间快照?

之前使用过 btrfs,我惊讶地发现在 ZFS 中回滚快照不仅会更改文件的 \xe2\x80\x9cworking set\xe2\x80\x9d,而且还要求任何比回滚更新的快照目标也必须被摧毁

\n
 zfs rollback [-Rfr] snapshot\n   Roll back the given dataset to a previous snapshot.  When a dataset is rolled back, all\n   data that has changed since the snapshot is discarded, and the dataset reverts to the\n   state at the time of the snapshot.  By default, the command refuses to roll back to a\n   snapshot other than the most recent one.  In order to do so, all intermediate snapshots\n   and bookmarks must be …
Run Code Online (Sandbox Code Playgroud)

filesystems zfs history btrfs snapshot

10
推荐指数
1
解决办法
716
查看次数