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天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
17天前
|
Kubernetes 安全 Java
构建高效微服务架构:从理论到实践
【4月更文挑战第9天】 在当今快速迭代与竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性及容错性,成为众多企业转型的首选。本文将深入探讨如何从零开始构建一个高效的微服务系统,覆盖从概念理解、设计原则、技术选型到部署维护的各个阶段。通过实际案例分析与最佳实践分享,旨在为后端工程师提供一套全面的微服务构建指南,帮助读者在面对复杂系统设计时能够做出明智的决策,并提升系统的可靠性与维护效率。
|
2天前
|
消息中间件 负载均衡 持续交付
构建高效微服务架构:后端开发者的终极指南
【4月更文挑战第25天】在当今软件工程领域,微服务架构已经成为实现可扩展、灵活且容错的系统的首选模式。本文将探讨如何从零开始构建一个高效的微服务系统,涵盖关键组件的选择、通信机制、数据管理以及持续集成和部署策略。通过深入分析与案例研究,我们旨在为后端开发者提供一个全面的微服务实践指南,帮助他们在构建现代化应用时做出明智的架构决策。
|
2天前
|
消息中间件 持续交付 数据库
构建高效可靠的微服务架构:策略与实践
【4月更文挑战第25天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。本文深入探讨了如何构建一个高效且可靠的微服务架构,包括关键的设计原则、技术选型以及实践中的挑战和应对策略。通过分析多个成功案例,我们总结了一系列最佳实践,并提出了一套可量化的性能优化方法。文章不仅为开发者提供了具体的技术指导,同时也强调了团队协作和持续学习在微服务转型过程中的重要性。
|
3天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第24天】 随着企业加速其数字化转型之旅,云原生架构已成为实现敏捷性、可扩展性和持续创新的关键推动力。本文将探讨云原生技术如何助力企业构建灵活的IT环境,支持快速部署新服务,并提高整体业务效率。通过分析微服务、容器化、DevOps和持续集成/持续部署(CI/CD)等关键技术的实践应用,我们将揭示这些元素如何共同塑造出一个响应迅速且高效的企业架构模型。
|
3天前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【4月更文挑战第24天】 随着现代软件系统的复杂性日益增加,传统的单体应用已难以满足快速迭代与灵活扩展的需求。微服务架构作为一种新兴的软件开发模式,以其服务的细粒度、独立部署和弹性伸缩等优势,正在逐渐成为后端开发的重要趋势。本文将深入探讨微服务架构的设计原则、关键技术以及在实际业务中的应用实践,旨在为后端开发者提供构建和维护高效微服务架构的参考指南。
|
4天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
11 0
|
4天前
|
监控 API 持续交付
构建高效微服务架构:后端开发的新趋势
【4月更文挑战第23天】 随着现代软件开发实践的不断演进,微服务架构已经成为企业追求敏捷、可扩展和弹性解决方案的首选。本文深入探讨了如何构建一个高效的微服务架构,涵盖了关键的设计原则、技术选型以及实践建议。通过分析微服务的独立性、分布式特性和容错机制,我们将揭示如何利用容器化、服务网格和API网关等技术手段,来优化后端系统的可维护性和性能。文章旨在为后端开发人员提供一套全面的指南,以应对不断变化的业务需求和技术挑战。
|
6天前
|
Cloud Native API 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业加速其数字化转型的步伐,云原生技术已迅速成为推动创新和实现敏捷性的基石。本文深入探讨了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及声明式API。通过分析这些技术的协同效应,揭示了它们如何共同促进系统的可伸缩性、弹性和维护性,进而支持企业在不断变化的市场环境中保持竞争力。
10 1