Linux NFS配置小结

点击量:次 发布时间:2012-04-16 17:17

Redhat Linux NFS配置

NFS简介:

NFS是网络文件系统的简写(network file system),主要用在linux或unix环境中,是有sun公司开发,并于1984年推出的一个RPC服务系统。

NFS功能介绍:

他可以将多个目录或者单个目录进行发布,例如我们在网刻系统的时候可以用NFS来共享光盘镜像,NFS是以发布目录的方式将文件进行发布,而客户端是以挂载的方式进行访问。客户端可以节省本地空间,将数据存放在nfs服务器上。NFS也可以针对但个用户以及多用户设置不同的访问权限。

详细配置步骤:

安装NFS必须要开启的服务有:nfs、portmap、

NFS的配置相对于其他服务是比较简单的,我们依然还是要注意防火墙以及SElinux,

首先我们检查软件是否已安装,这里我已经都安装了。

在安装redhat linux 时这些包默认就已被安装,如果你检查发现没有安装,可以使用一下命令进行安装;

#rpm –ivh nfs*

#rpm –ivh portmap

配置NFS,配置文件在/etc/exports

首先我们使用vim打开/etc/exports 我们会发现这是一个空文件,里面没有任何内容。如果没有此文件,我们可以新创建一个,

这里我们举个例子来完成对NFS的配置,

例如:公司有多台计算机,而其中只有一台服务器有光驱,而我们其他的计算机也想安装光盘上的软件,现在我们就可以用NFS来实现。例如我们的服务器光驱挂载在/media上,接下来我们来编辑配置文件来实现以上的功能。

依然使用vi打开配置文件编辑以下内容:

然后保存退出,这个文件里我们只需编辑俩个字段:前面的为共享目录,后面的为哪些人可以访问以及访问权限,*代表所有人(ro)为只读权限。

启动服务

然后我们可以使用exportfs命令查询输出的目录

客户端挂载

需要启动服务 portmap

使用mount命令挂载,例如我/下有nfs目录,我将挂载到nfs目录上

然后我们就可以访问光盘目录了,

反挂载使用umount /nfs

我们还可以使用shoumount —export 192.168.0.7 查看NFS所发布的目录

如果您想共享其他的目录也是安装同样的方法,注意权限问题,目录权限和共享权限。

一些相关共享权限:

ro 客户端为只读权限

rw 客户端为读写权限

root_sqush 客户端使用root访问时映射为nobady (默认选项)

no_root_squash 客户端映射为root访问

启动服务的其它方式:/etc/rc.d/init.d/portmap start /etc/rc.d/init.d/nfs start

部分配置文件细节

exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

1.输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录;

2.客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

指定ip地址的主机 192.168.0.200

指定子网中的所有主机 192.168.0.0/24

指定域名的主机 a.liusuping.com

指定域中的所有主机 *.liusuping.com

所有主机 *

3.选项:

选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项:

访问权限选项

设置输出目录只读 ro

设置输出目录读写 rw

用户映射选项

all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash 与all_squash取反(默认设置);

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

no_root_squash 与rootsquash取反;

anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx 将远程访问的所有用户组都映射为匿名用 户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

其它选项

secure 限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure 允许客户端从大于1024的tcp/ip端口连接服务器;

sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async 将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay 检查是否有相关的写操作,如果有则将这些写操作 一起执行,这样可以提高效率(默认设置);

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

subtree 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

/home/work 192.168.0.*(rw,sync,no_root_squash)

内容表示:允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。

/home/work 也称为服务器输出共享目录。

括号内的参数意义描述如下:

rw:读/写权限,只读权限的参数为ro;

sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。

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

接着执行如下命令,启动端口映射:

/etc/rc.d/init.d/portmap start

最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求:

/etc/rc.d/init.d/nfs start

用户也可以重新启动Linux 服务器,自动启动Linux NFS 服务。

在NFS 服务器启动后,还需要检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,ipchains 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow 文件。

我们首先在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。在Linux 服务器上运行如下命令:

mount –t nfs 192.168.0.20:/home/work /mnt

ls /mnt

命令将Linux 服务器的NFS 输出共享目录挂载到/mnt 目录下,因此,如果NFS 正常工作,应该能够在/mnt 目录看到/home/work 共享目录中的内容。

客户端 mount命令 mount –t nfs 192.168.0.20:/home/work /mnt/nfs –o nolock

简单脚本执行

host启动nfs:

snfs

#!/bin/bash

ifconfig eth0 192.168.0.20

/etc/rc.d/init.d/portmap start

/etc/rc.d/init.d/nfs start

嵌入式目标机挂载nfs:

mnfs:

#!/bin/sh

mount -t nfs 192.168.0.20:/home/work/nfs /mnt/nfs -o nolock

echo “nfs ok!”

在客户端查看NFS各种状态

showmount -e 可看有分享哪些目录

showmount -a 可看出所有的 mount

showmount -e 172.16.75.1

在服务端 显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录 # showmount -d

检查NFS的运行级别:

chkconfig —list portmap

chkconfig —list nfs

根据需要设置在相应的运行级别自动启动NFS:

chkconfig —level 235 portmap on

chkconfig —level 235 nfs on

客户端开机自动挂载

通过修改/etc/fstab文件可以实现开机自动挂载nfs目录

[root@linux-b nfs1]# vim /etc/fstab

/dev/VolGroup00/LogVol00 / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2

devpts /dev/pts devpts gid=5,mode=620 0 0

tmpfs /dev/shm tmpfs defaults 0 0

proc /proc proc defaults 0 0

sysfs /sys sysfs defaults 0 0

/dev/VolGroup00/LogVol01 swap swap defaults 0 0

192.168.0.231:/nfs/frank /mnt/nfs1 nfs defaults 0 0

1、在配置NFS服务器之前用ping命令确保两个linux系统正常连接,如果无法连接关闭图形界面中的防火墙#service iptables stop

2、更改完“exports”文件后要输入exportfs –rv ,使得“exports”文件生效。

3、检查nfs服务是否开启,默认是关闭的。

#iptables #selinux #nfs #vim