【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 stopStopping seahub ...
Failed to stop seahub.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh stopStopping seafile server ...
Done.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seaf-gc.shStarting 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 doneDone.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh startStarting seafile server, please wait ...
Seafile server startedDone.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh startStarting seahub at port 8000 ...Seahub is startedDone.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 stopStopping seahub ...
Done.root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh stopStopping 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 doneDone.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seafile.sh startStarting seafile server, please wait ...
Seafile server startedDone.
root@704cb904937d:/opt/seafile/seafile-server-11.0.8# ./seahub.sh startStarting seahub at port 8000 ...Seahub is startedDone.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才能成功回收空間。

疑問:如果有多個目錄執行了刪除和清空操作,不知道是不是每個存儲目錄都要這樣執行,如果是,那肯定是令人崩潰的。這個我就不做測試了……

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20745.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20745.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20745.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據賦能(106)——方法論:描述模式與AI——批量處理

在一系列相似的主題內容進行編寫時,可以采用批處理的方式。主要步驟如下: 1、確定主題內容模式。如:各個主題的概述中,包括如下內容模式項目:工作主要目的、工作重要性、工作核心內容、工作本質 2、確定模式的各項內…

C++設計模式-狀態模式

文章目錄 28. 狀態模式 運行在VS2022,x86,Debug下。 28. 狀態模式 狀態模式讓一個對象的行為隨著內部狀態的改變而改變,而該對象也像換了類一樣。應用:如在游戲開發中,游戲有不同場景,如主菜單、開始、戰斗…

在leafet上畫圓、多邊形、線、矩形

在leaflet上畫圓、多邊形、線、矩形 <template><div id"map" class"map"></div> </template><script> import L from leaflet; export default {data () {return {myGroup: ,};},mounted () {this.initMaps()this.huizhiro…

Houdini的PythonScript基本使用

前言 Houdini內置了Python腳本和相應的編輯器, 很多時候想靈活的制作各種Houdini工具, 基本是必須用到 Python。Houdini官方的python提供了非常完善的接口, 比如可以創建各種節點&#xff0c;連接各種節點&#xff0c;遍歷節點各種數據&#xff0c;遍歷節點參數等等。 Houdin…

Spring中Bean的生命周期詳解

目錄 Bean的定義和作用Bean的生命周期概述Bean實例化階段依賴注入階段初始化階段Bean的使用銷毀階段完整的Bean生命周期流程示例代碼總結 Bean的定義和作用 在Spring框架中&#xff0c;Bean是指由Spring IoC容器管理的Java對象。Bean是構建Spring應用程序的基本單元&#xf…

word避免畫質畫質模糊方法

問題描述&#xff1a; ??近期寫文檔時會高頻率貼圖&#xff0c;粘圖過程中發現Word會自動壓縮圖片畫質&#xff0c;而且壓縮得很嚴重&#xff0c;下面是一幅圖被壓縮前后的畫質對比 &#xff08;圖片壓縮前&#xff09; &#xff08;圖片壓縮后&#xff09; 解決方案&#x…

基于JSP的九宮格日志網站

你好呀&#xff0c;我是學長貓哥&#xff01;如果有需求可以文末加我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;JSP技術 工具&#xff1a;瀏覽器/服務器&#xff08;B/S&#xff09;結構 系統展示 首頁 管理員功能模塊 用戶功能模塊 摘要 本…

GPT-4o VS GPT-3.5 完勝

前言&#xff1a; 最近&#xff0c;GPT-4o已經限時免費開放了&#xff0c;試了一下&#xff0c;然后&#xff0c;說我的時間到了&#xff0c;然后&#xff0c;有給我轉到3.5&#xff0c;正好遇到一個問題做一下對吧&#xff0c;感覺4O完勝啊。3.5還是很好胡謅&#xff0c;也就…

[Algorithm][動態規劃][子序列問題][最長定差子序列][最長的斐波那契子序列的長度]詳細講解

目錄 1.最長定差子序列1.題目鏈接2.算法原理詳解3.代碼實現 2.最長的斐波那契子序列的長度1.題目鏈接2.算法原理詳解3.代碼實現 1.最長定差子序列 1.題目鏈接 最長定差子序列 2.算法原理詳解 思路&#xff1a; 確定狀態表示 -> dp[i]的含義 以i位置元素為結尾的所有子序列…

Python知識點3---條件判斷語句

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的條件判斷語句和其他的語言有些不一樣&#xff0c;它只有if語…

【從加載數據庫驅動包,理解java SPI】

SPI&#xff08;Service Provider Interface&#xff09; 從1.6引入&#xff0c;基于ClassLoader 來加載并發現服務的機制 對于msyql驅動 引入依賴 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><v…

11.2 選擇排序

目錄 11.2 選擇排序 11.2.1 算法特性 11.2 選擇排序 選擇排序&#xff08;selection sort&#xff09;的工作原理非常簡單&#xff1a;開啟一個循環&#xff0c;每輪從未排序區間選擇最小的元素&#xff0c;將其放到已排序區間的末尾。 設數組的長度為 &#x1d45b;…

華東師范大學研究團隊《Ecology Letters 》揭示植物如何改變其物候以響應全球變化

自工業革命以來&#xff0c;人類活動導致多種環境因子同時發生變化&#xff0c;包括氣候變暖、降水模式改變、氮沉降增加和大氣CO2升高。這些變化預計會影響植物生命周期事件的季節時序—植物物候&#xff08;Nature Reviews Earth & Environment | 傅伯杰院士團隊發文闡述…

[C][棧幀]詳細講解

目錄 1.棧幀1.進程地址空間2.棧幀說明 2.認識相關寄存器3.認識相關匯編命令4.過程理解5.棧幀總結6.補充 1.棧幀 1.進程地址空間 .進程地址空間 2.棧幀說明 調用函數&#xff0c;形成棧幀函數返回&#xff0c;釋放棧幀局部變量是存放在棧區上的棧區內存的使用習慣是&#xff…

BPTT算法詳解:深入探究循環神經網絡(RNN)中的梯度計算【原理理解】

引言 在深度學習領域中&#xff0c;我們經常處理的是獨立同分布&#xff08;i.i.d&#xff09;的數據&#xff0c;比如圖像分類、文本生成等任務&#xff0c;其中每個樣本之間相互獨立。然而&#xff0c;在現實生活中&#xff0c;許多數據具有時序結構&#xff0c;例如語言模型…

什么是PLAB?

接上文PLAB---》 可以看到和TLAB很像&#xff0c;PLAB即 Promotion Local Allocation Buffers。用在年輕代對象晉升到老年代時。 在多線程并行執行YGC時&#xff0c;可能有很多對象需要晉升到老年代&#xff0c;此時老年代的指針就"熱"起來了&#xff0c;于是搞了個…

Google Cloudbuild yaml file 中 entrypoint 和 args 的寫法

編寫cloudbuild.yaml 時有幾個關鍵參數 entrypoint 和 args 的基本介紹 id: 顯示在 cloud build logs 里的item 名字 name: docker 鏡像名字 - 下面的命令會在這個鏡像的1個容器instance 內執行 entrypoint: 執行的命令入口 &#xff0c; 只能有1個對象 args&#xff1a; 命名…

函數的創建和調用

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 提到函數&#xff0c;大家會想到數學函數吧&#xff0c;函數是數學最重要的一個模塊&#xff0c;貫穿整個數學學習過程。在Python中&#xff0c;函數…

深入解析 YOLOv8 中的 `conv.py`(代碼圖文全解析-下)

&#x1f60e; 作者介紹&#xff1a;我是程序員行者孫&#xff0c;一個熱愛分享技術的制能工人。計算機本碩&#xff0c;人工制能研究生。公眾號&#xff1a;AI Sun&#xff0c;視頻號&#xff1a;AI-行者Sun &#x1f388; 本文專欄&#xff1a;本文收錄于《yolov8》系列專欄&…

【linux軟件基礎知識】與調度相關的進程描述符

進程描述符 每個進程描述符都包括幾個與調度相關的字段,如下代碼所示: //include/asm-arm/thread_info.h /** low level task data that entry.S needs immediate access to.* __switch_to() assumes cpu_context follows immediately after cpu_domain.*/ struct thread_in…