在新的硬盘/分区上使用lvm
1.创建新分区
1
2
3
4
5
6
| # 创建sda1
fdisk /dev/sda
g
n
...
w
|
2.创建PV
3.创建VG
1
2
3
4
5
| # vg1为VG的名称, sda1为之前创建好的PV
vgcreate vg1 /dev/sda1
# 同时添加多块硬盘
vgcreate vg1 /dev/sda1 /dev/sdb1
|
4.创建LV
1
2
3
4
| # 创建大小为10G, 名为test1的LV
# vg1为之前创建的VG名称
lvcreate -L 10G -n "test1" vg1
|
这一步完成后, 会创建一个新的硬盘/dev/vg1/test1
5.格式化新创建的硬盘
1
| mkfs.ext4 /dev/vg1/test1
|
扩容
LV扩容
1
2
3
4
5
| # 为/dev/vg1/test1新增20GB空间
lvextend -L +20G vg1/test1
# 重载逻辑卷大小
resize2fs -p /dev/vg1/test1
|
2023年更新:
To extend a logical volume and use 100% of the available free space, you can use the following command:
1
| sudo lvextend -r -l +100%FREE /dev/vg_name/lv_name
|
This will extend the logical volume named “lv_name” in the volume group “vg_name” to use all available free space. The “-r” flag is used to automatically resize the file system on the logical volume after it has been extended.
VG扩容
1
2
| # 向vg1中添加新的PV:/dev/sdc1
vgextend vg1 /dev/sdc1
|
缩减空间
移除部分PV
假设vg1中有两个pv,分别为/dev/sda1和/dev/sdb1,现需要将/dev/sdb1从vg1中移除
1
2
3
4
5
| # 先转移/dev/sdb1中的数据
pvmove /dev/sdb1
# 从vg1中移除/dev/sdb1
vgreduce vg1 /dev/sdb1
|