P431
NFSはクライアント・サーバ型のアプリケーション
RPCとXDRのライブラリはオープンソースでライセンスの制限はない
TDP UDP両方のプロトコルが使える
Transmission Control Protocol - Wikipedia
User Datagram Protocol - Wikipedia
冪等 - Wikipedia (idempotence ラテン語)
inodeを再利用 vnodeはより大きな情報を取得している (inodeと世代番号で一意)
ファイルを削除してすぐ作ったらinodeは再利用される可能性はある
ファイル識別子、inode、世代番号でファイルを識別する
ファイルシステム識別子(ファイルシステムが違うとinodeがかぶる)
識別子はid番号
永続的識別子(ファイルハンドルに永続性が保証される)
ファイルハンドル(inodeと識別子があるから当分かぶることはないよねって話)
NFSはステートレス
ステートレスなので情報は持たない
サーバが受け取るすべてのRPC要求は、それ自体で完結してる。なので、起動したサーバは到着する要求を単純に処理すればいい
サーバは要求の中身だけを見ていればいいので、どのクライアントが要求を出したかを知る必要がない
しかし、状態がわからない
unlink ファイルシステムからは消滅するが、データとしてはディスクの中に残っている
協調ロック プロセスからの明示的な実行要求があったときのみ実行されるロック機構(職質)
あと、スループットが低下する(クライアントからの書き込みを複数回行う必要があるときがある)
ファイルの末尾に拡大するのではなければ、inodeの確保とかは必要ない
NFS実装は8Kバイトブロックのバッファを使用している
クッキーは、サーバが起動しているあいだ変化せず、サーバの再起動のたびに新しくなることが保証されている
処理するひとつの単位が8キロバイト(上限ではなく、区切り)
UGU: Unix Guru Universe - Rick Macklem
NFC バージョン3
- アクセスコール
- リース技術
- sosend soreceive カーネルの中の関数
- 接続指向型(TCPのことだろうか
- デーモンが複数存在する
Client → Server (/etc/exports)
ネットワーク・インフォメーション・サービス - Wikipedia
tcp 接続したらつながっている(ストリーム) udp 送りっぱなし(データグラム)
ポート番号の待ち受けとしてのソケット
マウントしたら繋ぎっぱなしにする
ずっとサーバへの要求を繰り返すのがハードマウントで、一定数繰り返したあとにシステムコールを終了させるのがソフトマウント、この2つの他に割り込み可能マウントがある(これは中間解)
セキュリティ
セキュリティへの配慮が欠けている
ファイルのデータはネットワーク上で平文で送られる(傍受されたら丸見え)