2024年3月23日发(作者:)

CentOS5 nfs安装与配置总结

我们知道在Linux上运行NFS会有很多不同的情况。随着环境以及相应版本和硬件的

改动,它的一些性能会有很大的差异。那么今天我们来看一下 CentOS NFS的一些安装和

测试情况。在 CentOS 上安装和配置 NFS 4.0。NFS 网络文件系统协议最早是于1984

年由 SUN 公司开发的,NFSv4 是最新的修订版本,2003年4月发布(RFC 3530)。由

于 NFS 是一个开放的协议和标准,所以各个系统上的实现不同,所表现出来就是稳定性

和性能差异,VPSee 的经验是 NFS 在 Solaris 上最稳定、功能最丰富;在 FreeBSD 上

的性能最好,但是缺少一些功能,比如 FreeBSD 8.0 内核才增加了 NFS 文件锁的支持;

NFS 在 Linux 上表现最一般了,所以我们至今仍有部分服务器低调地运行着古老的

Solaris 2.5 和 NFSv3,相比 NFSv3 来说 NFSv4 做了一些重大改进,比如:性能的提

升、安全性的增强和 ACL,更容易与防火墙集成等。下面地操作在 CentOS 5.5 上完成。

安装CentOS NFS 服务器

安装CentOS NFS 服务器所需的软件包:

1. # yum install nfs-utils nfs4-acl-tools portmap

配置CentOS NFS 共享

和安装任何其他服务器软件一样,安装完 NFS 服务后就需要对 NFS 服务进行配置。

输出服务器端的某个目录,以便 NFS 客户端能挂载和访问到这个目录

1. # vi /etc/exports

2. /home 166.111.59.22(rw,sync,fsid=0) 166.111.59.23 (rw,sync,fsid=0)

166.111.59.22 和 166.111.59.23 上面的用户可以挂载 NFS 服务器

(166.111.59.21)上的 /home 目录到自己文件系统里;rw 在这里表示可读可写。

把CentOS NFS服务加入系统启动脚本并且手动启动 NFS 服务:

1. # chkconfig nfs on

2. # chkconfig portmap on

3. # /etc/init.d/portmap start

4. # /etc/init.d/nfs start

确认 NFSv4 服务器成功运行:

1. # rpcinfo -p

2. program vers proto port

3. 100000 2 tcp 111 portmapper

4. 100000 2 udp 111 portmapper

5. 100003 2 udp 2049 nfs

6. 100003 3 udp 2049 nfs

7. 100003 4 udp 2049 nfs

8. ...

9. 100005 3 tcp 750 mountd

检查CentOS NFS服务器是否输出我们想共享的目录 /home:

1. # exportfs

2. /home 166.111.59.22

3. /home 166.111.59.23

注意 NFS 使用 portmap,而且新版本的 portmap 使用 和

文件来控制访问源,修改这2个配置文件以便 NFS 客户端能正常连接到服

务器:

1. # vi /etc/

2. portmap:ALL

3. # vi /etc/

4. portmap: 166.111.59.*

使用 NFS 客户端

首先启动 portmap:

1. # /etc/init.d/portmap start

检查 NFS 服务器端是否有目录共享:

1. # showmount -e 166.111.59.21

2. Export list for 166.111.59.21:

3. /home 166.111.59.22, 166.111.59.23

使用 mount 挂载服务器端的目录 /home 到客户端某个目录下:

1. # mount -t nfs 166.111.59.21:/home /home

2. # df -H

3. Filesystem Size Used Avail Use% Mounted on

4. ...

5. 166.111.59.21:/home 232G 23G 198G 11% /home

在 /etc/fstab 中挂载 nfs 文件系统:

1. # vi /etc/fstab

2. 166.111.59.21:/home /home nfs defaults 0 0

3. # chkconfig netfs on

在成功挂载服务器端的 /home 后就可以在客户端里操作了,这时候写文件或者拷贝

文件的时候会遇到一个权限问题报错 : Permission denied,这是因为上面我们在服务器

端建立了 /home 但是 /home 的 owner 是 root:root,而客户端的正在访问 NFS 的

用户是 /home,NFS 要求服务器端和客户端的 UID 和 GID 必须一致,所以要在 NFS

服务器端修改 /home 的权限和所属:

1. # chown -R vpsee:vpsee /home

注意使用CentOS NFS 的时候,客户端的用户 UID 和 GID 必须和服务器端的 UID

和 GID 完全符合,否则会造成权限错误。在小规模用户的情况下,我们可以偷懒通过在

客户和服务器两端同时建立相同的用户和组来解决这个问题,但是在大规模用户情况 下最

好的办法是利用 NIS 或者 OpenLDAP 来统一管理用户,做到一次登录,到处访问。