内容:node
一、NFS简介windows
二、NFS服务端的配置centos
三、NFS客户端的配置以及使用命令bash
四、NFS服务的搭建测试服务器
1、NFS简介网络
一、NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它容许网络中的计算机之间经过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用能够透明地读写位于远端NFS服务器上的文件,就像访问本地文件同样。架构
1)、设置Linux系统之间的文件共享(Linux与Windows中间文件共享采用SAMBA服务);app
2)、NFS只是一种文件系统,自己没有传输功能,是基于RPC协议实现的,才能达到两个Linux系统之间的文件目录共享;负载均衡
3)、NFS为C/S架构;异步
2、NFS服务端的配置
一、须要安装的软件包:
rpcbind:提供rpc服务(mapping),在centos5之前叫portmap,5之后更名为rpcbind
nfs-utils:提供nfs,mountd与其余相关程序。
咱们能够rpm -ql nfs-utils来查看nfs服务的应用程序主要有如下几个:
nfsd:NFS的守护进程,工做在tcp与udp的2049端口上。
mountd:NFS用来验证客户端信息的守护进程,工做在随机端口。
rquotad:磁盘限额进程。
lockd:文件锁。
idmapd:权限映射。
辅助类的服务:rpc (portmap)
rpc.mountd:认证;
rpc.lockd:加锁
rpc.statd:状态
二、配置文件:
/etc/exports:nfs的主要设定文件。
/var/lib/nfs/*tab:设定记录文件。
etab:共享目录的完整权限设定。
xtab:曾经链接的客户端资料。
/usr/sbin/exportfs:NFS分享资源命令,能够用来从新获取共享文件设定,挂载,卸载等。
/usr/sbin/showmount:用来查看远程主机的共享信息。
三、exports文档设定格式
管理共享的nfs文件系统:配置文件每一行定义一个共享文件系统
/PATH/TO/SOME_DIR CLIENTS_1(export_options,...) CLIENTS_2(export_options,...)
CLIENTS:
single host: IPv4, IPv6, FQDN
IP networks:network/netmask,支持两种格式的掩码;
wildcards:在主机名字符串中使用通,*.maideliang.com,
anonymous:*,表示全部的客户端主机;
export_options:
ro:只读;
rw:读写;
sync:同步
async:异步
User ID Mapping:
root_squash:压缩root用户的权限,默认行为;nfsnobody
no_root_squash:不压缩root用户的权限;
all_squash:压缩全部用户的权限;
anonuid and anongid:将压缩的用户映射为此处指定的用户
命令:
exportfs命令(能够不重启nfs而生效):
-a:跟-r或-u选项同时使用,表示从新挂载全部文件系统或取消导出全部文件系统;
-r: 从新导出
-u: 取消导出
-v: 显示详细信息
四、权限相关
当远程用户访问共享文件夹时是使用什么权限呢?若是建立文件那么属主和属组又是什么呢?
其实也samba共享服务同样,nfs默认是使用你本地主机当前用户UID与GID相对应的身份来使用,若是远程服务端没有此用户或组就会以数字的形式呈现。
若是是root用户,那么在远程主机上确定就是使用root了,由于root默认的uid gid都是0!这样就太危险了,因此若是使用了root访问,NFS会自动压缩权限为最小权限nfsnobady。
当本地用户使用不同的名字,UID倒是相同的建立文件,会经过idmapd这个进程来映射,因此你在远程看到的还会是你原来的name。
当你将权限都设定完成后记得去更改服务器端文件夹的权限,推荐使用acl来设定,由于你的权限其实为 "用户权限与文件夹权限的交集"。
3、NFS客户端命令:
一、挂载NFS目录:
mount -t nfs NFS_SERVER:/PATH/TO/EXPORTED_DIR /MOUNT_POINT [-rvVwfnsh] [-o OPTIONS]
二、查看NFS服务的命令:
showmount -e NFS_SERVER: 查看NFS服务器“导出”的各文件系统
showmount -a NFS_SERVER: 查看NFS服务器全部被挂载的文件系统及其挂载的客户端对应关系列表
showmount -d NFS_SERVER: 显示NFS服务器全部导出的文件系统中被客户端挂载了文件系统列表
三、开机自动挂载
编辑fstab文件添加便可,不过须要注意添加挂载选项
例:设定开机自动挂载:
10.1.252.109:/shared /mnt/nfs nfs defaults,_rnetdev 0 0
最好加载挂载选项:_rnetdev,表明若是检查nfs远端服务若是没开则跳过检查,不然会致使开机不成功(已测试验证)
4、NFS服务的搭建测试
一、服务端安装相关的程序包
[00:18 root@centos6.8~]# yum install -y nfs-utils rpcbind
二、编写/etc/exports处处列表,并启动nfs服务
[00:39 root@centos6.8~]# cat !$ cat /etc/exports /shared 10.1.0.0/16(rw) #把/shared目录共享给10.1.0.0/16的全部用户,并有读写权限 [00:42 root@centos6.8~]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
三、客户端挂载测试
[root@localhost ~]# showmount -e 10.1.252.109 #查看服务端的exports处处列表 clnt_create: RPC: Program not registered [root@localhost ~]# showmount -e 10.1.252.109 Export list for 10.1.252.109: /shared 10.1.0.0/16 [root@localhost ~]# showmount -a 10.1.252.109 All mount points on 10.1.252.109: [root@localhost ~]# showmount -d 10.1.252.109 Directories on 10.1.252.109: [root@localhost ~]# mkdir /mydata/nfs [root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mydata/nfs/ #挂载NFS文件系统 [root@localhost ~]# showmount -e 10.1.252.109 Export list for 10.1.252.109: /shared 10.1.0.0/16 [root@localhost ~]# showmount -d 10.1.252.109 Directories on 10.1.252.109: [root@localhost ~]# showmount -a 10.1.252.109 All mount points on 10.1.252.109: [root@localhost ~]# mount #检查已经挂载成功 /dev/mapper/vg0-root on / type ext4 (rw) /dev/mapper/vg0-usr on /usr type ext4 (rw) /dev/mapper/vg0-var on /var type ext4 (rw) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) //10.1.252.109/windows on /mydata/samba type cifs (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 10.1.252.109:/shared on /mydata/nfs type nfs (rw,vers=4,addr=10.1.252.109,clientaddr=10.1.252.187)
注意:若是出现如下错误说明,本机没有安装 mount.nfs了,咱们只要安装mount.nfs就能够了
[root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt mount: wrong fs type, bad option, bad superblock on 10.1.252.109:/shared, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so. [root@localhost ~]# yum install -y nfs-utils [root@localhost ~]# mount mount mount.nfs mount.nfs4 mountpoint mountstats [root@localhost ~]# mount -t nfs 10.1.252.109:/shared /mnt
接下来就能够作各类基于NFS共享的负载均衡实验了。
OK,更多内容请关注个人博客。