关于LXD服务器下ZFS文件管理系统的空间释放方法

ZFS 官方文档

docs.oracle.com/cd/E26926_0...

ZFS 失败的解决方法参考教程:ubuntu:20.04 tls ZFS 释放磁盘空间_zfs 删除_净夜凡尘的博客-CSDN博客

ZFS 教程:wuli.wiki/online/ZFS....

情况说明

配置说明:

复制代码
系统:Ubuntu 20.4

配置了:LXD容器服务(其中LXD 使用的文件管理系统是ZFS文件管理系统)

问题:当我使用LXD的相关命令" lxc delete tf "删除不需要的容器时,lxc list 下显示tf容器已经被删除。

但是,查看zfs pool的使用情况后,发现可用空间没有变化。

遂想办法解决。

失败的解决方法

经过google,得知ZFS 模式下 删除文件是不会释放磁盘空间的。文件被删除后,ZFS系统会创建一个快照保留被删除文件在被删除时的状态。 所以,我首先尝试删除ZFS快照是否会释放磁盘空间:

查询ZFS的快照list:sudo zfs list -t all

发现ZFS的快照列表中存在deleted 快照镜像,并且其占据着相当大的空间。

于是下一步准备执行快照删除命令:sudo zfs destroy zfs_01/deleted/containers/f503ba9e-a19c-44a8-93af-e8f158c06b66@deleted-897185ef-089b-4749-be86-c61b06077f3b

但是,无法成功删除,显示有相关克隆容器依赖于该快照,若想删除此快照,必须同时删除依赖于此快照生成的所有克隆容器。

很明显,这是万万不可的!

碰巧的解决方法

Google上游荡一上午之后,并没有找到对应的解决方法,于是准备举手投降、乖乖放弃。

在了解了ZFS文件系统的快照规则后,发现ZFS的快照删除之后也能被恢复(只要其快照还在),于是本着能开机就是好容器的想法,准备将被删除的tf容器重新恢复。

于是找到ZFS文件系统使用快照恢复被删除数据的命令:(恢复快照:)sudo zfs rollback zfs_pool名/fs名@快照1。具体命令如下图:

恢复后,立马查看 lxc list,发现列表没有tf容器,但是查询了zpool list,惊喜的发现 tf占据的硬盘空间被释放了!

于是按照sudo zfs rollback ***命令将所有被删除容器全部都恢复(删除)了一遍,最终被删除的容器所占据的ZFS空间得到了释放!!

又惊又喜!

相关推荐
杨云龙UP22 分钟前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
舰长11526 分钟前
linux系统服务器加固1、中风险 未设置登录失败处理功能和登录连接超时处理功能。2、中风险 未限制默认账户的访问权限。3、中风险 未实现管理用户的权限分离。
linux·运维·服务器
mounter6251 小时前
Linux 7.0 重磅更新:详解 nullfs 如何重塑根文件系统挂载与内核线程隔离
linux·运维·服务器·kernel
色空大师1 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
A.A呐2 小时前
【Linux第十三章】缓冲区
linux·服务器
想唱rap3 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql
cccccc语言我来了4 小时前
Linux(9)操作系统
android·java·linux
Lueeee.4 小时前
Linux驱动中为什么既有 sysfs,又有字符设备?以 DHT11 驱动为例彻底讲透
linux·驱动开发
xlp666hub4 小时前
深度剖析Linux Input子系统(2):驱动开发流程与现代 Multi-touch 协议
linux
zzzsde5 小时前
【Linux】Ext文件系统(1)
linux·运维·服务器