前言

LVM(Logicl Volume Manager),逻辑卷管理器,通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整。

1、基本概念

1.1 物理卷–PV(Physical Volume)

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

1.2 卷组—VG(Volumne Group)

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

1、3 逻辑卷–LV(Logical Volume)

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

1.4 物理区域-PE(Physical Extent)

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

1.5 逻辑区域-LE(Logical Extent)

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

1.6 卷组描述区域–(Volume Group Descriptor Area)

卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

2、逻辑卷常用管理命令

2.1 在磁盘分区上建立物理卷

1
2
3
#fdisk /dev/hdb  
#pvdisplay /dev/hdb1 //在已经建立好的分区或硬盘上建立物理卷  
#pvcreate /dev/hdb1   

2.2 使用物理卷建立卷组

1
#vgcreate myVG /dev/hdb1 //建立卷组,日后可以根据需要添加新的物理卷到已有卷组中   

2.3 在卷组中建立逻辑卷

1
#lvcreate -L 10M -n myLV1 myVG //从已有卷组建立逻辑卷,通常只分配部分空间给该逻//辑卷   

2.4 在逻辑卷上建立文件系统

2.5 将文件系统挂载到Linux系统的目录树中

2.6 在卷组中添加新的物理卷

当卷组中没有足够的空间分配给逻辑卷时,可以使用vgextend命令添加新的物理卷到该卷组中,来扩充卷组容量。在一引起特殊的情况下也可以把卷组中现有的物理卷移出卷组。

1
#vgextend myVG /dev/hdb2   

2.7 扩充逻辑卷的容量

当逻辑卷的空间不能满足需要时,可以使用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。在逻辑卷的空闲空间过大时,也可以使用lvreduce命令缩减逻辑卷的容量。这样就实现了逻辑卷容量的动态调整。

1
#lvextend -L +4M /dev/myVG/myLV   

3、物理卷命令

3.1 pv一般维护命令

1
2
3
4
# pvscan //在系统的所有磁盘中搜索已存在的物理卷  
# pvdisplay 物理卷全路径名称 //用于显示指定物理卷的属性。  
# pvdata 物理卷全路径名称 //用于显示物理卷的卷组描述区域信息,用于调试目的。  
# pvchange -x|-allocation {y|n} 物理卷全路径名 //用于改变物理卷的分配许可设置   

3.2 物理卷的创建与删除命令

1
2
# pvcreate 设备全路径名 //用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。  
# pvmove 源物理卷全路径我[目的物理卷全路径名] //用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。  

3.3 vg一般维护命令

1
2
3
4
5
6
7
8
# vgscan //检测系统中所有磁盘  
# vgck [卷组名] //用于检查卷组中卷组描述区域信息的一致性。  
# vgdisplay [卷组名] //显示卷组的属性信息  
# vgrename 原卷组名 新卷组名  
# vgchange -a y|n [卷组名] //改变卷组的相应属性。是否可分配  
# vgchange -l 最大逻辑卷数 //卷组可容纳最大逻辑卷数  
# vgchange -x y|n [卷组名] //卷是否有效  
# vgmknodes [卷组名|卷组路径] //用于建立(重新建立)已有卷组目录和其中的设备文件   

3.4 卷组配置的备份与恢复命令

1
2
# vgcfgbackup [卷组名] //把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件  
# vgcfgrestore -n 卷组名 物理卷全路命名 //从备份文件中必得指定物理卷的信息   

3.5 卷组的建立与删除命令

1
2
# vgcreate 卷组名 物理卷全路径名[物理卷全路径名]  
# vgremove 卷组名   

3.6 卷组的扩充与缩小命令

1
2
# vgextend 卷组名 物理卷全路径名[物理卷全路径名]  
# vgreduce 卷组名 物理卷全路径名[物理卷全路径名]   

3.7 卷组的合并与拆分

1
2
# vgmerge 目的卷组名 源卷组名 //合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。 
# vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]   

3.8 卷组的输入与输出命令

1
2
# vgexport 卷组名  
# vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]  

3.9 给数据库扩充逻辑卷

采用raw

1
2
3
4
# lvmdiskscan //检测所有的SCSI、IDE等存储设备  
# lvmchange -R|-reset //复位逻辑卷管理器  
# lvmsadc [日志文件全路径名] //收信逻辑卷管理器读写统计信息,保存到日志文件中。  
# lvmsar 日志文件全路径名 //从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。  

3.10 oracle11g增加LV

SMSC在线热加载方式

1
2
3
4
5
6
7
8
pvcreate /dev/sdj  
vgextend datavg /dev/sdj  
lvcreate -L 60G -n lv_hisdata5 datavg   
lvcreate -L 30G -n lv_index4 datavg   
raw /dev/raw/raw48 /dev/datavg/lv_hisdata5   
raw /dev/raw/raw49 /dev/datavg/lv_index4  
chown Oracle:oinstall /dev/raw/raw48  
chown oracle:oinstall /dev/raw/raw49  

然后进入oracle命令行管理界面

1
2
alter tablespace SMSC_CENTER add datafile '/dev/raw/raw48' size 61400M;  
alter tablespace SMSC_INDEX add datafile '/dev/raw/raw49' size 30700M;   

再修改VCS脚本/etc/VRTSvcs/…/main.cf 修改双机的脚本,加这个raw操作加到双机中,med的是在/opt/App…../bin/oracle/raw.config

3.11 lv一般运维命令

1
2
3
4
5
6
# lvscan  
# lvdisplay 逻辑卷全路径名[逻辑卷全路径名]  
# lvrename 旧逻辑卷全路径名 新逻辑卷全路径名  
# lvrename 卷组名 旧逻辑卷名 新逻辑卷名  
# lvchange  
# e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名   

3.12 逻辑卷的创建与删除命令

1
2
# lvcreate  
# lvremove   

3.13 逻辑卷的扩充与缩小命令

1
2
# lvextend -L|-size +逻辑卷大小增量 逻辑卷全路径名  
# lvreduce q -L|-size +逻辑卷减小量 逻辑卷全路径名