Centos 7 安装NFS实现文件共享
[TOC]
一、NFS介绍
1.介绍
NFS 是Network File System的缩写,即网络文件系统。是一种使用于分散式文件系统的协定,功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在Linux系统上实现文件共享的一种方法。
NFS文件系统
2.核心原理
NFS使用RPC,即远程过程调用 (Remote ProcedureCall) ,它能使客户端执行其他系统中的程序。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些依赖RPC的传输协议。可以简单理解RPC和NFS的关系:NFS是一个文件系统,而RPC负责信息的传输。
二、文件共享主机安装NFS
1.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
如果关闭防火墙不安全,则采用开放端口的方式:
[root@nfs_server ~]# firewall-cmd --add-service=nfs --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --add-service=mountd --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --add-service=rpc-bind --permanent --zone=public
success
[root@nfs_server ~]# firewall-cmd --reload 重新载入配置,使其生效
2.授权共享文件夹的权限
定位到共享的文件夹,执行如下命令
[root@localhost 2018]# chmod 777 fs1
3.把selinux设置为许可模式(或者关闭)
sudo setenforce 0
4.安装NFS所需文件包
在文件共享的的服务器安装NFS文件包,本例文件共享主机为:10.18.33.90
yum install -y nfs-utils
5.编辑exports文件增加文件共享信息
vim /etc/exports
编辑内容如下:
/var/local/dcm4chee-arc/wildfly/data/fs1/ 10.18.33.204(rw,sync,fsid=0)
前面空格前为共享的路径,后面IP为共享的主机
rw表示可读写,ro只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :客户机用root访问该共享文件夹时,不映射root用户,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;
root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
fsid=0表示将/home/nfs整个目录包装成根目录,insecure 允许从这台机器过来的非授权访问
6.增加开机自启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
7.开启rpcbind和nfs服务
systemctl start rpcbind.service
systemctl start nfs-server.service
确认NFS服务已经启动
rpcinfo -p
返回信息:
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 30385 status
100024 1 tcp 13017 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 36204 nlockmgr
100021 3 udp 36204 nlockmgr
100021 4 udp 36204 nlockmgr
100021 1 tcp 31613 nlockmgr
100021 3 tcp 31613 nlockmgr
100021 4 tcp 31613 nlockmgr
三、 在客户机上安装访问client端服务
1.查看共享的nfs信息
本机IP为:10.18.33.204
[root@localhost 2018]# showmount -e 10.18.33.90
Export list for 10.18.33.90:
/var/local/dcm4chee-arc/wildfly/data/fs1 10.18.33.204
2.安装client服务
yum install -y nfs-utils
systemctl enable rpcbind.service
systemctl start rpcbind.service
3.在客户机上新建一个目录,用于挂载到共享主机的共享目录上
新建一个根目录 data
mkdir /data
挂载data目录到共享目录:
mount -t nfs -o nosuid,noexec,nodev,rw 10.18.33.90:/var/local/dcm4chee-arc/wildfly/data/fs1/ /data
特殊挂载方式,应对网络不稳定情况
mount -t nfs -o nosuid,noexec,nodev,rw -o bg,soft,rsize=32768,wsize=32768 10.18.33.90:/var/local/dcm4chee-arc/wildfly/data/fs1/ /data
开机自动挂载
编辑 /etc/fstab
10.18.33.90:/var/local/dcm4chee-arc/wildfly/data/fs1/ /data nfs defaults 0 0
保存,或者编辑/etc/rc.d/rc.local 增加如下内容:
mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 10.18.33.90:/var/local/dcm4chee-arc/wildfly/data/fs1/ /data
挂载完成就可以访问了!
4.卸载目录
通过如下命令来卸载目录:
umount /data