NFS是一个流行的基于TCP/IP网络的文件共享协议,最早由Sun公司所开发,让不同计算机的不同操作系统之间彼此共享文件。并被Linux系统完美继承
NFS服务简介
使用NFS可以让磁盘空间得到较高的使用率,让本地工作站使用更少的磁盘空间。另外,使用NFS,用户不必每个机器都设置home
目录,可以放在NFS服务器上。
当Linux计算机每次启动时就自动挂载Server1上的/export/nfs分区,该分区为共享分区,可以当作本地磁盘使用
#mount Server1:/export/nfs /home/Jim/nfs
NFS服务的组件
NFS服务主要有rpc.nfsd进程、rpc.mounted进程两个必需进程和三个可选进程组成
rpc.nfsd进程,用于对客户端登录主机的权限进行验证,同时负责处理NFS请求
rpc.mounted进程,当客户端成功登录主机后,该进程会根据/etc/exports文件检查客户端是否有访问NFS服务器上的资源权限。
rpc.quotad进程:提供了NFS和配额管理程序之间的接口。
rpc.locked进程:处理崩溃系统的锁定恢复问题,避免多个用户同时操作一个文件时发生的问题
rpc.statd进程,处理客户端与服务器间的文件锁定问题以确保文件的一致性
RPC简介
NFS不同于其他服务,没有固定的端口,因为组件多,需要的端口过多,随意取用小于1024端口来提供服务
客户端不确定访问哪个端口能获得NFS服务,所以RPC服务解决该问题。RPC服务最主要的功能是记录NFS功能所对应的端口,NFS服务器启动时,会告诉RPC服务,把自己各个功能使用的端口提供给RPC。RPC工作于111端口。
注:RPC服务优先与NFS服务器启用。
安装并配置NFS服务
1、安装NFS服务
要启动NFS服务,必须具有portmap(负责端口映射工作)和nfs-utils(提供rpc.nfsd和rpc.mounted)两个套件。
为了避免使用过程中出现错误,建议查询一下NFS的各个程序是否运行:
#rpdinfo -p ;检查是否有nfsd和mounted进程
2、配置NFS服务
创建配置文件(/etc/exports,/etc/hosts.allow和/etc/hosts.deny)
(1)创建/etc/exports文件的文件格式
在Linux OS中没有主动提供/etc/exports文件,此时需要用户自己手动创建,每个基本条目格式
<目录> <主机 (选项1,选项2)>
共享的目录全路径 允许访问的客户端主机 限制参数
限制参数:rw ro sync(数据同步写到内存与硬盘)
#vi /etc/exports
/tmp 192.168.0.8/24(ro) localhost(rw) *(ro,sync)
注:如果仅改变了/etc/exports文件的内容,则无需重启服务,执行如下指令即可生效:
#exportfs -arv
-a 输出在/etc/exports中设置的所有目录
-r 重新读取
-u 停止某一共享目录
-v 回显所设置的共享目录
(2)当服务请求到达服务器时,TCP wrapper按照如下顺查询这两个文件,进行匹配
先在/etc/hosts.allow里面进行匹配,后在/etc/hosts.deny里
如果相应的配置文件不存在,则清除所有访问控制配置功能
配置文件的基本格式:
程序名列表:主机名/IP地址列表
另外,在所有的配置完成后,执行tcpdchk命令检查TCP_WRAPPERS配置的程序
#tcpdchk
3、NFS文件的存取权限
(1)root账号会改为匿名用户,只能访问匿名资源
(2)NFS服务器上有客户端的账号,客户端根据UID和GID访问NFS服务器资源
(3)无账号,访问匿名资源
启动与停止NFS服务器
#service portmap start
#service nfs start
检查portmap和nfs服务的运行状态
#service portmap status
#service nfs status
在客户端挂载NFS文件系统
1、查看NFS服务器信息
#showmount -e 192.168.0.16
-a 查看服务器上的输出目录和所有连接客户端信息,
-d 只显示被客户端使用的输出目录信息
-e 显示服务器上所有的输出目录(共享资源)
注:默认情况下,SELinux会造成客户端访问服务器问题,执行以下命令,避免问题
#setsebool -P portmap_disable_trans=1
#setsebool -P nfs_export_all_pro=1
2、加载NFS服务器共享目录
#mount -t NFS
或
#mkdir /mnt/nfs
#mount -t nfs 192.168.0.16:/exports/rhel /mnt/nfs
#umount /mnt/nfs
3、自动挂接
#vi /etc/fstab
192.168.0.16:/exports/rhel /mnt/nfs nfs defaults 0 0
重新加载/etc/fstab中定义的文件系统
#mount -a
4、使用时自动挂接
autofs 让用户使用共享资源时自动挂接,能挂接的文件系统类型有smbfs、c等
autofs预先定义一些挂接资源,当客户端访问时才自动挂接,超过默认时间不使用,就会自动卸载
注:autofs的主配置文件是/etc/auto.master,格式如下
Mountpoint map-name
阅读(1685) | 评论(0) | 转发(1) |