NFS - MIPS架构下构建NFS共享目录服务

简介: NFS - MIPS架构下构建NFS共享目录服务


常见的文件服共享方式比如FTP , FTP协议的本质是传输文件,而非共享文件。

Lin 和 Win 共享文件

1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题。

Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。 Samba服务程序还可以实现Linux系统之间的文件共享 。

如果觉得Samba服务程序的配置太麻烦,而且恰巧需要共享文件的主机都是Linux系统,推荐在客户端部署NFS服务来共享文件 。

NFS-Network FileSystem的缩写,NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。

NFS server也可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。

NFS协议从诞生到现在为止,已经有多个版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。


需求

集群环境下,三台机器A、B、C,没有文件服务器,但是还要访问同一个目录,目录中都是文件,传统的做法是把这些图片分别放到A、B、C。

所以需要搭建一个NFS服务,将NFS只需要放到A上,然后A共享给B和C,访问的时候,B和C是通过RPC的方式去访问A资源。


原理

网上找的图,大佬们凑合看看吧,实在是不想画了。。。。


环境信息

Server Comments
172.168.17.12 服务端
172.168.17.11 客户端

检查依赖

测试环境 , 建议关闭防火墙 ,因为nfs要通过rpc远程端口访问。

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service

如何找mips的rpm包

奈何,这几台server都是内网的,并不能使用yum 直接访问 Internet, 而且也没有光盘,没办法通过修改yum源的配置从本地加载,自己找找吧。

如果使用rpm安装,一堆依赖,那工作量…

rpm从哪里下? 下哪些?

想了想,还是找找系统自带的yum配置文件吧

[ns7-mips64el-os]
name=NeoKylin Linux Advanced Server 7 - Os
baseurl=http://download.cs2c.com.cn/neokylin/server/releases/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=1
[ns7-mips64el-extras]
name=NeoKylin Linux Advanced Server 7 - Addons
baseurl=http://download.cs2c.com.cn/neokylin/server/everything/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0
[ns7-mips64el-updates]
name=NeoKylin Linux Advanced Server 7 - Updates
baseurl=http://download.cs2c.com.cn/neokylin/server/updates/7.0/ls_64/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neokylin-release
enabled=0

baseurl=http://download.cs2c.com.cn/neokylin/server/updates/7.0/ls_64/

从哪里下载搞定了 , 下什么。。。。。

我有x86的,我也比对着下呗

方式一: 参考 x86的

[root@localhost rpm]# yum -y install nfs-utils --downloadonly --downloaddir /root/rpm

然后下载 mips的依赖包

你要是这么懒, 地址拿去 。。。

中标龙芯-MIPS- NFS rpm包

X86-NFS rpm包


NFS服务端

下面的操作均在 服务端端 IP 172.168.17.12上进行


上传RPM安装包

[root@localhost ~]# pwd

/root

[root@localhost ~]# mkdir rpm

安装RPCBIND和NFSSERVER

[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps


创建共享目录

[root@localhost rpm]# mkdir -p /home/zf/share

配置文件/etc/exports

编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等

[root@localhost rpm]# vim /etc/exports
 # (格式:FS共享的目录 NFS客户端地址1(参数1,参数2,...) 客户端地址2(参数1,参数2,...))
 /home/zf/share 172.168.17.11(rw,insecure,no_root_squash,no_all_squash,sync)

其中的ip为客户端的IP

添加的内容表示:允许ip 地址范围在172.168.17.11 (当然了也可以配置比如ip地址范围172.168.17.* )的计算机以rw,insecure,no_root_squash,no_all_squash,sync的权限来访问 /home/zf/share 目录

如果设置为 /home/zf/share *(rw,insecure,no_root_squash,no_all_squash,sync) 则对所以的IP都有效

配置项


【常用选项】

  • ro:客户端挂载后,其权限为只读,默认选项;
  • rw:读写权限;
  • sync:同时将数据写入到内存与硬盘中;
  • async:异步,优先将数据保存到内存,然后再写入硬盘;
  • Secure:要求请求源的端口小于1024

【用户映射】

  • root_squash:当NFS客户端使用root用户访问时,映射到NFS服务器的匿名用户;
  • no_root_squash:当NFS客户端使用root用户访问时,映射到NFS服务器的root用户;
  • all_squash:全部用户都映射为服务器端的匿名用户;
  • anonuid=UID:将客户端登录用户映射为此处指定的用户uid;
  • anongid=GID:将客户端登录用户映射为此处指定的用户gid

加载配置文件

[root@localhost rpm]# exportfs -arv

开机启动

[root@localhost rpm]# systemctl enable rpcbind.service
[root@localhost rpm]#
[root@localhost rpm]# systemctl enable nfs-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service. 

启动服务

[root@localhost rpm]# systemctl  start rpcbind.service
[root@localhost rpm]# systemctl start nfs-server.service 

至此 ,nfs server端配置完毕 。接下来进行客户端部分的操作,在IP 172.168.17.11上进行


客户端安装

下面的操作均在 客户端 IP 172.168.17.11上进行

上传RPM安装包

[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir rpm
[root@localhost rpm]# ll
总用量 1480
-rw-r--r-- 1 root root  99664 11月 24 21:34 gssproxy-0.7.0-4.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  55024 11月 24 21:34 keyutils-1.5.8-3.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  24536 11月 24 21:34 libbasicobjects-0.1.1-27.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  38380 11月 24 21:34 libcollection-0.6.2-27.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root 196096 11月 24 21:34 libevent-2.0.21-4.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  58000 11月 24 21:34 libini_config-1.3.0-27.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  47176 11月 24 21:34 libnfsidmap-0.25-17.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  27208 11月 24 21:34 libpath_utils-0.2.1-27.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  25924 11月 24 21:34 libref_array-0.1.5-27.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  80552 11月 24 21:34 libtirpc-0.2.4-0.10.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root   8284 11月 24 21:34 libverto-libevent-0.2.5-4.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root 412084 11月 24 21:34 nfs-utils-1.3.0-0.48.ns7_4.1.01.mips64el.rpm
-rw-r--r-- 1 root root 179316 11月 24 21:34 quota-4.01-14.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  91280 11月 24 21:34 quota-nls-4.01-14.ns7_4.noarch.rpm
-rw-r--r-- 1 root root  59680 11月 24 21:34 rpcbind-0.2.0-42.ns7_4.mips64el.rpm
-rw-r--r-- 1 root root  80880 11月 24 21:34 tcp_wrappers-7.6-77.ns7_4.mips64el.rpm
[root@localhost rpm]# 

安装RPCBIND和NFSSERVER

[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps
警告:gssproxy-0.7.0-4.ns7_4.mips64el.rpm: 头V3 RSA/SHA1 Signature, 密钥 ID 7a486d9f: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:libtirpc-0.2.4-0.10.ns7_4        ################################# [  6%]
   2:rpcbind-0.2.0-42.ns7_4           ################################# [ 13%]
   3:libref_array-0.1.5-27.ns7_4      ################################# [ 19%]
   4:libevent-2.0.21-4.ns7_4          ################################# [ 25%]
   5:libcollection-0.6.2-27.ns7_4     ################################# [ 31%]
   6:libbasicobjects-0.1.1-27.ns7_4   ################################# [ 38%]
   7:libverto-libevent-0.2.5-4.ns7_4  ################################# [ 44%]
   8:tcp_wrappers-7.6-77.ns7_4        ################################# [ 50%]
   9:quota-nls-1:4.01-14.ns7_4        ################################# [ 56%]
  10:quota-1:4.01-14.ns7_4            ################################# [ 63%]
  11:libpath_utils-0.2.1-27.ns7_4     ################################# [ 69%]
  12:libini_config-1.3.0-27.ns7_4     ################################# [ 75%]
  13:gssproxy-0.7.0-4.ns7_4           ################################# [ 81%]
  14:libnfsidmap-0.25-17.ns7_4        ################################# [ 88%]
  15:keyutils-1.5.8-3.ns7_4           ################################# [ 94%]
  16:nfs-utils-1:1.3.0-0.48.ns7_4.1.01################################# [100%]
[root@localhost rpm]#

创建共享目录

[root@localhost rpm]# mkdir -p /home/zf/share

开机启动

[root@localhost rpm]# systemctl enable rpcbind.service
[root@localhost rpm]# systemctl enable nfs-server.service
Creat

启动服务

[root@localhost rpm]# [root@localhost rpm]# systemctl start rpcbind.service
[root@localhost rpm]# systemctl start nfs-server.service
[root@localhost rpm]#

客户端挂载

[root@localhost rpm]# mount -t nfs -o nolock,nfsvers=3,vers=3 -o proto=tcp 172.168.17.12:/home/zf/share /home/zf/share

172.168.17.12 为nfs server的IP


查看nfs信息

# 查看nfs服务端信息
$ nfsstat -s
# 查看nfs客户端信息
$ nfsstat -c

测试

11 上创建文件/目录,去12访问

12上创建文件/目录,去11访问

权限和你的配置有关系哈 (/etc/exports)

测试木问题呀


NFS开机挂载

无论是Samba服务还是NFS服务,都要把挂载信息写入到/etc/fstab中,这样远程共享资源就会自动随服务器开机而进行挂载,如果你不嫌麻烦的话,可以在每次使用之前执行mount命令进行手动挂载

如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

172.168.17.12:/home/zf/share  /home/zf/share  nfs defaults 0 0

AutoFs自动挂载服务

如果开启了自动挂载NFS , 如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。

autofs自动挂载服务可以帮我们解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,我们将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

[root@localhost ~]# yum install autofs
.......
Complete!
[root@localhost ~]# 

如何使用可以Google一篇入门,这里就不研究了,暂时不需要。

行了 就到这儿吧


相关文章
|
3天前
|
API 持续交付 开发者
构建高效微服务架构:后端开发的新视角
【5月更文挑战第8天】 随着现代软件开发的演变,微服务架构已经成为了企业追求敏捷、可扩展和灵活部署的重要解决方案。本文将深入探讨如何构建一个高效的微服务架构,包括关键的设计原则、技术栈选择以及持续集成与部署的最佳实践。我们还将讨论微服务带来的挑战,如数据一致性、服务发现和网络延迟,并提出相应的解决策略。通过本文,后端开发者将获得构建和维护微服务系统所需的深度知识,并了解如何在不断变化的技术环境中保持系统的健壮性和可维护性。
35 8
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第10天】 随着企业加速其数字化转型的步伐,云原生架构已成为实现敏捷性、可扩展性和创新的关键驱动力。本文探讨了云原生技术的兴起背景、核心技术组件以及如何通过这些技术推动企业IT基础设施的现代化。文章重点分析了容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化对于构建灵活且高效的云环境的重要性,并提供了实施云原生策略的实用建议。通过深入分析,本文旨在为决策者提供一个清晰的指南,以利用云原生架构优化其业务操作并保持竞争优势。
6 0
|
1天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第10天】在现代软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序拆分为一组小型、独立和松散耦合的服务来提供更高的可伸缩性和灵活性。本文深入探讨了微服务架构的设计理念、实施步骤以及面临的挑战,并提出了一套实用的策略和最佳实践,帮助后端开发者构建和维护高效的微服务系统。
|
2天前
|
Cloud Native API 开发者
构建未来:云原生架构在企业数字化转型中的关键角色
【5月更文挑战第9天】 随着企业加速迈向数字化时代,传统的IT架构已不足以支撑快速变化的市场需求。本文深入探讨了云原生架构如何成为推动企业敏捷性、可扩展性和创新能力的关键因素。通过分析微服务、容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用,揭示了云原生技术如何助力企业实现真正的业务和技术一体化,以及在竞争激烈的市场中保持领先地位。
|
2天前
|
域名解析 Unix Linux
AIX上如何正确挂载Linux 的nfs共享目录分享篇
AIX上如何正确挂载Linux 的nfs共享目录分享篇
|
2天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
2天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第9天】 随着数字化转型的浪潮席卷全球,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文深入探讨了云原生架构的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析了这些技术如何帮助企业加速产品上市时间,提高运营效率,并最终实现业务目标。同时,文章也识别了企业在采纳云原生实践中可能面临的挑战,如安全性考量、团队技能提升和复杂的网络管理,并提出了相应的解决方案和最佳实践。
|
2天前
|
监控 API 持续交付
构建高效可靠的微服务架构:策略与实践
【5月更文挑战第8天】在当今快速演进的软件开发领域,微服务架构已经成为实现敏捷开发、持续交付和系统弹性的关键模式。本文将探讨构建一个高效且可靠的微服务系统所必须的策略和最佳实践。我们将从服务的划分与设计原则出发,讨论如何通过容器化、服务发现、API网关以及断路器模式来优化系统的可伸缩性和鲁棒性。此外,我们还将涉及监控、日志管理以及CI/CD流程在确保微服务架构稳定运行中的作用。
|
3天前
|
Kubernetes 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第8天】 随着现代软件开发的不断演进,微服务架构已成为众多企业解决复杂系统问题的首选方案。本文深入探讨了微服务架构的核心概念、设计原则以及实施策略,旨在为后端开发者提供一种清晰、高效的技术路径。通过分析微服务的优势与挑战,结合具体的应用实例,文章将展示如何通过容器化、服务网格和持续集成/持续部署(CI/CD)等先进技术手段,实现后端服务的高可用性、可扩展性和敏捷性。
|
3天前
|
消息中间件 监控 Java
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第8天】随着现代软件开发的复杂性日益增加,传统的单体应用架构逐渐难以满足快速迭代和灵活部署的需求。微服务架构作为一种新的解决方案,以其模块化、独立性强和易于扩展的特点,正在成为后端开发领域的重要趋势。本文将深入探讨如何构建一个高效的微服务架构,并分析其对后端开发实践的影响。