この記事はMisskeyサーバ管理者のための最終手段を紹介するための記事です。
必ず コマンドの意味を理解してから実行 してください
・そもそもそんなこと起こすでない
筆者が運営しているみゃみーすきーでは500GBのSSDを用意しているが、VMware ESXiの都合により、常日頃から容量逼迫と戦っているものの、利便性の観点からリモートからのキャッシュを保存する設定になっているため、リアルで忙しくなった目を話した隙に満杯になってMisskeyが落ちてしまった。
Misskeyにはリモートサーバのキャッシュを削除する機能があるが、Misskeyが落ちてしまえばもはやどうしようもなく、他サーバにも迷惑が掛かってしまうため、早急な対応が求められた。
そもそも貧弱なのであればリモートサーバのキャッシュを切ればよかったのだが落ちてしまったものはしょうがない、対応が終わってから反省しよう。
・満杯になった時のエラーについて
落ちたら必ず以下のコマンドでエラー内容を確認しよう
# systemctl status example.jp
すると、容量満杯の場合、 SECCOMPエラー が出ています。
なぜSECCOMPエラーが出るかはわかりません。開発に関わっている人ならわかるかも?
・さあ対応しよう
・まずは容量の確認
# df -H
Ubuntuの 良くないところ 制約にオートでパーティションを切るとメインのパーティションが100GBしか割り当てられないという制約がある(1敗)
そのため持て余しているパーティション未割当の個所がないか必ず確認をしよう。
もし未割り当てがあればpartedコマンドで拡張しよう。
・え?未割当もないって?
ここから下はおひとり様サーバやどうしようもなくなった時の最終手段デス
ローカル・リモート問わずキャッシュデータを吹き飛ばします。
未割当もないならSSDを拡張するしかないわけだが財布的な都合でどうしようもなければそもそも早急に復旧しなければいけない場面でもある。
であれば秘儀 キャッシュ強制削除の術を行う。
前提条件:
実行ユーザ名:Misskey
Misskeyのディレクトリ:Misskeyのホームディレクトリ
Misskeyを管理者IDで動かしているバカはいないと思うので(そんな人が居ればすぐに変更しよう)、
まずは心を落ち着けるように心を込めてsuを実行する。
$ sudo su
そうしたらMisskeyのキャッシュファイルがあるところまで移動しよう。
# cd ../
# cd Misskey/Misskey/files
filesにたどり着いたら、findコマンドで一気に吹き飛ばそう。(日付はお好みで変更をどうぞ)
コマンドの意味
files内の55日より前のファイルをすべて削除
# find ./ -mtime +55 -delete
・すべてが終わったら容量の確認
# df -H
これで問題なく立ち上がるぐらい容量が空けば再起動しよう
# reboot
・当然だがこんなのは最終手段
この作業はローカル・リモート問わずユーザ活動により登録されたファイルを吹き飛ばす最終手段なので本来であれば、容量が枯渇する前にコントロールパネルからリモートのみキャッシュを吹き飛ばすべきである。
しかもこの手法は、他ユーザが居れば迷惑をかけ、ドライブに登録されているものをMisskeyに使っていれば登録しなおしである。
しかし、これをやらなければMisskeyが立ち上がらなければどうしようもない時は必ずやってくる。
そうならないための手法として覚えておくとよい。
結論
・ちゃんと管理しよう
・身の丈に合った設定を行おう
・オブジェクトストレージを使おう