NFS服务器配置
目录
NFS是什么?
NFS工作原理
NFS服务器配置
NFS客户端挂载
NFS端口固定
NFS自动挂载
NFS是什么?
NFS即网络文件系统,使用户可以像访问本地磁盘一样访问远程服务器上的数据。它可以提供文件搜索、文件列表、目录管理、获取文件属性和文件读写等。其优点是,可以将用户的数据集中存放于服务器,而节省计算机磁盘的使用量。
NFS工作原理
1. 客户端向RPC端口发送请求,要求和NFS程序通信
2. RPC程序将NFS服务端的端口回发给客户端
3. 客户端与NFS服务端建立连接
在这个过程中,有用到RPC远程过程调用,这是因为NFS提供了很多小程序,这些程序对应不同的功能,每个功能又对应不同的端口,而这些端口都是小于1024的不固定端口,客户端访问服务端的时候无法确定服务端的port,就引进了RPC。
RPC的作用在于指派NFS的功能对应的端口给客户端。NFS的程序会通知RPC相应的端口号,RPC再通知客户端,而RPC则使用固定port 111
NFS必须具须同时运行下列5个程序才能正常运行
Rpc.nfsd 用于判断客户端是否有登录NFS的服务器的权限
Rpc.mountd 用于装载NFS文件系统,并判断文件的使用权限
Rpc.statd 与rpc.lockd同时启用才生效,当Ser与cli断开时,使cli能重新连接到ser端
Rpc.lockd 当多个用户访问个文件时,用于锁定文件,以免被不同的更改请求覆盖
Portmap 定向RPC的通信流
NFS服务端的安装
1.安装nfs-utils*.rpm 和 portmap*.rpm (略)
2.修改主配置文件/etc/exports,其格式如下
目录名称 ip或hostname(参数) ip或hostname(参数) ...
可选参数
Ro 只读
Rw 读写
Sync 同步写入磁盘和内存
Async 先写入内存再写入磁盘
No_root_squash 使用root登录时,则拥有root权限
Root_squash 使用root登录时,则将其压缩为匿名用户,即为nobody
All_squash 使用任何用户登录,则都将被压缩成nobody
Anonuid 规定其uid值
Anongid 规定其gid值
eg1,只希望192.168.1.0/24段用户访问,且有读写权限
/mnt/cdrom/ 192.168.1.0/24(rw,async,no_root_squash)
eg2,只希望192.168.1.100用户具有读写权限,其它用户只有读权限
/mnt/cdrom 192.168.1.100(rw,no_root_squash) *(ro)
3.启动NFS服务,确定portmap服务已经启动
# service portmap start
# service nfs start
# service nfslock start
# chkconfig --level 2345 portmap on
# chkconfig --level 2345 nfs on
# chkconfig --level 2345 nfslock on
4.挂载/etc/export定义的目录
# exportfs -a 全部挂载或卸载/etc/export定义的目录
# exportfs -r 重新挂载,用于修改/etc/export文件后
# exportfs -v 卸载挂载的目录
# exportfs -v 详细输出共享的目录列表
5.客户端挂载
挂载前,确保客户端开启了portmap和nfslock服务
# showmount -e 192.168.1.2 列表NFS服务器共享的目录
# mount -t nfs 192.168.1.2:/mnt/cdrom /data/ 挂载
NFS端口固定
虽然NFS主程序使用TCP/UDP 2049端口,portmap使用TCP/UDP 111端口,但NFS提供的小程序使用的端口不固定,所以在防火墙开启的情况下,无法做到有针对性的放行NFS服务端口,下面讲述如何固定NFS服务端口,如下:
修改NFS配置文件/etc/sysconfig/nfs,找到
#LOCKD_TCPPORT=32803
#LOCKD_UDPPORT=32769
#MOUNTD_PORT=892
#STATD_PORT=662
将其注释去掉,重启NFS服务,这样NFS服务端口就由非固定变为固定端口
NFS自动挂载
NFS自动挂载可以通过两种方式实现:
一,通过/etc/fstab添加挂载项
在/etc/fstab添加如下行
192.168.1.2:/mnt/pub /mnt -ro,soft,initr,timeout=30 nfs 0 0
由于开机启动时,系统会自动挂载/etc/fstab里的所有设备,如果网络不好或NFS服务器连接失效,那么可能会导致占用太多启动时间
二,通过autofs挂载
原理:当用户访问一个在autofs文件内定义的目录时(可能实际不存在),autofs会根据/etc/auto.misc这个文件定义的挂载值将NFS对应的数据挂载到这个目录,如果目录不存在,可以自动创建,然后用户就直接访问挂载在这个目录下的NFS资源了,整个过程相当透明,用户感觉不到挂载的过程
1.查看autofs主配置文件/etc/auto.master,会看到如下行,表示挂载目录/misc对应的配置文件是/etc/auto.misc
/misc /etc/auto.misc
2.编缉/etc/auto.misc,将要挂载的NFS上的内容写入该文件内,其格式为:
挂载目录 挂载参数 NFS共享目录位置
例如,/etc/auto.misc内容为
linuxnfs -ro,soft.intr 192.168.1.2:/pub/nfs
当用户访问NFS资源时,此时在本地客户端是没有进行挂载的,也就是说没有/misc/linuxnfs这个目录存在,当cd /misc/linuxnfs时,这个时候autofs程序会根据/etc/auto.master的配置内容定位到/etc/auto.misc文件并读取该文件内容,并将文件预先定义的挂载选项进行挂载,此时,NFS目录就被挂载到客户端了。