目录
一、逻辑卷(LVM)
LVM(Logic Volume Manager)逻辑卷,传统的硬盘是直接分割后创建文件系统,交由系统进行管理的;当磁盘满了后无法动态扩充,即便可以多加入一块硬盘,对于某些应用服务器而言也是不行的。可以通过磁盘分区工具扩充传统硬盘的分区大小,这样做很可能造成数据丢失,而且文件系统不稳定。而逻辑卷是在现有硬盘的基础之上,在进行抽象,把磁盘抽象成逻辑卷,系统管理逻辑卷,可以动态的扩充大小;即使新加入硬盘,也不会破坏逻辑卷的数据。
pv | 物理卷 | 被处理过的物理分区 |
pe | 物理扩展 | 设定存储最小单元 |
vg | 物理卷组 | 捆绑pv到一个组中 |
lv | 逻辑卷 | 分配最终的使用设备 |
二、LVM设备建立
1、监控的建立
watch -n 1 "pvs;echo =====;vgs;echo =====;lvs;echo =====;df -h /westosdir"
2、lvm设备创建及挂载
打开虚拟机,进行网络配置,设置ip为172.25.254.105(略)
初始化设备/dev/vdb,使用空数据覆盖磁盘设备中的分区表内的数据
使用fdisk交互式创建新的物理设备/dev/vdb1,
将/dev/vdb1标签改为Linux LVM
创建/westosdir作为挂载点。重新打开一个shell,连接172.25.254.105虚拟机,建立监控,便于时实查看pv,vg,lv的状态及数据目录的大小
对新建物理设备/dev/vdb1进行pv格式化即创建pv,创建vg(默认pe最小存储单元大小为4M,也可以-s指定),这里指定pe的大小为2M
使用vgdispaly查看vg的属性信息为2M
删除vg,使用默认为4M的vg
创建LVM,对该LVM格式化,格式化为xfs文件系统,完成后将逻辑卷挂载到/westosdir目录中
3、lvm设备的拉伸
(1)vg容量充足时
lvm设备创建完成后,将其挂载到数据目录中,此时可以对该逻辑卷物理大小进行拉伸(-L参数表示拉伸到多大),但该设备上的文件系统仍为原大小,我们需要xfs_growfs对文件系统也进行拉伸,拉伸完成后由容量为200M左右
(2)vg中容量不足时
设定拉伸大小超过/dev/vdb1的容量大小1G时无法拉伸
使用fdisk /dev/vdb建立新的物理设备/dev/vdb2,将标签改为Linux LVM(见上文)
对/dev/vdb2进行pv格式化创建pv,使用新的物理卷扩展大vg物理卷组,再次拉伸时可以拉伸成功
4、lvm的缩减
由于xfs文件系统不支持lvm的缩减,我们需要卸载数据目录下的lvm设备,将其格式化为支持lvm缩减的ext4文件系统
挂载lvm设备到数据目录中,blkid可以查看到此时lvm的文件系统类型为ext4
在ext4文件系统下对lvm设备进行拉伸,注意对ext4文件系统拉伸时使用resize2fs lvm设备名称
在ext4文件系统下对lvm设备进行缩减:卸载lvm设备,在缩减设备前可以检查一下lvm的分区情况,避免造成数据丢失,接着resize2fs lvm设备 指定大小
对文件系统进行缩减,再对lvm设备进行缩减
5、LVM设备的快照
lvm逻辑卷可以支持快照功能,快照可以保存原始lvm设备里的内容,读取设备时是从母盘读取,但写数据时是写入快照。这样一来,我们可以将lvm设备的快照挂载到指定数据目录中,避免在数据目录中执行操作时对原lvm设备的数据造成损坏。
挂载lvm设备到数据目录/westosdir中,在该目录下新建文件,此时执行删除操作会彻底删除lvm设备中的新建文件
重新在该目录下新建文件,卸载lvm设备,为lvm设备创建快照(-L指定快照设备大小,-n指定快照名称,-s指定快照源)并将快照挂载到数据目录 /westosdir中
查看数据目录可以看到新建的文件,执行删除操作后再次查看数据目录,显示目录为空
卸载并删除该快照,重新为lvm创建一个快照并挂载新创建的快照到数据目录中,查看该数据目录内容可以再次看到文件
6、LVM设备的删除
在对lvm缩减完成后,可以看到物理卷组vg中的物理卷/dev/vdb2是未被使用的,此时我们可以使用vgreduce
命令缩减vg,将闲置的物理卷/dev/vdb2移出vg
如果想要将正在被lvm使用的物理卷/dev/vdb1移出vg,我们需要使用pvmove
命令将/dev/vdb1中的数据移动到物理卷组vg内的另一物理卷/dev/vdb2中,数据移动完成后即可成功将物理卷/dev/vdb1移出vg,缩减vg
执行lvremove 设备
命令删除lvm设备及为lvm设备创建的快照,vgremove
删除物理卷组vg,pvremove
删除物理卷pv,fdisk交互式在/dev/vdb中删除建立的所有物理设备