Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能(LVM)的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
1. 创建pv(物理卷 Physical Volume)
pvcreate /dev/xvde
创建后查看
pvdisplay
pvs
pvremove /dev/xvde 删除pv
pvscan # 在系统的所有磁盘中搜索已存在的物理卷
2. 创建vg(卷组 Volumne Group)
vgcreate vg_realjt /dev/xvde # vg_realjt为自定义名称
创建后查看
vgdisplay
vgs
vgreduce vg_realjt /dev/xvde # 从vg_realjt中移除pv
vgscan # 检测系统中所有卷组
3. 创建lv(逻辑卷 Logical Volume)
lvcreate -n lv0 -L +10G vg_realjt # 从vg_realjt中分配10G大小创建名称为lv0的逻辑卷
lvcreate -n lv0 -l 100%VG vg_realjt # 使用vg_realjt中所有空间用于创建lv0的逻辑卷
lvcreate -n lv0 -l 80%Free vg_realjt # 从vg_realjt中分配剩余空间的80%用于创建lv0的逻辑卷
创建后查看
lvdisplay
lvs
然后进行mount操作
mount /dev/vg_realjt/lv0 /home
4. 扩充lv
umount /dev/vg_realjt/lv0
lvextend -L +10G /dev/vg_realjt/lv0 # 增加10G
resize2fs /dev/vg_realjt/lv0 # 重设lv大小
mount /dev/vg_realjt/lv0 /home
5. 扩充vg
vgextend vg_realjt /dev/xvdf
6. 缩小lv
umount /dev/vg_realjt/lv0
e2fsck -f /dev/vg_realjt/lv0
resize2fs /dev/vg_realjt/lv0 30G # 30G为缩小后的容量
lvresize -L 30G /dev/vg_realjt/lv0
mount /dev/vg_realjt/lv0 /home
7. 缩小vg
vgreduce vg_realjt /dev/xvdf
pvremove /dev/xvdf