现在的位置: 首页 > 操作系统 > 正文

NFS的安装和配置(ubuntu)

2017年06月15日 操作系统 ⁄ 共 3213字 ⁄ 字号 评论关闭

NFS的安装和配置

NFS的简介

NFS,是Network File System的简写,即网络文件系统

网络文件系统是类UNIX系统支持的文件系统中的一种,也被称为NFS.

NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件

NFS的安装(Ubuntu)

Ubuntu上默认是没有安装nfs服务器的,因此我们在使用之前必须安装:

ubuntu nfs 服务器的安装:

sudo apt-get install nfs-kernel-server

一般情况下,在执行这个命令时,会自动安装nfs客户端(nfs-common)和端口映射(rpcbind[new], portmap[old]).若是你的系统并没有安装,那么就手动安装吧:

ubuntu nfs 客户端的安装:

sudo apt-get install nfs-common

端口映射的安装:

sudo apt-get install rpcbind 
或者
sudo apt-get install portmap

什么是端口映射?

端口映射是一个服务器,将RPC程序号转换成Internet的端口号,在使用RPC调用时它必须运行。它只在第一次建立连接的时候有效,帮助应用程序找到正确的通讯端口,但是一旦双方正确连接,端口和应用绑定,portmap就不在起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有效。

简单来说,portmap就是应用的端口的混一介绍人,双方成事之后,媒婆也就没用了,当然离婚之后再复婚,还是需要的。

啊,那安装它干嘛?

RPC(Remote Procedure Call Protocol),不要问我这是什么,额,我也不是很清楚。但是nfs正是基于这个协议的。所以呢,就需要它。

如果portmap进程停止运行或异常终止,那么该系统上的所有RPC服务器必须重启。首先停止NFS服务器上的所有NFS服务进程,然后启动端口映射(rpcbind或portmap),再启动服务器上的NFS进程.

NFS的配置(ubuntu)

ubuntu 下nfs的挂载目录及权限在文件/etc/exports中进行定义。

在/etc/exports文件末尾添加如下一行:

/home/liluo/LinuxShare  192.168.1.103(rw,sync,no_root_squash) 192.168.1.104(ro,sync,no_root_squash)
/home/liluo/document    *(ro,sync,no_root_squash)
其中:
         /home/liluo/Linuxshare和/home/liluo/document是要共享的目录
         *代表运行所有的网络端访问  
         rw是可读可写
         sync是资料同步写入内存和硬盘
         no_root_squash是nfs客户端分享目录使用者的权限

那么,/home/liluo/LinuxShare就被192.168.1.103和192.168.1.104共享了,但是只是访问权限不同,一个可读写,一个只读。

/home/liluo/LinuxShare被所有网络端进行读写访问。

此时,只要另一台主机进行连接,就可以访问Linuxshare下的东西了。

(1)访问权限选项--->用于控制输出目录访问权限

ro--->只读访问           rw--->读写访问

(2)用户映射选项

all_squash---------->将不管登陆 NFS 主机的用户是什么都会被重新设定为 匿名用户(nobody)

no_all_squash----->与all_squash相反(默认设置)

root_squash-------->将root及所属用户组都映射为匿名用户或用户组(默认设置)

no_root_squash--->与root_squash相反,登入到 NFS 主机的用户如果是 ROOT 用户,他就拥有
ROOT 的权限 ,

anongid=xxx-------->当远程访问被映射为匿名用户时,指定该匿名用户账户为xxx, 此
ID 必须存在于 /etc/passwd 中

anongid=xxx-------->
anonuid ,但是变成 group ID

(3)常用其他选项

sync---------------------->资料同步写入内存缓冲区和硬盘,虽然这样做效率较低,但可以保证数据的一致性    

async-------------------->资料会先暂时存放在内存中,必要时写入硬盘

secure------------------->限制客户端只能从<1024的TCP/IP端口连接NFS系统服务器(默认设置)

insecure----------------->允许客户端从>1024的TCP/IP端口连接NFS系统服务器

wdelay------------------->检查是否能存在相关的写操作,如果有,那么一起执行,可提高效率(默认设置)

no_wdelay-------------->若有写操作,立即执行,应与sync配合使用

subtree_check--------->若输出的目录是一个子目录。则NFS系统服务器将检查父目录的权限(默认设置)

no_subtree_check---->忽略父目录权限的检查,这样做可提高效率

NFS共享(ubuntu)


服务端A(共享主机端)

sudo /etc/init.d/nfs-kernel-server status----->//查看nfs服务器运行状态
//j假如nfs服务器停止运行
sudo /etc/init.d/nfs-kernel-server start------>//启动nfs服务
//当nfs服务器正在运行
sudo /etc/init.d/nfs-kernel-server restart
或者
sudo service nfs-kernel-server restart------>//重启nfs服务

假设服务器A的ip为192.168.1.104,且共享目录为/home/liluo/share,那么

客户端(想要获取共享的主机端):

//挂载共享目录share到本地目录~/free下,
sudo mount  -t nfs 192.168.1.104:/home/liluo/share    ~/free
//当不需要共享目录时,就可以卸载了
sudo umount ~/free

服务端使用showmount命令查询NFS的共享状态:

showmount   -e  --->//查看自己的共享信息
showmount   -e   NFS服务器ip ----->//查看指定NFS服务器的共享信息
showmount   -a  ---->//显示已经与客户端连接上的目录信息

相关命令(ubuntu)

1、如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs
命令来使改动立刻生效,该命令格式如下:

# exportfs [-aruv]

  -a 全部挂载或卸载 /etc/exports中的内容 
  -r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
  -u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
  -v 在export的时候,将详细的信息输出到屏幕上。

具体例子: 
  # exportfs -au 卸载所有共享目录
  # exportfs -rv 重新共享所有目录并输出详细信息

2、rpcinfo

查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo
-p 可以查看出RPC开启的端口所提供的程序有哪些

3、df

查看本地硬盘的挂载信息

题外话

nfs服务不仅可以用在linux下,windows同样支持nfs服务。

以上那些放在代码框的语句并不是什么代码,只是linux终端下的一些命令和nfs配置文件的用法,切勿因此困扰!大笑


抱歉!评论已关闭.