LVM基本组成
LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间, LVM是用来方便管理的,不会提供额外的安全保证。
LVM的基本组成块(building blocks)如下:
- 物理卷Physical volume (PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)。
- 卷组Volume group (VG):将一组物理卷收集为一个管理单元。
- 逻辑卷Logical volume (LV):虚拟分区,由物理区域(physical extents)组成。
- 物理区域Physical extent (PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)。
示例:
1 | 两块物理硬盘 |
1 | LVM方式 |
1 | 卷组VG2 (/dev/storage2/ = /dev/sda2 + /dev/sdb1): |
1 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
图解如下
优点
比起正常的硬盘分区管理,LVM更富于弹性:
- 使用卷组(VG),使众多硬盘空间看起来像一个大硬盘。
- 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
- 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
- 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
- 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
- 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
- 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
这些优点使得LVM对服务器的管理非常有用,对于桌面系统管理的帮助则没有那么显著,你需要根据实际情况进行取舍。
缺点
- 在系统设置时需要更复杂的额外步骤。
系统支持
当前Linux系统都支持LVM,我们常用的Ubuntu和Centos上都可以方便安装,具体如下:
Ubuntu:
1 | root@ubuntu:~# lsb_release -a |
Centos:
1 | root@centos:~# lsb_release -a |
使用建议
使用本地存储时,LVM是对比物理盘有明显的优点,建议除非特别简单使用物理盘的场景,都可以使用LVM来提供存储服务。
使用时候的一些建议如下:
- 一个物理盘对应一个PV
- 多个PV构成一个VG
- 同一VG内最好使用相同性能的物理盘
- 不同性能的物理盘,创建不同的VG
- 创建适当大小的LV,容量不够时再扩容