NFS服务的配置

45 篇文章 0 订阅

基本配置

查询软件是否安装:

[root@rhel2 ~]# rpm -qa | grep nfs

nfs-utils-1.0.9-40.el5

nfs-utils-lib-1.0.8-7.2.z2

[root@rhel2 ~]# rpm -qa | grep protmap

[root@rhel2 ~]# rpm -ivh /misc/cd/Server/portmap-4.0-65.2.2.1.i386.rpm

Preparing...               ########################################### [100%]

       package portmap-4.0-65.2.2.1.i386 is already installed

这个软件已经安装了。

 

/etc/exports

这个是NFS的主要配置文件,但没有默认值,空的。


/usr/sbin/exportfs

维护NFS共享资源的命令。

/usr/sbin/showmount

exportfs用在server端,而showmount则用在客户端,这个命令可以查看NFS服务器共享出来的目录资源。

/var/lib/nfs/

这个目录下有两个重要的日志文件,etab:主要记录NFS共享出来的完整权限设定值,xtab:记录曾连接到此主机的客户机相关数据。

 

exports内的常用权限参数:

rw                //可读写的权限

ro                 //只读权限

sync             //数据同步写入到内存与硬盘中

async           //数据只会暂存在内存中

no_root_squash         //如果使用root用户登录,就有root用户的权限

root_squash               //如果使用root用户登录,就会变成匿名用户的权限

all_squash                  //不管以什么用户登录,都会变成匿名用户的权限

anonuid                      //匿名用户uid设置值

anongid                      //匿名用户gid设置值

 

示例:

[root@rhel2 ~]# vi /etc/exports

/tmp   *(rw)

所有人对/tmp目录都有读写权限。

/tmp   *(ro)  192.168.100.100(rw)

所有人对/tmp目录二都有只读权限,而192.168.100.100对这个目录有读写权限。

/tmp   192.168.100.0/24(ro)   192.168.100.100(rw)

192.168.100.0/24这个网段人用户对这个目录有只读权限,而192.168.100.100对这个目录有读写权限。

/tmp   *(ro,all_aquash,anonuid=100,anongid=100)

所有人对这个目录都会变成服务器中uid100gid100的用户的权限

 

[root@rhel2 ~]# service nfs restart

 

挂载

手工挂载:

mount –t nfs 192.168.100.20:/home /tmp

-t    //指定文件类型

ip地址是服务器的地址(也可以使用主机名代替),:后是共享目录,

/tmp是挂载到本机的目录

也可以这样:

mount.nfs 192.168.100.20:/home /tmp

 

开机自动挂载:

[root@rhel3 ~]# vi /etc/fstab

192.168.100.20:/home   /mnt    nfs    defaults  0 0

服务器名称/ip地址:共享目录  挂载点文件类型 挂载选项备份频率检查选项

[root@rhel3 ~]# vi /etc/rc.d/rc.local

mount.nfs 192.168.100.20:/home /mnt

 


综合配置实例

配置NFS服务器,要求如下

该服务器的IP为:192.168.100.203.

(1)共享/mydata目录,要求

  192.168.100.0可以只读访问,

  192.168.100.15,192.168.100.16,192.168.100.20,192.168.100.30能写访问,

  不允许192.168.100.200192.168.100.198那两台机器访问,

  192.168.100.40192.168.100.50的机器访问此共享时,可以用root用户登录,可写。

  所有客户机同步写磁盘

(2)共享光驱(/misc/cd/),要求

  所有人只读访问

  不允许192.168.100.200192.168.100.198那两台机器访问

 

在客户端自动挂载服务器上/mydata目录,挂载到本地的/nfs/nfs目录中

在客户端自动挂载服务器上光驱目录,挂载到本地的/nfs/cdrom目录中

 

配置步骤:

配置ip地址:

[root@rhel3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.100.203

NETMASK=255.255.255.0

 

[root@rhel3 ~]# service network restart

 

[root@rhel3 ~]# mkdir /mydata      //创建共享目录

[root@rhel3 ~]# rpm -qa |grep nfs            //查询nfs安装情况

nfs-utils-lib-1.0.8-7.2.z2

nfs-utils-1.0.9-40.el5

 

[root@rhel3 ~]# vi /etc/exports

/mydata        192.168.100.15(rw,sync) 192.168.100.16(rw,sync) 192.168.100.20(rw,sync) 192.168.100.30(rw,sync)  192.168.100.40(rw,no_root_squash,sync) 192.168.100.50(rw,no_root_squash,sync) 192.168.100.0/24(ro,sync)

/misc/cd       *(ro)

 

[root@rhel3 ~]# service nfs restart

 

[root@rhel3 ~]# ll /

drwxr-xr-x  2 root root 4096 Apr 15 02:13 mydata   //更改这里的权限,因为这里没有写的权限。

[root@rhel3 ~]# chmod a+w /mydata/

[root@rhel3 ~]# ll /

drwxrwxrwx  2 root root 4096 Apr 15 02:13 mydata

 

[root@rhel3 ~]# vi /etc/hosts.deny       //拒绝以下两台主机访问。

mountd:192.168.100.198,192.168.100.200

 

接下来实现自动挂载:

方法有三种:第一种修改/etc/fstab文件,第二种修改/etc/rc.d/rc.local文件,第三种实现自动挂载和自动缷载。这里就以第三种为例:

[root@rhel2 /]# vi /etc/auto.master

/nfs   /etc/autonfs.conf         //添加这一行

[root@rhel2 /]# vi /etc/autonfs.conf            //在这之前这个文件是没有的,当编辑好保存之后就有了。

nfs    192.168.100.203:/mydata

cdrom  192.168.100.203:/misc/cd

 

[root@rhel2 /]# service autofs restart

 

配置完成,测试:

[root@rhel2 nfs]# ifconfig

eth0     Link encap:Ethernet HWaddr 00:0C:29:FD:44:C8 

         inet addr:192.168.100.15 Bcast:192.168.100.255 Mask:255.255.255.0

[root@rhel2 ~]# cd /nfs/nfs/  //第一次进入时/nfs下并没有nfs这个目录,需要手动输入这个目录。

[root@rhel2 nfs]# touch a             //这个地址是有写入权限的。

[root@rhel2 nfs]# mkdir abc

[root@rhel2 nfs]# ll

-rw-r--r-- 1nfsnobody nfsnobody   0 04-16 14:13 a

drwxr-xr-x 2nfsnobody nfsnobody 4096 04-16 14:13 a

[root@rhel2 nfs]# whoami

root

这里的文件所属用户和所属组都是nfsnobody,当前是root用户。

 

[root@rhel2 ~]# ifconfig eth0 192.168.100.40 netmask 255.255.255.0

[root@rhel2 ~]# cd /nfs/nfs

[root@rhel2 nfs]# touch rhel

[root@rhel2 nfs]# ll

-rw-r--r-- 1 nfsnobody nfsnobody   0 04-16 14:13 a

drwxr-xr-x 2 nfsnobody nfsnobody 4096 04-16 14:13 abc

-rw-r--r-- 1root     root        0 04-16 14:15 rhel

因为这个地址是允许root用户登录的,所以这里的所属用户和所属组都是root

更多有关权限的测试就省略了,还可以使用不同的用户进行测试,如当客户端和服务器用户不同时和相同时的文件所属问题。


简介

NFS,全称Network File System。网络文件系统,最早由Sun公司开发,它的功能是在不同的机器、不同的操作系统之间实现文件的共享。NFS传输数据时使用的端口是一个随机端口。

RPC,远程过程调用。它的功能是指定每个NFS功能对应的端口号,当NFS服务器启动时会随机启用数个端口号,并主动向RPC注册,这样RPC就知道每个端口号对应的功能了,RPC使用111号端口来监听客户机的请求并回应正确的端口号。

启动NFS之前要先启动RPC,否则NFS无法向RPC注册,当RPC重新启动后,原来注册的端口数据会丢失,这时,它管理的所有程序都必须重新向RPC注册。

 

工作原理

1)   客户机发送RPC请求到远程NFS服务器中。

2)   NFS服务器利用PORTMAP服务查询NFS的工作端口。

3)   客户机联系要装载的分区,同时服务器会验证客户机是否有权加载。

4)   客户机更新MTAB文件,表示加裁成功。

自动挂载和自动缷载

当使用NFS共享文件时,需要首先挂载,挂载后用户又不是一直在线,只要任一方离线,都会造成另一方等待超时,那么,有没有一个方法能让用户使用时自动挂载,不使用时自动缷载?当然有。使用autofs这个服务。在客户端配置:

 

[root@rhel3 ~]# vi /etc/auto.master

/nfs   /etc/autonfs.conf         //添加这一行

 

/nfs       //挂载的主目录。

/etc/autonfs.conf        //挂载文件的配置。

[root@rhel3 ~]# mkdir /nfs     //添加目录

[root@rhel3 ~]# vi /etc/autonfs.conf    //编辑并创建自动挂载文件

home   192.168.100.20:/home

 

home    //本地目录

192.168.100.20:/home     //远程挂载的共享目录

中间可以添加一引些挂载选项。

[root@rhel3 ~]# service autofs restart

 

[root@rhel3 ~]# ls /nfs/home //第一次使用时是没有这个目录的,当访问这个目录时就会自动挂载了。当5分钟没有使用就会自动缷载。

a abc

常用命令

exportfs       //查看已共享的目录(服务器端使用)

exportfs选项:

-a          //全部mountumount /etc/exports中的内容

-u          //umount内容

-r           //重新mount /etc/exports中的内容

-o          //共享选项

-v          //exports的时候,将共享的目录显示到屏幕上

 

 

客户端查询:

[root@rhel3 ~]# showmount -a 192.168.100.20

All mount points on 192.168.100.20:

192.168.100.30:/home

192.168.100.30:/root

 

 

[root@rhel3 ~]# showmount -e 192.168.100.20

Export list for 192.168.100.20:

/home *

/chen 192.168.100.30

常见故障

如果发现挂载不了,出现如下提示:

[root@rhel3 ~]# mount.nfs 192.168.100.20:/home /mnt

mount: mount to NFS server '192.168.100.20' failed: System Error: No route to host.

这很可能是防火墙的问题。

 

如果还有人在使用NFS,这时服务器需要关机的话,是不能关机的,系统会等到没有用户使用时再关机,如果关机时间很长,看看是不是还有用户在线。

 

如果使用的是服务器名挂载,要确保服务器名是能解析的。如果没有DNS服务器,可以在/etc/hosts中添加。

 

from:

http://chenbin.blog.51cto.com/945033/324318

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值