Linux网络存储:NFS

NSF 笔记:

NFS是通过网络来进行服务器和客户端之间的数据传输的,我们大家都知道,要想通过网络进行传输,必须得知道是通过哪一个端口进行传输的!

NFS服务器对于端口的选择是随机的,那么问题在于,服务器端随机选择的端口,客户端如何才能知道呢?


这就有了第三方的管理:
NFS服务器端,通过RPC(remote procedure call:远程过程调用)来实现,RPC统一管理NFS的端口

RPC统一对外端口是111,使用NFS的时候,必须先启动RPC,再启动NFS,这样NFS才能到RPC去注册端口信息,然后客户端向服务器的RPC请求服务器的NFS端口信息,这样就能够传输数据了。

实现过程:
1) 服务器端启动RPC服务,对外开放端口111

2) 启动NFS服务,向RPC注册端口。

3) 客户端启动RPC,向服务器端RPC请求服务器的NFS端口

4) 服务器端RPC服务反馈NFS端口给客户端

5) 客户端获取NFS端口,建立和服务器端的连接,进行数据传输!

Ubuntu环境下:
① 安装必要软件
sudo apt-get install nfs-kernel-server           centos下执行:yum install -y nfs-utils
上述命令,apt会自动安装nfs-common、rpcbind等13个安装包

② 编写配置文件
#配置文件在 /etc/exports 
sudo vim /etc/exports
#最后一行添加配置:共享目录  可连接的客户端网段ip(指定网段:192.168.0.0/16或者完全开放: *)
/home/dong/embeded_study 192.168.7.2(rw,sync,no_root_squash,no_subtree_check)

配置说明:
/home/dong/embeded_study:NFS服务器端的目录,用于共享
192.168.7.2:允许的IP访问,也可以使用 * ,允许所有网段
rw:挂接此目录的客户端对该共享目录的读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限
no_subtree_check:不检查父目录的权限

③ 更新exports文件
sudo exportfs -arv
-a:全部mount或umount文件/etc/exports中的内容。
-r:重新mount文件/etc/exports中的共享内容。
-u:umount目录。
-v:在exportfs的时候,将详细的信息输出到屏幕上。

④ 启动nfs服务
sudo /etc/init.d/rpcbind start                  #先启动rpcbind 
sudo /etc/init.d/nfs-kernel-server start        #再启动nfs

systemctl start rpcbind
systemctl start nfs-kernel-server
systemctl enable rpcbind
systemctl enable nfs-kernel-server

centos下执行:

systemctl start rpcbind
systemctl start nfs-server
systemctl enable rpcbind
systemctl enable nfs-server
一定得先启动rpcbind

⑤ 其他命令
#显示已经mount到本机nfs目录的客户端机器。
sudo showmount -e localhost

#将配置文件中的目录全部重新export一次!无需重启服务。
sudo exportfs -rv

#查看NFS的运行状态
sudo nfsstat

#查看rpc执行信息,可以用于检测rpc运行情况
sudo rpcinfo

#查看网络端口,NFS默认是使用111端口。
sudo netstat -tu -4


客户端使用:
① 安装工具
sudo apt install nfs-common
上述命令,apt会自动安装nfs-common、rpcbind等12个安装包

② 查看共享目录
#显示指定的(ip_localname)NFS服务器上export出来的目录
#ip_localname为服务端主机名或IP地址
sudo showmount -e ip_localname
#这一步,如果有问题,需要进行排查
#可能遇到timeout、unable to send等相关问题,排查服务器rpcbind、nfs启动顺序,客户端的ip地址是否设置正确,以及服务器端的/etc/hosts中,ip和计算机名是否匹配等等


③ 创建挂载目录
通过上一个showmount命令,可以查询到服务器端共享的文件
接下来就是挂载到客户端了!
#创建一个目录,用于挂载
sudo mkdir -p ./share_dir


④ 挂载
#将NFS服务器IP上的目录,挂载到本地的/data/use/目录下
mount -t nfs ip_localname:/data/use /data/use


⑤ 查询挂载情况
#完成挂载后,可以查询挂载情况
df -h


⑥ 自动挂载设置
vim /etc/fstab
ip_localname:/data/freeswitch /data/freeswitch nfs defaults 0 0


⑥ 参数列表
NFS常用参数
ro——只读访问
rw——读写访问
sync——所有数据在请求时写入共享
async——nfs在写入数据前可以响应请求
secure——nfs通过1024以下的安全TCP/IP端口发送
insecure——nfs通过1024以上的端口发送
wdelay——如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay——如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置
hide——在nfs共享目录中不共享其子目录
no_hide——共享nfs目录的子目录
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
anongid=xxx——指定nfs服务器/etc/passwd文件中匿名用户的GID

Linux系统中通过service管理的,需要在/etc/init.d/目录下创建启动程序
启动
service rpcbind start
开机启动
chkconfig rpcbind on

通过systemctl管理的,需要在/lib/systemd/system/配置相应的service
启动
systemctl start rpcbind
开机启动
systemctl enable rpcbind


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/97578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第四十六天 | 518. 零钱兑换 II、377. 组合总和 Ⅳ

518. 零钱兑换 II 视频讲解:动态规划之完全背包,装满背包有多少种方法?组合与排列有讲究!| LeetCode:518.零钱兑换II_哔哩哔哩_bilibili 代码随想录 (1)代码 377. 组合总和 Ⅳ 视频讲解&…

JOSEF约瑟 闭锁继电器 LB-7 YDB-100 100V 50HZ 控制断路器的合闸或跳闸

闭锁继电器LB-7导轨安装名称:闭锁继电器型号:LB-7闭锁继电器额定电压100V功率消耗≤10VA触点容量220V1.5A40W返回系数≥0.8 LB-1A、LB-1D、DB-1、HBYB-102/D YDB-100、HLO、DB-100、LB-7型闭锁继电器 一、用途 LB-7型闭锁继电器(以下简称继电器)用于发电厂及变电所内高压母线…

MySQL报错:Row size too large (> 8126)

问题描述 1118 - Row size too large ( 8126). Changing some columns to TEXT or BLOB or using ROW_FORMATDYNAMIC or ROW_FORMATCOMPRESSED may help. ln current row format, BLOB prefix of 768 bytes is stored inline. 问题分析 InnoDB引擎建表时,如果最大行…

git stash

git stash 是 Git 中一个非常有用的命令,用于临时保存当前工作目录中的修改,以便你可以切换到其他分支或处理其他任务而不丢失你的修改。它的主要用途是: 保存未提交的修改:你可以使用 git stash 命令将未提交的修改(包…

【计算机网络】网络编程接口 Socket API 解读(9)

Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解 socket 编程。…

Electron笔记

基础环境搭建 官网:https://www.electronjs.org/zh/ 这一套笔记根据这套视频而写的 创建项目 方式一: 官网点击GitHub往下拉找到快速入门就能看到下面这几个命令了 git clone https://github.com/electron/electron-quick-start //克隆项目 cd electron-quick-start //…

提取歌曲伴奏?用对软件一键帮你搞定~

相信大家经常想获取某首歌曲的伴奏,但是不知从何下手,今天这篇教程给大家分享一个超神奇软件,一键提取歌曲伴奏! 第一步:打开【音分轨】APP,进入首页点击【人声分离】 第二步:选择导入方式&…

Java小技能:利用反射获取整个项目的枚举字典

文章目录 前言I JAVA反射获取所有枚举类1.1 遍历特定目录1.2 todosee also流水线docker 部署前言 需求:提供一个接口返回项目的所有枚举,提供给前端使用。 I JAVA反射获取所有枚举类 1.1 遍历特定目录 遍历特定目录的枚举,返回给前端使用 @GetMapping("findAnyEnum…

SpringBoot 中使用JPA

最近忙里偷闲,想写一点关于JPA的东西,另外也加深下对JPA的理解,才有了此篇博文。 一、JPA JPA (Java Persistence API)Java持久化API,是一套Sun公司Java官方制定的ORM 规范(sun公司并没有实现…

建议收藏!混迹职场多年总结出的8大技巧!

1. 不要吃“哑巴”亏:不管在什么企业,一定要“会说话”,敢于表达自己,但是又兼顾身边人的感受,考虑好自己的言行将会带来的后果。良好的沟通技巧对于在职场中建立良好的人际关系和解决问题至关重要。学会倾听、表达和理…

C/C++ 排序算法总结

1.冒泡排序 https://blog.csdn.net/weixin_49303682/article/details/119365319 1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7 for(int i 0; i < N; i)8 {9 printf("%d ", a[i]); 10 } 11 printf("…

为什么mac上有的软件删除不掉?

对于Mac用户来说&#xff0c;软件卸载通常是一个相对简单的过程。然而&#xff0c;有时你可能会发现某些软件似乎“顽固不化”&#xff0c;即使按照常规方式尝试卸载&#xff0c;也依然存在于你的电脑上。这到底是为什么呢&#xff1f;本文将探讨这一问题的可能原因。 1.卸载失…

C#制做一个 winform下的表情选择窗口

能力有限&#xff0c;别人可能都是通过其他方式实现的&#xff0c;我这里简单粗暴一些&#xff0c;直接通过点击按钮后弹出个新窗体来实现。 1、先在form1上增加一个toolstrip控件&#xff0c;再增加个toolstripbutton按钮&#xff0c;用来点击后弹出新窗体&#xff0c;如图&a…

【uniapp】小程序开发5:获取openid、获取手机号

一、获取小程序openid 需要配合后端接口获取授权码&#xff08;code&#xff09; 1&#xff09;调用uni.login()方法获取授权code&#xff0c;并把code传给getOpenid //使用uni.login的时候可以在任何接口下使用即可&#xff0c;主要看打印出来的code值和openid let that t…

智能井盖传感器:城市安全卫士

随着城市人口的不断增加和城市基础设施的不断发展&#xff0c;井盖作为城市道路和排水系统的重要组成部分&#xff0c;承担着确保城市安全和便利性的关键角色。然而&#xff0c;井盖在日常使用中常常面临倾斜、水浸和翻转等问题&#xff0c;这些问题可能导致交通阻塞、行人坠井…

小谈设计模式(20)—组合模式

小谈设计模式&#xff08;20&#xff09;—组合模式 专栏介绍专栏地址专栏介绍 组合模式对象类型叶节点组合节点 核心思想应用场景123 结构图结构图分析 Java语言实现首先&#xff0c;我们需要定义一个抽象的组件类 Component&#xff0c;它包含了组合节点和叶节点的公共操作&a…

Windows配置ADB工具

一、目的 在进行嵌入式开发时&#xff0c;我们经常使用ADB工具登录到开发板上进行命令操作&#xff0c;本篇我们介绍如何在windows平台配置ADB环境。 二、实战 1.下载adb工具包​​​​​​​https://developer.android.com/studio/releases/platform-tools?hlzh-cnhttps://d…

任务工单发送失败重试方案设计

需求背景&#xff1a; 该系统为一个工单系统&#xff0c;其中任务工单为该系统中的一个模块&#xff1b;任务工单它是需要周期性调度的一种任务类型&#xff1b;可以按照用户配置的时间周期定时性触发的。由于任务需要发送到对应的工作人员上&#xff0c;所以这里需要先对员工进…

DM宣传单制作,利用在线模板,快速替换文字

如果你需要制作一批宣传单&#xff0c;但是时间很紧&#xff0c;而且没有专业的设计人员协助&#xff0c;那么你可以选择使用在线模板来快速制作宣传单。本文将介绍如何使用乔拓云平台&#xff0c;快速制作宣传单的方法。 步骤一&#xff1a;选择适合的在线制作工具 首先&…

Leetcode hot 100之前缀和、差分数组、位运算

目录 差分数组-区间增减 和为K的子数组&#xff1a;前缀和 哈希表优化 除自身以外数组的乘积&#xff1a;前后缀区间 位运算 异或&#xff1a;同为0&#xff0c;不同为1 136. 只出现一次的数字&#xff1a;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现2次…