我正在设置一个带有 mdadm RAID5 的系统,它是托管 4 个 LV 的 VG 的唯一 PV。
当我创建文件系统时,该mkfs.ext4
-E
选项有用吗?或者由于 LVM 的诡计,无法知道其效果?
-E extended-options
Set extended options for the filesystem. Extended options are comma separated, and may take an argument using the equals ('=') sign. The -E option used to be -R in earlier versions of mke2fs. The -R option is still accepted for backwards compatibility. The following extended options are supported:
stride=stride-size
Configure the filesystem for a RAID array with stride-size filesystem blocks. This is the number of blocks read or written to disk before moving to the next disk, which is sometimes referred to as the chunk size. This mostly affects placement of filesystem metadata like bitmaps at mke2fs time to avoid placing them on a single disk, which can hurt performance. It may also be used by the block allocator.
stripe-width=stripe-width
Configure the filesystem for a RAID array with stripe-width filesystem blocks per stripe. This is typically stride-size * N, where N is the number of data-bearing disks in the RAID (e.g. for RAID 5 there is one parity disk, so N will be the number of disks in the array minus 1). This allows the block allocator to prevent read-modify-write of the parity in a RAID stripe if possible when the data is written.
答案1
这只有在确保 PV 与 RAID 块大小对齐时才有意义(LV 应该自动对齐)。您可以通过以下方式检查
pvs -o pe_start,pv_name --units s
dmsetup table name # with name what you see in /dev/mapper
答案2
这并没有回答你的问题,但这个问题已经回答过了。然而使用 raid5 不是一个好主意。它太慢而且很容易失败。有关讨论,请参阅:
截至 2012 年 8 月,戴尔、日立、希捷、Netapp、EMC、HDS、SUN Fishworks 和 IBM 均建议不要在大容量驱动器和大型阵列中使用 RAID 5。[51]http://community.spiceworks.com/topic/251735-new-raid-level-recommendations-from-dell“
“当 RAID 5 阵列中的磁盘发生故障并且必须重建时,重建期间很有可能出现不可恢复的读取错误 (BER/UER)。由于不再存在冗余,因此 RAID 阵列无法重建”
我强烈建议使用 raid10,或者如果您确实需要使用更多空间,请使用 raid6。在 mdadm 中,您可以使用奇数磁盘数量,例如 3 或 5 个磁盘的 raid10:
答案3
是的,它很有用。您应该确保所有内容都与同一边界对齐,并且这也应尽可能与您的应用程序的 I/O 大小相对应。此外,不要忽视块组大小的重要性(mkfs.ext* 上的 -g 参数)。您可以使用它来避免所有块组都从同一物理磁盘启动,这会产生严重的瓶颈。我写了一篇关于存储堆栈对齐这涵盖了这一点,你可能会发现它很有用。