トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

NFS

[FreeBSD]

 FreeBSDでのnfsd

/usr/src/usr.sbin/nfsd.c
引数およびソケットの解析をしnfssvc()を呼んでいる

FreeBSDのNFS

 NFS2の動作について


  • 通常のアプリケーションが、ファイルアクセスを実行
  • その要求は、OS カーネルに届く
  • カーネルは、そのファイルシステムが、NFS 経由でネットワーク上にあると識別し、 NFS クライアントへ要求を受け渡す

  • NFS クライアントは、RPC コールを実施
  • RPC は、UDP/IP を利用して、NFS サーバのあるホストへ要求を渡す
  • NFS サーバのホストの UDP/IP モジュールは、要求を RPC サーバへ渡す
  • RPC サーバが、NFS サーバへ要求を渡す
  • NFS サーバが、サーバのカーネルのローカルファイルアクセスを要求
  • サーバのカーネルがファイルアクセスを実施
  • 結果を戻していく(以下省略)

 RPCメモ


コンピューターC言語講座RPCについて(1)

 ファイルアトリビュート



struct nfs_fattr {
u_int32_t	fa_type;
u_int32_t	fa_mode;
u_int32_t	fa_nlink;
u_int32_t	fa_uid;
u_int32_t	fa_gid;
union {
	struct {
		u_int32_t	nfsv2fa_size;
		u_int32_t	nfsv2fa_blocksize;
		u_int32_t	nfsv2fa_rdev;
		u_int32_t	nfsv2fa_blocks;
		u_int32_t	nfsv2fa_fsid;
		u_int32_t	nfsv2fa_fileid;
		nfstime2	nfsv2fa_atime;
		nfstime2	nfsv2fa_mtime;
		nfstime2	nfsv2fa_ctime;
	} fa_nfsv2;
	struct {
		nfsuint64	nfsv3fa_size;
		nfsuint64	nfsv3fa_used;
		nfsv3spec	nfsv3fa_rdev;
		nfsuint64	nfsv3fa_fsid;
		nfsuint64	nfsv3fa_fileid;
		nfstime3	nfsv3fa_atime;
		nfstime3	nfsv3fa_mtime;
		nfstime3	nfsv3fa_ctime;
	} fa_nfsv3;
} fa_un;
};