夸克之书

  • 首页
  • 科普
  • 笔记
  • C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. 默认
  3. 正文

PVE重启后LVM Thin数据丢失,错误:Volume group "****" has insufficient free space (128 extents): 4048 required.

2021-02-18 5677点热度 0人点赞 0条评论

先聊一点题外话,感觉PVE这玩意儿还不是很稳啊。除本篇文章记录的错误之外,还遇到不少不大不小的问题了。甚至一度想换回ESXI,毕竟ESXI稳的一笔。但ESXI唯一的缺点就是不支持CPU虚拟化和直通同时开启。

故障:重启后lvm thin容器在pve管理界面中显示使用容量为0(实际上已经使用100多个G了),导致虚拟机无法启动。

第一次出现此问题的时候,使用lvconvert命令可以修复。修复命令如下:

lvconvert --repair /dev/local-vd1r1-hdd/local-vd1r1-hdd   #local-vd1r1-hdd为vg名称和lv名称

但是过了没多久,我重启PVE服务器之后再次出现此问题,然而这次使用lvconvert无法修复了,报错如下:

Volume group "******" has insufficient free space (128 extents): 4048 required.

第二次再次出现此问题,就不敢大意了。虽然说现在机器里面的数据少,但是如果以后频繁出现此问题,那就比较糟糕了。

使用vgdisplay查看卷组状态.。

root@cn-hk1:/var/log# vgdisplay
  --- Volume group ---
  VG Name               local-vd1r1-hdd
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1966
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                452
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <6.52 TiB
  PE Size               4.00 MiB
  Total PE              1708391
  Alloc PE / Size       1708263 / <6.52 TiB
  Free  PE / Size       128 / 512.00 MiB
  VG UUID               ***********************

vgdisplay显示Free PE只有128个区块可用。但是这个vg分明就是在pve管理界面自动创建的,怎么会出现溢出的情况。反正写这篇博客为止,翻遍baidu和google都未找到相关资料,如果有小伙伴知道原因,不妨留言告诉我一下,一定执经叩问。

不管怎么说,至少原因是找到了。既然空闲区块不够,那就给它加上呗。好在LVM的一大特性就是方便扩展。

第一种扩展方式是添加硬盘,加一块硬盘上去,使用fdisk创建Linux LVM分区,然后创建PV,将PVE中创建的VG用vgextent扩展到新加的硬盘即可。

第二种是在pve更目录下创建一个虚拟磁盘。容量不用太大,32G足够。然后将虚拟磁盘挂载到loop,再用fdisk创建Linux LVM分区。这样的好处就是不用新加一块硬盘,缺点就是必须保证pve根目录空间够大。

这里重点讲一下第二种方式,第一种方式就是常规的硬盘挂载和分区,没有什么需要注意的地方。直接挂载虚拟磁盘文件在手里面没有多余的储存设备的情况下非常有用。

1、首先创建一个32G的虚拟磁盘文件

dd if=/dev/zero of=~/temp.img bs=1024M count=32       #count大小为32G,可以修改为自己需要的

2、为虚拟磁盘文件创建分区

fdisk ~/temp.img

在创建分区时,注意将Linux filesystem转换为Linux LVM。

%title插图%num

3、挂载虚拟磁盘文件

losetup -Pf --show ~/temp.img

命令完成后,将显示挂载到的loop设备,一般是loop0。

其中参数

-P 强制要求核心扫描loop设备中的分区表
-f 自动寻找并使用第一个未用的loop设备
--show 输出所分配的loop设备

可以使用lsblk命令查看loop0挂载情况,可以看到loop0和分区loop0p1已经挂载到系统上。操作结束后,可以使用losetup -d /dev/loop0卸载虚拟磁盘文件。

4、创建PV

pvcreate /dev/loop0p1

之后就按照lvm扩展的步骤进行扩展,具体扩展方法,就不赘述了,网上有很多相关资料。扩展完成之后,再次使用lvconvert修复lv。

lvconvert --repair /dev/local-vd1r1-hdd/local-vd1r1-hdd

有一点需要注意的就是,如果出现本文中的情况,千万不要去操作虚拟机或者更改出现问题LVM中的虚拟磁盘文件。我手贱去点了一哈恢复快照,然后......血的教训啊。

通过扩展LVM的vg,我是解决了上面的问题,然后火速备份虚拟机中的文件。重装了PVE,然后手动创建LVM分区和LVM-thin瘦池,手动创建的时候,预留了足够的硬盘空闲空间。

希望以后不会再次出现这种问题吧。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021-03-22

管理员

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
放松一下
https://www.quarkbook.com/wp-content/uploads/2021/05/凤凰传奇-海底(Live).flac
分类
  • C#
  • Linux
  • 树莓派
  • 物联网
  • 科普
  • 笔记
  • 算法
  • 默认
最新 热点 随机
最新 热点 随机
Windows移除多余输入法'Unknown Locale (qaa-Latn)' 【算法】具有层级关系的城市,例如"中国 广州","中国 浙江 杭州" 一个 List 最后应该是转成树状图输出 树莓派安装Golang环境 树莓派 Zero USB/以太网方式连接配置教程 树莓派Zero 2 w超频 PVE使用山克UPS(ViewPower)
解决Visual Studio 2022中无法编译 .NET Framework 4.5/4.5.1项目(Visual Studio 2022安装.NET Framework 4.5)PVE使用山克UPS(ViewPower)树莓派Zero 2 w超频树莓派 Zero USB/以太网方式连接配置教程树莓派安装Golang环境【算法】具有层级关系的城市,例如"中国 广州","中国 浙江 杭州" 一个 List 最后应该是转成树状图输出
树莓派4系统下载(集合) Vieu主题作者疑似跑路?这人品?!!! Hyper-v 开启嵌套虚拟化方法 谈谈Js的回调函数 极路由B70刷固件详细步骤 C#中抽象类(abstract)和接口(interface)的相同点与区别
最近评论
去月球 发布于 4 个月前(01月17日) 如果使用CSI的摄像头应该怎么修改命令呢
Me 发布于 5 个月前(12月31日) 好像还得写启动项 要不重启就还原了。
十三 发布于 5 个月前(12月23日) 大神,网盘链接失效了,重新分享一下吧,
一键快乐 发布于 11 个月前(07月09日) 老哥 我替换之后能进去了但是网络和声音上有两个×怎么办
翩翩蒯公子 Maxwell 发布于 1 年前(05月15日) 赞一个,挺好的文章。
书签
  • 打赏
  • 毒鸡汤(有点意思)
  • 米店
  • 金鱼直播间

COPYRIGHT © 2022 quarkbook.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15036129号-9

登录
注册|忘记密码?