NFS在Linux上的安装与配置


NFS是Network File System的简写,即网络文件系统。
NFS允许一个系统在网络上与它人共享目录和文件,通过远程挂载NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
但根据我过去的经验,NFS在访问量不大的时候,采用配置比较好的服务器能够满足使用需求,可一旦日PV量达到百万级别以后,NFS就成为了整个系统最大的性能瓶颈和单点故障。
因此,强烈建议在访问量达到一定程度以后,采用分布式文件系统如moosefs、lustre等;如果不考虑成本的话,可采用IBM或HP等公司昂贵的NAS设备。

下面开始对NFS在Linux上的安装与配置进行讲解:
1. 配置NFS服务器共享
安装NFS所需软件包
CentOS:
# yum install nfs-utils nfs4-acl-tools portmap
Ubuntu:
# apt-get install nfs-common nfs-kernel-server portmap

输出服务器端的某些目录,以便NFS客户端能挂载和访问到
# vi /etc/exports

/data/nfshome/common 192.168.10.0/255.255.255.0(rw,sync)
/data/nfshome/private 192.168.10.4(rw,sync,no_root_squash) 192.168.10.5(rw,sync,no_root_squash)
/data/nfshome/public *(ro,sync)

相关注解如下:
第1条规则 /data/nfshome/common 目录对所有192.168.10.x的主机都开放,权限为 rw 可读写,sync 文件同步;
第2条规则 /data/nfshome/private 目录对192.168.10.4与192.168.10.5两台主机开放,权限为 rw 可读写,sync 文件同步,no_root_squash 使root用户具有根目录的完全管理访问权限;
第3条规则 /data/nfshome/public 目录对所有主机开放,权限为 ro 可读写,sync文件同步。

下面是一些NFS共享的常用参数:

ro                #只读访问  
rw                #读写访问  
sync              #所有数据在请求时写入共享  
async             #NFS在写入数据前可以响应请求  
wdelay            #如果多个用户要写入NFS目录,则归组写入(默认)  
no_wdelay         #如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置  
hide              #在NFS共享目录中不共享其子目录  
no_hide           #共享NFS目录的子目录  
no_subtree_check  #和上面相对,不检查父目录权限  
all_squash        #共享文件的UID和GID映射匿名用户anonymous,适合公用目录  
no_root_squash    #root用户具有根目录的完全管理访问权限  

设置NFS服务开机自启动
# chkconfig nfs on
# chkconfig portmap on

启动NFS相关服务
# /etc/init.d/rpcbind start
# /etc/init.d/nfslock start
# /etc/init.d/nfs start

2. 配置NFS客户端远程访问
安装NFS所需软件包
CentOS:
# yum install nfs-utils nfs4-acl-tools portmap
Ubuntu:
# apt-get install nfs-common nfs-kernel-server portmap

启动NFS客户端服务
# /etc/init.d/rpcbind start
# /etc/init.d/nfslock start

检查NFS服务器端是否有目录共享(假设服务器IP为192.168.10.3)
# showmount -e 192.168.10.3
/data/nfshome/public *
/data/nfshome/private 192.168.10.4 192.168.10.5
/data/nfshome/common 192.168.10.0/255.255.255.0

挂载NFS共享目录
# mount -t nfs -o rw,tcp,intr 192.168.10.3:/data/nfshome/private /mnt/nfs

查看是否挂载成功
# df -h

设置/etc/fstab实现开机自动挂载
# vi /etc/fstab

192.168.10.3:/data/nfshome/private /mnt/nfs nfs rw,tcp,intr

  1. #1 by nleac on 2012/10/17 - 11:53

    值得注意的是,客户端也需要安装NFS相关套件,如 nfs-common。
    否则会在mount时出现“wrong fs type, bad option, bad superblock”的错误。

(will not be published)
*