/NFS///
写在前面:
NFS在数据传输/信息传递时使用RPC协议(Remote Procedure Call 远程过程调用)
Server和Client的RPC进程来管理和“对应”主机的IP、对应端口、PID
注意对应这一词!!!
因为在client以对应的用户身份登陆会变成对应的“所有者”(这个词不太会表达)
权限上,默认压制root,即root_squash
NFS端口号2049
还会占用不固定的端口号,由rpc产生
rcp.nfsd: 管理client能否登入主机
rpc.mountd:管理NFS文件系统
/
目录
1.NFS简介
2.安装、配置NFS服务
搭建准备
配置文件编辑
启动服务
更新/etc/exports
查看共享目录
3.NFS配置的一些选项说明
/
1.NFS简介
NFS全程是network file system
NFS允许一个系统在网络上和他人共享目录和文件,通过NFS,用户和程序可以访问本地文件一样访问远端系统上的文件
假如有三台机器A,B,C,他们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片放到ABC,但是使用NFS只需要放到A上,然后A共享B和C即可,访问的时候,B和C是通过网络的方式访问A上的那个目录的
2.安装、配置NFS服务
在提供NFS服务的机器上:
搭建准备:
安装 nfs-utils rpcbind/portmap(centOS 5)
yum install -y nfs-utils 会同时安装上rpcbind
编辑配置文件:
vim /etc/exports
//格式如下:
//[要共享的目录] [主机名1或者ip1(参数1,参数2...)][主机名2或者ip2(参数1,参数2)]
//譬如我要分享/tmp这个目录,只有192.168.75.0/24这个网段可读写,其他只读:
// /tmp 192.168.75.0/24(rw) *(wo)
// 仅让*.linux.org网段可以访问/etc/samba,但是存储数据的时候UID,GID全部变成40身份
// /etc/samba *.linux.org(rw,all_squash,anonuid=40,anongid=40)
// 我要将私人目录/private开放给192.168.75.132
// /private 192.168.75.132(rw)
注意!!!
上面的()必须是连着的!!!
启动服务:
/etc/init.d/rpcbind start
/etc/init.d/nfs start
在更新/etc/exports 文件之后:
无需重启服务,只需要重新 exportfs -arv加载即可
exportfs [-aruv]
-a :全部挂载/卸载/etc/exports里面的设置
-r :重新挂载/etc/exports里面的设置,同步更新/etc/exports以及/var/lib/nfs/xtab的内容
-u :卸载某个目录
-v :导出的时候显示到屏幕上
在客户端上:
客户端同样安装yum install -y nfs-utils
查看有无可以挂载的共享目录:
showmount [-ae] hostname
-a :在屏幕上显示当前主机和client连接后所使用目录的状态
-e :显示hostname机器上/etc/exports中的共享目录
如想要在客户端上挂载服务端共享的目录:
首先
showmount -e hostname
然后
mount -t nfs 192.168.137.10:/home/ /mnt/
3.NFS配置的一些选项说明
rw :读写
ro :只读
all_squash: 所有登陆者都会变成nobody
root_squash:如果以root登陆,就会把它变成nobody,限制了root
no_root_squash:如果以root登陆,就会对共享的目录拥有root权限,极不安全,不建议使用
anonuid:要和root_squash以及all_squash一起使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid,gid
anongid:同上
sync:同步模式,内存中数据时时写入磁盘
async:不同步,把内存中数据定期写入磁盘中
//centOS 5 听说会有问题/
所以
在客户端上挂载服务端的NFS
mount -t nfs -onolock,nfsvers=3 192.168.137.10:/home/ /mnt/
//如果不加-onolock,nfsvers=3 则在挂载目录下的文件属主和组都是nobody,如果指定nfsvers=3则显示root
mount -t nfs -oremount,nolock,nfsvers=3....