Profile

motcha

28654 posts 295 follows 404 followers

こんなんですが.motcha.techの管理人
インターネット老人会所属

https://mastodon.motcha.tech/@mot
Search in mot@mastodon.motcha.tech

motcha mot@mastodon.motcha.tech

なんの意味があるかはわかんないけど、うちのタンスもしDB飛ばしてなければ国内ではそれなりに早い時期に立った箪笥なんですぜ

motcha mot@mastodon.motcha.tech

今思えば、コンテナの仕組みをもっと理解しておけばなぁ…

motcha mot@mastodon.motcha.tech

半年前の自分に今の言葉をそっくりそのまま伝えたいけど出来ないので、今永続化してないコンテナ主が居る想定で言葉を投げつけるなど

motcha mot@mastodon.motcha.tech

du -m でメガバイト単位のファイルサイズが分かるので、どれがデータ入りのDBフォルダか確認しておきましょう。df -hで鯖全体の空き容量は見えます。DBは相当大規模鯖でもない限り、きっとVPSの中で何個かはコピーが持てる程度のサイズに収まっているでしょう。もし仮に空き容量が不足している時は、現行のコンテナを上げっぱなしでdocker system pruneすると、使ってない無駄なイメージを破棄するのでよいでしょう。

motcha mot@mastodon.motcha.tech

フォルダ単位でcpやmvをしていると、ディレクトリの森で迷子になります。リネームも行うので、どれが何だったやらサッパリわからなくなることもあります。というか、僕はなりました。そんなこんなで貴重な元データを、中身になんにもない同名フォルダで上書きしたわけです。
オリジナルのデータは別ディレクトリに退避させておき、作業時にはオリジナルのコピーを/path/to/mastodon配下に置きましょう。それでコンテナをあげ直して、正常動作を確認するまではオリジナルデータは大切にするべきです。それさえあれば、何度でもやり直しは効きますから。

motcha mot@mastodon.motcha.tech

細かい手順はググればQiitaが出てきますが、一つだけ助言を。DBがそれほど巨大ではない限り、コピーしてきたオリジナルデータは元データとして作業完了まで触らない様にしましょう。コピーのコピーを、実際の作業に使うんです。

motcha mot@mastodon.motcha.tech

コンテナ永続化のポイントは、既存コンテナを完全に潰すことです。このタイミングまでにデータの退避をきちんと確認しましょう。具体的には?元データのフォルダと容量を比較したり、パーミッションを見ておいたり、なんならスクリーンショットも撮っちゃいましょう。最近のWindowsならWin+Prtscrでピクチャフォルダに勝手に画像を作ってくれます。一個一個進めながら撮っておきましょう。

motcha mot@mastodon.motcha.tech

仕事じゃないし、趣味でやってる以上飽きたらやーめた、という気持ちは分からんでもないがな…

motcha mot@mastodon.motcha.tech

DBがぶっ飛んだのでもう辞めるね!バイバーイ!ヽ(•̀ω•́ )ゝ

みたいなコメントが表示されるページに何度も何度も配送を試みる俺達のサーバー、可哀想じゃん…(あとほんの少しとはいえリソースの無駄)

motcha mot@mastodon.motcha.tech

まぁ、ホントのところは…全く別の環境(自宅のパソコンとか)で非永続化コンテナを建てて移行手順を確認しておくのが理想的です。僕はこれを面倒くさがってやらなかったのでDB消えました。

motcha mot@mastodon.motcha.tech

最悪のシチュエーション(非永続化→永続化移行失敗)でも、コンテナが潰れたらチャンスと捉えましょう。喪うものは何もありません。永続化が上手くいくまで色々試しましょう。上手くいけば、少しの辛抱でまたマトモなサーバーとして周りには認識されます。まぁ、サムってこんな奴だよな、というのが周りに知れ渡ってしまえばいいので。

motcha mot@mastodon.motcha.tech

もちろん、周りのサーバーに多少迷惑がかかってもまぁいいか〜ってな具合で消えていったインスタンスはごまんとあります。ありますが、鯖缶たちはちょっとした呻き声と共にSidekiqの再試行ページを開いたりしています…

motcha mot@mastodon.motcha.tech

今のところ、一度建ててしまったマストドンサーバーを綺麗に、かつ簡単に引退させる方法は…ないように思います。Web公開サーバーの中でも、分散システムの一角に参加してしまった以上…それなりにやっていく責任はあるという話です。

motcha mot@mastodon.motcha.tech

バックアップを取らずに非永続化コンテナを潰すのも全く同様にダメです。本当に自分のサーバーからは全てが消えてなくなりますが、周りのサーバーはあなたのコンテナの中にある貴重なデータが消えたことはわかりませんし、あなたのサーバーにいる人を都合よく忘れることもしません。覚えている以上、フォロー関係のあったあなたのサーバー内にいるアカウントに向けて通信を試みます。当然失敗するので、周りのサーバーは何度も何度も配送にチャレンジします。これが俗にいう「Sidekiqに屍が〜」って奴です。

motcha mot@mastodon.motcha.tech

この状態に陥ると、トゥート配送がマトモに機能するようになるまで1週間近くおかしな状態が続きます。可能なかぎり避けたいシチュエーションです。僕は完全にやらかしましたが。

motcha mot@mastodon.motcha.tech

具体的に言うと、アカウントが消し飛ぶので「○○さんに俺のサーバーのトゥートを届けてくれや」と外のサーバーが言ってきても、外見サムの中身ジョン状態だと渡すべき相手の○○さんの情報が無いわけです。で、そんな奴いねぇよ出直してこいってなことでトゥートが届かなくなります。

motcha mot@mastodon.motcha.tech

そんなこんなで、非永続化コンテナからデータを抜き出す作業は不可逆的なコンテナの破壊を必ず伴います。無論、戻せなければ同じホストの上であっても「別の」マストドンが動くことになります。こうなると登録してもらったアカウント情報も消え失せるし、周りのサーバーからは「昨日までサムだったのに、今日話し掛けたら見た目はサムだけど中身はジョンだぜ」みたいなちぐはぐなことになり、非常に残念な目に逢います。

motcha mot@mastodon.motcha.tech

逆に言えば、永続化さえ済んでいれば、コンテナを何度潰してもなんの問題もありません。むしろ、そういう運用がアップデートの激しいマストドンでは向いているでしょう。

motcha mot@mastodon.motcha.tech

.env.productionじゃなくてdocker-compose.ymlでしたハイ

motcha mot@mastodon.motcha.tech

@taiyakikun アーッ