admin 管理员组

文章数量: 887006

esxi linux虚拟机空间回收(lvm /root缩容)

背景:vsphere平台上有一台虚拟机置备了1.5T的空间,挂载在/dev/mapper/osvg_root_lv上,实际只使用了100G的空间。整个平台空间越来越紧张,所以准备回收空间,缓解问题。

图就不上了,centos6.8的系统,图片没什么用。

具体步骤:

1.复制此台虚拟机,置备时选择精简置备,否则还得找1.5T的空间,精简的150G就够。

2.下面的操作都是在副本上操作,原机器在确认副本正常运行后才能抹掉,业务也不用中断:

        1.挂载linux CD,开机按F2设置bios从CD启动,进入光盘上的系统后选择rescue模式,提示挂载硬盘上的系统时选skip跳过。

        2.进入rescue mode后,输入ls /dev/mapper,没有发现/dev/mapper/osvg/root_lv这个lv分区,但是输入vgdisplay可以看到osvg。

        输入vgscan扫描vg,提示found volume group osvg。

        输入 vgchange -ay osvg,激活osvg。

输入lvdisplay 可以看到/dev/osvg/root_lv的信息。以后已用此路径作为rootlv的名字。

输入 resize2fs /dev/osvg/root_lv 100G 尝试将/root缩减到100G,结果提示需要运行e2fsck。

按照提示输入e2fsck -f /dev/osvg/root_lv

等扫描完以后再次输入resize2fs /dev/osvg/root_lv 100G,就会执行缩容动作了。

输入lvreduce -L 100G /dev/osvg/root_lv将lv缩容。

输入lvdisplay查看操作的结果,发现lv已经缩到了100G。此时osvg还没有缩小,硬盘空间仍在被占用。

vg的缩容比较繁琐,涉及到vg的理解。此处稍作提示:vg实际上是把几个pv合成一个大的逻辑盘,而pv是由硬盘的分区直接转换而成的,所以本质上vg的增加和缩减都是以硬盘分区为单位的。

这里要缩小vg的容量,可以用pvmove,把数据从一个硬盘分区拷贝到另一个小的分区,再把原来大的分区删掉,就完成了vg的缩减。

输入pvs -o+pv_used查看pv的使用情况,我这里查到/dev/sda3 使用了122G.所以要给系统增加一块122G以上的盘。

增加硬盘后输入fdisk -l看到/dev/sdb出现

输入pvcreate /dev/sdb转换分区为pv

输入 vgextend osvg /dev/sdb 将sdb加入vg,否则不在同一vg无法使用pvmove。

输入pvmove /dev/sda3 /dev/sdb,将数据从sda3移动到sdb。此过程在机械硬盘上非常长。有条件建议复制虚拟机时直接复制到固态硬盘上。亲测速度几乎能快10-30倍。

完成后输入vgreduce /dev/osvg /dev/sda3 将/dev/sda3 移出osvg。

移动完成后再次输入pvs -o+pv_used看到sda3已经不在osvg里了。

输入pvremove /dev/sda3将sda3还原。

输入fdisk  /dev/sda ,然后输入d 删除分区,输入3 回车,w保存。

弹出光盘 reboot

输入df -Th,发现osvg-root_lv已经变为99G.

reboot 查看服务能否正常启动,关键数据有没有丢失。如果数据丢失,因原机还在,可从原机关机中拷贝数据到副本。无误后关机。

ssh登录到esxi主机,cd 到副本的存储目录下,du -sh * 查看各文件大小,找到sda那个盘的vmdk配置文件,vi 修改 #Extent description 下面的数字。计算方法:

40G=40*1024*1024*1024/512=83886080

修改后:wq保存。

将副本迁移至另外一个物理主机。此时esxi中sda会变成修改的大小。

再次确认没问题后,可将原系统从硬盘中删除。

亲测成功

本文标签: esxi linux虚拟机空间回收(lvm root缩容)