ubuntu搭建nfs网络文件系统

时间:2023-03-08 15:46:01

一、NFS服务简介

  NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

  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是负责负责信息的传输。

Ubuntu下nfs服务器的配置过程

1、安装nfs服务器和客户端

sudo apt-get install nfs-kernel-server nfs-common portmap

2、配置portmap 两种方式任选一种(ubuntu下portmap被rpcbind替代了,不需要此步)

(1)sudo vim /etc/default/portmap 去掉 -i 127.0.0.1

(2)sudo dpkg-reconfigure portmap 选择"否"

3、配置挂载目录和权限

vim /etc/exports

在最后添加 /nfsroot *(rw,sync) #nfsroot为nfs服务器根目录

*可替换成对应的主机名

比如我要将将我的home目录中的/home/lin/NFSshare目录让192.168.1.*的IP共享, 则在该文件末尾添加下列语句:
        /home/lin/NFSshare  192.168.1.*(rw,sync,no_root_squash)

然后保存退出。

/home/lin/NFSshare就表示共享目录,当然,你可以随便换成自己喜欢的目录。

192.168.1.*:前面三位是你主机(NFS客户端)的ip地址(本机终端ifconfig命令就可以获得本机的ip地址)。
rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。

no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

4、更新exports文件

sudo exportfs -r

5、重启rpcbind,nfs服务

sudo /etc/init.d/rpcbind restart

sudo /etc/init.d/nfs-kernel-server restart

6.前往客户机挂载nfs服务器共享目录

sudo mount -t nfs 192.168.10.62:/home/share/nfs /home/share/nfs

注意:这个命令是在客户机上执行的,

192.168.10.62是nfs服务器ip,后面的 :/home/share/nfs是服务器的共享目录,

最后面的/home/share/nfs是客户机上的共享目录

这一步执行完毕了就可以达到文件夹共享了!!!