QNAPの構築も一段落したため、やりたいこと「LinuxサーバとQNAPをつなぎ、冗長化を持たせた大容量ストレージにする」を開始します。
そもそもNFS (Network File System) とは?
NFSは、主にUNIXやLinuxなどのOS間でファイルを共有するために開発されたプロトコルです。
一番の特徴は、リモート(NASなど)にあるフォルダを、自分のコンピュータのディレクトリツリー(/mnt/qnap など)の一部として組み込めることです。
一度マウントしてしまえば、ユーザーやアプリからはそれがネットワーク経由であるということを意識せず、通常のファイル操作と同じコマンド(ls, cp, mvなど)で扱えるようになります。
主な用途
- Webサーバーのデータ共有: 複数台のサーバーで同じ画像データなどを参照する場合。
- バックアップ: サーバーのログやDBのダンプファイルをNASに直接書き込む。
- 仮想化環境: 仮想マシンのディスクイメージを保存する場所(ストレージ)として利用。
他の共有方式(SMB/CIFS)との違い
よく比較されるものに、Windowsで一般的に使われる SMB (Server Message Block) があります。QNAPはどちらも使えますが、以下のような違いがあります。
| 特徴 | NFS | SMB (Windows共有) |
|---|---|---|
| 主なOS | Linux / UNIX | Windows (Linuxでも可) |
| 設定のしやすさ | 非常にシンプル(IPベース) | ユーザー名/パスワードが基本 |
| パフォーマンス | Linux間なら非常に高速 | 以前は遅かったが今は高速 |
| 権限管理 | LinuxのUID/GIDに依存 | WindowsのACLに依存 |
今回目指したこと。
手順
以下、作業メモです。
ステップ1:QNAP側でのサービス有効化
- コントロールパネル > ネットワークとファイルサービス > Win/Mac/NFS/WebDAV を開く。
- NFSサービス タブで「NFSサービスを有効にする(v2/v3, v4)」にチェックを入れ、「適用」。
ステップ2:共有フォルダの権限設定
- コントロールパネル > 権限 > 共有フォルダ で対象フォルダ(例:
NFS)の「アクセス権の編集」を開く。 - 「権限タイプの選択」を NFSホストのアクセス に切り替える。
- 「追加」 を押し、ホスト名に
*(またはLinuxのIP)を入力。 - 重要設定:
- 権限: 「読み取り/書き込み」を選択。
- Squashオプション: rootユーザーで操作する場合は「なし(NO_ROOT_SQUASH)」を推奨。
- 設定を保存し、表示されている ネットワークパス(今回なら
/NFS)をメモする。
ステップ3:Linuxサーバー側でのマウント操作
- ツールのインストール(未導入の場合):
sudo apt install nfs-common(Ubuntu/Debian)sudo yum install nfs-utils(RHEL/CentOS)
- マウントポイントの作成:
sudo mkdir -p /mnt/qnap
- 手動マウントの実行:
sudo mount -t nfs QNAPのIP、ホスト名:/NFS /mnt/qnap
- 確認:
df -hを実行し、ファイルシステム欄に QNAP のパスと容量が表示されれば成功。
ステップ4:自動マウントの設定(永続化)
サーバー再起動後も自動で接続されるよう設定します。
※/etc/fstabは正直編集したくないファイル筆頭です。可能な限り先にやっておくことを強く勧めます。
/etc/fstabバックアップ
※バックアップと言ったところで、失敗した瞬間にサーバが立ち亜が楽なるは普通に発生します。慎重を期してください。
sudo cp -pi /etc/fstab /path/to/backup/fstab.$(date +%Y%m%d)
- バックアップ確認
diff -u /path/to/backup/fstab.$(date +%Y%m%d) /etc/fstab
差分がないことを確認します。
/etc/fstab追記:
QNAPのIP、ホスト名:/NFS /mnt/qnap nfs defaults,_netdev 0 0
※自分の環境に合わせます。
/etc/fstab追記確認:
diff -u /path/to/backup/fstab.$(date +%Y%m%d) /etc/fstab
以下の差分を確認します。
+ QNAPのIP、ホスト名:/NFS /mnt/qnap nfs defaults,_netdev 0 0
テスト
- NFSマウント解除
sudo umount /mnt/qnap
- fstabマウント
sudo mount -a
- マウント確認
df -h
は味気ないので
{
echo "| デバイスパス | タイプ | 全サイズ | 使用率 | マウントポイント |"
echo "| --- | --- | --- | --- | --- |"
df -hPT | grep -vE 'tmpfs|shm|devtmpfs' | tail -n +2 | awk '{printf "| %s | %s | %s | %s | %s |\n", $1, $2, $3, $6, $7}'
}
のワンライナーを用います。
| デバイスパス | タイプ | 全サイズ | 使用率 | マウントポイント |
|---|---|---|---|---|
| /dev/sda2 | ext4 | 233G | 6% | / |
| efivarfs | efivarfs | 256K | 12% | /sys/firmware/efi/efivars |
| /dev/sda1 | vfat | 1.1G | 1% | /boot/efi |
| QNAP:/NFS | nfs4 | 4.2T | 30% | /mnt/qnap |
などが表示されればOKです。
サーバの再起動
この段階で
sudo reboot
をかけておきます。序盤でfstabの不具合に気づかないと、後のサーバ運用そのものが詰みます。
