CN111061430B - 一种多云环境下异构i/o细粒度感知的数据放置方法 - Google Patents
一种多云环境下异构i/o细粒度感知的数据放置方法 Download PDFInfo
- Publication number
- CN111061430B CN111061430B CN201911181431.1A CN201911181431A CN111061430B CN 111061430 B CN111061430 B CN 111061430B CN 201911181431 A CN201911181431 A CN 201911181431A CN 111061430 B CN111061430 B CN 111061430B
- Authority
- CN
- China
- Prior art keywords
- data
- write
- read
- mode
- less
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多云环境下异构I/O细粒度感知的数据放置方法,解决多云环境下存储系统数据可用性差和访问性能低的问题。本发明分为数据I/O模式分类与数据放置两部分:数据I/O模式分类部分使用决策树算法对用户数据根据I/O访问模式进行分类,将数据I/O模式分为读多写多,读少写多,读多写少,读少写少四种类型,实现海量异构I/O模式数据集分类方法。数据放置部分首先针对四种I/O模式集合的数据分别制定不同的数据放置策略以优化数据访问性能,其次通过数据编码为数据添加冗余保证数据可用性,最后通过网络通信模块将各集合的数据放置在多个存储服务商中。本发明在处理大量异构I/O模式的数据时访问性能具有明显优势。
Description
技术领域
本发明涉及云存储及机器学习领域,特别涉及多云存储环境下数据放置技术,具体说来是一种多云环境下细粒度异构I/O感知的数据放置方法。
背景技术
随着云存储技术的成熟,出现了如Amazon S3,Ali OSS,Baidu BOS,MicrosoftAzure,Dropbox等面向企业或个人的云存储服务。它可以很好地满足用户高容量、高性能、高可用、低成本的存储需求。这些云存储厂商通常通过动态增减存储节点以实现高容量的存储;分布式的存储节点并行读写提高了访问性能;数据冗余机制为云存储服务带来高可用的保障;底层廉价的存储设备代替传统高昂的RAID磁盘阵列保证了云存储服务的低成本。
但是,单个存储服务可能出现临时性故障,从而导致数据可用性差的问题。如机架故障,供电故障,网络故障等都会导致数据无法访问,这导致了企业常常面临数据失效的风险。并且单个存储服务存在厂商锁定(vendor lock-in),从而导致数据迁移代价高的问题。针对上述问题,多云存储的概念由此而生。多云存储是指将数据放置在不同云存储服务商中,因此可以在不同云存储服务商之间灵活做出选择,同时不受制于一种云服务,避免厂商锁定问题,并且通过数据冗余机制(副本或是纠删码)保障了数据的高可用性。
目前,多云存储已被广泛应用于各大企业的存储服务中,尽管取得了一定的研究成果,但其仍面临很多挑战,其中尤为重要的就是数据异构性问题。数据异构性问题是指随着数据量的不断增大,企业用户需要处理的数据类型也不尽相同。数据类型不同,其I/O访问模式也不同。具体说来包括读多写多,读少写多,读多写少,读少写少等四种I/O访问模式。数据的I/O访问模式不同,对存储性能的需求也不同。对于读少写少的数据而言,存储成本是其考虑的主要因素;而读多写少的数据更加需求读取的性能;读少写多则更依赖写操作的性能;最后读多写多数据因为其读写操作的频繁性,读写成本与性能需要均衡考虑。目前多云环境数据放置算法主要从成本、可用性、容错等方面做出决策,但大多数研究都忽略了数据自身的I/O访问模式存在差异。所以亟需一种全新的多云环境数据放置方法解决上述问题,实现高效地、自适应地读写数据。
发明内容
发明目的:针对以上问题,本发明提出一种多云环境下异构I/O细粒度感知的数据放置方法,该方法通过感知数据的I/O访问模式,利用决策树实现I/O模式分类,针对性的设计数据放置策略,以降低数据读写的访问延时,提高带宽利用率,从而优化存储系统整体性能。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:
一种多云环境下异构I/O细粒度感知的数据放置方法,包括以下步骤:
S1,收集网络公开的不同I/O模式的应用数据作为训练数据集,利用面向数据I/O模式分类的决策树算法训练得到数据I/O模式分类模型;优选的,所述应用数据包括Enron邮件集,UCI机器学习数据,Youtube视频,HDFS日志;
S2,利用读写性能测试工具测试出各个云存储服务商的读写延时,查询相关服务网站获取云存储服务商的性能数据;所述性能数据包括云存储服务商可用性,存储价格;优选的,所述读写性能测试工具采用fio或iozone;
S3,写请求时,使用步骤S1中训练得到的分类模型,对需要放置的数据进行I/O模式划分;结合步骤S2中的性能数据,使用面向混合I/O模式的数据放置策略,制定数据编码以及数据放置方案;
S4,对每一类I/O模式的数据分别使用纠删码工具按照步骤S3中的数据编码方案进行数据编码,通过将数据添加副本或者编码生成冗余块的方式,为数据提供冗余保障,提高数据可用性;不同的I/O模式的数据,编码方式也不同;如果ni=1,编码方式即为副本方式,直接将数据复制ki份,对编码后的数据放置在的存储服务中;优选的,所述纠删码工具采用Jerasure或Zfec;
S5,对步骤S4编码后的数据按照步骤S3中的数据放置方案,使用封装的统一云计算接口放置到各个云存储服务商提供的存储服务中;优选的,所述封装的统一云计算接口采用libcloud;
S6,管理数据放置的信息,包括数据标识、数据放置位置、数据编码方式,将所有信息存入本地文件中,读数据时,根据该文件从相应的存储服务中获取数据,并通过解码工具对数据进行解码,获取最终的完整数据。
进一步,所述步骤S1中,收集网络公开的不同I/O模式的应用数据作为训练数据集,利用面向数据I/O模式分类的决策树算法训练得到数据I/O模式分类模型,具体如下:
S1.1,分别计算数据集中数据特征的信息增益值,所述数据特征包括文件大小S,文件类型Ty,文件生存周期C,文件存在时间T;
S1.2,选取信息增益值最大的特征,根据该特征的值对数据集进行划分;划分的I/O模式标签包括读多写多,读多写少,读少写多,读少写少四种类型;
S1.3,对划分出的子集递归调用步骤S1.1-S1.2的方法,直到划分后的所有子集满足终止条件;所述终止条件包括:所有子集只有一维特征或无可用特征,或者所有样本的标签一致或差异比例小于预设的阈值;
S1.4,设置满足步骤S1.3终止条件的子集为决策树的子节点,其输出的I/O模式为子集数量占比最大的I/O模式;
S1.5,基于S1.1-S1.4的划分结果,生成基于决策树的数据I/O模式分类模型;
S1.6,采集需放置数据的特征,包括文件大小,文件类型,文件生存周期,文件存在时间,调用分类模型预测其I/O访问模式,并将预测结果放入训练集,重复执行步骤S1.1-S1.5,直到获得满足预期的数据I/O模式分类模型。
进一步,所述数据特征的信息增益值,计算公式如下:
g(file,A)=H(file)-H(file|A)
式中,g(file,A)表示特征A的信息增益值,file表示数据集,H(file)表示数据集的熵,H(file|A)表示数据集在特征A上的条件熵,p(xi)表示I/O模式xi出现的概率,n表示特征总数,Ai表示第i个特征。
进一步,所述步骤S3中,面向混合I/O模式的数据放置策略模型是对不同I/O模式的数据分别提出数据放置策略,包括数据的编码策略和数据放置方案,即获取纠删码或副本参数(ni,ki),以及选择放置的存储服务ni是数据分块数,ki是添加冗余后的块数,表示i模式下的数据是否选择存储服务j,具体如下:
S3.1,使用分类模型预测数据I/O模式,将数据划分为四类I/O模式,读多写多模式,读少写多模式,读多写少模式以及读少写少模式;
S3.2,对每一种I/O模式采用相对应的放置策略生成放置方案,策略由目标函数以及约束条件构成,目标函数即最终的优化目标,不同I/O模式的数据优化目标不同;约束条件即用户在厂商锁定级别,成本,可用性方面的需求;
读少写少模式:处于读少写少模式下的数据,如归档数据,邮件数据;因为其访问频率很低,优化目标是最小化数据存储的成本,目标函数如下:
读多写多模式:一种典型的读多写多的数据是版本更替频繁的文件,如github上的代码文件,因为读写操作的频繁性,优化目标为最小化上行延时与下行延时中的最大值与带宽利用率的比值,目标函数定义如下:
其中LG2表示读多写多模式的读访问延时,LP2表示读多写多模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,lpj表示第j个云存储服务商写延时,n2,k2表示读多写多模式下的纠删码参数,n2是数据分块数,k2是添加冗余后的块数,表示读多写多模式下的数据是否选择存储服务j,N表示存储服务数量;
同时需要保证数据lock-in级别,容错级别,成本因素满足相应约束,约束条件包括:
V2≤ε2,A2≥θ2,n2=1
其中V2表示读多写多模式的lock-in级别,ε2为读多写多模式的lock-in级别阈值,ε2默认为1/3,也可用户自行设定;A2表示读多写多模式的容错级别,θ2为读多写多模式的可用性阈值,θ2默认为99.99%,同样可用户自行设定;Nj是出现故障的服务商集合;Nj′是未出现故障的服务商集合;C(n2,i)表示组合数公式(n2,i)的所有情况;ai,ai,分别表示云存储服务商i,i′的可用性;n2=1表示读多写多模式下的数据冗余方式选择副本方式,因为读写频繁的数据选择副本方式更加合理;
读少写多模式:读少写多的数据如日志,备份文件,对于写延时更加敏感,优化目标为最小化上行延时与带宽利用率比值,目标函数定义如下:
其中LP3表示读少写多模式的写访问延时,Uti表示带宽利用率,lpj表示第j个云存储服务商写延时,n3表示读少写多模式下的纠删码参数,即数据分块数,表示读少写多模式下的数据是否选择存储服务j,N表示存储服务数量;
在保证数据lock-in级别以及容错级别的约束的同时,确保数据在写操作上耗费的成本不高于总成本的一定比例α,约束条件为:
其中V3表示读少写多模式的lock-in级别,ε3为读少写多模式的lock-in级别阈值;A3表示读少写多模式的容错级别,θ3为读少写多模式的可用性阈值;α表示成本比例阈值,C3表示总成本,表示读少写多模式的存储成本,表示数据上行传输的成本,表示数据进行写操作的成本,表示存储服务pj的数据上行传输单位成本,表示存储服务pj写操作的单位成本,表示数据dl的大小,Data3表示读少写多模式的数据集合,Provider表示存储服务商集合;
读多写少模式:读多写少的文件,如视频,音频文件,下行流量巨大,对于读延时更加敏感,因此优化目标为最小化下行延时与带宽利用率比值,目标函数定义如下:
其中LP4表示读多写少模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,k4表示读多写少模式下的纠删码参数,是添加冗余后的块数,表示读多写少模式下的数据是否选择存储服务j,N表示存储服务数量;
同时保证lock-in级别,容错级别,成本满足约束,约束条件如下:
其中V4表示读多写少模式的lock-in级别,ε4为读多写少模式的lock-in级别阈值;A4表示读多写少模式的容错级别,θ4为读多写少模式的可用性阈值;α表示成本比例阈值,C4表示总成本,表示读多写少模式的存储成本,表示数据下行传输的成本,表示数据进行读操作的成本,表示存储服务pj的数据下行传输单位成本,表示存储服务pj读操作的单位成本,表示数据dl的大小,Data4表示读多写少模式的数据集合,Provider表示存储服务商集合;
S3.3,在I/O模式对应的目标函数的解空间中遍历所有的解,筛选满足约束条件的所有可行解;
S3.5,重复上述步骤S3.2-S3.4过程,生成所有数据的编码及放置方案。
有益效果:与现有技术相比,本发明的技术方案具有以下有益的技术效果:
(1)本发明将用户数据放置在多个存储服务中,避免了某个存储服务出现故障,导致巨大经济损失的问题,并且用户可以自由进行数据迁移,灵活性与可用性大大提高。
(2)本发明的放置算法考虑了众多因素如读写延时、带宽利用率、供应商锁定级别、可用性、成本等,满足用户的多维度需求,综合性的给出最合理的放置方案。
(3)本发明的放置算法面向多个数据I/O模式,考虑不同模式的数据对性能需求的差异,自适应的将数据放置在合适的存储服务中,从而提升系统访问性能。
附图说明
图1是本发明适用的多云环境的示意图;
图2是本发明的整体流程示意图;
图3是本发明所述的基于决策树的数据I/O模式分类方法的流程图;
图4是本发明所述的多云环境下异构I/O模式数据放置方法流程图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。
本发明在多个不同厂商不同性能的存储服务中展开,如图1所示。该多云环境包括多个云存储服务商提供的存储服务,以及一个负责统一化读写接口的libcloud接口:各个云存储服务商提供的服务在读写性能,可用性,价格方面均有差异,在其内部由分布式存储系统支持存储服务,并配有管理节点,付费系统,容错机制服务,提供不同类型的读写接口。在本发明中,各存储服务可以看成一个黑盒,其内部的实现机制不做过多讨论。用户通过iozone测试工具获取某存储服务的读写延时以及带宽利用率,并可以通过查看存储服务提供的帮助文档获取计费,可用性信息。通过将读写延时、带宽利用率、可用性、成本信息存入本地文件中以供放置模型参考。
图2是本发明的整体流程示意图,本发明包括数据I/O模式分类与数据放置两部分:数据I/O模式分类部分使用决策树算法对用户数据根据I/O访问模式进行分类,构建分类模型将数据分为读多写多,读少写多,读多写少,读少写少四种I/O访问模式。数据放置部分针对四种I/O模式集合的数据分别制定不同的数据放置策略以优化数据访问性能,最后通过网络通信模块将各集合的数据放置在多个存储服务商中。
本发明所述的一种多云环境下异构I/O细粒度感知的数据放置方法,包括以下步骤:
S1,收集网络公开的不同I/O模式的应用数据作为训练数据集,利用面向数据I/O模式分类的决策树算法训练得到数据I/O模式分类模型;所述应用数据包括Enron邮件集,UCI机器学习数据,Youtube视频,HDFS日志;
数据I/O模式分类流程如图3所示,本发明基于决策树算法划分数据的I/O模式。决策树是一种简单高效的分类算法,它具有可解释性好,计算复杂性低,能够处理特征之间关联度低的数据优点。通过收集不同I/O模式的数据,如UCI机器学习数据集,Youtube视频,邮件系统,系统日志,行成1G的训练集;文件属性包括文件大小S、文件类型Ty、文件生存周期C、文件存在时间T;划分的I/O模式标签包括读多写多,读多写少,读少写多,读少写少四种类型。其训练过程包括:
S1.1,计算训练集的熵,即-∑ip(xi)log(p(xi)),p(xi)代表类别i样本数量占所有训练样本的比例。分别以文件大小S,文件类型Ty,文件生存周期C,文件存在时间T属性划分训练集,计算划分后的熵。
S1.2,计算划分后的熵与步骤S1.1中计算得出的熵的差值,该差值即为信息增益,信息增益越大,影响分类结果越明显。选取信息增益值最大的特征划分数据集。
S1.3,判断划分后的数据集的每一个子集里所有样本的标签是否一致,或是差异比例是否小于预设置的阈值;如果满足,则转到步骤S1.4,否则对不满足的子集转到步骤S1.1继续执行。
S1.4,基于S1.1-S1.3的划分结果,生成决策树模型,该模型用于数据I/O模式的划分,对待分类的数据进行处理。
S1.5,收集待分类数据的文件大小,文件类型,文件生存周期,文件存在时间,并使用步骤S1.4所得的模型对其进行预测,获取其所属的I/O模式。
S1.6,将步骤S1.5中的结果放入训练集中,重复步骤S1.1-S1.5,不断提升模型的准确度,直到获得满足预期的数据I/O模式分类模型。
S2,利用读写性能测试工具测试出各个云存储服务商的读写延时,查询相关服务网站获取云存储服务商的性能数据;所述性能数据包括云存储服务商可用性,存储价格;所述读写性能测试工具采用fio或iozone;
S3,写请求时,使用步骤S1中训练得到的分类模型,对需要放置的数据进行I/O模式划分;结合步骤S2中的性能数据,使用面向混合I/O模式的数据放置策略,制定数据编码以及数据放置方案;
数据放置算法具体流程如图4所示,对需要写入存储服务中的数据使用基于决策树的数据I/O模式分类方法获取对应的数据I/O模式后,使用数据放置算法生成放置方案,最终的结果包括两部分,纠删码或副本参数(ni,ki),以及选择放置的存储服务ni是数据分块数,ki是添加冗余后的块数,表示i模式下的数据是否选择存储服务j,具体步骤如下:
S3.1,调用分类模型预测数据I/O模式,将数据划分为四类,读多写多集合,读少写多集合,读多写少集合以及读少写少集合。
S3.2,对每一个集合采用相对应的放置策略生成放置方案,策略由目标函数以及约束条件构成,目标函数即最终的优化目标,不同I/O模式的数据优化目标不同;约束条件即用户在厂商锁定级别,成本,可用性方面的需求,用户可自定义该约束条件。
读少写少模式:处于读少写少模式下的数据,如归档数据,邮件数据;因为其访问频率很低,优化目标是最小化数据存储的成本,目标函数如下:
读多写多模式:一种典型的读多写多的数据是版本更替频繁的文件,如github上的代码文件,因为读写操作的频繁性,优化目标为最小化上行延时与下行延时中的最大值与带宽利用率的比值,目标函数定义如下:
其中LG2表示读多写多模式的读访问延时,LP2表示读多写多模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,lpj表示第j个云存储服务商写延时,n2,k2表示读多写多模式下的纠删码参数,n2是数据分块数,k2是添加冗余后的块数,表示读多写多模式下的数据是否选择存储服务j,N表示存储服务数量;
同时需要保证数据lock-in级别,容错级别,成本因素满足相应约束,约束条件包括:
V2≤ε2,A2≥θ2,n2=1
其中V2表示读多写多模式的lock-in级别,ε2为读多写多模式的lock-in级别阈值,ε2默认为1/3,也可用户自行设定;A2表示读多写多模式的容错级别,θ2为读多写多模式的可用性阈值,θ2默认为99.99%,同样可用户自行设定;Nj是出现故障的服务商集合;Nj′是未出现故障的服务商集合;C(n2,i)表示组合数公式(n2,i)的所有情况;ai,ai′分别表示云存储服务商i,i′的可用性;n2=1表示读多写多模式下的数据冗余方式选择副本方式,因为读写频繁的数据选择副本方式更加合理;
读少写多模式:读少写多的数据如日志,备份文件,对于写延时更加敏感,优化目标为最小化上行延时与带宽利用率比值,目标函数定义如下:
其中LP3表示读少写多模式的写访问延时,Uti表示带宽利用率,lpj表示第j个云存储服务商写延时,n3表示读少写多模式下的纠删码参数,即数据分块数,表示读少写多模式下的数据是否选择存储服务j,N表示存储服务数量;
在保证数据lock-in级别以及容错级别的约束的同时,确保数据在写操作上耗费的成本不高于总成本的一定比例α,约束条件为:
其中V3表示读少写多模式的lock-in级别,ε3为读少写多模式的lock-in级别阈值;A3表示读少写多模式的容错级别,θ3为读少写多模式的可用性阈值;α表示成本比例阈值,C3表示总成本,表示读少写多模式的存储成本,表示数据上行传输的成本,表示数据进行写操作的成本,表示存储服务pj的数据上行传输单位成本,表示存储服务pj写操作的单位成本,表示数据dl的大小,Data3表示读少写多模式的数据集合,Provider表示存储服务商集合;
读多写少模式:读多写少的文件,如视频,音频文件,下行流量巨大,对于读延时更加敏感,因此优化目标为最小化下行延时与带宽利用率比值,目标函数定义如下:
其中LP4表示读多写少模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,k4表示读多写少模式下的纠删码参数,是添加冗余后的块数,表示读多写少模式下的数据是否选择存储服务j,N表示存储服务数量;
同时保证lock-in级别,容错级别,成本满足约束,约束条件如下:
其中V4表示读多写少模式的lock-in级别,ε4为读多写少模式的lock-in级别阈值;A4表示读多写少模式的容错级别,θ4为读多写少模式的可用性阈值;α表示成本比例阈值,C4表示总成本,表示读多写少模式的存储成本,表示数据下行传输的成本,表示数据进行读操作的成本,表示存储服务pj的数据下行传输单位成本,表示存储服务pj读操作的单位成本,表示数据dl的大小,Data4表示读多写少模式的数据集合,Provider表示存储服务商集合。
S3.3,在I/O模式对应的目标函数的解空间中遍历所有的解,筛选满足约束条件的所有可行解。
S3.5,重复上述步骤S3.1-S3.4过程,生成所有数据的编码及放置方案。
S4,对每一类I/O模式的数据分别使用纠删码工具按照步骤S3中的数据编码方案进行数据编码,通过将数据添加副本或者编码生成冗余块的方式,为数据提供冗余保障,提高数据可用性;不同的I/O模式的数据,编码方式也不同;如果ni=1,编码方式即为副本方式,直接将数据复制ki份,对编码后的数据放置在的存储服务中;所述纠删码工具采用Jerasure或Zfec;
S5,对步骤S4编码后的数据按照步骤S3中的数据放置方案,使用封装的统一云计算接口放置到各个云存储服务商提供的存储服务中;所述封装的统一云计算接口采用libcloud;
S6,管理数据放置的信息,包括数据标识、数据放置位置、数据编码方式,将所有信息存入本地cfg文件中,在需要读取数据时,根据该文件从相应的存储服务中获取数据,并通过zfec工具对数据进行解码,获取最终的完整数据。
应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (9)
1.一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:包括以下步骤:
S1,收集网络公开的不同I/O模式的应用数据作为训练数据集,利用面向数据I/O模式分类的决策树算法训练得到数据I/O模式分类模型;
S1.1,分别计算数据集中数据特征的信息增益值,所述数据特征包括文件大小S,文件类型Ty,文件生存周期C,文件存在时间T;
S1.2,选取信息增益值最大的特征,根据该特征的值对数据集进行划分;划分的I/O模式标签包括读多写多,读多写少,读少写多,读少写少四种类型;
S1.3,对划分出的子集递归调用步骤S1.1-S1.2的方法,直到划分后的所有子集满足终止条件;所述终止条件包括:所有子集只有一维特征或无可用特征,或者所有样本的标签一致或差异比例小于预设的阈值;
S1.4,设置满足步骤S1.3终止条件的子集为决策树的子节点,其输出的I/O模式为子集数量占比最大的I/O模式;
S1.5,基于S1.1-S1.4的划分结果,生成基于决策树的数据I/O模式分类模型;
S1.6,采集需放置数据的特征,包括文件大小,文件类型,文件生存周期,文件存在时间,调用分类模型预测其I/O访问模式,并将预测结果放入训练集,重复执行步骤S1.1-S1.5,直到获得满足预期的数据I/O模式分类模型;
S2,利用读写性能测试工具测试出各个云存储服务商的读写延时,查询相关服务网站获取云存储服务商的性能数据;所述性能数据包括云存储服务商可用性,存储价格;
S3,写请求时,使用步骤S1中训练得到的分类模型,对需要放置的数据进行I/O模式划分;结合步骤S2中的性能数据,使用面向混合I/O模式的数据放置策略,制定数据编码以及数据放置方案;
S4,对每一类I/O模式的数据分别使用纠删码工具按照步骤S3中的数据编码方案进行数据编码;
S5,对步骤S4编码后的数据按照步骤S3中的数据放置方案,使用封装的统一云计算接口放置到各个云存储服务商提供的存储服务中;
S6,管理数据放置的信息,包括数据标识、数据放置位置、数据编码方式,将所有信息存入本地文件中,读数据时,根据该文件从相应的存储服务中获取数据,并通过解码工具对数据进行解码,获取最终的完整数据。
3.根据权利要求1所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述步骤S3中,面向混合I/O模式的数据放置策略是对不同I/O模式的数据分别提出数据放置策略,包括数据的编码策略和数据放置方案,即获取纠删码或副本参数(ni,ki),以及选择放置的存储服务ni是数据分块数,ki是添加冗余后的块数,表示i模式下的数据是否选择存储服务j,具体如下:
S3.1,使用分类模型预测数据I/O模式,将数据划分为四类I/O模式,读多写多模式,读少写多模式,读多写少模式以及读少写少模式;
S3.2,对每一种I/O模式采用相对应的放置策略生成放置方案,策略由目标函数以及约束条件构成,目标函数即最终的优化目标,不同I/O模式的数据优化目标不同;约束条件即用户在厂商锁定级别,成本,可用性方面的需求;
S3.3,在I/O模式对应的目标函数的解空间中遍历所有的解,筛选满足约束条件的所有可行解;
S3.5,重复上述步骤S3.2-S3.4过程,生成所有数据的编码及放置方案。
4.根据权利要求3所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述步骤3.2中的优化目标及约束条件具体为:
处于读少写少模式下的数据,优化目标为最小化数据存储的成本;
处于读多写多模式下的数据,优化目标为最小化上行延时与下行延时中的最大值与带宽利用率的比值;同时保证数据lock-in级别、容错级别、成本因素满足相应约束条件;
处于读少写多模式下的数据,优化目标为最小化上行延时与带宽利用率比值;同时保证数据lock-in级别、容错级别、成本因素满足相应约束条件;
处于读多写少模式下的数据,优化目标为最小化下行延时与带宽利用率比值;同时保证数据lock-in级别、容错级别、成本因素满足相应约束条件。
6.根据权利要求4所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述读多写多模式,目标函数定义如下:
其中LG2表示读多写多模式的读访问延时,LP2表示读多写多模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,lpj表示第j个云存储服务商写延时,n2,k2表示读多写多模式下的纠删码参数,n2是数据分块数,k2是添加冗余后的块数,表示读多写多模式下的数据是否选择存储服务j,N表示存储服务数量;
所述约束条件为:
V2≤ε2,A2≥θ2,n2=1
其中V2表示读多写多模式的lock-in级别,ε2为读多写多模式的lock-in级别阈值;A2表示读多写多模式的容错级别,θ2为读多写多模式的可用性阈值;Nj是出现故障的服务商集合;Nj,是未出现故障的服务商集合;C(n2,i)表示组合数公式(n2,i)的所有情况;ai,ai′分别表示云存储服务商i,i′的可用性;n2=1表示读多写多模式下的数据冗余方式选择副本方式。
7.根据权利要求4所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述读少写多模式,目标函数定义如下:
其中LP3表示读少写多模式的写访问延时,Uti表示带宽利用率,lpj表示第j个云存储服务商写延时,n3表示读少写多模式下的纠删码参数,即数据分块数,表示读少写多模式下的数据是否选择存储服务j,N表示存储服务数量;
所述约束条件为:
8.根据权利要求4所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述读多写少模式,目标函数定义如下:
其中LP4表示读多写少模式的写访问延时,Uti表示带宽利用率,lgj表示第j个云存储服务商读延时,k4表示读多写少模式下的纠删码参数,是添加冗余后的块数,表示读多写少模式下的数据是否选择存储服务j,N表示存储服务数量;
所述约束条件为:
9.根据权利要求1所述的一种多云环境下异构I/O细粒度感知的数据放置方法,其特征在于:所述封装的统一云计算接口采用libcloud。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911181431.1A CN111061430B (zh) | 2019-11-27 | 2019-11-27 | 一种多云环境下异构i/o细粒度感知的数据放置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911181431.1A CN111061430B (zh) | 2019-11-27 | 2019-11-27 | 一种多云环境下异构i/o细粒度感知的数据放置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061430A CN111061430A (zh) | 2020-04-24 |
CN111061430B true CN111061430B (zh) | 2021-02-19 |
Family
ID=70298793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911181431.1A Active CN111061430B (zh) | 2019-11-27 | 2019-11-27 | 一种多云环境下异构i/o细粒度感知的数据放置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061430B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017012096A1 (zh) * | 2015-07-22 | 2017-01-26 | 华为技术有限公司 | 计算机设备和计算机设备数据读写的方法 |
CN107506375A (zh) * | 2017-07-17 | 2017-12-22 | 上海斐讯数据通信技术有限公司 | 数据存储方法及装置 |
CN109739438A (zh) * | 2018-12-26 | 2019-05-10 | 安徽大尺度网络传媒有限公司 | 一种大数据云存储系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078691B2 (en) * | 2009-08-26 | 2011-12-13 | Microsoft Corporation | Web page load time prediction and simulation |
CN104699772B (zh) * | 2015-03-05 | 2018-03-23 | 内蒙古科技大学 | 一种基于云计算的大数据文本分类方法 |
CN106648465B (zh) * | 2016-12-22 | 2020-07-07 | 郑州云海信息技术有限公司 | 云平台中存储虚拟资源的方法及装置 |
CN108173958A (zh) * | 2018-01-05 | 2018-06-15 | 东华大学 | 一种多云环境下基于蚁群算法的数据优化存储方法 |
CN110413231A (zh) * | 2019-07-16 | 2019-11-05 | 东华大学 | 一种多云环境下低成本高可用性的数据优化存储方法 |
-
2019
- 2019-11-27 CN CN201911181431.1A patent/CN111061430B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017012096A1 (zh) * | 2015-07-22 | 2017-01-26 | 华为技术有限公司 | 计算机设备和计算机设备数据读写的方法 |
CN107506375A (zh) * | 2017-07-17 | 2017-12-22 | 上海斐讯数据通信技术有限公司 | 数据存储方法及装置 |
CN109739438A (zh) * | 2018-12-26 | 2019-05-10 | 安徽大尺度网络传媒有限公司 | 一种大数据云存储系统 |
Non-Patent Citations (1)
Title |
---|
"Enhanced time-aware QoS prediction in multi-cloud: a hybrid k-medoids and lazy learning approach (QoPC)";Amin Keshavarzi;Abolfazl Toroghi Haghighat;Mahdi Bohlouli;《Computing》;20191010;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111061430A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10412170B2 (en) | Retention-based data management in a network-based data store | |
US10169383B2 (en) | Method and system for scrubbing data within a data storage subsystem | |
US9098433B1 (en) | Throughput-sensitive redundancy encoding schemes for data storage | |
US9281845B1 (en) | Layered redundancy encoding schemes for data storage | |
US8806296B1 (en) | Scheduled or gradual redundancy encoding schemes for data storage | |
US9116936B2 (en) | Inline learning-based selective deduplication for primary storage systems | |
US20180336219A1 (en) | Policy-based, multi-scheme data reduction for computer memory | |
WO2007028679A1 (en) | Operational risk control apparatus and method for data processing | |
US10191910B2 (en) | Systems and methods for improving storage efficiency in an information handling system | |
US11561707B2 (en) | Allocating data storage based on aggregate duplicate performance | |
US20200134062A1 (en) | Determining a storage pool to store changed data objects indicated in a database | |
US20230229308A1 (en) | Storage device read-disturb-based block read temperature utilization system | |
US11023155B2 (en) | Processing event messages for changed data objects to determine a storage pool to store the changed data objects | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
CN111651126B (zh) | 存储器的写操作方法、系统、电子设备和介质 | |
CN111061430B (zh) | 一种多云环境下异构i/o细粒度感知的数据放置方法 | |
CN108920110A (zh) | 一种基于内存计算模式的并行处理大数据存储系统及方法 | |
US12008254B2 (en) | Deduplication of storage device encoded data | |
US20230229537A1 (en) | Methods and systems that automatically predict distributed-computer-system performance degradation using automatically trained machine-learning components | |
US20210374162A1 (en) | Methods and systems for streamlined searching according to semantic similarity | |
US11061834B2 (en) | Method and system for facilitating an improved storage system by decoupling the controller from the storage medium | |
Ross et al. | Storage systems and input/output: Organizing, storing, and accessing data for scientific discovery. report for the doe ascr workshop on storage systems and i/o.[full workshop report] | |
CN115858660A (zh) | 一种参数推荐方法、装置以及计算机存储介质 | |
CN112835887A (zh) | 数据库管理方法、装置、计算设备和存储介质 | |
US11922035B2 (en) | Read-disturb-based read temperature adjustment system |
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 |