NFS在Linux上的安装与配置
NFS是Network File System的简写,即网络文件系统。NFS允许一个系统在网络上与它人共享目录和文件,通过远程挂载NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
但根据我过去的经验,NFS在访问量不大的时候,采用配置比较好的服务器能够满足使用需求,可一旦日PV量达到百万级别以后,NFS就成为了整个系统最大的性能瓶颈和单点故障。因此,强烈建议在访问量达到一定程度以后,采用分布式文件系统如moosefs、lustre等;如果不考虑成本的话,可采用IBM或HP等公司昂贵的NAS设备。
www.zhishiwu.com
下面开始对NFS在Linux上的安装与配置进行讲解。
1.安装NFS服务器所需软件包
RHEL/SUSE:
#rpm -ivh nfs-utils-lib-*
#rpm -ivh nfs-utils-*
#rpm -ivh nfs4-acl-tools-*
#rpm -ivh portmap-*
CentOS:
#yum install nfs-utils nfs4-acl-tools portmap
Ubuntu:
#apt-get install nfs-common nfs-kernel-server portmap
www.zhishiwu.com
2.配置NFS服务器共享
输出服务器端的某些目录,以便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)
相关注解如下:
第一条规则 /data/nfshome/common 目录对所有192.168.10.x的主机都开放,权限为 rw 可读写,sync 文件同步;
第二条规则 /data/nfshome/private 目录对192.168.10.4与192.168.10.5两台主机开放,权限为 rw 可读写,sync 文件同步,no_root_squash 使root用户具有根目录的完全管理访问权限;
第三条规则 /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用户具有根目录的完全管理访问权限
www.zhishiwu.com
设置NFS服务开机自启动
#chkconfig nfs on
#chkconfig portmap on
启动NFS服务
#/etc/init.d/portmap start
#/etc/init.d/nfs start
3.配置NFS客户端远程访问
检查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
www.zhishiwu.com
挂载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