概念:
LVM:逻辑卷管理工具,linux环境下对磁盘分区进行管理的一种机制,建立在硬盘和分区之上的一个逻辑层。通俗来说它就是一个磁盘管理工具,可以动态对文件系统的大小进行更改,把文件系统从一个磁盘切换到另一个磁盘
看如下例子:app这个文件系统的大小是100G
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/app-home 100G 50G 50G 50% /home
扩展此文件系统
- lvextend -L +50G /dev/app/home
- resize_reiserfs -s +50G /dev/app/home
现在变为了
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/app-home 150G 50G 100G 66.7% /home
P V(physical volume):
物理卷,在LVM的最底层,可以是整个物理硬盘或者硬盘上的分区。要使用LVM系统,首先对要用于LVM的磁盘进行初始化,初始化的目的就是将磁盘或分区标识为LVM 的物理卷,使用pvcreate 命令创建物理卷。
VG(volume group):
卷组,卷组是表示数据存储的实体。在PV之上,一个VG至少包括一个PV,可以动态添加PV,一个LVM可以有多个VG
LV(logic volume):
逻辑卷,在VG之上,VG所代表的磁盘空间可以分配给不同大小的逻辑卷,lv可以动态扩展缩小空间,在lv之上可以建立文件系统.然后mount到指定目录如:/opt/tomcat
PE(pysical extent):
物理区域,物理卷中的可用分配的最小存储单元,pe在vg创建的时候指定,确定后不能修改。同一vg中的所有,pv的pe大小必须一致。新的pv加入vg后,pe的大小自动更改为vg中的pe大小。
LE(logical extent):
逻辑区域,lv中可用于分配的最小存储单元。le的大小取决于lv所在vg中pe的大小。
|
含 义 |
设 备 名 |
PV |
物理卷:磁盘或分区 |
/dev/sda1
/dev/sdb
|
VG |
卷组:一组磁盘和/或一组分区 |
/dev/<VG name>/(目录) |
LV |
逻辑卷:LVM分区 |
/dev/<VG name>/<LV name> |
首先准备分区 用fdisk 将sdb 分为sdb1,sdb2这个分区。
选择主分区还是扩展分区
分完之后 command w 保存退出
command l
修改之后的状态
创建pv:
在物理分区上创建而来。它只是物理分区中划出一个特殊的区域,用于记载与lvm相关的管理参数。
pvcreate /dev/sdb1
pvdisplay
创建vg:
vgcreate vg_test /dev/sdb1
vgdisplay
多个pv 组合成vg后,lvm会在所有pv上做类似格式化的工作,将pv切成一块块的空间(pe),默认是4M.
通常lv最多只能包含65536gepe,所以单个lv的最大容量诶256G
创建LV
lvcreate -L 15G -n lv_test vg_test
创建文件系统
mkfs -t ext3 /dev/vg_test/lv_test
创建文件系统后,就可以加载使用了
mkdir /opt/test
mount /dev/vg_test/lv_test /opt/test
为了系统启动是自动加载文件系统,需要在 /etc/fstab 添加
/dev/vg_test/lv_test /opt/test ext3 defaults 1 2
有时可能因为逻辑卷为打开而无法启动系统
整个过程可以总结为:
管理LVM
lvm的好处就是可以动态的调整分区大小,无需重启动机器。假设lv_test (dev/vg_test/lv_test)的空间不足,需要增加大小,分两种情况
1、vg中有剩余空间
lvextend -l+2222 /dev/vg_test/lv_test (2222为vg中free pe的大小可以用vgdisplay查看)
lvresize -L +200M /dev/vg1000/lvol0
增加完lv的容量后,就可以修改文件系统的大小了
resize_reiserfs -s +5G /dev/vg_test/lv_test 这个好像会报错,有个解决方案
(umount /dev/vg_test/lv_test)然后 resize2fs -f /dev/vg_test/lv_est http://www.iteye.com/problems/34912
https://wiki.archlinux.org/index.php/LVM_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
lvm常用命令:
1、lvremove : 移除逻辑卷
lvremove /dev/vgname/lvname
如果该lv已经mount了,lvremove不能使用,必须unmount后才可以使用。
2、lvcreate :创建逻辑卷
lvcreate --name vol_01 -L 10G vgname
-L :指定逻辑卷大小,单位可以是"kKmMgGtT"
3、lvextend -L +10G /dev/vgname/lvname
给lvname添加10G的容量
另外一种写法:
lvcreate --size 40GB --name vol vgname
4、vgcreate:创建卷组vg
vgcreate vg-test /dev/sdb1 /dev/sdb2
5、强制删除vg,及时vg下有lv,也会被删除
vgremove vgname -f
6、移除物理卷
vgreduce my_volume_group /dev/hda1
vgreduce --removemissing vgname
7、vgextend
vgextend vgname /dev/sdb1(物理卷位置)
http://www.ibm.com/developerworks/linux/library/l-lvm2/index.html