btrfs子卷很棒,可以嵌套。
Docker支持btrfs,并大量使用嵌套快照。
我正在尝试将/ var / lib / docker移至新驱动器。
该过程“应该”。
1-制作/ var / lib / docker的ro快照
btrfs sub snap create /var/lib/docker /var/snapshots/docker_some_datetime
源和目标都在相同的fs上。
2.-将快照发送到新驱动器
btrfs send /var/snapshots/docker_some_datetime | btrfs receive /mnt/drive2/snapshots/
在docker文件夹中,有一个btrfs文件夹,其中充满了子卷。我希望快照内的文件夹也可以是子卷,但它们似乎只是常规文件夹。
; TLDR
因此,问题是,如果我对子卷中嵌套了子卷的快照进行快照,那么在快照中它们是否也应该是子卷?我在这里达到btrfs限制吗?
最佳答案
让我们先将BTRFS-Subvolumes视为“常规”分区,然后看一个示例:
/mnt/hdd
上,第二个分区安装在/mnt/hdd/nested
上。 .img
或.iso
),则这将是而不是包括第二个分区,只是因为该分区当前安装在“第一个”分区内。 即使第一个分区是而不是挂载的,您仍然可以对其进行备份。
由于BTRFS-Subvolumes的处理与分区类似,因此递归btrfs-send(包括当前“已安装”的Subvolumes)更加复杂。
据我所知,没有内置函数可以仅使用一个命令来执行此操作。
我曾经浏览过Wiki上提到的BTRFS备份工具,据我所记得,其中一个工具正是具有此功能:https://btrfs.wiki.kernel.org/index.php/Incremental_Backup#Available_Backup_Tools
现在就BTRFS(据我了解):
/etc/fstab
),则默认情况下,其顶级Subvolume挂载在所需位置。 subvolid=<ID-of-some-Subvolume>
,则只有子子卷会自动“挂载”在相对的子路径中。 (由于子子卷未真正安装,我多次在引号中加上“mount”,因为它们在普通的Linux安装中不可见)
关于docker - 发送/接收带有快照的子卷(btrfs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654388/