LVM的创建和管理

  LVM是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来同一管理,动态化的对分区进行扩缩空间大小,方便安全管理。同时可以根据需求调整大小,而且不会有数据丢失。LVM大大提高了磁盘管理的灵活性。

一.创建LVM

  首先我们需要把硬盘或分区转化为物理卷,这里对硬盘并没有实质性改变,只是对硬盘贴上了一个标记而已。

1.准备物理空间
fdisk /dev/sda  通过fdisk命令为硬盘分区,并把分区标记为8e(Linux LVM),如果是整块硬盘的话则不需要分区标记。
2.创建物理卷
pvcreate /dev/sda1 /dev/sdb1 /dev/sdc 把sda1、sdb1、sdc 创建为物理卷
pvs 简要显示pv的信息
pvdisplay 详细显示pv的信息
3.创建卷组
vgcreate vg0 -s 16M /dev/sda1 /dev/sdb1 /dev/sdc 创建卷组,并把三个物理卷加入到卷组中。
    vg0 ---> 卷组名字
    -s  ---> 指定一个PE的大小
    PE physiacl extend 逻辑卷划分时的最小单位,默认为16M
vgs 简要显示vg的信息
vgdisplay 详细显示vg的信息
  • 卷组我们可以把它看做是一个新的还未分割的硬盘。
4.分割卷组,创建LVM
lvcreate -L 6G -n lv0 vg0
    -L 指定具体大小
    -l 指定PE的个数
    -l 60%VG -n name vg 占用整个vg的60%
    -l 100%FREE -n name vg 占用真个vg空闲空间
    -n 指定LVM的名字
    最后跟上其划分的卷组
	lvs 简单显示LVM的信息
	lvdisplay 详细显示LVM的信息
	mkfs -t ext4 /dev/vg0/lv0 把lv0格式化为ext4格式
	mount /dev/vg0/lv0 /media/lv0 把lv0挂载在/media/lv0下
	这样我们就可以开始使用lv0分区了
#### 二.管理LVM
1.扩展LVM
lvextend -L +1G /dev/vg0/lv0  
    -L + 在原来的基础上增加的容量
    -L 4G 总容量增加到4G

		ext系列格式:
		resize2fs /dev/vg0/lv0 同步上一步对硬盘文件系统的改变

		xfs:
		xfs_grows /media/lv0 同步文件系统,后面跟的是挂载点而非设备名。

		lvextend -r -L +1G /dev/vg0/lv0 直接扩展,不用同步文件系统
2.缩减逻辑卷
		xfs格式的LVM只能增不能缩减
		umount /media/vg0/lv0 缩减之前先卸载
		e2fsck -f /dev/vg0/lv0 检查文件系统
		reseze2fs /dev/vg0/lv0 3G 缩减到3G大小
		lvreduce -L [-] 4G /dev/vg0/lv0 指定缩减的大小
		mount /dev/vg0/lv0 /media/lv0 重新挂载
3.扩展卷组
把创建好的物理卷加入卷组中,扩大卷组的容量
vgextend vg0 /dev/sda1
4.迁移LVM
vgrename /dev/vg0 newvg0 为了防止和目标主机的名字冲突,修改卷组的名字
lvrename /dev/vg0/lv0 修改LVM的名字
umount /dev/vg0/lv0 卸载LVM
vgchange -an newvg0 设置newvg0为禁用状态,禁止用户读写数据
vgexport newvg0 设置newvg0为导出状态
移动物理卷磁盘到目标主机
vgimport newvg0 导入newng0
vgchange -ay newvg0 激活newvg0
5.快照功能
lvcreate -n lv0-snapeshot -s -l 500M /dev/vg0/lv0 为lv0创建快照
    -s 指定其实快照,而非LVM
    -l 指定大小
    最后跟上主卷的设备名
mount /dev/vg0/lv0-snapeshot 挂载快照

umount /dev/vg0/lv0 还原之前先卸载
umount /dev/vg0/lv0-snapeshot 卸载
lvconvert --merge /dev/vg0/lv0-snapeshot 还原快照,之后快照就失效
mount /dev/vg0/lv0 /media/lv0 重新挂载

xfs格式:mount -o nouuid /dev/vg0/lv0 /media/lv0 
6.删除LVM

删除LVM和创建LVM过程是完全相反的。

umount /media/lv0 卸载LVM
lvremove /dev/vg0/lv0 移除LVM
vgremove /dev/vg0 移除卷组
pvrmove /dev/sda1 /dev/sdd2 删除物理卷