一、NFS介绍

1)什么是NFS

它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。

NFS一般用来存储共享视频,图片等静态数据。

《什么是NFS

   就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录内的数据。(一般共享视频,图片等静态数据)

   这个再往简单点,就相当于windows里面共享文件,然后其他主机把这个共享文件映射成了本地盘使用一样。接下来我们会学习两部分:NFS原理(共享原理)、服务端如何架NFS(怎么共享)、客户端怎么挂载(怎么映射网盘)

挂载结构图

NFS-LMLPHP

2)NFS挂载原理介绍

如上图,当我们在nfs服务器设置好一个共享目录/data后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到本地。并且能够看到服务端/data的所有数据。因为挂载在本地的/data目录,其实就是服务器端的/data目录。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器时通过远程过程调用(remote procedure call 简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后再利用这些端口(小于1024)来进行数据的传输。

PS:哦,原来是RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后再建立连接,然后传输数据。


rpcnfs

   pcportmap)就是用来统一管理NFS端口的服务,并且统一对外的端口是111NFS服务端需要先启动rpc,再启动NFS,这样NFS才能够到RPC去注册端口信息。客户端的RPC可以通过向服务端的RPC请求获取服务端的NFS端口信息。当获取到了NFS端口信息后,就会以实际端口进行数据的传输。(由于NFS端口为随机的。)

《RPC和NFS如何通讯》

因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样我们就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。

RPCNFS之间又是如何之间相互通讯的?

首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开机111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。


PS:这里有个启动顺序的点,先给大家讲清楚。因为NFS要想RPC注册端口信息。所以RPC一定要先于NFS早启动。我给大家比喻一个左手叠右手的游戏,此时就是一定要确保NFS的手掌(左)在RPC手掌(右)的上面。正常顺序是要RPC先叠上去,然后NFS再叠上去。如果RPC重启了,就相当于手掌抽出来了,然后重新叠上去。这样RPC就在NFS上面了,所以不行。此时我们的NFS就需要再重新启动一次。这样NFS抽出来然后再叠上去之后,NFS就在RPC上面了。如果NFS修改了配置,就直接reload就好了


《客户端NFS和服务端NFS通讯过程》

1)首先服务器端启动RPC服务,并开启111端口

2)启动NFS服务,并向RPC注册端口信息

3)客户端启动RPCportmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

NFS-LMLPHP

------------------------------------小结-------------------------------------------------

NFS的原理结构其实还是挺简单啊哦,NFS就是网络共享目录,就是共享文件.服务端共享,客户端挂载使用。挂载流程原理,就是上面提到的5个流程。并且为什么是这个流程也讲了。因为NFS要向RPC去注册端口信息。因为NFS的端口是随机获取的。

----------------------------------------------------------------------------------------


二、NFS部署

客户端

直接安装下portmap软件和NFS软件,具体怎么按照参照服务器端。

服务器端

1)查看系统系信息

#uname  -r查看系统内核版本

[root@CT5_6-32-220-NFS01 ~]# cat/etc/redhat-release

CentOS release 5.6 (Final)

[root@CT5_6-32-220-NFS01 ~]# uname  -r  

2.6.18-238.el5

要养成一个习惯,就是先查看系统版本和内核参数。同一个软件在不同版本,内核之间是有差异的,所以部署的方法也不一样,不要因为这个而造成不必要的错误。在做应用迁移之前也要对环境系统做一个完整的登记,并且新环境中的一些参数要和旧的环境一模一样避免错误。

#uname   -a查看操作系统信息

[root@CT56-32-220-NFS01 ~]# uname -a

Linux CT56-32-220-NFS01 2.6.18-238.el5 #1 SMP ThuJan 13 16:24:47 EST 2011 i686 i686 i386 GNU/Linux


2)NFS软件安装

要部署NFS服务,必须安装下面两个Nfs-utils:NFS主程序、Portmap:RPC主程序

NFS服务器端和client端都需要安装这两个软件。

NFS软件包》

1、nfs-utilsNFS的主程序,包含rpc.nfsd  rpc.mount两个deamons

2、portmapRPC主程序,可以将NFS视为RPC下的一个子程序


2.1)查看NFS软件包

[root@CT5_6-32-220-NFS01 ~]# rpm  -qa | egrep “nfs|portmap”   ####可以看到系统默认已经安装了。

portmap-4.0-65.2.2.1

nfs-utils-lib-1.0.8-7.6.el5

nfs-utils-1.0.9-50.el5

如果没有安装的话,可以使用yum Install nfs-utils portmap安装包名称来安装。

3)NFS启动

因为NFS及其辅助程序都是基于RPC协议(使用RPC111端口来进行请求的监听)所以首先要确保系统中运行了portmap服务。客户端和服务端都要启动portmap服务客户端不用启动nfs服务,而服务端需要启动nfs服务。

portmap启动命令:

#/etc/init.d/portmap start

[root@CT5_6-32-220-NFS01 ~]# /etc/init.d/portmapstart

Starting portmap: [ OK  ]  ##服务已经正常启动了

#netstat–lnt来查看系统中启用的端口

[root@CT56-32-220-NFS01 ~]# netstat  -lnt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp       0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      ###可以看到多了一个111端口,这个端口就是RPC的监听端口。

tcp       0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp       0      0 0.0.0.0:823                 0.0.0.0:*                   LISTEN      

tcp       0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN    

提示:如果portmap服务没有启动,我们通过rpcinfo –Localhost检查时,会报错。

[root@CT56-32-220-NFS01 ~]# rpcinfo  -p  ##正常的显示信息

programvers proto   port

100000    2   tcp   111  portmapper

100000    2   udp   111  portmapper

100024    1   udp   820  status

[root@CT56-32-220-NFS01 ~]# rpcinfo –p  ##出错的信息

rpcinfo: can’t contact portmapper: RPC: Remotesystem error - Connection refused

Rpfinfo 就是用来查看在rpc注册的端口信息。如果nfs系统服务启动后,就会像rpc去注册信息,此时就能够差查看到注册了哪些信息。

-------------

NFS启动命令:

------------

#/etc/init.d/nfs   start

#/etc/init.d/nfs   status

[root@CT56-32-220-NFS01 ~]# /etc/init.d/nfs status  ####我们这里查看nfs的状态,这里却显示了3个程序的状态,那是因为NFS包含了mountd挂载,quotad配额的管理机制的程序。

rpc.mountd is stopped–>管理client端是否能够登入的问题

nfsd is stopped###这个是主程序->管理client端能够取得的权限

rpc.rquotad is stopped

说明:从NFS服务启动的信息中我们可以看到NFS默认需要启动的进程有rpcmountdnfsd,rpc,rquotad,rpc,idmapdNFS服务器启动时最少需要两个daemons,一个管理client端是否能够登入的问题,另一个管理client端能够取得的权限。如果还需要管理quota的话,NFS还要加载rpc.rquotad程序。

[root@CT5_6-32-220-NFS01 ~]# /etc/init.d/nfs status

rpc.mountd (pid 12920) is running…

nfsd (pid 12917 12916 12915 12914 12913 12912 12911 12910) isrunning…

rpc.rquotad (pid 12892) is running…

1、nfsd(rpc.conf)

这个daemon的主要功能就是管理client端是否能够登入主机,其中还包含登入者的ID判别。

2、rpc.mount

这个daemon主要功能则是管理NFS的文件系统。当client端顺利通过rpc.nfsd登入主机后,在它可以使用NFS服务器提供规定文件之前,还会经过文件使用权限的认证程序。它会去读取NFS的配置文件/etc/exports来对比客户端的权限,当通过这一关之后,client端也就取得使用NFS文件的权限。这就是为什么单单在/etc/exports中设置NFS的权限是不够的。


------------------------

配置NFS开机启动

------------------------

#chkconfig  nfs  on

#chkconfig  protmap on

(客户端只需要portmap自启动就可以了)

[root@CT5_6-32-220-NFS01 ~]# chkconfig portmapon  

[root@CT5_6-32-220-NFS01 ~]# chkconfig nfs on  

[root@CT5_6-32-220-NFS01 ~]# chkconfig --list  | egrep “nfs|port”  ####注意|两边不能加上空格要不会查询不到

nfs            0:off   1:off   2:on   3:on    4:on    5:on   6:off

nfslock        0:off   1:off  2:off   3:on    4:on   5:on    6:off

portmap        0:off   1:off   2:on   3:on    4:on    5:on   6:off


三、配置NFS服务

NFS配置文件的路径

#/etc/exports 默认这个里面的内容是空的,这个就是nfs的配置文件。

格式NFS共享目录  客户端地址1(参1,参2只读还是可写) 客户端地址2(参1,参2

参数选项说明:

共享目录:存在于我们本机上的目录,我们想共享给网络上的其他主机使用。如我要共享/tmp/data目录,那么此选项可以就直接写/tmp/data目录。

客户端地址1(参数1,参数2):客户端地址能够设置一个网络,也可以设置单个主机。参数:如读写权限rw,同步更新sync,压缩来访账号all_squash,压缩后的匿名账号anonuid=uidanongid=gid等等

客户端地址选项说明:

生产环境常见配置实例:

NFS权限

NFS配置权限设置,即/etc/exports文件配置格式中小括号()里的参数集。

提示:

1、另外可以通过man exports查阅exports参数说明。

2、当我们nfs配置好之后,我们可以通过cat /var/lib/nfs/etabnfs配置的参数。并且这个目录很重要。/var/lib/nfs/rmtab从这个文件中我们可以看到,有哪些客户端挂载了nfs共享目录。这个两个文件是比较重要的

----------------------

服务器共享配置格式:

1)基本格式:共享目录 ip/24(共享属性)  ->注意无空格

2)共享权限设置:

rw读写属性

sync文件实际写入磁盘后才返回

all_squash:所有访问用户均被压缩成后续接的用户。

anonuid:默认压缩的用户

anongid:默认压缩的用户组

----------------------


客户端以什么身份来访问?

客户端访问服务端默认是使用nfsnobody这个用户来进行访问的。uidgid65534。服务器默认共享时,也是加上了all_squash这个参数。并制定anonuid65534(也就是nfsnobayd用户)。当然如果系统中nfsnobody是其他的uid,那么就有可能造成访问权限出现问题。所以最好我们可以通过一设置一个用户来访问,统一UID、GID。

挂载情况怎样呢?

有两个重要的文件,能够解决这个疑问。/var/lib/nfs/etab/var/lib/nfs/rmtab这两个文件就能够查看服务器上共享了什么目录,到底有多少客户端挂载了共享,能查看到客户端挂载的具体信息。

1、etab这个文件能看到服务器上共享了哪些目录,执行哪些人可以使用,并且设定的参数为何。

2、rmtab这个文件就是能够查看到共享目录被挂载的情况。


四、NFS配置实例

实例1、共享/atong  目录给10.0.0.0/24这个网段。

服务器端操作:

1)检查,启动portmap

[root@CT5_6-32-220-NFS01 /]# /etc/init.d/portmapstatus

portmap (pid 2506) is running…

root@CT5_6-32-220-NFS01 /]# rpcinfo-p

-bash: rpcinfo-p: command not found

[root@CT5_6-32-220-NFS01 /]# rpcinfo –p  ###查看RPC记录的信息。哇,这么多不过可以看到有nfs  rquotad,mount这些信息说明nfs有来注册信息。

programvers proto   port

100000    2   tcp   111  portmapper

100000    2   udp   111  portmapper

100024    1   udp   601  status

100024    1  tcp    604  status

100011   1   udp    773 rquotad rquotad

100011    2   udp   773  rquotad

100011    1   tcp   776  rquotad

100011    2   tcp   776  rquotad

100003    2   udp  2049  nfs

100003    3   udp  2049  nfs

100003    4  udp   2049  nfs

100005   1   tcp    803 mountd

100005    2   udp   800  mountd

100005    2   tcp   803  mountd

100005    3   udp   800  mountd

100005    3   tcp   803  mountd

2)查看NFS的运行状态

[root@CT5_6-32-220-NFS01 /]# /etc/init.d/nfs status

rpc.mountd (pid 12920) is running…

nfsd (pid 12917 12916 12915 12914 12913 12912 1291112910) is running…

rpc.rquotad (pid 12892) is running…

3)创建目录

[root@CT5_6-32-220-NFS01 /]# mkdir atong

[root@CT5_6-32-220-NFS01 /]# ls -d atong

atong

[root@CT5_6-32-220-NFS01 /]# ll -d atong

drwxr-xr-x 2 root root 4096 May 27 17:22 oldbo ####注意现在共享的目录的权限为只有root才有写权限。

4)配置/etc/exports(NFS配置文件)

修改完配置之后要重新reload一下。/etc/init.d/nfs reload

[root@CT5_6-32-220-NFS01 /]# cat  /etc/exports

[root@CT5_6-32-220-NFS01 /]# cat /etc/exports

/atong 192.168.40.0/22(rw.sync)

[root@CT5_6-32-220-NFS01 /]# /etc/init.d/nfs reload

exportfs: /etc/exports:1: unknown keyword “rw.sync”###roload的时候提示错误,重新编写了一下配置文件,就又正确了。以后要养成好的编写配置要备份的习惯。

[root@CT5_6-32-220-NFS01 /]# vi /etc/exports

/atong   192.168.41.0/22(rw,sync)

[root@CT5_6-32-220-NFS01 /]# /etc/init.d/nfs reload   重新reload就成功了。

到此NFS已经算是共享了目录,及设置了相应的权限。


客户端操作:

----------------------------------------------------------------------------------------

现在我们的服务器端在配置文件上已经设置了共享,并在配置文件中设置了权限rw。但其实服务器端的目录文件的rwxr-xr-x权限是还没有开放的。这个跟我们的windows共享也是很像的,不仅要共享权限有,目录本地安全权限也要有。现在就是让客户端来进行挂载就可以了。

----------------------------------------------------------------------------------------

1)查看portmap是否正常

[root@CT56-32-220-NFS01 ~]# /etc/init.d/portmap status

portmap (pid 2725) is running…

2)查看服务器端的共享信息。

Showmount –e192.168.1.1 来查看服务端给我们提供的有哪些共享。

[root@CT56-32-220-NFS01 ~]# showmount  -e 192.168.41.220

Export list for 192.168.41.220:

/atong  192.168.41.0/22  ----》看到已经有这个共享了。

3)在客户端挂载服务器共享出来的目录。

#mount -t nfs 192.168.1.1:/atong  /mnt(本地目录)我们可以自己新建一个要挂载的目录。

[root@CT56-32-220-NFS01 ~]# mount -t nfs  192.168.41.220:/atong  /atong  

#mount 命令格式如下:

####mount -t  类型   device   localedir(本地目录)

#以上这个命令device=192.168.41.220:/atong

[root@CT56-32-220-NFS01 ~]# df

Filesystem          1K-blocks      Used Available Use%Mounted on

/dev/sda3              7765136   1655612  5708704  23% /    

/dev/sda1               101086     11601    84266  13% /boot

tmpfs                    62532         0    62532   0% /dev/shm

192.168.41.220:/atong   7765152   1655296  5709024  23% /atong

[root@CT56-32-220-NFS01 ~]# touch  /atong/test.txt

touch: cannot touch /atong/test.txt': Permissiondenied---》发现没有现在是没有权限的,因为我们服务器的本地的rwx权限没有开启来。</p><p>[root@CT56-32-220-NFS01 ~]# ll /atong/</p><p>total 4</p><p>-rw-r--r-- 1 root root &nbsp; &nbsp;0 May 28 08:14 test1</p><p>drwxr-xr-x 2 root root 4096 May 28 08:15 test-dir1</p><p><span style="background-color:#00ff00;">##### </span><span style="background-color:#00ff00;">在服务器端创建了目录,要过段时间才能同步到客户端。额,这样的情况有办法解决没有?</span></p><p>4<span style="font-family:'宋体';">)查看挂载和共享的文件是否一致。</span></p><p>#df &nbsp;<span style="font-family:'宋体';">来查看一下我们系统中的文件系统情况。</span></p><p style="border:none;padding:0;">[root@CT56-32-220-NFS01~]# df </p><p style="border:none;padding:0;">Filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1K-blocks &nbsp; &nbsp; &nbsp;Used Available Use% Mounted on</p><p style="border:none;padding:0;">/dev/sda3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7765136 &nbsp; 1655612 &nbsp;5708704 &nbsp;23% /</p><p style="border:none;padding:0;">/dev/sda1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 101086 &nbsp; &nbsp; 11601 &nbsp; &nbsp;84266 &nbsp;13% /boot</p><p style="border:none;padding:0;">tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;62532 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp;62532 &nbsp; 0% /dev/shm</p><p style="border:none;padding:0;">192.168.41.220:/atong &nbsp; 7765152 &nbsp; 1655296 &nbsp;5709024 &nbsp;23% /atong</p><p><span style="font-family:'宋体';">检查客户端中挂载的内容是否和服务端的目录一样。</span></p><p>5<span style="font-family:'宋体';">)在客户端执行写操作。</span></p><p><span style="font-family:'宋体';">权限说明:当我们在</span>/etc/exports<span style="font-family:'宋体';">中给了</span>NFS &nbsp;rw<span style="font-family:'宋体';">权限。但为什么客户端还是写不了。<a style="color: rgb(66, 133, 244);">因为</a></span><span style="font-family:'宋体';">如果我们仅在</span>NFS配置文件<span style="font-family:'宋体';">中配置了</span>rw<span style="font-family:'宋体';">权限。只表明了网络端的主机能够有权限去服务器端去写文件,但还需要通过服务器端的本地目录的权限。那么也就是说<span style="font-family:'宋体';background-color:#ffc000;">客户端需要通过</span><span style="font-family:'宋体';background-color:#ffc000;">两层的权限</span>来控制的。</span>NFS<span style="font-family:'宋体';">配置文件</span>—&gt;<span style="font-family:'宋体';">共享目录文件的权限。并且客户端往服务端去写文件,的用户身份是</span>nfsnobody<span style="font-family:'宋体';">、</span>nfsnobody UID=65534<span style="font-family:'宋体';">。</span></p><p><a style="color: rgb(66, 133, 244);"></a></p><p><strong><span style="font-family:'宋体';">《错误提示》</span></strong></p><p>[atong@LiWenTong ~]$/etc/init.d/portmap stauts &nbsp; &nbsp;---&gt;portmap没有启动</p><p>Networking &nbsp;not configured – exiting</p><p><br></p><p><strong>客户端NFS挂载参数</strong></p><p><span style="font-family:'宋体';"> &nbsp; &nbsp;我们</span><span style="font-family:'宋体';background-color:#92d050;">客户端挂载NFS也可以设置很多参数</span><span style="font-family:'宋体';">的,就跟windows映射盘一样,也是可以设置参数的。客户端挂载<span style="font-family:'宋体';background-color:#92d050;">可以设置:不可执行、读写权限、断开后RPC呼叫方式、读写区块大小等</span>。</span><span style="font-family:'宋体';">一般来说当</span>nfs<span style="font-family:'宋体';">服务器提供的只是普通数据(图片</span>html<span style="font-family:'宋体';">,</span>css<span style="font-family:'宋体';">,</span>jss<span style="font-family:'宋体';">,视频等)应该不需要执行</span>suid<span style="font-family:'宋体';">,</span>exec<span style="font-family:'宋体';">等权限,由于是共享目录不存在设备所以也不存在挂载设备dev</span><span style="font-family:'宋体';">,因此在客户端挂载的时候,可以加上给你这几个命令挂载。</span></p><p>#mount –t &nbsp;nfs -o &nbsp;<span style="background-color:#00ff00;">nosuid,noexec,nodev</span>,rw 192.168.1.1:/share &nbsp;/local/mnt</p><p><strong>可使用挂载参数表:</strong></p><table cellspacing="0" cellpadding="0" width="612"><tbody><tr style="height:22px;"><td width="94" valign="top" style="border-color:#000000;border-width:1px;background-color:#548dd4;padding:0px 7px;" height="22"><p><strong><span style="font-family:'宋体';">参数</span></strong></p></td><td width="352" valign="top" style="border-top-color:#000000;border-right-color:#000000;border-bottom-color:#000000;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-style:none;background-color:#548dd4;padding:0px 7px;" height="22"><p><strong><span style="font-family:'宋体';"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 参数意义</span></strong></p></td><td width="120" valign="top" style="border-top-color:#000000;border-right-color:#000000;border-bottom-color:#000000;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-style:none;background-color:#548dd4;padding:0px 7px;" height="22"><p><strong><span style="font-family:'宋体';">系统默认值</span></strong></p></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p>suid</p><p>nosuid</p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p><span style="font-family:'宋体';">允许设置</span>suid</p><p><span style="font-family:'宋体';">不允许在共享文件系统中设置</span>suid &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p>Suid</p></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p><span style="background-color:#92d050;">rw</span></p><p><span style="background-color:#92d050;">ro</span></p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p><span style="font-family:'宋体';">读写权限,或者是只读。</span></p></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p>dev</p><p>nodev</p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p><span style="font-size:12px;font-family:'宋体';">解释设备上的设备</span></p><p><span style="font-size:12px;font-family:'宋体';">不解释字符或块特殊文件系统上的设备</span></p></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p>exec</p><p>noexec</p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p><span style="font-size:12px;font-family:'宋体';">不允许在共享文件系统中直接执行任何二进制文件。</span></p></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p>user</p><p>nouser</p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><p><span style="font-family:'宋体';">允许用户去挂载和卸载这个共享目录。并且这个选项也意味着</span><span style="font-size:13px;font-family:tahoma, sans-serif;">noexec, &nbsp;nosuid, and nodev</span><span style="font-size:13px;font-family:'宋体';">这个选项,除非后面有覆盖指定。</span></p></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td></tr><tr style="height:45px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="45"><p>auto</p><p>noauto</p></td><td width="352" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td><td width="120" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="45"><br></td></tr></tbody></table><p><span style="font-family:'宋体';">另外还有一些</span>NFS<span style="font-family:'宋体';">挂载的额外参数可用。如果</span>NFS<span style="font-family:'宋体';">是用在高速运行的环境中的话,那么<span style="font-family:'宋体';background-color:#92d050;">建议加上这些参数</span>,这样当这台</span>NFS<span style="font-family:'宋体';">服务器因为某些原因离线,</span>NFS<span style="font-family:'宋体';">客户端可以继续在后台重复呼叫,直到</span>NFS<span style="font-family:'宋体';">服务器再度连上线为止。</span></p><p><span style="font-family:'宋体';background-color:#00ff00;">针对一些高并发的情况,还有一些可以进行优化的参数</span><span style="font-family:'宋体';">:</span></p><table cellspacing="0" cellpadding="0" width="612"><tbody><tr style="height:10px;"><td width="94" valign="top" style="border-color:#000000;border-width:1px;background-color:#548dd4;padding:0px 7px;" height="10"><p><strong><span style="font-family:'宋体';"> &nbsp;参数</span></strong></p></td><td width="353" valign="top" style="border-top-color:#000000;border-right-color:#000000;border-bottom-color:#000000;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-style:none;background-color:#548dd4;padding:0px 7px;" height="10"><p><strong><span style="font-family:'宋体';"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 参数功能</span></strong></p></td><td width="119" valign="top" style="border-top-color:#000000;border-right-color:#000000;border-bottom-color:#000000;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-style:none;background-color:#548dd4;padding:0px 7px;" height="10"><p><strong><span style="font-family:'宋体';">默认参数</span></strong></p></td></tr><tr style="height:10px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="10"><p>fg</p><p>bg</p></td><td width="353" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="10"><p><span style="font-family:'宋体';">当执行挂载时,该挂载行为是在前台(</span>fg<span style="font-family:'宋体';">)还是在后台(</span>bg<span style="font-family:'宋体';">)执行。若在前台执行,则</span>mount<span style="font-family:'宋体';">会持续尝试链接,直到成功或</span>time &nbsp;out<span style="font-family:'宋体';">为止。若为在后台执行,则</span>mount<span style="font-family:'宋体';">会在后台持续多次进行</span>mount<span style="font-family:'宋体';">,而不会影响到前台的程序操作。如果网络联机不稳定,或是服务器常常需要开关机。</span><span style="font-family:'宋体';">建议使用</span>bg<span style="font-family:'宋体';">比较妥当。</span></p></td><td width="119" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="10"><p>Fg</p></td></tr><tr style="height:103px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="103"><p>soft</p><p><span style="background-color:#92d050;">hard</span></p></td><td width="353" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="103"><p><span style="font-family:'宋体';">使用挂载时会使用</span>RPC<span style="font-family:'宋体';">呼叫。如果是</span><span style="background-color:#92d050;">hard</span><span style="font-family:'宋体';">的情况,那么当两者之间有任何一台主机离线,那</span><span style="background-color:#92d050;">RPC</span><span style="font-family:'宋体';"><span style="font-family:'宋体';background-color:#92d050;">会持续呼叫,直到对方恢复联机为止</span>。而</span>soft<span style="font-family:'宋体';">,只是在</span>RPC time out<span style="font-family:'宋体';">后重复呼叫。而非持续呼叫。因此系统的延迟会不这么明显,如果服务器经常开开关关的话,建议使用</span>soft<span style="font-family:'宋体';">。<span style="background-color:#ff00ff;">在生产环境中推荐使用</span></span><span style="background-color:#ff00ff;">hard,intr</span><span style="font-family:'宋体';background-color:#ff00ff;">这样的方式来挂载。</span></p></td><td width="119" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="103"><p>Hard</p></td></tr><tr style="height:20px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="20"><p><span style="background-color:#92d050;">intr</span></p></td><td width="353" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="20"><p><span style="font-family:'宋体';">当使用</span>hard<span style="font-family:'宋体';">方式挂载时,若加上</span>intr<span style="font-family:'宋体';">参数,则</span>RPC<span style="font-family:'宋体';">的持续呼叫是可以被中断的</span></p></td><td width="119" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="20"><p><span style="font-family:'宋体';">没有</span></p></td></tr><tr style="height:41px;"><td width="94" valign="top" style="border-right-color:#000000;border-bottom-color:#000000;border-left-color:#000000;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:none;padding:0px 7px;" height="41"><p>rsize</p><p>wsize</p><p><span style="background-color:#ff0000;">**</span></p></td><td width="353" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="41"><p><span style="font-family:'宋体';">读出(</span>rsize<span style="font-family:'宋体';">)和写入(</span>wsize<span style="font-family:'宋体';">)的区块大小。这个设置值可以影响客户端与服务器端传输数据的缓冲存储容量。一般来说,如果在局域网内(</span>LAN<span style="font-family:'宋体';">),<span style="background-color:#ff00ff;">并且客户端与服务器都具有足够的内存,这个值可以设置大一点,比如说</span></span><span style="background-color:#ff00ff;">32768</span><span style="font-family:'宋体';background-color:#ff00ff;">,提升缓冲区块将可提升</span><span style="background-color:#ff00ff;">NFS</span><span style="font-family:'宋体';background-color:#ff00ff;">文件系统的传输能力。</span><span style="font-family:'宋体';">但设置的值也不要太大,最好是实现网络能够传输的最大值为限。</span></p></td><td width="119" valign="top" style="border-top-style:none;border-left-style:none;border-bottom-color:#000000;border-bottom-width:1px;border-right-color:#000000;border-right-width:1px;padding:0px 7px;" height="41"><p>rsize=1024</p><p>wsize=1024</p></td></tr></tbody></table><p><span style="font-family:'宋体';background-color:#00ff00;">命令格式如下:</span><span style="background-color:#00ff00;">mount –t nfs –o nosuid,noexec,nodev,rw,hard,intr,rsize=32768,wsize=32768 &nbsp;192.168.1.1:/share &nbsp; /local/dir</span></p><p><strong>NFS</strong><strong><span style="font-family:'宋体';">客户端如何挂载才最佳</span></strong></p><p>1)noexec,nosuid,nodev,<span style="font-family:'宋体';">因为共享存放的是简单资料,不需要</span>suid<span style="font-family:'宋体';">位不需要执行,没有设备文件。</span></p><p>2<span style="font-family:'宋体';">)</span>hard,intr,bg <span style="font-family:'宋体';">当</span>NFS<span style="font-family:'宋体';">链接断了之后会一直去监测服务端的</span>NFS<span style="font-family:'宋体';">服务直到恢复之后重新连接。</span></p><p>3)rsize=32768 wsize=32768 <span style="font-family:'宋体';">调优</span>NFS<span style="font-family:'宋体';">传输的区块大小。</span></p><p>4<span style="font-family:'宋体';">)基本参数:</span>rw <span style="font-family:'宋体';">读写权限。</span></p><p><br></p><p><strong>挂载完成后客户端的常见操作</strong></p><p>1<span style="font-family:'宋体';">)挂载后重启设备后的反应。</span></p><p>[root@CT56-32-221-NFS02 ~]# mount -t nfs192.168.41.220:/atong /atong/</p><p>[root@CT56-32-221-NFS02 ~]# df </p><p>Filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1K-blocks &nbsp; &nbsp; &nbsp;Used Available Use%Mounted on</p><p>/dev/sda3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7765136 &nbsp; 1634308 &nbsp;5730008 &nbsp;23% /</p><p>/dev/sda1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 101086 &nbsp; &nbsp; 11601 &nbsp; &nbsp;84266 &nbsp;13% /boot</p><p>tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;62532 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp;62532 &nbsp; 0% /dev/shm</p><p>192.168.41.220:/atong &nbsp; 7765152 &nbsp; 1655296 &nbsp;5709024 &nbsp;23% /atong</p><p>[root@CT56-32-221-NFS02 ~]# <span style="background-color:#00ff00;">ll /atong/</span><span style="background-color:#00ff00;">####</span><span style="background-color:#00ff00;">当我们挂载了服务器端的共享目录到本地目录之后,原本地目录的内容会被替换成为远端服务器的内容。</span></p><p>total 4</p><p>-rw-r--r-- 1 root root &nbsp; &nbsp;0 May 28 08:14 test1</p><p>drwxr-xr-x 2 root root 4096 May 28 08:15 test-dir1</p><p>[root@CT56-32-221-NFS02 ~]# <span style="background-color:#00ff00;">umount /atong</span></p><p>[root@CT56-32-221-NFS02 ~]# df </p><p>Filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1K-blocks &nbsp; &nbsp; &nbsp;Used Available Use%Mounted on</p><p>/dev/sda3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7765136 &nbsp; 1634308 &nbsp;5730008 &nbsp;23% /</p><p>/dev/sda1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 101086 &nbsp; &nbsp; 11601 &nbsp; &nbsp;84266 &nbsp;13% /boot</p><p>tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;62532 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp;62532 &nbsp; 0% /dev/shm</p><p>[root@CT56-32-221-NFS02 ~]# ll &nbsp;/atong/ <span style="background-color:#ff00ff;">####</span><span style="background-color:#ff00ff;">当我们将挂载的目录重新卸载之后,原目录的内容就又都能够看见了。</span></p><p>total 0</p><p>-rw-r--r-- 1 root root 0 May 28 08:27 test1</p><p>-rw-r--r-- 1 root root 0 May 28 08:28 test2</p><p>2)如何设置开机自动挂载</p><p><span style="font-family:'宋体';background-color:#ff0000;">特别说明:</span><span style="font-family:'宋体';">我们重新启动客户端之后,我们要重新去挂载</span>nfs,<span style="font-family:'宋体';">我们可以有两种方式来实现。</span></p><p>&lt;1&gt;<span style="font-family:'宋体';">通过把</span>mount–t &nbsp;nfs 192.168.1.1<span style="font-family:'宋体';">:</span>/atong &nbsp; /mnt<span style="font-family:'宋体';">这条命令写到</span>/etc/rc.local<span style="font-family:'宋体';">中,让它开机就执行。</span></p><p>&lt;2&gt;<span style="font-family:'宋体';">在</span>/etc/fstab<span style="font-family:'宋体';">(系统开机启动分区加载项)添加我们的NFS配置:</span></p><p><span style="background-color:#00ff00;">10.0.0.161:/atong &nbsp; &nbsp; &nbsp;/atong/video &nbsp; nfs &nbsp;defaults &nbsp;1 &nbsp;1 </span><span style="font-family:'宋体';background-color:#00ff00;">。</span></p><p><span style="font-family:'宋体';">但在生产环境中,对于共享的</span>NFS<span style="font-family:'宋体';">目录,一般不<span style="font-family:'宋体';background-color:#ffc000;">会配置到</span></span><span style="background-color:#ffc000;">/etc/fstab</span><span style="font-family:'宋体';"><span style="font-family:'宋体';background-color:#ffc000;">里</span>。</span><span style="font-family:'宋体';">因为在客户端主机重启时如果由于网络等原因连接不上</span>nfs server<span style="font-family:'宋体';">时,就会导致客户机无法启动的厄运发生。一般是<span style="font-family:'宋体';background-color:#ffc000;">通过把</span></span>mount -t &nbsp;nfs &nbsp;10.10.10.1:/atong &nbsp;/local/dir<span style="font-family:'宋体';background-color:#ffc000;">命令放到</span><span style="background-color:#ffc000;">rc.local</span><span style="font-family:'宋体';"><span style="font-family:'宋体';background-color:#ffc000;">中</span>来实现开机自动挂载</span>NFS<span style="font-family:'宋体';">。</span></p><p><a style="color: rgb(66, 133, 244);"></a></p><p><strong>nfs</strong><strong><span style="font-family:'宋体';">的开机自动挂载</span></strong></p><p><span style="font-family:'宋体';">有两种方式实现开机自动挂载</span>1<span style="font-family:'宋体';">、将</span>mount<span style="font-family:'宋体';">命令写在</span>rc.local<span style="font-family:'宋体';">文件中。</span>2<span style="font-family:'宋体';">、在</span>/etc/fstab<span style="font-family:'宋体';">中写入具体的配置系想你。</span></p><p><span style="font-family:'宋体';">但这里建议采用第一种,如果因为网络原因没有连接到</span>NFSserver<span style="font-family:'宋体';">那么第二中有可能会导致系统无法启动的故障。</span></p><p><span style="font-family:'宋体';">3)卸载挂载点</span></p><p>&lt;1&gt;正常卸载</p><p>#umount /local/dir &nbsp; 正常的卸载命令来卸载。</p><p>&lt;2&gt;umoutn提示busy错误</p><p><span style="font-family:'宋体';"><span style="font-family:'宋体';">如何卸载</span>nfs<span style="font-family:'宋体';">挂载点通过</span>umount &nbsp;/local/dir<span style="font-family:'宋体';">来进行卸载。如果本地中有用户还在这个挂载点中,那么会提示这个挂载点繁忙busy。我们需要先让本地退出这个挂载点,然后再重新进行卸载。而如果有其他用户在使用,同样也是需要用户退出之后这个挂载目录才能进行卸载。</span></span></p><p><span style="font-family:'宋体';"><span style="font-family:'宋体';">或者进行强制卸载:</span></span>umount –lf &nbsp; /local/dir 来进行强制卸载。</p><p><br></p><p><strong>简述一次完整的NFS挂载过程</strong></p><p>1)<span style="font-family:'宋体';">确认</span>portmap<span style="font-family:'宋体';">、</span>nfs<span style="font-family:'宋体';">已经启动。并且是</span>nfs<span style="font-family:'宋体';">比</span>portmap<span style="font-family:'宋体';">后启动的。</span></p><p style="margin-left:24px;"><span style="font-family:'宋体';">通过</span>chkconfig<span style="font-family:'宋体';">来配置开机启动,</span>portmap<span style="font-family:'宋体';">的默认开启顺序一也是比</span>nfs<span style="font-family:'宋体';">来得早。</span></p><p>2<span style="font-family:'宋体';">)</span>vi &nbsp;/etc/export <span style="font-family:'宋体';">配置</span>nfs<span style="font-family:'宋体';">服务的共享目录及权限。</span></p><p> &nbsp; #/etc/init.d/nfs &nbsp;reload <span style="font-family:'宋体';">重新加载</span></p><p><span style="font-family:'宋体';"> &nbsp; 确认服务器端要共享的目录已经存在,并且权限正确。</span></p><p>3<span style="font-family:'宋体';">)客户端的</span>portmap<span style="font-family:'宋体';">的启动,并加入开机自启动中。通过</span>showmount<span style="font-family:'宋体';">来查看服务器端是否已经提供了共享的</span>NFS<span style="font-family:'宋体';">目录。通过</span>rpfinfo<span style="font-family:'宋体';">命令来查看服务器端的</span>rpc<span style="font-family:'宋体';">信息。</span><span style="font-family:'宋体';">当本地端要挂载的时候也要确认本地挂载的目录,没有别占用。</span></p><p style="margin-left:24px;"><span style="background-color:#ff0000;">3.1</span><span style="font-family:'宋体';background-color:#ff0000;">)当客户端不能够写入的时候,需要去判断服务器端的</span><span style="background-color:#ff0000;">/etc/exports</span><span style="font-family:'宋体';background-color:#ff0000;">中权限是否正确</span><span style="font-family:'宋体';">,服务端共享的目录的本地目录权限是否正确。如果不正确,那么我们可以通过把目录的属主改成</span>nfsnobody<span style="font-family:'宋体';">以达到让客户端能够写入的权限。当重客户端写完之后,可以查看一下写入之后的档案的所有者和权限。可以发现只要是从客户端去创建的文档,文件的属主和用户组都是</span>nfsnobody<span style="font-family:'宋体';">。如果加上</span>all_squash<span style="font-family:'宋体';">之后。</span></p><p style="text-indent:24px;"><span style="font-family:'宋体';">(但要确定是所有的客户端具有同一个</span>uidnfsnobody<span style="font-family:'宋体';">。当我们的系统都是</span>32<span style="font-family:'宋体';">位的时候,可以确定匿名用户的</span>uid<span style="font-family:'宋体';">都是</span>65534.<span style="font-family:'宋体';">而</span>64<span style="font-family:'宋体';">位的操作系统,那么就是一串其他的数字。)</span></p><p style="text-indent:28px;">3.2<span style="font-family:'宋体';">)所有系统都是</span>64<span style="font-family:'宋体';">位系统时。我们要共享时,可以在我们服务器端做一个修改:在</span>all_squash<span style="font-family:'宋体';">,</span>anonuid=2000,anongid=2000</p><p style="text-indent:28px;">3.3)<span style="font-family:'宋体';">不必查看系统时</span>32<span style="font-family:'宋体';">还是</span>64<span style="font-family:'宋体';">位</span></p><p style="text-indent:28px;"><span style="font-family:'宋体';background-color:#ff0000;">在网络中的所有机器上创建一个新的用户及用户组。然后配置</span><span style="background-color:#ff0000;">/etc/exports &nbsp;all_squash,anonuid=1207,anongid=1207</span></p><p>4)<span style="font-family:'宋体';">配置客户端的默认开机启动挂载。</span></p><p><span style="font-family:'宋体';">将</span>mount –t nfs &nbsp; 192.68..1.1<span style="font-family:'宋体';">:</span>/share/dir &nbsp; /local/dir <span style="font-family:'宋体';">命令写入</span>rc.local<span style="font-family:'宋体';">中。</span></p><p><span style="font-family:'宋体';"><br></span></p><p>------------------------------后续自我小结-----------------------------------------------</p><p> &nbsp; &nbsp;NFS就是网络共享文件系统,道理很简单那,就是服务器共享文件,客户端挂载服务端共享的文件。共享文件,需要配置/etc/exports,添加相应的共享目录及共享的目标网络及权限配置,开启共享文件的本地权限。然后客户端进行有参数的挂载,设置读写权限rw,nodev,noexec,nouser,hard,intr,rsize,wsize等挂载参数。然后就是开始挂载使用。<br></p><p> &nbsp; &nbsp;在启动顺序上我们要注意portmap一定要先于NFS启动,客户端的NFS开机挂载最好是将命令加载/etc/rc.local里面。<br></p><p>----------------------------------------------------------------------------------------</p><p><strong><span style="font-size:18px;">常见问题补充:</span></strong></p><p>1<span style="font-family:'宋体';">)服务器端网络故障或者是网络断开时。</span></p><p>当把服务器的网络断开后,客户端df查看本地分区信息的时候一直在等待中,有时会卡死。</p><p>[root@CT56-32-221-NFS02 atong]# df</p><p>Filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1K-blocks &nbsp; &nbsp; &nbsp;Used Available Use%Mounted on</p><p>/dev/sda3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;7765136 &nbsp; 1635964 &nbsp;5728352 &nbsp;23% /</p><p>/dev/sda1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 101086 &nbsp; &nbsp; 11601 &nbsp; &nbsp;84266 &nbsp;13% /boot</p><p>tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;62532 &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp;62532 &nbsp; 0% /dev/shm</p><p>…一直在等待中……</p><p>[root@CT56-32-222-NFS03 ~]# cd /atong</p><p>…一直等待中….连我们原本/atong的目录都进不去因为现在是挂载的。</p><p>[root@CT56-32-221-NFS02 ~]# umount &nbsp;/atong ###通过umount /atong也不能进行卸载。</p><p>umount.nfs: 192.1

10-06 16:37