您的位置:首页 > 理论基础 > 计算机网络

NFS (Network FileSystem 网络文件系统)

2007-07-01 09:52 926 查看
1. NFS (Network FileSystem 网络文件系统)

让不同的机器,不同的OS在网络上共享目录和文件。通过NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。

4. 配置NFS

共享的NFS目录在/etc/exports中列出,这个文件控制对目录的共享。

书写规则是:共享目录 主机(参数)

e.g:/mnt/cdrom *.abc.com(ro,sync) master.abc.com(rw,sync)

上面的规则代表将/mnt/cdrom目录以只读同步方式共享给*.abc.com域,并且以读写同步方式共享给master.abc.com主机。任何共享目录都要指定sync或async,也就是指定文件写入磁盘之前共享NFS目录是否响应命令。

下面是一些NFS共享的常用参数:
ro:只读访问
rw:读写访问
sync:所有数据在请求时写入共享
async:NFS在写入数据前可以相应请求

修改了etc/exports而不想重新启动nfs,只需运行# exportfs -rv 即可

5. 启动NFS Server

# service portmap start
# service nfs start

根据需要设置在相应的运行级别自动启动NFS:
# chkconfig --level 235 portmap on
# chkconfig --level 235 nfs on

另外,还需要查看系统的iptables、/etc/hosts.allow、/etc/hosts.deny是否设置了正确的NFS访问规则。

参考:

http://www.raidcheng.net/blog/archives/2005/04/21/index.html#000174

http://nfs.sourceforge.net/nfs-howto/index.html

6. 启动NFS Client

6.1 显示Server的共享目录

# showmount -e 10.193.10.1

6.2 mount

# mount -t nfs 10.193.10.1:/home/public /home/nfs/public

把10.193.10.1下的/home/public mount到本地/home/nfs/public下

用 df看一下目录mount是否成功


NFS:网络文件系统
(NFS:Network File System)
  网络文件系统(NFS),起初由 Sun 微系统公司进行开发,后经 IETF 扩展,现在能够支持在不同类型的系统之间通过网络进行文件共享。换言之,NFS 可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。

  NFS 使用客户端/服务器架构,并由一个客户端程序和服务器程序组成。服务器程序向其它计算机提供对文件系统的访问,其过程就叫做“输出”。NFS 客户端程序对共享文件系统进行访问时,把它们从 NFS 服务器中“输送”出来。NFS 传输协议用于服务器和客户机之间文件访问和共享的通信,该协议还支持服务器通过输出控制向一组受到限制的客户计算机分配远程访问特权。

  NFS 版本2,是 NFS 最早被广泛应用的版本,起初完全运行于 UDP 协议之上,并且不保留状态。几大厂商扩展了 NSF 版本2,使之支持 TCP 传输。NFS 版本3整合了 TCP 传输。使用了 TCP 传输后,使得广域网中的 NFS 应用更为灵活。在继承了以前版本优点的基础之上,目前,NFS 版本4在功能上有如下的改进:

提高了经由 Internet 进行访问的性能。本协议能够很容易地通过防火墙;在等待时间较长时带宽较小的情况下,其性能优越;且每台服务器所连接用户的数目可扩展到相当大的数目。

将许可条款内置到协议之中,安全性得到了极大的加强。在对远程过程调用(RPC) PRCSEC_GSB 协议的支持上,本协议则建立在 ONCRPC 工作组的工作之上。另外,NFS 版本4支持客户机与服务器之间的安全对话,并要求客户机和服务器支持最简单的安全计划。

支持扩展协议。本协议接受所支持协议的标准扩展,而不是打折的向后兼容。

  NFS 与 UNIX 系统息息相关,尽管它可以用于任何平台中,如 Macintosh 和 Microsoft Windows 操作系统。服务器消息块协议(SMB)和国际互联网普通文件系统(CIFS)是 NFS 的类似协议,在 Microsoft Windows 平台中,拥有着对等的网络文件系统应用。


协议结构
   NFS 协议支持许多基本数据类型的文件。另外,NFS 协议支持如下的结构化数据类型:
名称

结构

注释

nfstime4

struct nfstime4 {
int64_t seconds;
uint32_t nseconds;
}

nfstime4 结构类型的数据给出了从通用协议时间(UTC)的1970年1月1日0时计起的秒钟或纳秒的数目。这种数据类型用于计算时间和日期的流逝信息。

time_how4

enum time_how4 {
SET_TO_SERVER_TIME4 = 0,
SET_TO_CLIENT_TIME4 = 1
};

正如属性说明的内容那样,它可用于确定时间数值。

settime4

union settime4 switch {
case SET_TO_CLIENT_TIME4:
nfstime4 time;
default:
void;
};

正如属性说明的内容那样,它可用于确定时间数值。

specdata4

struct specdata4 {
uint32_t specdata1;
uint32_t specdata2;
};

本数据类型表示设备文件类型 NF4CHR 和 NF4BLK 的其它信息。

fsid4

struct fsid4 {
uint64_t major;
uint64_t minor;
};

本类型数据是文件系统的标识符,可当作强制型属性使用。

fs_location4

struct fs_location4 {
utf8str_cis server<>;
pathname4 rootpath;
};

用于推荐属性 fs_locations,它用于对移植和复制的支持。

fs_locations4

struct fs_locations4 {
pathname4 fs_root;
fs_location4 locations<>;
};

用于推荐属性 fs_locations,它用于对移植和复制的支持。

fattr4

struct fattr4 {
bitmap4 attrmask;
attrlist4 attr_vals;
};

fattr4 结构类型的数据用于表示文件和目录的属性。

change_info4

struct change_info4 {
bool atomic;
changeid4 before;
changeid4 after;
};

本结构类型 CREATE、LINK、REMOVE、RENAME 等运算配合使用,可向用户反映目标文件系统对象所在目录属性的变化。

clientaddr4

struct clientaddr4 {
string r_netid<>;
string r_addr<>;
};

它作为 SETCLIENTID 运算的一部分,可以指定正占用一个 clientid 的客户计算机的地址,也可以作为 callback registration 的一部分。

cb_client4

struct cb_client4 {
unsigned int cb_program;
clientaddr4 cb_location;
};

客户计算机使用本结构类型的数据来通知服务器回呼地址;包括程序号和客户计算机地址。

nfs_client_id4

struct nfs_client_id4 {
verifier4 verifier;
opaque id<NFS4_OPAQUE_LIMIT>;
};

本结构类型的数据是 SETCLIENTID operation 对话的一部分。

open_owner4

Struct open_owner4 {
clientid4 clientid;
opaque wner<NFS4_OPAQUE_LIMIT>;
};

本结构类型的数据用于识别开放状态的用户。

lock_owner4

struct lock_owner4 {
clientid4 clientid;
opaque owner<NFS4_OPAQUE_LIMIT>;
};

本结构类型的数据用于识别文件锁定状态的用户。

open_to_lock_owner4

struct open_to_lock_owner4 {
seqid4 open_seqid;
stateid4 open_stateid;
seqid4 lock_seqid;
lock_owner4 lock_owner;
};

本结构类型的数据用于 open_owner4 的第一次完成的锁定操作。它提供 open_stateid 和 lock_owner ,以便于从一个有效的 open_stateid sequence 向一个新的 lock_stateid sequence 开始一次传输。

stateid4

struct stateid4 {
uint32_t seqid;
opaque other[12];
};

本结构类型的数据用于客户计算机与服务器之间各种不同的共享机制。

协议结构SMBCIFSRPCTCPUDP
组织来源NFS 最初由 Sun 微系统公司开发,现在为 IETF 协议。
相关协议http://www.javvin.com/protocol/rfc3530.pdf : NFS 版本 4 协议规范
http://www.javvin.com/protocol/rfc1813.pdf : NFS 版本 3 协议规范
http://www.javvin.com/protocol/rfc1094.pdf : NFS 版本 2 协议规范

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: