centos7.2 配置NFS文件服务器,远程共享文件

来源:互联网 发布:淘宝充流量不能退款吗 编辑:程序博客网 时间:2024/06/15 03:03
   NFS 文件服务器,是可以远程共享文件,将远程文件挂载到本地,然后就可以作为本地文件一样进操作,所做更改则会同步到nfs远程服务器上,在跨主机的共享文件上非常方便,比建立一个集中的ftp服务器要方便很多。之前的FTP文件文件服务器用于远程验证下载,上传文件,但是需要验证并登陆,才能进行操作,而已不能直接在另外一台主机上直接下载网络文件并保存在ftp上,而要先保存在本地,然后传到ftp服务器上,繁琐而不方便。
 
1:服务端安装配置,也就是文件实际存放的位置。
## 安装nfs 和 rpcbind(使用nfs服务,都需要安装的rpc服务),并配置开机启动
$ yum install nfs-utils
$ yum install rpcbind
$ systemctl enable nfs-server
$ systemctl enable rpcbind
 
## 启动nfs 和rpcbind
$ systemctl start nfs
$ systemctl start rpcbind
$ systemctl status rpcbind (查看服务状态)
 
## 创建要共享的文件,也可以是原先已经存在的文件夹
$ mkdir /usr/local/mydata
 
## 为文件夹设置用户和用户组,需要设为nfsnobody
$ chown nfsnobody.nfsnobody /data/tmp
 
## 编辑nfs配置文件
$ vim /etc/exports
-----------------------------------------------------------------------------------------------------------
## 添加配置,将本机的这个路径的文件作为nfs共享文件,共享给指定IP
/usr/local/mydata xxx.xxx.xxx.xxx(rw,sync,all_squash)                                      -------------------------------------------------------------------------------------------------------------
 
##  重载配置
$ exportfs -rv
 
## 查看本地挂载情况
$ showmount -e localhost
 
 
2.:客户端,安装与配置
##同样需要先下载安装nfs,rpcbind,并设为开机启动
$ yum install nfs-utils
$ yum install rpcbind
$ systemctl enable nfs
$ systemctl enable rpcbind
 
## 创建想要挂载的目录文件
$ mkdir /usr/local/mydata
 
## 将服务端的目录挂载到本地的对应目录下
$ mount -t nfs xxx.xxx.xxx.xxx:/usr/local/mydata usr/local/mydata
 
## 查看挂载情况
$ df -h  
 
## 卸载挂载方式:
$ umount /usr/local/mydata
 
OK,到此nfs安装成功,使用方法已示。

注意:

如果没有关闭nfs服务端的防火墙,则会挂载失败需要在服务端开启需要的端口,在centos7上,用firewalld防火墙直接开发nfs服务即可自动通过。

像网上的什么固定端口来开发nfs服务并没有用,按最好的方式,直接开发nfs服务。

$ firewall-cmd --add-service=nfs --permanent

$ firewall-cmd --reload



测试,在任何一段新建文件,查看另一端是否也已生同步了文件。

###############另外,服务端nfs设置的参数详解如下:####################
配置可参考的参数如下:
NFS客户端地址:
指定IP: 192.168.0.1
指定子网所有主机: 192.168.0.0/24
指定域名的主机: test.com
指定域名所有主机: *.test.com
所有主机: *


参数:
ro:目录只读
rw:目录读写
## 这两个影响性能的设置
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
##
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户


到了,到此简单的配置和访问,同步,共享都实现了,另外关于性能优化的方面,后面再补充。