您现在的位置是:首页 > 正文

NFS文件共享服务搭建步骤说明

2024-04-01 05:41:51阅读 2

一、NFS概述

NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。

NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。

二、实验步骤

  1. 服务端安装nfs和rpcbind软件

1) rpm -q rpcbind nfs-utils #查询是否安装
2) yum install -y nfs-utils rpcbind #安装nfs和rpc的软件包
  1. 设置共享目录

NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。

在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。

例如,将文件夹/opt/web 共享给 192.168.109.0/24网段使用,允许读写操作,配置如下:

1) mkdir /nfs/web #创建共享文件夹;
2) vim /etc/exports #进入exports文件添加如下配置:
   /nfs/web 172.11.12.135(rw,sync,no_root_squash);
3) sudo exportfs -rv #配置后进行刷新,无需重启
  • 常用选项:

  1. rw 表示允许读写

  1. ro 表示为只读

  1. sync 表示同步写入到内存与硬盘中

  1. no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限

  1. root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

  • 其它常用选项:

all_squash 所有访问用户都映射为匿名用户或用户组

async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据

subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限

no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

举例:

其中客户机地址可以是主机名 ID 地址、网段地址,允许使用 “*” “?” 通配符;权限选项中的 rw 表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将为 nfsnobody 用户降权对待)。

当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。

例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。

vim /etc/exports#进入文件配置如下

/var/ftp/public 192.168.109.11(ro) 192.168.109.12(rw)

sudo exportfs -rv #配置后进行刷新,无需重启

  1. 启动NFS服务

1)systemctl start nfs      #开启nfs服务
2)systemctl start rpcbind   #开启rpcbind服务
3)systemctl enable nfs     #开机自启nfs服务
4)systemctl enable rpcbind   #开机自启rpcbind服务
  1. 客户机如上进行安装并设置挂载路径,访问NFS 共享资源

(1) yum install -y nfs-utils rpcbind
(2) 如步骤3进行启动
(3) vim /etc/exports #进入exports文件添加如下配置:
    /nfs/web 172.31.185.17(rw,sync,no_root_squash);
(4) sudo exportfs -rv #配置后进行刷新,无需重启
(5) showmount -e 172.31.184.240   #客户端验证共享
(6) mount -t nfs 172.31.184.240:/nfs/web   /nfs/web  #将服务端共享目录挂载当前客户端目录,客户端文件将     消失不见
(7) mkdir /nfs/web/file #在客户端/nfs/web2目录下创建file文件夹,则在服务端的/nfs/web目录下会有file文件     夹,相反亦然;
(8) umount /nfs/web #取消挂载,还原为原来的文件目录
  1. 代码上传与下载

常规方式上传至nfs客户端或服务端其中一端挂载的目录下,两端即可进行共享

网站文章

  • 最后一战(LastBattle)服务器源码分析8.1——定时器

    定时器: 目前主流的定时器实现包括时间轮和最小堆,最后一战是用最小堆(优先队列)实现的定时器,下面先分析下其具体实现: typedef std::function HeartbeatCallback; typedef int64_t TimeKey; class CBattleTimer { public: CBattle...

    2024-04-01 05:41:11
  • 一年工作回顾及总结

    看到别人的工作总结,不错,分享下。 一年回顾: 去年7月4号入职到现在已经有一年零2个月了,一直想写下一年工作回顾及总结,但是每次打开文档时总是以各种理由推后,一来是想写的太多但是又不知从哪里写起,二来是总想把自己的一年工作经历写的真实好看一点,以至于推到现在才写这个总结及回顾,昨天一个大学玩的比较好的同学跟我讲起了他的创业,我也趁今天好好回顾总结下过去的一年,想到哪就写到哪吧。

    2024-04-01 05:41:05
  • 如何配置Apple推送证书 push证书

    如何配置Apple推送证书 push证书

    作证书,然后使用Apple的推送功能配置push证书,就可以得到了。PS:push没有描述文件,所以不。推送证书是用来配置在网站上推送的,放服务器的。不是用来打包编译app的。PS:开启推送后要重。3...

    2024-04-01 05:40:59
  • C++顺序容器

    C++顺序容器

    标准库定义了三个顺序容器适配器:stack(栈适配器),queue(队列适配器),priority_queue(优先队列),所有的适配器都要求容器具有添加,删除,以及访问尾元素的能力。传递给assig...

    2024-04-01 05:40:52
  • python中xlrd读取xlsx读取异常的处理方法

    python中xlrd读取xlsx读取异常的处理方法

    最近在写自动化测试工具的时候搭建了一个虚拟环境,在新下载的xlrd的版本过高导致已经不支持xlsx的文件读取报错误异常为in open_workbook raise XLRDError(FILE_FO...

    2024-04-01 05:40:07
  • 【密码学RSA】共模攻击+维纳攻击+进制转换的低指数广播攻击+dp,dq已知+n为p的r次方的脚本

    【密码学RSA】共模攻击+维纳攻击+进制转换的低指数广播攻击+dp,dq已知+n为p的r次方的脚本

    1.共模攻击: import gmpy2 from Crypto.Util.number import * def Commodulus(e1, e2, n, c1, c2): g, s, t = g...

    2024-04-01 05:40:00
  • Python 一键创建依赖包和一键安装依赖包

    使用 pip创建依赖包requirements.txt 用来记录项目所有的依赖包和版本号,只需要一个简单的 pip 命令就能完成。记住在你代码文件夹下创建你这些代码所需要的依赖包pip freeze ...

    2024-04-01 05:39:54
  • 原来一直以为i686是64位的

    在yum上找32位的i386找不到,看到i686以为是64位呢,原来它也是32位啊i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.备注:1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4...

    2024-04-01 05:39:14
  • ORA-00001: 违反唯一约束条件 的解决办法 热门推荐

    ORA-00001: 违反唯一约束条件 的解决办法 热门推荐

    最近在做项目是测试的时候出现了这种错误:ORA-00001: 违反唯一约束条件 其实说白了这种错误就是 数据库的ID值,小于他的next number 由于表的ID是唯一的,所以用 select max(id) from test 查的该ID大于Sequences里面的开始ID,所以出现了该情况 为此,我们只要更改Sequences里面的”开始于“的 ID 大于 max(ID) 即可。问题...

    2024-04-01 05:39:05
  • web考核题

    web考核题

    先根据顺序输出1、4,然后new promise是一个同步操作,然后输出里面的5,然后将then里面的内容放在异步栈中,最后输出7,在同步任务进行完后,开始进行异步操作,而异步操作分为微任务和宏任务,...

    2024-04-01 05:38:58