2026年11月7日
2026年11月7日
バックアップの保存先にNFSをマウントして使う方法
はじめに
バックアップはシステムの安定稼働にとって非常に重要な要素です。しかし、物理的なディスクスペースが限られている場合や複数のサーバー間で共有する必要がある場合は、NFS(Network File System)を利用して遠隔地にあるストレージにバックアップを保存することが有効です。この記事では、Linuxサーバー上でNFSを使用してバックアップを保存する方法について解説します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- 複数のサーバー間で共有される大量のバックアップデータがある場合
- 物理的なディスクスペースが限られている場合
- バックアップを一元管理したい場合
手順・設定方法
ステップ1: NFSサーバーの構築と共有ルートの設定
# NFSサーバー上の必要パッケージをインストール
sudo apt-get install nfs-kernel-server
# システムが提供するNFS共有を作成
sudo mkdir -p /mnt/nfs_backups
# 共有ルートにアクセス可能なユーザーとグループ、およびアクセス権限を設定
echo "/mnt/nfs_backups *(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports
# 新しい共有設定を有効にする
sudo exportfs -a
# NFSサーバーの再起動で新しい設定を適用
sudo service nfs-kernel-server restart
ステップ2: NFSクライアントの設定
# クライアント上で必要パッケージをインストール
sudo apt-get install nfs-common
# NFSサーバーから共有されたディレクトリをマウントする
mkdir -p /mnt/nfs_backups
mount -t nfs <NFSサーバーのIP>:/mnt/nfs_backups /mnt/nfs_backups
ステップ3: バックアップスクリプトでマウントポイントを使用
# 変数にマウントポイントを設定
BACKUP_DIR=/mnt/nfs_backups/backups
# マウントポイントが存在しない場合は作成する
mkdir -p $BACKUP_DIR
# tarバックアップスクリプトの例
tar czf /$BACKUP_DIR/backup_$(date +%Y%m%d_%H%M%S).tar.gz /path/to/data
# また、定期的なバックアップを実行するためにcronジョブを使用することも可能
echo "0 3 * * * tar czf $BACKUP_DIR/backup_$(date +%Y%m%d_%H%M%S).tar.gz /path/to/data" | sudo tee -a /etc/crontab
ステップ4: 実践/トラブルシュート/監視
# NFSサーバー上の共有を確認
showmount -e <NFSサーバーのIP>
# マウントされたディレクトリを確認
df -h /mnt/nfs_backups
# 権限に関する問題がある場合は、exportsファイルを確認
cat /etc/exports
# タイムアウトや接続エラーなどのトラブルシュートのために、mountコマンドの出力を監視
tail -f /var/log/syslog | grep mount
注意事項
- ファイルシステムの制限を考慮し、必要なアクセス権限を設定する。
- セキュリティ上の理由から、共有ルートにアクセス可能なユーザーとグループを慎重に設定する。
- パフォーマンスの観点からは、ネットワーク帯域幅が十分であることを確認する。
まとめ
1. NFSサーバーの構築: NFSサーバー上で共有ルートを作成し、必要なユーザーとグループに対してアクセス権限を設定します。
2. クライアントの設定: クライアント側でマウントポイントを設定し、必要に応じてバックアップスクリプトを実装します。
3. 定期的なバックアップ: cronジョブを使って定期的にバックアップを行うことで、システムの信頼性を向上させます。
4. 監視とトラブルシュート: マウントされたディレクトリや共有設定を確認し、問題が発生した場合は適切に対応します。
関連記事: