【Seafile】Seafile容器版文件删除后存储空间不释放问题解决

        Seafile是一款非常优秀的网盘系统,我们可以根据官方文档,在本地虚拟机研究Seafile免费版的安装和使用,安装建议采用使用docker容器的方式。

不过在使用过程中,刚接触的小伙伴可能会遇到这样的问题:

删除网盘里面的文件,发现虚拟机里面的存储空间并未主动释放……

下面我就为大家演示如何去解决这个问题。

首先,我们在网盘里面上传两个大的软件,如下图所示:

然后,我们可以虚拟机的存储目录的空间占用和数据分片信息,如下所示:

# du -sh *
4.0K    current_version
0       httptemp
0       library-template
214M    storage
0       tmpfiles
# pwd
/data/seafile/data/seafile/seafile-data
# cd storage/
# ls
blocks  commits  fs
# cd blocks/
# du -sh *
24K     3c37d12a-0f22-4e40-8b91-fc8212be6186
4.0K    58911f86-a218-4705-a7f9-affe50d26e61
214M    621bedb8-cf9d-42c5-87df-622f5d2447a0
# cd 621bedb8-cf9d-42c5-87df-622f5d2447a0
# du -sh *
8.0M    00
8.0M    09
8.0M    0f
8.0M    1b
8.0M    2d
8.0M    37
16M     55
8.0M    60
8.0M    63
8.0M    64
16M     67
8.0M    68
8.0M    71
8.0M    86
8.0M    98
1.6M    9f
8.0M    a6
8.0M    ac
8.0M    b8
8.0M    d2
4.2M    d8
8.0M    dc
8.0M    e2
8.0M    f1
8.0M    f8
8.0M    fc

现在,我们来删除网盘中的两个软件,然后再来看存储空间的使用情况。

然后点击页面的回收站图标,进入回收站,并清空回收站中的垃圾,选择【全部】,然后【提交】即可。

存储空间并未减小

# du -sh *
4.0K    current_version
0       httptemp
0       library-template
214M    storage
0       tmpfiles
# pwd
/data/seafile/data/seafile/seafile-data

【解决】

第一步,连接到seafile的容器实例。

# docker-compose -f ./myseafile-20240529.yml ps
NAME                    IMAGE                                     COMMAND                   SERVICE         CREATED             STATUS             PORTS
seafile                 seafileltd/seafile-mc:11.0.8              "/sbin/my_init -- /s…"   seafile         About an hour ago   Up About an hour   0.0.0.0:80->80/tcp, :::80->80/tcp

# docker exec -ti seafile /bin/bash
root@704cb904937d:/opt/seafile# ls
ccnet  conf  logs  pids  pro-data  seafile-data  seafile-server-11.0.8  seafile-server-latest  seahub-data

第二步,执行seahub.sh和seafile.sh的关闭、seaf-gc.sh、启动seahub.sh和seafile.sh,最后exit退出容器。

root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh stop

Stopping seahub ...
Failed to stop seahub.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh stop

Stopping seafile server ...
Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seaf-gc.sh

Starting seafserv-gc, please wait ...
2024-05-30 16:48:36 gc-core.c(590): GC version 1 repo My Library Template(f1a3739b-e3e6-461c-b253-698705112697)
2024-05-30 16:48:36 gc-core.c(395): No blocks. Skip GC.

2024-05-30 16:48:36 gc-core.c(590): GC version 1 repo 软件资源(621bedb8-cf9d-42c5-87df-622f5d2447a0)
2024-05-30 16:48:36 gc-core.c(417): GC started. Total block number is 28.
2024-05-30 16:48:36 gc-core.c(41): GC index size is 1024 Byte.
2024-05-30 16:48:36 gc-core.c(442): Populating index.
2024-05-30 16:48:36 gc-core.c(187): Populating index for repo 621bedb8.
2024-05-30 16:48:36 gc-core.c(271): Traversed 2 commits, 18 blocks.
2024-05-30 16:48:36 gc-core.c(460): Scanning and deleting unused blocks.
2024-05-30 16:48:36 gc-core.c(500): GC finished. 28 blocks total, about 18 reachable blocks, 10 blocks are removed.

2024-05-30 16:48:36 gc-core.c(590): GC version 1 repo 我的文档(58911f86-a218-4705-a7f9-affe50d26e61)
2024-05-30 16:48:36 gc-core.c(417): GC started. Total block number is 1.
2024-05-30 16:48:36 gc-core.c(41): GC index size is 1024 Byte.
2024-05-30 16:48:36 gc-core.c(442): Populating index.
2024-05-30 16:48:36 gc-core.c(187): Populating index for repo 58911f86.
2024-05-30 16:48:36 gc-core.c(271): Traversed 2 commits, 1 blocks.
2024-05-30 16:48:36 gc-core.c(460): Scanning and deleting unused blocks.
2024-05-30 16:48:36 gc-core.c(500): GC finished. 1 blocks total, about 1 reachable blocks, 0 blocks are removed.

2024-05-30 16:48:36 gc-core.c(534): === Repos deleted by users ===
2024-05-30 16:48:36 gc-core.c(606): === GC is finished ===
seafserv-gc run done

Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh start

Starting seafile server, please wait ...
Seafile server started

Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh start

Starting seahub at port 8000 ...

Seahub is started

Done.

root@704cb904937d:/opt/seafile/seafile-server-11.0.8# exit

这样执行后,发现storage还是142M,说明上面的方法没有回收空间。

# du -sh *
4.0K    current_version
0       httptemp
0       library-template
142M    storage
0       tmpfiles

然后,我们再次上传一个文件到软件资源目录下,然后再执行删除,再清空回收站,然后再次执行上面的服务停止脚本和GC脚本

root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh stop

Stopping seahub ...
Done.

root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh stop

Stopping seafile server ...
Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seaf-gc.sh 

Starting seafserv-gc, please wait ...
2024-05-30 16:54:40 gc-core.c(590): GC version 1 repo My Library Template(f1a3739b-e3e6-461c-b253-698705112697)
2024-05-30 16:54:40 gc-core.c(395): No blocks. Skip GC.

2024-05-30 16:54:40 gc-core.c(590): GC version 1 repo 软件资源(621bedb8-cf9d-42c5-87df-622f5d2447a0)
2024-05-30 16:54:40 gc-core.c(417): GC started. Total block number is 19.
2024-05-30 16:54:40 gc-core.c(41): GC index size is 1024 Byte.
2024-05-30 16:54:40 gc-core.c(442): Populating index.
2024-05-30 16:54:40 gc-core.c(187): Populating index for repo 621bedb8.
2024-05-30 16:54:40 gc-core.c(271): Traversed 2 commits, 1 blocks.
2024-05-30 16:54:40 gc-core.c(460): Scanning and deleting unused blocks.
2024-05-30 16:54:40 gc-core.c(500): GC finished. 19 blocks total, about 1 reachable blocks, 18 blocks are removed.

2024-05-30 16:54:40 gc-core.c(590): GC version 1 repo 我的文档(58911f86-a218-4705-a7f9-affe50d26e61)
2024-05-30 16:54:40 gc-core.c(417): GC started. Total block number is 1.
2024-05-30 16:54:40 gc-core.c(41): GC index size is 1024 Byte.
2024-05-30 16:54:40 gc-core.c(442): Populating index.
2024-05-30 16:54:40 gc-core.c(187): Populating index for repo 58911f86.
2024-05-30 16:54:40 gc-core.c(271): Traversed 2 commits, 1 blocks.
2024-05-30 16:54:40 gc-core.c(460): Scanning and deleting unused blocks.
2024-05-30 16:54:40 gc-core.c(500): GC finished. 1 blocks total, about 1 reachable blocks, 0 blocks are removed.

2024-05-30 16:54:40 gc-core.c(534): === Repos deleted by users ===
2024-05-30 16:54:40 gc-core.c(606): === GC is finished ===
seafserv-gc run done

Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh start

Starting seafile server, please wait ...
Seafile server started

Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh start

Starting seahub at port 8000 ...

Seahub is started

Done.

root@704cb904937d:/opt/seafile/seafile-server-11.0.8# exit
exit

再次查看存储目录,发现空间回收成功了。

# du -sh *
4.0K    current_version
0       httptemp
0       library-template
1.4M    storage
0       tmpfiles

不清楚为什么官方会这么设计,貌似同一个目录需要执行两次删除和清空文件,清空回收站文件后,在容器实例里面执行停止和GC脚本,第二次执行GC才能成功回收空间。

疑问:如果有多个目录执行了删除和清空操作,不知道是不是每个存储目录都要这样执行,如果是,那肯定是令人崩溃的。这个我就不做测试了……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/665015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

煤矿输送设备无人化运维巡检解决方案

一、煤矿行业目前存在的挑战和难题 煤矿行业面临着复杂的环境,如粉尘、潮湿、高温、高瓦斯等,对巡检设备和人员安全有威胁。并且设备分布广、需要长时间作业,全面巡检难度大、对巡检工作的耐力和持续性要求高。而煤矿输送设备无人化运维巡检…

OAK相机如何将 YOLOv10 模型转换成 blob 格式?

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是Ashely。 专…

MedSAM 学习笔记(续):训练自定义数据集

1、下载官方权重 官方的预训练权重:https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth 下载后保存在:work_dir/SAM/sam_vit_b_01ec64.pth 目录 2、摆放数据集 因为MedSAM 分割模型需要对3D数据集进行切片处理,也就是对nii.gz 数据处理成 npy 格式 …

计算机图形学入门05:投影变换

1.投影变换 上一章已经介绍了投影变换,就是将三维图像投影到二维平面上,而投影变换又分为正交投影(Orthographic Projection)和透视投影(Perspective Projection)。如下图: 正交投影 没有近大远小的现象,无论图形与视点距离是远是…

通过定时器和脉冲控制LED

一、定时器 (一)定时器简介 STM32定时器是STM32微控制器中的重要块,用于生成精确的时间基准。它可以用于测量时间间隔、产生脉冲、实现定时中断等功能。通过配置寄存器,用户可以灵活地控制定时器的工作模式和参数,实现…

Visual Studio Code使用(C++项目新建,运行)

VS Code 直接在官网下载安装。 接下来安装插件,下图是C所需的对应插件 1.新建项目 VS Code下载安装完成后,直接进入欢迎页: 在访达/文件夹中新建一个文件夹,欢迎页点击【打开】,选择刚刚新建的文件夹。点击第一个图…

材质技术在AI去衣中的作用

随着人工智能技术的飞速发展,越来越多的应用场景开始涌现。其中,AI去衣技术作为一种新兴的图像处理技术,已经在很多领域得到了广泛的应用。而在AI去衣技术中,材质技术起到了至关重要的作用。本文将详细介绍材质技术在AI去衣中的作…

autocad背景色、引线文字大小

一、改变背景 在命令行输入op,回车,弹出配置对话框: 二、改变引线文字大小 选中引线,右键选择【特性】,在文字选项卡中设置文字高度:

【机器学习】探索未来科技的前沿:人工智能、机器学习与大模型

文章目录 引言一、人工智能:从概念到现实1.1 人工智能的定义1.2 人工智能的发展历史1.3 人工智能的分类1.4 人工智能的应用 二、机器学习:人工智能的核心技术2.1 机器学习的定义2.2 机器学习的分类2.3 机器学习的实现原理2.4 机器学习的应用2.5 机器学习…

JVM-之GC日志

一、 开启gc 日志 在项目中开启GC 日志打印后会查看gc 日志如下 nohup java -Xms768m -Xmx768m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./dumplog/dumplog.log -Xloggc:./dumplog/gc.log -XX:PrintGCDetails -XX:PrintGCDateStamps -XX:PrintHeapAtGC -jar xxxx…

校园安保巡逻机器人

2023年8月5日,陕西西安一高校实验室起火冒烟,导致学校化学实验室发生火灾。2022年8月3日,一名歹徒持械闯入江西吉安安福县城的一家私立幼儿园,对着无辜的幼儿行凶伤人,造成3死6伤。 像这样的事故有不断地发生&#xf…

[个人笔记] 记录docker-compose使用和Harbor的部署过程

容器技术 第三章 记录docker-compose使用和Harbor的部署过程 容器技术记录docker-compose使用和Harbor的部署过程Harborhttps方式部署:测试环境部署使用自签名SSL证书https方式部署:正式环境部署使用企业颁发的SSL证书给Docker守护进程添加Harbor的SSL证…

世界500强是如何解决邮件大附件影响业务问题的

电子邮件已成为众多企业沟通和文件传输的重要工具。然而,邮件发送大附件时,企业往往会遇到一系列挑战。本文将探讨邮件发送大附件的优劣势,分析其对业务可能造成的问题,并介绍500强企业是如何解决这些问题的。 邮件发送大附件的优…

NSS题目练习5

[NISACTF 2022]babyupload 打开后尝试上传php,jpg,png文件都没成功 查看源代码发现有个/source文件 访问后下载压缩包发现有一个python文件 搜索后知道大致意思是,上传的文件不能有后缀名,上传后生成一个uuid,并将uuid…

姚班带队OpenCSG,超越Devin,创造大模型编程领域新纪录

摘要 来自中国大模型初创公司OpenCSG推出的StarShip CodeGen Agent,以23.67%的成绩刷新了普林斯顿SWEBench(大模型真实独立编程评测)排行榜,取得了全球第二名的成绩,同时创造了非GPT-4o基模的最高纪录(SOTA)。 SWEBen…

Leecode---动态规划--爬楼梯 / 杨辉三角

爬楼梯题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 思路: 设跳上 n 级台阶有 f(n) 种跳法。在所有跳法中,青蛙的最后一步只有两种情况: 跳上…

java多态——向下转型

引入 前面我尝试了一下这个代码 package b;public class main_ {public static void main(String[] args) {//向上转型,父类的引用转向了子类的father_ animalnew graduate();Object objnew graduate();System.out.println(animal.name);System.out.println(obj.n…

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口

【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口 文章目录 【验证码识别】Yolov8入门到实战点选验证码数据集分类训练,孪生训练,导出onnx,搭建部署接口声明一、标…

冯喜运:5.31晚间黄金原油行情还会跌吗?独家操作策略建议

【黄金消息面分析】:在金融市场的波动中,黄金作为传统的避险资产,其价格走势一直受到投资者的密切关注。周五(5月31日),现货黄金小幅波动,目前稳定在2340美元关口上方。美国核心PCE通胀数据作为美联储的首选通胀指标&a…

【力扣】LCR 130. 衣橱整理

一、题目描述 二、算法思路 这是⼀道非常典型的「搜索」类问题。 我们可以通过「深搜」或者「宽搜」,从 [0, 0] 点出发,按照题目的要求(选择 向右移动一格 或 向下移动一格,但不能移动到衣柜之外 )一直往 [m - 1, …