11月1日に一度失敗し、昨日・3日、文化の日であるにもかかわらず文化的な活動を我慢して実施していた私のお一人様Mastodonサーバ「Telmina One」の引っ越し作業につきまして、多少のトラブルはあったものの何とか成功しました。
現在「Telmina One」は、ストレージ容量が昨日まで使用していたVPS領域の4倍ある環境で、快適に動かせています。
備忘録として、昨日の作業の顛末を記しておくことにします。私以外にも、コンテンツを維持したままMastodonサーバのデータを物理的に引っ越そうとする方の参考となればと思います。
実施した作業
今回の引っ越し作業でおこなった作業の概要です。
- 移行元のサーバ
- データベース(PostgreSQL)に格納されているMastodonのデータのバックアップ
- メディアファイル等が格納されているディレクトリ(
public/system/
)の圧縮 - 上記バックアップをダウンロード
- 「
mastodon.conf
」「.env.production
」の各ファイルとカスタマイズしたテーマのダウンロード - ドメインレジストラの管理画面
- DNSの設定変更
- ドメインのAレコード、TXTレコードの向き先を移行先に変える
- 移行先のサーバ
- さくらのVPSのスタートアップスクリプト「Mastodon」を適用して、VPS領域にCentOS7をインストール
- あえてCentOS8にしないのは、以前それを試そうとしてうまくゆかなかったため
- VPS初期設定(日本語対応作業含む)
- 初期設定後、即座にファイアウォール設定
- Mastodonインストール終了後、即座に新規ユーザ登録を無効化
- Mastodonのバージョン最新化
- 執筆時点でのMastodonの最新バージョンはv3.2.1だが、スタートアップスクリプトでインストールされたバージョンは一つ前のv3.2.0のため
- 「
mastodon.conf
」「.env.production
」の書き戻し - アイコン類(「
favicon.ico
」等)の転送と配置 - テーマのカスタマイズとコンパイル
- メディアファイル書き戻し(移行元で圧縮したディレクトリの展開)
- データベースの初期化と移行元で取得したダンプの書き戻し
発生したトラブル
メディアファイルの書き戻しまではうまくゆきましたが、最後のデータベース書き戻しのところで、「could not create unique index
」などといった不穏なエラーが発生してしまいました。
当初、データベースエンジン「PostgreSQL」のマイナーバージョンの違い(移行元:9.6.17、移行先:9.6.19)が悪いのかと思いきや、マイナーバージョンの違いで出力されるダンプの互換性が損なわれるということはないとのこと。
なぜこうなってしまったのかは結局わからずじまいですが、再度、移行元環境に戻して移行元のデータベースのバックアップを再度取得し、それを移行先環境で書き戻したところ、今度はエラーの類いは一切起きませんでした。
書き戻しが終わったあと、その状態でサーバを再起動したところ、無事Mastodon本体を起動させることが出来ました。それ以降は正常に動作しています。
このときに、複数の方からアドバイスをいただきました。改めて、厚く御礼申し上げます。
最後に
一時はどうなることかとヒヤヒヤしておりましたが、無事引っ越しできてよかったです。
実は、現行の私のお一人様サーバ「Telmina One」は、自分のお一人様サーバとしては2代目で(非お一人様を含めると自分自身が立ち上げてなおかつメインアカウントを設置するサーバとしては3代目)、先代サーバを閉鎖した主たる理由が、Mastodon本体プログラムのアップデートに失敗したからというものでした。
先代お一人様サーバはDocker構成でMastodonを構築しており、一応データベースのバックアップも取っていたものの、その復元も満足に出来ないという有様でした。そのため、先代サーバのデータだけ抜き取ってそれを新たに構築したMastodonサーバに移植するということもできず、当時それなりの数に達していたフォロワーさんの大半を失って「Telmina One」でやり直さざるを得ませんでした。
なお、先代サーバではデータベース復元を満足に出来なかったという反省から、「Telmina One」以降ではDocker構成の適用をやめております。
それにしてもこれ、他人様のデータをお預かりしている「LIBERA TOKYO」(リベラル専用コミュニティ)や「まいった〜」(あえて大手分散型SNSコミュニティをドメインブロックした小規模コミュニティ)で同じことをやらかしていたら、大変なことになっていました…。