准备分区
首先要分区,使用fdisk
即可。
我这里新分一个区/dev/nvme0n1p2
,在它的基础上来创建LVM。
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SAMSUNG MZVLB512HBJQ-00000
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2020133D-ACF3-4115-9D5B-E0CA1BC577F3
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 209717247 209715200 100G Linux filesystem
/dev/nvme0n1p2 209717248 314574847 104857600 50G Linux filesystem
创建逻辑卷
LVM即Logical Volume Manager,可以理解为 逻辑卷管理器。
在做之前要明白三个东西:PV、VG、LV,
- PV
- Physical Volume,是被初始化来创建LVM的物理卷。
- VG
- Volume Group,卷组。
- LV
- Logical Volume,逻辑卷。
一般,先初始化PV,然后创建VG,再创建LV。(也有特殊,参见VGCREATE(8))。
例子:
-
初始化PV
pvcreate /dev/nvme0n1p2
这一步是为了初始化PV,以便它能被VG使用。
创建后可用以用pvdispplay
查看结果。下面是我机子上的结果:
可以看到用了分区/dev/nvmeon1p2
,PV Size
为50G。 -
创建VG
vgcreate group1 /dev/nvme0n1p2
在PV上创建了名为
group1
的卷组,可用用vgdisplay
查看结果。
-
创建LV
这里要使用lvcreate
命令
选项-n
指定创建的LV名;
-L
指定大小;
-l
也可以指定大小,但是按百分比。
如:lvcreate -n lv1 -L 10G group1 #表示在卷组group1上创建名为lv1,大小10G的逻辑卷。 lvcreate -n lv1 -l 10%VG group1 #表示在卷组group1上创建名为lv1,大小为VG的10%,这里也就是5G lvcreate -n lv1 -l 10%FREE group1 #大小为卷组剩余空间的10%。
有意思的是,由于刚刚的group1 Size是<50G
,所以这里的百分比分配lv2 Size为<10G
。还可以看到逻辑卷的位置分别位于/dev/group1/lv1
、/dev/group2/lv2
。 -
格式化逻辑卷
mkfs -t ext4 /dev/group1/lv1
格式化创建的lv1卷
然后挂载它就可以了:
管理逻辑卷
pvdisplay
、vgdisplay
、lvdisplay
分别用来查看PV
、VG
、LV
。
以上面创建的PV、VG、LV为例
- 卸载逻辑卷
umount /dev/group1/lv1
- 删除LV
lvremove /dev/group/lv1
- 删除VG
vgremove /dev/group1
(这里vgremove /dev/group1
也行)
如果采用安全的方式删除卷组VG,则必须使用vgchange -a n VolGroup05关闭了vg_name,然后才可以删除它。
[root@getlnx01uat ~]# vgchange -a n VolGroup05
0 logical volume(s) in volume group "VolGroup05" now active
[root@getlnx01uat ~]# vgremove VolGroup05
Volume group "VolGroup05" successfully removed
验证卷组(VG)是否删除
[root@getlnx01uat ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup04" using metadata type lvm2
Found volume group "VolGroup03" using metadata type lvm2
Found volume group "VolGroup02" using metadata type lvm2
Found volume group "VolGroup01" using metadata type lvm2
Found volume group "VolGroup00" using metadata type lvm2
- 删除PV
pvremove /dev/nvme0n1p2 pvscan #验证
这里LVM逻辑卷位于 /dev/group1
卷组中,可用像一般磁盘一样使用它。
关于自动挂载请参考另一篇博客linux /etc/fstab自动挂载
- 扩展分区
以/home
为例。
在扩展之前,需要先调整文件系统大小,否则文件系统会损坏。
例如用resize2fs /dev/mapper/debian--vm-home 50G
将文件系统缩减到50G。
在resize2fs
之前还需要先用e2fsck -f /dev/mapper--vm-home
来检查分区情况。
此外,还需要先取消挂载。因此,如果要对根分区进行调整,需要借助LIveCD或救援模式,让根分区不要挂载。
lvresize --resizefs -L +100G /dev/mapper/debian--vg-home
lvresize --resizefs -l +100%FREE /dev/mapper/debian--vg-home
缩减分区换成减号即可。
vgdisplay
可以查看卷组的空间使用情况,可以看到有474GB的空闲空间: