NFS服务配置

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS最早是由Sun公司发展出来的,

简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。

以下是NFS最显而易见的好处:

1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。

3. 一些存储设备CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

服务配置

1)服务器配置
安装rpcbind及nfs-utils:yum install -y rpcbind nfs-utils
创建共享文件夹:mkdir /var/{web,cloud}
useradd -u 1003 jerry;chown jerry.jerry /var/cloud
编辑nfs配置文件:vi /etc/exports
/var/web *(rw,async,no_root_squash)
/var/cloud *(rw,sync)
启动nfs,并加入开机启动项:
service rpcbind start
service nfs start
chkconfig rpcbind on
chkconfig nfs on
关闭防火墙:service iptables stop

2)客户端配置
同样安装rpcbind及nfs-utils:yum install -y rpcbind nfs-utils
查看192.168.88.108上的nfs:showmount -e
创建用户:useradd -u 1003 jerry
创建挂载点:mkdir /var/{web,cloud};chown jerry.jerry /var/cloud
mount -t nfs 192.168.88.108:/var/web /var/web
分别用root用户及jerry用户测试是否能创建文件,root应该能正常创建,jerry则不能。
mount -t nfs 192.168.88.108:/var/cloud /var/cloud
分别用root用户及jerry用户测试是否能创建文件,jerry应该能正常创建,root则不能。

剖析权限问题,由于共享数据实际是存储在NFS服务器上的,所以所有的操作实际是以服务器本机的账户进行的,只是服务器会根据不同的情况将客户端的访问账户账户转换为不同的服务器本机账户。

客户端使用普通用户连接服务器时,默认情况下,如果客户端使用的账户UID在服务器上也有相同的账户UID,则服务器将使用服务器本机上该UID账号进行读写操作,如果客户端访问服务器所使用的账户UID不在服务器上,则服务器自动将账号转换为nobody账号。此外,如果服务器端对共享属性配置了all_squash选项,则服务器会根据anonuid选项的值,将所有的账户自动转换为匿名账号。

客户端使用root连接服务器时,默认会将root转换为服务器上的nfsnobody账号,如果服务器端对共享属性配置了no_root_squash选项,则服务器会将root转换为本机root账号进行读写操作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

😉😐😡😈🙂😯🙁🙄😛😳😮:mrgreen:😆💡😀👿😥😎😕