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一篇入门,这里就不研究了,暂时不需要。

行了 就到这儿吧


相关文章
|
7天前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
13天前
|
运维 持续交付 API
从零构建微服务架构:一次深度技术探索之旅####
【10月更文挑战第28天】 本文记录了作者在从零开始构建微服务架构过程中的深刻技术感悟,通过实战案例详细剖析了微服务设计、开发、部署及运维中的关键要点与挑战。文章首先概述了微服务架构的核心理念及其对企业IT架构转型的重要性,随后深入探讨了服务拆分策略、API网关选型、服务间通信协议选择、容器化部署(Docker+Kubernetes)、以及持续集成/持续部署(CI/CD)流程的设计与优化。最后,分享了在高并发场景下的性能调优经验与故障排查心得,旨在为读者提供一套可借鉴的微服务架构实施路径。 ####
52 3
|
24天前
|
边缘计算 Cloud Native 安全
构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
57 4
|
28天前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
【10月更文挑战第14天】深入理解微服务架构:构建高效、可扩展的系统
78 0
|
3天前
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
27 4
|
22天前
|
Kubernetes 负载均衡 Docker
构建高效后端服务:微服务架构的探索与实践
【10月更文挑战第20天】 在数字化时代,后端服务的构建对于任何在线业务的成功至关重要。本文将深入探讨微服务架构的概念、优势以及如何在实际项目中有效实施。我们将从微服务的基本理念出发,逐步解析其在提高系统可维护性、扩展性和敏捷性方面的作用。通过实际案例分析,揭示微服务架构在不同场景下的应用策略和最佳实践。无论你是后端开发新手还是经验丰富的工程师,本文都将为你提供宝贵的见解和实用的指导。
|
23天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
12天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
21天前
|
监控 API 持续交付
构建高效后端服务:微服务架构的深度探索
【10月更文挑战第20天】 在数字化时代,后端服务的构建对于支撑复杂的业务逻辑和海量数据处理至关重要。本文深入探讨了微服务架构的核心理念、实施策略以及面临的挑战,旨在为开发者提供一套构建高效、可扩展后端服务的方法论。通过案例分析,揭示微服务如何帮助企业应对快速变化的业务需求,同时保持系统的稳定性和灵活性。
46 9
|
21天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
本文介绍了Docker和Kubernetes在构建高效微服务架构中的应用,涵盖基本概念、在微服务架构中的作用及其实现方法。通过具体实例,如用户服务、商品服务和订单服务,展示了如何利用Docker和Kubernetes实现服务的打包、部署、扩展及管理,确保微服务架构的稳定性和可靠性。
74 7