LVM简介

2018-02-08 10:21:16来源:http://www.yangguanjun.com/2018/02/06/2018-02-06-lvm-intro/作者:ForTech人点击

分享

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 (/dev/sda):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|分区1 50GB (物理卷)|分区2 80GB (物理卷)|
|/dev/sda1|/dev/sda2 |
|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ __|
硬盘2 (/dev/sdb):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|分区1 120GB (物理卷)|
|/dev/sdb1 |
| _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|




LVM方式
卷组VG1 (/dev/storage1/ = /dev/sda1):




卷组VG2 (/dev/storage2/ = /dev/sda2 + /dev/sdb1):




_ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
|逻辑卷1 15GB |逻辑卷2 35GB |逻辑卷3 200GB |
|/dev/storage1/rootvol |/dev/storage2/homevol |/dev/storage2/mediavol |
|_ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ |_ _ _ _ _ _ _ _ _ _ _ _ _ _|


图解如下


优点

比起正常的硬盘分区管理,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:



root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:Ubuntu 16.04.2 LTS
Release:16.04
Codename: xenial

root@ubuntu:~# apt-get install -y lvm2
...
root@ubuntu:~# lvm version
LVM version: 2.02.133(2) (2015-10-30)
Library version: 1.02.110 (2015-10-30)
Driver version:4.34.0


Centos:



root@centos:~# lsb_release -a
LSB Version::core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:CentOS Linux release 7.3.1611 (Core)
Release:7.3.1611
Codename: Core

root@centos:~# yum install -y lvm2
...
root@centos:~# lvm version
LVM version: 2.02.171(2)-RHEL7 (2017-05-03)
Library version: 1.02.140-RHEL7 (2017-05-03)
Driver version:4.34.0


使用建议

使用本地存储时,LVM是对比物理盘有明显的优点,建议除非特别简单使用物理盘的场景,都可以使用LVM来提供存储服务。


使用时候的一些建议如下:


一个物理盘对应一个PV
多个PV构成一个VG
同一VG内最好使用相同性能的物理盘
不同性能的物理盘,创建不同的VG
创建适当大小的LV,容量不够时再扩容

微信扫一扫

第七城市微信公众平台