1.NFS服务的概述
2.NFS服务的配置
3.启动和停止NFS服务
4.测试NFS服务
5.NFS客户端的使用
6.案例详解
NFS采用客户/服务器工作模式。在NFS服务器上将/NFS/PUBLIC目录设置为输出目录(即共享目录)后,其他客户端就可以将这个目录挂载到自己系统中的某个目录下,这个目录可以与服务器上的输出目录和其他客户机中的目录不相同。
NFS本身的服务并没有提供资料传递的协议,但是NFS却能让我们进行档案的分享,这其中的原因就是NFS使用到一些其它相关的传输协议,而这些传输的协议,就是使用到这个所谓PRC(Remote Procedure Call)
NFS主要在管理分享出来的目录,而至于资料的传递,就直接将他给的RPC的协议来动作。
主机的IP,服务的端口,与对应到的服务的PID等等管理工作由RPC负责人。
使用NFS服务,至少需要启动以下3个系统守护进程。1)rpc.nfsd 2)rpc.mountd 3)portmap
查看RPC当前的相关信息:rpcinfo -p
service nfslock start ---此服务负责两端的文件锁定(一个文件在同一时刻只给一个用户使用)
NFS服务的安装
查看是否已安装:rpm -q nfs-utils portmap
安装portmap服务: rpm -ivh portmap
安装NFS服务: rpm -ivh nfs-utils
rpm -ql nfs-utils --查看安装包时安装了那些文件
NFS服务的配置:
exports文件的格式
NFS服务配置实例
维护NFS服务的输出目录列表
exports文件中每一行提供了一个共享目录的设置
其命令格式为:
<输出目录> [客户端1(选项1,选项2,。。。)][客户端2(选项1,选项2,。。。)]
客户端常用的指定方式:
192.168.16.20 指定IP地址的主机
192.168.16.0/24(或192.168.16.*) 指定子网中的所有主机
pc1.vpn.net 指定域名的主机
*.vpn.net 指定域中的所有主机
*(或缺省) 所有主机
访问权限选项:
访问权限选项 说明
ro 设置输出目录只读
rw 设置输出目录可读写
用户映射选项:
all_squash 将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(一般均为nfsnobody)
no_all_squash 不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)
root_squash 将root用户及所属用户组都映射为匿名用户或用户组(默认设置)
no_root_squash 不将root用户及所属用户组都映射为匿名用户或用户组
anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该匿名用户账户为本地用户账户(UID=XXX)
anongid=xxx 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=XXX)
sync 将数据同步写入内存缓冲区与磁盘中,虽然这样做效率较低,但可以保证数据的一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘。
NFS服务配置实例:
/nfs/public 192.168.16.0/24(rw,async) *(ro) ---两个作用段
/nfs/liu 192.168.16.20(rw,sync)
/nfs/root *.gdvcp.net(ro,no_root_squash)
/mnt/cdrom 192.168.16.*(ro)
维护NFS服务的输出目录列表:
exportfs命令就是用来维护NFS服务的输出目录列表的,命令的基本格式如下,
exportfs [选项]
其选项有以下几个,
-a:输出在/etc/exports文件中所设置的所有目录。
-r:重新读取/etc/exports文件中的设置,并使设置立即生效,而不需重新启动NFS服务。
-u:停止输出某一目录。
-v:在输出目录时将目录显示到屏幕上
启动和停止NFS服务
1,启动NFS服务
/etc/init.d/nfslock start (默认为已启动项)
/etc/init.d/portmap start
/etc/init.d/nfs start
2,停止NFS服务
/etc/init.d/nfs stop
/etc/init.d/portmap stop
/etc/init.d/nfslock stop
3,重新启动NFS服务
/etc/init.d/nfs restart
4,检查portmap和nfs服务的状态
/etc/init.d/portmap status
/etc/init.d/nfs status
5,设置自动启动NFS服务
chkconfig --level 35 portmap on
chkconfig --level 35 nfs on
ntsysv启动服务配置程序,找到“NFS”和“portmap”服务,分别在其前面加上“*”
测试NFS服务:
1,检查输出目录所使用的选项
通过查看/var/lib/nfs/etab文件,就可以了解到真正输出目录时,到底使用了什么选项。
2,使用showmount命令测试NFS服务器的输出目录状态
showmount命令的基本格式为:
showmount [选项] NFS服务器名称或地址
常用的选项有:
-a:显示指定的NFS服务器的所有客户端主机及其所连接的目录;
-d:显示指定的NFS服务器中已被客户端连接的所有输出目录;
-e:显示指定的NFS服务器上所有输出的共享目录。
NFS客户端的使用
查看NFS服务器信息
showmount -e 192.168.85.128
连接NFS服务器
mount -t nfs 服务器名或IP地址:输出目录 本地挂载目录
如:mount -t nfs 192.168.85.128:/nfs/public /mnt/nfs --- -t nfs 也可以缺省
卸载NFS服务器
umount /mnt/nfs
启动时自动连接NFS
让系统在启动时自动挂载NFS服务器上的输出目录,应编辑文件/etc/fstab,在该文件中加入如下格式的语句。
NFS服务器名或IP地址:输出目录 本地挂载目录 nfs defaults 0 0
如:192.168.85.129:/nfs/public /mnt/nfs nfs defaults 0 0
案例详解
1)开放/nfs/shared目录,供所有用户查阅资料。 ---/nfs/shared *(ro)
2)开放/nfs/upload目录作为192。168。85。0/24网段的数据上传目录,并将所有用户及所属的用户组都映射为nfs-upload,其UID与GID均为210
3)将/home/tom目录仅共享给192。168。85。129这台主机,并且只有用户tom可以完全访问该目录。
mkdir -p /nfs/shared
mkdir -p /nfs/upload
useradd tom
useradd -u 210 nfs-upload -s /sbin/nologin
vi /etc/exports
/nfs/shared *(ro)
/nfs/upload 192.168.85.0/24(rw,all_squash,anonuid=210,anongid=210)
/home/tom 192.168.85.129(rw)
service nfslock start|restart
service portmap start|restart
service nfs start|restart
客户端:
showmount -e 192.168.85.128 ---查看共享出的目录
mount 192.168.85.128:/nfs/shared /shared
mount 192.168.85.128:/nfs/upload /upload
mount 192.168.85.128:/nfs/tom /tom
注意:NFS是根据UID和GID来判断对应的用户和用户组
cat /var/lib/nfs/etab ---查看共享目录的其它默认使用的选项
另:usermod -u 501 tom ---修改tom用户的UID