刪除 Mastodon 快取以減少儲存空間,以及關於 MinIO 和 LocalStack

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是無能。
在建立 Mastodon 實例時,不可避免地會遇到儲存空間問題。
由於它會取得所有其他伺服器的資訊,因此其膨脹是無法避免的。
我在那裡找到了一個看起來不錯的腳本。

使用 Bash 腳本化

看來,可以使用 Mastodon v4.1 以後才有的tootctl來批量刪除。
Improving Mastodon’s disk usage
因此,我將其更改為 1 天,並完整複製如下。

#!/bin/bash

# Prune remote accounts that never interacted with a local user
RAILS_ENV=production /home/sns/mastodon/bin/tootctl accounts prune;

# Remove remote statuses that local users never interacted with older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl statuses remove --days 1;

# Remove media attachments older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove --days 1;

# Remove all headers (including people I follow)
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove --remove-headers --include-follows --days 0;

# Remove link previews older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl preview_cards remove --days 1;

# Remove files not linked to any post
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove-orphans;

因為需要很長時間,所以我還無法判斷能釋放多少儲存空間^^;

理想的家用物件儲存

最近,我正在考慮在實際運行的伺服器之外,再設置一個專門用於儲存的伺服器。
原因如下:

  • 當大檔案放在另一個磁碟上時,磁碟故障會導致 Linux 核心因磁碟 I/O 錯誤而停滯。
  • 擺脫檔案系統依賴
  • 將執行二進位檔分開會更清晰

還有其他原因,但簡而言之就是上述這些。
特別是第一項的 I/O 錯誤,我了解到它在重啟時也會停滯,有時甚至需要直接拔掉磁碟(雖然可以透過修改核心參數並重新編譯來避免),所以看來有必要這麼做。

關於擺脫檔案系統依賴,我雖然想使用強大的ZFS,但在 Linux 環境中使用的ZFS只是模擬副本,並非完整的ZFS
如果想使用ZFS,就需要建立並使用FreeBSD環境。
至於RAID則更加複雜,如果 RAID 卡損壞,可能無法恢復,所以我不會使用。
因此,我希望將FreeBSD用作物件儲存伺服器。

至於將執行二進位檔分開會更清晰這一點,只是因為在考慮分散式系統時,我希望建立一個像過去的Plan9那樣,可以通用使用的儲存區域的獨立環境。
如果只是執行程式,並不需要數百 GB 或數 TB 的空間。

MinIO 與 LocalStack

LocalStack 似乎可以模擬 AWS S3,但免費版無法持久化,存在限制。
作為更開源的物件儲存,如果要在實際伺服器上部署,MinIO似乎是個不錯的選擇。
LocalStack:用於臨時使用 AWS S3 模擬環境,例如開發環境。
MinIO:用於建立物件儲存伺服器。
看來應該這樣區分使用。
因此,我將建立MinIO伺服器。


那麼,下次再見。請多關照。

Related Posts