linux服务器磁盘挂载nfs

  • 一、需求背景
  • 二、使用nfs实现多服务器之间磁盘挂载
    • 1.nfs安装
    • 2.nfs使用
      • 2.1服务端配置
      • 2.2客户端配置
    • 3.nfs介绍
      • 3.1nfs是什么
      • 3.2nfs特点
      • 3.3共享时权限选项
      • 3.4其他常用命令
  • 三、实践中碰到的问题
    • 1.挂载时报错:mount.nfs: Stale file handle
    • 2.共享时报错:exportfs: does not support NFS export

一、需求背景

笔者项目中此前有这么个需求,需要支持文件进行预览,文件的存储位置都在后端服务器上,想要支持预览是比较困难的(若是在前端服务器上则比较方便),因为无法做到跨服务器之间的静态文件预览,然后解决这个问题的思路就设定在了将后端服务器的文件所在位置挂载到前端服务器上,然后再使用nginx的反向代理,将文件地址代理出去,这样就可以实现文件预览功能了。方案确定以后就是技术选型了,最后确定使用了nfs来解决服务器之间的磁盘挂载,当然不止nfs可以实现,其他也可以。这里对nfs的使用做一次总结。

二、使用nfs实现多服务器之间磁盘挂载

1.nfs安装

# ubuntu 安装nfs
sudo apt-get install -y nfs-kernel-server
# centos 安装nfs
sudo yum install nfs-utils rpcbind

2.nfs使用

nfs使用不难,只需要很少量的配置即可,下面来展示下这个配置

2.1服务端配置

服务端负责把文件共享出去,我们相当于把某个文件夹暴露给某个ip或者暴露在公网环境下。

# 先安装nfs
# 编辑服务端配置文件
vim /etc/exports
# 添加共享信息:将本地的/data目录共享给192.168.150.166,并让该ip拥有对该目录的rw权限
/data 192.168.150.166(rw)
# 重启nfs
systemctl restart  nfs-server.service
# rpc如果没有启动的话,这里启动下就行,启动过则无需重启
systemctl start rpcbind.service
# 重载 /etc/exports
exportfs -rv

2.2客户端配置

客户端负责将本地的某个文件夹与服务端建立连接,这样就可以在本地操作远端服务器目录了。

# 先安装nfs
# 启动nfs
systemctl restart  nfs-server.service
systemctl restart rpcbind.service
# 与服务端建立连接:将本地的mnt挂载到 192.168.150.167:/data 目录下
mount  -t nfs 192.168.150.167:/data /mnt
# 查看挂载是否成功,挂载成功的话会能看到成功挂载的信息
df -h
# 客户端取消挂载:将本地的mnt挂载进行取消
umount /mnt

一个服务端是可以同时被n个客户端进行挂载的,所以服务端与客户端其实是1对n的关系。

3.nfs介绍

上面说了是啥,这里介绍下他的原理。原理都是网络上搜的,作为了解。

3.1nfs是什么

NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
NAS存储: NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。需要安装nfs-utils、 rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFS共享服务时,应该先启动rpcbind, 再启动nfs。
nfs端口:2049
RPC端口:111

3.2nfs特点

采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境

3.3共享时权限选项

常用的赋予权限类型,如下命令:

# 将本地的/data目录共享给192.168.150.166,该ip对于该目录及文件具有括号内的这些权限
/data 192.168.150.166(rw,sync,no_subtree_check,no_root_squash)

下面是权限的所有可选项:

ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID

3.4其他常用命令

# 服务端命令,查看服务端共享出去的文件信息
exportfs -v
# 服务端命令,重新加载配置文件,通常这么使用:exportfs -rv
exportfs -r

三、实践中碰到的问题

1.挂载时报错:mount.nfs: Stale file handle

这个报错笔者这里是因为之前客户端挂载过别的服务器,但是服务端直接将挂载取消了,这里再从客户端进行别的挂载就报了这个错误,只需要执行以下命令即可解决该问题

# /mnt是之前挂载的目录
umount -lf /mnt

2.共享时报错:exportfs: does not support NFS export

解决办法:查看文件类型:cat /etc/fstab,若文件类型不是ext4则无法正常共享,若本来就是挂载的文件夹也是无法共享的。

服务器(linux)磁盘挂载nfs相关推荐

  1. linux共享磁盘给指定ip,Linux 磁盘挂载和mount共享

    其中根据文章http://blog.163.com/luoxiaoyu1010@126/blog/static/16581022720108162830579/也配置 原文:http://blog.c ...

  2. [网络收集]LINUX磁盘挂载mount和共享

    本篇文章下载:地址1(图片拷上来不会直接上传,弄个地址以备以后参考) 针对Linux服务器的磁盘挂载mount和共享做简单操作说明: 1.  查看已使用的磁盘情况 df –h 2.  查看所有磁盘 f ...

  3. Linux磁盘挂载和共享

    挂载 1. 查看已使用的磁盘情况 df –h Linux 磁盘挂载和mount共享_共享目录 2. 查看所有磁盘 fdisk –l Linux 磁盘挂载和mount共享_文件系统_02 3. 查看指定 ...

  4. Windows/Linux客户端挂载NFS共享存储

    Windows/Linux客户端挂载NFS共享存储 1. Linux搭建NFS共享存储 1.1. NFS概述 1.2. 安装并配置NFS Server 1.3. 启动并验证NFS Server 2. ...

  5. Linux磁盘挂载和docker安装

    本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录. 最近新申 ...

  6. linux nfs挂载域名,Linux系统挂载NFS的方法

    NFS(网络文件系统),这是在 Linux 系统上常用的文件共享方式.也可以做为作为一个远程存储使用.下面是学习啦小编收集整理的Linux 系统挂载 NFS,希望对大家有帮助~~ Linux 系统挂载 ...

  7. cwntos新建目录挂载磁盘_详解Linux磁盘挂载、分区、扩容操作的实现方法

    概述 今天主要分享下关于Linux磁盘挂载.分区.扩容操作的实现方法,先介绍下基本概念 1.磁盘 在Linux系统中所有的设备都会以文件的形式存储.设备一般保存在/dev目录下面,以sda.sda1. ...

  8. linux连接宏杉存储,Linux客户端挂载NFS共享报“rpc.statd is not running”

    一.组网图 不涉及. 二.问题描述 Linux客户端挂载NFS共享报错,具体错误如下. mount.nfs: rpc.statd is not running but is required for ...

  9. linux磁盘挂载之fdisk

    linux磁盘挂载,使用fdisk命令 fdisk可以支持2T以下的分区的挂载,如果分区大于2T需要使用parted工具 磁盘情况查看 fdisk -l 可以看到有两块物理盘 名称 磁盘符号 磁盘大小 ...

最新文章

  1. 一个自带简易数据集的模拟线性分类器matlab代码——实验训练
  2. P4299 首都(LCT、重心)
  3. haut-1280 诡异的迷宫
  4. ide 两个模块的jdk版本不一样_Java平台模块系统(3)- JDK工具
  5. 下面对html描述正确的有多选题,YS - 《网页制作》复习题(多选题)
  6. bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: 的解决方法
  7. 【优化预测】基于matlab蝙蝠算法优化BP神经网络预测【含Matlab源码 1379期】
  8. 不存在_别傻了,根本就不存在缘分天定
  9. Internet Explorer 无法打开该 Internet 站点,请求的站点不可用或无法找到
  10. dnc开源梦之队2018 开源项目精选集
  11. linux 命令:du 详解
  12. Spectra Logic的数据备份和归档解决方案推动企业磁带销量增长
  13. Perforce使用中文教程: p4 client
  14. CHARINDEX函数
  15. Linux/Unix开发之make和makefile详解
  16. Jquery基础学习之-入门
  17. 手写单纯形法推导过程
  18. HTTP之原理,长短连接,响应码,三握四挥,八种方法
  19. shell脚本 -d 是目录文件,那么-e,-f等说明
  20. xlrd/xlwt读写excel文件

热门文章

  1. 更新iOS 15失败, iPhone变成白苹果怎么办呢?
  2. 微信小程序期末大作业-精品优购商城
  3. mysql 归档日志_归档日志管理
  4. AC日记——蓬莱山辉夜 codevs 2830
  5. android计算器功能实现,在android中利用 studio实现一个简单的计算器功能
  6. 宽带和流量是分开的吗_网速、流量、带宽、宽带是一样吗?有什么不同?
  7. 项目质量管理-质量控制工具技术:七种基本质量工具
  8. 短信系统WEB网页短信平台设计-移讯云短信系统
  9. java跳骚市场的代码,开源项目在闲鱼、b 站上被倒卖?这是什么骚操作?
  10. java计算机毕业设计校园跳蚤市场源码+系统+mysql数据库+lw文档