APP下载

云际存储系统性能优化研究现状与展望*

2021-05-18朱良杰沈佳杰周扬帆

计算机工程与科学 2021年5期
关键词:用户端分片存储系统

朱良杰,沈佳杰,周扬帆 ,王 新,3

(1.复旦大学计算机科学技术学院,上海 201203;2.上海市智能信息处理重点实验室,上海 200433;3.复旦大学信息化办公室,上海 200433)

1 引言

随着互联网技术与应用的快速发展,用户数据开始呈现爆发式增长。根据国际数据资讯公司IDC的预测,从2020 年开始,每2年上网用户总量将增长一倍,每6~9个月企业产生的数据量将会翻一番[1]。面对如此海量的用户数据,云存储作为一种有效的存储方案被广泛应用于在线数据存储。

然而,当前的云存储系统普遍存在诸多问题:首先,云存储系统存在云提供商存储服务锁死的问题[2]。当用户需要更换供应云提供商时,需要进行大量数据拷贝和迁移操作,从而导致大量的数据传输开销。其次,云存储系统存在存储数据可靠性的问题。当云存储失效时,可能会导致用户数据丢失的情况[3]。最后,云存储存在安全问题。当云基础设施被黑客攻陷后,攻击者将获取云存储中的数据[4]。

为了弥补云存储系统的上述不足之处,学者们提出了云际存储方案[5]。在云际存储系统中,采用不同提供商的云存储服务来构建一个统一的存储管理平台,提供安全可靠的存储服务。通过将数据编码存储在不同的云服务提供商的存储空间中,云际存储系统可以保障在若干个云失效的情况下恢复出用户数据。此外,云际存储系统对机密数据进行加密和编码生成多个分片上传至不同的云存储空间,即使中间的若干个云被黑客攻破,攻击者因信息不全将无法破解出完整的机密数据[6],从而保证数据的机密性。

由于云际存储系统具有这些优良的特性,近年来已成为云存储系统的重要发展方向和研究热点。然而,若简单地用当前云际存储方案替换云存储方案部署在当前在线应用而不优化上层的软硬件架构,则会限制云际存储系统的性能。具体说来,制约云际存储系统性能的主要因素有:

(1)网络适配能力。用户端设备需要通过互联网将加密和编码后的数据上传到云端。由于在这种网络环境下带宽往往具有较大的波动性,云际存储系统需要动态调整传输策略以适应当前网络状态,从而更好地满足实际在线应用的存储需求。

(2)资源管理机制。在数据存储过程中,云际存储系统需要将数据分发到多个云,并有效地管理这些已经存储在云端的数据。这就要求云际存储系统可以高效地管理用户端设备和云端的计算、传输和存储资源,从而保证用户数据存储的安全性和效率。

(3)应用场景适应能力。不同的存储应用中用户端设备和云端可使用的资源往往有较大的差异。由于不同在线应用的存储需求差异较大,云际存储系统往往需要根据在线应用的需求特性来优化对应数据读写和修复方案,并调整自身的数据传输及资源管理策略,从而适应不同的应用场景。

针对上述3个问题,当前的研究工作通过构建高效的云际存储管理机制和数据分发方案来解决这些问题。本文综述了当前云际存储系统的性能优化方案,包括以下3个方面内容:

首先,本文介绍了云际存储系统中数据读写及修复操作执行过程,并总结了常见的数据分发方案。在此基础上,本文介绍了当前提升云际存储系统网络传输效率的主流设计方案,如构建新的编码网络方案来减少数据修复操作。本文综述了这些操作对于网络的需求及当前云际存储中主要的用户端设备和云端之间的网络传输方案。

其次,在分析了运行过程中用户端设备和云端所使用的主要资源的基础上,本文介绍了云际存储系统主要的管理方案。针对于云际存储3种主要的系统资源(即,计算、网络和存储资源),本文综述了当前主流的云际存储系统资源管理方案并分析了这些方案的适用场景及优缺点。

最后,本文介绍了云际存储系统的3种经典应用场景(即,数据备份、移动应用和云际计算)。在此基础上,本文总结了当前云际存储系统的实现机制和优化方案。通过分析和对比当前云际存储系统及其适合的应用场景,本文总结了云际存储系统亟待解决的问题。

2 云际存储和数据分发方案背景介绍

云际存储系统需要使用数据分发算法(Dispersal Algorithm)将数据分片上传,并完成数据读写及修复等操作。本文首先介绍当前的云际存储系统背景及运行时需要执行的操作。在此基础上,本文总结了当前云际存储系统中主要的数据分发方案,并分析了它们的复杂度。

2.1 云际存储背景介绍

为了保证用户存储数据的可靠性,当前云际存储系统使用数据分发算法将数据分发到不同的云存储空间。

图1[7]展示了云际存储系统中的主要操作。

Figure 1 Main operations in cloud-of-clouds storage图1 云际存储系统中主要操作

在云际存储系统中,用户端设备执行写入(加密、编码和上传)操作和读取(下载、解码和解密)操作,云端执行修复操作。在这些操作的执行过程中,存在2种主要的网络传输优化方案,即通过构建编码方案来减少网络数据传输量或根据当前网络和系统状态来动态调整相应数据传输机制。

根据实际应用场景的需求和特点,云际存储系统需要使用不同的数据分发方案来提供存储服务。例如,为了保证存储数据的安全性和可靠性,云际存储系统需要使用分发算法将数据加密并编码生成多个分片并分配到不同云。因此,研究人员提出多种数据分发方案来提升云际存储系统的性能。若一个数据分发算法将原始数据加上冗余数据之后的目标数据分为n个分片,并且利用其中任意k个分片即可恢复原始数据。同时为保证云际存储系统数据安全性,黑客在攻陷t个存储节点时无法获取机密消息的相关数据。这样的数据分发算法被定义为(n,k,t)数据分发算法,其中t为安全度,云系统上存储的目标数据与原始数据的比值定义为存储增益Ω 。下面将介绍当前云际存储系统广泛使用的数据分发方案。

2.2 数据分发方案

在提出云际存储系统相关概念之前,研究人员已经开展了很多与数据分发操作相关的工作[7],很多分发操作方案依然被广泛用于当前的云际存储系统来安全地读写数据。Rabin[8]提出了一个信息分配算法IDA(Information Dispersal Algorithm)在不考虑安全性(安全度t=0)的情况下完成数据分发操作。在保证数据安全性的基础上(安全度t=k-1),Shamir[9]提出了Shamir秘密共享算法SSSS(Shamir’s Secret Sharing Scheme)来完成数据分发操作。Blakley等人[10]提出了机密信息共享RSSS(Ramp Secret Sharing Scheme) 方案来构建安全性可调(安全度t∈[0,k-1])的通用分发算法。Krawczyk[11]提出了消息分享方案SSMS(Secret Sharing Made Short)来减少Shamir秘密共享算法SSSS的存储开销。这些方案在设计之初只考虑了安全性,却忽略了带来的存储空间和性能开销的问题。

上述数据分发算法具有很高的计算复杂性,因而在实际的云际存储系统中很难高效地执行这些算法。Resch等人[6]提出了AONT-RS(All-Or-Northing Transform with Reed-Solomon coding)算法来提升数据分发算法的性能和安全性。但是,AONT-RS使用随机密钥来加密机密消息,这种机制会影响数据去重的性能和数据存储效率。Li等人[4]提出了2种不同的分配算法CRSSS (Convergent RSSS)和CAONT-RS (Convergent AONT-RS)来有效提升云际存储的存储空间利用率。Shen等人[12]利用非系统编码HCE-PPC(Hash Cyclic Encryption-Privacy Protecting Codes)来快速进行数据编解码操作。Yao等人[13]提出一种安全的数据分发算法SAONT-RS(Safe and efficient AONT-RS)来提升数据存储操作的安全性。通过对云际存储冗余数据的合理分配,Mao等人[14]有效提升了云际存储系统的可用性。Bernstein等人[15]构建了一个云际存储系统的测试平台,用于分析各种云际存储方案优缺点。针对数据安全性问题,Louk等人[16]提出了一种云际同态加密方案。Shen等人[17]提出了基于网络编码的数据分发方案NCCS(Network Coding based Cloud of clouds Storage)来减少移动应用场景中用户设备存储数据的开销。Kapusta等人[18]引入新的数据分片方式KFA(Kapusta’s Fragmentation Algorithm),将数据块拆分为更小的迷你块,再利用伪随机的重排列优化分片方式,提升数据存储的安全性。表1比较了数据分发算法的安全度和存储增益[17]。

Table 1 Security and storage gain of dispersal algorithms表1 主要的数据分发算法的安全度和存储增益

由于不同的应用场景对于安全度和存储增益的要求不一致,现有云际存储系统需要部署不同的数据分发算法。与此同时,在数据分发过程中,由于需要执行加密、编码和传输操作,这些操作将会引起较大数据读写时延,从而增加了云际存储系统的时延开销。为了保证可以执行相应的存储操作,云际存储系统需要进一步优化读写操作来减少操作时延。

当前,云际存储系统已经被广泛地部署,用于存储用户数据。其中比较著名的云际存储系统包括IBM的Cleversafe、欧盟基金会的SafeCloud和法国的InterCloud。Cleversafe使用AONT-RS[6]来分发用户数据,从而保证云端用户数据的安全性和可靠性,其主要被用于IBM云对象存储。SafeCloud主要面向个人数据存储。当前SafeCloud已经被部署到了多个欧洲企业。InterCloud与阿里云、AWS、Azure和Google等合作,提供了软件定义云互联平台。InterCloud主要用于企业数据存储,其客户包括施耐德电气、空客等公司。

2.3 数据分发算法的复杂度分析

当前数据分发算法的计算瓶颈为解码时对大规模线性方程组的求解。传统求解方法有多种,如高斯消元法、LU分解法和QR分解法等。如今冯达等人[19]也提出一种优化方案EVLE-LS(Efficient Verifiable outsourcing of solving large scale Linear Equations with Low Storage overhead)。EVLE-LS利用伪随机数生成器将系数矩阵改造为稀疏矩阵,从而优化解方程的时间开销。本文以高斯消元法为求解方法分析数据分发算法的复杂度。

IDA算法计算开销主要在解码恢复数据阶段中。对生成矩阵A求逆矩阵A-1时,其复杂度为O(n3)。SSSS分发算法插值的开销为O(n*log(n)),由于数据向量中存在冗余数据,所求数据仅存在于向量组中的一个向量,所以求逆矩阵时,其复杂度为O(n4)。RSSS与CRSSS的复杂度与安全度相关,当t=0时,RSSS和CRSSS的复杂度为O(n3),而极端情况下t逼近k-1时,复杂度为O(n4)。CRSSS的加密哈希密钥是由自身数据生成的,以部分哈希值的计算开销为代价,减少了数据重复。SSMS的主要开销为SSSS分享,复杂度与SSSS相同,也为O(n4)。

AONT-RS和CAONT-RS的主要开销也是在求生成矩阵的逆矩阵这一阶段。AONT-RS、CAONT-RS引入RS纠删码。RS code是基于有限域(Galois Field)的一种编码算法,其可基于范德蒙(Vandermonde)矩阵和柯西矩阵,基于二者矩阵编码的复杂度为O(n2),但在解码这一过程中,范德蒙矩阵解码复杂度为O(n3),而柯西矩阵解码复杂度为O(n2)。与AONT-RS相比,CAONT-RS的加密哈希密钥是由自身数据生成的,减少了数据重复的同时也增加了计算开销,两者的复杂度均为O(n3)。

HCE-PPC的主要开销也在解码时。与AONT-RS、CAONT-RS算法相比,HCE-PPC在编码时,不依赖整体数据的哈希值,而是基于当前数据块的哈希值,并行化程度更高。同时,HCE-PPC的生成矩阵更加简单。虽然复杂度也为O(n3),但实际运行中,HCE-PPC的运行速度会更快。

而在NCCS中,NAONT-RS和NCAONT-RS所需工作量仍与AONT-RS和CAONT-RS一致,但引入网络编码时,移动终端编码解码传输的主要过程由速度更快的服务器完成。KFA分片过程的操作为生成拆分排列、数据分发、编码和数据重排列,其中主要开销为迷你块的编码。在解码过程中,与ANOT-RS类似,其复杂度为O(n3)。表2展示了当前数据分发算法的复杂度。

Table 2 Complexity of dispersal algorithms in cloud-of-clouds storage system表2 云际存储系统中主要数据分发算法的复杂度

3 云际存储网络管理方案

由于在线应用需要高速地访问用户数据并保证存储数据的可靠性,云际存储系统需要频繁地执行读写、修复和传输操作,在不同的应用场景下可针对这些操作进行相应的性能优化。

3.1 用户端设备数据读写操作

在云际存储系统中,用户端设备需要通过读写用户数据来完成相应的读写请求。

数据分发:为了保存用户数据,云际存储系统需要将数据分发到不同的云存储空间。图2[17]展示了数据分发操作在云际存储系统中的执行过程。

Figure 2 Data dispersal process in cloud-of-clouds storage图2 云际存储系统数据分发过程

如图2所示,云际存储系统通过机密消息加密、编码和传输等多个步骤完成数据分发操作,这些操作往往会带来大量的系统开销,包括计算开销和传输开销,并降低数据写入操作的性能。

数据读取:在云际存储系统读取数据时,需要执行下载、解码和解密操作来获取原始用户数据,图3[7]展示了云际存储系统的数据读取操作过程。

Figure 3 Data reading process in cloud-of-clods storage图3 云际存储系统数据读取过程

云际存储系统读取操作过程中的下载、解码和解密操作会产生计算和传输开销,这些操作会增加存储系统执行读写操作的时延,从而影响用户体验并限制云际存储系统的应用场景。

3.2 云端数据修复操作

由于在云际存储中存在存储失效问题,为了保证数据的可靠性,云际存储系统需要修复失效的云节点中的数据。图4[7]展示了云际存储修复操作的例子。

Figure 4 Erasure code based data recovery process图4 传统纠删码云际存储修复方案

假设大小为1 MB的原始对象被分成2个数据分片A和B,每一个分片为0.5 MB。假设分片A所在云存储节点失效,为了修复1个分片A的数据,云端需要下载总数据量为1 MB的2个分片,即分片B和A+B,来完成修复工作。这些数据传输操作将会带来较大的传输开销,降低云际存储系统的可靠性。

针对云际存储系统数据修复过程传输开销较大的问题[7],不同的研究者提出了许多减少云际存储系统数据修复操作数据传输量的方案。例如,通过在云际存储系统中部署再生码来减少修复过程消耗的网络带宽[3]。图5[3]展示了基于再生码的云际存储数据的修复过程的例子:

Figure 5 Regeneration code based data recovery process图5 基于再生码的云际存储修复方案

在图5中,一个大小为1 MB的对象分成了4个分片A、B、C和D。其中,每一个分片为0.25 MB。通过随机线性编码,云际存储系统将这些分片生成编码分片P1、P2、P3、P4、P5、P6、P7和P8。每一个编码分片为0.25 MB。当前在恢复数据的过程中,代理服务器仅仅需要从幸存的每一个云节点下载一个大小为0.25 MB的编码分片,生成新的编码分片P′1和P′2,并将这些分片存储到新生节点。在这个过程中,网络的数据传输总量为0.25*3=0.75 MB。

在这个例子中,相较于传统纠删码数据修复方案,基于再生码[20]的数据修复方案将修复过程需要传输的数据量从1 MB减少到0.75 MB。通过减少数据修复过程传输的数据量,云际存储系统可以有效地减少修复过程中网络数据传输操作所需要的时间,从而提升云际存储数据的可靠性。

3.3 网络传输优化方案

由于云际存储系统需要通过互联网将用户数据上传到云端,用户端设备与云端之间带宽通常十分有限。此外,云端修复数据的过程中云存储节点之间也需要传输数据,如何减少数据传输操作带来的时延成为了提升云际存储系统性能的关键性问题。

首先,研究人员[3,18,21,22]尝试构建编码来减少云际存储系统需要完成数据读写和修复操作需要传输的数据量。通过部署再生码,Chen等人[3]设计了NCCloud(Network-Coding-based storage system in a Cloud of Clouds)来减少修复操作网络需要传输的数据量。通过在移动云际存储系统中部署网络编码方案,Shen等人[17]设计了NCCSCLOUD(Network Coding based Cloud of clouds Storage CLOUD)来减少用户端设备的计算与数据传输开销,从而提升数据分发效率。Cui 等人[21]提出了QuickSync在移动场景下加速同步用户端设备和云端的数据同步性能。Tang等人[22]通过合理存储UniDrive来减少用户在云际存储数据读取过程中的时延。通过部署非系统码HCE-PPC,Shen等人[12]设计云际存储系统CloudS(multi-Cloud Storage system with multi-level security)提升数据编码效率。

其次,为了更好地适应网络状态的变化,云际存储系统需要根据当前的网络状态调整数据传输策略。Li等人[23,24]通过根据网络拓扑选择和并行化数据修复过程提出了基于树形的和基于流水线的数据修复方案。通过根据异构网络带宽确定数据传输量,Wang等人[25]提出了弹性树形修复拓扑构建档案FTR(Flexible Tree-structured Regeneration)来保证修复后数据的完整性,并进一步缩短修复过程的时间。Shen等人[26]提出数据修复方案OMFR(Optimal Multiple Failures Repair),以根据当前的网络带宽决定修复操作开始的时间,从而减少修复操作需要传输的数据量和消耗的时间。

由于数据读写操作和数据修复操作是云际存储系统中引起数据传输操作的主要原因,当前云际存储系统性能优化方案主要围绕减少这2种类型的操作的网络开销展开研究工作。表3展示了当前云际存储传输优化方案针对的操作类型,其中PTR代表基于流水线的修复方案。

Table 3 Optimization schemes for cloud-of-clouds storage system表3 云际存储系统传输优化方案

如表3所示,当前云际存储系统数据传输优化方案通常仅针对存储或修复中的一种操作。因此,若有机地结合2种不同的数据传输优化方案,可以进一步优化云际存储系统数据传输效率。

4 云际存储资源管理方案

为了高效地管理云际存储的资源,云际存储系统提出了很多资源管理方案。由于云际存储系统主要包括用户端设备资源和云端资源,云际存储系统需要合理管理这些资源来完成读写和修复操作。

4.1 用户端设备资源管理

云际存储系统需要合理地管理用户端设备资源来完成数据读写操作。在云际存储系统中,用户端设备通常需要使用以下资源:

(1)计算资源。为了保证数据的安全性和可靠性,用户端设备需要进行加密操作和编码操作,从而产生了用户端设备的计算开销[17]。然而,用户端移动设备的计算资源通常比较有限,如移动存储应用场景下,这些加密和编码操作带来的计算开销将导致较大的数据计算时延,且降低了云际存储系统的存储性能。

(2)传输资源。云际存储系统需要通过互联网来传输用户端设备与云端的数据,而互联网上可用带宽十分有限,并且波动性较大[24]。因此,云际存储系统数据读写性能提升的关键在于减少用户端设备与云端之间传输的数据量。

由于用户端设备计算和网络资源有限,云际存储系统需要根据应用场景合理地分配用户端设备的资源,从而完成相应用户数据读写操作。构建高效的机制来有效地管理用户端设备资源成为了保证云际存储系统性能的关键性问题。

4.2 云端资源管理

为了在云端可靠地保存用户数据,云存储节点需要在数据失效时完成存储数据修复操作,为了修复这些失效的数据,云端需要管理以下资源:

(1)计算资源。在数据修复过程中,云端需要编码现存的数据来生成失效云节点,以保证存储数据的可靠性。为了完成数据的编码操作,云端需要有效地管理云节点的计算资源。

(2)存储资源。为了保证数据的可靠性,云节点在存储用户数据之外还需要保存冗余数据。因此,云际存储系统需要在保证用户数据可靠性的前提下合理地管理存储空间,从而减小存储开销。

(3)传输资源。当出现云节点故障时,云际存储系统需要根据现存数据恢复出已失效的数据,在这个修复过程中,云节点之间需要传输大量的数据。此外,为了减少用户端设备上传到云端的数据量,云际存储方案需要将用户端设备的计算和传输开销迁移到云端[17]。合理地管理云端网络传输资源将有效地保证存储数据可靠性和数据读写的性能。

为了快速地完成加解密、编解码和传输操作,云际存储系统需要高效地管理用户端设备和云端资源。下面,本文将综述云际存储系统的资源管理方案并分析这些方案适用的场景。

4.3 云际存储资源管理方案

为了高效地管理云际存储系统的计算、存储和网络资源,研究人员主要从存储数据可靠性和访问性能2方面提出了各种资源管理及优化方案。

首先,为了保证存储数据的可靠性,云际存储平台需要根据应用场景的需求选择适当的资源管理策略。Pereira等人[27]设计了Storekeeper方案,并构建了安全可靠的数据分享机制和管理平台来整合各云服务提供商的存储资源。Zhao等人[28]设计了中间件SafeSky,从而实现了云际存储系统中对用户文件存储的操作请求进行重定位操作。Ma等人[29]使用缓存副本的方式提出了CAROM(Cache A Replica On Modification)来提升用户数据访问性能和云际存储系统可靠性。

其次,为了快速完成用户端读写操作,研究人员分析了云际存储系统应用场景的特点并提出了相应的优化方案。Chung等人[30]提出了CYRUS(Client-defined privacY-protected Reliable cloUd Service)来优化在多用户情况下的并行数据访问能力。Shen等人[31]提出了基于流水线的数据存储方案,以充分利用计算和传输资源来并行化加密、编码和传输操作,加速数据存储过程。通过将纠删码与副本存储方案相结合,Wu等人[32]提出了DAC(Deduplication_Assisted primary storage system in Cloud-of-clouds)方案来增加数据去冗余度,从而提升高存储频率用户数据的数据访问性能。通过使用纠删码与副本来存储不同大小的文件,Mao等人[14]设计了HyRD来减少云际存储系统的存储开销和访问时延。Bernstein等人[33]设计了简单副本管理协议SSRP(Simple Storage Replication Protocol)来管理云际存储空间。表4展示了云际存储系统中主要资源管理方案,其中Pipeline代表基于流水线的数据存储方案。

Table 4 Resource management schemes forcloud-of-clouds storage system表4 云际存储系统资源管理方案

如表4所示,当前的资源管理方案通常仅优化针对系统可靠性和性能中的一项。因此,云际存储系统资源管理方案如何在不同应用场景下兼顾数据可靠性和读写性能依然是一个值得研究的问题。

5 云际存储应用场景

由于云际存储具有高可靠性、高安全性的特点,云际存储方案被广泛应用到了数据备份、移动存储应用和云际计算等诸多场景。

5.1 数据备份场景

当存储的数据出现失效时,用户端设备需要从其它存储系统中获取备份数据来保证用户数据的可靠性。通过将数据加密和编码后分发到不同的云,云际存储提供了安全且可靠的数据存储服务。因此,云际存储广泛地应用到了数据备份场景。

图6[21]展示了云际备份存储场景。

Figure 6 Backup paradigm for cloud-of-clouds storage system图6 云际备份存储场景

通过使用数据同步算法[21],用户端设备可以将本地数据与云际存储系统的数据进行同步操作。当前用户端设备出现数据失效时,用户端设备可以下载备份在云端的数据,从而恢复出本地失效的数据。在这个过程中,云际存储系统需要保证存储在云端数据的安全性和可靠性。

虽然备份存储系统可以安全可靠地存储用户数据,云际存储系统部署到其他的应用场景依然面对诸多挑战。首先,为了保证在线应用的用户体验,云际存储系统需要根据应用场景来提升读写操作的性能。其次,由于不同的应用场景往往有着不同数据存储需求,云际存储系统需要有针对性地优化相应的数据读写和修复方案。下面,本文将分析2种经典的云际存储应用场景,即移动应用场景和云际计算场景,并总结不同的云际存储系统的应用场景和这些系统包含的主要功能及实现机制。

5.2 移动应用场景

在移动云际存储系统中,用户端设备相较于云端的计算和传输资源通常较为有限,并且用户端设备需要通过无线网络(如WiFi[34]、LTE[35]和5G NR[36])和互联网来传输数据。因此,相较于云端虚拟机,移动设备需要更长的时间来完成数据加密、编码和传输操作。

根据移动应用场景下用户端设备和云端设备的特点,云际存储系统需要调整数据分发方案来优化数据读写操作的性能。基于网络编码的数据分发方案通过使用网络编码存储的例子来说明如何在实际的云际存储系统中减少用户端上传到云端的数据量。

假设移动云际存储系统中有4个不同的云和1个用户端设备。用户希望写入1个M字节大小的机密消息。为了存储k个分片加密后的M/k字节消息,当前分发方案需要用户编码并将分片上传到所有的云。图7[17]展示了云际存储系统中数据分发过程。

Figure 7 Traditional and the dispersal scheme based on network code图7 传统分发方案和基于网络编码的分发方案

图7a展示了传统基于纠删码的数据分发方案。在存储的过程中,用户设备将加密消息分成2个数据分片A和B,编码后生成校验分片A+B和A+2B,并且最后上传到云端。为了存储M字节机密消息,用户端设备编码M字节数据并发送了2M字节数据。由于移动设备通常计算和传输资源有限,这些操作将会严重影响分发操作的性能。

为了减少用户端设备数据计算和传输开销,云际存储系统可以通过部署网络编码将这些开销迁移到云端系统。基于网络编码的数据分发方案将4个云分成2个初始云和2个后继云。图7b展示了基于网络编码的数据分发方案执行过程,首先,用户设备生成2个数据分片A和B,并且上传这些分片到初始云。其次,初始云将分片A和B分成数据包A1、A2、B1和B2。其中,每一个包大小为M/4字节。然后,初始云将数据包A1、B1、A2和B2传输到后继云。最后,后继云编码生成数据包A1+B1、A1+2B1、A2+B2和A2+2B2,并交换数据包A1+2B1和A2+B2来生成校验分片A+B和A+2B。

相较于基于纠删码的数据分发方案,用户端移动设备需要编码M字节并传输2M字节数据,通过部署网络编码方案,用户端移动设备在无需编码操作的前提下,只需要上传M字节数据。

通过上述例子可知,通过将编码计算和网络传输负载迁移到云端,基于网络编码的数据分发方案可以有效地减少用户端设备上传到云端的数据量,从而有效地提升移动设备的存储操作性能。与此同时,除了存储操作外,云际存储依然存在数据更新时延较长等问题。因此,如何优化其他操作依然是提升移动云际存储性能的重点问题。

5.3 云际计算场景

通过合理地协调各个用户占用云端的各类资源,云际计算平台[37]提供了高效的服务平台来完成用户端设备提交的各种计算和存储任务。图8展示了云际计算系统的体系结构[37]。

Figure 8 Architecture of cloud-of-clouds computing 图8 云际计算系统架构

为了有效地利用云端资源和管理用户端设备,云际计算系统通过云际服务仲裁系统整合了云端资源,并将用户进行分组管理。为了保证数据可靠性,云际计算系统需要在云端存储多个副本并要求对应的云际存储系统保证这些副本的一致性。这将引入较大的数据读写时延,并严重降低系统性能。

为了给云际计算提供高可用的存储服务,云际存储系统需要在保证数据一致性的前提下,降低数据存储的时延。针对这一问题,研究人员提出了许多高效的副本数据读写策略。例如,DepSky[5]通过加入元数据来实现云端副本的弱一致性。

图9[5]展示了DepSky的数据存储和读取过程:

Figure 9 Data storage and read process of DepSky图9 DepSky的数据存储和读取过程

不同于经典的一致性协议(如,拜占庭仲裁)[38],Depsky使用元数据来确定当前最新版本的副本。为了保证写入数据的完整性,计算节点会先在云端存储副本数据,然后将带有版本信息的元数据上传到云端。在数据读取过程中,计算节点首先从云端下载元数据来确定云端副本的版本,从而保证在此之后计算节点可以获取最新版本的副本数据。

综上所述,由于相较于直接读取副本数据仅需要多下载副本元数据,这种方案可以以较小的代价保证写入和读取数据的一致性。由于云际计算系统需要对存储数据复制多个副本,这些副本的存储往往会占用较大的存储空间。如何在保证数据一致性和访问性能的前提下,部署存储空间利用率高的存储方案(如纠删码存储)依然是一个值得研究的问题。

5.4 面临的挑战及解决方案

虽然当前有很多数据分发方案,但如何部署这些存储机制到实际的在线应用中依然是一个具有挑战性的问题。研究人员开发了许多云际存储系统来满足各种应用场景的数据存储需求。

首先,为了安全且可靠地存储用户数据,云际存储系统使用了不同的安全和可靠性方案。通过设计仲裁机制,Bessani等人[5]提出了DepSky系统,解决了云端存储副本数据的一致性问题。Bessani等人[39]设计了SCFS(Shared Cloud-backed File Systems),通过设计一致性将文件分发到多个云的元数据和数据来提升数据分享的效率。Lacoste等人[40]构建了Supercloud平台,从而提升了云际计算操作的安全性和可靠性。通过应用冗余磁盘阵列编码技术(RAID),Abu-Libdeh等人[2]设计了RACS(Redundant Array of Cloud Storage)来提升云际存储系统的可靠性和数据存储效率。通过将元数据和数据分别保存在私有云和公有云,Dobre等人[41]设计了Hybris来提升云际存储系统的安全性。通过在用户端设备加入远端认证服务,Matos等人[42]构建了RockFS(RecOverable Cloud-backed File-System)系统来同时兼顾用户端设备及云端存储数据的可靠性。

除此以外,为了提升云际存储系统操作的执行效率,研究人员在不同应用场景下优化了云际存储系统性能。通过在多个云存储提供商存储用户数据的副本,Wu等人[43]设计了Spanstore系统,从而提升云际文件存储系统的可靠性和访问性能。通过将CAONT-RS和CRSSS部署到云端,Li等人[44]设计了CDStore(Store via Convergent Dispersal)来提升云际存储系统的存储空间利用率。Mu等人[45]提出了μlibcloud作为中间件来统一管理云际存储的访问请求,从而提升云际存储系统的可用性。Verissimo等人[37]构建了Tcloud平台来处理云际计算任务。Burihabwa等人[46]总结了云际存储系统的数据加密算法和可靠性机制,并测量了加密和传输操作的执行效率,以对比存储系统性能。表5展示了当前云际存储系统及其应用场景。

通过分析表5可以发现,当前的云际存储系统的应用场景主要集中在存储备份。由于云际存储系统在数据读写过程中需要一系列的计算、传输和存储操作,其数据读写时延依然是制约其上运行的应用性能的瓶颈。如何进一步将云际存储系统部署到不同的在线应用中依然是一个值得研究的问题。

Table 5 Cloud-of-clouds storage system and their application scenarios表5 云际存储系统及其主要应用场景

6 结束语

云际存储系统作为一种高效的云存储资源管理方案被广泛地应用于当前的在线存储系统。本文综述了当前云际存储系统的相关工作,包括数据分发方案、网络传输方案、云际存储系统资源管理机制及其主要的应用场景。在此基础上,本文总结了当前云际存储系统适用的应用场景和相应的存储系统性能优化方案,并在此基础上分析了当前网络传输机制和资源管理方案对于云际存储系统性能的影响。

虽然当前的云际存储系统可以安全可靠地存储用户数据,实际系统运行过程中依然存在诸多性能瓶颈,例如网络带宽严重限制了云际存储系统的广泛应用。为了克服这些性能瓶颈,云际存储系统需要使用新的网络传输和存储方案。例如,为了减少用户端设备的网络传输时延,云际存储系统可以将数据缓存在边缘节点,从而加快读写操作。此外,云际存储系统也需要针对新出现的应用场景,如区块链及内容分发系统,提出相应的优化方案。

猜你喜欢

用户端分片存储系统
上下分片與詞的時空佈局
Android用户端东北地区秸秆焚烧点监测系统开发与应用
分片光滑边值问题的再生核方法
分布式存储系统在企业档案管理中的应用
CDN存量MP4视频播放优化方法
天河超算存储系统在美创佳绩
基于模糊二分查找的帧分片算法设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
一种太阳能户外自动花架电气系统简介