linux下创建和管理LVM(初级)
一.LVM简介,命令介绍,PV, VG, PE, LV简介。
1.) LVM简介:逻辑卷管理器,通过底层磁盘设备创建逻辑卷,可以在线对分区进行扩展,缩减,可跨分区扩展。解决服务器使用时间过长,磁盘空间不足。也可逻辑卷进行快照,备份。
2.) PV, VG, PE, LV简介:
PV Physical Volume,物理卷:
底层磁盘,通过磁盘分区命令对其进行分区,并且需要转换成8e(LVM)格式。
VG Volume Group, 卷组
将几个磁盘分区进行组合成一个大的空间,或者只增加单个小分区。VG的大小是由PE大小决定的,VG最多能拥有65534个PE,而PE默认大小为4M。
PE Physical Extend, 物理边界
控制逻辑卷分区大小。
LV Logical Volume,逻辑卷(逻辑边界)
格式化,挂载分区。通过PE调整VG,给LV分配空间大小。
3.) LVM 命令:
PV:
pvchange: 改变物理卷属性
pvck:检查物理卷的一致性
pvcreate:创建物理卷
pvdisplay:显示物理卷详细信息
pvmove:移动部分空间到其他的物理卷
pvremove :移除物理卷
pvresize:调整物理卷
pvs :显示物理卷信息,和pvdisplay差不多
pvscan:扫描所有的物理卷
VG:
vgdisplay:显示卷组详细信息
vgs:显示卷组信息
vgchange:改变卷组属性
vgcreate:创建卷组
vgmerge:组合卷组
vgrename:重命名组卷
vgextend:扩展卷组
vgremove:移除卷组
vgscan:扫描所有卷组
LV:
lvcreate:创建逻辑卷
-n:指定逻辑卷名字
-L:指定逻辑卷大小
lvextend:增加逻辑卷空间
lvrename:重命名逻辑卷
lvresize:重置逻辑卷的大小
lvs:显示逻辑卷的信息
lvscan:显示所有逻辑组中的逻辑卷
二.安装使用LVM。
1.) 创建物理卷
使用fdisk创建分区的部分就跳过了。
不要忘记转换8e。
Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 8e Linux LVM /dev/sdb2 655 1308 5253255 8e Linux LVM /dev/sdb3 1309 1962 5253255 8e Linux LVM # pvcreate /dev/sdb{1,2,3} Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created Physical volume "/dev/sdb3" successfully created # pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 a-- 5.01g 5.01g /dev/sdb2 lvm2 a-- 5.01g 5.01g /dev/sdb3 lvm2 a-- 5.01g 5.01g pvremove /dev/sdb1 #移除PV
2.)创建卷组
# vgcreate datevg /dev/sdb1 Volume group "datevg" successfully created # vgs VG #PV #LV #SN Attr VSize VFree datevg 1 0 0 wz--n- 5.01g 5.01g vg0 1 4 0 wz--n- 59.99g 7.99g # pvdisplay /dev/sdb1 --- Physical volume --- PV Name /dev/sdb1 #磁盘设备 VG Name datevg #卷组名字 PV Size 5.01 GiB / not usable 2.10 MiB #物理卷大小 Allocatable yes #是否可使用 PE Size 4.00 MiB #PE的默认大小 Total PE 1282 # Free PE 1282 # Allocated PE 0 #为使用的 PV UUID UCv1Rk-wBWx-HNp9-LziM-KOXk-22TX-SdVLyb *在创建物理卷的时候使用pvdisplay命令是看不到数据的。
3.)扩展卷组
# vgextend datevg /dev/sdb2 Volume group "datevg" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree datevg 2 0 0 wz--n- 10.02g 10.02g vg0 1 4 0 wz--n- 59.99g 7.99g vgreduce datevg /dev/sdb1 #移除VG
4.)创建逻辑卷
# lvcreate -L 5G -n datelv datevg Logical volume "datelv" created # lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert datelv datevg -wi-a----- 5.00g # lvdisplay /dev/datevg/datelv --- Logical volume --- LV Path /dev/datevg/datelv LV Name datelv VG Name datevg LV UUID oLCwvS-3wil-zAm8-LZZX-VfdD-Ekhm-WlehVW LV Write Access read/write LV Creation host, time Django, 2014-07-16 12:57:57 +0800 LV Status available # open 0 LV Size 5.00 GiB Current LE 1280 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
5.)格式化逻辑卷,挂载
# mke2fs -t ext4 /dev/datevg/datelv # mkdir /date_lv # mount /dev/datevg/datelv /date_lv/ # df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/datevg-datelv 5.0G 138M 4.6G 3% /date_lv
6.)扩展逻辑卷
# lvextend -L 8G /dev/datevg/datelv Extending logical volume datelv to 8.00 GiB Logical volume datelv successfully resized # resize2fs /dev/datevg/datelv # df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/datevg-datelv 7.9G 140M 7.4G 2% /date_lv
7.)创建快照
在创建快照的时候,要保证原来的数据不被修改。
我提前在/date_lv下创建了100个空文件。
# touch /date_lv/{1..100} # mount -o remount,ro /dev/datevg/datelv /date_lv/ # lvcreate -L 1G -n datelv-snmp -p r -s /dev/datevg/datelv Logical volume "datelv-snmp" created # mount -o remount,rw /dev/datevg/datelv /date_lv/ # mkdir /date_lv_snmp # mount /dev/datevg/datelv-snmp /date_lv_snmp/ mount: block device /dev/mapper/datevg-datelv--snmp is write-protected, mounting read-on ly # ls /date_lv_snmp/ 1 14 2 25 30 36 41 47 52 58 63 69 74 8 85 90 96 ... 12 18 23 29 34 4 45 50 56 61 67 72 78 83 89 94 lost+found ...
8.)移除快照卷
# umount /date_lv_snmp/ # lvremove /dev/datevg/datelv-snmp Do you really want to remove active logical volume datelv-snmp? [y/n]: y Logical volume "datelv-snmp" successfully removed
9.)如果不想继续使用逻辑卷了,可以全部移除
# umount /date_lv # lvremove datevg Do you really want to remove active logical volume datelv? [y/n]: y Logical volume "datelv" successfully removed # vgremove datevg Volume group "datevg" successfully removed # pvremove /dev/sdb{1,2} Labels on physical volume "/dev/sdb1" successfully wiped Labels on physical volume "/dev/sdb2" successfully wiped
三.
1.)总结:
扩展逻辑卷的时候,先扩展物理卷,在扩展逻辑卷。
缩减逻辑卷的时候,先缩减逻辑卷,在缩减物理卷。
在进行快照备份的时候,一定要确保没人在对要备份的数据进行更改操作。
2.)问题:
当我在之前操作过的磁盘上做LVM卷组的时候,结果出现了以下的问题:
# vgcreate -v main /dev/sdc2 Wiping cache of LVM-capable devices Wiping cache of LVM-capable devices Adding physical volume '/dev/sdc2' to volume group 'main' Command failed with status code 5.
显示的是擦除磁盘数据,我已经格式化几次,都一直是这个问题,然后网上搜索了一些相关解决方案,也没有理想的解决办法。
最后是在虚拟机新添加了一块磁盘做的LVM。
希望看到这个博文的并且出现过此类问题的给指点下,感谢!