将4k驱动器与md / LVM / dm-crypt一起使用


8

我知道我必须将我的4k驱动器按8个扇区的倍数对齐,但是md-RAID / LVM / dm-crypt呢?如何告诉这些层我的驱动器是4k?如果他们不遵守4k扇区大小,则分区对齐是无用的。如何对齐LVM / md / crypto-layers?谢谢。


2
我只是在想,“嗯,对于磁盘驱动器来说,4 KB似乎太小了”。也许是新的640k。
汤姆·奥康纳

@汤姆 许多文件系统使用4 KB的块大小,因此较大的扇区将导致大量性能降低的读取-修改-写入。其次,向更大领域发展的动力主要是提高ECC效率,而使其规模更大的回报却越来越少。
janneb

@janneb您是Buzz Killington AICMFP
Tom O'Connor 2010年

Answers:


4

小心!大于2 TiB的磁盘所需的gpt标签长39(512字节)扇区。因此,如果在标签后立即创建第一个分区,则该分区将不在4KiB边界上。

GNU parted 默认情况下执行此操作,这可能是因为许多“高级格式”驱动器错误地声称其物理扇区(不仅是逻辑扇区)仍然只有512B。

因此,如果您使用的是GNU parted,请确保每个分区均以一个LBA开头(可被8整除)(LBA保持512B,因此8 * 512B = 4KiB)。LBA始于0,因此从“ 40s”开始第一个分区。

另外,如果您使用GRUB,请为其第二阶段引导留出空间。MS-DOS标签有63个扇区,有足够的未使用空间供GRUB存放其第二阶段引导程序,但gpt标签中没有未使用的空间。因此,创建一个小的分区1,设置其“ bios_grub”标志,然后再创建“真实”分区-确保每个分区都以8的倍数开始的LBA开始。


3

参见https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

简短的版本是,如果您有最新发行版,它应该会自动执行正确的操作。对于较旧的发行版,它有点复杂。

对于LVM,您应该研究--dataalignment选项pvcreate,或者对于较旧的发行版-–metadatasize

MD,AFIAK,将其自己的元数据放在分区的末尾,因此应始终与基础分区对齐。

对于mkfs,文件系统应再次与基础分区对齐。对于某些文件系统,如果您在RAID设备上运行,则可以添加条带宽度和条带大小的选项,以便文件系统可以尝试在RAID条带边界上对齐内容。


1

问题主要是从底层磁盘结构开始的分区对齐。为了使向后兼容磁盘“欺骗” bios / os,它们具有512B扇区,而实际上,对于现代硬盘驱动器,它们具有4096B扇区;对于大多数常见的剥离RAID / ssds,它们具有32-64kB扇区。

分区未对齐会损害您的性能。我只在磁盘顶部的常规分区上做了一些基准测试-没有lvm,用bonnie ++测量的结果没有正确对齐:

Sequential Output Block: 29MB/s
Sequential Output Rewrite: 20MB/s

对齐:

Sequential Output Block: 70MB/s
Sequential Output Rewrite: 37MB/s

检查为lvm对齐。


0

到目前为止,大多数较新的发行版都已更新为了解4K。我刚刚在一堆2TB驱动器上构建了md-RAID / LVM / XFS设置,没有问题。没什么特别的。


我不同意...确定-一切正常,但是分区未对齐,这会影响性能。
PQD

好吧,这引出了问题。我使用从2TB到500GB的驱动器进行了几种不同的突击检查,并在其顶部使用LVM进行了XFS格式化。那么,如果所有驱动器都不是4k,那么一切将如何正常工作?我很想做基准测试,但是我的terra服务器比驱动器慢,所以毫无意义。
门廊
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.