NFS简介
NFS(Network File System)中文叫网络文件系统,主要功能是通过网络(一般是局域网)让不同的主机之间可以共享文件或目录。NFS客户端可以通过挂载的方式将NFS服务器共享出来的目录挂载到本地进行使用。NFS网络文件系统很像Windows下的网络共享、网络驱动器映射,也很像samba服务,不过后两者通常用于办公局域网,而中小型网站集群后端常用NFS进行数据共享,如果是大型网站,还会用到更复杂的分布式文件系统,如Moosefs(mfs)、GlusterFS、FastDFS。
NFS工作流程
1.启动RPC服务:NFS支持的功能较多,不同功能由不同程序来完成,这些程序执行时会随机使用一些端口,因而NFS的端口是不固定的,所以NFS使用RPC服务来统一管理这些端口,并负责与客户端通信返回这些端口。RPC服务端口是111。
2.启动NFS服务:NFS服务启动时,开启并向RPC注册各种功能对应的端口。所以RPC要先于NFS启动,如果RPC服务重启,那么注册信息会丢失,NFS也需要重启,重新进行注册。NFS主程序端口2049。
服务端安装
cat /etc/redhat-release uname -rm yum install -y nfs-utils rpcbind /etc/init.d/rpcbind start /etc/init.d/nfs start ps -ef | egrep 'rpc|nfs' netstat -nutlp | grep rpcbind rpcinfo -p localhost // 查看rpc注册信息 chkconfig rpcbind on chkconfig nfs on chkconfig --list | egrep "nfs|rpcbind"
创建用户、目录、配置文件
groupadd -g 888 nfs useradd -M -u 888 -g nfs -s /sbin/nologin nfs mkdir /data chown -R nfs.nfs /data echo -e "#share /data by peter at 2017-08-31 /data 172.16.1.0/24(rw,sync,all_squash,anonuid=888,anongid=888)" > /etc/exports /etc/init.d/rpcbind restart /etc/init.d/nfs restart
客户端安装
yum install -y nfs-utils rpcbind /etc/init.d/rpcbind start ps -ef | grep rpcbind netstat -nutlp | grep rpcbind chkconfig rpcbind on chkconfig --list | grep rpcbind
客户端挂载
showmount -e 172.16.1.31 mount -t nfs 172.16.1.31:/data /mnt df -h echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local tail -1 /etc/rc.local