NFS介绍和原理
NFS 是Network File System的缩写,即网络文件系统。是一种使用于分散式文件系统的协定,功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在类Unix系统上实现文件共享的一种方法。
NFS使用RPC,即远程过程调用 (Remote ProcedureCall) ,它能使客户端执行其他系统中的程序。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些依赖RPC的传输协议。可以简单理解RPC和NFS的关系:NFS是一个文件系统,而RPC负责信息的传输。
详细配置
1. 前期配置
关闭服务端和客户端的防火墙和selinux,这里的服务端指需要共享出去的存储服务器。以下所有命令是在Linux 7环境下
1.1 关闭防火墙
systemctl stop firewalld (systemctl disable firewalld,关闭开机启动)
1.2 把selinux设置为许可模式(或者关闭)
临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot
2.服务端配置
2.1 安装需要的软件包(使用yum)
yum install -y rpc-bind nfs-utils
2.2 创建想要共享的文件夹,例如 /datas
mkdir /nfs_dir
2.3 把共享目录的权限设定为所有用户都可读可写权限
chmod -R 777 /nfs_dir
2.4 修改NFS服务的主配置文件 /etc/exports
vim /etc/exports
#添加如下规则
/nfs_dir *(rw,sync)
规则说明:/nfs_dir代表共享的文件,*代表所有主机都可以访问,rw指读和写的权限,sync表明使用同步方式。
其他更为精确的可选配置如下:
2.5 开启NFS服务
systemctl start nfs
至此服务端的nfs配置完毕。
Ps:如果想共享服务器的某个硬盘,只需要将/datas目录使用mount命令挂载到该硬盘即可。
查看硬盘和挂载情况的命令为:
df -h
例如将硬盘设备/dev/sdd 挂载到/datas
mount /dev/sdc1 /nfs_dir
接下来配置客户端
3.客户端配置
3.1 关闭防火墙和selinux
同上
3.2 安装NFS
同上
3.3 将服务端的共享目录挂载到本机的 /nfs-dir目录上。
mount -t nfs 192.168.235.77:/nfs_dir /nfs_dir
至此,客户端配置完毕,访问/nfs_dir目录就相当于访问服务端的/nfs_dir目录
ps:以上配置重启机器后会出问题,建议设置开机启动执行。