nfs是network file system的缩写,作用在于让不同的网络,不同的机器,不同的操作系统可以共享彼此的文件。也就是讲远程服务器共享的目录挂载到本地的文件系统中。远程目录看起来就像是自己的一个磁盘分区
NFS运行在SUN的RPC(Remote Procedure Call, 远程过程调用)基础上, RPC定义了一种与系统无关的方法来实现进程间通信. 由此, NFS server也可以看作是RPC server.
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定.比如:某个NFSclient发起NFS服务请求时,它需要先得到一个端口(port).所以它先通过portmap得到portnumber.
下面 来看下服务器测的安装方式:
1首先nfs安装:apt-getinstall nfs-kernel-server
2安装完nfs-kernel-server后,系统会自动为我们安装好portmap(端口映射器)和nfs-common(客户端软件,用于测试)
3配置共享目录,在/etc/exports文件中添加如下命令:意思分别是
/tmp:服务器需要共享的目录。
192.168.0.11允许能访问服务器的IP地址。这里可以是具体的地址也可以是IP网络号。比如192.168.1.1/24。也可以采用通配符*,表示允许所有能访问到server的主机来连接共享目录
rw:共享权限。
rw:客户端拥有读写权限(ro:代码只有读权限)
sync:同步写入资料到内存和硬盘中
no_subtree_check:不检测子目录权限
root_squash:如果客户端使用root权限访问共享目录,则会被认为是匿名用户(权限缩小)
no_root_squash:如果客户端使用root权限访问共享目录,权限依旧为root
另外在这里我们还可以设定对共享目录文件访问的权限,这里需要用到setfacl命令。比如
setfacl-m -u:zhf:rwx /tmp 就代表zhf的用户对这个目录下的文件具有rwx的权限
4配置完成后,重启nfs-server服务/etc/init.d/nfs-kernel-serverrestart。并执行showmount-e就可以看到下面的挂载点。
root@zhf-virtual-machine:~#showmount -e
/tmp192.168.0.11(rw,no_root_squash)
5服务器测安装apt-getinstall nfs-common
6挂载服务器共享目录到本地
root@zhf-linux:/home#mount -t nfs 192.168.0.9:/tmp /home/nfs/public
root@zhf-linux:/home#df
Filesystem1K-blocks Used Available Use% Mounted on
udev1010832 0 1010832 0% /dev
tmpfs205944 6528 199416 4% /run
/dev/sda1238171776 11020944 215029284 5% /
tmpfs1029712 30012 999700 3% /dev/shm
tmpfs5120 4 5116 1% /run/lock
tmpfs1029712 0 1029712 0% /sys/fs/cgroup
cgmfs100 0 100 0% /run/cgmanager/fs
tmpfs205944 56 205888 1% /run/user/1000
192.168.0.9:/tmp19477248 1026432 17438464 6% /home/nfs/public
7进入到/home/nfs/public就可以看到在192.168.0.9当中共享的文件
root@zhf-linux:/home/nfs/public#ls -al
total72
drwxrwxrwt17 root root 4096 Oct 30 21:36 .
drwxr-xr-x3 root root 4096 Oct 30 21:39 ..
-rw-------1 zhf zhf 0 Oct 30 21:08 config-err-C8mCtt
drwxrwxrwt2 root root 4096 Oct 30 21:06 .font-unix
drwxrwxrwt2 root root 4096 Oct 30 21:08 .ICE-unix
drwx------3 root root 4096 Oct 30 20:57systemd-private-3b1f89764b29474681718903030213e2-colord.service-GtPb2r
drwx------3 root root 4096 Oct 30 21:07systemd-private-3b1f89764b29474681718903030213e2-rtkit-daemon.service-eMi74n
drwx------3 root root 4096 Oct 30 21:06systemd-private-3b1f89764b29474681718903030213e2-systemd-timesyncd.service-HMSDuI
drwxrwxrwt2 root root 4096 Oct 30 21:06 .Test-unix
drwx------9 root root 4096 Oct 30 21:09 ubuntu-release-upgrader-p9q1b5zo
-rw-rw-r--1 zhf zhf 0 Oct 30 21:08 unity_support_test.0
drwxr-xr-x2 root root 4096 Oct 30 21:09 upgrade-chroot-ano169rw
drwx------2 root root 4096 Oct 30 21:09 upgrade-rw-699p254l
drwxrwxrwt2 root root 4096 Oct 30 21:07 VMwareDnD
drwxr-xr-x2 root root 4096 Oct 30 20:57 vmware-root
drwx------2 root root 4096 Oct 30 21:07 vmware-root-2689209388
drwx------2 zhf zhf 4096 Oct 30 21:08 vmware-zhf
-r--r--r--1 root root 11 Oct 30 20:57 .X0-lock
drwxrwxrwt2 root root 4096 Oct 30 20:57 .X11-unix
drwxrwxrwt2 root root 4096 Oct 30 21:06 .XIM-unix
前面讲了如何进行nfs的配置和使用。但是有一个问题就是每次登录系统后都需要手动利用mount命令来挂载一次。我们可不可以做到当客户端在有使用NFS文件系统的需求时才让系统自动挂载呢?那就要用到autofs。举例来说,当客户端要时候用/home/nfsfile/public的数据时,此时autofs才会去192.168.0.9上挂载/tmp目录。当隔了5分钟使用该目录下的数据后,则客户端系统将会主动卸载/home/nfsfile/public.autofs的配置很简单。下面来看下步骤:
1建立主配置文件/etc/auto.master.设置如下:这个的意思是当要使用/home/nfsfile的数据时,会去读取/etc/auto.nfs的数据进行自动挂载
/home/nfsfile/etc/auto.nfs
2建立数据对应文件内/etc/auto.nfs的挂载信息与服务器对应的资源。下面的这个意思是当要使用/home/nfsfile/public的数据时,去自动挂载192.168.0.9的/tmp资源
public-rw,bg,rsize=32768,wsize=32768 192.168.0.9:/tmp
3去/home/nfsfile/public去实际查看的时候发现是自动挂载的
root@zhf-linux:/home/nfsfile/public#mount | grep nfsfile
/etc/auto.nfson /home/nfsfile type autofs(rw,relatime,fd=6,pgrp=5258,timeout=300,minproto=5,maxproto=5,indirect)
192.168.0.9:/tmpon /home/nfsfile/public type nfs4(rw,relatime,vers=4.0,rsize=32768,wsize=32768,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.11,local_lock=none,addr=192.168.0.9)
4文件的挂载也出现了
root@zhf-linux:/home/nfsfile/public#df /home/nfsfile/public
Filesystem1K-blocks Used Available Use% Mounted on
192.168.0.9:/tmp19477184 1018848 17445888 6% /home/nfsfile/public
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com