练习实践-基础设施-文件共享-linux间的文件共享-NFS服务搭建

news2025/1/12 18:07:06

参考来源:
nfs安装配置-Debian/Ubuntu
什么是NFS?NFS挂载
NFS详解(概念+实验演示)

快速回顾:

nfs服务器搭建:
 1>.服务器端:
	1)创建共享目录
	2)修改配置文件/etc/exports
	3)重启服务 nfs-server
2>.客户端
	1)挂载服务器共享目录 showmount -e

NFS服务的用途、场景,优缺点–pass

NFS服务的实践记录

服务端侧环境信息:(操作系统版本、软件版本、ip地址信息)

root@debian:/data/share/pv1# uname -a
Linux debian 5.10.0-32-amd64 #1 SMP Debian 5.10.223-1 (2024-08-10) x86_64 GNU/Linux
root@debian:/data/share/pv1# dpkg -l | grep nfs
ii  libnfs13:amd64                        4.0.0-1                          amd64        NFS client library (shared library)
ii  libnfsidmap2:amd64                    0.25-6                           amd64        NFS idmapping library
ii  nfs-common                            1:1.3.4-6                        amd64        NFS support files common to client and server
ii  nfs-kernel-server                     1:1.3.4-6                        amd64        support for NFS kernel server
root@debian:/data/share/pv1# dpkg -l | grep rpc
ii  libtirpc-common                       1.3.1-1+deb11u1                  all          transport-independent RPC library - common files
ii  libtirpc3:amd64                       1.3.1-1+deb11u1                  amd64        transport-independent RPC library
ii  rpcbind                               1.2.5-9                          amd64        converts RPC program numbers into universal addresses
root@debian:/data/share/pv1# ip a | grep 130
    inet 192.168.255.130/24 brd 192.168.255.255 scope global dynamic noprefixroute ens33

客户端侧环境信息:

[root@centos7 ~]# uname -a
Linux centos7 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
[root@centos7 ~]# ip a | grep 129
    inet 192.168.255.129/24 brd 192.168.255.255 scope global noprefixroute dynamic ens33
[root@centos7 ~]# 

服务端侧配置

安装软件包

# 安装 NFS服务器端
apt-get install -y nfs-kernel-server
# 验证
dpkg -l | grep nfs       # 查看是否安装成功
dpkg -l | grep rpcbind   # 安装nfs时,默认会安装NFS服务依赖:rpcbind

创建共享文件目录并赋予权限(其他人others)

# 创建共享目录
mkdir /data/share
# 赋予可读写执行权限
chmod 777 /data/share/
# 验证
ls -ldZ /data/share/

配置文件/etc/exports中添加共享目录的权限信息

root@debian:/home/a# echo "/data/share *(rw,sync,insecure,no_root_squash)" >> /etc/exports 
root@debian:/home/a# cat /etc/exports 
# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/data/share *(rw,sync,insecure,no_root_squash)

补充:配置文件中关键字的解释

rw              # 读写权限
sync            # 只读权限
root_squash	    # 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash	# 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash	    # 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync	        # 同时将数据写入到内存与硬盘中,保证不丢失数据。  同步,效率低,但可以保证数据的一致性;
async	        # 优先将数据保存到内存,必要时才写入磁盘,效率高,但有丢失数据的风险。 异步
/data/nfs *(rw,sync,no_root_squash)   # * 表示允许任何网段 IP 的系统访问该 NFS 目录

在这里插入图片描述

服务状态检查和共享文件状态检查;

服务状态检查

root@debian:/home/a# systemctl status nfs-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2024-08-14 13:04:59 CST; 53min ago
    Process: 2342 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 2343 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
   Main PID: 2343 (code=exited, status=0/SUCCESS)
        CPU: 5ms

814 13:04:58 debian systemd[1]: Starting NFS server and services...
814 13:04:58 debian exportfs[2342]: exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' s>
814 13:04:58 debian exportfs[2342]:   Assuming default behaviour ('no_subtree_check').
814 13:04:58 debian exportfs[2342]:   NOTE: this default has changed since nfs-utils version 1.0.x
814 13:04:59 debian systemd[1]: Finished NFS server and services.

nfs服务上共享文件状态检查

root@debian:/home/a# showmount -e
Export list for debian:
/data/share *

客户端侧配置

安装nfs客户端软件包,并开启服务

//查询是否安装nfs-utils和rpcbind,未装则安装

rpm -q nfs-utils|| yum -y install nfs-utils
rpm -q rpcbind || yum -y install rpcbind

[root@centos7 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.68.el7.2.x86_64
[root@centos7 ~]# rpm -q rpcbind
rpcbind-0.2.0-49.el7.x86_64

//启动rpcbind和nfs

systemctl start rpcbind
systemctl start nfs

检查服务端共享目录状态

//查看NFS服务端共享的目录情况,假设服务端IP为192.168.255.129
[root@centos7 ~]# showmount -e 192.168.255.130
Export list for 192.168.255.130:
/data/share *

创建挂载点,将nfs共享目录挂在到本地,通过df命令检查是否挂载成功

[root@centos7 ~]# mkdir /opt/share   #创建挂载点
[root@centos7 ~]# mount 192.168.255.130:/data/share/pv1 /opt/share/   
[root@centos7 ~]# df -h /opt/share/
文件系统                         容量  已用  可用 已用% 挂载点
192.168.255.130:/data/share/pv1   48G  6.7G   39G   15% /opt/share

文件共享效果验证

1.在服务侧/opt/share/pv1目录下创建一个文件,在客户端挂载点上查询是否能看到并读取对应文件内容(共享权限验证)
结果:符合预期,同步状态正常;

root@debian:/home/a# cd /data/share/pv1/
root@debian:/data/share/pv1# ls
root@debian:/data/share/pv1# echo this is nfs share test > nfs_test.txt
root@debian:/data/share/pv1# ls -l nfs_test.txt 
-rw-r--r-- 1 root root 23  814 14:15 nfs_test.txt
root@debian:/data/share/pv1# 
[root@centos7 ~]# cd /opt/share/
[root@centos7 share]# ls
[root@centos7 share]# ls -l
总用量 0
[root@centos7 share]# ls -l
总用量 4
-rw-r--r-- 1 root root 23 814 14:15 nfs_test.txt
[root@centos7 share]# cat nfs_test.txt 
this is nfs share test

2.客户端切换为普通用户,尝试读取共享目录中的内容;
结果:符合预期,读写正常,同步状态正常;

[root@centos7 share]# su user1
[user1@centos7 share]$ ls
nfs_test.txt
[user1@centos7 share]$ cat nfs_test.txt 
this is nfs share test
[user1@centos7 share]$ ls -l
总用量 4
-rw-r--r-- 1 root root 23 814 14:15 nfs_test.txt

3.创建共享文件,检查在服务端侧是否同步;

[user1@centos7 share]$ echo "this is nfs client create txt" >nfs_client.txt
[user1@centos7 share]$ ls
nfs_client.txt  nfs_test.txt
[user1@centos7 share]$


root@debian:/data/share/pv1# ls -l nfs_test.txt 
-rw-r--r-- 1 root root 23  814 14:15 nfs_test.txt
root@debian:/data/share/pv1# ls
nfs_client.txt	nfs_test.txt
root@debian:/data/share/pv1# cat nfs_client.txt 
this is nfs client create txt
root@debian:/data/share/pv1# ls -l
总用量 8
-rw-rw-r-- 1 a    a    30  814 14:20 nfs_client.txt
-rw-r--r-- 1 root root 23  814 14:15 nfs_test.txt
root@debian:/data/share/pv1# 

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

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

相关文章

深入解析三路快排:一种高效的排序算法

在数据结构和算法的世界中,快排(Quick Sort)无疑是最受欢迎的排序算法之一。今天,探讨一种优化的快排变体——三路快排(3-Way Quick Sort),它在处理具有重复元素的数组时展现出了令人惊叹的效率…

PCIe学习笔记(22)

Transaction Ordering Transaction Ordering Rules 表2-40定义了PCI Express Transactions的排序要求。该表中定义的规则统一适用于PCI Express上所有类型的事务,包括内存、I/O、配置和消息。该表中定义的排序规则适用于单个流量类(TC)。不同TC标签的事务之间没有…

Label-Wise Graph Convolutional Network for Heterophilic Graphs

推荐指数: #paper/⭐⭐ 发表于:LoG 2022 推荐指数是因为22年,所以给2行. 贡献:用MLP来区分不同的标签信息. 思想阐述: 假设 N k ( v ) \mathcal{N}_{k}(v) Nk​(v)表示节点v标签为k的邻居.我们定义基于 a v , k a_{v,k} av,k​为聚合标签为k的邻居:(即只聚合标签为k的邻居) a…

拒绝内卷:利用4P营销理论打造汇报PPT

在当下的职场文化里,越来越激烈的“内卷”现象普遍存在。随着不得已的竞争压力、加班文化、以及技能和学历的通货膨胀,越来越多职场人不惜加大工作负荷和劳动投入。但这种过度的付出往往并未带来成比例的回报,有时还会因为过度工作而导致生产…

Oracle Java JDK 21 下载地址及安装教程

Oracle JDK 21 官方地址 https://www.oracle.com/java/technologies/downloads/#java21 1. Linux 版本 ARM64 Compressed Archive https://download.oracle.com/java/21/latest/jdk-21_linux-aarch64_bin.tar.gz ARM64 RPM Package https://download.oracle.com/java/21/late…

OpenHarmony网络协议通信—nanopb

简介 nanopb是一种小代码量的协议缓冲区实现,适用于任何内存受限的系统。 下载安装 直接在OpenHarmony-SIG仓中搜索nanopb并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的Nanopb库代码存在以下路径:./third_party/nanopb 修改添…

谷歌反垄断官司败诉后,或又面临被拆分风险?

KlipC报道:上周8月5日,美国法院裁定谷歌的搜索业务违反了美国反垄断法,非法垄断在线搜索和搜索文本广告市场。据悉,胜诉的美国司法部正在考虑拆分谷歌。其他选项包括强制谷歌与竞争对手分享更多数据,以及防止其在人工智…

C# Log4net日志 配置 与AppenderSkeleton

https://www.cnblogs.com/yaopengfei/p/9428206.html 一、Log4Net简介 Log4net是从Java中的Log4j迁移过来的一个.Net版的开源日志框架,它的功能很强大,可以将日志分为不同的等级,以不同的格式输出到不同的存储介质中,比如&#x…

Vue框架学习笔记-6

Vue中的路由 Vue中的路由(Routing)是通过Vue Router这个官方提供的路由管理器来实现的。Vue Router允许你通过不同的URL访问应用中不同的页面(组件),而无需重新加载页面。这对于构建单页应用(SPA, Single …

数字引领风尚·智能改变生活“青岛电博会”路演活动(济南站)

2024CICE中国国际消费电子博览会路演活动(济南站)成功举行 数字引领风尚,智能改变生活。 8月7日,50余家行业协会、企业嘉宾、展商代表等云集2024中国国际消费电子博览会路演活动(济南站)现场,共…

【香菇带你学Mysql】Linux下Mysql8使用二进制安装包安装教程【建议收藏】

⚠️ 本人声明:本教程可100%复现​ 网上看了很多Mysql8安装的方式,基本上都是都过一个yum方式直接访问公网下载依赖资源安装的。 但是在企业内部一般并不允许生产环境直接连接公网。针对此情况。本文将介绍如何在内网环境下使用二进制安装包本地安装方式…

【多线程】乐观/悲观锁、重量级/轻量级锁、挂起等待/自旋锁、公平/非公锁、可重入/不可重入锁、读写锁

文章目录 乐观锁和悲观锁重量级锁和轻量级锁挂起等待锁和自旋锁公平锁和非公平锁可重入锁和不可重入锁读写锁相关面试题 锁:非常广义的概念,不是指某个具体的锁,所有的锁都可以往这些策略中套 synchronized:只是市面上五花八门的锁…

新形势下职业教育云计算人才培养策略

一、引言 在数字化转型的浪潮中,云计算作为核心技术之一,正在深刻影响着各行各业的发展。职业教育作为培养技术技能型人才的重要途径,需要紧跟时代步伐,不断优化和创新云计算人才培养模式,以满足社会对云计算人才的迫…

基于MyBatis-plus的SpringBoot开发

目录 一、SpringBoot整合mybatis 二、SpringBoot整合mybatis-plus 1、什么是mybatis-plus? 2、mybatis-plus的特性 3、mybatis-plus的使用 (1)编写注解配置实体类与关系表映射关系 (2)mapper层 (3…

Sandbox: rsync.samba(80134) deny(1) file-write-create

Xcode15运行报错:Sandbox: rsync.samba(80134) deny(1) file-write-create/xxx/xxx 如下图: 解决办法: Build Settings 搜索 sandbox,把 Build Options 中的 User Script Sandboxing改为 NO

iPhone很多空相簿怎么删除:简化你的照片库

随着我们使用iPhone拍摄越来越多的照片和视频,管理这些内容的需求也随之增加。创建相簿是组织照片的一种便捷方式,但随着时间的推移,可能会产生许多未使用或空的相簿。这些空相簿不仅占用了照片应用的界面空间,也让照片库显得更加…

代码随想录算法训练营第四十二天|广度优先搜索理论基础、岛屿数量:深搜版、岛屿数量:广搜版

广度优先搜索理论基础 广搜(bfs)是一圈一圈的搜索过程。因为广搜是从起点出发,以起始点为中心一圈一圈进行搜索,一旦遇到终点,记录之前走过的节点就是一条最短路。 广搜的过程:我们从图中可以看出&#x…

HTML+CSS进阶用法(上)——平面转换、渐变、空间转换

欢迎来到CSS变换的世界,这里充满了创意和可能性。在本篇博客中,我们将一起学习如何使用transform属性来实现各种平面和空间转换效果,包括位移、旋转、缩放,以及如何通过渐变和动画来增强我们的网页设计。无论你是初学者还是有经验…

【区块链+金融服务】基于区块链的区域股权金融综合服务平台 | FISCO BCOS应用案例

区域性股权市场是我国资本市场的重要组成部分,是多层次资本市场体系的基石。区块链技术与区域性股权市场 分散特征天然匹配,从新型金融基础设施层面为场外参与各方提供公共的可信服务,以技术手段完善市场基础条 件,弥补区域性短板…

仿RabbiteMq实现简易消息队列正式篇(需求分析)

TOC 目录 MQ的实现方法 RabbitMq中的相关概念 消息队列系统模块划分 总体划分 服务端模块 数据管理模块 虚拟机数据管理模块 交换机路由模块 消费者管理模块 信道(通信)管理模块 连接管理模块 服务端BrokerServer模块 客户端模块 消费者管…