配置CentOS6.3 NFS

 

说明:本文是基于CentOS 6.3版本,5系列版本请另行参照其他文档

一、安装NFS对应的服务

1.安装NFS 套件

   首先安装NFS套件,命令如下:

yum install nfs-utils.x86_64(64位系统)

yum install nfs-utils(32位系统)

2.安装RPC服务(注①)

yum install rpcbind(centos6)

 

二、启动NFS

1.启动RPC服务

Service rpcbind start

2.启动NFS服务

Service nfs start

 

三、配置NFS服务器端

1.设置共享目录

  建立共享目录或者使用已有的目录,本文创建/data/nfsshare作为共享目录。

     返回到根目录 CD /

     创建目录 mkdir –p /data/nfsshare        -p 的意思是父文件夹不存在就创建

 

2.编辑/etc/exports文件

 a) #vi /etc/exports  注②

 b)按一下键盘 【i】 键进入编辑状态

 c)输入nfs地址,具体命令格式:[目录路径]…  [目标主机名或IP地址(参数…)]…

例子:

/data/nfsshare  10.10.225.*(rw,all_squash,anonuid=504,anongid=504)注③

[共享目录]   [第一台主机(权限)]

 

  d)保存文件,按【esc】键输入【:w】保存

  e)退出vi,输入【:q】退出Vi

3.重新加载exports文件

输入exportfs –rv命令    注④

 

4.查看本机发布的nfs目录

showmount –e 注⑤

 

四、设置客户端

1.查看可挂载的目录

  showmount –e ip

 

2.挂载服务器目录

  mount –t nfs –o nolock [主机名或IP]:[服务端目录路径] [客户端目录路径]

 例子:

mount –t nfs –o nolock

10.10.225.178:/data/nfsshare  /data/clientshare

 

五、进行测试

在服务器的共享目录里面建立一个文件,查看一下客户端是否存在

 

问题:

1. RPC: Port mapper failure - RPC: Unable to receive

iptable没关,把portmap的端口给阻挡了,禁用,service iptables  stop,一切OK!

 

2. mount.nfs:access denied by server while mounting

查看NFS Server端的/etc/exports文件设置是否有问题。

 

3.NFS客户端不能写文件问题

   是因为服务器端没有设置NFS 共享目录的读写权限,使用chmod进行更改文件夹的权限即可。

注解:

注① 为什么要安装RPC(Remote Procedure Call)

因为NFS支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会随机启动一些没有被占用并且小于1024的端口来传输资料,因为NFS支持的功能没有固定的端口。

这样的话,就需要一个服务来获得对应的端口号,而这个服务就是RPC服务。因为服务器在启动NFS时会把随机取得的端口主动注册到RPC服务中,因此RPC就可以知道每个NFS功能对应的端口号,并且RPC服务是固定端口号111。

 这也就间接要求RPC服务必须先于NFS服务启动。

详见:【鳥哥的 Linux 私房菜------第十三章、檔案伺服器之一:NFS 伺服器】

http://linux.vbird.org/linux_server/0330nfs.php

 

注② Vi的简单操作

Vi有三种模式:命令模式、插入模式、底行模式。画面启动的时候就是命令模式,这个时候只能输入各种命令,而不能进行输入,所以需要按【i】键进入到插入模式,进行输入文本,然后在按【Esc】键退出插入模式,进入命令模式。输入:qw进行保存退出。

注③ 权限参数

参数值

内容说明

rw

ro

目录分享权限是可读写(read-write)或者只读(read-only),但最终能否读写还是与档案系统的rwx以及身份相关

sync

async

sync 资料会同步写入内存和硬盘中, async 资料会先存入内存中,而不是直接写入硬盘。

no_root_squash

root_squash

客户端使用NFS的账号若为root时,系统如何判断这个账号的身份?

默认情况下,客户端root的身份由root_squash设定缩减为nfsnobody,这样才能保证服务器系统的安全。

但若想开放客户端的root身份来操作服务器档案系统,就需要设置no_root_squash

all_squash

无论登入NFS的客户端身份是什么,都会被缩减为匿名使用者,也就是nobody(nfsnobody)

anonuid

anongid

anon 代表anonymous (匿名用户),前面关于*_squash提到的匿名用户的UID设定值,通常为nobody(nfsnobody),但是你也可以自行设定这个UID的值!当然,这个UID必须存在你的/etc/passwd当中!anongid 则是群组的GID。

 

 

注④ Exportfs命令

Exportfs命令是使得本地目录可以被NFS客户端进行安装,默认使用/etc/exports文件进行导出一个或者多个目录。

参数:

 –r   重新读取etc/exports文件中的设置,并使设置生效,而无需重启NFS服务     -v    显示当前共享目录及详细的选项设置

  其它具体设置,请参照exportfs的命令详解。

 

注⑤ 用户端查询服务器分享资源的指令:/usr/sbin/showmount

这是另一个重要的NFS指令。exportfs是用于在NFS Server端进行设置,查询的。而showmount则主要用于Client端,用于查看NFS分享出来的目录资源。

-e   显示导出服务器上的所有文件系统。

-a   显示每个已安装在服务器上的所有网络文件系统 (NFS) 客户端和目录。

-d   显示当前装载 NFS 客户端的服务器上的所有目录。

posted on 2013-03-08 16:50  南郭先生kaka  阅读(3545)  评论(0编辑  收藏  举报

导航