ZFSファイルシステムとUbuntuのNFSv4サービスでファイルを共有!
By Patineboot
ZFSの機能、NFSv4を試す
Ubuntuで暗号化ボリュームをZFSファイルシステムで作るの続編です!
標準macOSに付属するファイラーFinder、Ubuntuサーバー、ファイル共有しよう! FinderからUbuntuサーバーへ接続する、ZFSファイルシステムが備えるNFSv4機能を使いたい。
UbuntuのNFSv4でNASを構築しよう! aptのNFSv4、ZFSファイルシステムのNFSv4、ともに雰囲気をかんじる。 試してみて、感じる。NFSv4はUNIX OSのファイル共有に向いている!
後日、Sambaでファイル共有するよ😊!
機材ソフトウェア
- オペレーティングシステム: Ubuntu 21.04 Server
- ファイルシステム: ZFS on Linux 2.02
nfsv4モジュールね
Ubuntuに最初からインストールされているNFSを置いておき、apt
にあるNFSサービスをインストールする。
sudo apt install nfs-kernel-server
NFSv4 on ZFS on Linux
-
NFSサービス設定
exports
に共有エントリを1つ追加し、NFSサービスを開始する。exports
にエントリがあると、NFSサービスがスタートするのね。sudo nano /etc/exports
Patinebootは、
/mnt
ディレクトリを読み込みで追加したよ。記述例:
/mnt localhost(ro,no_subtree_check)
🤗 -
NFSv4エクスポート
ZFSのNFSv4エクスポート機能を使って、ファイルを公開するね。
sharenfs属性に
exports
のエントリとほぼ同じ書き方をするよね。指定するキーワードは同じ! Man page of EXPORTSを見てね。sudo zfs set sharenfs="rw=@192.168.10.0/24,sync,fsid=0,crossmnt,no_subtree_check,insecure,all_squash" zfs-pool/archive
Finderでは、nfsプロトコルで、パス要素は、ルート(
/
)のみ指定できる。接続URLの例をあげるね。
nfs://192.168.0.2:/
Finderからアクセスするエクスポートエントリは、ルートディレクトリ(
fsid=0
)を指定してね。参考ページ: Man page of EXPORTS
Home Directoryを含むディスクは、ext4
ファイルシステムだよ。
NFSサービスのexports
で、ZFSの倉庫と、Home Directoryを共有したい!
NFSサービス on Ubuntu
NFSv4では、公開ディレクトリと同じディレクトリツリーをローカルファイルシステムに構築する!
公開ディレクトリを、ルートディレクトリと指定して、共有するよ😊
-
ローカルファイルシステム構築
ローカルファイルシステムを見る!
/srv/nfs/archive /patine
archive、patineのバインドするマウントポイントを作って、結びつける。
sudo mkdir -p /srv/nfs/archive sudo mkdir -p /srv/nfs/patine sudo mount --bind /zfs-pool/archive /srv/nfs/archive sudo mount --bind /home/patine /srv/nfs/patine
結びつけは、ファイルシステムの一部、ディレクトリを指定できる!
-
NFSv4で公開
exports
に共有エントリを3つ追加し、NFSサービスを開始する。 公開ディレクトリをルートディレクトリ(fsid=0
)、nohideオプションをサブディレクトリ指定(crossmnt)、エントリを記述する。/etc/exports
の内容を見る!/srv/nfs 192.168.10.0/24(rw,sync,fsid=0,crossmnt,no_subtree_check,insecure,all_squash) /srv/nfs/patine 192.168.10.0/24(rw,sync,no_subtree_check,insecure,all_squash) /srv/nfs/archive 192.168.10.0/24(rw,sync,no_subtree_check,insecure,all_squash)
/etc/exports
を記述を変えたら、再エクスポート、NFSサービスを再開始sudo exportfs -ra sudo systemctl restart nfs-kernel-server.service