NFS共有フォルダの設定
NFSというのは,Linuxにおけるファイル共有のシステムです.ファイル共有というのは
- コンピュータのディスクのファイルを別のマシンに「公開」
- 別のマシンでは,その公開されたファイルに読み書き可能
一見便利ですが,
- 1GBのファイルのうち0.001%を書き換えた→周囲の0.1%を持ち主に転送
- 別の人がファイルを書き換えた→利用者全部に転送
となるわけですので,はっきり言って,めちゃくちゃ低速です.ですが,使いやすいんで,プログラムファイルとか,小さいのをこれで共有しておくと便利なんですよね・・・
IPAサーバーで共有するフォルダーを登録
IPAサーバーで【Network Services】【Automount】【default】を選ぶ
すると二つのテーブルがあります:
auto.master
伝統的に, 親玉をauto.masterと呼びます.あなたが作成しなくても,これはできてるはず.
/フォルダー名 が「ファイル共有はここ」という名前です./フォルダー名/共有の名前 とアクセスすると, 「共有の名前」で設定したコンピュータの該当するフォルダにアクセスできるわけです.この例では
cd /net/sun0
とやると, sun0というマシンのフォルダーが見えるようになる.では, その定義である「共有の名前」は, この例では auto.home テーブルに書いてある.
auto.home
個々の共有の詳細を見てみましょう. もしテーブルが存在しなければ【Add】【IndirectMap】で作成すればよし.
最初の欄が「共有の名前」で,右がその定義です.まあ殆ど決まりきったもので
-fstype=nfs4 | ネットワークを通したファイル共有だよ(CDROMとかDVDもあるけど・・・奴らは滅亡した) |
---|---|
rw | 読み書き可能. 読みのみも設定できる |
hard | アクセスしたら相手のコンピュータがダウンしていたとしよう.hardがついていると,復活するまでリトライする. |
sun0:/diskX | コンピュータの名前はsun0である. そのコンピュータが「公開」しているIDを指定する |
各コンピュータで公開IDの内容を指定
/etc/exports
/etc/exportsファイルに,公開IDとその内容を記述:
#name export to .... /export 10.249.229.111/24(rw,fsid=0) localhost(rw,fsid=0) /export/disk0 10.249.229.111/24(rw,nohide) localhost(rw,nohide) /export/disk1 10.249.229.111/24(rw,nohide) localhost(rw,nohide)
最初の一行目は, 公開するフォルダを指定. 後ろは公開範囲で, IPアドレスとネットマスク.
2行目以降は, 公開するフォルダのサブフォルダで,実際に公開荒れるフォルダを指定する.
/etc/fstab
/etc/fstab に, ローカルフォルダーと公開フォルダの関係を記載する.
#上の方にあるのはOSの設定なので, 書き換えてはダメ UUID=c74de6c0-edb7-4487-98ab-cf1e862d3486 / xfs defaults 0 0 UUID=46c625df-da77-4f94-a66a-447d61f2b0ca /boot xfs defaults 0 0 UUID=1758cc75-9f99-4a14-8f6d-f5e5d57f8420 none swap defaults 0 0 #local-folder export-folder /local/disk0 /export/disk0 none bind 0 0 /local/disk1 /export/disk1 none bind 0 0 #speedup for local-access /local/disk0 /disk0 none bind 0 0 /local/disk1 /disk1 none bind 0 0
公開フォルダを別のマシンから /net/sun0/disk0 とアクセスすると,ネットワークを経由してゆっくりアクセス可能である.
だが, 同じマシンから自分の公開フォルダにアクセスすると, 自分のディスクなのに,ネットワークを経由してゆっくりアクセスする.で,そらいやだ,という場合に,下の方の設定を使う.これはなぜかというと
- /net/KEY フォルダーにアクセスがあった!
- 上のマップを参照すると, KEYは, ホスト名 MACHINE のディスク名 /DISK であることがわかったとする.
- もしMACHINEが自分でないなら,何の躊躇もなくNFSを経由して/DISKを提供してもらう.
- もしMACHINEが自分自身であれば,NFSを経由すると速度が低下してしまう.そこで,/DISKが利用できるか?調べる
- つまり, 提供しているディスク名 /DISK がローカルファイルシステムに存在するなら使う
- 存在しなければ,諦めてローカルマシンにNFSで提供してもらう
- もちろんNFSアクセスでは爆遅になってしまうので,提供しているディスク/DISK がローカルファイルシステムにも存在した方が良い.
- そこで, /export/DISK と同じ内容を /DISK にバインド設定しておくと高速になる
という仕組みである.
NFSサーバーを起動
# systemctl enable nfs-server
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --reload
再起動
設定が終わったら,まあ再起動するのがコマンド覚えなくて良いから楽でしょうね.