KUSONEKOの見る世界

CentOS Stream 9 構築メモ (移行検討・Backup編)

ついに重い腰を上げて、自宅サーバにCentOS Stream 9をインストールすることにしました。

少し前までは、CentOSの移行先としてAlmaLinuxが良いと言われていましたが、最近RedHat社がRHELのソースコードを公開しなくなったため、AlmaLinuxの今後の動きが見えなくなってきました。

RHELが無くなることは無いと思うので、今回もCentOSをインストールすることとしました。

この記事では、準備からバックアップまでのメモをします。

今回の移行方針

今回は、単純にCentOS Stream 9をHDDに再インストールする訳ではなく、SATA SSDにインストールすることにしました。

SSDもかなり壊れにくくなってきているようですし、マシンスペック的にもSSDにした方がパフォーマンスが上がると考えています。
以前、MySQLとDockerのデータを古いSSDに移行しても問題が無かったこともあります。

あとは、HDDをSambaのファイル格納専用にします。
これは、今後OSを再インストールする際に楽にしたいという狙いもあります。
今回はSambaのファイルを一旦退避するために、別途M.2 SSDを購入したりもしています。

他にも、HDDアクセスが減り、消費電力が減るかもしれません。
逆に、HDDのスピンダウン・アップが増えて故障しやすいということも考えられますが…。

とりあえずこの方針でやっていきます。

バックアップ

バックアップするファイル

必要なファイルをすべてを網羅するのは大変です。
ブログにある程度書き残していますが、書いていない対応の方が多いとも考えられます。

重要なファイル順で考えるとこうなります。

  1. Sambaのファイル(ファイルサーバの中身)
  2. Nextcloudのファイル
  3. 自分で作ったスクリプトなど
  4. PKI
  5. /etcなど色々なところに散りばめられた設定ファイル(これの網羅が難しい)
  6. Zabbixのデータベース
  7. Tiny Tiny RSSのデータベース
  8. 5chのdatファイル

これらのファイルを頑張って、WinSCPで母艦に控えておきます。
忘れやすい物やWinSCPだけでは出来ない物を以降に記載します。

Samba

Sambaのユーザ・パスワードのファイルが忘れやすいです。
systemdのファイルは、sambaに入っていないため控えます。

/usr/local/samba/etc/smb.conf
/usr/local/samba/private/passdb.tdb
/usr/local/samba/private/secrets.tdb
/etc/systemd/system/nmb.service
/etc/systemd/system/smb.service

MySQLのバックアップ

使っているデータベースをダンプして控えておきます。

# mysqldump --single-transaction -u root -p nextcloud > nextcloud.dump
# mysqldump --single-transaction -u root -p zabbix > zabbix.dump

Docker版 Tiny Tiny RSSのバックアップ

週一回に自動でバックアップされていますが、手動で実行します。

# docker-compose exec backups /bin/sh
/ # ./etc/periodic/weekly/backup
db:5432 - accepting connections
backing up tt-rss database to /backups/ttrss-backup-20230908.sql.gz...
backing up tt-rss local directories to /backups/ttrss-backup-20230908.tar.gz...
tar: removing leading '/' from member names
cleaning up...
done.
/ #

あとはホスト側でファイルを控えておきます。

ls /var/lib/docker/volumes/ttrss-docker_backups/_data/
ttrss-backup-20230908.sql.gz  ttrss-backup-20230908.tar.gz

2chproxy + p2-php(rep2)

これらを丸ごと控える。

/usr/local/2chproxy.pl/
/var/www/html/p2-php/