前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >统信服务器操作系统V20 1070e【NFS服务部署】

统信服务器操作系统V20 1070e【NFS服务部署】

作者头像
Kevin song
发布于 2024-07-04 03:25:55
发布于 2024-07-04 03:25:55
30600
代码可运行
举报
运行总次数:0
代码可运行

NFS

网络文件系统(Network File System)是一种分布式文件系统,通过网络共享远程目录。使用NFS可以在系统上挂载远程目录,并像对待本地文件一样使用远程计算机上的文件。默认情况下,NFS协议未加密,并且与Samba不同,它不提供用户身份验证。客户端的IP地址或主机名限制了对服务器的访问。

NFS在文件传送或信息传送过程中依赖于RPC协议,RPC远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制,NFS本身是没有提供信息传输的协议和功能的。

NFS、RPC介绍

NFS是一个文件系统,负责管理分享的目录;rpc负责文件的传递;nfs启动时至少有rpc.nfsd和rpc.mountd 2个daemon;rpc.nfsd主要是管理客户机登陆nfs服务器时,判断客户机是否能登陆,和客户机ID信息;rpc.mountd主要是管理nfs的文件系统。当客户机顺利登陆nfs服务器时,会去读/etc/exports文件中的配置,然后去对比客户机的权限;

协议使用端口

  • RPC:111 tcp/udp
  • nfsd:2049 tcp/udp
  • mountd:RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768--65535)来进行通讯 注意:在/etc/nfsmount.conf文件中可指定mountd的端口

操作系统信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]# cat /etc/os-release 
PRETTY_NAME="UOS Server 20"
NAME="UOS Server 20"
VERSION_ID="20"
VERSION="20"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="https://bbs.chinauos.com/"
VERSION_CODENAME=fuyu
PLATFORM_ID="platform:uel20"
[root@nfs-server ~]# uosinfo 
#################################################
Release:  UOS Server release 20 (fuyu)
Kernel :  5.10.0-74.uel20.x86_64
Build  :  UOS Server 20 (1070e) 20240423 amd64
#################################################

nfs-server 部署

安装 nfs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]# dnf  install  rpcbind nfs-utils

查看 nfs 版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]# rpm -qa | grep nfs-utils
nfs-utils-help-2.5.1-8.up3.uel20.05.x86_64
nfs-utils-idmap-2.5.1-8.up3.uel20.05.x86_64
nfs-utils-2.5.1-8.up3.uel20.05.x86_64

开启 nfs 服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]# systemctl   start rpcbind.service
[root@nfs-server ~]# systemctl   status  nfs

查看 nfs 支持的版本信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]#  cat   /proc/fs/nfsd/versions 
-2 +3 +4 +4.1 +4.2

创建 nfs 共享目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /nfs/{public,app}

NFS共享目录配置

vim /etc/exports

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/nfs/public 192.168.0.0/255.255.0.0(ro,sync,all_squash)
/nfs/app 192.168.0.0/255.255.0.0(rw,sync,all_squash)
  • /nfs/app 读写
  • /nfs/public 只读

/etc/exports 参数说明

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rw:可读写
ro: 只读
no_root_squash:对root用户不压制,如果客户端以root用户写入,在服务端都映射为服务端的root用户
root_squash:默认情况使用的是相反参数root_squash,如果客户端是用户root操作,会被压制成nobody用户
all_squash: 不管客户端的使用nfs的用户是谁,都会压制成nobody用户
insecure: 允许从客户端过来的非授权访问
sync: 数据同步写入到内存和硬盘
async: 数据先写入内存,不直接写入到硬盘
anonuid: 指定uid的值,此uid必须存在于/etc/passwd中
anongid: 指定gid的值

nfs 共享目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server nfs]# exportfs   -v
/nfs/public     192.168.0.0/255.255.0.0(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,all_squash)
/nfs/app        192.168.0.0/255.255.0.0(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,all_squash)
[root@nfs-server nfs]# exportfs   -rv
exporting 192.168.0.0/255.255.0.0:/nfs/app
exporting 192.168.0.0/255.255.0.0:/nfs/public

exportfs 参数

  • -r: Reexport all directories,表示重新导出所有目录
  • -v: verbose 输出详情

设置文件夹的权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server /]# chown -R  nobody:nobody /nfs/{public,app}

重启服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server /]# systemctl  restart  rpcbind.service 
[root@nfs-server /]# systemctl  restart   nfs

防火墙配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server /]# firewall-cmd   --add-service={nfs,mountd,rpc-bind} --permanent
[root@nfs-server /]# firewall-cmd  --reload

Linux 客户端

安装nfs客户端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server ~]# dnf install nfs-utils -y

Ubuntu系统下软件包名称为"nfs-common"

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apt install nfs-common -y

重启rpcbind服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# systemctl  restart  rpcbind.service

showmount 测试

使用showmount命令测试NFS服务器的输出目录状态,showmount命令的基本格式为:

showmount [选项] NFS服务器名称或地址

  • -a:显示指定的NFS服务器的所有客户端主机及其所连接的目录;
  • -d:显示指定的NFS服务器中已被客户端连接的所有输出目录;
  • -e:显示指定的NFS服务器上所有输出的共享目录。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# showmount  -e 192.168.190.82
Export list for 192.168.190.82:
/nfs/app    192.168.0.0/255.255.0.0
/nfs/public 192.168.0.0/255.255.0.0

mount 挂载

mount 服务器名或IP地址:输出目录 本地挂载目录

创建挂载目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir  -p /data/{app,public}
chmod -R 777 /data/{app,public}

挂载目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
读写目录
[root@localhost /]# mount -t nfs  192.168.190.82:/nfs/app  /data/app
只读目录
[root@localhost /]# mount -t nfs  192.168.190.82:/nfs/public  /data/public

挂载目录写入文件测试

umount 卸载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost /]# umount /data/public/

设置开机挂载

编辑/etc/fstab文件

vim /etc/fstab

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.190.82:/nfs/app /data/app       nfs     vers=4,nolock,proto=tcp,_netdev 0 0

检查fstab文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mount -a

fstab 参数介绍

参数

说明

192.168.190.82:/nfs/app

nfs 共享目录

/data/app

挂载目录

nfs

挂载类型

vers=4

挂载NFSv4文件系统

nolock

禁用nfs locking,不启用lock,默认选项包括文件锁

noacl

设置是否在挂载时使用NFSACL协议

proto=tcp

在不稳定的复杂网络环境中建议使用tcp参数,在稳定的网络下可以使用udp参数。NFSv3/NFSv4支持tcp/udp,NFSv2只支持udp。

rsize=1048576

定义数据块的大小,用于客户端与文件系统之间读取数据。建议值:1048576。

wsize=1048576

定义数据块的大小,用于客户端与文件系统之间写入数据。建议值:1048576。

hard

在文件存储NAS暂时不可用的情况下,使用文件系统上某个文件的本地应用程序时会停止并等待至该文件系统恢复在线状态。建议启用该参数。

timeo=600

指定时长,单位为0.1秒,即NFS客户端在重试向文件系统发送请求之前等待响应的时间。建议值:600(60秒)。

retrans=2

NFS客户端重试请求的次数。建议值:2。

_netdev

防止客户端在网络就绪之前开始挂载文件系统。

noresvport

在网络重连时使用新的TCP端口,保障在网络发生故障恢复时不会中断连接。建议启用该参数。

0

非零值表示文件系统应由dump备份。对于NAS,此值为0。

0

该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统,此值应为0,表示fsck 不应在启动时运行。

Windows 客户端

安装 NFS 客户端

windows mount 帮助

挂载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mount \\192.168.190.82\nfs\app x:

卸载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
umount x:

查看nfs目录

NFS 服务器 uid/gid 映射

在集群环境中,每台主机相同用户账号,但是分配的uid/gid是不同的。当多主机后端的存储为同一个共享存储,这时就会遇到一个问题,NFS协议是通过uid来控制文件读写权限的,主机中用户写入的文件uid与其他主机不同,就无法被其他主机读取或修改,出现权限错误的问题。

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd  -u 1234 -s /sbin/nologin  -M nfsuser
  • -u : 指定用户uid
  • -M: --no-create-home 不创建用户home目录
  • -s : --shell 指定用户的shell

修改用户id和组id

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
usermod  -u 1234 nfsuser
groupmod -g 1234 nfsuser

创建 nfs 共享目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /data/nfs
chown -R nfsuser:nfsuser /data/nfs

编辑 nfs 配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@nfs-server /]# vi /etc/exports
/data/nfs 192.168.0.0/255.225.0.0(rw,sync,all_squash,anonuid=1234,anongid=1234)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
找到了一本电子书 https://bookdown.org/hhwagner1/LandGenCourse_book/ 里面用到这篇文章的数据做了群体PCA,今天的推文我们试着重复一下这本电子书中的代码
用户7010445
2021/12/01
1.1K0
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
ggtree-给你的进化树盛世美颜
ggtree是ggplot2的拓展包,可以应用于进化树的绘制,还能对进化树丰富的注释分析。
作图丫
2022/03/29
12.3K0
ggtree-给你的进化树盛世美颜
目前最全的R语言-图片的组合与拼接
李誉辉,四川大学硕士在读,研究数据分析与可视化,以及网络爬虫。誉辉兄最近出的文章都是很系统的,从R ggplot2的基础讲解到三维数据可视化plot3D,文章都整理讲解得很全面系统,我本人也是很喜欢这样的文章,故而推荐给大家。
生信宝典
2019/09/29
5.6K0
目前最全的R语言-图片的组合与拼接
ggplot2优雅的绘制配对连线云雨图
❝本节来介绍如何使用ggplot2绘制配对连线云雨图,图形倒也简单主要是细节;小编给了两个案例来进行展示,有循环绘图需求的可以看最后一个案例;❞ 加载R包 library(tidyverse) library(ggsignif) library(gghalves) library(ggsci) 数据清洗 df <- read_tsv("data.xls") %>% filter(year %in% c(1957,2007),continent !="Oceania") %>% select(
R语言数据分析指南
2022/12/20
9700
ggplot2优雅的绘制配对连线云雨图
RNA-seq 详细教程:可视化(12)
当我们处理大量数据时,以图形方式显示该信息以获得更多信息,可能很有用。在本课中,我们将让您开始使用探索差异基因表达数据时常用的一些基本和更高级的图,但是,其中许多图也有助于可视化其他类型的数据。
数据科学工厂
2023/02/27
9820
RNA-seq 详细教程:可视化(12)
R tips:ggplot2进行多维原位图绘制
R中可以使用ggplot2的geom_tile图层绘制热图,可是有的时候我们想要每一个热图格子里面可以展示多维的信息:多个基因表达量、多个组别数据等等,而不是一个热图仅展示了一个表达量信息。本文可以解决这个需求。
生信菜鸟团
2025/01/07
1160
R tips:ggplot2进行多维原位图绘制
R:ggtext包丰富ggplot2中文本的表现力
ggtext让ggplot2图像也可以使用html、markdown及css语法,丰富了ggplot2文本的表现力。
生信菜鸟团
2020/12/03
1.8K0
R:ggtext包丰富ggplot2中文本的表现力
技术贴:R语言拼图全面介绍
说起R语言的拼图,可能大家一点都不陌生,比如常用的“cowplot”和“patchwork”。gridExtra包也提供了一个拼图函数”grid.arrange“。另外,南方医科大学余光创教授也开发了一个更为神奇的拼图R包:aplot。本文将依次对它们的用法进行介绍。
作图丫
2022/03/29
5.9K0
技术贴:R语言拼图全面介绍
119-R可视化37-利用循环实现ggplot批量作图并拼图
其实简单的R 拼图,我喜欢patchwork 的加减乘除。但这种4x4 布局的图片,对象又多,一个个创建不现实;代码写起来,也非常不优雅。
北野茶缸子
2022/04/05
6.4K0
119-R可视化37-利用循环实现ggplot批量作图并拼图
R tips:使用最近邻算法进行空间浸润带的计算
以10X的官方xenium示例数据为例https://www.10xgenomics.com/datasets/ffpe-human-breast-with-pre-designed-panel-1-standard。
生信菜鸟团
2025/02/18
1290
R tips:使用最近邻算法进行空间浸润带的计算
「R」cowplot(一)介绍
cowplot是ggplot2包的一个简单插件(或称拓展包),它的目的是为ggplot2提供一个出版级别的主题,使用少量代码即可实现主题统一的修改,如轴标签大小、画图背景。它主要的作用是可以给研究生和博士后更加容易的画图。
王诗翔呀
2020/07/06
2.4K0
「R」cowplot(一)介绍
数据可视化编程实战_大数据可视化
经常有对比R,Python和Julia之间的讨论,似乎R语言在这三者之中是最为逊色的,实则不可一概而论。
全栈程序员站长
2022/11/17
8.8K0
数据可视化编程实战_大数据可视化
R tips:进一步的debug并修复cnetplot绘图bug
在R升级到4.0+后,clusterProfiler的cnetplot会报如下的rescale错误,这个现象以及解决方法在以前的推文:R tips:debug并修复一个ggplot2绘图错误的例子中曾经说过。现在再提到一次,主要是对这个现象进一步的进行深入探讨,并给出一个更加优雅的解决办法。
生信菜鸟团
2022/05/24
3.3K0
R tips:进一步的debug并修复cnetplot绘图bug
独家 | 不同机器学习模型的决策边界(附代码)
本文利用Iris数据集训练了多组机器学习模型,并通过预测大量的拟合数据绘制出了每个模型的决策边界。
数据派THU
2020/04/14
1.9K0
独家 | 不同机器学习模型的决策边界(附代码)
生信技能树R语言学习直播配套笔记
1.1 判断数据类型class() 1.2 按Tab键自动补全1.3 数据类型的判断和转换 (1)is 族函数,判断,返回值为TRUE或FALSE
生信技能树
2022/06/08
1.2K0
生信技能树R语言学习直播配套笔记
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
在先前的内容里:[[66-R可视化10-自由的在ggplot上添加文本(柱状图加计数)]],我们提到过添加文本的方法。但是,对于散点图来说,我们需要找到的是一个坐标,而这个坐标,最好可以反映位置散点的中心或附近区域,对这个坐标进行标识。
北野茶缸子
2022/04/05
1.1K0
108-R可视化32-通过seurat包中的LabelClusters学习ggplot之一
R tips:使用glmnet进行正则化广义线性模型回归
线性模型的建模为了提高模型的泛化能力,一般会进行正则化处理,也就是在损失函数的构造上加上正则化项,如L1正则化项或者L2正则化项,L1正则化也就是常说的Lasso回归,将损失函数加上了L1范数,L2正则化就是Ridge回归,损失函数加上了L2范数。正则化项的大小是通过一个超参数(一般命名为lambda)控制,lambda越大则正则化项作用越强,拟合的模型系数会变小或变成0,这个超参数一般使用Cross-validation交叉验证来获取。
生信菜鸟团
2022/04/08
4.6K0
R tips:使用glmnet进行正则化广义线性模型回归
RNA-seq 详细教程:可视化(12)
当我们处理大量数据时,以图形方式显示该信息以获得更多信息,可能很有用。在本课中,我们将让您开始使用探索差异基因表达数据时常用的一些基本和更高级的图,但是,其中许多图也有助于可视化其他类型的数据。
数据科学工厂
2023/01/29
7400
r语言同时画两张图(如何用布局和视口出图)
par(mfrow=c(2,2)),可以理解将绘图区域分割为2×2的矩阵区域,另可参照《R语言实战》3.5图形的组合
全栈程序员站长
2022/07/31
2.5K0
r语言同时画两张图(如何用布局和视口出图)
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
1130
全网最全的R语言基础图形合集
推荐阅读
相关推荐
跟着Molecular Ecology学数据分析:使用R语言对群体SNP数据做主成分分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档