Linux下的NFS server架设基础及方法

1, NFS server简介

网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。

2,Linux下NFS server的安装(RHEL5)

首先来查看一下当前系统里是否安装了NFS的rpm包:

[root@localhost ~]# rpm –qa|grep nfs
将会看见有两个RPM包,分别为:
nfs-untils-1.0.9-16.el5#提供nfs服务的软件包
nfs-untils-lib-1.0.8-7.2#库文件
默认情况下,的NFS serverRPM包是有安装,另外还有一个软件包
[root@localhost ~]# rpm –qa|grep portmap
如果没有安装可以在系统盘中的portmap -4.0-65.2.2.1文件,然后安装
[root@localhost ~]# rpm-ivhportmap -4.0-65.2.2.1#管理RPC的连接
查看一下进程情况,
[root@localhost ~]# ps –eaf|grep portmap
这里不要启动服务,默认情况下,系统运行时就开启了此服务。
看看111端口是否在运行:
[root@localhost ~]#netstat –anf|grep :111
正常情况下TCP-111 HE UDP-111是开启的
Portmap的两个进程是rpc.nfsd和rpc.mountd
现在通过脚本运行:
[root@localhost ~]# /etc/rc.d/init.d/nfs start
[root@localhost ~]# ps –eaf|grep mountd#mountd进程主要管理文件。
[root@localhost ~]#netstat –anf|grep :2049#由nfsd进程监听
[root@localhost ~]#netstat –anf|grep rpc.mountd#端口是不固定的
[root@localhost ~]# rpcinfo –p#查看所有的NFS进程运行的状态
注意这个时候如果有防火墙记得打开相应的端口:
[root@localhost ~]# iptables –I input –p tcp –dport 2049 –j accept
[root@localhost ~]# iptables –I input –p udp –dport 2049 –j accept
[root@localhost ~]# iptables –I input –p tcp –dport 111 –j accept
[root@localhost ~]# iptables –I input –p udp –dport 111 –j accept

3, NFS server主配置文件的配置信息

Linux下的nfs server主配置文件是/etc/exporce文件。当nfs server正确安装后,etc/exporce文件时自动生成的,但是里面没有内容。

编辑文件:

[root@localhost ~]# vi /etc/exporce
键入内容:
/projects*(or)*.wivce.edu(rw,sysc)
/projects#是导出来的路径以及权限
*(or)#表示任何主机以只读权限访问
*.wivce.edu(rw,sync) #表示只要是wivce.edu域中的任何主机有只读和写的权限,而且写的时候是同步写到server的服务器的存贮设备中。而async是异步的,先驻客户的内存中。默认为sync方式。
/home/abcpc0001 (rw,all_aquarb,用户ID,组ID)#导出目录/home/abc
/pub#导出目录/pub
然后存档退出,重启服务
[root@localhost ~]# exportfs –r –v
或者
[root@localhost ~]# /etc/rc.d/init.d/nfs restart
[root@localhost ~]# exportfs#导出exportfs文件夹中的文件
[root@localhost ~]# exportfs-v#导出的文件时更详细的内容
[root@localhost ~]# exportfs –I*:/usr –oro –v

就是把USR目录导出如果在exportfs里那就直接导出,如果是不在exportfs里的文件,那在导出是需要加上-I以及–o还有权限。

[root@localhost ~]# more /var/lib/nfs/etab#有详细的导出记载内容
在windows下配置客户端:
开始》运行“cmd”
首先我们telnet192.168.27.248(服务器的IP)
登录用户redyipass: redhat
然后用SU转换到Linuxs下的root用户身份
用showmount –e 192.168.27.248
[root@localhost ~]#showmount –e 192.168.27.248
此时会有相关信息的提示
比如说导出的目录
使用mount命令:
[root@localhost ~]#mkdir /nfs
[root@localhost ~]#mount 192.168.27.248:/home/nfs挂在在本地文件系统下
[root@localhost ~]# cd/nfs
[root@localhost ~]# ls –l
返回NFS server :
[root@localhost ~]#cd /home
[root@localhost ~]# ls

很显然能看出来两种系统的User不一样。因为他们登录时基于用户名的。他们的UID是相同的,但是系统的用户名可以不一样。

关于NFS权限设置非常复杂,暂不一起跟大家分享。目前还没有形成这种能力。

设置自动挂在

/etc/fstab文件可以自动挂在文件

下面看下:

[root@localhost ~]#more /etc/fstab

看见内容后可以参考相关的内容格式添加自动挂载,有了自动挂载方便了操作。同时也希望朋友们带来这一方面的资料。