CN112612414B - 基于微处理器系统调度实现冷数据分布式存储系统 - Google Patents

基于微处理器系统调度实现冷数据分布式存储系统 Download PDF

Info

Publication number
CN112612414B
CN112612414B CN202011502277.6A CN202011502277A CN112612414B CN 112612414 B CN112612414 B CN 112612414B CN 202011502277 A CN202011502277 A CN 202011502277A CN 112612414 B CN112612414 B CN 112612414B
Authority
CN
China
Prior art keywords
storage
erasure code
state
write
node
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
CN202011502277.6A
Other languages
English (en)
Other versions
CN112612414A (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.)
Hangzhou Qianyun Data Technology Co ltd
Original Assignee
Hangzhou Qianyun Data Technology 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 Hangzhou Qianyun Data Technology Co ltd filed Critical Hangzhou Qianyun Data Technology Co ltd
Priority to CN202011502277.6A priority Critical patent/CN112612414B/zh
Publication of CN112612414A publication Critical patent/CN112612414A/zh
Application granted granted Critical
Publication of CN112612414B publication Critical patent/CN112612414B/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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0625Power saving in 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Abstract

本发明涉及一种基于微处理器系统调度实现冷数据分布式存储系统。包括硬件系统和软件系统,软件系统包括服务层、调度层和存储层。所述的服务层是实现一个高可用性的基于RESTFUL的对象存储接口,其包括多个RESTFUL对象存储服务节点;所述的存储层由微处理系统和机械硬盘形成的存储节点构成,每个存储节点都有自己的唯一标识uuid和唯一的IP地址,节点在不提供服务的时候能够进入休眠状态,同时在需要读写时又能快速唤醒;所述的调度层实现响应服务层发送来的请求,并对后端的存储层进行调度。本发明能有效满足当前历史数据的容量伸缩和成本低廉的需求。

Description

基于微处理器系统调度实现冷数据分布式存储系统
技术领域
本发明涉及一种基于微处理器系统调度实现冷数据分布式存储系统。
背景技术
大数据现在已经无处不在,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。各行各业的企业或者部门都希望利用大数据挖掘自身更大的价值,那么利用数据的第一步就是存储数据,因此伴随着大数据的诞生也让存储进入了一个高速发展期。
对于未来存储趋势,Gartner认为,在企业数字化和全球化趋势下,数据的快速增长使得企业IT面临新的挑战。受此影响,分布式存储成为海量非结构化数据的首选平台。用户非结构化数据以同比30%~60%的势头增长,企业需要具备扩展性、灵活性、自动化和编程访问、自我修复能力的云端基础设施。从部署的数量和容量来看,基于分布式文件系统和对象存储的存储基础设施系统比以往任何时候增长得更快。
分布式存储最早是由谷歌提出的,其目的是通过廉价的服务器来提供使用与大规模,高并发场景下的文件访问问题。之后,亚马逊公司开发向公众提供了高可用性的云存储服务(主要是以对象接口提供)。随后,各大存储厂商也提供了分布式存储和对象存储的产品,也有很多运营商加入到提供云存储服务的行列里面来。
分布式存储和对象存储最大的优点就是:1、可以实现去中心化,用一致性hash算法,让集群中每一个节点都是可以对外提供服务的,提高了存储的可用性,避免了单点故障。2、冗余策略可以自由选择,从三副本到纠删码,可以提供不同冗余度的数据保护机制。3、可以动态横向扩展,不光可以扩展容量,还可以扩展并发访问的性能,让存储建设节约很多前期成本。
分布式存储和对象存储同时也存在着弱点,主要就是由于所有存储节点都是由PC服务器组成,因此,节点的耗电量就成了所有云存储商或者大型对象存储用户面临的一个重要问题,而且不光是节点本身耗电量,由此带来的散热也需要制冷的耗电能耗来降温。
当大数据应用越来越广泛,那么很多的历史数据有着归档和低频使用保存的需求。因为在大数据时代,往往很多历史数据作为将来分析可能会用到的数据需要被保存,但是由于他们被使用的频率相对很低,而且容量又在急剧上升,所以需要一个比较低廉和容易扩展的方式进行保存。
上述的分布式存储和对象存储在硬件形式上已经满足了容易扩展和建设成本低廉的需求,但后期的电量使用会是一个巨大的负担。根据IDC的统计,存储的硬件成本以五年折旧计算,只占总投入成本的百分之二十左右,而其他成本都是能耗成本。
发明内容
本发明针对现有技术存在的的缺点,提供一种基于微处理器系统调度实现冷数据分布式存储系统,能有效满足当前历史数据的容量伸缩和成本低廉的需求。
为此,本发明采取如下的技术方案:基于微处理器系统调度实现冷数据分布式存储系统,其特征在于包括硬件系统和软件系统,硬件系统包括微处理系统,系统支持接入多个硬盘,并支持硬盘休眠和系统深度休眠,同时支持通过以太网口进行唤醒系统,软件系统包括服务层、调度层和存储层。
所述的服务层是实现一个高可用性的基于RESTFUL的对象存储接口,其包括多个RESTFUL对象存储服务节点,当被选中的服务节点开始响应用户的RESTFUL接口请求时,首先获取操作方法,是写或读操作,其次获取存储对象的名称和此次操作的具有唯一性的用户名,最后缓存写操作内容或者请求读内容;
所述的存储层由微处理系统和机械硬盘形成的存储节点构成,每个存储节点都有自己的唯一标识uuid和唯一的IP地址,在存储资源池里首先根据每个节点的唯一标识和IP地址进行节点分组,每个组的节点个数为M+N,节点在不提供服务的时候能够进入休眠状态,同时在需要读写时又能快速唤醒;
休眠分成三个状态:写休眠、待机休眠、深度休眠,这三个状态都是相对于一个纠删码组来定义的;
写休眠是指一个纠删码组里面,如果纠删码是M+N,那么在这个状态下,有N个存储节点是处于硬盘休眠状态,由于在线的节点数不完整,无法满足写需求,所以当前这个组是处于只读的状态,
待机休眠是指整个纠删码组所有的存储节点都处于硬盘休眠状态,在这种状态下,组的读写状态恢复会比较快,只要接收到指令,所有存储节点可以立刻唤醒硬盘,进入待命状态,
深度休眠是指整个纠删码组所有的存储节点硬盘和微处理器系统都处于休眠状态,如果需要进入待命状态,必须首先由调度层发送以太网唤醒,然后进入待机状态,进而再又待机状态进入写休眠或者全待命状态,
所述的调度层实现响应服务层发送来的请求,并对后端的存储层进行调度,如果需要的纠删码组是在深度休眠状态下,那么要先进行组成员存储节点的全部唤醒,等待组的状态切换到写休眠或者待命状态,再把调度结果发送给请求服务节点,让服务节点继续向存储层完成后续读写操作。
作为优选,所述服务层的缓存分为读缓存和写缓存两种,写缓存是当用户提交之后,缓存在服务节点,等待目标存储池里面的纠删码组待命后,直接把写缓存写入;
所述的读缓存是基于事件广播驱动的有向图机制,一个是读操作请求,一个是休眠广播,当收到读操作请求时,找到对应有向图的对象标识节点,如果进入读操作老化超时,说明上次请求距离当前时间太长,那么本次读操作失败需要重新读操作事件驱动,如果本身在缓存中,那么直接从缓存中读取对象内容,否则进入对应的纠删码组节点,如果纠删码组在待命状态,那么不需要进入缓存直接返回读操作结果,如果纠删码组在写休眠状态,那么不需要进入缓存直接返回读操作结果,如果纠删码组在待机状态,那么等待唤醒到写休眠状态,把对象加载到对象缓存区域;
当收到休眠广播事件时,找到对应有向图的纠删码组节点,如果节点被广播进入待命状态,则停止遍历,如果节点被广播进入写休眠状态,则停止遍历,如果节点被广播进入待机状态,那么将未老化超时对象加载到对象缓存区域,如果节点被广播进入待命状态,则将对象从对象缓存区域移除。
作为优选,构成有向图之后,如果从驱动点能够在有向图找到最优路径进入对象缓存区域的,则将对象加载或者保留在对象缓存区域,反之则不加载或者不保存。
作为优选,存储层中的存储对象的存储位置是采用动态一致性哈希环的方法进行计算,其基于存储池的环状结构的“作息时间表”,
所述的“作息时间表”是把一个周期形成一个圆周,每一段代表一个需要待命的时间段,每一个加入的纠删码组,根据自己加入“作息表”的顺序对时间段取模,然后把自己并入对应时间段激活队列中,如果纠删码个数不足以填满计划中所有时间段时,那么用虚拟映射的方式,把已经分配的组映射到空白时间段,当到达一个计划时间段时,将会激活所有属于这个时间段队列的纠删码组,在激活过程中,如果已激活记录不为空,那么跳过虚拟映射组。
作为优选,所述的服务层实现对外接口服务的负载均衡和用户读取写入缓存,以及一些用户账号管理、用户配额管理和计费管理,负载均衡采用最小连接数优先轮询算法来进行连接分配,所有服务节点组成一个服务层集群,在这个集群中维护一个分布式的当前服务情况的状态表。
作为优选,所述的微处理系统包括ARM微处理器,所述ARM微处理器的板卡上集成内存颗粒、FLASH颗粒、SATA控制器、以太网控制器和TTL串口,软件系统采用嵌入式linux的内核。
本发明是一套以冷数据存储为目的的节能减排的存储系统。针对存储层的架构进行全新设计,做到在某个节点不提供服务的时候能够进入休眠状态,同时在需要读写时又能快速唤醒,大幅降低了能耗。
附图说明
图1为本发明的系统结构示意图。
图2为本发明发运行逻辑图。
图3为各个睡眠状态关系图。
图4为基于事件广播驱动的有向图。
图5为存储池的“作息时间表”。
图6为一致性时间动态哈希环原理图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
如图1所示的的基于微处理器系统调度实现冷数据分布式存储系统,包括硬件系统和软件系统,硬件系统包括微处理系统,定制的微处理系统,从硬件上主要考虑节电和功能方面,在PCB上只集成了一个微处理器、两片内存颗粒共2G大小、1片256M的FLASH颗粒、一个SATA控制器和一个以太网控制器。软件系统采用嵌入式linux的内核,精简一个最小化的操作系统,只运行调度和对象存储节点相关进程。系统支持接入两个sata硬盘,并支持硬盘休眠和系统深度休眠,同时支持通过以太网口进行唤醒系统。
整个系统分为三层,服务层、调度层和存储层。三个层分别可以自己横向扩展。
1.服务层
服务层实现一个高可用性的基于RESTFUL的对象存储接口,主要实现对外接口服务的负载均衡和用户读取写入缓存,以及一些用户账号管理、用户配额管理和计费管理等等的辅助功能。
负载均衡采用最小连接数优先轮询算法来进行连接分配,所有服务节点组成一个服务层集群,在这个集群中维护一个分布式的当前服务情况的状态表。
当用户请求到达服务层时,首先根据当前各个服务节点的服务提供情况,选择当前用户连接最少的几个节点,然后按照服务器命名字典排序的方式选择排在第一位的服务节点,最后把用户请求转接到被选择的服务节点。
当被选中的服务节点开始响应用户的RESTFUL接口请求时,首先获取操作方法,是增删改还是查,我们把增删改统一定义为写操作,查定义为读操作,其次获取存储对象的名称和此次操作的具有唯一性的用户名,最后缓存写操作内容或者请求读内容。运行逻辑如图2所示。
由于RESTFUL接口是基于HTTP/HTTPS协议的接口,用户端和服务节点之间的交互过程力求简单,但服务节点要想响应用户端的读写请求,需要经过调度层的一系列调度操作之后再对存储层进行读写操作,因此服务节点需要对用户端请求进行缓存排队。
2存储层
存储层是实现数据高可靠存储的地方,也是在三层中规模最巨大的层次,随着数据的急剧增长,存储层容量需要不断扩容,存储节点数也要不断增加。
存储层的基本单元由微处理系统加上两块SATA机械硬盘形成的存储节点构成,大量的存储节点组成了一个巨大的存储网络资源池,在资源池里,每个存储节点都有自己的唯一标识uuid,也有自己唯一的IP地址。
目前被验证可靠的分布式存储冗余方案是三拷贝和纠删码,相对来说纠删码能更有效地利用磁盘空间,因此我们在存储资源池里首先根据每个节点的唯一标识和IP地址进行节点分组,每个组的节点个数为M+N,每个纠删码组也有自己的唯一标识uuid。
由于存储层在三层中规模最为巨大,所以本系统的节电主要工作在这一层,因为相对于这一层,其他两层的服务器数量可以忽略不计。我们要做的节电不仅仅是把普通x86服务器换成了arm微处理器,我们还需要做到在某个节点不提供服务的时候能够进入休眠状态,同时在需要读写时又能快速唤醒。
休眠我们把它分成三个状态:写休眠、待机休眠、深度休眠。这三个状态都是相对于一个纠删码组来说的,因为我们在对某一个object发起读写请求的时候,一个object只会存在某一个纠删码组里面,并且这个组里面每一个存储节点都会存部分object的数据。各个状态直接关系如图3所示。
写休眠是指一个纠删码组里面,如果纠删码是M+N,那么在这个状态下,有N个存储节点是处于硬盘休眠状态,由于在线的节点数不完整,无法满足写需求,所以当前这个组是处于只读的状态。
待机休眠是指整个纠删码组所有的存储节点都处于硬盘休眠状态,在这种状态下,组的读写状态恢复会比较快,只要接收到指令,所有存储节点可以立刻唤醒硬盘,进入待命状态。
深度休眠是指整个纠删码组所有的存储节点硬盘和微处理器系统都处于休眠状态,如果需要进入待命状态,必须首先由调度层发送以太网唤醒,然后进入待机状态,进而再又待机状态进入写休眠或者全待命状态。
3.调度层
调度层主要实现响应服务节点发送来的请求,并对后端的存储层进行调度。如果需要的纠删码组是在深度休眠状态下,那么要先进行组成员存储节点的全部唤醒,等待组的状态切换到写休眠或者待命状态,再把调度结果发送给请求服务节点,让服务节点继续向存储层完成后续读写操作。
由于存储层要做到去中心化,所有的存储节点都是对等的,那么一个object的存储请求送过来,需要调度层使用自定义字符串散列算法并辅助”存储层作息时间表”和剩余空间来进行定位。
每一个object的读写请求都会产生一个定位信息,定位一定是指向一个纠删码组,根据这个定位,如果是写操作调度者会首先查看对应的纠删码组是否处于待命状态,如果是读操作调度者会首先查看对应的纠删码组是不是至少是写休眠状态。如果所需状态满足,那么向纠删码组发送保活指令,让纠删码组在下一个操作来之前不要“退热”进入不可操作的状态。如果对应的纠删码组进入了待机状态,那么把这个操作放入待机激活等待队列,如果是深度休眠状态则放入深度休眠唤醒等待队列。等到状态切换完毕,再进行后续调度和读写操作。
4.读操作缓存设计
服务层缓存分为读缓存和写缓存两种,写缓存相对来说比较简单,用户提交之后,缓存在服务节点,等待目标存储池里面的纠删码组待命后,直接把写缓存写入就可以了。
读缓存需要进行双向驱动,当用户发起读请求时有几种可能性,存储池内对应纠删码组本身就可以读取,操作进入排队激活,操作进入排队唤醒,后面两种状态是马上返回用户排队的ID号,类似于银行的叫号。但是,如果到了这个操作的号码,用户未必马上来取内容,那么需要先把内容加载到读缓存区,由于读缓存不可能无限大,那么就需要对这个区域进行一些处理。
根据上述特点,我们的读缓存并不是一个单纯为了提高读命中率的缓存机制,我们是为了在纠删码组深度休眠后的某一个特定时段内,提供用户获取对象内容的缓存,不能简单使用常用的LRU策略来管理缓存区间,因此我们提出了一种基于事件广播驱动的有向图的缓存方法,原理如图4所示。
驱动有向图的事件有两种,一个是读操作请求,一个是休眠广播,这里说的休眠广播是指休眠计划广播,不光是纠删码组即将休眠的广播,还包括纠删码组即将待命的广播。
当收到读操作事件时,找到对应有向图的对象标识节点,如果进入读操作老化超时,说明上次请求距离当前时间太长,那么本次读操作失败需要重新读操作事件驱动。如果本身在缓存中,那么直接从缓存中读取对象内容,否则进入对应的纠删码组节点。如果纠删码组在待命状态,那么不需要进入缓存直接返回读操作结果。如果纠删码组在写休眠状态,那么不需要进入缓存直接返回读操作结果。如果纠删码组在待机状态,那么等待唤醒到写休眠状态,把对象加载到对象缓存区域。
当收到休眠广播事件时,找到对应有向图的纠删码组节点,如果节点被广播进入待命状态,则停止遍历。如果节点被广播进入写休眠状态,则停止遍历。如果节点被广播进入待机状态,那么将未老化超时对象加载到对象缓存区域。如果节点被广播进入待命状态,则将对象从对象缓存区域移除。
根据上述事件驱动路径的描述,构成有向图之后,如果从驱动点能够在有向图找到最优路径进入对象缓存区域的,则将对象加载或者保留在对象缓存区域,反之则不加载或者不保存。
5.存储对象定位设计
大多数的去中心化分布式对象存储,考虑到扩容和移除异常节点的便利性,采用的存储对象位置计算的方法都是一致性哈希。但是,我们这种方式组织的存储池,如果采用一致性哈希无法解决纠删码组的休眠节电调度。因此,我们提出了一种基于存储池“作息时间表”的动态一致性哈希环的方法,用这种方法可以动态计算对象的存储位置,并且可以最大限度利用好每个正在待命状态的纠删码组,而尽可能减少频繁的激活操作。因为,无论是存储节点在待机状态激活硬盘也好,还是存储节点在深度休眠状态从网络唤醒也好,效率也会变得低下,而且对硬件会有一定损伤,同时节电的效果也会大打折扣。
首先我们来看存储池“作息时间表”,说起来是一个表,但事实上这也是一个环状结构,因为要保证新增的纠删码组能够平滑地加入到这个“作息表中”,如果用表结构就需要大量的重新编排的任务。同时,当需要读取一个对象时,如果“作息表”重新编排,那么就会产生无法定位到对象的问题,因为对象在存储时是按照“作息时间表”动态调整过的一致性哈希环定位的,如果在查询时“作息表”进行过重新编排,那么很可能有无法查询定位对象的情况出现。
基于上述特点,我们设计的存储池“作息时间表”,大致原理图如图5所示,把一个周期形成一个圆周,每一段代表一个需要待命的时间段。每一个加入的纠删码组,根据自己加入“作息表”的顺序对时间段取模,然后把自己并入对应时间段激活队列中。需要注意的是,如果纠删码个数不足以填满计划中所有时间段时,那么用虚拟映射的方式,把已经分配的组映射到空白时间段。当到达一个计划时间段时,将会激活所有属于这个时间段队列的纠删码组,在激活过程中,如果已激活记录不为空,那么跳过虚拟映射组。
接下来要用这个“作息表”来调整一致性哈希环,形成一个新型的一致性时间动态哈希环。在调整开始前,必须要明确调整的目的,由于存储池是会周期性批量进行节电休眠的,那么在写入操作到来的时候,处于待命状态的只有部分纠删码组,但是我们在计算一致性哈希环的时候,采用纠删码组的唯一标识uuid来进行计算哈希定位,那么定位的纠删码组有一定可能性是处于休眠状态。前面也提到,无论是微处理系统还是硬盘,如果频繁地从休眠状态到待机、待命状态之间进行切换,那么无论从节电还是硬件损坏上来说都是不可容忍的。因此,我们需要尽量把所有对存储池的写操作,有计划地在纠删码组待命的状态完成。一致性时间动态哈希环原理如图6所示。
一致性时间动态哈希环的左边就是我们之前提到的“作息时间表”,当需要哈希定位时,首先根据对象的名称计算出在右边哈希环上的位置,随后在发送一个信号告诉右边的“作息表”算出的位置在哪里。这时候,如果发现组15和组7是处于激活状态,然后算出的右环的位置上是K5,那么顺时针旋转一下右环,此时对应位置变成了K6,那么再顺时针旋转一下右环,对应位置变成了K7,此时跟“作息表”的处于激活队列的组7可以对应,并且组7不是虚拟映射的,那么把对象就定位在了K7节点,并记录在纠删码组7的存储节点组中。这样的做法,可以保证在存储池里面的纠删码组轮流休息的情况下,对象还是可以尽可能地均匀分布在整个存储池中。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (6)

1.基于微处理器系统调度实现冷数据分布式存储系统,其特征在于包括硬件系统和软件系统,硬件系统包括微处理系统,系统支持接入多个硬盘,并支持硬盘休眠和系统深度休眠,同时支持通过以太网口进行唤醒系统,软件系统包括服务层、调度层和存储层;
所述的服务层是实现一个高可用性的基于RESTFUL的对象存储接口,其包括多个RESTFUL对象存储服务节点,当被选中的服务节点开始响应用户的RESTFUL接口请求时,首先获取操作方法,是写或读操作,其次获取存储对象的名称和此次操作的具有唯一性的用户名,最后缓存写操作内容或者请求读内容;
所述的存储层由微处理系统和机械硬盘形成的存储节点构成,每个存储节点都有自己的唯一标识uuid和唯一的IP地址,在存储资源池里首先根据每个节点的唯一标识和IP地址进行节点分组,每个组的节点个数为M+N,节点在不提供服务的时候能够进入休眠状态,同时在需要读写时又能快速唤醒;
休眠分成三个状态:写休眠、待机休眠、深度休眠,这三个状态都是相对于一个纠删码组来定义的;
写休眠是指一个纠删码组里面,如果纠删码是M+N,那么在这个状态下,有N个存储节点是处于硬盘休眠状态,由于在线的节点数不完整,无法满足写需求,所以当前这个组是处于只读的状态;
待机休眠是指整个纠删码组所有的存储节点都处于硬盘休眠状态,在这种状态下,组的读写状态恢复会比较快,只要接收到指令,所有存储节点能够立刻唤醒硬盘,进入待命状态;
深度休眠是指整个纠删码组所有的存储节点硬盘和微处理器系统都处于休眠状态,如果需要进入待命状态,必须首先由调度层发送以太网唤醒,然后进入待机状态,进而再由待机状态进入写休眠状态,写休眠状态之后进入待命状态;
所述的调度层实现响应服务层发送来的请求,并对后端的存储层进行调度,如果需要的纠删码组是在深度休眠状态下,那么要先进行组成员存储节点的全部唤醒,等待组的状态切换到写休眠或者待命状态,再把调度结果发送给请求服务节点,让服务节点继续向存储层完成后续读写操作。
2.根据权利要求1所述的基于微处理器系统调度实现冷数据分布式存储系统,其特征在于所述服务层的缓存分为读缓存和写缓存两种,写缓存是当用户提交之后,缓存在服务节点,等待目标存储池里面的纠删码组待命后,直接把写缓存写入;
所述的读缓存是基于事件广播驱动的有向图机制,一个是读操作请求,一个是休眠广播,当收到读操作请求时,找到对应有向图的对象标识节点,如果进入读操作老化超时,说明上次请求距离当前时间太长,那么本次读操作失败需要重新读操作事件驱动,如果本身在缓存中,那么直接从缓存中读取对象内容,否则进入对应的纠删码组节点,如果纠删码组在待命状态,那么不需要进入缓存直接返回读操作结果,如果纠删码组在写休眠状态,那么不需要进入缓存直接返回读操作结果,如果纠删码组在待机状态,那么等待唤醒到写休眠状态,把对象加载到对象缓存区域;
当收到休眠广播事件时,找到对应有向图的纠删码组节点,如果节点被广播进入待命状态,则停止遍历,如果节点被广播进入写休眠状态,则停止遍历,如果节点被广播进入待机状态,那么将未老化超时对象加载到对象缓存区域,如果节点被广播进入待命状态,则将对象从对象缓存区域移除。
3.根据权利要求2所述的基于微处理器系统调度实现冷数据分布式存储系统,其特征在于构成有向图之后,如果从驱动点能够在有向图找到最优路径进入对象缓存区域的,则将对象加载或者保留在对象缓存区域,反之则不加载或者不保存。
4.根据权利要求1所述的基于微处理器系统调度实现冷数据分布式存储系统,其特征在于存储层中的存储对象的存储位置是采用动态一致性哈希环的方法进行计算,其基于存储池的环状结构的“作息时间表”,
所述的“作息时间表”是把一个周期形成一个圆周,每一段代表一个需要待命的时间段,每一个加入的纠删码组,根据自己加入“作息表”的顺序对时间段取模,然后把自己并入对应时间段激活队列中,如果纠删码个数不足以填满计划中所有时间段时,那么用虚拟映射的方式,把已经分配的组映射到空白时间段,当到达一个计划时间段时,将会激活所有属于这个时间段队列的纠删码组,在激活过程中,如果已激活记录不为空,那么跳过虚拟映射组。
5.根据权利要求1所述的基于微处理器系统调度实现冷数据分布式存储系统,其特征在于所述的服务层实现对外接口服务的负载均衡和用户读取写入缓存,以及一些用户账号管理、用户配额管理和计费管理,负载均衡采用最小连接数优先轮询算法来进行连接分配,所有服务节点组成一个服务层集群,在这个集群中维护一个分布式的当前服务情况的状态表。
6.根据权利要求1所述的基于微处理器系统调度实现冷数据分布式存储系统,其特征在于所述的微处理系统包括ARM微处理器,所述ARM微处理器的板卡上集成内存颗粒、FLASH颗粒、SATA控制器、以太网控制器和TTL串口,软件系统采用嵌入式linux的内核。
CN202011502277.6A 2020-12-18 2020-12-18 基于微处理器系统调度实现冷数据分布式存储系统 Active CN112612414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011502277.6A CN112612414B (zh) 2020-12-18 2020-12-18 基于微处理器系统调度实现冷数据分布式存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011502277.6A CN112612414B (zh) 2020-12-18 2020-12-18 基于微处理器系统调度实现冷数据分布式存储系统

Publications (2)

Publication Number Publication Date
CN112612414A CN112612414A (zh) 2021-04-06
CN112612414B true CN112612414B (zh) 2022-06-17

Family

ID=75241068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011502277.6A Active CN112612414B (zh) 2020-12-18 2020-12-18 基于微处理器系统调度实现冷数据分布式存储系统

Country Status (1)

Country Link
CN (1) CN112612414B (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US20100100587A1 (en) * 2008-10-14 2010-04-22 Digital Lifeboat, Inc. Systems and methods for a data management recovery in a peer-to-peer network
US8527838B2 (en) * 2009-07-31 2013-09-03 Cleversafe, Inc. Memory controller utilizing an error coding dispersal function
US8966063B2 (en) * 2012-02-06 2015-02-24 Microsoft Corporation Operating a sleep management service
CN102681791B (zh) * 2012-04-13 2015-04-15 华中科技大学 一种集群存储系统的节能存储方法
CN105138416A (zh) * 2014-06-05 2015-12-09 中兴通讯股份有限公司 磁盘休眠处理方法及装置
CN104540201B (zh) * 2015-02-04 2018-05-11 河南大学 无线传感器网络中节点调度覆盖空洞的避免方法
CN106603673A (zh) * 2016-12-19 2017-04-26 上海交通大学 基于纠删码的细粒度云存储调度方法
CN108270801A (zh) * 2016-12-29 2018-07-10 杨凌云禾农业信息科技有限公司 一种具有电力回收功能的无线低功耗大田种植环境感知系统实现方法
CN107844269B (zh) * 2017-10-17 2020-06-02 华中科技大学 一种基于一致性哈希的分层混合存储系统
CN111104048B (zh) * 2018-10-26 2021-02-12 华为技术有限公司 一种数据处理方法及分布式存储系统

Also Published As

Publication number Publication date
CN112612414A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
US9348408B2 (en) Adaptive power conservation in storage clusters
US8006111B1 (en) Intelligent file system based power management for shared storage that migrates groups of files based on inactivity threshold
WO2020103506A1 (zh) 基于混合存储的数据管理系统、方法、终端及介质
US20060075185A1 (en) Method for caching data and power conservation in an information handling system
CN108829341B (zh) 一种基于混合存储系统的数据管理方法
CN109164981B (zh) 磁盘管理方法、装置、存储介质和设备
CN1902577A (zh) 动态功率管理
JP2007272573A (ja) 低消費電力化メモリ管理方法及びメモリ管理プログラム
US20070061509A1 (en) Power management in a distributed file system
CN111104048B (zh) 一种数据处理方法及分布式存储系统
CN101853218B (zh) 用于磁盘阵列的读取方法和系统
CN112612414B (zh) 基于微处理器系统调度实现冷数据分布式存储系统
WO2015094704A1 (en) System and method for supporting adaptive busy wait in a computing environment
CN108255431B (zh) 一种统一管理的、基于策略的低功耗归档分析系统
US9424147B2 (en) System and method for supporting memory allocation control with push-back in a distributed data grid
CN112579528B (zh) 嵌入式网络文件系统服务器端高效率文件访问的方法
CN103714022A (zh) 一种基于数据块的混合存储系统
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
Lee et al. Energy-efficient storage policy for instant messenger services
JP2005004282A (ja) ディスクアレイ装置、ディスクアレイ装置の管理方法及び管理プログラム
CN112383628B (zh) 一种基于流式存储的存储网关资源分配方法
Lee et al. Analyzing I/O patterns for the design of energy-efficient image servers
Chen et al. Utilizing Multi-Level Data Fault Tolerance to Converse Energy on Software-Defined Storage
Sanjay et al. ECOSTAR-Energy Conservation in Swift through Tiered Storage Architecture
CN111209250A (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