![Btrfs 子卷与文件夹?](https://linux22.com/image/816091/Btrfs%20%E5%AD%90%E5%8D%B7%E4%B8%8E%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我读过不少关于 btrfs 子卷功能的文章。虽然在数据文件系统中为主要类别设置子卷(例如 @films、@pictures、@music...)似乎很有趣,但与仅使用文件夹相比,这有什么优势?
我是否需要挂载每个子卷?或者子卷是否会像根挂载点下的文件夹一样出现?例如,对于 /data 挂载点,我将拥有:/data/pictures、/data/music 等
答案1
默认根子卷下的子卷显示为文件夹,如果您已经挂载了根子卷,则无需再挂载。
文件夹和子卷之间的区别在于,子卷可以在不挂载父子卷(根)或任何其他子卷的情况下挂载。子卷可以创建快照,而文件夹则不能。
答案2
您的“非此即彼”问题的答案是“两者皆可”。是的,您必须挂载每个子卷。每个子卷的行为都像普通文件系统一样,因此它们将出现在挂载点(如 /etc)中。
这个想法有几个优点。例如,您可以将 MySQL 数据库目录设为子卷,这样您就可以拍摄快照以用于备份。您还可以选择将该目录设为 RAID1,这样如果一个磁盘发生故障,您的数据库仍然完好无损。另一个方法是使用 /etc 的子卷,这样您就可以随时撤消任何类型的系统范围配置更改。使用 /home/username 的子卷可能会让每个用户都拥有一台时间机器,尽管可能比 Apple 在其系统中提供的更灵活。
当然,为家庭和根目录设置子卷的一个好处是可以撤销升级。例如,您很早就从 12.04 升级到 12.10,发现第一个月后它有太多错误,所以您只是取消升级操作系统。我自己还没有尝试过,但它应该和保留您的家庭并重新安装以前的系统一样好,只是它需要大约一秒钟而不是一个小时。:)
答案3
使用当前 Ubuntu 内核(从 ubuntu 12.10 开始)的子卷功能意义不大,因为它仍然缺少“子卷配额组”。您必须等待内核 3.6(也许是 ubuntu 13.04?)当然,您可以快照子卷,当然您不能快照目录。但您可能希望子卷像使用 LVM 的逻辑卷一样工作,但使用 btrfs 时,我们没有类似的场景,因为我们没有此内核的配额扩展。
因此:是的,您可以制作快照,但它们看起来像目录,如果您填充了子卷上的空间,则您也会填充整个文件系统上的空间.....
您甚至可以通过提供子卷的路径来调整子卷的大小,但调整大小操作会影响整个文件系统,而不是子卷的路径。
换句话说,使用此内核,子卷还未准备好投入生产。
否则,您必须使用 btrfs 文件系统作为卷,而不是子卷。btrfs 文件系统可以在线缩小,也可以在线扩展,因此不需要配额。