LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
LVM模型
下面我们就分步来创建PV设备、VG卷组以及LV卷
使用lsblk命令查看系统硬盘信息:要使用lsblk命令需要安装util-linux-ng包
下面我们将/dev/sdb硬盘分为3个分区:
使用 t 选项更改分区类型,8e 为LVM类型ID,使用选项 l 可以查看已知分区类型对应ID号:
使用 w 保存退出,查看新的分区信息:
PV管理(常用):
- pvs 简要显示
- pvdisplay 详细显示PV设备信息
- pvcreate 创建PV设备
- pvmove 移动PV数据
- pvremove 删除PV设备
下面使用 pvcreate 命令来创建PV设备,查看目前系统上存在的PV设备:
现在使用刚才新建的3个分区来创建新的PV设备:
VG卷组管理(常用):
- vgdisplay 详细显示VG卷组信息
- vgs 简要显示VG卷组信息
- vgcreate 创建VG卷组
- vgremove 移除VG卷组
- vgreduce 缩减VG卷组
- vgextend 扩展VG卷组
创建一个新的VG卷组,名称为VG01,指定PE大小为2M(PE大小一旦指定将无法修改,除非重新创建),将刚才创建的3个PV设备加入到新的VG卷组中:
使用 vgreduce 来缩减VG卷组:
使用 vgextend 来扩展VG卷组:
如果已经有了数据的话,需要先使用pvmove,再移除
LV卷管理(常用):
- lvs 简要显示LV卷信息
- lvdisplay 详细显示LV卷信息
- lvcreate 创建LV卷
- lvremove 删除LV卷
- lvextend 扩展LV卷
- lvreduce 缩减LV卷
从刚才创建的VG卷组中,创建一个新的LV卷,名称为LV01,大小为10G:
lvcreate -n LV02 -l 100%FREE VG01 使用剩余的全部容量
格式化LV01为ext4文件系统格式,设定预留空间大小为2%,卷标名称为MYLV01,并且挂载使用:
实现开机自动挂载要编辑 /etc/fstab 文件,添加相关设备挂载信息:
注:挂载设备名称推荐使用UUID或者LABEL标签,以免设备名称发生变化无法正常挂载使用
使用 lvextend 命令来扩展LV卷大小,将刚才创建的LV01调整为15G:
发现挂载分区这里依然显示的是10G大小,要使用 resize2fs 命令来修改物理卷边界:
如果是xfs格式,需要使用xfs_growfs命令
可以使用 -r 来自动扩容
lvextend -L +200M -r /dev/VG02/LV03
使用 lvreduce 命令来缩减LV卷大小(注:缩减LV卷大小有一定的风险,谨慎执行!):
- 缩减LV卷要注意,依次执行以下操作:
- 缩减LV卷时要先卸载LV卷;
- 强制检测LV卷;
- 修改物理卷分界大小;
- 修改逻辑卷分界大小.
缩减后的LV卷大小为 8G,卷内文件正常读取:
下面我们依次移除LV卷、VG卷组以及PV设备,使用 lvremove vgremove pvremove 来删除刚才创建的LVM:
再次查看LVM信息,已经成功移除:
LVM还可以创建快照来对数据进行备份,使用 lvcreate -s 选项来创建快照,创建之前先拷贝一些文件到LV卷:
在LV01卷上创建一个指定名称为MYSNAP01、大小为1024M、只读属性的快照:
挂载快照到 /bak/sanp 验证快照内的文件是否可以正常读取:
删除LV卷上的文件,并从快照上恢复:
编辑 /etc/fstab 实现开机自动挂载:
yum -y install system-storage-manager
//create创建、-s 指定LV大小(G)、-n 文件名称、--fstype 文件系统、-p 指定存储池(pool)名称、/dev/sdb{1,2} /tmp/mail_lv 指定使用那些磁盘以及挂载到哪个目录
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!