背景
PowerEdge R730xd 2.5インチシャーシタイプをesxiサーバ兼TrueNASサーバとして変わった使い方をしておりました。
仮想サーバのディスク容量に少し限界がきており、某オークションサイトを覗いたところ、PowerEdge R730xd 3.5インチシャーシタイプが格安で売っており、運よく入手できたため重い腰を上げ移行作業を行ったものになります。
PowerEdge R730xd 2.5インチシャーシタイプはesxiのiscsi専用ストレージ化をする予定です。
システム構成(殆ど変わりません)
項目 | 旧サーバ | 新サーバ |
---|---|---|
メーカー | DELL | DELL |
型番 | PowerEdge R730xd(2.5タイプ) | PowerEdge R730xd(3.5タイプ) |
CPU | Xeon E5-2620 v3 | Xeon E5-2620 v3 |
メモリ | 196GB | 96GB |
HDD | 1.8TB(SAS)×16 +1TB(SSD)×8 | 8TB×4(今後増える予定) |
データベース | PostgreSQL | PostgreSQL |
TrueNASバージョン | 記録失念 | 24.04.1.1 |
ディスク使用量 | 4.5TB | 4.5TB |
手順
1.メンテナンスモードの有効化
2.dataフォルダのバックアップ
3.データベースのバックアップ
4.configフォルダのバックアップ
5.nextcloudフォルダのバックアップ
6.データコピー
7.データリストア
8.メンテナンスモードの無効化
1.メンテナンスモードの有効化
旧サーバ
docker exec -it -u 33 "コンテナ番号" /bin/bash
php /var/www/html/occ maintenance:mode --on
php /var/www/html/occ maintenance:mode
新サーバ
※TrueNAS24.04.1.1からdockerコマンドが廃止になりkubectlコマンドになりました
kubectl exec -it "コンテナ番号" -n ix-nextcloud -- sh -c "su -s /bin/sh www-data -c 'php /var/www/html/occ maintenance:mode --on'"
kubectl exec -it "コンテナ番号" -n ix-nextcloud -- sh -c "su -s /bin/sh www-data -c 'php /var/www/html/occ maintenance:mode'"
2.バックアップ作業
※ここでは詳細を割愛します。
・TrueNASのレプリケーション機能などでデータをバックアップ
・PostgreSQLは以下手順で実施
pg_dump -U user nextcloud > /path/to/backup/nextcloud_backup.sql
3.データリストア
・ファイルなどのデータ
レプリケーション機能で取得したバックアップを所定のフォルダにリストア
今回は諸事情により、
レプリケーションディレクトリ → 新規NextCloudディレクトリにコピーを実施
※12Gbps SASということもありSATAよりコピーが早かった気がします。
・PostgreSQLは以下手順でリストア
kubectl exec -it ”コンテナ番号”-n ix-nextcloud -- /bin/bash
psql -U ”特権ユーザー”
\connect postgres
DROP DATABASE nextcloud;
※既存のnextcloudデータベースがあるとリストア作業時にエラーが発生します。
CREATE DATABASE nextcloud OWNER nextcloud;
GRANT CREATE, TEMPORARY, CONNECT ON DATABASE nextcloud TO ”権限付与するユーザー”;
GRANT CONNECT ON DATABASE nextcloud TO ”権限付与するユーザー”;
\q
psql -U nextcloud -d nextcloud -f ”バックアップファイル保存先”
4.メンテナンスモードの無効化
php /var/www/html/occ maintenance:mode --off
kubectl exec -it "コンテナ番号" -n ix-nextcloud -- sh -c "su -s /bin/sh www-data -c 'php /var/www/html/occ maintenance:mode --off'"
次のステップ
これまでNextCloudはVPN経由で使っていましたが、都度VPNをONも手間なので
cloudflareを使って簡易に接続できるようにしたいと思います。
参考にしたサイト
・https://denor.jp/nextcloud%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%BC%95%E8%B6%8A%E3%81%99%E3%81%AB%E3%81%AF
・https://www.reddit.com/r/truenas/comments/17h2iw4/docker_command_not_found_i_reinstalled_truenas/
・https://t-dilemma.info/truenas-scale-remote-replication/