NFS基本配置与NFS客户端自动挂载
一.NFS基本配置
1>NFS主要实现linux与Linux之间文件的共享,它不适用于windows系统。
2> NFS的配置比较简单,只需要几条命令就可以实现它的应用。
下面做一个分享/mount/public的nfs服务器
因为NFS是基于rpc来注册端口的,所以我们要先查看一下rpc使用是否正常,可以使用如下命令
[root@localhost ~]# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 773 status
100024 1 tcp 776 status
出现上面的内容说明rpc是正常的
现在对配置文件进行配置,它的配置文件为:/etc/exports ,但它里面是空白的,我们需要自己进行填写。
[root@localhost ~]# vim /etc/exports
/mnt/public *(ro,sync) //这里是文件中的内容,它主要包括三部分
/mnt/public: 这个是要共享的目录
* :是指客户端的匹配项,它可以是一个域名,一个网段,一个ip,或所有主机(*)
ro,sync :主要是一些参数,如权限等等。
开启NFS服务器
[root@localhost ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
开启之后我们可以再开启一台linux主机来访问
首先我们应该查看一下NFS服务器上共享了什么文件,使用如下命令
[root@localhost mnt]# showmount -e 192.168.2.10
Export list for 192.168.2.10:
/mnt/public * //共享的文件
NFS客户端在使用NFS服务器共享的文件时要先进行挂载
命令:
[root@localhost mnt]# mkdir /public
[root@localhost mnt]# mount 192.168.2.10:/mnt/public /public
[root@localhost mnt]# ll /public
total 0
-rw-r--r-- 1 root root 0 Dec 19 01:05 test.txt
现在就可以正常的访问nfs服务器上的文件了
如果要想让系统开机就挂载共享目录,则可以在/etc/fstab中加入开机挂载命令
[root@localhost mnt]# vim /etc/fstab
192.168.2.10:/mnt/public /mnt/public nfs defaults,soft,intr 0 0
二.NFS客户端自动挂载NFS服务器上的共享文件
NFS客户端与NFS服务器在连接上之后,为了保证其正常的连接,NFS客户端与NFS服务器之间要不断的发送数据包,来宣告自己还在与NFS服务器进行着连接,但是,如果一个NFS服务器上有许多的客户端一直连接的话,NFS服务器会承受很大的带宽压力,这对NFS服务器的正常使用会造成很大的影响,因此,为了避免这种情况的发生,人们就想到了一种方法,让NFS客户端在获取数据时与NFS服务器进行连接,而在没有获取数据的时间内,自动的断开与NFS服务器之间的连接,但只要客户端发送获取数据的请求进,客户端就与服务器自动连接上,这种方法对客户端主机与服务器主机都有很大的好处。配置方法是在NFS客户端方面进行配置的。
1》 控制NFS客户端自己挂载的服务器是:autofs
2》autofs配置文件为:/etc/auto.master,我们可以通过修改这个文件,来控制自己挂载。
现在我们接着上面的实验来做NFS的自动挂载实验,测试机也是一台redhat5.4主机ip为192.168.2.11
1.首先配置autofs的配置文件
[root@localhost ~]# vim /etc/auto.master 添加如下内容
/mnt /etc/auto.nfs --timeout=10
注:/mnt:是要挂载的本地目录,我们在向NFS服务器发送请求信号时,一定要在这个目录下面进行操作,否则是无效的。
/etc/auto.nfs: 是一个配置 NFS服务器共享文件的路径,及本地在/mnt目录中要与远程共享文件挂载的目录及权限,在auto.nfs文件中还要详细说明。
--timeout=10 :指NFS客户端在多久没有向NFS服务器请求数据时断开挂载连接。
2.现在来配置auto.nfs,因为系统本身没有这个文件,这个文件的名是我们自己随意起的,只要能让auto.master与auto.nfs关联到一起就行了。所以我们应该自己创建它,也可以直接使用模板来创建
[root@localhost ~]# cp -p /etc/auto.misc /etc/auto.nfs
再对其进行修改
[root@localhost ~]# vim /etc/auto.nfs
加入以下内容
server -ro,soft,intr 192.168.2.10:/mnt/public
注: server : 它是一个本地目录,我们不需要创建它,用于挂载远程共享文件192.168.2.10:/mnt/public,在我们想要使用远程共享文件/mnt/public时,只要在本地目录/mnt下键入:cd server 系统就会自动挂载到远程共享目录:192.168.2.10:/mnt/public,我们就可以正常使用里面的共享文件了 ,在到达超时时间时就会自动卸载。
-ro,soft,intr: -ro:挂载时的权限,soft:指如果配置错误的话,在启动系统时会报错,提示我们。Intr:指在系统报错之后,我们可以使用crtl+c来终止这个错误。
192.168.2.10/mnt/public:远程NFS共享目录
3.重新启动autofs服务。
[root@localhost ~]# service autofs restart
Stopping automount: [ OK ]
Starting automount: [ OK ]
4.开始测试
先查看一下,/mnt/下的目录
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ll
total 0
发现/mnt/中没有任何文件
现在向nfs服务器发送信号
[root@localhost mnt]# cd server
[root@localhost server]# ll 可以看到可以进入server目录
total 0
-rw-r--r-- 1 root root 0 Dec 19 01:05 test.txt 看到了远程NFS服务器的文件,自动挂载成功,也可以使用mount,来查看一下挂载情况
[root@localhost server]# mount
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.2.10:/mnt/public on /mnt/server type nfs (ro,soft,intr,addr=192.168.2.10)
//可以看到已经挂载了
[root@localhost server]# cd ..
[root@localhost mnt]# ll
total 4
drwxr-xr-x 2 root root 4096 Dec 19 01:05 server
[root@localhost mnt]# ll //10秒后,自动卸载
total 0
[root@localhost mnt]#