不好意思,贴一下小弟曾经为一个朋友写的一个lvm简介(做了一些修改)。
LVM=Logical Volume Manager(逻辑卷管理),下图LVM的总体架构:
- 代碼: 選擇全部
hda1 hdc1 (PV:s on partitions or whole disks)
\ /
\ /
\ /
diskvg (VG)
/ | \
/ | \
/ | \
usrlv rootlv recordslv (LV:s)
| | |
Ext2 ReiserFS XFS (filesystems)
上图就是LVM的架构图,其中
PV=Physical Volume
VG=Volume Group
LV=Logical Volume
从上图可以看出,
从上图可以看出,
(1)把空闲的硬盘或者硬盘分区创建为一个或者多个PV,如hda1 hdc1;
(2)然后你可以创建一个(或者多个)VG,把(1)中创建好的的一个
(或者多个)PV放入该VG,如把hda1和hdc1放入名为diskvg的VG中;
(3)然后在(2)中创建好的VG中随意的创建一个或者多个LV,如在diskvg中创建userlv rootlv recordslv等3个LV;
(4)把(3)中创建好的LV格式化成你的kernel支持的文件系统,比如XFS,ReiserFS,JFS,Ext3,Ext2等等,比如你可以把userlv格式化成ext2,rootlv格式化成XFS,而recordslv格式化成ReiserFS,就象对待传统意义上的硬盘分区一样对待LV;
(5)把格式化好的LV挂载(mount)到某一目录
(比如mount /dev/diskvg/recordslv /records)就可以想平常一样使用了。
当你的某一"Linux分区(比如/records)"空间不够时,也就是某一LV空间不够时,你可以用命令轻易的一边工作一边增加LV的空间,而不用重新划分物理分区,也不用重起,甚至也可以减少LV的空间。
假设你的/records用的是ReserFS,现在空间不够了,买来一个新的120G的HD(假设是/dev/hdd),想增加60G给/records,又不想停机,那么可以用以下命令(举例):
先增加vg的空间
#vgextend diskvg /dev/hdd1
然后增加lv的空间
#lvextend -L+60G /dev/diskvg/recordslv
再进行ReiserFS系统的调整:
Online:
#resize_reiserfs -f /dev/diskvg/recordslv
Offline:
#umount /dev/diskvg/recordslv
#resize_reiserfs /dev/diskvg/recordslv
#mount -treiserfs /dev/diskvg/recordslv /records
如果你觉得增加60G太多了,有点后悔,想减少20G,那么你可以减少容量:
#umount /records
#resize_reiserfs -s-20G /dev/diskvg/recordslv
#lvreduce -L-20G /dev/diskvg/recordslv
#mount -treiserfs /dev/diskvg/recordslv /records
就这么简单。