CN114185866A - Data local storage control method and medical data storage system - Google Patents

Data local storage control method and medical data storage system 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
Chinese (zh)
Other versions
CN114185866B (en
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/en
Publication of CN114185866A publication Critical patent/CN114185866A/en
Application granted granted Critical
Publication of CN114185866B publication Critical patent/CN114185866B/en
Priority to PCT/CN2023/075857 priority patent/WO2023155765A1/en
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

The invention discloses a data local storage control method and a medical data storage system, wherein the data local storage control method is applied to a local area network storage environment and comprises the following steps: acquiring an object storage template and distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template; the ring definition file is used for allocating the storage function of each storage node; initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file; and distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage. The data local storage control method provided by the invention can adapt to the addition and removal of the storage nodes to dynamically form different storage strategies, and can adapt to the closed local area network storage environment of hospitals and the like.

Description

Data local storage control method and medical data storage system
Technical Field
The invention relates to the technical field of computers, in particular to a data local storage control method and a medical data storage system.
Background
In the field of computer technology, especially for storage conditions that medical equipment outputs data and the like and needs to be set up in a local area network environment, how to realize fast, safe and efficient storage of a large amount of data is a problem to be solved urgently. In view of the above, the general technical field provides technical solutions for directly storing data in a Web server, an FTP (File Transfer Protocol) server, an HDFS (Distributed File System) storage System, a commercial cloud storage server, and the like. However, although the first scheme is simple in construction process, the first scheme has the defects of poor throughput efficiency, poor expansibility and poor safety, and the second scheme is not suitable for small file operation and does not support concurrent writing and is difficult to adapt to the requirement of efficient storage of large data although the second scheme has strong expansibility and fault tolerance. The third scheme supports high concurrency and expansion requirements, but has strong dependence on the internet, and cannot be applied to the situation that a local area network environment is required to be arranged in a hospital and the like.
Disclosure of Invention
One of the objectives of the present invention is to provide a data local storage control method, so as to solve the technical problems that a data storage scheme in the prior art cannot give consideration to high efficiency of data transmission, expandable storage nodes, and applicability to a local area network closed environment.
It is an object of the present invention to provide a medical data storage system.
In order to achieve one of the above objects, an embodiment of the present invention provides a data local storage control method, applied in a local area network storage environment, including: acquiring an object storage template and distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template; the ring definition file is used for allocating the storage function of each storage node; initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file; and distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
As a further improvement of an embodiment of the present invention, the distinguishing mark information includes protocol address information and storage capacity information; the method specifically comprises the following steps: calculating storage weight information corresponding to each storage node according to the storage capacity information of each storage node; wherein the storage weight is equal to a ratio of a value of the corresponding storage capacity information to a value of the total storage capacity information; and generating the ring definition file according to the storage weight information, the corresponding protocol address information and the object storage template.
As a further improvement of an embodiment of the present invention, the object storage template includes a storage configuration template and a ring definition template; the method specifically comprises the following steps: acquiring an object storage source file, constructing a development and installation environment, extracting and compiling the object storage source file to obtain the ring definition template, the storage configuration template and a ring building executive program; filling the ring-building executive program, the storage weight information of each storage node and corresponding protocol address information into the ring definition template, and generating and executing a ring-building script to obtain the ring definition file; and filling the protocol address information of each storage node into the storage configuration template to obtain a plurality of storage configuration files corresponding to the storage nodes.
As a further improvement of an embodiment of the present invention, the method specifically includes: acquiring an object storage source file, constructing a development and installation environment, and extracting the object storage source file to obtain a dependent service template; filling the protocol address information of each storage node into the dependent service template to obtain a plurality of service configuration files corresponding to the storage nodes; distributing the service configuration file to corresponding storage nodes, controlling each storage node to analyze and execute the corresponding service configuration file; wherein the service configuration file comprises a synchronization configuration file, a cache configuration file and a log configuration file.
As a further improvement of an embodiment of the present invention, the method specifically includes: compiling the object storage source file to obtain a service operation program; distributing the service operation program to each storage node, controlling each storage node to execute the service operation program and read the service configuration file, and sequentially starting a synchronization service, a cache service and a log service.
As a further improvement of an embodiment of the present invention, the method specifically includes: initializing each storage node to respectively form an object storage directory, distributing the object storage source file to each storage node, and controlling each storage node to construct a development and installation environment; controlling each storage node to compile the object storage source file to obtain a service operation program, executing the service operation program, reading the service configuration file, and sequentially starting a synchronization service, a cache service and a log service; and distributing and storing the storage configuration file to the object storage directory of the corresponding storage node.
As a further improvement of an embodiment of the present invention, the method further comprises: acquiring an object storage source file, constructing a development and installation environment, and compiling the object storage source file to obtain a start execution program; generating a plurality of starting scripts corresponding to the storage nodes according to the starting executive program and the distinguishing mark information; the method specifically comprises the following steps: and distributing the start script to corresponding storage nodes, and controlling each storage node to analyze and execute the start script.
As a further improvement of an embodiment of the present invention, the method further comprises: acquiring account updating information, and updating an account information base according to the account updating information; generating a plurality of updated storage configuration files corresponding to each storage node according to the account updating information and the object storage template; and distributing the updated storage configuration file to corresponding storage nodes, controlling each storage node to restart and analyzing the updated storage configuration file.
As a further improvement of an embodiment of the present invention, the method further comprises: receiving an external elimination instruction, and analyzing to obtain elimination node information; reducing the weight to be eliminated of the storage node corresponding to the eliminated node information in the ring definition file according to a preset step length, updating the ring definition file, and distributing the updated ring definition file to each storage node; iteratively updating until the weight to be eliminated is zero; the obsolete node information comprises distinguishing mark information of the storage nodes to be obsolete.
In order to achieve one of the above objects, an embodiment of the present invention provides a medical data storage system, which includes a management host and at least two storage nodes connected to the management host, where the management host is configured to execute the data local storage control method according to any one of the above technical solutions.
Compared with the prior art, the data local storage control method provided by the invention can correspondingly generate the storage configuration file for realizing the storage function and the ring definition file for allocating the storage function of each storage node according to the condition of the storage node after the object storage template is obtained, and sequentially distribute the two files to the storage node and control the storage node to execute, so that different storage strategies can be dynamically formed by adapting to the addition and removal of the storage node; meanwhile, the storage configuration file and the ring definition file are generated through the object storage template, the public network does not need to be accessed in the building process of the storage function, and the method can adapt to the closed local area network storage environment of hospitals and the like.
Drawings
FIG. 1 is a schematic diagram of a medical data storage system according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a storage node cluster in the medical data storage system according to another embodiment of the present invention;
FIG. 3 is a schematic diagram illustrating steps of a data local storage control method according to an embodiment of the present invention;
FIG. 4 is a schematic diagram illustrating steps of a first embodiment of a method for controlling local storage of data according to an embodiment of the present invention;
fig. 5 is a schematic diagram of a part of steps of a specific example of a first embodiment of a data local storage control method according to an embodiment of the present invention;
FIG. 6 is a schematic diagram illustrating steps of a second embodiment of a method for controlling local storage of data according to an embodiment of the present invention;
fig. 7 is a schematic diagram of a part of steps of a specific example of a second embodiment of a data local storage control method according to an embodiment of the present invention;
fig. 8 is a schematic diagram of a part of steps of another specific example of a second embodiment of a data local storage control method according to an embodiment of the present invention;
FIG. 9 is a schematic diagram of steps of a data local storage control method according to another embodiment of the present invention;
FIG. 10 is a schematic diagram of a portion of steps of a data local storage control method according to another embodiment of the present invention;
fig. 11 is a schematic diagram of a part of steps of a data local storage control method according to still another embodiment of the present invention.
Detailed Description
The present invention will be described in detail below with reference to specific embodiments shown in the drawings. These embodiments are not intended to limit the present invention, and structural, methodological, or functional changes made by those skilled in the art according to these embodiments are included in the scope of the present invention.
It is to be noted that the term "comprises," "comprising," or any other variation thereof is intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Furthermore, the terms "first," "second," "nth," and the like are used for descriptive purposes only and are not to be construed as indicating or implying relative importance.
The current scheme for implementing high-throughput data Storage is generally based on an aristoloc Object Storage OSS (Object Storage Service) or Amazon S3 (Amazon Simple Storage Service), however, whether based on any of the above Storage schemes, it is necessary to access a server of a provider through the internet to enable utilization of the data Storage Service, and for data generated in a hospital scene, or other medical data, etc., data that needs to be transmitted by high security measures, there is a great risk in storing the data through the internet.
The privatization based on the same architecture as the ari cloud object storage OSS and the Amazon S3 cannot avoid the process of data transmission with the Internet on one hand, and the privatization deployment system has a huge architecture on the other hand, each service architecture has dependency, so that the building process and the operation and maintenance steps are complex, the versions among the service architectures need to be kept uniform, and the core storage service cannot be updated at any time and the optimized function can be used. In addition, for example, simple Web server storage, FTP server storage, or HDFS system storage, although the transmission process can be localized by adjustment, cannot realize parallel storage or expansion of storage nodes (devices).
Taking the image data transmitted by the capsule endoscope as an example, a single case may generate 5000-10000 frames of image data, even 30000-40000 frames of image data, the data amount is about 1 GB-2 GB, and the image data of all cases on the day may reach about 2TB according to 1000 cases per day. Meanwhile, the sudden situation is changed in a medical scene, and the storage nodes (equipment) may need to be added, removed, replaced, overhauled, and gradually eliminated at any time.
In order to solve the above technical problems and the related technical problems derived therefrom, an embodiment of the present invention provides a medical data storage system 100, as shown in fig. 1, including a management host 1 and a storage node cluster 2 connected to the management host 1, where the storage node cluster 2 includes at least two storage nodes respectively connected to the management host 1, and may be a first storage node 21 and a second storage node 22 shown in fig. 1, or may be another nth storage node 2N besides the first storage node and the second storage node. Further, the management host 1 may be configured to execute a data local storage control method to implement: the method comprises the steps of obtaining object storage template and storage node distinguishing mark information, generating a ring definition file and a storage configuration file, distributing the storage configuration file and the ring definition file, initializing the storage node, executing the storage configuration file and controlling the starting.
The management host 1 may further include a global configuration section 11, a node configuration section 12, and a service management section 13. The global configuration unit 11 is configured to configure storage functions of each storage node in the backend storage node cluster 2, and adjust storage performance between the storage nodes. The global configuration section 11 may specifically include a node information region 111, a command script region 112, a storage template region 113, and a total ring definition region 114. Further, the node information area 111 may be configured to at least receive and store the distinguishing mark information of each storage node, which is collected by the management host 1, and receive calls of other components in the management host 1 to generate a configuration file or a script file for controlling performance of each storage node, where, of course, in some embodiments, the node information area 111 may replace the management host 1 to actively obtain the distinguishing mark information of the backend storage node and/or store an executable program for performing the above functions; the command script area 112 may be used to store a preset command script that guides the operation steps of the management host 1 and accept modification and replacement of external intervention to add or delete functions to the management host 1; the storage template region 113 may be used for storing object storage templates acquired by the management host 1 and accepting modification and replacement of external intervention, and for invoking other components in the management host 1 to generate configuration files for controlling the performance of each storage node, but may also, in some embodiments, be used for actively acquiring (or crawling) an object storage source file (code) in place of the management host 1, extracting and storing the object storage templates therein, and/or for storing other templates such as a dependency service template, a ring definition template, and/or for accepting invocation of the other components to generate a ring definition file for controlling the performance of the storage nodes; the total ring definition area 114 may be configured to store a ring definition file and/or a ring creation script generated according to the distinguishing mark information and the ring definition template, and of course, in some embodiments, may also be configured to actively obtain the distinguishing mark information and the ring definition template, and/or process both to obtain the ring creation script, and/or execute the ring creation script to obtain the ring definition file.
The node configuration section 12 is configured to generate and store configuration files and script files for realizing the same or different storage functions thereof for different storage nodes according to the contents or output results stored in the global configuration section 11, and receive external calls or actively distribute the configuration files or script files to the respective storage nodes. The node arrangement part 12 may specifically include a system arrangement area 121, a storage arrangement area 122, and a system script area 123. Further, the system configuration area 121 may be configured to store a basic configuration file supporting other services and function implementation of a backend storage node, and for example, the basic configuration file may include a synchronization configuration file, a cache configuration file, and a log configuration file by generating a service configuration file according to a dependent service template, so that a synchronization service, a cache service, and a log service are implemented at the storage node after distribution; the storage configuration area 122 may be configured to store a configuration file that supports a backend storage node object storage service and function, for example, generate a storage configuration file according to an object storage template, so as to implement each storage node, and further construct an object storage service on the basis of service-dependent building; the system script area 123 is used for storing an executable script to be distributed to each storage node to control the storage node to execute a corresponding task, and may most typically include a start script for enabling a data storage function of each storage node (or an object storage service for starting each storage node), and may also include other scripts or other forms of information types for controlling actions of the storage nodes, such as an executable program or a command/instruction.
The service management unit 13 is used to store executable programs, scripts, or commands/instructions for monitoring, deploying, or controlling other extended functions of the storage node cluster 2 by the management host 1, and the specific configuration can be adjusted according to the functional requirements. In one embodiment, the service manager 13 may include a deployment area 131, an operation and maintenance area 132, an account area 133, and a monitoring area 134. Further, the deployment area 131 may be used to store executable programs required by the management host 1 to execute the deployment process, and may perform sequential call execution according to the instruction of the command script; the operation and maintenance area 132 may be configured to, when the number of Storage nodes in the Storage node cluster 2 or Storage devices (may be OSD, which is called Object Storage devices collectively, and the names of the Storage devices in chinese characters are Object Storage devices) are adjusted, manage an executable program executed by the host 1 corresponding to the adjustment, for example, an executable program corresponding to an additional Storage node, a Storage node removed, or a Storage node removed in a planned way, and the Storage content in the operation and maintenance area 132 may specifically include a configuration file and a script file corresponding to a control to re-execute a ring definition file, a control to delete or newly change a Storage node, and/or an executable program or an instruction corresponding to a control to delete or newly change a Storage Device; the account area 133 may be used to store account information allowing access to each storage node and an executable program related to the account information, and in one embodiment, may specifically include an account information base, which may control, after receiving the account information, to store the account information in the account information base and output the account information base in parallel to generate a related configuration file, so as to distribute the account information to the storage nodes along with the configuration file; the monitoring area 134 may be configured to store service state information of the storage node collected by the management host 1, and/or configured to store an executable program for actively collecting a service state of the storage node, and specifically, the service state information may include communication state information for monitoring whether communication is normal, load state information for monitoring a load state of a central processor of the storage node, memory state information for monitoring a memory occupied state of the storage node, disk state information for monitoring a disk usage of the storage node, and/or network state information for monitoring a network communication state of the storage node with other external devices.
The definitions of the "regions" and "portions" may be in the form of subdirectories or folders under the root directory, or may be formed by dividing the related storage areas in reality or by artificial simulation, and the present invention is not limited to the presentation forms of any "region" and "portion". Meanwhile, the above-mentioned various division concepts are performed according to the content and the function stored therein, and do not represent that the present invention is limited to this division manner, but in other embodiments, the concept definition of the service management unit 13 may be cancelled and the content stored therein may be distributed to the global configuration unit 11 and/or the node configuration unit 12, and similarly, other adjustment manners similar to the above-mentioned ones should be covered within the protection scope of the present invention.
Furthermore, the functional definition of "region" and "portion" in the device item in the present invention is mainly expanded around the storage function, but it is understood that the corresponding location may also be configured to store an executable program (such as a crawler program) for obtaining the stored data, and/or configured to have a function sufficient to directly obtain the related stored data, and the related derivative schemes are all within the protection scope of the present invention.
Each storage node in the storage node cluster 2 may be specifically configured to be built in a storage host, where the storage host may have at least four cores of central processing units (which may be any one of four cores to eight cores), the memory capacity is greater than or equal to 16GB, the storage space is greater than or equal to 2TB (which may be 2-4 TB), and the network throughput rate is greater than or equal to 1 GBps. In a disk, a boot partition may be specifically configured as 500MB, a Swap partition (or Swap partition) may be specifically configured as 16GB and above, and other remaining space in the disk may be configured as a root partition. The operating system may be specifically configured as an Ubuntu Server 16.04 LTS or other Linux operating system, while SSH (Secure Shell) services may be installed. The software aspect may have a functional configuration: root password setting, allowing roots to log in SSH service, modifying an update source, setting DNS (Domain Name System) and installing basic tools such as iostat and htop. The storage host is preferably a physical host, and can distribute data on a plurality of areas of different physical hosts, thereby improving the safety performance of data storage and preventing the normal work of the whole system from being influenced after the single host is down; of course, under the working conditions of low system performance requirement and large cost limitation, the system deployment can be realized by adopting the implementation mode of setting a plurality of virtual hosts in a single physical host (host).
The first storage node 21, the second storage node 22, and up to the nth storage node 2N may be configured to have the same configuration, so that functions such as expected storage may be realized uniformly according to the executable program distributed by the management host 1 without building development environments one by one, and of course, different storage nodes may be configured differently in performance, internal architecture, and form according to different storage requirements, thereby adapting to various working conditions.
In one embodiment, the first storage node 21 may specifically include a first system area 211, a first environment area 212, a first configuration area 213, a first script area 214, and a first ring definition area 215. The corresponding second storage node 22 may also include a second system area, a second environment area, a second configuration area, a second script area, and a second ring definition area; the nth storage node 2N may include an nth system area, an nth environment area, an nth configuration area, an nth script area, and an nth ring definition area; other storage nodes may have all of the "zone" configurations described above, or at least one of the above configurations or other configurations, as may be adjusted by one skilled in the art as desired.
Taking the first storage node 21 as an example, the first system area 211 may be configured to receive data distributed from the management host 1 and used for supporting service or function building of the first storage node 21, and may be the basic configuration file such as at least one of a synchronization configuration file, a cache configuration file, or a log configuration file; the first environment region 212 may be configured to receive data, which is distributed by the management host 1 and used for building an object storage service (function) environment, where the data may be the object storage source file (code) or an executable program (e.g., a service execution program) generated by the management host 1 after compiling the object storage source file (code), so that the building of a relevant basic service may be directly achieved without building a development installation environment by the first storage node 21; the first configuration area 213 may be configured to receive and store an object storage configuration file, which is distributed by the management host 1 and used for being read by data stored in the first environment area 212, and in an actual action process, the object storage configuration file may be compiled and then an included executable program is executed, and the object storage configuration file is further read so as to implement an object storage function, or a service execution program stored in the first environment area 212 may be directly executed, and the object storage configuration file is read so as to implement an object storage function, and differences and technical effects of the two are not described again; the first script area 214 may be configured to receive and store an executable script distributed from the management host 1 and including a task execution command, such as the start script; the first ring definition area 215 may be configured to receive and store a ring definition file distributed from the management host 1 and including at least the storage function deployment information of the first storage node 21, and of course, the ring definition file may be configured to be the same at each storage node and include storage function deployment situations of all the storage nodes.
Fig. 2 shows a structural configuration and an information exchange situation when the storage node cluster 2 implements its storage function, where the storage node cluster 2 may also be configured as at least two storage nodes including a first storage node 1, a second storage node 2, and up to an nth storage node 2N, and each storage node may be divided into two parts by an artificial partition or a physical partition, which are respectively used to form a storage service system and a storage resource pool. Each storage node is used for forming a part of the storage service system and can comprise a plurality of services (functions) such as proxy service, account service, container service, object service, configuration file and the like so as to receive externally input data to be stored, and store the data to be stored to a preset position of a storage resource pool according to an internally set service architecture. The part of each storage node for forming the storage resource pool can comprise at least two storage devices, namely a 1# storage device, a 2# storage device and an n # storage device, so as to form a distributed storage architecture. The single storage node cluster 2 may be defined as a zone (region, r < >), each storage node may be defined as a zone (zone, z < >), and each storage device on the single storage node may be defined as a partition (p < >), based on which the 1# storage device of the first storage node 21 may be represented as "r 1z1-p 11" and the 2# storage device of the second storage node 22 may be represented as "r 1z2-p 22".
For example, in one embodiment, the 1# storage device (r 1z1-p 11) in the first storage node 21 may be configured to perform object storage and account information storage, the 2# storage device (r 1z1-p 12) in the first storage node 21 may be configured to perform object storage and container information storage, and the 3# storage device (r 1z1-p 13) in the first storage node 21 may be configured to perform object storage and account information storage. Thus, the effect of respectively storing the storage object, the account information and the container information is realized.
Preferably, multiple copies of the data to be stored may be processed at the same corresponding storage device of different storage nodes for a single copy. In particular, a cluster of storage nodes may be configured to perform the steps of: receiving first image data, storing the first image data in a first position of a first storage node, and forming a copy of the first image data at least in a storage position of a second storage node corresponding to the first position. For example, in one embodiment, the received first image data may be stored at 1# storage device (r 1z1-p 11) of the first storage node 21 and stored at 1# storage device (r 1z2-p 21) of the second storage node 22 and at 1# storage device (r 1z3-p 31) of the third storage node to form two copies of the first image data. Based on this, the number of copies that can be formed in each storage node cluster 2 may be any value less than or equal to the number of storage devices, thereby avoiding a situation where a single storage device stores multiple copies.
Of course, different image data may be preferentially stored at different storage nodes, and copies of the image data may be formed in other storage nodes. In particular, a cluster of storage nodes may be configured to perform the steps of: the method comprises the steps of receiving first image data, storing the first image data at a first position of a first storage node, receiving second image data, and storing the second image data at a third position of a second storage node, wherein the second storage node comprises a second position corresponding to the first position. And may be further configured to perform the steps of: and forming a copy of the second image data at least at a storage location of the first storage node corresponding to the second location. For example, in one embodiment, after the first image data is stored at the 1# storage device (r 1z1-p 11) of the first storage node, the received second image data may be stored at the 2# storage device (r 1z2-p 22) of the second storage node 22 and stored at the 2# storage device (r 1z1-p 12) of the first storage node 21 and at the 2# storage device (r 1z3-p 32) of the third storage node 23 to form two copies of the second image data. Based on the method, distributed storage can be formed, and the problem that original edition data cannot be called after a single storage node fails is solved. Of course, based on the above idea, for a system having more than two storage nodes, it is contemplated to continue the steps of storing the third image data at the # 3 storage device of the third storage node. Meanwhile, in an embodiment including only two storage nodes, the received third image data may also be stored in the 3# storage device (if any) or the 1# storage device of the first storage node, and the technical solutions formed thereby are all within the protection scope of the present invention.
Further, the storage service system and the storage resource pool, and different storage nodes may be configured to communicate with each other through the ring definition file 201, so as to store the received data to be stored to corresponding positions in corresponding storage devices according to preset allocation rules recorded in the ring definition file 201, and the above-mentioned designation of the storage nodes and/or the storage devices may be implemented through the configuration of the ring definition file 201. Meanwhile, the size of the data amount stored at each storage node may be the same or different, and preferably, the ring definition file 201 records the storage capacity of all storage nodes to form a weight according to the storage capacity to guide the distribution process of the data amount in the storage process.
Based on this, the medical data storage system 100 supports at least two expansion ways of lateral expansion and longitudinal expansion. The horizontal expansion can be realized by adding a storage device (e.g. a hard disk) in a single storage node, and the vertical expansion can be realized by adding a storage node in the storage node cluster 2, regenerating and synchronizing the ring definition file.
The interaction between the storage service system and the external Application may be communicated through a parallel program Interface 202, in an embodiment, the parallel program Interface 202 is an API (Application Programming Interface), and different storage nodes may be configured with a set of parallel program interfaces 202 in a unified manner, so as to implement data exchange with different Application programs (for example, 1# Application, 2# Application, and up to i # Application). Since the application program interacts (uploads/downloads) with the storage service system through the parallel program interface 202, the specific content of the data to be stored does not need to be known, and the data transmission efficiency is improved. Further, the front end of the storage node cluster 2 may further be provided with a reverse proxy service unit 203, so that the parallel program interface 202 may obtain a service host that can provide a service by accessing the reverse proxy service unit 203, and the overall service efficiency may be improved.
In one embodiment parallel program interface 202 may include an account API, a container API, an object API, and a large object API. The account API may be configured to obtain a container list, obtain metadata (that is, original data to be stored, which may be complete image data or a fragment of image data), set custom metadata, and delete custom metadata; the container API can be used for creating a container, obtaining metadata, setting custom metadata, deleting custom metadata, detecting whether the container exists, deleting the container and obtaining an object list in the container; the object API may be used to create objects, obtain metadata, set custom metadata, set expiration age, detect the presence of objects, obtain object size, obtain object content, delete objects, copy objects, and move objects; the large object API may be used to check whether a static large object is supported, upload a segmented object, upload a manifest, get a manifest, delete a large object, and copy a large object.
For the large objects mentioned above, the large data amount may actually refer to the image data or other data to be stored. For the uploading process of the image data, the image data can be uploaded frame by frame and in parallel, the list containing the management relation between each image frame is generated at the same time, and a plurality of image frames are combined into a large file by utilizing the list after the uploading is finished; or a plurality of image frames may be merged into one large file in advance, and then the large file is fragmented according to a preset size (for example, 2MB is used as a unit), so that the uploaded image data after being fragmented is merged and restored into the large file. For the downloading process of the video data, the downloading may be performed concurrently frame by frame, or may be performed concurrently in a fragment according to a preset size (for example, 8MB is used as a unit), and then the large files are merged. It should be noted that, in the storage service system, either for the above small objects such as the video frames or the fragmented video data or for the large objects such as the large files, the data content is rearranged, so that even if an illegal user acquires the relevant file, the file cannot be read normally. Preferably, the large file may be configured to upload image frames to a segmented object container in the object storage system one by using a segmented upload mechanism, obtain an upload information list according to the collected segmented object upload information, and upload the list to a service container in the object storage system. Preferably, the large file may be configured to adopt a fragment downloading mechanism, and concurrently read to the local file system according to a preset size (or range) to form a fragment file, and then merge to form the local large file.
In order to achieve one of the above objects, an embodiment of the present invention provides a data local storage control method, as shown in fig. 3, which may be applied to a medical data storage system provided in any one of the above technical solutions, or may be applied to other local area network storage environments, and specifically includes the following steps.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
And the ring definition file is used for allocating the storage function of each storage node.
The object storage template may be specifically defined as a related configuration file implementing the Swift object storage function, a reference Sample (Sample) of a ring definition file, or a file template, and the template has a uniform form and content for different operation conditions, aiming to implement the object storage function of the system, and thus does not need to be adjusted and re-downloaded in real time according to the current operation state. The acquisition process of the object storage template can be obtained by accessing a public network to crawl or retrieve before building a local area network for debugging, and can also be preset in a local area network storage environment to be directly called.
The distinguishing mark information may be specifically defined as information that distinguishes storage nodes from each other, for example, at least one of information such as node names, communication addresses, and storage capacities. In this way, different storage configuration files corresponding to each storage node and a ring definition file for allocating all storage nodes can be generated by combining the distinguishing mark information and the object storage template.
In an embodiment where the data local storage control method is configured to implement Swift object storage, the storage configuration files may specifically include a system top-level configuration file (Swift. conf), a proxy service configuration file (proxy-server. conf), an object-expiration configuration file (object-expiration. conf), different account service configuration files corresponding to different storage devices in each storage node (for example, in an embodiment where two storage devices are provided in a first storage node, the account service configuration files provided in the first storage node may include a first account service configuration file account-server/1. conf corresponding to # 1 storage device, and a second account service configuration file account-server/2. conf corresponding to # 2 storage device), different container service configuration files corresponding to each storage node (for example, may include a first container service configuration file container-server/1. conf corresponding to # 1 storage device, and second container service profile container-server/2. conf corresponding to # 2 storage device), different container coordination profiles corresponding to each storage node (which may include, for example, first container coordination profile container-receiver/1. conf corresponding to # 1 storage device and second container coordination profile container-receiver/2. conf corresponding to # 2 storage device), and different object service profiles corresponding to each storage node (which may include, for example, first object service profile object-server/1. conf corresponding to # 1 storage device and second object service profile object-server/2. conf corresponding to # 2 storage device), at least some of them.
The ring definition file may be specifically configured to include the distinguishing mark information of all storage nodes to achieve a desired technical effect. In an embodiment, corresponding to the configuration of the configuration file, the ring definition file may specifically include at least some of an account ring definition file (account.ring.gz), a container ring definition file (container.ring.gz), and an object ring definition file (object.ring.gz).
The initialization process and the process of parsing the execution configuration file are corresponding in order to enable the object storage information recorded in the configuration file to be read or run to implement the object storage function, so that a series of matching embodiments generated thereby can be alternatively applied to step 32. For example, in one embodiment, the initialization process may be specifically defined as building an environment and implementing a base service of object storage, and the process of parsing and executing a configuration file may be specifically defined as reading a corresponding configuration file using the built base service of implementing object storage. In yet other embodiments, the initialization process may be specifically defined as building an environment and providing a tool sufficient to run a static configuration file, and the process of parsing and executing the configuration file may be specifically defined as executing the configuration file using the tool.
The ring definition files corresponding to different storage nodes are preferably configured to be the same, so that the storage nodes can keep understanding of the working states of other nodes in the working process, and in some embodiments, because the ring definition files are used for allocating the storage functions of different storage nodes, different ring definition files can be generated according to the function configuration data corresponding to different storage nodes and are respectively distributed to different storage nodes.
The enabling and executing storage function may be defined as starting each storage node and controlling each storage node to execute the storage function, or may be defined as enabling and executing the built storage service on the basis that the storage node is already started. In the latter embodiment, the implicit start-up process may be set after the storage configuration file and the ring definition file are generated and before the storage configuration file is distributed, and in particular, the distribution process may be configured to be performed by the SSH service. Further, the implementation process of the storage function may refer to the foregoing description of the storage process of the medical data storage system, and may also be configured as a simple process of receiving data, distributing and storing data according to the storage configuration file and the ring definition file, and the present invention is not limited thereto.
An embodiment of the present invention provides a first embodiment of a data local storage control method, as shown in fig. 4, including the following steps.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template. The step 31 may further include:
311, calculating storage weight information corresponding to each storage node according to the storage capacity information of each storage node;
step 312, a ring definition file is generated according to the storage weight information, the corresponding protocol address information, and the object storage template.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
Wherein the distinguishing mark information includes protocol address information and storage capacity information. The storage weight is equal to a ratio of a value of the corresponding storage capacity information to a value of the total storage capacity information.
By incorporating the storage capacity information into the ring definition file, the technical effect that different storage of data in different storage nodes can be performed by taking the storage capacity as a reference is achieved, so that the storage nodes with larger storage capacity are fully utilized to store more data contents, and the data storage capacity on each storage node is ensured to be uniform and reasonable. In another embodiment, the performance of the storage node, for example, parameters such as throughput efficiency, may also be included in the weight definition consideration range of the ring definition file, so as to allocate a heavier storage task to the storage node with better performance, and improve the overall storage efficiency.
Meanwhile, the distinguishing mark information may be preset in a management host or other devices with similar functions, or may be obtained by controlling the device to actively access the storage node. The distinguishing mark information may further include a region number, an area number, a storage node name or a service port, and the like, so as to jointly form an instruction in the ring definition file. For example, an instruction set in the ring definition file corresponding to a certain storage node may be specifically configured to: "swift-ring-builder < builder _ file > add r < region > z < zone > - < ip > < port >/< device _ name > _< meta > < weight >". The region may be defined as region number information, the zone may be defined as region number information, the ip may be defined as the protocol address information, the port may be defined as service port information, the device _ name may be defined as a storage node name, and the weight may be defined as the storage weight information.
An embodiment of the present invention provides a specific example of a first embodiment of a data local storage control method, which includes the following steps, as shown in fig. 4 and 5.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template. Wherein the step 31 may include:
311, calculating storage weight information corresponding to each storage node according to the storage capacity information of each storage node;
step 312, a ring definition file is generated according to the storage weight information, the corresponding protocol address information, and the object storage template. The step 312 may specifically include the following steps:
3121, acquiring an object storage source file, constructing a development and installation environment, extracting and compiling the object storage source file to obtain a ring definition template, a storage configuration template and a ring building execution program;
and 3122, filling the ring-building executive program, the storage weight information of each storage node and the corresponding protocol address information into a ring definition template, and generating and executing a ring-building script to obtain a ring definition file.
Step 313, filling the protocol address information of each storage node into a storage configuration template to obtain a plurality of storage configuration files corresponding to the storage nodes.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
Wherein the object storage template comprises a storage configuration template and a ring definition template.
In this embodiment, a generation source of the object storage template is specifically defined, and the object storage template is configured to be generated through an extraction process of the object storage source file. The object storage source file may be a resource package containing various templates and codes, or may be an integral file formed by attaching the object storage template with the object storage (which may be Swift) source code as a main body.
In the latter embodiment provided above, the process may be further configured to extract the whole file, obtain an object storage template including a ring definition template and a storage configuration template, or directly obtain the two specific templates, and compile the object storage source code, thereby obtaining a series of executable programs or commands/instructions at least including the ring creation executable program.
The ring definition template, at least after being filled in the ring-building execution program, may be a script template file that does not contain any specific numerical value, that is provided in the foregoing embodiment, and that contains a plurality of control instructions (including at least the ring-building execution program) with a predetermined format, or may be a static script file in the form of a reference sample. For the latter embodiment, the static script file may be configured in one embodiment in the following form:
“#!/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”。
thus, the ring building script can be obtained by filling at least the distinguishing mark information and the weight into the ring definition template. It should be noted that, as can be seen from the above instruction including object-2, for an address corresponding to a single region (or referred to as a storage node) in a single region (or referred to as a storage node cluster), there may be a plurality of different partitions (or referred to as storage devices) sdb, the number of which may be adjustable, and the adjustment manner may be preset, or the unmodified instruction may be automatically deleted in the process of filling in the storage weight information and the protocol address information to generate the loop building script. Meanwhile, although the weights set at the end of a single instruction are all equally configured to be equal to 1 in the above ring definition template, the weights may be adjusted as needed or according to a preset control method as described above. Furthermore, only the portion of the ring definition template for the object ring definition file is provided above, but of course, portions for the account ring definition file and the container ring definition file may also be included.
The ring definition file for distribution and reading is generated after the ring building script, especially the multiple groups of ring building execution programs updated after the relevant distinguishing mark information is filled in the ring building script, is executed, and may be an executable program formed by encapsulation and at least including the following instructions. The instructions may be: "swift-ring-builder < builder _ file > create < part _ power > < representations > < min _ part _ hours >". Where, part _ power represents a partition power exponent (base number may be 2), replicas represents a copy number, and min _ part _ hours represents a minimum time interval for partition adjustment. Preferably, the partition power exponent may be configured to be 18, the number of duplicates may be configured to be 3, and the minimum time interval for partition adjustment may be configured to be 24 h.
For the storage configuration template, the configuration template may be specifically configured as a static configuration file, and specifically may include [ DEFAULT ], [ pipeline: main ], [ app: object-server ], [ filter: receiver ], [ filter: hierarchy ], [ object-replenisher ], [ object-recornstrater ], [ object-updater ], [ object-editor ], and other parts, so as to fill in system preset information, pipeline information, application-object server information, scout filter information, health check filter information, object duplicator information, object reconstructor information, object updater information, object auditor information, object reconnecter information, and the like, respectively. For the [ DEFAULT ] part, at least part of storage device information (devices), installation check information (mount _ check), invalid preallocation information (disable _ fault), binding protocol address information (bind _ ip), binding port information (bind _ port), number of working devices (workers), account name (user), log facility (log _ fault), reconnaissance cache path (recon _ cache _ path), and library debug information (evenlet _ debug) may be further included. Preferably, the information filled into the storage configuration template or the generated plurality of storage configuration files may include a user account (Swift account) and/or a number of storage devices in a storage node (fixed to 2 in an embodiment).
Although step 313 is provided after step 311 and step 312 in this embodiment, it is understood from the content of step 313 that the sequence provided in this embodiment is not limited thereto, that is, the storage configuration file may be generated first and the ring definition file may be regenerated. Meanwhile, since the storage weight information in the ring definition file is not necessarily calculated according to the storage capacity information, step 3121, step 3122, and step 313 provided in this embodiment are not necessarily dependent on the embodiment provided in fig. 4, and in embodiments where the storage weight information even the distinguishing mark information has other configurations, it is of course possible to combine step 3121, step 3122, and step 313 to additionally achieve the technical effects thereof.
Furthermore, the obtaining of the object storage source file involved in step 3121 does not necessarily mean that the object storage file is obtained only at step 3121, the object storage source file may be obtained at or before step 31, and similarly, the component development installation environment may be constructed before step 31, so that the subsequent steps are performed in the development installation environment.
An embodiment of the present invention provides a second embodiment of a data local storage control method, as shown in fig. 6, including the following steps.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file. Wherein, the step 32 may specifically include:
step 321, obtaining an object storage source file, constructing a development and installation environment, and extracting the object storage source file to obtain a dependent service template;
step 322, filling the protocol address information of each storage node into a dependent service template to obtain a plurality of service configuration files corresponding to the storage nodes;
step 323, distributing the service configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding service configuration file.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
Wherein the service configuration file comprises a synchronization configuration file, a cache configuration file and a log configuration file.
In this embodiment, before distributing, parsing and executing the storage configuration file, a process of building a dependent service may be specifically included to provide a basis for building an object storage service. Specifically, the building of the dependent service may also be implemented by extracting a template from the object storage source file and filling the template with information, where the object storage source file may be provided in any of the embodiments described above, and is not described herein again. It should be emphasized that, although steps 321 to 323 are shown as consecutive steps in the figure, they may also be split and arranged alternately in the process of generating, distributing and executing the storage configuration file, and it is only necessary to ensure that the execution of the service configuration file can achieve the expected technical effect before the storage configuration file is stored, for example, regarding steps 321 to 323 as a whole, the process of initializing each storage node may be summarized as step 32, so that the configuration of the basic service is completed before the storage configuration file is generated, and of course, the initialization process may also be defined as starting or other meaning, and the service configuration file and the storage configuration file are configured to be generated synchronously and/or distributed synchronously and/or executed sequentially.
The service configuration file may further specifically include a system update source configuration file (source.list), a synchronization service configuration file (rsynccd.conf), a synchronization service script file (rsynccd), an individual log configuration file (10-swift.conf), and a system log configuration file (rsyslog.conf), the configuration files may be stored in different directories, or may be configured to be stored in the same "/etc/" directory, for the former embodiment, in particular, the synchronization service configuration file and the system log configuration file may be stored in the "/etc/" directory, the system update source configuration file may be stored in the "/etc/apt" directory, the synchronization service script file may be stored in the "/etc/default/" directory, and the separate log configuration file may be stored in the "/etc/rsyslog.d" directory. Correspondingly, before distributing the relevant service profile, it may of course include establishing the relevant subdirectories under the root directory of each storage node.
Taking the synchronization service profile as an example, the synchronization service profile may also be configured as a static profile, and specifically may include: account identifier information uid (user identification), group identifier information gid (group identification), log file information log file, process identifier file information pid file, and address information address. Further, the synchronization service profile may further include account synchronization information [ account ] (e.g., [ account6212 ]) and container synchronization information [ container ] (e.g., [ container6211 ]), etc.
Furthermore, it can be understood that, in the step of obtaining the object storage source file and constructing the development and installation environment in step 321, reference may be made to the foregoing discussion of step 3121, and the process of generating, distributing and executing the storage configuration file and the ring definition file is preferably obtained only once, so that the corresponding technical effect can be achieved before any step.
A specific example of a second embodiment of a data local storage control method according to an embodiment of the present invention is provided, and as shown in fig. 6 and 7, the method includes the following steps.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file. Wherein, the step 32 may specifically include:
step 321, obtaining an object storage source file, constructing a development and installation environment, and extracting the object storage source file to obtain a dependent service template;
step 322, filling the protocol address information of each storage node into a dependent service template to obtain a plurality of service configuration files corresponding to the storage nodes;
step 323, distributing the service configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding service configuration file. The step 323 may further include:
step 3231, compiling an object storage source file to obtain a service running program;
step 3232, distributing service running programs to each storage node, controlling each storage node to execute the service running programs and read service configuration files, and sequentially starting synchronization service, cache service and log service.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
The function implementation process of the service configuration file can be performed by the same way as the storage configuration file, namely, by reading the service after the service is built through the executable program. In this specific example, after the service running program is obtained by the management host 1 or other related devices, the program is directly and uniformly distributed to each storage node, so that each storage node executes the service running program to read a corresponding service configuration file, the configuration efficiency of each storage node can be improved, and the effects of quickly starting functions such as synchronization service, cache service, log service, and the like are achieved.
The service execution program may be formed by compiling an object storage source file in the present embodiment, as in the loop execution program. Furthermore, since the service profile is configured in the same static profile form as the storage profile in this embodiment, it can be understood that the storage profile may also include steps similar to step 3231 to step 3232: compiling the object storage source file to obtain a storage operation program, distributing the storage operation program to each storage node, controlling each storage node to execute the storage operation program, reading the storage configuration file, and starting the storage service. Of course, in a more specific embodiment, the service running program and the storage running program may have the same content or be packaged to form an overall running program, so that the reading and executing processes of the service configuration file and the storage configuration file are more concise.
Another specific example of the second embodiment of the data local storage control method according to an embodiment of the present invention is provided, and as shown in fig. 6 and 8, the method includes the following steps.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file. Wherein, the step 32 may specifically include:
step 321, obtaining an object storage source file, constructing a development and installation environment, and extracting the object storage source file to obtain a dependent service template;
step 322, filling the protocol address information of each storage node into a dependent service template to obtain a plurality of service configuration files corresponding to the storage nodes;
step 323, distributing the service configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding service configuration file. The step 323 may further include:
step 3231', initializing each storage node to form an object storage directory, distributing an object storage source file to each storage node, and controlling each storage node to construct a development and installation environment;
step 3232', controlling each storage node to compile the object storage source file to obtain a service running program, executing the service running program, reading the service configuration file, and sequentially starting the synchronization service, the cache service and the log service.
And 324, distributing and storing the storage configuration file to the object storage directory of the corresponding storage node.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
Different from the previous embodiment, in the present embodiment, the obtaining of the service running program may be implemented by parsing the object storage source file by each storage node itself, and the management host 1 may directly distribute the object storage source file to each storage node and construct a development and installation environment by the controller, thereby achieving a technical effect similar to that of the previous embodiment. Compared with the former embodiment, the embodiment has low configuration requirements on the storage nodes, can be performed without the need that all the storage nodes have the same configuration foundation, and is convenient for external intervention to perform function setting and expansion because the object storage source file is stored in the storage node.
The process of forming the object storage directory in step 3231' is not limited to this embodiment, and the expected technical effect is to set the storage configuration file in the same directory for the subsequent establishment of the object storage function. The formation of the object storage directory is preferably set at any time after the distribution of the service profile and before the distribution of the storage profile, and the object storage directory may be specifically defined as "/etc/swift".
In another embodiment of the present invention, a data local storage control method is provided, as shown in fig. 9, including the following steps.
Step 301, obtaining an object storage source file, constructing a development installation environment, and compiling the object storage source file to obtain a start execution program.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
Step 302, according to the startup execution program and the distinguishing mark information, a plurality of startup scripts corresponding to each storage node are generated.
And step 32, initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage. The step 33 may specifically include:
and 331, distributing the start script to corresponding storage nodes, controlling each storage node to analyze and execute the start script.
The embodiment provides a specific scheme for controlling the storage nodes to enable and execute data storage. For step 301, on one hand, by compiling an object storage source file, particularly an object storage source code therein, a corresponding start-up execution program can be obtained, and the start-up execution program is utilized to implement the start-up of an object storage function; on the other hand, step 301 may be disposed at any position before step 302 (i.e. the step of generating the start script), and is not limited to be disposed before step 31; in yet another aspect, in conjunction with the series of executable programs provided above, step 301 may further comprise: compiling the object storage source file to obtain a ring-building executive program, a service running program, a storage running program and the like, and generating all related executable programs for calling at the beginning of the control method.
For step 302 and step 331, different boot scripts may need to be generated for different storage nodes due to different configuration situations, and therefore any of the aforementioned distinguishing mark information and the obtained boot execution program may be used to generate boot scripts corresponding to different nodes. Of course, when the storage nodes have the same configuration or at least the boot process does not need to be distinguished with respect to the configuration, the boot script can be uniformly generated and distributed according to the boot execution program without being considered in combination with the distinguishing flag information as described in step 302. For the latter embodiment, the start-up script may be further configured with the following instructions:
“#!/bin/bash
set -e
swift-init main start”。
in addition, the start-up script may have a storage directory "$ HOME/bin/". After the deployment is completed in step 32 and before step 331 (or step 33 is called to control the enabling of each storage node and execute data storage), a communication test tool (for example, test whether http communication is normal or not, where http is called Hyper Text Transfer Protocol (http), and chinese name is hypertext Transfer Protocol (http)), or an interface test tool may be further enabled, and interact with the storage system through an application-interface design development manner, so as to verify whether the deployment effect meets expectations or not. The communication test tool may be a cURL tool (Command line Uniform Resource Locator), the interface test tool may be a Postman tool, and the application-interface design development mode may be a RESTful (Representational State Transfer) API mode.
As shown in fig. 10, the steps of the method for controlling local storage of data according to another embodiment of the present invention may be performed after the steps of the embodiment and related embodiments provided in fig. 3, or may be performed in steps or in whole between the steps provided in the above embodiments to form another embodiment. Some steps of the above-described further embodiment include the following.
And step 41, acquiring account updating information, and updating an account information base according to the account updating information.
And step 42, generating a plurality of updating storage configuration files corresponding to the storage nodes according to the account updating information and the object storage template.
And 43, distributing the updated storage configuration file to the corresponding storage nodes, controlling the restart of each storage node and analyzing the updated storage configuration file.
Compared with the method for newly adding the storage node and needing to regenerate the ring definition file, the method for responding to the newly added account has the advantages that the account information is stored in the storage configuration file in the embodiment, so that when the account needs to be updated, the storage configuration file needs to be updated synchronously, and the corresponding updated storage configuration file is distributed to the storage node, so that the effect of increasing the access account is achieved.
In the present embodiment, the ring definition file is not affected by the update of the account information, and therefore, the distribution is not necessary, and the account information is preferably stored in the proxy service profile. The updated account information may be synchronously stored in a preset account information base, so as to keep the operator to access and know the current account number and content that may be stored through the management host 1.
Further, fig. 10 also shows a specific example of the further embodiment, in which the steps provided by the embodiment of the present invention shown in fig. 3 are further provided between step 41 and step 42, and the following may be specifically included.
Step 31, obtaining the object storage template and the distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template.
Of course, the present invention is not limited to the above step configuration, and in this further embodiment, step 43 may further include another part of steps in an embodiment of the present invention shown in fig. 3, for example, the following steps may be included.
And step 33, distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
The two step configurations may be used to adapt to the adjustment of the number and configuration of the storage nodes, and update the ring definition file and the storage configuration file together, and may also be used to adapt to the process of acquiring the original account information in the starting state, where the original account information may be set in the storage configuration file as a reference data, and a corresponding embodiment may include the steps of: acquiring original account information and storing the original account information into an account information base; acquiring an object storage template and distinguishing mark information of each storage node, generating a ring definition file according to the distinguishing mark information and a ring definition template in the object storage template, and generating a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information, a storage configuration template in the object storage template and original account information, wherein the storage configuration files comprise proxy service configuration files which comprise the original account information; initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file; and distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
Still another embodiment of the present invention provides some steps of a data local storage control method, as shown in fig. 11, which may be preferably set after the steps provided in the embodiment of the present invention and the related embodiment shown in fig. 3, or may be set between the steps provided in the above embodiments to form the still another embodiment. Some steps of the above-described still another embodiment specifically include the following.
And step 51, receiving an external elimination instruction, and analyzing to obtain elimination node information.
And step 52, reducing the weight to be eliminated of the storage node corresponding to the eliminated node information in the ring definition file according to the preset step length, updating the ring definition file, and distributing the updated ring definition file to each storage node.
And step 53, iteratively updating until the weight to be eliminated is zero.
The obsolete node information comprises distinguishing mark information of the storage nodes to be obsolete. Therefore, unqualified storage nodes can be eliminated step by step until the storage weight information (namely the weight to be eliminated) of the storage nodes to be eliminated is reduced to zero, and then a prompt can be output or an operator can be informed to remove the storage nodes. In contrast, there is also a process of adding a new storage node in a planned manner, where the storage weight information is increased according to a preset step length, and details are not described here. Furthermore, the preset step size may be in the same form as the stored weight information, for example, in the form of percentage, decimal, etc., and preferably, the preset step size is 2%.
Of course, the data local storage control method provided by the present invention may further include direct removal and direct addition of the storage node, and this process only involves the process of regeneration of the ring definition file and restarting the storage system, and may be implemented with reference to the above elimination process.
The data local storage control method provided by the invention may further include a step of monitoring the state of the storage node, and may specifically include: sending a monitoring instruction to the storage nodes through SSH, wherein the monitoring instruction can comprise at least one of a cURL instruction, a top instruction, a free instruction, a df instruction and a netstat instruction, receiving and analyzing feedback information, storing the feedback information into a monitoring area, calling and counting the feedback information stored in the monitoring area, and obtaining and outputting state information for displaying at least one storage node. Wherein, the cURL instruction is used for testing whether the communication between the storage node and the proxy service is normal; the top instruction is used for acquiring a load of a Central Processing Unit (CPU); the free instruction is used for acquiring memory occupation; the df instruction is used for acquiring the use condition of the disk; netstat is used to obtain the network status.
In summary, after the object storage template is obtained, the storage configuration file for implementing the storage function and the ring definition file for allocating the storage function of each storage node are correspondingly generated according to the condition of the storage node, and the two files are successively distributed to the storage node and controlled to be executed, so that different storage strategies can be dynamically formed in response to addition and removal of the storage node; meanwhile, the storage configuration file and the ring definition file are generated through the object storage template, the public network does not need to be accessed in the building process of the storage function, and the method can adapt to the closed local area network storage environment of hospitals and the like.
It should be understood that although the present description refers to embodiments, not every embodiment contains only a single technical solution, and such description is for clarity only, and those skilled in the art should make the description as a whole, and the technical solutions in the embodiments can also be combined appropriately to form other embodiments understood by those skilled in the art.
The above-listed detailed description is only a specific description of a possible embodiment of the present invention, and they are not intended to limit the scope of the present invention, and equivalent embodiments or modifications made without departing from the technical spirit of the present invention should be included in the scope of the present invention.

Claims (10)

1. A data local storage control method is applied to a local area network storage environment, and is characterized by comprising the following steps:
acquiring an object storage template and distinguishing mark information of each storage node, and generating a ring definition file and a plurality of storage configuration files corresponding to each storage node according to the distinguishing mark information and the object storage template; the ring definition file is used for allocating the storage function of each storage node;
initializing each storage node, distributing the storage configuration file to the corresponding storage node, controlling each storage node to analyze and execute the corresponding storage configuration file;
and distributing the ring definition file to each storage node, controlling each storage node to enable and execute data storage.
2. The data local storage control method of claim 1, wherein the distinguishing flag information includes protocol address information and storage capacity information; the method specifically comprises the following steps:
calculating storage weight information corresponding to each storage node according to the storage capacity information of each storage node; wherein the storage weight is equal to a ratio of a value of the corresponding storage capacity information to a value of the total storage capacity information;
and generating the ring definition file according to the storage weight information, the corresponding protocol address information and the object storage template.
3. The data local storage control method of claim 2, wherein the object storage template comprises a storage configuration template and a ring definition template; the method specifically comprises the following steps:
acquiring an object storage source file, constructing a development and installation environment, extracting and compiling the object storage source file to obtain the ring definition template, the storage configuration template and a ring building executive program;
filling the ring-building executive program, the storage weight information of each storage node and corresponding protocol address information into the ring definition template, and generating and executing a ring-building script to obtain the ring definition file;
and filling the protocol address information of each storage node into the storage configuration template to obtain a plurality of storage configuration files corresponding to the storage nodes.
4. The data local storage control method according to claim 2, wherein the method specifically comprises:
acquiring an object storage source file, constructing a development and installation environment, and extracting the object storage source file to obtain a dependent service template;
filling the protocol address information of each storage node into the dependent service template to obtain a plurality of service configuration files corresponding to the storage nodes;
distributing the service configuration file to corresponding storage nodes, controlling each storage node to analyze and execute the corresponding service configuration file;
wherein the service configuration file comprises a synchronization configuration file, a cache configuration file and a log configuration file.
5. The data local storage control method according to claim 4, wherein the method specifically comprises:
compiling the object storage source file to obtain a service operation program;
distributing the service operation program to each storage node, controlling each storage node to execute the service operation program and read the service configuration file, and sequentially starting a synchronization service, a cache service and a log service.
6. The data local storage control method according to claim 4, wherein the method specifically comprises:
initializing each storage node to respectively form an object storage directory, distributing the object storage source file to each storage node, and controlling each storage node to construct a development and installation environment;
controlling each storage node to compile the object storage source file to obtain a service operation program, executing the service operation program, reading the service configuration file, and sequentially starting a synchronization service, a cache service and a log service;
and distributing and storing the storage configuration file to the object storage directory of the corresponding storage node.
7. The data local storage control method of claim 1, further comprising:
acquiring an object storage source file, constructing a development and installation environment, and compiling the object storage source file to obtain a start execution program;
generating a plurality of starting scripts corresponding to the storage nodes according to the starting executive program and the distinguishing mark information;
the method specifically comprises the following steps:
and distributing the start script to corresponding storage nodes, and controlling each storage node to analyze and execute the start script.
8. The data local storage control method of claim 1, further comprising:
acquiring account updating information, and updating an account information base according to the account updating information;
generating a plurality of updated storage configuration files corresponding to each storage node according to the account updating information and the object storage template;
and distributing the updated storage configuration file to corresponding storage nodes, controlling each storage node to restart and analyzing the updated storage configuration file.
9. The data local storage control method of claim 1, further comprising:
receiving an external elimination instruction, and analyzing to obtain elimination node information;
reducing the weight to be eliminated of the storage node corresponding to the eliminated node information in the ring definition file according to a preset step length, updating the ring definition file, and distributing the updated ring definition file to each storage node;
iteratively updating until the weight to be eliminated is zero;
the obsolete node information comprises distinguishing mark information of the storage nodes to be obsolete.
10. A medical data storage system comprising a management host and at least two storage nodes connected to the management host, the management host being configured to execute the data local storage control method according to any one of claims 1 to 9.
CN202210140022.2A 2022-02-16 2022-02-16 Data local storage control method and medical data storage system Active CN114185866B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210140022.2A CN114185866B (en) 2022-02-16 2022-02-16 Data local storage control method and medical data storage system
PCT/CN2023/075857 WO2023155765A1 (en) 2022-02-16 2023-02-14 Data local storage control method and medical data storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210140022.2A CN114185866B (en) 2022-02-16 2022-02-16 Data local storage control method and medical data storage system

Publications (2)

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

Family

ID=80546025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210140022.2A Active CN114185866B (en) 2022-02-16 2022-02-16 Data local storage control method and medical data storage system

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023155765A1 (en) * 2022-02-16 2023-08-24 安翰科技(武汉)股份有限公司 Data local storage control method and medical data storage system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149073A (en) * 2023-08-30 2023-12-01 中科驭数(北京)科技有限公司 Configuration method, device and equipment of storage scheme and storage medium

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 (en) * 2018-02-09 2018-08-17 国家电网公司 A kind of cloud storage performance optimization method and system
US20180337942A1 (en) * 2017-05-16 2018-11-22 Ciena Corporation Quorum systems and methods in software defined networking
CN110032547A (en) * 2019-01-29 2019-07-19 香港贝尔科技有限公司 File stores improved method under a kind of distributed environment
CN111831662A (en) * 2020-07-24 2020-10-27 深圳市网通兴技术发展有限公司 Medical data information processing method and system
CN113963763A (en) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 Partition changing method and device for medical data storage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312791B (en) * 2013-05-24 2016-02-24 上海和伍信息技术有限公司 Internet of Things isomeric data storage means and system
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 (en) * 2020-12-30 2022-01-11 科东(广州)软件科技有限公司 Access method, device and equipment of heterogeneous system storage equipment and storage medium
CN114185866B (en) * 2022-02-16 2022-05-03 安翰科技(武汉)股份有限公司 Data local storage control method and medical data storage system

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 (en) * 2018-02-09 2018-08-17 国家电网公司 A kind of cloud storage performance optimization method and system
CN110032547A (en) * 2019-01-29 2019-07-19 香港贝尔科技有限公司 File stores improved method under a kind of distributed environment
CN111831662A (en) * 2020-07-24 2020-10-27 深圳市网通兴技术发展有限公司 Medical data information processing method and system
CN113963763A (en) * 2021-10-20 2022-01-21 上海柯林布瑞信息技术有限公司 Partition changing method and device for medical data storage

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 (en) * 2022-02-16 2023-08-24 安翰科技(武汉)股份有限公司 Data local storage control method and medical data storage system

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108958927B (en) Deployment method and device of container application, computer equipment and storage medium
US11556367B2 (en) Dynamic image composition for container deployment
US8924954B2 (en) Application software installation method and application software installation apparatus
KR102236522B1 (en) Method and apparatus for processing information
CN114185866B (en) Data local storage control method and medical data storage system
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
US8719782B2 (en) Integrated package development and machine configuration management
CN110413288B (en) Application deployment method, device, server and storage medium
US9639432B2 (en) Live rollback for a computing environment
JP5681465B2 (en) Information processing system, information processing apparatus, preparation method, program, and recording medium
US10963236B2 (en) Creation of software images of software applications for image-based maintenance of the software applications
CN104182257B (en) The installation method of application software and the erecting device of application software
US20220164323A1 (en) Online schema change of range-partitioned index in a distributed storage system
CN110347483B (en) Method and device for migrating physical machine to virtual machine and storage medium
CN107357607B (en) The read method and device of file data
JP2014142678A (en) Virtual server transfer plan generation method and system
US11681585B2 (en) Data migration for a shared database
WO2009149416A1 (en) Automated filer technique for use in virtualized appliances and applications
KR20160143519A (en) System, server system, method and program
CN116069354A (en) Application program upgrading method, device, equipment and storage medium
US10102020B2 (en) Methods, systems, and computer readable media for virtual machine (VM) deployment using read-only memory
CN113419743B (en) Comprehensive application script deployment method, device, equipment and storage medium
CN107632934B (en) Function copying method and device in C-sharp

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