CN114185866A - 数据本地存储控制方法及医疗数据存储*** - Google Patents

数据本地存储控制方法及医疗数据存储*** Download PDF

Info

Publication number
CN114185866A
CN114185866A CN202210140022.2A CN202210140022A CN114185866A CN 114185866 A CN114185866 A CN 114185866A CN 202210140022 A CN202210140022 A CN 202210140022A CN 114185866 A CN114185866 A CN 114185866A
Authority
CN
China
Prior art keywords
storage
storage node
node
file
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210140022.2A
Other languages
English (en)
Other versions
CN114185866B (zh
Inventor
汪永松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ankon Technologies Co Ltd
Original Assignee
Ankon Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ankon Technologies Co Ltd filed Critical Ankon Technologies Co Ltd
Priority to CN202210140022.2A priority Critical patent/CN114185866B/zh
Publication of CN114185866A publication Critical patent/CN114185866A/zh
Application granted granted Critical
Publication of CN114185866B publication Critical patent/CN114185866B/zh
Priority to PCT/CN2023/075857 priority patent/WO2023155765A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明揭示了一种数据本地存储控制方法及医疗数据存储***,所述数据本地存储控制方法,应用于局域网存储环境中,包括:获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件;其中,环定义文件用于调配各存储节点的存储功能;对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件;将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。本发明提供的数据本地存储控制方法,能够适应存储节点的新增和移除而动态形成不同的存储策略,且能够适应医院等封闭的局域网存储环境。

Description

数据本地存储控制方法及医疗数据存储***
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据本地存储控制方法及医疗数据存储***。
背景技术
计算机技术领域中,特别是对于医疗设备输出数据等,需要搭建于局域网环境下的存储工况而言,如何实现对大量数据快速、安全且高效的存储,一直是亟待解决的问题。对此,通用技术领域提供了直接将数据存储至Web服务器或FTP(File Transfer Protocol,文件传输协议)服务器、HDFS(Hadoop Distributed File System,分布式文件***)存储***以及商业化云存储服务器等技术方案。然而上述第一种方案,虽然搭建过程简单,但具有吞吐效率差、拓展性差和安全性差的缺陷,上述第二种方案虽然具有较强的拓展性和容错性能,但不适合小文件操作,同时也不支持并发写入,难以适应大数据高效存储的要求。上述第三种方案,虽然支持高并发和拓展需要,但是对互联网依赖性较强,无法应用于医院等要求布置局域网环境的情况。
发明内容
本发明的目的之一在于提供一种数据本地存储控制方法,以解决现有技术中数据存储方案无法兼顾数据传输高效、存储节点可拓展以及可以适用于局域网封闭环境的技术问题。
本发明的目的之一在于提供一种医疗数据存储***。
为实现上述发明目的之一,本发明一实施方式提供一种数据本地存储控制方法,应用于局域网存储环境中,包括:获取对象存储模板以及各存储节点的区分标记信息,根据所述区分标记信息和所述对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件;其中,所述环定义文件用于调配各存储节点的存储功能;对各存储节点执行初始化,将所述存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的所述存储配置文件;将所述环定义文件分发至所述各存储节点,控制所述各存储节点启用并执行数据存储。
作为本发明一实施方式的进一步改进,所述区分标记信息包括协议地址信息和存储容量信息;所述方法具体包括:根据各存储节点的所述存储容量信息,计算对应每个存储节点的存储权重信息;其中,所述存储权重等于对应的存储容量信息的值与总存储容量信息的值之比;根据所述存储权重信息、对应的协议地址信息以及所述对象存储模板,生成所述环定义文件。
作为本发明一实施方式的进一步改进,所述对象存储模板包括存储配置模板和环定义模板;所述方法具体包括:获取对象存储源文件,构建开发安装环境,提取并编译所述对象存储源文件,得到所述环定义模板、所述存储配置模板和建环执行程序;将所述建环执行程序、各存储节点的所述存储权重信息以及对应的协议地址信息,填入所述环定义模板,生成并执行建环脚本,得到所述环定义文件;将每个存储节点的协议地址信息填入所述存储配置模板,得到对应存储节点的多个所述存储配置文件。
作为本发明一实施方式的进一步改进,所述方法具体包括:获取对象存储源文件,构建开发安装环境,对所述对象存储源文件提取得到依赖服务模板;将每个存储节点的协议地址信息填入所述依赖服务模板,得到对应存储节点的多个服务配置文件;将所述服务配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的所述服务配置文件;其中,所述服务配置文件包括同步配置文件、缓存配置文件和日志配置文件。
作为本发明一实施方式的进一步改进,所述方法具体包括:编译所述对象存储源文件得到服务运行程序;向各存储节点分发所述服务运行程序,控制各存储节点执行所述服务运行程序并读取所述服务配置文件,依次启动同步服务、缓存服务以及日志服务。
作为本发明一实施方式的进一步改进,所述方法具体包括:初始化各存储节点分别形成对象存储目录,并向各存储节点分发所述对象存储源文件,控制各存储节点构建开发安装环境;控制各存储节点编译所述对象存储源文件得到服务运行程序,执行所述服务运行程序并读取所述服务配置文件,依次启动同步服务、缓存服务以及日志服务;将所述存储配置文件分发并存储至对应的存储节点的对象存储目录下。
作为本发明一实施方式的进一步改进,所述方法还包括:获取对象存储源文件,构建开发安装环境,编译所述对象存储源文件得到启动执行程序;根据所述启动执行程序和所述区分标记信息,生成对应各存储节点的多个启动脚本;所述方法具体包括:将所述启动脚本分发至对应的存储节点,控制各存储节点解析并执行所述启动脚本。
作为本发明一实施方式的进一步改进,所述方法还包括:获取账户更新信息,并根据所述账户更新信息更新账户信息库;根据所述账户更新信息和所述对象存储模板,生成对应各存储节点的多个更新存储配置文件;将所述更新存储配置文件分发至对应的存储节点,控制各存储节点重新启动并解析所述更新存储配置文件。
作为本发明一实施方式的进一步改进,所述方法还包括:接收外部淘汰指令,解析得到淘汰节点信息;按照预设步长降低所述淘汰节点信息对应的存储节点在环定义文件中的待淘汰权重,更新所述环定义文件,并将更新后的环定义文件分发至所述各存储节点;迭代更新直至所述待淘汰权重为零;其中,所述淘汰节点信息包括待淘汰的所述存储节点的区分标记信息。
为实现上述发明目的之一,本发明一实施方式提供一种医疗数据存储***,包括管理主机以及与所述管理主机连接的至少两个存储节点,所述管理主机配置为执行上述任一种技术方案所述的数据本地存储控制方法。
与现有技术相比,本发明提供的数据本地存储控制方法,在获取对象存储模板后即可根据存储节点的情况,对应生成用于实现存储功能的存储配置文件以及用于调配各存储节点存储功能的环定义文件,先后将两项文件分发至存储节点并控制其执行,如此能够适应存储节点的新增和移除而动态形成不同的存储策略;同时,存储配置文件和环定义文件均通过对象存储模板生成,存储功能的搭建过程无需访问公网,能够适应医院等封闭的局域网存储环境。
附图说明
图1是本发明一实施方式中医疗数据存储***的结构原理图;
图2是本发明另一实施方式中医疗数据存储***中存储节点集群的结构原理图;
图3是本发明一实施方式中数据本地存储控制方法的步骤原理图;
图4是本发明一实施方式中数据本地存储控制方法的第一实施例的步骤原理图;
图5是本发明一实施方式中数据本地存储控制方法的第一实施例的一具体示例的部分步骤原理图;
图6是本发明一实施方式中数据本地存储控制方法的第二实施例的步骤原理图;
图7是本发明一实施方式中数据本地存储控制方法的第二实施例的一具体示例的部分步骤原理图;
图8是本发明一实施方式中数据本地存储控制方法的第二实施例的另一具体示例的部分步骤原理图;
图9是本发明另一实施方式中数据本地存储控制方法的步骤原理图;
图10是本发明又一实施方式中数据本地存储控制方法的部分步骤原理图;
图11是本发明再一实施方式中数据本地存储控制方法的部分步骤原理图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,术语“第一”、“第二”、“第N”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
当前实现大吞吐量数据存储的方案,通常基于阿里云对象存储OSS(ObjectStorage Service,对象存储服务)或Amazon S3(Amazon Simple Storage Service,亚马逊简易储存服务),然而不管是基于上述任一种存储方案,均需要通过互联网接入供应商的服务器才能够实现数据存储服务的利用,而对于医院场景中产生的数据或其他医疗数据等,需要实行高保密措施传输的数据而言,将数据通过互联网存储则具有极大的风险。
基于与阿里云对象存储OSS和Amazon S3相同的架构所做的私有化,一方面并不能避免与互联网进行数据传输的过程,另一方面私有化部署***架构庞大,每个服务架构相互之间具有依赖性,不仅搭建过程和运维步骤复杂,服务架构之间的版本需要保持统一,同样会导致核心的存储服务无法随时更新而使用最优化功能。此外,例如简单的Web服务器存储、FTP服务器存储或HDFS***存储,虽然能够经过调整使其传输过程本地化,但是均无法实现并行存储或存储节点(设备)的拓展。
以胶囊内窥镜传输的影像数据为例,单个病例可能会产生5000帧至10000帧甚至30000帧至40000帧的影像数据,数据量总计约1GB至2GB,按照每天1000例病例计算,当天所有病例的影像数据会达到2TB左右。同时,医疗场景下突发状况瞬息万变,随时可能需要对存储节点(设备)进行增加、移除、更换、检修、逐步淘汰等操作,基于此,利用简单的服务器存储或HDFS***存储无法适应上述数据的存储和突发情况的应对。
为了解决上述技术问题及其衍生的相关技术问题,本发明一实施方式提供一种医疗数据存储***100,如图1所示,包括管理主机1以及与管理及1连接的存储节点集群2,所述存储节点集群2包括分别与管理主机1连接的至少两个存储节点,可以是图1中所示的第一存储节点21和第二存储节点22,也可以是除此之外的其他第N存储节点2N。进一步地,管理主机1可以配置为执行一种数据本地存储控制方法,以具体实现:对象存储模板和存储节点区分标记信息的获取,环定义文件和存储配置文件的生成,存储配置文件和环定义文件的分发,对存储节点初始化、执行存储配置文件以及启用的控制。
管理主机1可以进一步包括全局配置部11、节点配置部12和服务管理部13。其中,全局配置部11用于对后端存储节点集群2中各个存储节点的存储功能配置,以及存储节点之间的存储性能调节。全局配置部11可以具体包括节点信息区111、命令脚本区112、存储模板区113以及总环定义区114。进一步地,节点信息区111可以用于至少接收并存储管理主机1采集的、各存储节点的区分标记信息,并接受管理主机1中其他组件的调用以生成用于控制每个存储节点性能的配置文件或脚本文件,当然在一些实施方式中,节点信息区111可以替代管理主机1主动获取后端存储节点的所述区分标记信息和/或存储有执行上述功能的可执行程序;命令脚本区112可以用于存储预设的、指导管理主机1操作步骤的命令脚本,并接受外部介入的修改和替换,以为管理主机1添附或删减功能;存储模板区113可以用于存储管理主机1获取的对象存储模板,并接受外部介入的修改和替换,以及管理主机1中其他组件的调用以生成用于控制每个存储节点性能的配置文件,当然在一些实施方式中,还可以替代管理主机1主动获取(或爬取)一种对象存储源文件(代码),在其中提取并存储所述对象存储模板,和/或用于存储依赖服务模板、环定义模板等其他模板,和/或用于接受所述其他组件的调用以生成用于控制存储节点性能的环定义文件;总环定义区114可以用于存储根据所述区分标记信息和所述环定义模板生成的环定义文件和/或建环脚本,当然,在一些实施方式中,还可以配置为主动获取所述区分标记信息和所述环定义模板,和/或对两者进行处理得到建环脚本,和/或执行建环脚本得到环定义文件。
节点配置部12用于根据全局配置部11中存储的内容或输出结果,针对不同存储节点生成并存储用于实现其相同或不同存储功能的配置文件和脚本文件,并接收外部调用或主动分发所述配置文件或脚本文件至各个存储节点。节点配置部12可以具体包括***配置区121、存储配置区122和***脚本区123。进一步地,***配置区121可以用于存储支持后端存储节点其他服务及功能实现的基础配置文件,以根据依赖服务模板生成服务配置文件为例,可以包括同步配置文件、缓存配置文件和日志配置文件,从而在分发后在存储节点处实现同步服务、缓存服务和日志服务;存储配置区122可以用于存储支持后端存储节点对象存储服务及功能的配置文件,例如根据对象存储模板生成存储配置文件,从而对各存储节点实施,在依赖服务搭建的基础上进一步构建对象存储服务;***脚本区123用于存储待分发至各存储节点以控制其执行对应任务的可执行脚本,最典型的可以包括用于启用各存储节点的数据存储功能(或称启动各存储节点的对象存储服务)的启动脚本,当然也可以包括其他脚本或其他形式的、控制存储节点动作的信息类型,比如可以是可执行程序或命令/指令等。
服务管理部13用于存储通过管理主机1监视、调配或控制存储节点集群2的其他拓展功能的可执行程序、脚本或命令/指令,具体的配置跟随其功能要求可以进行调整。在一种实施方式中,服务管理部13可以包括部署区131、运维区132、账户区133和监控区134。进一步地,部署区131可以用于存储管理主机1执行部署过程所需的可执行程序,并可以根据命令脚本的指示进行按顺序调用执行;运维区132可以用于存储在存储节点集群2中存储节点数量或其中的存储设备(可以是OSD,全称为Object Storage Device,中文名称为对象存储设备)发生调整时,管理主机1应对该调整所执行的可执行程序,例如应对新增存储节点、移除存储节点或有计划地淘汰存储节点等调整的可执行程序,运维区132中的存储内容具体可以包括控制重新执行环定义文件的生成和分发步骤、控制删除或新增变化存储节点对应的配置文件和脚本文件,和/或控制删除或新增变化存储设备对应的可执行程序或指令;账户区133可以用于存储允许访问各存储节点的账户信息以及与账户信息相关的可执行程序,在一种实施方式中可以具体包括一种账户信息库,可以控制在接收到账户信息后,并行地将账户信息存储于所述账户信息库以及输出以生成相关配置文件,从而将账户信息随配置文件一并分发至存储节点处;监控区134可以用于存储管理主机1采集到的存储节点的服务状态信息,和/或配置为存储主动采集存储节点服务状态的可执行程序,具体地,服务状态信息可以包括用于监控通信是否正常的通信状态信息、用于监控存储节点中央处理器负载状态的负载状态信息、用于监控存储节点内存占用状态的内存状态信息、用于监控存储节点磁盘使用情况的磁盘状态信息,和/或用于监控存储节点与其他外部设备网络通信状态的网络状态信息。
上述各个“区”、“部”的定义,可以是以根目录下的子目录或称文件夹的形式存在,也可以是对相关存储区进行现实或人为模拟的划分形成,本发明并不限制上述任一“区”、“部”的展现形式。同时,上述各种划分概念均是根据其中所存储的内容及功能进行,并不代表本发明仅限于该划分方式,在其他实施方式中,当然可以取消服务管理部13的概念定义而将其内存储的内容分配给全局配置部11和/或节点配置部12,同样地,其他类似于上述调整方式均应当涵盖于本发明的保护范围内。
此外,本发明全文中对装置项中“区”、“部”的功能性限定,虽然主要围绕其存储功能展开,但可以理解地,对应的位置还可以配置为存储有用于得到该存储数据可执行程序(例如爬虫程序),和/或配置为具有足以直接获取相关存储数据的功能,相关衍生方案均在本发明的保护范围内。
存储节点集群2中各个存储节点,在一种实施方式中可以被具体配置为搭建于存储主机中,所述存储主机可以具有至少四核的中央处理器(可以是四核至八核其中任一种),内存容量大于等于16GB,存储空间大于等于2TB(可以是2-4TB),网络吞吐速率大于等于1GBps。在磁盘中,boot分区可以被具体配置为500MB,Swap分区(或称交换区)可以被具体配置为16GB及以上,磁盘中其他剩余空间可以配置为根分区。操作***可以具体配置为Ubuntu Server 16.04 LTS或其他Linux操作***,同时可以安装有SSH(Secure Shell,安全外壳协议)服务。软件方面可以具有功能配置:root密码设置、允许root登录SSH服务、修改更新源、设置DNS(Domain Name System,域名***)以及对iostat、htop等基础工具的安装。所述存储主机优选为物理主机,能够将数据分布于不同物理主机的多个区域上,提升数据存储的安全性能,防止单个主机“宕机”后影响整个***的正常工作;当然,在***性能要求较低、成本限制较大的工况下,当然可以采用在单个物理主机(宿主机)内设置多个虚拟主机的实施方式实现***部署。
所述第一存储节点21、第二存储节点22直至第N存储节点2N,可以配置为具有相同配置,从而可以无需逐个搭建开发环境地、统一根据管理主机1分发的可执行程序实现预期存储等功能,当然也可以根据不同的存储需求将不同存储节点在性能、内部架构和形态上进行区分配置,从而适应多种工况。
在一种实施方式中,第一存储节点21可以具体包括第一***区211、第一环境区212、第一配置区213、第一脚本区214和第一环定义区215。与此相对应的第二存储节点22内同样可以包括第二***区、第二环境区、第二配置区、第二脚本区和第二环定义区;第N存储节点2N可以包括第N***区、第N环境区、第N配置区、第N脚本区和第N环定义区;其他存储节点可以具有上述全部“区”配置,也可以具有上述配置的至少其中之一或其他配置,本领域技术人员可以根据需要进行调整。
以第一存储节点21为例,第一***区211可以用于接收来自管理主机1分发的、用于支持第一存储节点21服务或功能搭建的数据,可以是例如同步配置文件、缓存配置文件或日志配置文件至少其中之一的所述基础配置文件;第一环境区212可以用于接收来自管理主机1分发的、用于构建对象存储服务(功能)环境的数据,可以是所述对象存储源文件(代码),也可以是管理主机1编译所述对象存储源文件(代码)后生成的可执行程序(例如服务运行程序),从而无需第一存储节点21构建开发安装环境,即可直接实现相关基础服务的建立;第一配置区213可以用于接收并存储来自管理主机1分发的、用于被第一环境区212存储的数据读取的对象存储配置文件,实际动作过程中,可以是编译所述对象存储源文件后执行所包含的可执行程序,进一步读取对象存储配置文件从而实现对象存储功能,也可以是直接执行第一环境区212内存储的服务运行程序,读取对象存储配置文件从而实现对象存储功能,两者的区别和技术效果不再赘述;第一脚本区214可以用于接收并存储来自管理主机1分发的、包含任务执行命令的可执行脚本,例如所述启动脚本;第一环定义区215可以用于接收并存储来自管理主机1分发的、至少包含第一存储节点21存储功能调配信息的环定义文件,当然也可以将环定义文件配置为在每个存储节点处相同且均包含全部存储节点的存储功能调配情况。
图2示出了存储节点集群2实现其存储功能时的结构配置及信息交换情况,存储节点集群2同样可以配置为包括第一存储节点1、第二存储节点2直至第N存储节点2N在内的至少两个存储节点,每个存储节点可以被人为划分或被物理地划分为两个部分,分别用于构成存储服务***和存储资源池。每个存储节点用于构成存储服务***的部分可以包括代理服务、账户服务、容器服务、对象服务、配置文件等多种服务(功能)从而接收外部输入的待存储数据,并依据内部设定的服务架构将待存储数据存储至存储资源池的预设位置。每个存储节点用于构成存储资源池的部分可以包括1#存储设备、2#存储设备直至n#存储设备等至少两个存储设备,从而形成分布式存储架构。单个存储节点集群2可以被定义为一个地域(region,r<>),每个存储节点可以被分别定义为一个区域(zone,z<>),单个存储节点上的每个存储设备可以被分别定义为一个分区(p<>),基于此,可以将第一存储节点21的1#存储设备表示为“r1z1-p11”,将第二存储节点22的2#存储设备表示为“r1z2-p22”。
单个存储节点内不同存储设备的存储内容可以配置为相同,也可以配置为不同,例如在一种实施方式中,第一存储节点21中的1#存储设备(r1z1-p11)可以配置为执行对象存储和账户信息存储,第一存储节点21中的2#存储设备(r1z1-p12)可以配置为执行对象存储和容器信息存储,第一存储节点21中还可以包括3#存储设备(r1z1-p13),可以配置为执行对象存储和账户信息存储。如此实现将存储对象、账户信息和容器信息分别存储的效果。
优选地,可以对单份待存储数据在不同存储节点的同一对应存储设备处进行多副本处理。具体地,可以将存储节点集群配置为执行下述步骤:接收第一影像数据,将所述第一影像数据存储于第一存储节点的第一位置,并至少在第二存储节点对应所述第一位置的存储位置形成所述第一影像数据的副本。举例而言,在一种具体实施方式中,可以将接收到的第一影像数据存储于第一存储节点21的1#存储设备(r1z1-p11)处,并在第二存储节点22的1#存储设备(r1z2-p21)处以及第三存储节点的1#存储设备(r1z3-p31)处存储形成两份对第一影像数据的副本。基于此,每个存储节点集群2中可以形成的副本数可以是小于等于存储设备数的任何值,进而避免单个存储设备存储多个副本的情况。
当然,不同影像数据可以将其优先存储于不同的存储节点处,再在其他存储节点中形成该影像数据的副本。具体地,可以将存储节点集群配置为执行下述步骤:接收第一影像数据,将所述第一影像数据存储于第一存储节点的第一位置处,接收第二影像数据,将所述第二影像数据存储于第二存储节点的第三位置处,其中所述第二存储节点包括与所述第一位置对应的第二位置。同时还可以进一步配置为执行下述步骤:至少在第一存储节点对应所述第二位置的存储位置形成所述第二影像数据的副本。举例而言,在一种具体实施方式中,在第一影像数据存储于第一存储节点的1#存储设备(r1z1-p11)处后,可以将接收到的第二影像数据存储于第二存储节点22的2#存储设备(r1z2-p22)处,并在第一存储节点21的2#存储设备(r1z1-p12)处以及第三存储节点23的2#存储设备(r1z3-p32)处存储形成两份对第二影像数据的副本。基于此,可以形成分布式存储,防止单个存储节点失效后导致的原版数据无法调用的问题。当然,基于上述思路,针对具有大于两个存储节点的***,继续在第三存储节点的3#存储设备处存储第三影像数据等步骤可以预期。同时,在仅包括两个存储节点的实施方式中,还可以将接收到的第三影像数据存储于第一存储节点的3#存储设备(若有)或1#存储设备处,由此形成的技术方案均在本发明的保护范围内。
进一步地,所述存储服务***和所述存储资源池之间,以及不同存储节点之间可以配置为通过环定义文件201连通,以根据环定义文件201内记载的预设分配规则,将接收到的待存储数据存储至对应的存储设备中的对应位置处,上文提及的对存储节点和/或存储设备的指定,均可以通过环定义文件201的配置实现。同时每个存储节点处存储的数据量大小可以是相同的,也可以是不同的,优选地,环定义文件201记载有所有存储节点的存储容量,以根据存储容量形成权重,指导存储过程中数据量的分配过程。
基于此,医疗数据存储***100支持横向拓展和纵向拓展至少两种拓展方式。所述横向拓展可以是通过在单个存储节点中新增存储设备(例如硬盘)来实现,所述纵向拓展可以是通过在存储节点集群2中新增存储节点、重新生成并同步环定义文件实现。
所述存储服务***与外部应用之间的交互可以通过并行程序接口202连通,在一种实施方式中,所述并行程序接口202为API(Application Programming Interface,应用程序接口),不同存储节点可以统一配置有一套并行程序接口202,以实现与不同应用程序(例如1#应用、2#应用直至i#应用)之间的数据交换。由于应用程序通过并行程序接口202与存储服务***进行交互(上传/下载),因此无需了解待存储数据的具体内容,提升了数据传输效率。进一步的,存储节点集群2的前端还可以进一步设置有反向代理服务部203,从而,并行程序接口202可以通过访问反向代理服务部203获取可以提供服务的服务主机,能够提高整体的服务效率。
在一种实施方式中并行程序接口202可以包括账户API、容器API、对象API和大对象API。其中,账户API可以用于获取容器列表、获取元数据(即原始的待存储数据,可以是完整的影像数据或影像数据的片段)、设置自定义元数据以及删除自定义元数据;容器API可以用于创建容器、获取元数据、设置自定义元数据、删除自定义元数据、检测容器是否存在、删除容器以及获取容器中对象列表;对象API可以用于创建对象,获取元数据、设置自定义元数据、设置过期时效、检测对象是否存在、获取对象大小、获取对象内容、删除对象、复制对象以及移动对象;大对象API可以用于检查是否支持静态大对象、上传分段对象、上传清单、获取清单、删除大对象以及复制大对象。
而对于前文所述的大对象,实际可以指代数据量较为庞大的待存储影像数据或其他数据。对于影像数据的上传过程而言,可以将其中的影像数据逐帧且并行的上传,并同时生成包含每个影像帧之间管理关系的所述清单,在上传执行完毕后利用所述清单将多个影像帧合并为一个大文件;也可以将多个影像帧先行合并为一个大文件,而后对其按照预设大小(例如以2MB为单位)进行分片,从而在上传后多个分片后的影像数据合并还原为大文件。对于影像数据的下载过程而言,可以逐帧并发下载,也可以按照预设大小(例如以8MB为单位)进行分片并发下载,而后进行大文件合并。值得注意地,不论是针对上文诸如影像帧或分片后的影像数据这种小对象,还是诸如大文件这种大对象,在存储服务***中,都是重新编排后的数据内容,因而即便是非法用户获取到相关的文件,也无法进行正常的读取。优选地,所述大文件可以配置为采用分段上传机制,逐个图像帧上传至所述对象存储***中的分段对象容器中,根据归集分段对象上传信息得到上传信息清单,并将该清单上传至对象存储***中的业务容器中。优选地,所述大文件可以配置为采用分片下载机制,按照预设大小(或称范围)并发读取至本地文件***形成分段文件,而后合并形成本地大文件。
为实现上述发明目的之一,本发明一实施方式提供一种数据本地存储控制方法,如图3所示,可以应用于上述任一种技术方案提供的医疗数据存储***中,也可以应用于其他局域网存储环境中,具体可以包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
其中,所述环定义文件用于调配各存储节点的存储功能。
所述对象存储模板可以被具体定义为实现Swift对象存储功能的相关配置文件、环定义文件的参考样本(Sample)或文件模板,该模板对于不同的操作工况具有统一的形式和内容,旨在实现***的对象存储功能,因而无需根据当前操作状态进行实时调整和重新下载。所述对象存储模板的获取过程,可以是在搭建局域网调试前访问公网爬取或检索获得的,也可以是预设在局域网存储环境内直接调用的。
所述区分标记信息可以被具体定义为存储节点之间进行相互区分的信息,例如节点名称、通信地址和存储容量等信息中至少其中之一。如此,可以通过区分标记信息结合所述对象存储模板生成对应每个存储节点的不同的存储配置文件,以及用于调配所有存储节点的环定义文件。
在所述数据本地存储控制方法配置为实现Swift对象存储的实施方式中,所述存储配置文件可以具体包括***顶层配置文件(swift.conf)、代理服务配置文件(proxy-server.conf)、对象过期配置文件(object-expire.conf)、对应各存储节点中不同存储设备的不同账户服务配置文件(例如,在第一存储节点中存储设备设置有两个的实施方式下,设置于所述第一存储节点中的所述账户服务配置文件可以包括对应1#存储设备的第一账户服务配置文件account-sever/1.conf,和对应2#存储设备的第二账户服务配置文件account-sever/2.conf)、对应各存储节点的不同容器服务配置文件(例如可以包括对应1#存储设备的第一容器服务配置文件container-sever/1.conf,和对应2#存储设备的第二容器服务配置文件container-sever/2.conf)、对应各存储节点的不同容器协调配置文件(例如可以包括对应1#存储设备的第一容器协调配置文件container-reconciler/1.conf,和对应2#存储设备的第二容器协调配置文件container-reconciler/2.conf),以及对应各存储节点的不同对象服务配置文件(例如可以包括对应1#存储设备的第一对象服务配置文件object-sever/1.conf,和对应2#存储设备的第二对象服务配置文件object-sever/2.conf)中至少其中部分。
所述环定义文件可以具体配置为包括所有存储节点的所述区分标记信息,以实现预期的技术效果。在一种实施方式中,对应上述配置文件的配置,环定义文件具体可以包括账户环定义文件(account.ring.gz)、容器环定义文件(container.ring.gz)和对象环定义文件(object.ring.gz)中至少其中部分。
所述初始化过程和解析执行配置文件的过程是相对应的,目的是使配置文件中记载的对象存储信息能够被读取或运行以实现对象存储功能,因而由此产生的一系列配合的具体实施方式均可以替换地应用于步骤32中。例如在一种实施方式中,初始化过程可以被具体定义为构建环境和实现对象存储的基础服务,解析和执行配置文件的过程可以被具体定义为利用搭建好的、实现对象存储的基础服务读取对应的配置文件。而在一些其他的实施方式中,初始化过程可以被具体定义为构建环境并提供足以使静态配置文件运行的工具,解析和执行配置文件的过程可以被具体定义为利用该工具执行配置文件。
对应不同存储节点的环定义文件优选配置为相同,如此可以保持各存储节点在工作过程中了解其他节点的工作状态,当然在一些实施方式中,由于环定义文件的作用在于调配不同存储节点的存储功能,因而可以根据不同存储节点对应的功能配置数据生成不同的环定义文件,并分别分发至不同的存储节点处。
所述启用并执行存储功能,可以定义为启动各存储节点并控制各存储节点执行存储功能,也可以是在存储节点已经启动的基础上,启用并执行其所搭建的存储服务。在后一种实施方式中,其中暗含的启动过程可以设置于存储配置文件和环定义文件生成之后、存储配置文件分发之前,且具体地,分发过程可以配置为通过SSH服务进行。进一步地,存储功能的实现过程可以参考前文对医疗数据存储***的存储过程的描述,也可以配置为简单的接收数据、按照所述存储配置文件和环定义文件进行数据分配并存储的过程,本发明并不进行限制。
本发明一实施方式提供一种数据本地存储控制方法的第一实施例,如图4所示,包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。所述步骤31还可以进一步包括:
步骤311,根据各存储节点的存储容量信息,计算对应每个存储节点的存储权重信息;
步骤312,根据存储权重信息、对应的协议地址信息以及对象存储模板,生成环定义文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
其中,所述区分标记信息包括协议地址信息和存储容量信息。所述存储权重等于对应的存储容量信息的值与总存储容量信息的值之比。
通过将存储容量信息纳入环定义文件中,可以以存储容量作为参考进行数据在不同存储节点内进行不同存储的技术效果,从而充分利用存储容量较大的存储节点以使其存储更多数据内容,保证在各存储节点上的数据存储量均匀合理。在另一种实施方式中,还可以将存储节点性能,例如吞吐效率等参数同样纳入环定义文件的权重定义考量范围内,从而为性能更好的存储节点分配更重的存储任务,提高整体存储效率,当然也可以结合存储节点性能和存储容量两方面指标形成所述权重配置。
同时,区分标记信息可以是预设在管理主机或其他类似功能的装置内的,也可以是控制该装置主动访问存储节点获取的。区分标记信息还可以包括地域编号、区域编号、存储节点名称或服务端口等内容,以共同组成环定义文件中的一条指令。举例而言,对应某一存储节点的、设置于环定义文件中的一条指令可以具体配置为:“swift-ring-builder <builder_file> add r<region>z<zone>-<ip>:<port>/<device_name>_<meta><weight>”。其中,region可以定义为地域编号信息、zone可以定义为区域编号信息、ip可以定义为所述协议地址信息、port可以定义为服务端口信息、device_name可以定义为存储节点名称,weight可以定义为所述存储权重信息。
本发明一实施方式提供一种数据本地存储控制方法的第一实施例的一具体示例,如图4和图5所示,该具体示例包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。其中,所述步骤31可以包括:
步骤311,根据各存储节点的存储容量信息,计算对应每个存储节点的存储权重信息;
步骤312,根据存储权重信息、对应的协议地址信息以及对象存储模板,生成环定义文件。所述步骤312具体可以包括下述步骤:
步骤3121,获取对象存储源文件,构建开发安装环境,提取并编译对象存储源文件,得到环定义模板、存储配置模板和建环执行程序;
步骤3122,将建环执行程序、各存储节点的存储权重信息以及对应的协议地址信息,填入环定义模板,生成并执行建环脚本,得到环定义文件。
步骤313,将每个存储节点的协议地址信息填入存储配置模板,得到对应存储节点的多个存储配置文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
其中,所述对象存储模板包括存储配置模板和环定义模板。
本实施方式中具体定义了对象存储模板的生成来源,将其配置为通过对象存储源文件的提取过程生成。所述对象存储源文件可以是包含有各种模板和代码的资源包,也可以是以对象存储(可以是Swift)源代码为主体附随所述对象存储模板形成的整体文件。
在构建开发安装环境后,调用工具对对象存储源文件进行处理,可以分别对应得到模板和可执行程序,在上文提供的后一种实施方式中,该过程可以被进一步配置为对所述整体文件进行提取,得到包括环定义模板和存储配置模板的对象存储模板或直接得到上述两种具体的模板,并对对象存储源代码进行编译,从而得到至少包含建环执行程序的一系列可执行程序或命令/指令。
对于所述环定义模板,至少在填入所述建环执行程序后,可以是不包含任何具体数值的、如前文所述实施方式提供的、包含多条具有既定格式控制指令(至少包括建环执行程序)的脚本模板文件,也可以是一种形如参考样本的静态脚本文件。对于后一种实施方式,所述静态脚本文件在一种实施例中可以具体配置为下述形式:
“#!/bin/bash
set -e
cd/etc/swift
rm -f *.builder *ring.gz backups/*,builder backups/*.ring.gz
swift-ring-builder object.builder create 10 3 1
swift-ring-builder object.builder add r1z1-127.0.0.1:6210/sdb1 1
swift-ring-builder object.builder add r1z2-127.0.0.2:6220/sdb2 1
swift-ring-builder object.builder add r1z3-127.0.0.3:6230/sdb3 1
swift-ring-builder object.builder add r1z4-127.0.0.4:6240/sdb4 1
swift-ring-builder object.builder rebalance
swift-ring-builder object-1.builder create 10 2 1
swift-ring-builder object-1.builder add r1z1-127.0.0.1:6210/sdb1 1
swift-ring-builder object-1.builder add r1z2-127.0.0.2:6220/sdb2 1
swift-ring-builder object-1.builder add r1z3-127.0.0.3:6230/sdb3 1
swift-ring-builder object-1.builder add r1z4-127.0.0.4:6240/sdb4 1
swift-ring-builder object-1.builder rebalance
swift-ring-builder object-2.builder create 10 6 1
swift-ring-builder object-2.builder add r1z1-127.0.0.1:6210/sdb1 1
swift-ring-builder object-2.builder add r1z1-127.0.0.1:6210/sdb5 1
swift-ring-builder object-2.builder add r1z2-127.0.0.2:6220/sdb2 1
swift-ring-builder object-2.builder add r1z2-127.0.0.2:6220/sdb6 1
swift-ring-builder object-2.builder add r1z3-127.0.0.3:6230/sdb3 1
swift-ring-builder object-2.builder add r1z3-127.0.0.3:6230/sdb6 1
swift-ring-builder object-2.builder add r1z4-127.0.0.4:6240/sdb4 1
swift-ring-builder object-2.builder add r1z4-127.0.0.4:6240/sdb8 1
swift-ring-builder object-2.builder rebalance”。
如此,可以至少将区分标记信息和权重填入上述环定义模板中,即可得到建环脚本。值得注意地,从上文包含object-2的指令中可以看出,针对单个地域(或称存储节点集群)中单个区域(或称存储节点)对应的一个地址中,可能会有多个不同的分区(或称存储设备)sdb,其数量可以调整,并且调整的方式可以是预设,也可以是在填入存储权重信息和协议地址信息生成建环脚本的过程中,将未修改的指令自动删除。同时,设置于单条指令末尾的权重虽然在上述环定义模板中均相等地配置为等于1,但如前所述该权重可以根据需要或预设控制方法调整。此外,上文仅提供了环定义模板中针对对象环定义文件的部分,当然还可以包括针对账户环定义文件和容器环定义文件的部分。
对建环脚本,特别是对其中填入相关区分标记信息后更新的多组建环执行程序执行后,即对应生成可供分发和读取的环定义文件,可以是封装形成的、至少包括下述指令的可执行程序。所述指令可以是:“swift-ring-builder <builder_file> create <part_power> <replicas> <min_part_hours>”。其中,part_power表示分区幂指数(底数可以为2),replicas表示副本数,min_part_hours表示分区调整的最小时间间隔。优选地,所述分区幂指数可以配置为18,副本数可以配置为3,分区调整的最小时间间隔可以配置为24h。
对于存储配置模板,可以被具体配置为一种静态配置文件,具体可以包括[DEFAULT]、[pipeline:main]、[app:object-server]、[filter:recon]、[filter:healthcheck]、[object-replicator]、[object-reconstructor]、[object-updater]、[object-auditor]、[object-relinker]等部分,以分别填入***预设信息、流水线信息、应用程序-对象服务器信息、侦查过滤器信息、健康检查过滤器信息、对象复制器信息、对象重建器信息、对象更新器信息、对象审核器信息、对象重连器信息等。对于[DEFAULT]部分,还可以进一步包括存储设备信息(devices)、安装检查信息(mount_check)、无效预分配信息(disable_fallocate)、绑定协议地址信息(bind_ip)、绑定端口信息(bind_port)、工作设备数(workers)、账户名(user)、日志设施(log_facility)、侦查缓存路径(recon_cache_path)和库调试信息(evenlet_debug)中至少部分。优选地,填入所述存储配置模板的信息中或生成的所述多个存储配置文件中,可以包括用户账号(Swift账号)和/或存储节点中存储设备的数量(一种实施方式中固定为2)。
此外,虽然在本实施方式中,步骤313设置于步骤311和步骤312之后,但是根据步骤313的内容可知,其并不局限于本实施方式提供的先后顺序,换言之,可以先行生成所述存储配置文件,再生成所述环定义文件。同时,由于环定义文件中的存储权重信息并不必然根据所述存储容量信息计算得到,因此,本实施方式中提供的步骤3121、步骤3122以及步骤313也同样并不必然从属于图4提供的实施方式之下,在存储权重信息甚至区分标记信息具有其他配置的实施方式中,当然可以结合步骤3121、步骤3122和步骤313以附加地实现其技术效果。
此外,步骤3121中涉及的获取对象存储源文件,并不必然表示在步骤3121时才获取该对象存储文件,也可以是在步骤31或其之前即获取该对象存储源文件,同样地所述构件开发安装环境也可以是在步骤31之前即构建,从而使后续步骤均在该开发安装环境下进行。
本发明一实施方式提供一种数据本地存储控制方法的第二实施例,如图6所示,包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。其中,所述步骤32可以具体包括:
步骤321,获取对象存储源文件,构建开发安装环境,对对象存储源文件提取得到依赖服务模板;
步骤322,将每个存储节点的协议地址信息填入依赖服务模板,得到对应存储节点的多个服务配置文件;
步骤323,将服务配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的服务配置文件。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
其中,所述服务配置文件包括同步配置文件、缓存配置文件和日志配置文件。
在本实施方式中,在分发、解析并执行所述存储配置文件之前,可以具体包括搭建依赖服务的过程,以为对象存储服务的搭建提供基础。具体地,依赖服务的搭建同样可以通过对对象存储源文件提取模板并填入信息来实现,此处的对象存储源文件可以是如前文所述任一种实施方式所提供的,此处不再赘述。值得强调地,此处步骤321至步骤323虽然如图中所示是连贯的步骤,但是其也可以拆分后交替排列于存储配置文件的生成、分发和执行过程中,只需要保证服务配置文件的执行在存储配置文件之前即可达到预期技术效果,例如,将步骤321至步骤323看作一个整体,可以概括为步骤32中的所述对各存储节点执行初始化的过程,从而在生成存储配置文件之前即完成基础服务的配置,当然也可以将上述初始化过程定义为启动或其他含义,并将服务配置文件与存储配置文件配置为同步生成和/或同步分发和/或先后执行。
服务配置文件,还可以具体包括***更新源配置文件(source.list)、同步服务配置文件(rsyncd.conf)、同步服务脚本文件(rsyncd)、单独日志配置文件(10-swift.conf)和***日志配置文件(rsyslog.conf),上述配置文件可以存储于不同的目录下,也可以配置为存储于相同的“/etc/”目录下,对于前一种实施方式,具体地,所述同步服务配置文件和***日志配置文件可以是存储于“/etc/”目录下,***更新源配置文件可以是存储于“/etc/apt”目录下,同步服务脚本文件可以是存储于“/etc/default/”目录下,单独日志配置文件可以是存储于“/etc/rsyslog.d”目录下。对应地,在分发相关服务配置文件之前,当然可以包括在各存储节点的根目录下建立相关的子目录。
以同步服务配置文件为例,同样可以被配置为一种静态配置文件,具体可以包括:账户标识符信息uid(user identification)、组标识符信息gid(group identification)、日志文件信息log file、进程标识符文件信息pid file以及地址信息address。进一步地,同步服务配置文件还可以包括账户同步信息[account](如[account6212])以及容器同步信息[container](如[container6211])等。
此外,可以理解地,步骤321中获取对象存储源文件和构建开发安装环境的步骤,可以参考前文对步骤3121的论述,单次对存储配置文件和环定义文件的生成、分发、执行过程优选只获取一次对象存储源文件,因而可以设置在任何步骤之前实现对应的技术效果。
本发明一实施方式中提供一种数据本地存储控制方法的第二实施例的一具体示例,如图6和图7所示,包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。其中,所述步骤32可以具体包括:
步骤321,获取对象存储源文件,构建开发安装环境,对对象存储源文件提取得到依赖服务模板;
步骤322,将每个存储节点的协议地址信息填入依赖服务模板,得到对应存储节点的多个服务配置文件;
步骤323,将服务配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的服务配置文件。所述步骤323还可以进一步包括:
步骤3231,编译对象存储源文件得到服务运行程序;
步骤3232,向各存储节点分发服务运行程序,控制各存储节点执行服务运行程序并读取服务配置文件,依次启动同步服务、缓存服务以及日志服务。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
服务配置文件的功能实现过程,在一种实施方式中可以与存储配置文件相同地、通过可执行程序搭建服务后读取从而进行。在该具体示例中,可以通过管理主机1或其他相关装置得到服务运行程序后,直接将该程序统一分发至各存储节点,从而使各存储节点执行该服务运行程序以读取对应的服务配置文件,能够提升各存储节点的配置效率,达到快速启动同步服务、缓存服务和日志服务等功能的效果。
服务运行程序在本实施方式中可以是与建环执行程序相同地、通过对对象存储源文件进行编译形成的。此外,由于服务配置文件在本实施方式中与所述存储配置文件配置为相同的静态配置文件形式,因此可以理解地,存储配置文件同样可以包括类似步骤3231至步骤3232的步骤:编译对象存储源文件得到存储运行程序,向各存储节点分发存储运行程序,控制各存储节点执行存储运行程序并读取存储配置文件,启动存储服务。当然,在一种更为特殊的实施方式中,服务运行程序和存储运行程序可以具有相同的内容或被封装形成一种总体运行程序,以使上述对服务配置文件和存储配置文件的读取执行过程更为简洁。
本发明一实施方式中提供一种数据本地存储控制方法的第二实施例的另一具体示例,如图6和图8所示,包括下述步骤。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。其中,所述步骤32可以具体包括:
步骤321,获取对象存储源文件,构建开发安装环境,对对象存储源文件提取得到依赖服务模板;
步骤322,将每个存储节点的协议地址信息填入依赖服务模板,得到对应存储节点的多个服务配置文件;
步骤323,将服务配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的服务配置文件。所述步骤323还可以进一步包括:
步骤3231’,初始化各存储节点分别形成对象存储目录,并向各存储节点分发对象存储源文件,控制各存储节点构建开发安装环境;
步骤3232’,控制各存储节点编译对象存储源文件得到服务运行程序,执行服务运行程序并读取服务配置文件,依次启动同步服务、缓存服务以及日志服务。
步骤324,将存储配置文件分发并存储至对应的存储节点的对象存储目录下。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
区别于前一实施方式,在本实施方式中,服务运行程序的获得可以通过各存储节点自身对对象存储源文件的解析实现,管理主机1可以直接将对象存储源文件分发至每个存储节点处并控制器构建开发安装环境,从而达到与前一实施方式相类似的技术效果。本实施方式相比于前一实施方式,对存储节点的配置要求低,无需所有存储节点具有相同的配置基础即可进行,且由于存储节点内存储有对象存储源文件,因此也方便外部介入进行功能设置和扩展。
步骤3231’中的对象存储目录的形成过程,并不局限于本实施方式,预期技术效果在于将存储配置文件设置于同一目录下以便后续对象存储功能的搭建。对象存储目录的形成过程优选设置于服务配置文件分发后和存储配置文件分发前的任意时刻,对象存储目录可以具体被定义为“/etc/swift”。
本发明另一实施方式中提供一种数据本地存储控制方法,如图9所述,包括下述步骤。
步骤301,获取对象存储源文件,构建开发安装环境,编译对象存储源文件得到启动执行程序。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
步骤302,根据启动执行程序和区分标记信息,生成对应各存储节点的多个启动脚本。
步骤32,对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。所述步骤33可以具体包括:
步骤331,将启动脚本分发至对应的存储节点,控制各存储节点解析并执行启动脚本。
本实施方式提供一种具体的、控制存储节点启用并执行数据存储的方案。对于步骤301而言,一方面,通过编译对象存储源文件特别是其中的对象存储源代码,可以得到对应的启动执行程序,并利用该启动执行程序实现对象存储功能的启动;另一方面,步骤301可以设置于步骤302(即生成启动脚本步骤)之前的任一位置处,并不局限于设置于步骤31之前;再一方面,结合前文提供的一系列可执行程序,步骤301可以进一步包括:编译对象存储源文件得到建环执行程序、服务运行程序、存储运行程序等,从而在控制方法伊始生成全部相关可执行程序以供调用。
对于步骤302和步骤331,对于不同存储节点,可能由于具有不同的配置情况而需要生成不同的启动脚本,因此可以将上述任一种区分标记信息和得到的启动执行程序生成对应不同节点的启动脚本。当然当各存储节点具有相同的配置或至少启动过程无需针对配置进行区分的情况下,启动脚本可以根据启动执行程序统一生成并分发,而无需如步骤302所述结合区分标记信息进行考量。对于后一种实施方式,启动脚本可以进一步配置为具有下述指令:
“#!/bin/bash
set -e
swift-init main start”。
此外,所述启动脚本可以具有存储目录“$HOME/bin/”。在步骤32完成部署之后、且在步骤331(或称步骤33中控制各存储节点启用并执行数据存储)之前,还可以进一步包括启用通信测试工具(例如测试http通信是否正常,其中,http的全称为Hyper TextTransfer Protocol,中文名称为超文本传输协议)或接口测试工具,通过应用程序—接口设计开发方式与该存储***进行交互,从而验证部署效果是否符合预期。所述通信测试工具可以是cURL工具(CommandLine Unifrom Resource Locator,命令行统一资源***),所述接口测试工具可以是Postman工具,所述应用程序—接口设计开发方式可以是RESTful(Representational State Transfer,表述性状态转移) API方式。
本发明又一实施方式提供一种数据本地存储控制方法的部分步骤,如图10所示,可以设置于图3提供的实施方式及相关实施方式的步骤之后,也可以逐个步骤或整体穿插地设置于上述实施方式提供的步骤之间以形成该又一实施方式。上述又一实施方式的部分步骤具体包括下述内容。
步骤41,获取账户更新信息,并根据账户更新信息更新账户信息库。
步骤42,根据账户更新信息和对象存储模板,生成对应各存储节点的多个更新存储配置文件。
步骤43,将更新存储配置文件分发至对应的存储节点,控制各存储节点重新启动并解析更新存储配置文件。
上文描述了一种针对新增账户的应对方法,相比于前文对存储节点的新增需要重新生成环定义文件而言,账户信息在本实施方式中存储于存储配置文件中,因而在账户需要更新时,需要同步更新存储配置文件,并将对应的更新存储配置文件分发至存储节点处,从而实现增加访问账户的效果。
在本实施方式中,环定义文件并不受账户信息更新的影响,因此无需分发,账户信息优选存储于代理服务配置文件中,因而优选仅更新代理服务配置文件而无需对存储配置文件整体全部调整。更新后的账户信息可以同步存储于预设的账户信息库中,从而保持操作者可以通过管理主机1访问并获知当前可以进行存储的账户数量和内容。
进一步地,图10中还示出了关于该又一实施方式的一个具体示例,在该具体示例中,步骤41和步骤42之间还设置有如图3所示的本发明一实施方式提供的步骤,具体可以包括下述内容。
步骤31,获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件。
当然本发明并不限于上述步骤配置,在该又一实施方式中,步骤43之后还可以进一步包括图3所示本发明一实施方式中的另一部分步骤,例如可以包括下述内容。
步骤33,将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
上述两种步骤配置可以用于应对在存储节点数量和配置有调整时,一并更新环定义文件和存储配置文件,也可以用于应对开始状态下获取原始账户信息的过程中,此时原始账户信息作为一参考数据可以被设置于存储配置文件中,对应的实施方式可以包括步骤:获取原始账户信息,并将原始账户信息存储至账户信息库中;获取对象存储模板以及各存储节点的区分标记信息,根据区分标记信息和对象存储模板中的环定义模板生成环定义文件,并根据区分标记信息、对象存储模板中的存储配置模板和原始账户信息,生成对应各存储节点的多个存储配置文件,所述存储配置文件包括代理服务配置文件,所述代理服务配置文件包括所述原始账户信息;对各存储节点执行初始化,将存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的存储配置文件;将环定义文件分发至各存储节点,控制各存储节点启用并执行数据存储。
本发明再一实施方式提供一种数据本地存储控制方法的部分步骤,如图11所示,优选可以设置于如图3所示的本发明一实施方式及相关实施方式提供的步骤之后,也可以整体穿插地设置于上述实施方式提供的步骤之间以形成该再一实施方式。上述再一实施方式的部分步骤具体包括下述内容。
步骤51,接收外部淘汰指令,解析得到淘汰节点信息。
步骤52,按照预设步长降低淘汰节点信息对应的存储节点在环定义文件中的待淘汰权重,更新环定义文件,并将更新后的环定义文件分发至各存储节点。
步骤53,迭代更新直至待淘汰权重为零。
其中,所述淘汰节点信息包括待淘汰的所述存储节点的区分标记信息。如此,可以逐步淘汰不合格的存储节点,直至待淘汰存储节点的存储权重信息(也即所述待淘汰权重)降低至零时,即可输出提醒或告知操作者移除该存储节点。当然与此相对的,还有配置为存储权重信息按照预设步长提升的、计划性新增存储节点的过程,此处不再赘述。此外,所述预设步长可以是具有与存储权重信息相同的形式,例如可以是百分比、小数等形式,优选所述预设步长为2%。
当然,本发明提供的数据本地存储控制方法还可以包括对存储节点的直接移除和直接添加,此过程仅涉及对环定义文件的重新生成以及存储***重新启动的过程,可以参考上述淘汰过程实现。
本发明提供的数据本地存储控制方法还可以进一步包括对存储节点的状态监控步骤,可以具体包括:通过SSH向存储节点发送监控指令,所述监控指令可以包括cURL指令、top指令、free指令、df指令和netstat指令中至少一种,接收并解析反馈信息,存储至监控区,调用并统计所述监控区内存储的反馈信息,得到并输出显示至少一个存储节点的状态信息。其中,所述cURL指令用于测试存储节点与代理服务的通信是否正常;所述top指令用于获取CPU(Central Processing Unit,中央处理器)负载;free指令用于获取内存占用;df指令用于获取磁盘使用情况;netstat用于获取网络状态。
综上,本发明提供的数据本地存储控制方法,在获取对象存储模板后即可根据存储节点的情况,对应生成用于实现存储功能的存储配置文件以及用于调配各存储节点存储功能的环定义文件,先后将两项文件分发至存储节点并控制其执行,如此能够适应存储节点的新增和移除而动态形成不同的存储策略;同时,存储配置文件和环定义文件均通过对象存储模板生成,存储功能的搭建过程无需访问公网,能够适应医院等封闭的局域网存储环境。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据本地存储控制方法,应用于局域网存储环境中,其特征在于,包括:
获取对象存储模板以及各存储节点的区分标记信息,根据所述区分标记信息和所述对象存储模板,生成环定义文件和对应各存储节点的多个存储配置文件;其中,所述环定义文件用于调配各存储节点的存储功能;
对各存储节点执行初始化,将所述存储配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的所述存储配置文件;
将所述环定义文件分发至所述各存储节点,控制所述各存储节点启用并执行数据存储。
2.根据权利要求1所述的数据本地存储控制方法,其特征在于,所述区分标记信息包括协议地址信息和存储容量信息;所述方法具体包括:
根据各存储节点的所述存储容量信息,计算对应每个存储节点的存储权重信息;其中,所述存储权重等于对应的存储容量信息的值与总存储容量信息的值之比;
根据所述存储权重信息、对应的协议地址信息以及所述对象存储模板,生成所述环定义文件。
3.根据权利要求2所述的数据本地存储控制方法,其特征在于,所述对象存储模板包括存储配置模板和环定义模板;所述方法具体包括:
获取对象存储源文件,构建开发安装环境,提取并编译所述对象存储源文件,得到所述环定义模板、所述存储配置模板和建环执行程序;
将所述建环执行程序、各存储节点的所述存储权重信息以及对应的协议地址信息,填入所述环定义模板,生成并执行建环脚本,得到所述环定义文件;
将每个存储节点的协议地址信息填入所述存储配置模板,得到对应存储节点的多个所述存储配置文件。
4.根据权利要求2所述的数据本地存储控制方法,其特征在于,所述方法具体包括:
获取对象存储源文件,构建开发安装环境,对所述对象存储源文件提取得到依赖服务模板;
将每个存储节点的协议地址信息填入所述依赖服务模板,得到对应存储节点的多个服务配置文件;
将所述服务配置文件分发至对应的存储节点,控制各存储节点解析并执行对应的所述服务配置文件;
其中,所述服务配置文件包括同步配置文件、缓存配置文件和日志配置文件。
5.根据权利要求4所述的数据本地存储控制方法,其特征在于,所述方法具体包括:
编译所述对象存储源文件得到服务运行程序;
向各存储节点分发所述服务运行程序,控制各存储节点执行所述服务运行程序并读取所述服务配置文件,依次启动同步服务、缓存服务以及日志服务。
6.根据权利要求4所述的数据本地存储控制方法,其特征在于,所述方法具体包括:
初始化各存储节点分别形成对象存储目录,并向各存储节点分发所述对象存储源文件,控制各存储节点构建开发安装环境;
控制各存储节点编译所述对象存储源文件得到服务运行程序,执行所述服务运行程序并读取所述服务配置文件,依次启动同步服务、缓存服务以及日志服务;
将所述存储配置文件分发并存储至对应的存储节点的对象存储目录下。
7.根据权利要求1所述的数据本地存储控制方法,其特征在于,所述方法还包括:
获取对象存储源文件,构建开发安装环境,编译所述对象存储源文件得到启动执行程序;
根据所述启动执行程序和所述区分标记信息,生成对应各存储节点的多个启动脚本;
所述方法具体包括:
将所述启动脚本分发至对应的存储节点,控制各存储节点解析并执行所述启动脚本。
8.根据权利要求1所述的数据本地存储控制方法,其特征在于,所述方法还包括:
获取账户更新信息,并根据所述账户更新信息更新账户信息库;
根据所述账户更新信息和所述对象存储模板,生成对应各存储节点的多个更新存储配置文件;
将所述更新存储配置文件分发至对应的存储节点,控制各存储节点重新启动并解析所述更新存储配置文件。
9.根据权利要求1所述的数据本地存储控制方法,其特征在于,所述方法还包括:
接收外部淘汰指令,解析得到淘汰节点信息;
按照预设步长降低所述淘汰节点信息对应的存储节点在环定义文件中的待淘汰权重,更新所述环定义文件,并将更新后的环定义文件分发至所述各存储节点;
迭代更新直至所述待淘汰权重为零;
其中,所述淘汰节点信息包括待淘汰的所述存储节点的区分标记信息。
10.一种医疗数据存储***,其特征在于,包括管理主机以及与所述管理主机连接的至少两个存储节点,所述管理主机配置为执行权利要求1-9任一项所述的数据本地存储控制方法。
CN202210140022.2A 2022-02-16 2022-02-16 数据本地存储控制方法及医疗数据存储*** Active CN114185866B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210140022.2A CN114185866B (zh) 2022-02-16 2022-02-16 数据本地存储控制方法及医疗数据存储***
PCT/CN2023/075857 WO2023155765A1 (zh) 2022-02-16 2023-02-14 数据本地存储控制方法及医疗数据存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210140022.2A CN114185866B (zh) 2022-02-16 2022-02-16 数据本地存储控制方法及医疗数据存储***

Publications (2)

Publication Number Publication Date
CN114185866A true CN114185866A (zh) 2022-03-15
CN114185866B CN114185866B (zh) 2022-05-03

Family

ID=80546025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210140022.2A Active CN114185866B (zh) 2022-02-16 2022-02-16 数据本地存储控制方法及医疗数据存储***

Country Status (2)

Country Link
CN (1) CN114185866B (zh)
WO (1) WO2023155765A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023155765A1 (zh) * 2022-02-16 2023-08-24 安翰科技(武汉)股份有限公司 数据本地存储控制方法及医疗数据存储***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149073A (zh) * 2023-08-30 2023-12-01 中科驭数(北京)科技有限公司 存储方案的配置方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501950B1 (en) * 1996-03-14 2002-12-31 Bellsouth Intellectual Property Corporation Systems and methods for monitoring data signals on a communications network
CN108418871A (zh) * 2018-02-09 2018-08-17 国家电网公司 一种云存储性能优化方法和***
US20180337942A1 (en) * 2017-05-16 2018-11-22 Ciena Corporation Quorum systems and methods in software defined networking
CN110032547A (zh) * 2019-01-29 2019-07-19 香港贝尔科技有限公司 一种分布式环境下文件存储改进方法
CN111831662A (zh) * 2020-07-24 2020-10-27 深圳市网通兴技术发展有限公司 一种医疗数据信息处理方法及***
CN113963763A (zh) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 医疗数据存储的分区变更方法以及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312791B (zh) * 2013-05-24 2016-02-24 上海和伍信息技术有限公司 物联网异构数据存储方法及***
US20150271014A1 (en) * 2014-03-21 2015-09-24 Onyx Ccs Automatic configuration of new components by infrastructure management software
US9762672B2 (en) * 2015-06-15 2017-09-12 International Business Machines Corporation Dynamic node group allocation
CN112732183B (zh) * 2020-12-30 2022-01-11 科东(广州)软件科技有限公司 异构***存储设备的访问方法、装置、设备及存储介质
CN114185866B (zh) * 2022-02-16 2022-05-03 安翰科技(武汉)股份有限公司 数据本地存储控制方法及医疗数据存储***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501950B1 (en) * 1996-03-14 2002-12-31 Bellsouth Intellectual Property Corporation Systems and methods for monitoring data signals on a communications network
US20180337942A1 (en) * 2017-05-16 2018-11-22 Ciena Corporation Quorum systems and methods in software defined networking
CN108418871A (zh) * 2018-02-09 2018-08-17 国家电网公司 一种云存储性能优化方法和***
CN110032547A (zh) * 2019-01-29 2019-07-19 香港贝尔科技有限公司 一种分布式环境下文件存储改进方法
CN111831662A (zh) * 2020-07-24 2020-10-27 深圳市网通兴技术发展有限公司 一种医疗数据信息处理方法及***
CN113963763A (zh) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 医疗数据存储的分区变更方法以及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李磊等: "基于openStack Swift构建高可用私有云存储平台", 《实验技术与管理》 *
葛江浩等: "openstack swift关键技术分析与性能评测", 《微型电脑应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023155765A1 (zh) * 2022-02-16 2023-08-24 安翰科技(武汉)股份有限公司 数据本地存储控制方法及医疗数据存储***

Also Published As

Publication number Publication date
CN114185866B (zh) 2022-05-03
WO2023155765A1 (zh) 2023-08-24

Similar Documents

Publication Publication Date Title
CN108958927B (zh) 容器应用的部署方法、装置、计算机设备和存储介质
US11556367B2 (en) Dynamic image composition for container deployment
US8924954B2 (en) Application software installation method and application software installation apparatus
KR102236522B1 (ko) 정보를 처리하기 위한 방법 및 장치
CN114185866B (zh) 数据本地存储控制方法及医疗数据存储***
EP2765508B1 (en) Installation method and installation device for application software
US9087076B2 (en) Automated filer technique for use in virtualized appliances and applications
US10585691B2 (en) Distribution system, computer, and arrangement method for virtual machine
CN110413288B (zh) 应用部署方法、装置、服务器及存储介质
US8719782B2 (en) Integrated package development and machine configuration management
JP5681465B2 (ja) 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US20220164323A1 (en) Online schema change of range-partitioned index in a distributed storage system
US10963236B2 (en) Creation of software images of software applications for image-based maintenance of the software applications
CN104182257B (zh) 应用软件的安装方法和应用软件的安装装置
WO2016089434A1 (en) Live rollback for a computing environment
CN110347483B (zh) 物理机到虚拟机迁移方法、装置及存储介质
CN107357607B (zh) 文件数据的读取方法及装置
CN110727446A (zh) 自动部署方法、装置、设备及介质
US11681585B2 (en) Data migration for a shared database
KR20160143519A (ko) 시스템, 서버 시스템, 방법 및 프로그램
CN116069354A (zh) 应用程序的升级方法、装置、设备及存储介质
CN113419743B (zh) 综合型应用脚本部署方法、装置、设备及存储介质
CN107632934B (zh) 一种C-sharp中函数复制方法及装置
CN118069600A (zh) 文件的修改方法、***、设备、介质及计算机程序产品
CN116991411A (zh) 程序融合方法、装置、设备、存储介质及计算机程序产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant