Bootstrap

Ubuntu 通过NFS挂载远程目录到本地

Ubuntu 通过NFS挂载远程目录到本地 

本地机器每次对于自身挂载的远程文件的访问,实际上都是发送了一次新的RPC请求,请求目标服务器,将其对应的数据实时返回到本地机器的文件当中;(Linux中存在这样一个应用即:Network File System 即 NFS 网络文件系统,一种使用于分散式文件系统的协定,让应用程序在客户端通过网络访问位于远程磁盘中的数据,是在类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是负责负责信息的传输。

 

NFS服务器配置

1. 安装NFS相关包

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

# centos 7
# yum install nfs-utils

2. 配置NFS目录和权限

NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在exports文件中设置共享资源时,记录格式为    "服务器文件路径   客户机器IP地址(权限选项)"    其中客户机地址于权限列表的括号() 中间不能有空格;

vim /etc/exports

# 如给任何地址授权
/app  *(rw,sync,no_root_squash)

# 如给多个地址授权

/app 172.16.8.97(rw,sync,no_root_squash)  172.16.8.98(rw,sync,no_root_squash)

# 如给某个网段内所有IP授权

/app 172.16.8.*(rw,sync,no_root_squash)

客户机地址可以是 :  主机名、IP地址、网段地址、或者"*、?"通配符;

权限选项:rw表示允许读写(ro为只读)

     sync表示同步写

      no_root_squash表示当前客户机以root身份访问时,赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)

 

3. 重启服务

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

# centos 7
# systemctl enable nfs-server && systemctl start nfs-server

4. 当前已发布的NFS共享目录

showmount -e nfs-server-ip

 

NFS客户端配置

1. 安装NFS客户端

apt-get install nfs-common

2. 将目录挂载到本地

mount nfs-server-ip:/nfsdir   /mnt

3. 开机自动挂载

vim /etc/fstab

nfs-server-ip:/nfsdir      /mnt       nfs    rw    0     0

 

;