見出し画像

令和の時代にマックでオートマウント

M2 Mac mini を購入して、Mac 環境が新3台構成(Mac Pro Late 2013、Mac mini 2018、Mac mini 2023)となった。
これを機会にマック間でのファイル共有環境をautomount(オートマウント、NFS)で構築し直した。
これは、その際の備忘録。

NFSサーバーサイド設定

Mac mini 2019 をこれまでも7/24サーバーとして運用してきているので、今回NFSサーバーとして設定追加。

SSDデバイス追加

NFSファイル共有用に、1TB SDDをUSB経由で接続。
'Disk Utility' にて1パーティション、'Mac OS Extended (Case-sensitive, Journaled)'形式で初期化。
名前をとりあえず"auto_home" とした。

NFS公開設定

マックでNFSで公開するのは非常に簡単。
"/etc/exports" という名前の設定ファイルを作成するだけで、必要なデーモン(nfsd) など自動的に開始される。

 私の場合、下記1行だけを/etc/exports に記述。

/Volumes/auto_home/myos/ -network 192.168.1.0 -mask 255.255.255.0 -alldirs -maproot=root

注: 一般ユーザー権限では'/etc/' 配下にファイル作成が行えないので、'sudo'を使いroot 権限でファイル作成する。

項目説明

"/Volumes/auto_home/myos/" - auto_home デバイスにmyos という名前のディレクトリ(フォルダー)を作成して、マック間で共有。
(ちなみに'myos' は、私がマックで使用しているid )

注:マックでは外部接続したストレージデバイスは、パスとして/Volumes の下にドライブ名としてマウントされる様になっている。

network/mask - 家庭内だけでの設定なので、セキュリティーはザルで同じセグメントからのアクセスは無条件で許可。

nfsd に対するストレージアクセス許可設定

共有領域が本体パス内であれば、上記だけで問題無くアクセス出来る場合もあるが、外部ストレージをNFS共有する為にはもう一手間必要。

nfsd というデーモンにストレージアクセス許可を与える事が必要。

Appleメニューから、'System Settings…' を選択
'Privacy & Security'配下の''Full Disk Access' に'nfsd' を追加

最下部にある'+' を押して追加する、そのままではnfsd をブラウズして追加できない。
'コマンド'+’シフト'+'g' の3つのキーを同時押しして、'/sbin/nfsd' と入力する事によって追加が可能となる。

ターミナルを開いて、'showmount -e' とコマンドを打ち、公開設定したディレクトリが表示されていれば、NFSサーバー設定は完了。

bash-3.2$ showmount -e
Exports list on localhost:
/Volumes/auto_home/myos             192.168.1.0
bash-3.2$


オートマウント(NFSクライアント)クライアントサイド設定

マックの場合元々から'/etc/auto_home' というファイルが用意されているので、それに1行追加するだけ。

bash-3.2$ cat /etc/auto_home
#
# Automounter map for /home
#
+auto_home	# Use directory service
#
# Get /home records synthesized from user records
#
+/usr/libexec/od_user_homes

myos -rw,bg myos-si2:/Volumes/auto_home/myos

bash-3.2$ 

設定説明

  1. 'myos' - '/home' ディレクトリの下にこの名前でアクセスすると、リモートマウント先にアクセス可能となる。

  2. myos-si2:/Volumes/auto_home/myos
    myos-si2 - NFSサーバー名
    /Volumes/auto_home/myos - エクスポート・ディレクトリ

bash-3.2$ showmount -e myos-si2
Exports list on myos-si2:
/Volumes/auto_home/myos             192.168.1.0
bash-3.2$


UNIX環境下での確認

UNIX的見え方として、ターミナルでどういった動作をするかをクライアント側で確認。

オートマウントされていない状態

'/home' の下にファイルは存在しない

bash-5.2$ ls /home
bash-5.2$ ls /home/
bash-5.2$ ls -l /home
lrwxr-xr-x  1 root  wheel  25 Jan 10 15:14 /home -> /System/Volumes/Data/home
bash-5.2$ ls -l /home/
total 0
bash-5.2$

オートマウントされた状態

ところが'/home/myos' にアクセスすると、ファイルが見える!

bash-5.2$ ls -l /home/myos
total 1
drwxr-xr-x  7 myos  wheel  408 Jan 11 13:00 myos_home
bash-5.2$ ls -l /home/
total 1
drwxrwxrwx  3 root  wheel  102 Jan 10 21:20 myos
bash-5.2$

この状態で'df -h' と打つと、NFS でリモートサーバーのボリュームがマウントされているのが見える。

myos-si2:/Volumes/auto_home/myos   931Gi   1.2Gi   930Gi     1%    7.84.3G    0%   /System/Volumes/Data/home/myos

しばらく時間が経つと、このNFSマウントは自動的に解除される。

macOS 的見せ方

当然Finder からGUI を使って普通のフォルダーと同様に使用できるのだけれど、何も設定しないと'/home' 配下のディレクトリをブラウズできない。

一番簡単と思われるのはFinder メニューから、'Go'/'Go to Folder…' を選択するとパス入力可能となるので'/home/myos' などと打つとGUI的にも扱う事が可能となる。

下記の用に表示されるので、Favorites に追加するか、エイリアスを作成して何処かに置いておくと次回から簡単にアクセス可能となる。


令和のオートマウント(NFS)

オートマウントが一般的に使われていたのは、まだUNIXワークステーションがそれなりに使われていた20ー30年前の頃だったかな。

元々NFS  というUNIXの世界ではデファクトスタンダードなファイル共有プロトコルがあって、便利に使えていたのだけれど、色々と使いこなしていくうちに段々と固定的なマウント設定での限界(管理が面倒)が見えてきて、動的にマウントの設定・解除が行われるオートマウントは自由度が非常に高くて使い勝手の良い環境であった。

現代的な実装では、より効率の良さそうなiSCSI を使った方がメリットが高そうな気もするけど、ロートルにどっぷりと両足を突っ込んでいる現在、使い慣れて経験があって見通しの立てやすいオートマウントは、非常に頼りになる古の技術なのである。

備考1 - マック諸元

いいなと思ったら応援しよう!