一、逻辑卷(LVM)逻辑卷管理的概念
LVM是Linux系统对磁盘分区进行管理的一种方式,使用它可以让你更灵活的管理你的磁盘,LVM是由PV(physical volume,物理卷)、VG(volume group,卷组)、LV(logical volume,逻辑卷)三种元素组成。
- PV(pythsical volume,物理卷):
PV是由分区构成的,通常我们在多块硬盘的环境中把一块硬盘格式化成一个主分区后,然后把这块硬盘做成PV,在只有一块硬盘的情况下,我们就把这块硬盘上的某一分区做成PV,由于只有一块硬盘,所以我就把硬盘划分为四个主要的分区,一个“/boot”,一个“/”分区, 一个“/swap”分区,最后把剩下的部分做成一个主分区,然后把主分区做成一个PV。加入到VG里,又从VG里划分LV,也就组成了LVM。 - VG(volume group,卷组)
VG是由若干个PV组成的,它的作用就是把PV集中到一块在进行划分 - LV(logical volume,逻辑卷)
LV就是从VG划分出来的卷,它可以在你所用的卷不够的情况下增加其容量,就像windows中的逻辑磁盘,不过windows中的逻辑磁盘不能随心所欲的增减或减少磁盘的容量,而LV可以。下面就是PV、VG和LV之间的关系图。
从上图我们可以轻易的看出他们之间的关系,例如:假如我们有三块磁盘:50G、20G、100G,我们可以把他们做成一个LVM类型的磁盘,首先我们将三块磁盘进行分区并格式化,将其做成PV,然后将其做成PV,新建一个VG,将上面这三块磁盘转换成的PV加入到VG里,最后我们就把这个VG当成一块170G的硬盘来使用。当硬盘只有一块时,我们可以如下图来划分分区:
上面就是我的系统的硬盘分区情况,首先划了一个"/boot"分区,然后是“swap”,最后是根“/"分区。后面的空间空下了,然后装好系统后,把空下的空间分为了一个主分区,把这个分区做成一个PV,然后新建一个VG卷组,把做成的PV加入到VG中,最后从VG中划分LV。
二、如何实现LVM
首先新建PV,但是在新建PV之前要对硬盘进行分区,然后转换分区类型(转换成Linux LVM类型,类型代号为8e),可以使用fdisk工具来进行分区并转换分区类型,转好了后新建PV,建好之后可以使用“pvscan”命令来扫描一下系统中 有没有PV,也可以输入pvdisplay来查看更为详细的信息
root@paas:~# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
root@paas:~# pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
root@paas:~# pvdisplay
"/dev/sda3" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda3
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5WOf9Y-xHKb-DYog-0e2e-vNvt-4JV0-esI9aN
"/dev/sda4" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda4
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Lk2gEK-eDjP-mNtX-rDnw-Q20l-CRR4-K5J1Wp
2,创建VG,创建VG可以输入命令vgcreate + vg名称 +分区建立分区号的意思就是把上面创建好的PV加入到VG里,建好之后可以使用vgscan和vgdisplay来查看VG的详细信息
root@paas:~# vgcreate vg01 /dev/sda3
Volume group "vg01" successfully created
root@paas:~# vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 0 / 0
Free PE / Size 1279 / <5.00 GiB
VG UUID Xq5cIf-v9Mh-DToz-Vc01-Coxu-MSGq-08qGg1
我们还可以使用命令vgextend + vg名称 + 分区额外的向VG中添加PV,也可以用vgreduce+VG名+分区命令来移除PV。
root@paas:~# vgextend vg01 /dev/sda4
Volume group "vg01" successfully extended
root@paas:~# vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 9.99 GiB
PE Size 4.00 MiB
Total PE 2558
Alloc PE / Size 0 / 0
Free PE / Size 2558 / 9.99 GiB
VG UUID Xq5cIf-v9Mh-DToz-Vc01-Coxu-MSGq-08qGg1
- 创建LV,可以使用命令lvcreate -L SIZE -n LV名 + VG名来建立。可以使用lvdisplay和lvsacn来查看LV的详细信息
root@paas:~# lvcreate -L 5G -n lv_bei01 vg01
Logical volume "lv_bei01" created.
root@paas:~# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv_bei01
LV Name lv_bei01
VG Name vg01
LV UUID f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
LV Write Access read/write
LV Creation host, time paas, 2019-05-19 10:08:04 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 1280
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
创建好可以通过命令lvextend -L +Size(就是增加多少空间)+LV的绝对路径来增加LV的空间大小。也可以通过lvreduce -L -Size(就是减小多少空间)+LV的绝对路径来减少LV的空间大小
root@paas:~# lvextend -L +1G /dev/vg01/lv_bei01
Size of logical volume vg01/lv_bei01 changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
Logical volume vg01/lv_bei01 successfully resized.
root@paas:~# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv_bei01
LV Name lv_bei01
VG Name vg01
LV UUID f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
LV Write Access read/write
LV Creation host, time paas, 2019-05-19 10:08:04 +0800
LV Status available
# open 0
LV Size 6.00 GiB
Current LE 1536
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@paas:~# lvreduce -L -1G /dev/vg01/lv_bei01
WARNING: Reducing active logical volume to 5.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv_bei01? [y/n]: y
Size of logical volume vg01/lv_bei01 changed from 6.00 GiB (1536 extents) to 5.00 GiB (1280 extents).
Logical volume vg01/lv_bei01 successfully resized.
root@paas:~# lvdisplay
--- Logical volume ---
LV Path /dev/vg01/lv_bei01
LV Name lv_bei01
VG Name vg01
LV UUID f0Zdos-bMJp-TrTf-zu1C-beiO-x2mS-BcaNIB
LV Write Access read/write
LV Creation host, time paas, 2019-05-19 10:08:04 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 1280
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
- 以上的PV、VG、LV、都可以通过pvremove +分区号、vgremove +VG名称、lvremove +lv的绝对路径(如lvremove /dev/vg_liwei/lv_liwei命令来删除
做完以上的这一切以后,通过命令“mkfs.ext3 +LV的路径”来格式化分区,然后进行挂载后就可以用了
转自http://blog.chinaunix.net/uid-23511971-id-320264.html