Linux配置与应用NFS服务

| 文章字数:926 | 阅读时长:3min
这是一篇更新于 573 天前的文章,其中的信息可能已经有所发展或是发生改变。

NFS是SUN开发的,用于在不同的UNIX/Linux机器间进行资源共享,其设置相当容易,主要是配置/etc/exports文件,然后运行exportfs -a 命令来共享。现在NFS已经成为了UNIX/Linux上的标配。
从实际经验来看,NFS的效率要比samba稍微高一些,只是差别不大。从配置上来看samba比较复杂,NFS较为简单

项目实施

任务一配置简单的NFS服务器

NFS协议本身并没有提供数据传输的功能。它借助于远程过程调用(RPC)协议来实现数据的传输。可以将NFS服务器看作是一个RPC服务,而将NFS客户端看成是一个RPC客户端,这样NFS服务器和NFS客户端之间就可以通过RPC协议进行数据传输。

背景现企业内部有一台Linux服务器(centos),其IP地址为192.168.136.156,另有一台Linux客户机(ubuntu)其IP地址为192.168.136.152.现根据企业实际生产需要,配置服务器实现如下需求。

(1)将/root共享给客户机,客户机对共享可写,并采用同步方式传输数据,允许客户机以root权限访问。

(2)将/usr/src共享给192.168.136.0网段,客户端对共享可写,并采用异步方式传输数据。

(3)在上一个要求的基础上实施客户端上面所有用户身份都映射成nfsnobody

查看NFS程序是否安装

1
2
3
4
5
6
#centos
rpm -qa |grep nfs #查看NFS是否安装
rpm -qa |grep rpcbind #查看RPC是否安装
#Ubuntu
dpkg-query -l nfs-common #查看NFS是否安装
dpkg-query -l rpcbind #查看RPC是否安装

目前几乎所有的Linux发行版本都默认安装了NFS服务,如果没有的话输入命令自行安装即可。

备份NFS配置文件

cp /etc/exports /etc/exports.bak

编辑配置文件

1
vim /etc/exports

备注:上面配置文件括号中的参数详细释义如下:

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

sync:数据同步写入内存和磁盘

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

async:数据会先暂存于内存中,而不立即写入硬盘。

重启服务并设置开机自启

1
2
3
4
service rpcbind restart
service nfs restart
chkconfig rpcbind on
chkconfig nfs on

注意要先开启rpcbind服务,然后在开启nfs服务,不然在客户机测试时会出现如下错误。

服务器端设置/usr/src本地写权限

1
chmod o+w /use/src		#为其他用户添加写权限

在客户机上查看NFS服务器上的共享目录

1
showmount -e 192.168.136.156

客户机上测试

1
2
3
4
5
6
7
8
9
mkdir -p /data/root		#建立本地挂载点
mount 192.168.136.156:/root /data/root #挂载远程资源到本地
mkdir -p /tmp/src #建立本地挂载点
mount 192.168.136.156:/usr/src /tmp/src #挂载远程资源到本地
mount |tail -2 #查看挂载点的最后两行
cd /data/root #root用户进入目录测试需求1
touch nfs
cd /tmp/src #普通用户进入目录测试需求2
touch yhy

我们可以在不同的挂载点下建立文件夹来测试需求

把所有用户都映射成nfsnobody

使用chmod o-w /usr/src命令清除之前的权限,使用setfacl -m u:nfsnobody:rwx /usr/src来设置访问控制列表。

客户机测试

1
touch bestyhy

客户写卸载NFS服务器

1
2
umount /data/root
umount /tmp/src

若不能卸载则加上 -lf参数强制结束

任务二架设企业级NFS服务器

背景

备份NFS配置文件

cp /etc/exports /etc/exports.bak

编辑配置文件

1
vim /etc/exports
未完待续
扫码加我微信