NFS网络文件系统

为什么要用NFS?

前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一放到后端的存储上。
共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据。

NFS工作原理

NFS功能,有很多服务,每个服务都有自己的端口,并且经常变换。
客户端查找这些端口,就需要一个中间人---RPC服务(默认端口号111)。
工作流程:
1.启动RPC服务
2.启动NFS服务(同时向RPC服务注册启动的端口)
3.客户端向RPC请求NFS服务
4.RPC返回端口到客户端
5.客户端用返回的端口地址向NFS请求传输数据。

一、服务器A下操作(IP地址:192.168.2.21)

1、查看NFS安装情况:

rpm -qa nfs-utils rpcbind


(没有的话,用yum install nfs-utils rpcbind -y安装)
2、启动RPC:

systemctl start rpcbind   (service rpcbind start) 

开机自启动:

systemctl enable rpcbind   (service rpcbind enable)

看看有没有注册的端口:

rpcinfo -p 127.0.0.1


3、启动NFS:

systemctl start nfs(十以上版本sudo service nfs-server start)或者(systemctl start nfs-server)

再看注册的端口:

rpcinfo -p 127.0.0.1

发现多了很多
 
4、配置nfs (NFS配置文件/etc/exports)
创建目录/it/it/a文件作为共享目录和共享文件

mkdir /it
touch /it/a


编辑文件

vim /etc/exports
/it 192.168.2.0/24(rw,sync)


5、重启NFS

systemctl reload nfs或者exportfs -r

{
若出现exportfs: /home requires fsid= for NFS export

解决方法:
/home 192.167.253.0/24(fsid=0,rw,sync) //加入fsid=0参数就可
}
nfs默认用户nfsnobody

grep nfsno /etc/passwd


没有的话,自己创建

groupadd -g -f 65534 nfsnobody
useradd nfsnobody -u 65534 -g nfsnobody -s /sbin/nologin -M

6、授权

chown -R nfsnobody.nfsnobody /it

7、检查自己

showmount -e 192.168.2.21  (exportfs)

8、服务器本地挂载:

mount -t nfs 192.168.2.21:/it /mnt

本地测试成功

二、客户端B下操作(IP地址:192.168.2.25)

1、查看NFS安装情况:

rpm -qa nfs-utils rpcbind

(安装nfs-utils的目的是为了获得showmount命令)
2、启动RPC:

systemctl start rpcbind

开机自启动:

systemctl enable rpcbind
netstat -lntup|grep 111

3、查看NFS服务器提供的共享目录

showmount -e 192.168.2.21

{
i、若出现clnt_create: RPC: Program not registered:程序没有注册

说明:RPC服务器开启了,但NFS没有告诉RPC开启的服务端口
重启nfs

systemctl start nfs(十以上版本sudo service nfs-server start)或者(systemctl start nfs-server)

检查:rpcinfo -p 127.0.0.1(出现很多表明可以了)

ii、若出现:

去服务端(192.168.2.21)关闭防火墙

systemctl stop firewalld

}
4、挂载测试(将192.168.2.21挂载到192.168.2.25下)

mount -t nfs 192.168.2.21:/it /mnt

若出现:
 
则需要关掉防火墙:service firewalld stop

挂载成功。

三、NFS客户端开机自启动挂载

方法一:/etc/rc.local

chmod +x /etc/rc.d/rc.local

vim /etc/rc.local
在底部加上
/bin/mount -t nfs 192.168.109.132:/it /mnt
(将192.168.109.132挂载到192.168.109.131下) 

然后reboot重启
查看是否成功

 
方法二:放入vim /etc/fstab(有坑)

192.168.109.132:/it   /mnt   nfs  defaults      0 0

开启延迟满足的服务remote-fs.target(centos7)   netfs(centos6) 

systemctl start remote-fs.target
systemctl enable remote-fs.target
systemctl status remote-fs.target

  

(Debian)统信uos的NFS只是安装包不同

服务器安装包:

apt-get install nfs-kernel-server

客户端安装包:

apt install -y nfs-common 
dpkg -l nfs-kernel-server查看包

NFS配置-实现多服务器共享目录的更多相关文章

  1. 关于iis站点无法读取 服务器共享目录的问题

    也是权限问题,具体解决方法如下: 1. 找到该站点所在的应用程序池>>高级设置>>进程模型>>设置标志账号,如下图所示 2. 设置账号之后,找到该共享目录>& ...

  2. 在Jenkins上配置批处理删除远程共享目录7天以上的文件

    net use * /del /yes NET USE X: \\10.29.48.12\shares\Test password /user:DOMAIN1\account set AutoPath ...

  3. Linux和Linux之间共享目录

    1.Linux 服务器端NFS服务器的配置 以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等. 执行如下命令编辑文件/etc/exports ...

  4. NFS配置与安装

    安装 1 环境描述:    * 网络环境:                  NFS server: 192.168.102.47                  NFS client: 192.1 ...

  5. 嵌入式Linux之NFS配置

    NFS(Network File System) 1.RPC和rpcbind RPC(Remote Procedure Call)即远程过程调用,是分布式应用的基础,即允许计算机远程调用网络上其他计算 ...

  6. C# 客户端读取共享目录文件

    控制台应用程序 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  7. CentOS5.x、CentOS6.x 使用NFS及mount实现两台服务器间目录共享

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : portmap:实现RPC(协议 ...

  8. windows server 2008 R2 部署NFS,实现多台服务器间、客户端间的共享目录。

    如何通过Windows Server 2008 R2建立NFS存储服务? 通过Windows Server 2008 R2,我们可以很容易地将其作为一台NFS存储服务器,得到一个NFS软存储,轻松解决 ...

  9. 客户端挂载NFS服务器中的共享目录(用户后台上传图片与前台上传图片放在同一个服务器上)

    服务器端使用showmount命令查询NFS的共享状态 # showmount -e //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错 # showmount -a //显示已经与客 ...

随机推荐

  1. Vulnhub-earth

    1.信息收集 1.1找到目标主机ip vulnhub靶场通用的技巧 这里我们靶场是nat模式的 所以肯定就是在我们自己设置的一个网段范围内,我这里nat本机的地址是10.1.1.1 所处的网段就是10 ...

  2. mysql Bad handshake

    由于 Java 程序访问 MySQL 时,MySQL 抛出 Bad handshake 错误,导致接口抛错,然后在 MySQL 配置文件新增 skip_ssl 配置(忽略 SSL 密钥和证书文件),重 ...

  3. Vagrant之CentOS

    Vagrant之CentOS Vagrant官网 https://www.vagrantup.com https://app.vagrantup.com/boxes/search https://ap ...

  4. MySQL基准测试工具

    一.基准测试 基准测试(benchmark)是针对系统设计的一种压力测试. 基准测试是简化了的压力测试. 1.1 常见指标 TPS QPS 响应时间 并发量 1.2 收集与分析数据脚本 收集数据的sh ...

  5. [codeforces] 暑期训练之打卡题(一)

    每个标题都做了题目原网址的超链接 Day1<Vanya and Lanterns> 题意: 一条长度为 l 的街道,在这条街道上放置了n个相同的灯,街道一端位置记为0,每个灯的位置在ai处 ...

  6. 当运行npm install 命令的时候带上ignore-scripts,会发生什么?

    摘要:运行npm install 命令的时候带上ignore-scripts, 可以避免一个恶意包里的病毒. 本文分享自华为云社区<运行npm install 命令的时候带上--ignore-s ...

  7. 基于.NetCore开发博客项目 StarBlog - (11) 实现访问统计

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  8. Linux Cgroup v1(中文翻译)(2):CPUSETS

    英文原文:https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cpusets.html Copyright (C) 2004 BU ...

  9. 为什么 SQL 语句使用了索引,但却还是慢查询?

    一.索引与慢查询 聊一聊索引和慢查询,经常遇到的一个问题:一个SQL语句使用了索引,为什么还是会记录到慢查询日志之中? 为了说明,创建一个表t,该表3个字段,一个主键索引,一个普通索引 CREATE ...

  10. 全新升级的AOP框架Dora.Interception[1]: 编程体验

    多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架.前几天利用Roslyn的Source Generator对自己为公司写的 ...