Misskey/FirefishなどのDBバックアップをzstdで圧縮する
概要
Misskey/FirefishなどAcitvity Pub互換サーバーを運用する上で、バックアップは非常に重要ですが、運用の経過で自然とバックアップサイズが大きくなることは運用者を悩ませます。
そこでzstdを使ったバックアップの圧縮がおすすめです。
今回紹介するzstd(ZStandard)は比較的新しい圧縮アルゴリズムです。開発者はYann Collet氏です。Ubuntu 22.04 LTS(server含む)にはzstdから始まるコマンドラインツールがデフォルトで同梱されており、従来使われてきたgzipよりも高圧縮で高速な圧縮伸張をサポートします。
使い方
コマンドラインツールzstdは標準入力に受け取った内容を圧縮して標準出力に出します。zstdcatは逆に標準入力か第一引数のファイルを伸張して標準出力に出します。
具体的には以下のように実行できます。
1 2 3 4 |
# zstdで圧縮 pg_dumpall -U <pgのユーザー名> | zstd > backup.zst # zstdcatで伸張 zstdcat backup.zst | psql -U <pgのユーザー名> -d <pgのdb名> |
ちなみにzstdcatを含めてgzipやプレーンテキストを渡しても処理できるので、catやzcatで読んでいた処理をそのままzstdcatに置き換えるだけで既存のバックアップも問題なく使えます。
運用しているMisskeyサーバーではzstdの圧縮率は非圧縮比で1/3~1/4になりました。
1 2 3 4 5 6 |
# みおきー 3.6G Dec 16 17:03 2023.11.1-mio.backup 1005M Dec 16 17:37 2023.11.1-mio.backup.zst # みーくりあ! 1.9G Dec 16 17:01 2023.11.1.backup 564M Dec 16 17:47 2023.11.1.backup.zst |
https://mi.okin-jp.net/@okin_p(Misskey)
https://fi.okin-jp.net/@okin_p(Firefish)
https://si.okin-jp.net/@okin_p(Mastodon)
https://fedifile.net/@okin_p/profile/
https://twpf.jp/okin_p
http://profile.hatena.ne.jp/okin_p/
名前:おきん
やってること:面倒なことをPHPにやらせる、IPv6でなにかする、車で移動する
主なガジェット:Google Pixel 4a (5G) ,iPhone XS(ジャンク), iPad mini5, その他
種別:猫 over IPv6 run on PHP
パソコンやガジェットについて書いていく…予定。