FreeBSD - メンテナンス・トラブルシュート - システムバックアップ - バックアップ
1. ハードウェアを用意する 可能であれば、バックアップ元と同等のハードウェアを用意します(バックアップ先)。 メインのマシンと同等のハードウェアが用意できなければ、「VMWare」等仮想環境のインストールできる「Windows」マシンを一台用意します。 「Windows」マシンには外付けでも構わないので、バックアップ元の「FreeBSD」マシンより十分な空き領域のあるハードディスクが必要です。 「Windows」で作成する仮想環境にバックアップ先の環境を作成します。 バックアップ元とバックアップ先の間がローカルネットワークで接続できる環境にあることが必要です。 以上が用意できれば、バックアップ可能となります。 2. バックアップ先のセットアップ バックアップ先に「FreeBSD」をインストールします。 「FreeBSD」のバージョンはバックアップ元と合わせることが必須ではありません。 同程度かそれ以降のバージョンのものをインストールします。 インストール方法はそれぞれのバージョンのものを参考にしてください。 ディスクスライスを切る場合は、バックアップ先とするスライスにじゅうぶんな容量があるようにスライスを作成します。 vi /etc/rc.conf 以下の記述を追加します。 portmap_enable="YES" nfs_server_enable="YES" nfs_server_flags="-u -t -n 4" mountd_flags="-r" rpcbind_ebable="YES" amd_enable="YES" vi /etc/hosts.allow 以下を記述します。 portmap : ALL : allow バックアップ先のディレクトリを。 /usr/backup として作成します。 mkdir -pv /usr/backup を作成して vi /etc/exports 以下を記述します。 /usr/backup -maproot=0 -alldirs 192.168.0.x ① ② ③ ④ ①マウントさせるディレクトリ名を記述します ②「-maproot=0」フラグがないと、リモートマシンの「root」権限を 持っていてもファイルを変更することができません ③「-alldirs」フラグは指定されたファイルシステム 以下のディレクトリに対しても同様に「export」します ④IP アドレスで指定するホストに①を「exports」することになります つまり バックアップ元の IP アドレスを記述します。 ④で、複数を記述する場合、「Linux」系では、ネットワークアドレスを記述する方法が紹介されていますが、「FreeBSD」でやってみたら、うまくいかない。 複数のアドレスを記述する際は、末尾のアドレスの後に、スペースを空けて、アドレスを列挙することでうまくいきました。 ここまで設定したら、バックアップ先を再起動します。 3. バックアップ バックアップ元にログインして、可能であれば、「sshd」を除くサーバアプリケーションを停止します。 停止しなくてもバックアップは可能ですが、バックアップが始まって以降、メールの受信や HTTP経由のデータベース更新が発生した場合、それらの更新分は保証されません。 vi /etc/rc.conf 以下の記述を追加します。 nfs_client_enable="YES" nfs_client_flags="-n 4" 記述後、以下を実行します。 nfsiod -n 4 ここまでで、バックアップ先のディスクをマウントする準備ができましたので、マウントします。 mount 192.168.x.y:/usr/backup /mnt ① ② ①マウント先のホスト名(この場合は IP アドレスで指定)とマウントディレクトリの記述です ②マウントポイントを指定 (「/mnt」は最初からあります) dump -0ua -f /mnt/root.dmp / dump -0ua -f /mnt/var.dmp /var dump -0ua -f /mnt/home.dmp /home dump -0ua -f /mnt/usr.dmp /usr スライスの分割によりダンプするものが異なります。 例に出しているのは、「FreeBSD 8.4 RELEASE」あたりのスライスをいくつかに分けている状態で。 イマドキ(2024年4月9日)であれば、スライスが 「/」しかないので、その場合、1行目だけで終了です。 ダンプが終了したら忘れずに、「umount」します。 しておかないと「mount」先のネットワークリンクが切れたとき、「df」コマンドが効かなくなります。 ダンプのオプションについて説明しておくと
vi /etc/rc.conf
portmap_enable="YES" nfs_server_enable="YES" nfs_server_flags="-u -t -n 4" mountd_flags="-r" rpcbind_ebable="YES" amd_enable="YES"
vi /etc/hosts.allow
portmap : ALL : allow
/usr/backup
mkdir -pv /usr/backup
vi /etc/exports
/usr/backup -maproot=0 -alldirs 192.168.0.x ① ② ③ ④
nfs_client_enable="YES" nfs_client_flags="-n 4"
nfsiod -n 4
mount 192.168.x.y:/usr/backup /mnt ① ②
dump -0ua -f /mnt/root.dmp / dump -0ua -f /mnt/var.dmp /var dump -0ua -f /mnt/home.dmp /home dump -0ua -f /mnt/usr.dmp /usr
わたしの実績では 20GB のバックアップで 20GB finished in 3045 seconds, throughput 972 KBytes/sec 3045秒ですからおよそ 50分です。 もちろんスピードは、ネットワークの状況とディスクアクセスの速度に左右されるわけですが。
20GB finished in 3045 seconds, throughput 972 KBytes/sec