1.LVM概念
LVM(Logical Volume Manager):逻辑卷管理。它最大的功能不是提高磁盘的效能或是安全,而是能在线扩大或缩小磁盘容量。基本理念是先将文件系统分区(如sda1,sdb2,sdc1)创建为物理卷(PV:Physical Volume),再将多個PV创建为卷组(VG:Volume Group),然后在VG上建立逻辑卷(LV:Logical Volume),最后对LV格式化挂载使用。扩大容量即将文件创建为PV加入VG,再对LV复設定大小。缩小容量则是先对LV重设定大小(减小容量了),再将要移除的PV上的数据转移到其它PV上,最后将PV移出VG以达到减小容量目的。在LVM的世界里还有一个概念需要理解,PE(Physical Exten):LVM最小可存储单元,类似于磁盘的block概念。默认一个PE=4MB,一个VG组里最多可有65534个PE(256GB),所以PE越大,VG的最大容量也越大。最好通过fdisk将要创建为PV的分区的System ID改为8e;lvm数据存储有两种方式:线性模式:第一个PV存完再存下一个PV,这是默认模式;交叉模式:所有数据均匀分布在各个PV上面。不管哪种数据存储模式,只要有一PV坏了,整个卷组的数据都丢失。2.LVM基本操作
2.1 磁盘准备
用一个10GB的硬盘分出3个2.0GB的分区,并将System ID改为8e,fdisk的用法就不讲了。[root@FIHSER-V49 ~]# fdisk /dev/hdd
[root@FIHSER-V49 ~]# partprobe #这个指令执行一次
[root@FIHSER-V49 ~]# fdisk -l /dev/hdd
Disk /dev/hdd: 10.7 GB, 10737418240 bytes
15 heads, 63 sectors/track, 22192 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Device Boot Start End Blocks Id System
/dev/hdd1 1 4439 2097396 8e Linux LVM
/dev/hdd2 4440 8878 2097427+ 8e Linux LVM
/dev/hdd3 8879 13317 2097427+ 8e Linux LVM
2.2 建立PV
pvcreate :将实体 partition 建立成为 PV ;pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
pvdisplay :显示出目前系统上面的 PV 状态;
pvmove s_partition d_partition:将一个PV上的数据移至另一个PV上,在减小卷容量以抽离分区时用得着
pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。
[root@FIHSER-V49 ~]# pvscan
No matching physical volumes found #此时是没任何PV的
[root@FIHSER-V49 ~]# pvcreate /dev/hdd{1,2,3}
Physical volume "/dev/hdd1" successfully created
Physical volume "/dev/hdd2" successfully created
Physical volume "/dev/hdd3" successfully created
[root@FIHSER-V49 ~]# pvscan
PV /dev/hdd1 lvm2 [2.00 GB]
PV /dev/hdd2 lvm2 [2.00 GB]
PV /dev/hdd3 lvm2 [2.00 GB]
Total: 3 [6.00 GB] / in use: 0 [0 ] / in no VG: 3 [6.00 GB]
[root@FIHSER-V49 ~]# pvdisplay
"/dev/hdd1" is a new physical volume of "2.00 GB"
--- NEW Physical volume ---
PV Name /dev/hdd1
VG Name
PV Size 2.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID DfgtVk-Kmsp-3Hf4-rwGD-AdwL-1V2D-y0b49l (后面…….)
2.3 建立VG
vgcreate [-s Num[mgt]] VG_Name PV_Name:建立 VG !-s:接PE的大小,单位可以是m,g,t(大小写均可) vgscan :搜寻系统上面是否有 VG 存在;
vgdisplay :显示目前系统上面的 VG 状态;
vgextend VG_Name PV_Name :在 VG 内增加额外的 PV ;
vgreduce VG_name partition:在 VG 内移除 PV;
vgchange :设定 VG 是否启动(active);
vgremove :移除一个 VG ;
[root@FIHSER-V49 ~]# vgcreate -s 16M VG /dev/hdd{1,2,3}
#设定PE=16MB
Volume group "VG" successfully created
[root@FIHSER-V49 ~]# vgdisplay
--- Volume group ---
VG Name VG
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 6.00 GB #3个2GB的分区已经创建为卷组了
PE Size 16.00 MB
Total PE 384 #总共有384个PE,每个16MB
Alloc PE / Size 0 / 0
Free PE / Size 384 / 6.00 GB
VG UUID Kyrkwu-v7Zs-QaxL-QThk-3v1b-Q4ja-17IlXO
2.4 创建LV
lvcreate [-L Num[mgt]][-s][-n LV_name] VG_Name:建立 LV 。-L:接容量,单位可以是m,g,t。-l:接PE的个数,那么则需要自己算空间的大小。-s:创建快照逻辑卷lvscan :查询系统上面的 LV ;
lvdisplay :显示系统上面的 LV 状态!
lvextend :在 LV 里面增加容量!
lvreduce :在 LV 里面减少容量;
lvremove :移除一个 LV !
resize2fs [-f][device][size]:-f:强制进行resize的动作
lvresize [-l +/-PE_Num] LV_name:对 LV 进行容量大小的调整!
[root@FIHSER-V49 ~]# lvcreate -l 384 -n lv VG
#前面我们查询到该VG共有384个PE,我们把所有空间都分给一个逻辑卷
Logical volume "lv&#