1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

背景

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.メンテナンスモードの有効化

旧サーバ

Nextcloudコンテナにログイン
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コマンドになりました

Nextcloudコンテナにログイン
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は以下手順で実施

DBバックアップ
pg_dump -U user nextcloud > /path/to/backup/nextcloud_backup.sql

3.データリストア

・ファイルなどのデータ
 レプリケーション機能で取得したバックアップを所定のフォルダにリストア
 今回は諸事情により、
 レプリケーションディレクトリ → 新規NextCloudディレクトリにコピーを実施
 ※12Gbps SASということもありSATAよりコピーが早かった気がします。

・PostgreSQLは以下手順でリストア

postgresコンテナにログイン
kubectl exec -it ”コンテナ番号”-n ix-nextcloud -- /bin/bash
特権ユーザーに切り替え
psql -U ”特権ユーザー”
postgres データベースに接続
\connect postgres
nextcloud データベースの削除
DROP DATABASE nextcloud;

※既存のnextcloudデータベースがあるとリストア作業時にエラーが発生します。

nextcloud データベース再作成
CREATE DATABASE nextcloud OWNER nextcloud;
アクセス権限の設定
GRANT CREATE, TEMPORARY, CONNECT ON DATABASE nextcloud TO ”権限付与するユーザー”;
GRANT CONNECT ON DATABASE nextcloud TO ”権限付与するユーザー”;
PostgreSQLシェルを終了
\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/

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?