我应该将多设备btrfs文件系统放在磁盘分区还是原始设备上?


16

如果我要创建一个多设备的btrfs文件系统。来自文档编制者的官方建议是在原始设备上创建它。即/dev/sdb/dev/sdc等等,但这没有解释。

是否有任何优点首先创建这些设备上的一个分区表,无论是GPT或MBR,然后上创建文件系统/dev/sdb1/dev/sdc1等等?为btrfs整个设备供电是否具有某些特殊的优势,或者这些基本相同?

Answers:


7

分区只是将磁盘分成多个卷的一种方法,这些卷可以独立使用。如果您只希望每个磁盘一个卷,分区不会给您带来任何好处-它仅会占用一些磁盘空间(是的,它很小),并使诸如4K扇区或闪存驱动器的硬盘驱动器上的数据对齐等操作变得很复杂。具有分区表的唯一其他原因是为了引导该驱动器。如果没有理由拥有分区表,则省略它会更简单。


3

分区有许多缺点。MBR浪费了整个“轨道”。磁道是扇区数乘以扇区大小,但是实际磁盘上确实具有扇区,扇区大小不是512o。实际的磁盘中的块对于旋转磁盘而言是8倍,对于闪存设备而言则更大。转移到下一个音轨可能无法使用跨步和条纹将“逻辑”扇区与实际块对齐。

在过去,您可以在FAT中定义扇区大小,但是MBR结束了这一点。

如果从光盘引导,则BIOS在第一个512o末尾需要一个引导签名,以便它知道它在加载后可以运行该签名。如果您正在运行EFI,请喝醉。如果要使用文件系统来引导系统,则文件系统将需要为此留一个孔。

XFS(通常在旋转磁盘上的/ var上使用)没有这样的孔。


1
我有点困惑; 如果磁盘是由扇区组成的,那么“(总)扇区数乘以扇区大小”将不是整个磁盘吗?还是暗示除“总计”以外的其他内容?
雕文

1

使用单独的磁盘可获得磁盘读取/保存速度的优势。

基本上,/dev/sda是一个硬盘,并且/dev/sda1/dev/sda2是在相同的物理磁盘的部分。

如果使用/dev/sda,+ /dev/sdb进行设置,则可以同时取回两个单独的磁盘。

如果使用,/dev/sda1 /dev/sda2则您将获得试图读取两者的同一磁盘,因此它必须先做一个,然后再做另一个。


1
如果您说使用sda速度比快sda1,那么这种速度优势从何而来?
user1686 2012年

速度优势来自并行硬件存储和检索数据,而不是相同的硬件尝试跳到同一磁盘上的多个位置
Jharwood 2012年

没有提及多个位置或多个分区。问题是关于覆盖整个磁盘的单个分区。
user1686'6

啊,对不起,我误解了这个问题。
贾伍德(Jharwood)2012年

0

如果我理解正确,那么使用整个磁盘将使BTRFS做出一些假设,从而可以对行为进行一些优化。

就像,如果授予了完整的设备以供使用,它可以假定它不会对设备的访问构成任何挑战,并且可以调整其访问方法,而不必定期预期其他地方的延迟要求从某处获取数据设备上的其他设备,并且必须在处理其他请求后等待驱动器恢复到驱动器状态。


您所描述的通常称为磁盘IO的实际情况,而不是特定于文件系统的任何情况。您在btrfs中具体看到了什么,根据分区表是否存在来优化或调度IO?
Brian Cline

文件系统不这样做。如果上述行为适当,则操作系统会执行此操作。我对“ it”的使用可能是模棱两可和/或重叠和/或彼此排斥。
killermist 17-4-20

0

对于所有这些4K扇区驱动器,您可以使用分区来对齐文件系统。只需使用以下命令启动fdisk:

fdisk -H 224 -S 56

并创建一个跨整个设备的分区。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.