本ページでは、本環境におけるバックアップ手順をまとめる。
バックアップ先は NAS に統一し、OS、ファイル、データベースを分けて取得する構成としている。
障害が発生した際に必要な範囲だけを切り分けて復旧できるようにしておくためであり、日常運用では「取得したこと」ではなく「実際に戻せること」を前提に扱う。
本ページでは、確認、実行、確認の流れに沿って、再現しやすい形でバックアップ手順を整理する。
本環境では、バックアップを次の考え方で運用する。
バックアップ先は NAS に統一し、サーバー本体とは分離して保存する。
取得対象は OS、ファイル、データベースに分け、それぞれの役割に応じた方式を使い分ける。
ファイルバックアップでは差分転送を基本とし、毎回すべてのデータを取り直すのではなく、変更があった部分だけを効率よく同期する。
また、日々の取り忘れを防ぐため、バックアップ処理は cron により自動化して継続運用する。
| 種別 | 内容 | 方式 |
|---|---|---|
| OS | システム全体 | ReaR |
| ファイル | Web データなど | rsync(差分) |
| DB | MariaDB | dump |
それぞれのバックアップは役割が異なる。
OS バックアップはシステム全体の復旧に備えるものであり、ファイルバックアップは設定やアプリケーションデータを戻すために利用する。
データベースバックアップは、整合性を保った状態でデータを取り出し、障害時に必要な時点へ戻せるようにするためのものである。
ファイルバックアップでは、毎回すべてのデータをコピーするのではなく、変更された部分だけを取り込む差分バックアップを採用する。
この方式を使うことで、バックアップにかかる時間を短くしやすくなり、ネットワーク負荷も抑えやすくなる。
あわせて、不要な重複保存を減らせるため、ストレージ使用量も効率よく管理しやすい。
本環境では、差分転送に対応した rsync をファイルバックアップに利用する。
| サーバー名(仮称) | 役割 |
|---|---|
| WEBサーバー(仮称) | Apache / Wiki.js |
| NAS(仮称) | バックアップ保存先 |
バックアップ処理を始める前に、保存先となる NAS が正しくマウントされていることを確認する。
mount | grep backup
バックアップ用ディレクトリが表示されればよい。
表示されない場合は、そのまま処理を進めず、先に NAS の接続状態やマウント設定を見直す。
OS 障害時の復旧に備えて、ReaR によりシステム全体のバックアップを取得する。
rear -v mkbackup
NAS 上に OS バックアップが作成される。
このバックアップは、サーバーが起動しなくなった場合や、OS を含めて復旧したい場合に利用する。
Web データなどのファイルは、rsync を使って NAS へ差分同期する。
rsync -av --delete /var/www/ /backup/web/
-a : パーミッションや所有者などを保持したままコピーする
-v : 実行内容を表示する
--delete : 元に存在しないファイルを保存先から削除する
変更されたファイルだけが NAS へ同期される。
そのため、毎回すべてのファイルを取り直すよりも効率よくバックアップを継続しやすい。
データベースはファイルコピーではなく、ダンプコマンドを使って取得する。
mysqldump -u root -p wiki > /backup/db/wiki.sql
データベースの内容がダンプファイルとして保存される。
障害発生時には、このファイルを使ってデータベースを復元できる。
バックアップは手動でも実行できるが、日々の運用では cron により自動化しておく。
crontab -e
以下の設定を追加する。
0 2 * * * rear mkbackup
30 2 * * * rsync -av --delete /var/www/ /backup/web/
0 3 * * * mysqldump -u root -pパスワード wiki > /backup/db/wiki.sql
この設定では、毎日 2:00 に OS バックアップ、2:30 にファイルの差分バックアップ、3:00 にデータベースバックアップを実行する。
処理時刻を少しずつずらしておくことで、同時実行による負荷集中を避けやすくなる。
バックアップは、コマンドを実行しただけで完了とせず、実際に保存先へデータが作成されていることまで確認する。
ls -l /backup/
OS バックアップ、Web データ、DB ダンプが保存先に存在していることを確認する。
想定どおりのファイルやディレクトリが見当たらない場合は、マウント状態、権限、cron 実行結果をあわせて確認する。
バックアップ先となる NAS に障害がある場合は、バックアップ処理そのものが成立しない。
そのため、日常運用では NAS が利用可能な状態かどうかもあわせて確認しておく必要がある。
また、データベースバックアップは、可能であればサービス停止中や整合性を保ちやすい状態で取得するのが望ましい。
さらに、パスワードをコマンドや cron に平文で直接記載する運用は避け、適切な認証方法を使うようにする。
本構成では、バックアップ先を NAS に集約し、差分バックアップを前提とした効率的な運用を行う。
OS、ファイル、データベースを分けて取得することで、障害の内容に応じて必要な範囲だけを柔軟に復旧しやすくなる。
日々の運用では、NAS の確認、バックアップ実行、保存結果の確認までを一連の流れとして扱い、継続して復旧可能な状態を維持することが重要である。