NFS, linux系统间文件共享

Posted supingemail

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS, linux系统间文件共享相关的知识,希望对你有一定的参考价值。

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受。

目录

一、介绍

 二、测试环境

三、在线安装

四、服务端离线安装

五、客户端端离线安装

六、注意事项


一、介绍

 NFS为 Network FileSystem 的简称,它的目的就是想让不同的机器、不同的操作系统可以
彼此分享个别的档案啦!目前在 linux 当中用来做为文件服务器是相当不错的一个方案喔!
基本上, linux  主机连接到另一部 linux  主机来分享彼此的档案时,使用 NFS 要比 SAMBA
 这个服务器快速且方便的多了!NFS用来实现文件的共享操作,其实还是一个不错的选择。她可以实现linux 和 linux ,linux 和windows 之间的文件共享。

NFS 在文件传送或信息传送过程中依赖于 RPC(Remote Procedure Call) 协议,即远程过程调用, NFS 的各项功能都必须要向 RPC 来注册,如此一来 RPC 才能了解 NFS 这个服务的各项功能 Port、PID、NFS 在服务器所监听的 IP 等,而客户端才能够透过 RPC 的询问找到正确对应的端口,所以,NFS 必须要有 RPC 存在时才能成功的提供服务,简单的理解二者关系:NFS是 一个文件存储系统,而 RPC 是负责信息的传输。

 二、测试环境

两台服务器需要共享文件夹
服务端:10.110.110.110
客户端:10.119.119.119

注释: 为了安装的顺利,最好是关闭客户端和服务端的防火墙。生产上时,需要谨慎操作

三、在线安装

1. 服务端安装

# 服务端 10.110.110.110 执行
$ yum install -y nfs-utils rpcbind

2.# 客户端 10.119.119.119 执行
$ yum install -y nfs-utils

3.启动nfs和相关软件

# nfs 启动
#为rpcbind和nfs做开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service

#启动相关软件
systemctl start rpcbind.service
systemctl start nfs-server.service

4.服务端设置共享文件夹

# 编辑配置文件
vi /etc/exports

# 修改配置文件,增加下面这一行数据,指定的ip地址为客户端的地址
/home/files/nfs_share 10.119.119.119(rw,no_root_squash,no_all_squash,sync)

# 加载配置文件,在相关软件启动后执行
exportfs -arv

5.客户端文件挂载

# 接下来我想要将远程主机的/home/files/nfs_share  挂载到本地端主机的 /home/files/nfs_share ,在本地端主机先建立一个挂载点目录,然后就可以用 mount 这个指令直接挂载 NFS 的文件系统
[root@localhost home]# mkdir /home/files/nfs_share
[root@localhost home]# mount -t nfs 10.110.110.110:/home/files/nfs_share  /home/files/nfs_share 

四、服务端离线安装

#nfs 安装
cd /opt/software/nfs

#下载所需的rpm包,下载命令是:
yum -y install nfs-utils --downloadonly --downloaddir /opt/software/nfs

# 安装nfs
rpm -ivh *.rpm --force --nodeps

# 创建共享文件夹
mkdir -p /home/files/nfs_share
# nfs 配置
# 编辑配置文件
vi /etc/exports

# 修改配置文件,增加下面这一行数据,指定的ip地址为客户端的地址
/home/files/nfs_share 10.119.119.119(rw,no_root_squash,no_all_squash,sync)

# 加载配置文件,在相关软件启动后执行
exportfs -arv

# nfs 启动
#为rpcbind和nfs做开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service

#启动相关软件
systemctl start rpcbind.service
systemctl start nfs-server.service

五、客户端端离线安装

#nfs 安装
cd /opt/software/nfs

# 安装nfs
rpm -ivh *.rpm --force --nodeps

# 创建共享文件夹
mkdir -p /home/files/nfs_share

# nfs 启动
# 为rpcbind和nfs做开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service

#启动相关软件
systemctl start rpcbind.service
systemctl start nfs-server.service

# 在你的 NFS 服务器设定妥当之后,利用 showmount 这个指令来查阅!
[root@localhost home]# showmount -e 10.110.110.110
Export list for 10.110.110.110:
/home/files/nfs_share 10.119.119.119

#如果报:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host),可能防火墙没关

# 关闭防火墙
[root@localhost bw]# systemctl stop firewalld.service #关闭防火墙
[root@localhost bw]# systemctl disable firewalld.service #开机禁止启动防火墙

#关闭selinux
[root@localhost bw]# vim /etc/selinux/config
SELINUX=disabled  #永久关闭selinux
SELINUXTYPE=targeted
[root@localhost bw]#setenforce 0  临时关闭
[root@localhost bw]#getenforce  结果为Disabled 为关闭 检查selinux是否关闭

# 接下来我想要将远程主机的/home/files/nfs_share  挂载到本地端主机的 /home/files/nfs_share ,在本地端主机先建立一个挂载点目录,然后就可以用 mount 这个指令直接挂载 NFS 的文件系统
[root@localhost home]# mkdir /home/files/nfs_share
[root@localhost home]# mount -t nfs 10.110.110.110:/home/files/nfs_share /home/files/nfs_share

#查看挂载情况,可以使用这个命令df -TH
[root@10 ~]# df -TH
[root@localhost home]# df -TH
文件系统                             类型      容量  已用  可用 已用% 挂载点
devtmpfs                             devtmpfs  2.0G     0  2.0G    0% /dev
tmpfs                                tmpfs     2.0G   91k  2.0G    1% /dev/shm
tmpfs                                tmpfs     2.0G   18M  2.0G    1% /run
tmpfs                                tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1                            xfs       1.1G  181M  883M   18% /boot
tmpfs                                tmpfs     396M   17k  396M    1% /run/user/0
10.110.110.110:/home/files/nfs_share nfs4       86G  6.0G   80G    7% home/files/nfs_share
[root@localhost home]# 

# 也可以使用下面的命令: mount | grep nfs 去检查

六、注意事项

1. 在测试环境下,可以关闭防火墙来测试,一旦在生成环境,还是要谨慎操作,最好不要关闭防火墙,放开nfs的相关端口即可。

如果不关闭防火墙,报错:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

可参考:https://blog.csdn.net/weixin_30270889/article/details/97045168 解决

2.注意共享文件的设置,不管是在离线安装还是在线安装中,都要将两边的文件设置好,最好两边的文件夹一模一样(理想状态),保证文件的映射关系。

3.注意文件夹的读写权限,如果没有给到位权限,那么在文件获取的时候,也是不可能完成的。测试环境可以使用如:chmod  -R 777 /home/files/nfs_share 这样最强权限,生成谨慎。

建议:

        还是离线安装比较妥当,这样能知道每一步都是怎么进行的。

参考:

https://blog.csdn.net/aixiaoyang168/article/details/83782336

https://www.cnblogs.com/daofaziran/p/14652802.html

想要了解更多,关注:码出精彩(codingba),有收集的相关学习视频

以上是关于NFS, linux系统间文件共享的主要内容,如果未能解决你的问题,请参考以下文章

NFS, linux系统间文件共享

传输文件

Linux系统搭建NFS并共享给AIX

Linux系统搭建NFS并共享给AIX

Linux运维之NFS网络文件系统功能介绍及应用场景

0基础linux运维教程 共享存储之nfs介绍