LVM常用命令汇总
【术语解释】
?物理卷physical volumes(PV):物理卷处于逻辑卷管理器中的底层,任何的逻辑卷和卷组都必需依靠物理卷来建立;物理卷可以是一个完整的硬盘,也可以是硬盘中的一个分区
?逻辑卷logical volumes(LV):逻辑卷建立在卷组之上,卷组中的空间可以建立多个逻辑卷,并且逻辑卷可以随意在卷组的空闲空间中增减,逻辑卷可以属于一个卷组,也可以属于不同的多个卷组。LV 是位于PV 上的信息的组合,在LV 上的数据可以连续或者不连续地出现在PV。
?卷组logical volume group(VG):卷组是建立在物理卷之上,一个卷组中可以包含一个物理卷组或者多个物理卷。所有的物理卷属于一个称作rootvg 的卷组。
?卷组描述区域Volume Group Descriptor Area (VGDA):用于描述物理卷、卷组、逻辑卷分配的所由信息。逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA( 卷组描述符区域) 中。
1、查看lvm状态:
[root@LOCALHOST ~]# pvs --partial
[root@LOCALHOST ~]# vgs --partial
[root@LOCALHOST ~]# lvs --partial
2、查看pv、vg、lv是否异常
[root@LOCALHOST ~]# pvs
[root@LOCALHOST ~]# vgs
[root@LOCALHOST ~]# lvs
[root@LOCALHOST ~]# lsblk #列出所有可用块设备的信息
3、PV (物理卷) 命令:
pvcreate(创建)pvmove(移动)pvdisplay(显示)pvremove(移除)pvs(显示)
4、VG (卷组) 命令:
vgextend (扩展)vgs(显示)vgcreate(创建)vgdisplay(显示)vgremove(移除)vgrename(重命名)vgreduce (缩小)
5、LV (逻辑卷) 命令:
lvextend(扩展)lvreduce(缩小)lvs(显示)lvcreate(创建)lvremove (移除)lvscan(扫描)lvdisplay(显示)lvrename(重命名)
[root@LOCALHOST ~]# blkid #查看设备上所采用的文件系统类型
6、修复操作:
修复pv成功
[root@LOCALHOST ~]#pvcreate -ff --uuid
Y1KeaF-czHD-TJml-YR12-efV7-Z3rc-6RR19M --restorefile
/etc/lvm/backup/system /dev/sdf
接下下来修复vg
[root@LOCALHOST ~]# vgcfgrestore -f /etc/lvm/backup/system system
激活卷组system
[root@LOCALHOST ~]# vgchange -ay system
至此一切正常,数据也没有任何的损失,为了保险起见建议进行文件系统扫描以确保万无一失。
[root@LOCALHOST ~]# lvmdiskscan #列出可被用作物理卷的设备
[root@LOCALHOST ~]# pvdisplay #查看已创建好的物理卷
7、创建物理卷
[root@LOCALHOST ~]# pvcreate /dev/vdb #创建物理卷
8、创建卷组
[root@LOCALHOST ~]# vgcreate VolGroup01 /dev/vdb #创建卷组,命名为VolGroup01
[root@LOCALHOST ~]# vgcreate -s 8m VolGroup01 /dev/vdb{1,2} #把两个物理卷创建成一个卷组
[root@LOCALHOST ~]# vgreduce VolGroup01 /dev/vdb2
#缩小卷组大小,/dev/vdb2是分区
9、激活卷组
[root@LOCALHOST ~]# vgchange -a y VolGroup01 #激活物理卷
10、添加新创建的物理卷到卷组中
当系统安装了新的磁盘并创建了新的物理卷时,需要将物理卷添加到已有卷组中。[root@LOCALHOST ~]# vgextend VolGroup01 /dev/vdb2 #/dev/vdb2是新的物理卷
11、创建逻辑卷
[root@LOCALHOST ~]# lvcreate -L 10G VolGroup01 -n cts01 #创建逻辑卷
该命令就在卷组VolGroup01上创建名字为cts01,大小为10G的逻辑卷,并且设备入口为/dev/VolGroup01/cts01
[root@LOCALHOST ~]# mke2fs -j /dev/VolGroup01/cts1
#格式化逻辑卷
12、删除一个逻辑卷
删除逻辑卷以前首先需要将其卸载,然后删除,例如:
[root@LOCALHOST ~]# umount /root/cts001 #卸载挂载[root@LOCALHOST ~]# lvremove /root/cts001 #删除逻辑卷
13、扩大逻辑卷
在调整逻辑卷容量大小的同时也要调整在该卷上的文件系统的大小,当要增大容量时,先调整容量,后调整文件系统。
LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:[root@LOCALHOST ~]# lvextend -L +2G /dev/mapper/VolGroup01-cts2
上面的命令就实现将逻辑卷LVdata的大小增加320M。
[root@LOCALHOST ~]# lvextend -l +100%FREE /dev/mapper/VolGroup01-cts2 上面的命令实现将逻辑卷所在卷组所有空闲空间分配到/dev/VolGroup01/LVdata
增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。需要将文件系统卸载(如果是系统卷需要先用iso系统安装光盘启动进入linux rescue模式卸载文件系统),调整大小,然后再加载,例如:
[root@LOCALHOST ~]# e2fsck -f /dev/mapper/VolGroup01-cts2 #强制检查及修复系统
[root@LOCALHOST ~]# resize2fs /dev/mapper/VolGroup01-cts2 #用来增大或者收缩未加载的“ext2/ext3”文件系统的大小
14、缩小逻辑卷
在调整逻辑卷容量大小的同时也要调整在该卷上的文件系统的大小,当要缩小容量时,先调整文件系统,后调整容量。
如果是系统卷需要先用iso系统安装光盘启动进入linux rescue模式卸载文件系统,例如:
[root@LOCALHOST ~]# umount /root/cts003 #卸载挂载
[root@LOCALHOST ~]# e2fsck -f /dev/mapper/VolGroup01-cts3 #强制检测系统文件
缩小逻辑卷,例如:
[root@LOCALHOST ~]# resize2fs /dev/mapper/VolGroup01-cts3 8G
#缩小文件系统到8G
[root@LOCALHOST ~]# lvreduce -L 8G /dev/mapper/VolGroup01-cts3
#缩小逻辑卷
[root@LOCALHOST ~]# mount /dev/mapper/VolGroup01-cts3 /root/cts003
#挂载
[root@LOCALHOST ~]# echo "/dev/mapper/VolGroup01-cts3
/root/cts003 ext4 defaults 0 0" >> /etc/fstab #将挂载语句写入配置文件,以保证开机自动挂载
将需要回收的盘上数据迁移到其他pv上,例如:
[root@LOCALHOST ~]# pvmove /dev/vdc
[root@LOCALHOST ~]# vgreduce VolGroup01 /dev/vdb #从vg中去除需要回收盘这个pv
[root@LOCALHOST ~]# pvremove /dev/vdb #彻底删除pv
如果是vm后续可以到vm配置窗口删除对应的虚拟硬盘/dev/sdc,重启os或重新扫描scsi总线。
附:VM初始化划卷命令示例
以下命令涉及的具体设备和参数,请根据实际情况调整,下面都会有相应说明,执行命令前请仔细核对。
物理机和虚拟机划卷方法类似,卷组编号等不同,具体情况具体分析,切忌照搬命令。[root@LOCALHOST ~]# vgremove VolGroup01 #删除卷组
15、LVM逻辑卷快照
Snapshot
[root@LOCALHOST ~]# rescan-scsi-bus.sh #创新磁盘创建信息
[root@LOCALHOST ~]# lsblk #列出快的信息
扩容
[root@LOCALHOST ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
|-sda18:1 0 200M 0 part /boot
`-sda2 8:2 0 59.8G 0 part
|-VG-LVroot (dm-0) 253:0 0 17.3G 0 lvm /
|-VG-LVswap (dm-1) 253:1 0 6G 0 lvm [SWAP]
|-VG-LVcloud (dm-2) 253:2 0 3G 0 lvm /opt/cloud
|-VG-LVvar (dm-3) 253:3 0 25G 0 lvm /var
|-VG-LVhome (dm-4) 253:4 0 500M 0 lvm /home
`-VG-LVtmp (dm-5) 253:5 0 8G 0 lvm /tmp
sr0 11:0 1 1024M 0 rom
sdb 8:16 0 40G 0 disk
`-VG1-LVdata1 (dm-6) 253:6 0 40G 0 lvm /wls/applogs
sdc 8:32 060G 0 disk
创建pv
[root@LOCALHOST ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
查看vg信息,如/wls/applogs的LV卷LVdata1所在的vg为VG1
[root@LOCALHOST ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VG 1 6 0 wz--n- 59.80g 0
VG1 1 1 0 wz--n- 40.00g 0
扩容vg
[root@LOCALHOST ~]# vgextend VG1 /dev/sdc
Volume group "VG1" successfully extended
扩容LV
[root@LOCALHOST ~]# lvextend -l +100%FREE /dev/VG1/LVdata1
Size of logical volume VG1/LVdata1 changed from 40.00 GiB (10239 extents) to 99.99 GiB (25598 extents).
Logical volume LVdata1 successfully resized
查看vg、lvs
[root@LOCALHOST ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VG 1 6 0 wz--n- 59.80g 0
VG1 2 1 0 wz--n- 99.99g 0
[root@LOCALHOST ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LVcloud VG -wi-ao---- 3.00g
LVhome VG -wi-ao---- 500.00m
LVroot VG -wi-ao---- 17.31g
LVswap VG -wi-ao---- 6.00g
LVtmp VG -wi-ao---- 8.00g
LVvar VG -wi-ao---- 25.00g
LVdata1 VG1 -wi-ao---- 99.99g
扩容文件系统(200G以上耗时较久)
[root@LOCALHOST ~]# resize2fs /dev/mapper/VG1-LVdata1 (xfs用xfs_growfs)
resize2fs 1.43-WIP (20-Jun-2013)
Filesystem at /dev/mapper/VG1-LVdata1 is mounted on /wls/applogs; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 7
Performing an on-line resize of /dev/mapper/VG1-LVdata1 to 26212352 (4k) blocks. The filesystem on /dev/mapper/VG1-LVdata1 is now 26212352 blocks long.
查看
[root@LOCALHOST ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG-LVroot
17G 4.2G 12G 26% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1190M 125M 56M 70% /boot
/dev/mapper/VG-LVhome
477M 2.3M 449M 1% /home
/dev/mapper/VG-LVcloud
2.9G 255M 2.5G 10% /opt/cloud
/dev/mapper/VG-LVtmp
7.8G 19M 7.4G 1% /tmp
/dev/mapper/VG-LVvar
25G 350M 23G 2% /var
/dev/mapper/VG1-LVdata1
99G 23G 71G 25% /wls/applogs
[root@LOCALHOST ~]#