CN106990915B - 一种基于存储介质类型和加权配额的存储资源管理方法 - Google Patents

一种基于存储介质类型和加权配额的存储资源管理方法 Download PDF

Info

Publication number
CN106990915B
CN106990915B CN201710106253.0A CN201710106253A CN106990915B CN 106990915 B CN106990915 B CN 106990915B CN 201710106253 A CN201710106253 A CN 201710106253A CN 106990915 B CN106990915 B CN 106990915B
Authority
CN
China
Prior art keywords
file
solid state
directory
state disk
storage
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.)
Expired - Fee Related
Application number
CN201710106253.0A
Other languages
English (en)
Other versions
CN106990915A (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.)
Beijing University of Aeronautics and Astronautics
Original Assignee
Beijing University of Aeronautics and Astronautics
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 Beijing University of Aeronautics and Astronautics filed Critical Beijing University of Aeronautics and Astronautics
Priority to CN201710106253.0A priority Critical patent/CN106990915B/zh
Publication of CN106990915A publication Critical patent/CN106990915A/zh
Application granted granted Critical
Publication of CN106990915B publication Critical patent/CN106990915B/zh
Expired - Fee Related 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0608Saving storage space on 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability 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/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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F3/0649Lifecycle management
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

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

Abstract

本发明涉及一种基于存储介质类型和加权配额的存储资源管理方法,包括步骤:存储设备和用户空间文件系统的挂载和读写请求分发,其中读写请求分发采用的Weighting Jump算法引入了加权分配特性,具有较高的计算速度、无状态调度和极低的内存消耗,这种方法采用类似谷歌John Lamping和Eric Veach提出的依概率跳变的方法来实现。能够从概率的层面保证存储资源的分配服从设定的权重,最小化标准误,并且具有比原有Hadoop集群的资源管理系统Yarn中实现更低的时间复杂度和内存消耗。克服了之前资源管理系统Yarn中实现的磁盘资源分配算法轮询检索目录的低效性,具有可伸缩性,且在扩展时,能够依概率最小化原有数据的移动。

Description

一种基于存储介质类型和加权配额的存储资源管理方法
技术领域
本发明涉及一种基于存储介质类型和加权配额的存储资源管理方法,属于大数据存储和分布式计算领域。
背景技术
随着大数据存储和混合存储介质技术的发展,存储资源管理和分配方法变得越来越重要,也面临着越来越严重的考验。Apache开源社区开发的Hadoop大数据处理系统已经成为大数据领域最具代表性的解决方案。Hadoop包括HDFS(Hadoop Distributed FileSystem)分布式文件系统和Yarn(Yet Another Resource Negotiator)资源管理系统和MapReduce数据处理框架。其中运行的MapReduce应用对于数据的访问分为访问map阶段读取输入文件时、Reduce阶段写入输出文件时对HDFS分布式文件系统的访问和shuffle阶段读写中间数据时对于本地系统存储资源的访问。随着混合存储技术的发展,应用对于存储资源的访问也引入不同的考虑因素,因此基于存储介质和加权分配的存储资源分配技术也得到学术界和工业界越来越多的重视。
由于MapReduce应用在shuffle(数据混洗)阶段把中间数据存放于本地系统中,访问序列具有高随机性并对于特定应用会产生数倍于原始输入数据大小的中间数据文件。因此优化中间数据的存储效率有较高的研究价值。对于中间数据的存储资源管理,能否根据存储资源的存储空间容量平衡地分配存储数据是至关重要的。从存储效率的角度来看,存储资源管理技术需要满足的条件包括平衡性、低内存效率、存储介质的选择性、低算法复杂度、容错性和伸缩性。尤其是伸缩性,需要在新增存储设备时,最小化已有数据的移动。然而在现今已有的存储资源管理或分配方法中,还没有一种方法能有效的将上述条件全部满足。本发明提出了一种新的存储资源管理方法,能有效的利用混合存储介质的差异性并满足上述优化要求。
发明内容
本发明的技术解决解决问题:克服现有技术的不足,提供一种内存消耗小的高性能的存储资源管理方法,该方法将存储资源的介质信息和容量信息有效的结合起来进行加权一致性哈希计算,能够更平衡高效地管理存储资源。
本发明的技术解决方案:一种基于存储介质类型和加权配额的存储资源管理方法,包括:用户空间文件系统的挂载和读写请求的分发两个步骤;
所述用户空间文件系统的挂载步骤如下:
(11)将多块固态硬盘和机械硬盘成对分别挂载于当前文件系统中。将第1块固态硬盘和第1块机械硬盘分别挂载到有完全读写权限的目录/ssd-1和/hdd-1下,将第2块固态硬盘和第2块机械硬盘分别挂载到有完全读写权限的目录/ssd-2和/hdd-2下,将第n块固态硬盘和第n块机械硬盘分别挂载到有完全读写权限的目录/ssd-n和/hdd-n下,直至将全部存储设备挂载到/ssd1~/ssdn和/hddn~/hddn下;
(12)将每对固态硬盘目录和机械硬盘目录的访问封装到用户空间文件系统中,用户空间文件系统优先将访问重定向到固态硬盘目录中,当固态硬盘目录的存储空间不足时,使用近期最少使用算法(LRU)将固态硬盘目录中近期最少使用的文件置换到机械硬盘目录中。
(13)启动多个进程,运行步骤(12)中的用户空间文件系统,并将这多个进程提供的文件服务都挂载到Hadoop系统配置中的中间数据存储目录中,监听这些中间数据存储目录的读写请求;
所述读写请求的分发步骤如下:
(21)将步骤(13)中的多个进程从1开始进行顺序编号,检查这些进程所提供文件服务的剩余容量,将这多个剩余容量的值,记录为请求分发的权重比例数组W;
(22)当对于Hadoop集群(Hadoop是一个由Apache基金会所开发的分布式计算系统)中用户提交的计算任务产生读写请求时,将读写请求的路径名和文件名,以及步骤(21)中计算的权重比例数组W输入Weighting Jump算法,将输出的值作为进程编号,将读写请求分发到步骤(21)中符合该编号的进程中。完成请求分发的操作。
所述的用户空间文件系统的挂载步骤中,使用FUSE库封装固态硬盘目录和机械硬盘目录的文件操作,对外实现POSIX接口的文件操作。
所述用户空间文件系统中对外提供一个统一的逻辑视图,这种逻辑视图的实现是通过符号链接技术构建的。用户空间文件系统将固态硬盘目录作为逻辑视图,置换到机械硬盘目录中的文件以符号链接的形式存放到固态硬盘目录中,指向机械硬盘目录中的原文件。而置换到固态硬盘目录中的文件以原文件的形式存放到固态硬盘目录中。将固态硬盘目录中近期最少使用的文件置换到机械硬盘目录中的具体过程如下:
(31)当固态硬盘目录的空间不足并且置换算法使用的调度缓存队列不为空,弹出缓存队列首部的文件路径;
(32)将步骤(31)的文件路径下的该文件复制到机械硬盘目录中;
(33)删除固态硬盘目录下的该文件;
(34)在固态硬盘目录中建立该文件的符号链接,指向步骤(32)中的机械硬盘目录中的该文件。
将机械硬盘目录中访问较多的文件F置换到固态硬盘目录中的具体过程如下:
(31)若固态硬盘容量不足,则先执行步骤(31)到(35);
(32)将文件F复制到固态硬盘中;
(33)删除固态硬盘目录中该文件的符号链接;
(34)将机械硬盘中文件F删除;
(35)更新缓存队列中文件F的位置。
Weighting Jump算法的具体实现逻辑如下:
(1)输入步骤(22)中的权重数组W、请求路径和文件名;
(2)将请求路径和文件名输入字符串哈希函数,哈希函数的输出是一个长整型;
(3)将步骤(2)中获得的长整型作为种子输入64位的线性同余随机数发生器;
(4)新建变量b为0,变量b为一个整数,代表本算法计算的进程编号。新建变量n,为步骤(21)中进程的数量;
(5)运行步骤(3)中的随机数发生器,随机数发生器的输出是一个随机数R;
(6)根据公式
Figure BDA0001233106000000031
求出j的最大值。若j的值小于n,则将b的值更改为j;若j的值大于等于n,则维持b的值不变。公式中Wx为步骤(1)中权重数组W的第x项,而floor()函数表示求上确界,b为步骤(5)中定义的变量,R为步骤(5)中获得的随机数;
(7)重复步骤(5)至步骤(6)直至b的值不再变化,输出变量b。输出步骤(6)中所算出的变量b,即:算法输入的请求的路径、文件名时,应分发给编号为b的进程进行处理。因此,将此次读写请求分发给编号为b的进程。完成请求分发步骤。
本发明与现有技术相比的优点在于:本发明采用一致性哈希算法保证了技术的可伸缩性和容错性;并且技术中一致性哈希算法的实现Weighting Jump算法相比于Karger的割环法实现减少了内存消耗;由于本发明提出的基于存储介质和加权一致性哈希的存储资源管理方法能更全面得考虑存储介质和存储容量,并且Weighting Jump算法中使用的概率算法减少了内存消耗,因此具有更高的鲁棒性。
附图说明
图1为本地存储资源管理的系统结构图;
图2为本技术在实际分布式计算框架中应用的系统结构图;
图3为本技术与现有技术的内存消耗对比图;
图4为本技术与现有技术的运行时间对比图;
图5为本技术与现有技术的标准误对比图。
具体实施方式
下面结合附图详细解释本发明提出的基于存储介质和加权一致性哈希的存储资源管理方法。
本发明的存储资源管理方法应该包含以下几个步骤:存储设备的挂载、用户空间文件系统的挂载、运行Hadoop应用、Hadoop应用读写请求的分发。其系统结构如图1所示。首先将存储设备按照存储介质的不同挂载到不同的目录下,再通过用户空间文件系统封装对于这些目录的文件操作请求。然后通过多个进程启动用户空间文件系统提供FUSE文件服务,并挂载到Hadoop系统的中间数据存储目录,提高存储资源的并发利用率。然后通过修改Hadoop系统的源代码,添加请求分发模块,使用Weighting Jump算法平衡多个进程的负载。
本发明提出的基于存储介质和加权一致性哈希的存储资源管理方法主要涉及MapReduce大数据处理框架中shuffle阶段的中间数据读写这个环节,如图2所示,本发明将Map函数输出的缓冲区的溢写中间数据交由本地资源存储分配器管理。Hadoop应用的读写请求经由请求分发模块的Weighting Jump算法,分发到某个运行中的用户空间文件系统。用户空间文件系统通过数据操作模块封装的FUSE API实现,操作实际挂载的存储设备。当存储空间足够时,优先使用固态硬盘,否则使用置换算法在固态硬盘和机械硬盘间进行文件的置换。中间数据文件和存储目录的具体映射关系由一致性哈希算法的单调性保证,具体步骤如下:
1.用户空间文件系统的挂载
本发明提出在分布式计算框架(如MapReduce)的中缓冲区溢写到本地存储资源时,对于中间计算数据的临时文件,使用挂载的用户空间文件系统,具体步骤如下:
(1)将多块固态硬盘和机械硬盘成对分别挂载于当前文件系统中。将第1块固态硬盘和第1块机械硬盘分别挂载到有完全读写权限的目录/ssd-1和/hdd-1下,将第2块固态硬盘和第2块机械硬盘分别挂载到有完全读写权限的目录/ssd-2和/hdd-2下,将第n块固态硬盘和第n块机械硬盘分别挂载到有完全读写权限的目录/ssd-n和/hdd-n下,直至将全部存储设备挂载到/ssd1~/ssdn和/hddn~/hddn下;
(2)将每对固态硬盘目录和机械硬盘目录的访问封装到用户空间文件系统中,用户空间文件系统优先将访问重定向到固态硬盘目录中,当固态硬盘目录的存储空间不足时,使用近期最少使用算法(LRU)将固态硬盘目录中近期最少使用的文件置换到机械硬盘目录中。逻辑上的文件和目录通过符号链接操作物理上实际的文件和目录。如果文件置换模块将文件换出到机械硬盘中,则固态硬盘中则只剩下符号连接;如果文件置换模块将文件换入到固态硬盘中,则固态硬盘存放着实际的文件。使用符号链接而不使用哈希表的原因有两点:第一点是因为符号链接是持久化的,因此不需要担心内存和磁盘不一致的问题,可以保证强一致性;第二点是由于符号链接是类Unix系统中原生支持的;
(3)启动多个进程运行步骤(2)中的所有用户空间文件系统,并将多个进程提供的FUSE文件服务都挂载到Hadoop系统配置中的中间数据存储目录中,通过Linux内核的FUSE模块监听挂载目录的读写请求;
本发明利用Hadoop应用对于中间数据的访问以随机I/O为主,且存活时间较短的特点,将中间数据优先存储于固态硬盘中,仅在空间不足时将文件置换到机械硬盘中。利用固态硬盘对于随机I/O的加速特性提高Hadoop应用的存储效率。
2.读写请求的分发
本发明提出采用Weighting Jump算法进行读写请求的分发。步骤中线性同余随机数发生器进行加权哈希值的计算,从而获得存储目录的编号。目标是为了解决存储设备的访问平衡性和效率问题,同时在存储设备发生故障或者新增存储设备时,最小化数据的移动。本发明采用的方法具有较好的平衡性、单调性、伸缩性、高效和极低的内存消耗。其中平衡性是指哈希的结果能够尽可能按照权重比分布到所有的存储目录中去,这样可以使得所有存储资源都得到利用。单调性是指虽然分配器没有存储已有的数据文件和存储目录的映射关系,哈希的结果能够保证原有已分配的内容可以通过设置随机数发生器的种子重新计算出映射关系。伸缩性是指当存储设备出现故障或者新增存储设备时,仅通过短暂的初始化分配器,即可适配新的存储环境,计算出最小数据移动的数据文件和存储目录的映射关系。高效是指算法的复杂度仅为O(lgn*lgn),其中n为中间数据存储目录的数量;内存消耗仅为O(n),且系数为一个极小的常数。具体步骤如下:
(1)输入步骤(22)中的权重数组W、请求路径和文件名;
(2)将请求路径和文件名输入字符串哈希函数,哈希函数的输出是一个长整型;
(3)将步骤(2)中获得的长整型作为种子输入64位的线性同余随机数发生器;
(4)新建变量b为0,变量n为步骤(21)中进程的数量;
(5)运行步骤(3)中的随机数发生器,随机数发生器的输出是一个随机数R;
(6)根据公式
Figure BDA0001233106000000061
求出j的最大值。若j的值小于n,则将b的值更改为j;若j的值大于等于n,则维持b的值不变。公式中Wx为步骤(1)中权重数组W的第x项,而floor()函数表示求上确界,b为步骤(5)中定义的变量,R为步骤(4)中获得的随机数;
(7)重复步骤(5)至步骤(6)直至b的值不再变化,输出变量b。变量b是输出的进程编号。因此将此次读写请求分发给编号为b的进程。完成请求分发步骤。
需要指出的是,与Karger使用的割环法实现相比,本发明不要求读写请求中的路径名,或使用的字符串函数具有均匀性或平衡性,这是由于本发明使用内置64位的伪随机数生成器来对每一次输入参数做再哈希,所以结果分布的平衡性与输入参数的分布无关,由随机数生成器的均匀性保证。下面详细说明Weighting算法的实现和原理:
设算法的输出为文件置换模块的编号j,定义j=ch(key,n),其中key为计算任务编号的哈希值key,n为文件置换模块的数量。由于编号为0到n-1的整数,所以对于任意的key,有ch(key,1)=0,此时n=1。为了满足上文所述的设计目标中的平衡性,当n的数量增加到2时,对于一部分key,ch(key,2)的值需要保持与ch(key,1)一样,依旧为0,这部分的比例占总量的
Figure BDA0001233106000000062
而另外比例的ch(key,2)的值则需要跳变为1。以此类推可以得出公式
Figure BDA0001233106000000064
因此此时可以使用一个随机数发生器来决定某一个key的结果要不要跳变,这个随机数发生器的状态仅仅依赖于key。通过n次增大编号的范围,最终可以将所有key的结果按照权重分配到n个文件置换模块。
借鉴于John Lamping和Eric Veach的发现,大多数情况下,ch(key,k)的值是不会跳变的,而且随着n的值越来越大,这个概率也变得越来越低。因此可以直接追踪编号的跳变路径。记上一个跳变的编号为b,假设下一个发生跳变的编号以一定的概率为j,那么从b+1到j-1中间发生的多次增大编号的范围都不能发生跳变。因此对于在区间(b,j)内的任意整数i,j是下一个跳变编号的概率可以记为P(j≥i)=P(ch(key,i)==ch(key,b+1))。
因此经过代入约分有:
Figure BDA0001233106000000071
上述推导的实际意义即为j>=i的概率为
Figure BDA0001233106000000072
此时通过取一个在(0,1)区间内的随机数R,规定当
Figure BDA0001233106000000073
时,意义为j>=i,所以有这样就得到了i的上界。
由于对于任意的i都要有j>=i,因此有
Figure BDA0001233106000000075
这样算法就可以根据一个随机数R得到下一个跳变的编号值j(满足公式的最大j取值),也即步骤(3)中的循环过程。
对采用上述Weighting Jump计算方法的请求分发模块,本发明不需要存储数据文件和存储目录的映射关系,这一点节省了大量的存储空间,可以从图3的内存消耗对比图看出这一优势:随着挂载目录的规模的增大Kager算法的内存消耗很快达到4500MB,而谷歌的Jump Consist Hash算法和本发明中的Weighting Jump算法的内存消耗依然能维持在一个较小的范围(4MB和8.1MB)。本发明与现有的Kager割环法相比,由于不需要维护虚节点环,节省了大量内存垃圾回收的时间,同时增加了加权配比的功能;本发明与谷歌的跳变式实现的一致性哈希计算的方法相比,增加了加权配比的功能,同时能够维持与其相近的时间消耗和标准误;本发明与传统的轮询法或轮盘赌技术相比,将读取的时间复杂度从O(n)降低到了O(logn),这些从图4的平均耗时和图5的标准误对比图可以看出。图4中Karger算法在虚拟节点的数量K=100或K=1000时的平均执行时间随着挂载目录的规模的增大,也随着明显增大。而Weighting Jump算法和Karge算法虚拟节点数量K=10时,请求分发的平均时间能够依然维持较小的数字。另一个很重要的因素就是请求分发的均衡性通过图5的标准误对比图进行比较,由图5可以看出Karge算法的虚拟节点数量K=4或K=10时,标准误明显高于后续几个其他的实现。而Weighting Jump算法在上述两个比较中在平均执行时间、内存消耗和标准误上的表现都比较优秀。Karge算法在虚拟节点数量多时消耗的执行时间较多,而虚拟节点数量较少时却有标准误较大的缺点。谷歌的Jump算法在上述三个方面的表现最为优秀,但却缺少了根据权重分发请求的功能。
如上所述,本发明利用具有一致性哈希计算具有单调性的优点减去了中间数据文件和存储目录的映射关系的保存,与传统的Kager割环法实现技术相比,这种方法能有效的同时减少内存消耗,同时加入了用户配置选择存储介质和不同应用对于存储介质的依赖程度的考虑因素,因此能够更加全面的应对大数据存储领域的需求,从而提高存储性能。另外,本发明利用一个在概率算法的基础上提出的线性同余伪随机数来减少输入参数不均匀时受到的字符串哈希函数的干扰,因此能够使得存储负载的平衡性更加有效可靠,从而进一步提高存储性能。这种方法采用类似谷歌John Lamping和Eric Veach提出的依概率跳变的方法来实现。能够从概率的层面保证存储资源的分配服从设定的权重,最小化标准误,并且具有比原有Hadoop集群的资源管理系统Yarn中实现更低的时间复杂度和内存消耗。克服了之前资源管理系统Yarn中实现的磁盘资源分配算法轮询检索目录的低效性,具有可伸缩性,且在扩展时,能够依概率最小化原有数据的移动。
上面所述的仅是体现本发明基于存储介质类型和加权配额的存储资源管理方法的实施例。本发明并不限于上述实施例。本发明的说明书是用于进行说明,不限制权利要求的范围。对于本领域的技术人员,很显然可以有很多的替换、改进和变化。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围内。

Claims (3)

1.一种基于存储介质类型和加权配额的存储资源管理方法,其特征在于:包括用户空间文件系统的挂载和读写请求的分发两个步骤;
所述用户空间文件系统的挂载步骤如下:
(11)将多块固态硬盘和机械硬盘成对分别挂载于当前文件系统中;
(12)将每对固态硬盘和机械硬盘的挂载目录的访问封装到用户空间文件系统FUSE中,用户空间文件系统FUSE优先将访问重定向到固态硬盘目录中,当固态硬盘的存储空间不足时,使用近期最少使用算法(LRU)将固态硬盘中近期最少使用的文件置换到机械硬盘中;
(13)启动多个进程,运行步骤(12)中的用户空间文件系统,并将这多个进程提供的文件服务都挂载到Hadoop系统配置中的中间数据存储目录中,监听这些中间数据存储目录的读写请求;
所述读写请求的分发步骤如下:
(21)将步骤(13)中的多个进程从1开始进行顺序编号,检查这些进程所提供文件服务的剩余容量,将这多个剩余容量的值,记录为请求分发的权重比例数组W;
(22)当对于Hadoop集群中用户提交的计算任务产生读写请求时,将读写请求的路径名和文件名,以及步骤(21)中计算的权重比例数组W输入Weighting Jump算法,将输出的值作为进程编号,并将读写请求分发到步骤(21)中符合该编号的进程中,完成请求分发的操作;
所述步骤(12)中,使用近期最少使用算法(LRU)将固态硬盘中近期最少使用的文件置换到机械硬盘中的具体过程如下:
(31)当固态硬盘目录的空间不足并且置换算法使用的调度缓存队列不为空时,弹出缓存队列首部的文件路径;
(32)将步骤(31)的文件路径下的文件复制到机械硬盘目录中;
(33)删除固态硬盘目录下的该文件;
(34)在固态硬盘目录中建立该文件的符号链接,指向步骤(32)中的机械硬盘目录中的该文件;
所述步骤(22)中,Weighting Jump算法的具体实现如下:
(1)输入步骤(22)中的权重比例数组W、请求路径和文件名;
(2)将请求路径和文件名输入字符串哈希函数,哈希函数的输出是一个长整型;
(3)将步骤(2)中获得的长整型作为种子输入64位的线性同余随机数发生器;
(4)新建变量b为0,变量b为一个整数,代表本算法计算的进程编号,新建变量n,为步骤(21)中进程的数量;
(5)运行步骤(3)中的随机数发生器,随机数发生器的输出是一个随机数R;
(6)根据公式
Figure FDA0002246318340000021
求出j的最大值,若j的值小于n,则将b的值更改为j;若j的值大于等于n,则维持b的值不变,公式中Wx为步骤(1)中权重比例数组W的第x项,而floor()函数表示求上确界;
(7)重复步骤(5)至步骤(6)直至b的值不再变化,输出变量b,变量b是输出的进程编号;在输入请求路径、文件名时,分发给编号为b的进程进行处理,将此次读写请求分发给编号为b的进程,从而完成请求分发步骤。
2.根据权利要求1所述的基于存储介质类型和加权配额的存储资源管理方法,其特征在于:所述步骤(12)中,固态硬盘目录和机械硬盘目录的访问封装采用FUSE库封装,对外实现POSIX接口的文件操作。
3.根据权利要求1所述的基于存储介质类型和加权配额的存储资源管理方法,其特征在于:所述步骤(12)中,将每对固态硬盘和机械硬盘的挂载目录的访问封装到用户空间文件系统FUSE中时,需要构建用户空间文件系统的逻辑视图,所述逻辑视图的构建是通过符号链接技术实现的,实现过程为:用户空间文件系统将固态硬盘目录作为逻辑视图,置换到机械硬盘目录中的文件以符号链接的形式存放到固态硬盘目录中,指向机械硬盘中的原文件,而置换到固态硬盘目录中的文件以原文件的形式存放到固态硬盘目录中。
CN201710106253.0A 2017-02-27 2017-02-27 一种基于存储介质类型和加权配额的存储资源管理方法 Expired - Fee Related CN106990915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710106253.0A CN106990915B (zh) 2017-02-27 2017-02-27 一种基于存储介质类型和加权配额的存储资源管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710106253.0A CN106990915B (zh) 2017-02-27 2017-02-27 一种基于存储介质类型和加权配额的存储资源管理方法

Publications (2)

Publication Number Publication Date
CN106990915A CN106990915A (zh) 2017-07-28
CN106990915B true CN106990915B (zh) 2020-01-14

Family

ID=59412497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710106253.0A Expired - Fee Related CN106990915B (zh) 2017-02-27 2017-02-27 一种基于存储介质类型和加权配额的存储资源管理方法

Country Status (1)

Country Link
CN (1) CN106990915B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480281B (zh) * 2017-08-23 2020-06-26 金钱猫科技股份有限公司 一种异构文件系统之间的统一视图的构建方法
CN107463342B (zh) * 2017-08-28 2021-04-20 北京奇艺世纪科技有限公司 一种cdn边缘节点文件的存储方法及装置
WO2019061122A1 (zh) * 2017-09-28 2019-04-04 深圳大学 一种spark任务分配方法和系统
CN107577441B (zh) * 2017-10-17 2020-08-21 苏州浪潮智能科技有限公司 一种osd慢盘处理方法、系统、装置及计算机存储介质
CN108388604B (zh) * 2018-02-06 2022-06-10 平安科技(深圳)有限公司 用户权限数据管理装置、方法及计算机可读存储介质
CN108829341B (zh) * 2018-05-03 2021-09-07 上海科技大学 一种基于混合存储系统的数据管理方法
CN109491618A (zh) * 2018-11-20 2019-03-19 上海科技大学 基于混合存储的数据管理系统、方法、终端及介质
CN110531931B (zh) * 2019-08-22 2022-03-22 济南浪潮数据技术有限公司 一种存储设备的选取方法、装置和计算机可读存储介质
CN110764694B (zh) * 2019-09-20 2022-08-12 苏州浪潮智能科技有限公司 一种存储空间控制的方法和系统
CN110941595B (zh) * 2019-11-19 2023-08-01 北京奇艺世纪科技有限公司 一种文件系统访问方法及装置
CN116501709B (zh) * 2023-06-25 2023-09-05 深圳市双合电气股份有限公司 基于iec61850数据服务功能的数据存储方法及设备
CN116932470B (zh) * 2023-09-18 2024-01-05 江苏正泰泰杰赛智能科技有限公司 一种可计算存储物联网时序数据的方法、系统及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549518B1 (en) * 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
CN204595827U (zh) * 2015-05-12 2015-08-26 浙江诸暨奇创电子科技有限公司 一种高性能混合硬盘
CN106156289A (zh) * 2016-06-28 2016-11-23 北京百迈客云科技有限公司 一种读写对象存储系统中的数据的方法以及装置

Also Published As

Publication number Publication date
CN106990915A (zh) 2017-07-28

Similar Documents

Publication Publication Date Title
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
US11947423B2 (en) Data reconstruction in distributed storage systems
US9823980B2 (en) Prioritizing data reconstruction in distributed storage systems
US10990479B2 (en) Efficient packing of compressed data in storage system implementing data striping
US9747155B2 (en) Efficient data reads from distributed storage systems
US10705965B2 (en) Metadata loading in storage systems
US9665305B1 (en) Tiering data between two deduplication devices
US10255287B2 (en) Method and apparatus for on-disk deduplication metadata for a deduplication file system
US9378106B1 (en) Hash-based replication
US10852965B2 (en) Write folding mechanism using reusable shared striping in a storage system
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
KR20190100537A (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
Song et al. Rethinking graph data placement for graph neural network training on multiple GPUs
US11494301B2 (en) Storage system journal ownership mechanism
JP6406254B2 (ja) ストレージ装置、データアクセス方法およびデータアクセスプログラム
CN111066009A (zh) 具有写入均衡的闪存寄存器
US11381400B2 (en) Using double hashing schema to reduce short hash handle collisions and improve memory allocation in content-addressable storage systems
US9824105B2 (en) Adaptive probabilistic indexing with skip lists
Liu et al. Smash: Flexible, fast, and resource-efficient placement and lookup of distributed storage
Fazul et al. PRBP: A prioritized replica balancing policy for HDFS balancer
US11531470B2 (en) Offload of storage system data recovery to storage devices
Kim et al. Enhanced dual Bloom filter based on SSD for efficient directory parsing in cloud storage system
Shen et al. A Distributed Caching Scheme for Improving Read-write Performance of HBase
Daikoku et al. Skew-aware collective communication for MapReduce shuffling

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200114

Termination date: 20210227