CN109407976B - 一种分布式存储方法及分布式存储装置 - Google Patents

一种分布式存储方法及分布式存储装置 Download PDF

Info

Publication number
CN109407976B
CN109407976B CN201811117783.6A CN201811117783A CN109407976B CN 109407976 B CN109407976 B CN 109407976B CN 201811117783 A CN201811117783 A CN 201811117783A CN 109407976 B CN109407976 B CN 109407976B
Authority
CN
China
Prior art keywords
storage
node
information
emergency
storage space
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.)
Active
Application number
CN201811117783.6A
Other languages
English (en)
Other versions
CN109407976A (zh
Inventor
汪权
刘军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201811117783.6A priority Critical patent/CN109407976B/zh
Publication of CN109407976A publication Critical patent/CN109407976A/zh
Application granted granted Critical
Publication of CN109407976B publication Critical patent/CN109407976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种分布式存储方法及分布式存储装置,所述方法包括:检测到存储装置中第一存储节点到达满负载状态时:获取其余存储节点的状态信息,所述状态信息至少包括剩余存储空间信息;根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点。本申请的实施例中的分布式存储方法能够有效避免存储装置中因某一节点到达满负载状态时导致存储装置整体不能继续进行新数据的读写,影响用户使用的现象发生。

Description

一种分布式存储方法及分布式存储装置
技术领域
本申请实施例涉及数据存储领域,特别涉及一种分布式存储方法及应用该种方法的分布式存储装置。
背景技术
目前在分布式存储装置中一般采用一致性哈希算法来分布和定位多副本数据,但是一致性哈希并不能确保数据能够完全的进行均匀分布,所以在分布式存储装置中经常出现当某一个节点的存储空间使用率达到100%,即满负载的时候,其他节点的存储空间使用率可能只在70%,还有很多存储空间可以利用。而目前基本上所有分布式存储装置都会因为某一个节点的存储空间达到满负载时,便认定集群整体处于满负载状态,导致集群无法继续读写新的数据,造成客户业务的中断。
对于上述技术问题,目前还没有较好的解决办法。目前现有技术中可以做到的是提前警告,给每个存储节点添加定时监控设备,以监测节点的存储空间使用率,当定时监控设备检测到某节点的存储空间使用率到达某一个阈值的时候,例如邻近满负载的时候,发邮件给装置管理员,提醒装置管理员及时进行集群扩容。但是提前警告,只能预防存储空间到达满负载致使客户业务中断的情况,但并没有解决这个问题。如果在警告后没有新的设备及时扩容集群,一旦某个节点的存储空间到达满负载,集群仍旧无法继续读写新的数据,客户业务还是会中断。
目前还有一种做法是用于为了确保客户业务不会突然中断,故从存储装置中剔除满负载节点,但是在分布式存储装置中当某一个节点达到满负载的时候,一定存在某些节点也基本饱和,在数据恢复过程中这些节点很快会出现下一个满负载的节点,所以目前这种方法缺点多,风险大,不适合广泛使用。
发明内容
本申请的实施例提供了一种能够在存储装置中因某一存储节点到达满负载状态时,存储装置整体仍能继续进行新数据的读写的分布式存储方法及应用该种方法的分布式存储装置。
为了解决上述技术问题,本申请实施例提供了如下的技术方案:
一种分布式存储方法,包括:
检测到存储装置中第一存储节点到达满负载状态时:
获取其余存储节点的状态信息,所述状态信息至少包括剩余存储空间信息;
根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点。
作为优选,所述状态信息还包括对应的所述存储节点的存储空间的历史使用信息;
所述根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点具体为:
根据所述剩余存储空间信息确定候选存储节点;
根据所述历史使用信息从所述候选存储节点中确定所述应急节点。
作为优选,所述状态信息还包括用于表明对应的所述存储节点是否为所述第三存储节点的应急节点的第一标记信息;
所述根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点具体为:
根据所述剩余存储空间信息确定候选存储节点;
根据所述第一标记信息从所述候选存储节点中确定所述应急节点。
作为优选,还包括:
根据所述应急节点的存储空间信息确定用于存储所述第一存储节点新读写的数据的应急存储空间;
将所述应急存储空间映射为所述第一存储节点的存储空间。
作为优选,还包括:
确定所述第二存储节点是否具有第二标记信息,所述第二标记信息用于表明所述第二存储节点已为所述第一存储节点的应急节点;
若不具有,则将确定所述第二存储节点为所述应急节点;
若具有,则根据所述第二存储节点的剩余存储空间信息对所述应急存储空间进行扩容。
作为优选,还包括:
生成用于提示用户及时扩容所述存储装置的提示指令;
响应所述提示指令。
作为优选,所述方法还包括:
在所述存储装置扩容之后,转移所述应急节点中存储的所述第一存储节点的数据至所述第一存储节点的存储空间中;
确定所述数据是否全部转移;
若是,则解除映射关系并释放所述应急存储空间
本申请实施例同时提供一种分布式存储装置,包括:
存储节点,其为多个,用于配合分布式存储数据;
管理节点,其用于在检测到第一存储节点到达满负载状态时,获取其余存储节点的状态信息,并根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点,其中状态信息至少包括剩余存储空间信息。
作为优选,所述状态信息还包括对应的所述存储节点的存储空间的历史使用信息;
所述管理节点根据所述剩余存储空间信息确定候选存储节点,并根据所述历史使用信息从所述候选存储节点中确定所述应急节点。
作为优选,所述状态信息还包括用于表明对应的所述存储节点是否为所述第三存储节点的应急节点的第一标记信息;
所述管理节点根据所述剩余存储空间信息确定候选存储节点,并根据所述第一标记信息从所述候选存储节点中确定所述应急节点。
基于上述实施例的公开可以获知,本申请实施例具备如下的有益效果:
当遇到分布式存储装置中已经有存储节点达到满负载状态,且当下无法及时进行集群扩容的情况时,能够通过识别集群中其余存储节点的当前状态信息而确定出应急节点,使通过应急节点来辅助该满负载状态的存储节点继续存储用户输入的数据,以确保存储装置整体对数据的正常读写,从而保证用户在使用分布式存储装置的途中不会出现中断现象,同时也给集群管理员额外的时间对存储装置进行存储空间的扩容。
附图说明
图1为本申请分布式存储方法中一实施例的方法流程图。
图2为本申请分布式存储方法中一实施例的方法流程图。
图3为本申请分布式存储方法中一实施例的方法流程图。
图4为本申请分布式存储方法中一实施例的方法流程图。
图5为本申请分布式存储装置的一实施例的结构框图。
具体实施方式
下面,结合附图对本申请的具体实施例进行详细的描述,但不作为本申请的限定。
应理解的是,可以对此处公开的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本公开的具体实施例;然而,应当理解,所公开的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
下面,结合附图详细的说明本申请实施例。
图1为本申请一实施例的方法流程图。如图1所示,本申请实施例公开一种分布式存储方法,包括:
检测到存储装置中第一存储节点到达满负载状态时:
获取其余存储节点的状态信息,状态信息至少包括剩余存储空间信息;
根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点。
通过上述方法,存储装置(即分布式存储装置)在对数据进行分布式存储时,若发现第一存储节点到达满负载状态,则根据获取的其余存储节点的剩余存储空间信息确定出第二存储节点,使第二存储节点能够作为用于扩容第一存储节点的存储空间的应急节点。也即,第一存储节点新读写的信息能够直接被存入至该应急节点中,使分布式存储装置中的所有存储节点的存储空间均能够尽量最大化使用,避免像现有技术中一样仅因某个存储节点的存储空间使用殆尽,而使得整个存储装置均以该存储节点的状态为当前状态,致使整个存储装置无法继续读写新的数据,影响用户对存储装置的正常使用。也即,通过本申请的方法可在分布式存储装置中的某个存储节点到达满负载状态时不会直接中断新的数据的读写,影响用户的正常使用,而是可以借助其他未处于满负载状态的存储节点的至少部分存储空间作为该满负载存储节点的存储空间,使得存储装置还能够继续读写用户的新写入的数据,保证用户的正常使用。
具体地,在执行步骤1:检测到存储装置中第一存储节点到达满负载状态时,该第一存储节点可为存储装置中的任意一个存储节点,包括首次到达满负载状态的存储节点,或第n次(n为大于1的整数)到达满负载状态的存储节点。另外,检测方式也不唯一,例如存储装置(具体可为存储装置中的管理节点)可以主动对各存储节点的存储空间进行实时检测或定时检测,也可以是在某一存储节点到达满负载状态时主动发出信号,使存储装置(具体可为存储装置中的管理节点)能够根据该信号得知该存储节点将到达或已经到达满负载状态。
在执行步骤2:获取其余存储节点的状态信息时,该各其余存储节点的状态信息可通过存储装置主动进行实时或定时检测获取,也可由各存储节点实时或定时向存储装置(具体可为存储装置中的管理节点)进行发送而使存储装置获得其余各存储节点的状态信息。而且,该步骤的执行可与步骤1同时进行;也可后于步骤1进行,即,在检测到有满负载状态的存储节点时才进行;还可与步骤1分别独立进行,即,步骤2的执行并不基于步骤1,也不受其影响。
本实施例步骤2中的状态信息至少包括其余各存储节点的剩余存储空间信息。基于此,电子设备在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时,可通过比对各存储节点的剩余空间信息而确定出剩余存储空间最多的存储节点作为最终的应急节点;也可基于各存储节点的剩余空间信息而将多个存储节点按空间大小进行排序,甚至基于该排序关系而确定出候选存储节点,之后基于状态信息中的其他信息而从多个候选存储节点中确定出最终的应急节点。
例如,当存储装置中某存储节点达到满负载状态时,该存储节点将所有正在处理或者待处理的IO请求挂起,并且向存储装置中的管理节点发起请求。管理节点收到请求之后,判断当前存储装置具有的存储副本数量,当存储副本数量至少为两个时(也即,用户输入一个数据时,该数据会被存储装置同时至少存入两个存储节点中,使形成至少两个关于该数据的存储副本),确定数据备份稳定,可确保无数据丢失,此时管理节点才会启动应急处理方案(应急方案启动后,新写入的数据的存储副本数量可能不变,也可能减少一个存储副本),也即依次执行步骤2和步骤3,:查询存储装置中其余各存储节点的剩余存储空间,待各存储节点返回状态信息之后,据此筛选出应急节点。
进一步地,为了能够适配更多种应用情况,同时确保数据不会仅存储在某一存储节点,导致单点故障及产生数据存储安全隐患,本实施例步骤 2中的状态信息不仅包括其余各存储节点的剩余存储空间信息,还可包括以下信息中的一种或多种,具体地:
实施例一:
状态信息还包括对应的存储节点的存储空间的历史使用信息;
当状态信息还包括上述历史使用信息时,存储装置在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时具体为:
根据剩余存储空间信息确定候选存储节点;
根据历史使用信息从候选存储节点中确定应急节点。
以存储装置应用于A银行的多个ATM机办理存取款业务中为例,各 ATM机中的用于存储用户输入的数据的存储磁盘(实体磁盘或虚拟磁盘均可)即可认为是一个存储节点,或者存储装置也可为云存储装置,即,每个ATM机均与云端处理装置通信连接,用户在ATM机上输入的数据可以直接传送至云端进行存储处理,云存储装置中的多个实体或虚拟的存储装置形成多个存储节点。当存储装置的管理节点检测到有一存储节点达到满负载状态,同时检测到获取的其余存储节点的状态信息中不仅包含剩余存储空间信息,还包含各存储节点的存储空间的历史使用信息时,存储装置会先根据剩余存储节点的剩余存储空间信息按照预设规则确定候选存储节点,例如剩余存储空间容量依次递减排序,并令前五个存储节点作为候选存储节点。之后根据各存储节点的存储空间的历史使用信息确定出各候选存储节点中有哪些曾经出现过满负载状态,接着据此从多个候选存储节点中确定出应急节点。该应急节点需满足的条件需剩余存储空间尽可能大,且至少包括该存储节点曾经未出现过满负载状态。如此设置应急节点的原因是为了满足存储需求的同时避免该存储节点具有其他应急节点,导致存储节点间关系凌乱复杂,影响数据的分布式存储。
实施例二:
状态信息还包括用于表明对应的存储节点是否为第三存储节点的应急节点的第一标记信息;
当状态信息还包括上述第一标记信息时,存储装置在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时具体为:
根据剩余存储空间信息确定候选存储节点;
根据第一标记信息从候选存储节点中确定应急节点。
继续上述实施例,当存储装置检测到获取的标记信息包含第一标记信息时,会优先按剩余存储空间由大到小的顺序排列,然后按预设要求将前五个存储节点确定为候选存储节点。之后,按照排序顺序依次检测各候选存储节点的状态信息中是否具有第一标记信息,最后确定出不具有第一标记信息且剩余存储空间最大的候选存储节点为最终的应急节点。采用该种方式确定后的应急节点可保证分布式存储数据安全性,确保同一份数据的多个副本不会落在同一个存储节点上,导致该存储节点故障。
实施例三:
图2为本申请分布式存储方法中一实施例的方法流程图。如图2所示,本实施例中的状态信息同时包含实施例一与实施例二中的历史使用信息和第一标记信息。
具体地,仍以上述实施例为例,当存储装置按照剩余存储空间信息确定出候选存储节点后,按序依次检测各候选存储节点的历史使用信息和第一标记信息,最终确定出同时满足存储空间大、非第三存储节点应急节点且未曾出现过满负载状态的候选存储节点为应急节点。
进一步地,在确定出应急节点后,本实施例中的分布式存储方法还包括:
根据应急节点的存储空间信息确定用于存储第一存储节点新读写的数据的应急存储空间;
将应急存储空间映射为第一存储节点的存储空间。
具体实施时,可根据该应急节点的存储空间信息确定应急节点的剩余存储空间中可释放出多少空间作为存储第一存储节点新写入的数据的应急存储空间,例如可确定将该应急节点的剩余存储空间中的一半,或三分之一、三分之二等用作应急存储空间。该应急存储空间不可占用应急节点的剩余存储空间的百分之八十至百分百,必须确保该应急节点自身也可正常完成新数据的写入。之后,可以使用映射工具将该应急存储空间映射为第一存储节点的存储空间,也即,第一存储节点新写入的数据可直接被写入该应急存储空间中。
进一步地,图3为本申请分布式存储方法中一实施例的方法流程图。,如图3所示,本实施例中的分布式存储方法还包括:
确定第二存储节点是否具有第二标记信息,第二标记信息用于表明第二存储节点已为第一存储节点的应急节点;
若不具有,则将确定第二存储节点为应急节点;
若具有,则根据第二存储节点的剩余存储空间信息对应急存储空间进行扩容。
具体地,在筛选出应急节点之后,存储装置中的控制节点发送请求至应急节点,应急节点根据请求检测自身是否具有第二标记信息,以判断本节点(即应急节点本身)是否之前已经是第一存储节点的应急节点。如果本节点不具有第二标记信息,则证明不是满载节点的应急节点,故将本节点进行标记使成为满载节点的应急节点(即形成第二标记信息)。即时,在应急节点的底层文件装置中创建一个例如占其剩余存储空间一半大小的文件,该文件采用预先分配的方式占用相应大小的磁盘空间,使这些磁盘空间不会被应急节点读写的数据使用。然后发送请求至第一存储节点,使其将该文件映射成为其本地的磁盘,以使用该磁盘扩展其存储空间。如果判断出本节点已经是第一存储节点的应急节点,则扩展之前的具有映射关系的文件的空间,扩展量可为应急节点当前剩余存储空间的一半。然后向第一存储节点发送请求,以使其重新扫描扩展后的文件,以更新其本地磁盘的存储空间。
进一步地,虽然存储装置启动了应急方案,使得已到达满负载状态的应急节点仍可借助其他存储节点的剩余存储空间继续读写新数据,但是难免会出现状况紧急,如遭遇数据存储高压期,存储装置读写数据频率较高,剩余存储空间不足以继续长时间支撑。故为了避免出现数据存储中断现象,影响用户使用,本实施例中的方法还包括:
生成用于提示用户及时扩容存储装置的提示指令;
响应所述提示指令。
例如,在存储装置启动应急方案后,可实时监控各个存储节点的剩余存储空间量,当检测到预设数量的存储节点的剩余存储空间大小低于预设值后,便生成提示指令,存储装置可根据该提示指令向可输出文字或画面或声音等装置发送请求,使该装置输出提示信息或提示音,以通知存储装置的管理员对存储装置及时进行扩容。当然,提示信息的生成条件并不一定基于上述条件,例如还可是存储装置监控预设时间内数据写入量的大小,以此确定提示信息的生成时间。
进一步地,图4为本申请分布式存储方法中一实施例的方法流程图。,如图4所示,当管理员对存储装置进行扩容后,本实施例中的方法还包括:
在所述存储装置扩容之后,转移所述应急节点中存储的所述第一存储节点的数据至所述第一存储节点的存储空间中;
确定所述数据是否全部转移;
若是,则解除映射关系并释放所述应急存储空间。
也就是,在存储装置被扩容后,第一存储节点检测到本地存储空间出现剩余,此时便将应急节点中的应急存储空间中的数据转移至本地存储空间中。转移的数据量可根据本次存储空间的剩余量而定,如若当前空间剩余量不够接纳应急存储空间中的全部数据可根据实际情况暂且保持转移部分数据后的现状,也即,应急节点仍存在。或继续通知管理员进行扩容,当第一存储节点本地存储空间足够接纳应急存储空间中的全部数据时,转移该全部数据,之后解除与应急节点间的映射关系,使应急节点由在确定为应急节点时切换为的应急状态恢复至初始正常状态,同时删除应急存储空间所在文件,以释放应急存储空间至该存储节点的本地存储空间中。该步骤同样适用于存储装置中所有具有前述映射关系的存储节点间。
图5为本申请分布式存储装置的一实施例的结构框图。如图5所示,本申请实施例同时提供一种分布式存储装置,包括:
存储节点,其为多个,用于配合分布式存储数据;
管理节点,其用于在检测到第一存储节点到达满负载状态时,获取其余存储节点的状态信息,并根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点,其中状态信息至少包括剩余存储空间信息。
也就是,存储装置(即分布式存储装置)在对数据进行分布式存储时,若发现第一存储节点到达满负载状态,则根据获取的其余存储节点的剩余存储空间信息确定出第二存储节点,使第二存储节点能够作为用于扩容第一存储节点的存储空间的应急节点。也即,第一存储节点新读写的信息能够直接被存入至该应急节点中,使分布式存储装置中的所有存储节点的存储空间均能够尽量最大化使用,避免像现有技术中一样仅因某个存储节点的存储空间使用殆尽,而使得整个存储装置均以该存储节点的状态为当前状态,致使整个存储装置无法继续读写新的数据,影响用户对存储装置的正常使用。也即,通过本申请的方法可在分布式存储装置中的某个存储节点到达满负载状态时不会直接中断新的数据的读写,影响用户的正常使用,而是可以借助其他未处于满负载状态的存储节点的至少部分存储空间作为该满负载存储节点的存储空间,使得存储装置还能够继续读写用户的新写入的数据,保证用户的正常使用。
具体地,管理节点在检测到存储装置中第一存储节点到达满负载状态时(即执行步骤1时),该第一存储节点可为存储装置中的任意一个存储节点,包括首次到达满负载状态的存储节点,或第n次(n为大于1的整数) 到达满负载状态的存储节点。另外,检测方式也不唯一,例如存储装置(具体可为存储装置中的管理节点)可以主动对各存储节点的存储空间进行实时检测或定时检测,也可以是在某一存储节点到达满负载状态时主动发出信号,使存储装置(具体可为存储装置中的管理节点)能够根据该信号得知该存储节点将到达或已经到达满负载状态。
管理节点在获取其余存储节点的状态信息时(即执行步骤2时),该各其余存储节点的状态信息可通过存储装置主动进行实时或定时检测获取,也可由各存储节点实时或定时向管理节点进行发送而使存储装置获得其余各存储节点的状态信息。而且,该步骤的执行可与步骤1同时进行;也可后于步骤1进行,即,在检测到有满负载状态的存储节点时才进行;还可与步骤1分别独立进行,即,步骤2的执行并不基于步骤1,也不受其影响。
本实施例步骤2中的状态信息至少包括其余各存储节点的剩余存储空间信息。基于此,管理节点在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时,可通过比对各存储节点的剩余空间信息而确定出剩余存储空间最多的存储节点作为最终的应急节点;也可基于各存储节点的剩余空间信息而将多个存储节点按空间大小进行排序,甚至基于该排序关系而确定出候选存储节点,之后基于状态信息中的其他信息而从多个候选存储节点中确定出最终的应急节点。
例如,当存储装置中某存储节点达到满负载状态时,该存储节点将所有正在处理或者待处理的IO请求挂起,并且向存储装置中的管理节点发起请求。管理节点收到请求之后,判断当前存储装置具有的存储副本数量,当存储副本数量至少为两个时(也即,用户输入一个数据时,该数据会被存储装置同时至少存入两个存储节点中,使形成至少两个关于该数据的存储副本),确定数据备份稳定,可确保无数据丢失,此时管理节点才会启动应急处理方案(应急方案启动后,新写入的数据的存储副本数量可能不变,也可能减少一个存储副本),也即依次执行步骤2和步骤3,:查询存储装置中其余各存储节点的剩余存储空间,待各存储节点返回状态信息之后,据此筛选出应急节点。
进一步地,为了能够适配更多种应用情况,同时确保数据不会仅存储在某一存储节点,导致单点故障及产生数据存储安全隐患,本实施例步骤 2中的状态信息不仅包括其余各存储节点的剩余存储空间信息,还可包括以下信息中的一种或多种,具体地:
实施例一:
状态信息还包括对应的存储节点的存储空间的历史使用信息;
当状态信息还包括上述历史使用信息时,管理节点在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时具体为:
根据剩余存储空间信息确定候选存储节点;
根据历史使用信息从候选存储节点中确定应急节点。
以存储装置应用于A银行的多个ATM机办理存取款业务中为例,各 ATM机中的用于存储用户输入的数据的存储磁盘(实体磁盘或虚拟磁盘均可)即可认为是一个存储节点,或者存储装置也可为云存储装置,即,每个ATM机均与云端处理装置通信连接,用户在ATM机上输入的数据可以直接传送至云端进行存储处理,云存储装置中的多个实体或虚拟的存储装置形成多个存储节点。当存储装置的管理节点检测到有一存储节点达到满负载状态,同时检测到获取的其余存储节点的状态信息中不仅包含剩余存储空间信息,还包含各存储节点的存储空间的历史使用信息时,存储装置会先根据剩余存储节点的剩余存储空间信息按照预设规则确定候选存储节点,例如剩余存储空间容量依次递减排序,并令前五个存储节点作为候选存储节点。之后根据各存储节点的存储空间的历史使用信息确定出各候选存储节点中有哪些曾经出现过满负载状态,接着据此从多个候选存储节点中确定出应急节点。该应急节点需满足的条件需剩余存储空间尽可能大,且至少包括该存储节点曾经未出现过满负载状态。如此设置应急节点的原因是为了满足存储需求的同时避免该存储节点具有其他应急节点,导致存储节点间关系凌乱复杂,影响数据的分布式存储。
实施例二:
状态信息还包括用于表明对应的存储节点是否为第三存储节点的应急节点的第一标记信息;
当状态信息还包括上述第一标记信息时,管理节点在执行步骤3:根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点时具体为:
根据剩余存储空间信息确定候选存储节点;
根据第一标记信息从候选存储节点中确定应急节点。
继续上述实施例,当存储装置检测到获取的标记信息包含第一标记信息时,会优先按剩余存储空间由大到小的顺序排列,然后按预设要求将前五个存储节点确定为候选存储节点。之后,按照排序顺序依次检测各候选存储节点的状态信息中是否具有第一标记信息,最后确定出不具有第一标记信息且剩余存储空间最大的候选存储节点为最终的应急节点。采用该种方式确定后的应急节点可保证分布式存储数据安全性,确保同一份数据的多个副本不会落在同一个存储节点上,导致该存储节点故障。
实施例三:
本实施例中的状态信息同时包含实施例一与实施例二中的历史使用信息和第一标记信息。
具体地,仍以上述实施例为例,当管理节点按照剩余存储空间信息确定出候选存储节点后,按序依次检测各候选存储节点的历史使用信息和第一标记信息,最终确定出同时满足存储空间大、非第三存储节点应急节点且未曾出现过满负载状态的候选存储节点为应急节点。
进一步地,在确定出应急节点后,管理节点还用于:
根据应急节点的存储空间信息确定用于存储第一存储节点新读写的数据的应急存储空间;
将应急存储空间映射为第一存储节点的存储空间。
具体实施时,可根据该应急节点的存储空间信息确定应急节点的剩余存储空间中可释放出多少空间作为存储第一存储节点新写入的数据的应急存储空间,例如可确定将该应急节点的剩余存储空间中的一半,或三分之一、三分之二等用作应急存储空间。该应急存储空间不可占用应急节点的剩余存储空间的百分之八十至百分百,必须确保该应急节点自身也可正常完成新数据的写入。之后,可以使用映射工具将该应急存储空间映射为第一存储节点的存储空间,也即,第一存储节点新写入的数据可直接被写入该应急存储空间中。
进一步地,本实施例中的管理节点还用于:
确定第二存储节点是否具有第二标记信息,第二标记信息用于表明第二存储节点已为第一存储节点的应急节点;
若不具有,则将确定第二存储节点为应急节点;
若具有,则根据第二存储节点的剩余存储空间信息对应急存储空间进行扩容。
具体地,在筛选出应急节点之后,存储装置中的管理节点发送请求至应急节点,应急节点根据请求检测自身是否具有第二标记信息,以判断本节点(即应急节点本身)是否之前已经是第一存储节点的应急节点。如果本节点不具有第二标记信息,则证明不是满载节点的应急节点,故将本节点进行标记使成为满载节点的应急节点(即形成第二标记信息)。即时,在应急节点的底层文件装置中创建一个例如占其剩余存储空间一半大小的文件,该文件采用预先分配的方式占用相应大小的磁盘空间,使这些磁盘空间不会被应急节点读写的数据使用。然后发送请求至第一存储节点,使其将该文件映射成为其本地的磁盘,以使用该磁盘扩展其存储空间。如果判断出本节点已经是第一存储节点的应急节点,则扩展之前的具有映射关系的文件的空间,扩展量可为应急节点当前剩余存储空间的一半。然后向第一存储节点发送请求,以使其重新扫描扩展后的文件,以更新其本地磁盘的存储空间。
进一步地,虽然管理节点启动了存储装置的应急方案,使得已到达满负载状态的应急节点仍可借助其他存储节点的剩余存储空间继续读写新数据,但是难免会出现状况紧急,如遭遇数据存储高压期,存储装置读写数据频率较高,剩余存储空间不足以继续长时间支撑。故为了避免出现数据存储中断现象,影响用户使用,本实施例中的管理节点还用于:
生成用于提示用户及时扩容存储装置的提示指令;
发送所述提示指令至响应设备。
例如,在存储装置启动应急方案后,可实时监控各个存储节点的剩余存储空间量,当检测到预设数量的存储节点的剩余存储空间大小低于预设值后,便生成提示指令,存储装置可根据该提示指令向可输出文字或画面或声音等装置发送请求,使该装置输出提示信息或提示音,以通知存储装置的管理员对存储装置及时进行扩容。当然,提示信息的生成条件并不一定基于上述条件,例如还可是存储装置监控预设时间内数据写入量的大小,以此确定提示信息的生成时间。
进一步地,当管理员对存储装置进行扩容后,本实施例中的第一存储节点还用于:
在所述存储装置扩容之后,转移所述应急节点中存储的所述第一存储节点的数据至所述第一存储节点的存储空间中;
确定所述数据是否全部转移;
若是,则解除映射关系并释放所述应急存储空间。
也就是,在存储装置被扩容后,第一存储节点检测到本地存储空间出现剩余,此时便将应急节点中的应急存储空间中的数据转移至本地存储空间中。转移的数据量可根据本次存储空间的剩余量而定,如若当前空间剩余量不够接纳应急存储空间中的全部数据可根据实际情况暂且保持转移部分数据后的现状,也即,应急节点仍存在。或继续通知管理员进行扩容,当第一存储节点本地存储空间足够接纳应急存储空间中的全部数据时,转移该全部数据,之后解除与应急节点间的映射关系,使应急节点由在确定为应急节点时切换为的应急状态恢复至初始正常状态。该步骤同样适用于存储装置中所有具有前述映射关系的存储节点间。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理方法所应用于的电子设备,可以参考前述产品实施例中的对应描述,在此不再赘述。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

Claims (8)

1.一种分布式存储方法,包括:
检测到存储装置中第一存储节点到达满负载状态时:
获取其余存储节点的状态信息,所述状态信息至少包括剩余存储空间信息;
根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点;
所述状态信息还包括对应的所述存储节点的存储空间的历史使用信息,所述历史使用信息包括所述存储节点的存储空间曾经是否出现过满负载状态的信息;
所述根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点具体为:
根据所述剩余存储空间信息确定候选存储节点;
根据所述历史使用信息从所述候选存储节点中确定所述应急节点。
2.根据权利要求1所述的方法,其特征在于,所述状态信息还包括用于表明对应的所述存储节点是否为第三存储节点的应急节点的第一标记信息;
所述根据所述状态信息确定第二存储节点作为用于对所述第一存储节点进行扩容的应急节点具体为:
根据所述剩余存储空间信息确定候选存储节点;
根据所述第一标记信息从所述候选存储节点中确定所述应急节点。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据所述应急节点的存储空间信息确定用于存储所述第一存储节点新读写的数据的应急存储空间;
将所述应急存储空间映射为所述第一存储节点的存储空间。
4.根据权利要求3所述的方法,其特征在于,还包括:
确定所述第二存储节点是否具有第二标记信息,所述第二标记信息用于表明所述第二存储节点已为所述第一存储节点的应急节点;
若不具有,则将确定所述第二存储节点为所述应急节点;
若具有,则根据所述第二存储节点的剩余存储空间信息对所述应急存储空间进行扩容。
5.根据权利要求3所述的方法,其特征在于,还包括:
生成用于提示用户及时扩容所述存储装置的提示指令;
响应所述提示指令。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述存储装置扩容之后,转移所述应急节点中存储的所述第一存储节点的数据至所述第一存储节点的存储空间中;
确定所述数据是否全部转移;
若是,则解除映射关系并释放所述应急存储空间。
7.一种分布式存储装置,包括:
存储节点,其为多个,用于配合分布式存储数据;
管理节点,其用于在检测到第一存储节点到达满负载状态时,获取其余存储节点的状态信息,并根据状态信息确定第二存储节点作为用于对第一存储节点进行扩容的应急节点,其中状态信息至少包括剩余存储空间信息;
所述状态信息还包括对应的所述存储节点的存储空间的历史使用信息,所述历史使用信息包括所述存储节点的存储空间曾经是否出现过满负载状态的信息;
所述管理节点根据所述剩余存储空间信息确定候选存储节点,并根据所述历史使用信息从所述候选存储节点中确定所述应急节点。
8.根据权利要求7所述的分布式存储装置,其特征在于,所述状态信息还包括用于表明对应的所述存储节点是否为第三存储节点的应急节点的第一标记信息;
所述管理节点根据所述剩余存储空间信息确定候选存储节点,并根据所述第一标记信息从所述候选存储节点中确定所述应急节点。
CN201811117783.6A 2018-09-21 2018-09-21 一种分布式存储方法及分布式存储装置 Active CN109407976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811117783.6A CN109407976B (zh) 2018-09-21 2018-09-21 一种分布式存储方法及分布式存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811117783.6A CN109407976B (zh) 2018-09-21 2018-09-21 一种分布式存储方法及分布式存储装置

Publications (2)

Publication Number Publication Date
CN109407976A CN109407976A (zh) 2019-03-01
CN109407976B true CN109407976B (zh) 2021-09-14

Family

ID=65466358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811117783.6A Active CN109407976B (zh) 2018-09-21 2018-09-21 一种分布式存储方法及分布式存储装置

Country Status (1)

Country Link
CN (1) CN109407976B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134332B (zh) * 2019-04-28 2022-03-08 平安科技(深圳)有限公司 一种数据存储方法及相关装置
CN111526315B (zh) * 2020-04-28 2023-03-14 杭州海康威视数字技术股份有限公司 视频数据的存储方法、装置、***及设备
CN112395469A (zh) * 2020-11-27 2021-02-23 ***股份有限公司 生物特征存储方法、装置、设备及存储介质
CN112835527A (zh) * 2021-02-05 2021-05-25 西藏宁算科技集团有限公司 基于minio云存储的扩容方法、装置及电子设备
CN113867643A (zh) * 2021-09-29 2021-12-31 北京金山云网络技术有限公司 数据存储方法、装置、设备及存储介质
CN115617264A (zh) * 2022-09-21 2023-01-17 浙江大华技术股份有限公司 分布式存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015883A (zh) * 2016-01-28 2017-08-04 ***通信集团上海有限公司 一种动态数据备份方法及装置
CN107707619A (zh) * 2017-08-28 2018-02-16 北京小米移动软件有限公司 分布式存储方法及装置
CN107864209A (zh) * 2017-11-17 2018-03-30 北京联想超融合科技有限公司 数据写入的方法、装置及服务器
CN108023967A (zh) * 2017-12-20 2018-05-11 联想(北京)有限公司 一种数据平衡方法、装置及分布式存储***中的管理设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279777B (zh) * 2011-08-18 2014-09-03 华为数字技术(成都)有限公司 数据冗余处理方法、装置和分布式存储***
CN103259740B (zh) * 2013-04-27 2017-03-15 杭州华三通信技术有限公司 一种负载均衡处理方法及装置
US9767062B2 (en) * 2015-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Low power parallelization to multiple output bus widths

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107015883A (zh) * 2016-01-28 2017-08-04 ***通信集团上海有限公司 一种动态数据备份方法及装置
CN107707619A (zh) * 2017-08-28 2018-02-16 北京小米移动软件有限公司 分布式存储方法及装置
CN107864209A (zh) * 2017-11-17 2018-03-30 北京联想超融合科技有限公司 数据写入的方法、装置及服务器
CN108023967A (zh) * 2017-12-20 2018-05-11 联想(北京)有限公司 一种数据平衡方法、装置及分布式存储***中的管理设备

Also Published As

Publication number Publication date
CN109407976A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
CN109407976B (zh) 一种分布式存储方法及分布式存储装置
EP3620905B1 (en) Method and device for identifying osd sub-health, and data storage system
JP4642389B2 (ja) メモリ不足およびグレースフルシャットダウンの検出
US20080010421A1 (en) Snapshot expansion system and method thereof
CN103902331B (zh) 信息处理装置和信息处理方法
CN109669762B (zh) 云计算资源管理方法、装置、设备及计算机可读存储介质
CN107729185B (zh) 一种故障处理方法及装置
CN107817950B (zh) 一种数据处理方法及装置
CN106371974A (zh) Docker容器内应用程序的监控方法和发布平台
CN110597635B (zh) 图形处理资源分配方法、装置、计算机设备及存储介质
CN109274544A (zh) 一种分布式存储***的故障检测方法及装置
CN110213128B (zh) 服务端口检测方法、电子设备及计算机存储介质
CN107506266A (zh) 一种数据恢复方法及***
CN113535474B (zh) 异构云存储集群故障自动修复的方法、***、介质及终端
CN107544869A (zh) 一种数据恢复方法和装置
CN113687790A (zh) 数据重构方法、装置、设备及存储介质
CN103810038B (zh) 一种ha集群中虚拟机存储文件迁移方法及其装置
CN110337633A (zh) 一种数据存储方法及设备
CN104956346A (zh) 控制由于分布式计算***的计算节点中的故障而导致的错误传播
CN109522184A (zh) 一种服务器***安全监控方法、装置及终端
CN106453544B (zh) 一种云环境及其监控方法、***
CN108509296A (zh) 一种处理设备故障的方法和***
JPWO2012090290A1 (ja) メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
CN109062781B (zh) 一种报文缓冲区管理方法及装置
CN115373896B (zh) 一种基于分布式块存储的副本数据恢复方法和***

Legal Events

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