删除Mastodon缓存以减少存储空间,以及MinIO和LocalStack
大家好,我是无能。
在搭建Mastodon实例时,不可避免地会出现存储问题。
由于它会获取所有其他服务器的信息,因此其膨胀是无法避免的。
因此,我找到了一个看起来不错的脚本。
用Bash编写脚本
看来,可以使用Mastodonv4.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服务器。
那么,下次再见。请多关照。