LVM

我们可能会遇到这样的情况,系统中有两块硬盘,一个100G,一个200G,但是我们需要在某个目录下,空间大小需要250G。如果按照之前的方法,先把硬盘分区,再把分区挂载到该目录下,很明显满足不了需求。此时,LVM(Logic Volume Management)技术就能够派上用场了。

首先,我们介绍三个重要的概念

  • PV:物理卷(Physical Volume),一个物理卷可以由一个主分区或者逻辑分区、或者是一个没有分区的硬盘创建而来,但是不能使用扩展分区创建物理卷。

  • VG:卷组(Volume Group),一个卷组由多个物理卷组成,这些物理卷可以是不同硬盘上的分区。卷组支持动态增加或删除物理卷,从而实现动态扩缩容。

  • LV:逻辑卷(Logic Volume),可以从一个卷组中创建多个逻辑卷,逻辑卷可以格式化与挂载

介绍了上面三个概念,我们发现,一个100G和200G的硬盘,我们可以通过LVM技术创建一个250G逻辑卷,然后挂载到对应目录下,满足需求。

接下来,我们将通过实践来看看是如何使用LVM的。首先我们看一下前置条件:系统中有两个硬盘/dev/sda/dev/sdb/dev/sda有两个主分区/dev/sda1(50G)与/dev/sda2(787G),/dev/sdb有两个主分区/dev/sdb1(50G)与/dev/sdb2(173G)。我们的目标是,用/dev/sda2/dev/sdb2创建一个卷组(787G+173G=960G),然后从卷组中创建一个大小为900G的逻辑卷,格式化该逻辑卷然后将其挂载到目录/data2下。

硬盘与分区情况如下:

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    1   837G  0 disk 
├─sda1   8:1    1    50G  0 part /
└─sda2   8:2    1   787G  0 part 
sdb      8:16   1 223.4G  0 disk 
├─sdb1   8:17   1    50G  0 part 
└─sdb2   8:18   1 173.4G  0 part 
[root@localhost ~]# fdisk -l

Disk /dev/sda: 898.7 GB, 898708275200 bytes, 1755289600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009613d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   104859647    52428800   83  Linux
/dev/sda2       104859648  1755289599   825214976   83  Linux

Disk /dev/sdb: 239.9 GB, 239902654464 bytes, 468559872 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x93de47a2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   104859647    52428800   83  Linux
/dev/sdb2       104859648   468559871   181850112   83  Linux

接下来,我们用分区/dev/sda2/dev/sdb2创建对应的两个物理卷,然后pvdisplay一下发现多了两个pv

然后利用这两个物理卷创建一个卷组,可以看出,这个卷组的大小为960.41G

接下来,我们在卷组中创建一个大小为900G的逻辑卷

然后格式化逻辑卷,并挂载到/data2目录下

接下来,我们来看一下分区与挂载的情况,发现/data2目录的大小为900G,设备的目录需要注意下,为/dev/mapper/myvg-mylv

我们看一下lsblkfdisk命令的输出,发现lsblk中的sda2sdb2下多了myvg-mylv,且类型为lvm,这说明myvg-mylv是一个逻辑卷,它所属的卷组所sda2sdb2两个物理组成。另外,fdisk命令中并没有显示这个逻辑卷,看来fdisk只会显示分区的内容。

删除操作

接下来,我们来删除这些逻辑卷、卷组和物理卷。首先先卸载逻辑卷

然后删除逻辑卷/dev/myvg/mylv,再lvdisplay一下发现lv没有了

接着删除卷组myvg,再vgdisplay一下发现vg没有了

接着可以删除物理卷/dev/sda2/dev/sdb2,再pvdisplay一下发现不存在pv了

Reference

[1] https://www.tecmint.com/add-new-disks-using-lvm-to-linux/

[2] http://blog.51cto.com/11093860/2164405

Last updated

Was this helpful?