NFS共享

文件系统:管理文件的系统

NFS:network file system:网络文件系统 (nfs不安全,不建议在外网使用建议在内网使用) 一般不能和windows通信通过网络将远程主机上的文件系统挂载到本地来,本地写入的数据其实是通过网络写入远程主机调用硬件的是内核,通过系统调用给用户read();内核的函数调用,过程调用write()local procedure call;本地过程调用nfs工作方式:

在2台主机上,nfs本身没有网络功能,当本地发起文件系统调用时,内核发现文件设备不是本地时

就借助RPC发起一个调用(存根调用,rpc客户端),请求rpc服务器端(服务器端有一个rpc server)

通过网络和rpc server进行通信和传输数据

将结果返回给rpc客户端。NFS是一个文件系统又是一个协议,而RPC是负责负责信息的传输。

linux中通过rpc服务的程序;portmap:111/tcp,111/udp

rpc;可以基于二进制格式,文本格式(XMLRPC)rh5使用的是nfsv3 不能支持客户端验证,只能支持ip地址验证  rh6使用的是nfsv4

服务器端;nfs-utils安装nfs  启动nfs:service nfs start   nfs会启动3个主进程;

nfsd;nfs的服务进程,用以传输

mountd:提供客户端挂载

quotod:磁盘配额

nfsd:监听的2049端口

mountd:监听的端口会发生改变

quotod:监听端口会变半随机的,通过rpc服务随机注册的nfs主配置文件:/etc/rc.d/init.d/nfs    /etc/rc.d/init.d/nfslock

当一个文件被两个进程同时打开时,文件会崩溃损坏,而为了避免这种情况,可以加锁, 一个进程打开文档时会申请nfs给这个文件加锁,其他进程要访问时也去向nfs申请,由nfs已经给文件加锁了,其他进程将请求失败,无法打开文件

/etc/rc.d/init.d/rpcgssd     /etc/rc.d/init.d/rpcidmapd

/etc/rc.d/init.d/rpcsvcgssd

配置nfs

nfs启动时使用的配置文件是;/etc/exports定义共享那个目录出去,和那些客户端可以访问文件系统,客户端之间用空格隔开客户端可以是ip(ip可以是主机位,也可以是网段),host-name,或者通配符;*.a.com,每个客户端后必须跟小括号(不能有空格),里面定义客户端访问特性,如访问权限#号开头的信息是注释信息配置文件格式:

共享存储位置 共享ip 权限 如:

/shared   192.168.1.0/24(ro) 192.168.2.13(rw,sync)共享/shared目录#192.168.1.0/24网段有读的权限,192.168.2.13有读写和同步权限配置文件定义的属性:使用,号分割属性ro:只读      rw:读写      sync;同步写入数据

async:异步写入数据

root_squash:将root用户映射为来宾账号

no_root_squash:不将root用户映射为来宾账号

all_squash:将所有的用户映射为来宾用户

anonuid:指定来宾账号的uid,格式:anonuid=uid

anonpid:指定来宾账户的pid,格式:anongid=gid

其他的不常用,可以自行通过man命令查看showmount;显示共享目录 a;列出在客户端主机名或IP地址和挂载目录

  -e:显示nfs的服务器共享的文件系统(目录),这里要加ip,不加为本地主机格式为;showmount -e host客户端使用mount挂载格式为;

mount -t nfs NFS-server-host:/path/to/somedir(远程共享目录) /localhost_mouunt-path(本地挂载点)如;mount -t nfs 192.168.1.200:/shared  /media/shared 一般的nfs服务不能重启,但是又修改了文件系统的共享文件:/etc/exports文件,配置无法生效

这时就可以使用exportfs命令:exportfs命令;

-a;一般跟-r或-u使用;重新挂载所有文件系统或取消导出的所有文件系统

-r:重新导出文件系统

-u:取消导出文件系统

-v:显示详细过程

注意!!!

如果通过用户映射的方式进行,NFS那么会涉及到一个NFS目录权限的问题

NFS目录没有将权限分配给映射的用户的话,那么用户将无法上传,下载,必须将文件权限给映射用户服务器上如果没有tom这个用户,但是有tom的文件,那么文件的属主和属组是tom的pid,

服务器上有和tom同名的用户,pid一样,那么属主属组是tom

服务器上没有tom同名的用户,但有和tom的pid相同的用户lisi,文件显示的属主是lisi 可以将NFS挂载写入/etc/fstab;将文件系统开机进行挂载但是要注意!系统在开机的时候,如果有文件系统没有挂载上那么,系统将无法启动但是可以在文件的挂载选项上指定选项,如果没有挂载上可以跳过这个文件的挂载!如:192.168.1.200:/shared   /media/shared    nfs   _netdev   0 0 rpc mountd :完成用户的认证

在用户发起请求rpc时,NFS服务器的mount.d会认证用户是否有权限,有就会返回给用户一个令牌,通过令牌找nfs服务rquotad是一个RPC服务器返回一个本地文件,安装一个远程机上的用户配额NFS。

它还允许配额设置NFS安装文件系统(如果配置编译过程中通过命令行选项允许 S)。结果使用配额(1)显示远程文件系统的用户配额编辑磁盘空间限制(8)设置配额 远程文件系统。rquotad守护进程使用TCP Wrappers(下图书馆服务名称rquotad),允许您指定的主机允许/不允许使用 守护进程(见hosts.allow(5)更多的信息帮助)。这个rquotad守护进程是正常启动,在启动时从系统启动 脚本。默认的nfs服务是监听到随机的服务端口,可能会发生冲突可以通过修改/etc/sysconfig/nfs文件指定默认的端口,避免发生冲突

   MOUNTD_PORT=892 (mount服务的监听端口)

   RQUOTAD_PORT=875 (rquotad)

   LOCKD_TCPPORT=32803(锁进程的监听端口)

   LOCKD_UDPPORT=32769

转载于:https://www.cnblogs.com/feiyu-cn/p/7268376.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值