构建LVM卷管理应该使用分区还是直接使用磁盘?

我在构建 在软RAID10 + LVM上CentOS 7 部署Gluster 11 采用的是多层架构:

每次实践都会让我思考一些技术细节,就像 mdadm构建RAID10 我思考 mdadm构建RAID时应该使用分区还是直接使用磁盘? ,对于在 mdadm 软RAID构建 软RAID设备 md10 : 应该直接使用 /dev/md10 块设备还是在 mdadm 软RAID构建 MD设备上划分分区,采用分区来构建 Linux LVM逻辑卷管理 ?

我参考了一些资料综合自己的思考:

  • 在块设备上使用 Linux LVM逻辑卷管理 使用完整磁盘或磁盘上的分区,性能上没有区别:

    • 分区只是一个标识,没有处理逻辑、也不占用空间,所以可以认为只是画了一条线,对性能和稳定性没有影响

  • 增加一个 parted分区工具 划分磁盘分区的 优点 是:

    • 提供了一个清晰的逻辑标签,也就是可以在分区上设置 LVM 标记,这样任何应用程序或者后续维护人员只需要使用 fdisk -l 就能看到这个分区是使用了 Linux LVM逻辑卷管理 ,不会忽略掉这个分区的使用目的(不会误以为磁盘无数据)

  • 增加一个 parted分区工具 划分磁盘分区的 缺点 是:

    • 块对齐不需要分区(当然使用 parted分区工具-a optimize 参数分区会帮助完成块对齐),LVM倾向于自己处理块对齐(见 lvm2 WHATS_NEW 2017年12月18日发布的 Version 2.02.177)

    • 调整磁盘大小的时候不需要再处理分区扩展缩小(节省步骤),分区调整有时候需要重启服务器才能识别(特别是系统分区),对于大量的虚拟机运维非常麻烦

    • 不需要使用各种分区工具 parted分区工具 , fdisk , kpartx 来管理卷和磁盘

我最初还是想加一个磁盘分区的,毕竟分区能够标记 LVM ,这样任何人一看就明白磁盘的用途,但是我觉得 Should I partitionning a disk LVM? 的理由也很充分,如果不存在 mdadm构建RAID时应该使用分区还是直接使用磁盘? 提到的系统缺陷UEFI可能破坏 Linux 软RAID 元数据的这种问题,直接使用软RAID块设备来构建 LVM 不失为一个简洁的方法: (在LVM的 LV 逻辑卷上,我们依然会使用分区来标记文件系统类型(其实也可以省略))

我个人在部署的时候,我想我还是会在每个数据层上使用分区,来帮助标签块设备的用途(没有其他目的,毕竟是完整使用磁盘):

  • 每个块设备层都通过分区FLAG来标签,以便能够清晰了解运维目标

  • 不影响性能,没有空间损失

  • 稍微增加一点工具复杂度,但是对我个人而言不难

参考