如果我要创造多设备 btrfs 文件系统。文档中的官方建议似乎是在原始设备上创建它;即/dev/sdb
,/dev/sdc
等等,但没有解释。
首先在这些设备上创建分区表(GPT 或 MBR),然后在其上创建文件系统等/dev/sdb1
,这样做有什么好处吗?将整个设备提供给 btrfs 是否有一些特殊优势,或者这些基本上是等效的?/dev/sdc1
答案1
分区只是将磁盘分割成多个可独立使用的卷的一种方式。如果您只想每个磁盘一个卷,分区对您没有任何好处——它只会占用一些额外的磁盘空间(是的,它非常小),并使诸如将硬盘上的数据与 4K 扇区或闪存驱动器对齐等事情变得复杂。拥有分区表的唯一其他原因是从该驱动器启动。如果没有理由拥有分区表,那么省略它就更简单了。
答案2
分区有许多缺点。MBR 浪费了整条“磁道”。磁道是扇区数乘以扇区大小,但实际磁盘确实有扇区,扇区大小不是 512o。实际磁盘的块对于旋转磁盘来说是 8 倍大,对于闪存设备来说则要大得多。这种移位到下一个磁道的做法可能会导致无法使用跨度和条带将“逻辑”扇区与实际块对齐。
以前您可以在 FAT 中定义扇区大小,但是 MBR 终结了这种做法。
如果您从光盘启动,则 BIOS 需要在第一个 512o 的末尾有一个启动签名,以便它知道在加载时可以运行它。如果您正在运行 EFI,那就醉了。如果要使用它来启动系统,文件系统需要为此留一个洞。
XFS(主要用于旋转磁盘上的 /var)没有这样的漏洞。
答案3
如果我理解正确的话,使用整个磁盘将允许 BTRFS 做出一些假设,从而允许对行为进行一些优化。
比如,如果被授予完整的设备工作权限,它可以假设它不会遇到任何挑战来访问该设备,并且可以定制其访问方法,而不必定期预测其他东西从设备上其他地方请求数据的延迟,也不必等待驱动器在处理完其他请求后返回到它。
答案4
使用单独的磁盘来获得磁盘读取/保存速度的优势。
基本上,/dev/sda
是一块硬盘, 和/dev/sda1
是/dev/sda2
同一物理磁盘的一部分。
如果您在设置中使用/dev/sda
, + /dev/sdb
,那么您将拥有两个能够同时检索的独立磁盘。
如果您使用,/dev/sda1
/dev/sda2
那么您将得到同一个磁盘尝试读取两者,因此它必须先执行一项,然后再执行另一项。