通常我们使用磁盘时会先创建分区,然后在依次创建PV->VG->LV,最后格式化和挂载。

这时大家就会有疑问:

  • 创建PV,需要不需要提前进行磁盘分区?
  • 分区有哪些优缺点?
  • 要不要使用LVM?还是直接格式化分区?

RHEL 官方有一篇文档针对以上问题做了解答:What are the advantages and disadvantages to using partitioning on LUNs, either directly or with LVM in between?

文章主要从可管理性和性能两方面对以上问题进行了解答,主要内容总结如下:

  1. RHEL 支持直接使用整个磁盘而不进行分区。
  2. 分区可以提升可管理型,防止在运维中被误操作。
  3. 分区需要进行块对齐,否则会造成性能下降。
  4. 对无分区磁盘进行频繁读写时,特殊情况下会造成缓存失效从而性能下降。

以上是RHEL官方的解读,除此之外我们还要从运维的角度来考虑问题,最常见的场景就是磁盘的扩容。
对于磁盘阵列和云盘,磁盘扩容是常规的操作。如果对当前磁盘进行扩容,以上几种方式有何影响呢?

  1. 磁盘扩容后,如果已经进行了分区,那么需要使用分区软件对已有分区进行扩展,或在新增空间新建分区。如果没有分区,则无需操作。
  2. 对于直接格式化的文件系统,在没有分区的情况下,可以直接使用工具(resize2fs/xfs_growfs)进行扩容。有分区情况,需要先扩展分区,具体步骤可参考阿里云的扩容云盘文档。也参考之前的文章《Ubuntu/CentOS 磁盘分区扩展
  3. 创建了PV的磁盘,对于未分区的PV,不支持磁盘扩容。已分区的PV,只能新增分区,不能扩展分区。

综上所述,如果部署的环境是物理机,那么直接使用整个磁盘就可以,无需进行分区,是否需要使用LVM,看后期是否需要对文件系统进行扩展,还是只需要新增挂载点。比如说:TDengine 时序数据库,只有企业版支持多级存储,对于企业用户,可以通过增加挂载点来扩容,则不需要考虑 LVM。而对于开源版客户,最好使用 LVM 方便后期进行扩容。
部署环境是云主机/虚拟主机时,通常使用磁盘阵列或云盘,那么直接对磁盘扩容比较方便。如果不准备使用LVM,那么直接使用整个磁盘就可以,无需分区;如果准备使用 LVM,则需要进行磁盘分区,这样后期操作灵活性比较高。

08-18 20:43