一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于分布式存储的跨平台客户端实现方法与流程

2021-10-24 05:01:00 来源:中国专利 TAG:分布式 客户端 计算机 方法 平台


1.本技术涉及计算机技术领域,具体来说涉及一种基于分布式存储的跨平台客户端实现方法。


背景技术:

2.随着云计算技术的飞速发展,产生了海量的数据存储需求。而传统的服务器内置存储空间往往不足以满足存储需要,或者即使能满足要求,但由于各个服务器之间相互独立,大幅降低了磁盘的利用率。ceph作为一种分布式存储系统,能够较好地解决上述问题。它摒弃了传统的集中式存储元数据寻址的方案,采用crush算法,数据分布均衡,并行度高;同时考虑了容灾域的隔离,能够实现各类负载的副本放置规则。但是,现有的ceph文件系统通过nas协议提供给不同的操作系统用户使用,这种技术方案无法实现windows、mac os、linux等不同操作系统的挂载和读写一致。同时由存在于nas层的开销导致系统的整体性能有待提高。因此,如何开发出一种新型的基于分布式存储的跨平台客户端实现方法,以克服现有技术存在的上述缺陷,是本领域技术人员需要研究的方向。


技术实现要素:

3.本发明的目的在于提供一种基于分布式存储的跨平台客户端实现方法,能够实现不同系统平台的挂载和读写一致,减少了nas层的开销,提高了存储系统的整体性能。
4.其采用的技术方案:
5.一种基于分布式存储的跨平台客户端实现方法,其包括如下步骤:
6.步骤1:建立分布式存储系统的客户端架构,所述建立分布式存储系统的客户端架构包括表现层,业务层和数据存储层;
7.所述表现层用于提供通用展示界面和交互规范;
8.所述业务层用于提供对应于操作系统的安装包并实现文件系统客户端的挂载和上传;
9.所述数据存储层用于实现数据的读写和监控;
10.步骤2:对不同的操作系统完成文件系统客户端的挂载;
11.步骤3:对不同的操作系统完成文件上传;
12.步骤4:完成对文件系统的接口处理;包括元数据操作和数据操作。
13.步骤5:将文件信息、上传状态等信息存储在业务层数据库中,以完成任务控制、日志展示等等客户端功能。
14.优选的是,上述基于分布式存储的跨平台客户端实现方法中:所述步骤1包括:
15.步骤11:对表现层进行技术架构,基于react.js作为研发框架实现交互逻辑处理,基于html实现网页文档结构,基于css实现网页文档结构的样式渲染;
16.步骤12:对业务层所采用的electron嵌入node.js和chromium;故在表现层可以保持一个javascript、html、css的代码仓库并创建在windows、macos和linux上的跨平台应
用,不需要各系统开发经验。
17.更优选的是,上述基于分布式存储的跨平台客户端实现方法中,所述步骤2包括:
18.步骤21:连接并登录存储服务器、选取挂载盘符进行挂载;
19.步骤22:根据登录的用户信息与服务端完成用户鉴权,并根据配置文件记录的monips,获取monmap、mdsmap、osdmap等信息,创建mon client、mds client、osd client,与mon、mds等服务建立连接。其中,mon client、mds client、osd client主要的作用的是存储服务端的mon、mds、osd进行通信,以支撑完成文件系统读写等操作;
20.步骤23:将表现层录入、读取的服务器信息、登录信息,挂载信息,文件读写信息存储于表现层的数据库中,以提供服务器信息缓存、用户信息缓存、自动登录、自动挂载、文件读写记录查询等交互操作。
21.步骤24:区分操作系统,如操作系统为linux则使用命令进行挂载;如操作系统为macos则使用applescript进行挂载;如操作系统为windows则选取待挂载的盘符进行挂载;
22.步骤25:判定是否挂载成功,如挂载失败则跳转至步骤26,否则跳转至步骤27;
23.步骤26:检查挂载错误并跳转至步骤24;
24.步骤27:完成挂载。
25.进一步优选的是,上述基于分布式存储的跨平台客户端实现方法中,所述步骤3包括:
26.步骤31:选取文件或文件夹选取后,将文件或文件夹的路径信息传输到业务层;
27.步骤32:业务层基于文件或文件夹路径拿到文件信息后进行与存储层的通信;
28.步骤33:缓存多个待上传的文件;
29.步骤34:将文件地址列表注册为多个上传任务;
30.步骤35:区分操作平台;
31.步骤36:发起文件上传任务;
32.步骤37:清空文件缓存地址;
33.步骤38:刷新文件上传队列并判定当前队列是否为空,若当前队列为空则结束进程,否则跳转至步骤37;
34.步骤39:上传某个任务并判定是否分片,若分片则跳转至步骤310,否则跳转至步骤312;
35.步骤310:切割分片并上传,并更新请求返回的分片信息直至完成切割分片;
36.步骤311:校验和组装所有分片信息;
37.步骤312:完成当前文件上传并跳转至步骤38。
38.步骤313:将文件信息、上传状态等信息存储在业务层数据库中,进而在表现层中展示。
39.更进一步优选的是,上述基于分布式存储的跨平台客户端实现方法中,所述步骤4包括:
40.元数据操作:客户端通过mds client,直接与mds通信,获取到文件caps锁后,调用存储元数据服务提供的setxattr等接口,完成元数据更新;
41.数据读写操作:采用crush算法计算出数据更新指向的磁盘,由osdc与osd进行交互,完成读写。
42.与现有技术相比,本技术取得了以下技术效果:
43.本技术实现了windows、mac os、linux等系统平台的兼容;提供了不同操作系统下的文件系统客户端,可以直接访问存储服务端,对比nas协议节省了nas协议层的开销,性能更好;能够对跨平台客户端进行性能监控,并以图表形式反馈;实现了各平台的客户端界面展示以及一致性交互操作;可通过各平台实现快速挂载ceph分布式文件系统,并能够便捷的对文件进行上传、下载、编辑、删除等操作。
附图说明
44.下面结合附图与具体实施方式对本技术作进一步详细的说明:
45.图1为本发明的系统框图;
46.图2为实施例1中文件系统客户端的工作流程图;
47.图3为实施例1中文件上传的工作流程图。
具体实施方式
48.为了更清楚地说明本技术的技术方案,下面将结合各个实施例作进一步描述。
49.如图1

3所示为实施例1:
50.一种基于分布式存储的跨平台客户端实现方法,其包括如下步骤:
51.建立分布式存储系统的客户端架构,所述建立分布式存储系统的客户端架构包括表现层,业务层和数据存储层;
52.其中:在业务层采用的electron嵌入了node.js和chromium,故在表现层可以保持一个javascript、html、css的代码仓库并创建在windows、macos和linux上的跨平台应用,不需要各系统开发经验;
53.采用web端的开发技术(react.js、html、css)对表现层进行技术架构,其中react.js作为javascript研发框架,完成交互逻辑处理,html完成网页文档结构、css则对网页文档结构进行样式渲染;
54.表现层提供连接存储服务器、登录、选取挂载盘符进行挂载(windows)、直接挂载(mac os、linux)、文件或文件夹选取等交互操作;挂载时,一方面,根据登录的用户信息,与服务端完成用户鉴权。另一方面,根据配置文件记录的monips,获取monmap、mdsmap、osdmap等信息。创建mon client、mds client、osd client,与mon、mds等服务建立连接。mon client、mds client、osd client主要的作用的是存储服务端的mon、mds、osd进行通信,以支撑完成文件系统读写等操作;
55.将上一步骤中表现层录入、读取的服务器信息、登录信息,挂载信息,文件读写信息存储于表现层的数据库中,以提供服务器信息缓存、用户信息缓存、自动登录、自动挂载、文件读写记录查询等交互操作。
56.在存储了挂载信息后,将与存成进行通信,进行文件系统挂载操作,具体的,包括:区分操作系统,如操作系统为linux则使用命令进行挂载;如操作系统为macos则使用applescript进行挂载;如操作系统为windows则选取待挂载的盘符进行挂载;判定是否挂载成功,如挂载失败则检查挂载错误并返回上一步;否则完成挂载。
57.选取了文件或文件夹选取后,将文件或文件夹的路径信息传输到业务层,业务层
通过文件或文件夹路径拿到文件信息后将进行与存储层的通信,进行上传。具体包括如下上传步骤:缓存多个待上传的文件;将文件地址列表注册为多个上传任务;区分操作平台;发起文件上传任务;清空文件缓存地址;刷新文件上传队列并判定当前队列是否为空;上传某个任务并判定是否分片;切割分片并上传,并更新请求返回的分片信息直至完成切割分片;校验和组装所有分片信息;完成当前文件上传。在上传完毕后,将文件信息、上传状态等信息存储在业务层数据库中,进而在表现层中展示。
58.完成文件系统的接口的具体处理,主要分为元数据操作与数据操作;元数据操作时,客户端通过mds client,直接与mds通信,获取到文件caps锁后,调用存储元数据服务提供的setxattr等接口完成元数据更新。数据读写操作时,客户端采用采用crush算法,计算出需要数据需要更新到哪些磁盘,再由osdc与osd进行交互,完成读写。
59.需要说明的是:windows、mac os、linux提供不同的文件系统客户端。
60.通过采用上述技术方案:
61.实现了在不同系统平台上统一访问ceph分布式存储系统的方法,并实现一个跨平台的客户端。在不同系统平台使用本客户端时,均可:访问ceph分布式文件系统的文件并读写这些文件或新写入文件;将ceph分布式文件系统在本地进行挂载;与其它用户一起共享文件;细粒度控制用户读写权限;在断线时自动恢复与网络的连接;文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
62.以上所述,仅为本技术的具体实施例,但本技术的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本技术公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围以权利要求书的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜