Abyss.funからのお知らせ

主にAbyss.funの更新情報を流します。

画像アップロードしようとしたら500エラー出るようになったので、かねてより計画しつつも移行していなかったストレージサーバ移行を思い切ってやってしまいました

いままで

インターネッツ:
  アプリケーションサーバ:
  - 旧ストレージサーバ(メディア)
  - 新ストレージサーバ(DB)

の構成だったのを

インターネッツ:
  アプリケーションサーバ:
  - 新ストレージサーバ(DB、メディア)

にした感じです。

メディアの移行がものすごい時間かかり、rsyncをかけても余裕で12時間とか要するので、マストドンが止まると死んでしまうマグロのようなユーザのことを考えるとなかなか移行に踏み切れませんでした。

今回、原因不明で旧ストレージサーバのiSCSIドライブがread-onlyになり、画像投稿ができない状態になりました。

( ^o^) read-onlyになったときの対処方法忘れたwwバロスwwww
( ˘⊖˘)。o(待てよ、しばらく画像投稿できなかったなら少し前にrsyncしてあるしメディア鯖移行してもいいのでは)
|鯖| ┗(☋` )┓三
( ◠‿◠ )☛ 気付いてしまったか…直近の画像はもしかしたら消えるかもしれんが移行させてもらう
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ うわあああああ

よくわかんねーな。

概要

4/1 0:00 より、Abyss.funにてよくわからないけどウイルス的な何かによってサーバーに不具合が生じています。

問題を調査していますが、全くわかりません。もう僕にはお手上げ状態です。

とりあえず、状況だけ報告しておきます。

調査状況

2019/04/01 0:00:00 下記2ページにて謎のエラーメッセージが表示される不具合が発生。原因調査中。

https://abyss.fun/about/more https://abyss.fun/web/getting-started (登録ユーザのみ閲覧可能)

2019/04/01 0:06:00 お腹がずっとgrgr鳴ってる事に対し、土曜の夜に食べたCoCo壱のキチンカツカレー(5辛)が原因であることが判明。5辛は普通の人が食べるものではないことがわかった。

2019/04/01 0:10:00 眠くなったので寝る。

これと同じ事象っぽいです。

TOPコマンドでkswapd0 が出現したので再起動で対処した | 田舎に住みたいエンジニアの日記

せっかくなのでaptパッケージのアップデートしてから再起動しました (そのせいでダウンタイムちょっと長引いたとか口が裂けても言えない)(言ってる)

で、再起動しようとしたら今度はiSCSIのマウントエラーが起きて更にDB起動してなかったから接続エラーとか出てまたまた起動に時間がかかるっていうね。困っちゃうね。

とりあえず復旧しました。もう安心です!お任せください!!

……今後共宜しくおねがいします!

以前 Abyss.fun メンテナンスの予告(実施日未定) の記事で書いた、2日目の作業をようやく実施します。

この記事書いたのが1/28ですね……? 一ヶ月半も開いてしまいましたよ……

なんでこんなに時間がかかったかというと、ぶっちゃけ夜中に起きて作業するのがめんどくさかったからです。
はい。すいません。なら日中にやれよって話ですよね。そうですよね。ごめんなさい。

ですが! ちゃんと宣言どおりに夜中に実施しますよ! えらい!

とはいえ起きてるのはめんどくさいので、作業自体はshellscriptを用意して夜中に勝手にやってもらうことにします。これで僕自身は夜中に起きておく必要もないし、(うまくいけば)ダウンタイムも最小限で抑えられます。これで勝つる。

一応、動作確認を行ってから実施しようと思うので、メンテ本番は今週末辺りか、来週頭ぐらいになると思います。

また実施日が確定したら告知文書きます。

掲題の通り、キーワードの検出に使っている形態素解析プログラムMeCabのメイドインアビス辞書をGitHubにて公開しました。

これはユーザ側からしたら特に変化ある更新じゃないです。僕の運用が楽になるだけの話です。

何が良くなるのか

GitHub上のmasterブランチが更新されたら本番環境のサーバに全自動でデプロイしてくれます。すごいですね。

GitHubよくわからない人に向けてもうちょっと具体的なお話をすると。いままでは

  1. 開発環境でcsvを作成、辞書ファイルdicへコンパイルして検証
  2. 作成したcsvファイルを本番環境にコピー
  3. 本番環境でコンパイルしてリリース
  4. csvをwikiにコピー

まぁ4.はおまけです。やらなくてもいいんですけどね。おまけです。

これがGitHubに移行すると

  1. 開発環境でcsvを作成、辞書ファイルdicへコンパイルして検証
  2. 作成したcsvのリポジトリをcommitしてGitHubへpush

これで終わりです。手順がかなり簡略化されます。素晴らしい。

GitHubへpushされた先の作業は CircleCI というサービスで自動化しています。いま流行りのCI/CDと言うやつですね。素敵です。

今後はMastodon本体の方も自動化したらmaster追随しやすくなりそうだなーなんて考えた本日の僕でした。

この度マストドンのバージョンを 2.6.2 → 2.7.2 にバージョンアップしたため、管理者側で特定アカウントの強制フォローをすることができるようになりました。

そのため、メンテナンス告知用アカウントとして用意してある @[email protected] のフォローをこちら側でさせていただきました。

今後、なにかメンテナンス等があった場合はこちらで報告をさせていただきます。

もちろん、他のインスタンスサーバーからもフォローできますので、「Abyss.funにつながらないけど障害発生してるの?どうなの?」みたいな場合は、ご自身のアカウント登録しているサーバーからもリモートフォローをお願いします。

Q.フォロー解除してもまた勝手にフォローするんだけど 夜中に自動フォローするように設定してあります。ブロックすれば自動フォローされなくなるのかな。わからないけどそんなに投稿多いわけでもないからあきらめてください。

Q.HTLが早いからすぐに埋もれちゃうんだけど マストドンにはリスト機能があります。メンテナンス告知アカウント専用のリストを作成することを推奨します。

Q.そんなことよりサーバーが重いのどうにかしてください ごめんなさい。頑張ってどうにかします!

お問い合わせは ぐすくま @[email protected] までよろしくお願いします。

で、ちょっとごたついてます。

現在の画像データなんかは旧メディアストレージで運用中なんですが、以前データコピー中にエラーが出て再起動したことがあり、それがいまさらになって動かなくなるっていう困った状態なんですね。

なので、いったんe2fsckしてディスクエラー修復中です。iscsiもうやめるしかないですね。

進捗状況

2019/02/27 11:53 e2fsck実行中…

2019/02/27 12:17 まだ改善されないのでスーパーブロックのサイズを指定して修復なう

2019/02/27 12:41 とりあえず鯖は動かしてるけどストレージはまだ復旧せず

2019/02/27 13:04 修復終わったのでマウントしてみるなう

2019/02/27 13:07 仮で動かしてた間のデータをrsyncしてから

2019/02/27 13:10 多分復旧した。

Abyss.fun メンテナンスの予告(実施日未定) — ぐすくま@鯖缶工場広報課 でダウンタイム長いし夜中にやるかーって書きましたが、日中帯にやってもいいよって言ってもらったので今日余裕があったらメンテに入ります。 多分午後3時頃。1時間位で終わればいいなぁって雰囲気でやります。

尚、この際にアプリケーションサーバの移行もするので、DNSレコード書き換えます。しばらく新旧両系稼働しときますが、もしかしたら数日つながりにくくなるかもしれないです。 僕は悪くないです。ちゃんとDNSサーバをメンテしてないプロバイダに文句言ってください。うちはCloudFlare使ってるので無実です!

進捗はこちらの記事に適宜追記していくつもりなので、気になる方はヲッチしといてください。

【メンテナンス状況】

2019/02/20 18:51 とりあえずパーミッションがおかしいのでchownしてるけどプロンプトが帰ってこない⋯もうしばらく様子見か。 一応移行作業第一弾は終わりってことで。次は肝心のメディア移行だなぁ。

2019/02/20 18:41 public/systemのパーミッションがmastodon:mastodonになってくれない

2019/02/20 18:10 iSCSIのドライブがエラー出て読み込み専用ドライブになってしまってたみたいなので再起動

2019/02/20 17:59 動いた

2019/02/20 17:49 移行完了。起動するかな。。。

2019/2/20 17:29 DBのアップグレードが長いのでもくもく休憩

2019/02/20 17:14 DBのアップグレードが出来なくて手こずってる

2019/02/20 16:38 ようやくDBのバックアップが終わった

2019/02/20 15:30 wiki.abyss.funのお引越しをした

2019/02/20 15:00 とりあえずclick.abyss.funのお引越しをした

2019/02/20 10:53 とりあえず告知書いた。

まだ検証も不十分なので日程は確定していませんが、数時間のダウンタイムを伴う大規模なメンテナンスを予定しています。

理由とか

  • Ubuntu16.04で動いている
    EOSはまだ先なので問題はないが、パッケージ導入が基本的にaptなのでところどころ古くなってきている。
  • DBがPostgreSQL9.5である
    Mastodonの要件では9.6以上なので、一部機能が正常に動作していない(タグTL取得など)
  • ストレージ鯖の容量がそろそろきつい iSCSIのイメージが無駄な空き容量作ってるので、NFSに移行してストレージの有効活用を図る
  • 今のスキルに見合った鯖構成に直したい 基本は現行の構成を踏襲するけど、細々としたパラメータ調整などイチから作り直したほうが楽そうなので。

予定してる作業

2日間に分けてメンテナンスを行います。

1日目:AP鯖、DB移行、PostgreSQLアップグレード、DNSレコード書き換え
2日目:旧AP鯖、ストレージ鯖停止、メディアストレージ移行

DB、メディアストレージ、それぞれ容量が数10GBあるため、データ移行にはかなりの時間を要すると想定しています(DBについては検証時におおよその時間が算出できる予定です)

鯖内ユーザー及び他鯖の影響を鑑みてメンテナンスは夜中に実施する予定ですが、進捗によっては早朝から昼ごろまでサービスが利用できなくなる可能性があります。予めご了承ください。

また、1日目と2日目の間に、DNS浸透(怒られる表現)を考慮して数日間猶予を設けます。この間はメディアストレージのみ旧鯖にあるため、もしかしたら画像取得が重くなる可能性があります。僕個人としてはCloudFlareさんが頑張ってくれると信じていますのでそれほど重くならない想定はしています。知らんけど。

鯖爆発したらごめんなさい

Abyss.fun始まって初めての大規模メンテナンスを実施するため、つつがなくアップデート作業が完了するかわからないです。僕が一番緊張しています。

移行した新鯖がうまく動かなかったら旧鯖に切り戻すので最悪の状態はないとは思いますが、念の為ユーザ各位にはデータのバックアップを取っておいてもらえるともしかしたら幸せになれます。設定画面からデータのエクスポートをお願いします。そんな大したことトゥートしてないから別にいいですって人は別にいいです。

#abyss_fun


この記事は 分散SNS Advent Calendar 2018 – Adventar の16日目の記事です。

……もう既に16日目終わってますが、17日以降の枠がまだ埋まってないのでまだ16日です。頑張れば今週はまだ16日のままです。よかった間に合って。


突然ですが、僕は怒っています。常日頃怒ってます。今もイライラしながらこの記事を書いています。

Mastodonの方には別に書くほどのことではないと思っているので普段のトゥートには書いていませんが、鬱憤というのは溜まっていくものです。

なので今回は吐き出してみようと思います。不穏かどうかはわからないですが、僕のトゥートを見ている人達からすれば、結構ネガティブな感じだと思います。

内容は鯖缶工場なんで立ち上げたの。みたいな話です。ぶっちゃけトークです。自分の利益を得るために運用しています(金銭的なものではなく感情的な意味で)。そのあたりを書きたいと思います。

「無能エンジニア」に対する反論

誰とは言いませんが、「無能なエンジニアが多すぎる。そういう奴らは育てる必要がない」みたいなことをTLでやり取りした方に言われたことがあります。誰とは言いませんが恐らく多くの方がご存知の方です。誰とは言いませんが。

波風立たないように穏便に済ませましたが、根に持つタイプの僕は今でもその件については納得していません。思い出してもイライラします。

情報技術に関する関心やモチベーションが無いならいざしらず、仕事に対する責任があるなら誰でも最低限のことはできると思っています。多すぎる、という状況はないと思うし、そういう環境が存在したとしても無くそうとすれば出来ると思っています。

例えば、文字が書けないやつは学校に行く必要がない。と同じことを言われてる感じなんですよね。書けるようにするために学校に行くんでしょ。みたいな。

で、そんなことを言われた僕はイライラが収まらず、「そんな事言うなら教える機会を作ってやるからな!」みたいなことをずっと抱えていました。

「マストドン流行らない」に対する反論

誰とは言いませんが、「マストドンの未来はない」「流速落ちたな」みたいなことをTLでよく見かけます。誰とは言いませんが。

基本的に僕がイライラするのは、ある問題に対して僕の中では答えが出ているのに、TLにいる方々が煽ったり叩いたり意見してるのを見たときだったり、同じ意見がループしてるときだったりします。

その問題の原因は〇〇でしょ。なんで分かりきってることを何度も何度も同じところで躓いてるの……。

なんというか、成長できないのかなぁ。って思います。物事を自分のものさしで測って批判する。それはいいんですがそのものさしが短いんじゃないかなぁ。って印象を受けます。

マストドン流行らないに関してもそうです。確かに人が増えなければコミュニティとして成立しないし、開発に参加する人数も比例して増えないと思うので増えてもらいたいと思っています。

新しいサービスに対して「ユーザ増えるかな?どうかな?」って思うのは誰しもそうです。その先にポジティブに考えて「こうしたら増えるかもしれない」って案を出せるか、ネガティブに「これはダメ、あれもダメ。だから増えない」ってただ傍観しているだけなのに知ったようなこと言う人がいるのが意味わからないです。何考えてるんですかね。何も考えてないんですかね。

炎上狙ってるのであれば特に何も言いません。反論するのも面倒なので。

僕は何もやらずに「あれはダメ、これもダメ」をするのが嫌なので、鯖缶工場という観点から鯖缶を増やしてみようと思ってます。

書くこと忘れた

一応16日に投稿できるように下書きは書いてたんですよ!でも調子よく進んでたのに途中でサーバ止まって保存できなくなりましたよ!全く!イライラが収まりませんよ!八つ当たりですけど!!

下書き消える前はもうちょっとイライラしてた気がしたんですが、忘れたのでとりあえずこのあたりにしておきます。どうでしょうか、しっかり不穏の種を蒔けたでしょうか。出来たのであれば幸いです。