基于网络编码的家庭物联网云存储方案
2022-05-13张俊峰
张俊峰
(阜阳职业技术学院工程科技学院,阜阳 236000)
关键字:家庭物联网;网络编码;云存储;低计算能力;实时性;安全性。
家庭物联网(又称智能家居)是物联网众多应用场景之一,不像其他物联网应用场景受限于能量功耗、网络网速等因素发展较慢,家庭物联网已经成为物联网应用范围最广、最普及的应用场景,深刻改变及影响人们的生活方式。伴随着家庭物联网的不断普及,各种物联网设备源源不断产生海量数据,海量数据存储成为家庭物联网亟待解决的一个关键问题。
海量数据存储主要通过分布式存储方式实现[1-3],有两种技术方案:一是通过传统的分布式数据库系统,如MySQL、MS SQL Server、Oracle等实现,但该方式无法满足物联网对于数据的实时性要求[4];二是通过云存储技术实现,该技术可以充分利用网络中的存储资源,为多用户同时提供高速率、高吞吐量的数据资源访问服务,云存储是解决物联网海量数据存储的一个有效途径[5-6]。但以上存储方案主要侧重于数据的有效存储,没有着重考虑物联网中主要设备都是一些低计算能力终端的情况,因此设计的方案在实际执行中会遇到很多问题。另外,如何充分利用家庭物联网中众多设备的存储能力以提高存储效率也是解决家庭物联网海量数据存储问题的途径之一。
综上,基于网络编码的云存储方案具有对存储终端计算能力要求低、数据存储可靠性高等优势,可以很好地解决家庭物联网中的网络设备计算能力低、数据实时性和安全性要求高等问题,同时又能充分利用物联网中设备多的优势,进一步提高数据存储的可靠性和有效性,因此,基于网络编码的云存储方案在解决家庭物联网海量数据安全有效存储问题上具有广阔的应用前景。
网络编码是利用线性代数的基本原理,按照一定的方式将数据块进行线性组合的一种编码方式,相关文献分别提出了不同的基于网络编码的云存储方案,但在数据损坏后进行数据修复方面存在修复开销大、无法有效修复等问题[7-9]。本文在综合分析以上各存储方案中存在的问题,结合家庭物联网设备多、低计算能力等特点,提出了一种基于网络编码的家庭物联网云存储方案(Cloud storage scheme based on network coding of Home Internet of things,NCC-HIoT),方案通过理论证明和实验仿真验证了可行性,能够充分利用家庭物联网设备多的优势提高存储的有效性和可靠性,利用网络编码对数据进行分布式存储不仅对设备的计算能力要求低,而且能够提高存储数据的安全性和灵活的冗余机制。
1 NCC-HIoT云存储方案介绍
1.1 数据存储过程
根据网络编码的数据原理,数据存储过程如下:(1)选取编码矩阵。数据上传者首先需要选取一个满足特定条件的编码矩阵,即选取一个任取k(n-k)行组成的子矩阵都是满秩矩阵的n(n-k)×k(n-k)阶矩阵,其中n代表存储节点数,k代表恢复数据需要下载编码块的节点个数,即下载任意k个节点的编码块便可恢复出原始数据,n/k代表数据备份数,即存储冗余水平。(2)数据分块处理。数据上传者将原始数据等分成k(n-k)块,利用编码矩阵对原始数据进行编码运算,得到n(n-k)个编码数据块。(3)编码数据上传。将n(n-k)个编码数据块分别上传到n个存储节点上,每个存储节点分别存储(n-k)个编码块,同时将编码矩阵上传到每个存储节点。
1.2 数据下载过程
当需要读取数据时,用户从n个存储节点中任取k个节点,下载k个节点的全部编码块,从任一存储节点下载编码矩阵,利用编码矩阵和编码块便可恢复出原始数据。为了提高数据读取的实时性,用户可选择网络距离较近的存储节点下载数据,满足家庭物联网对数据高实时性的要求。
1.3 数据修复过程
当某个存储节点数据发生损坏时,从其他(n-1)个节点各下载一个编码块,和修复矩阵一起完成数据修复,修复过程根据受损存储节点数可分为局部修复和全局修复。为了清晰地描述修复过程,本文以n=8,k=4为例进行说明,具体见图1。
图1 数据修复过程图
当存储节点1数据发生损坏,修复服务器从剩余节点中各随机选取一个编码块,然后选取满足特定条件的4×7修复矩阵,特定条件指选取的修复矩阵满足任取4列得到的4阶方阵的转置矩阵都是满秩矩阵,且修复矩阵中的所有系数都不为0,利用选取的修复矩阵和下载的编码块做矩阵运算,得到4个新的编码块,将新的编码块存放到节点9上(也可存储到节点1上,但考虑到节点1自身的稳定性,存放到新的节点上更安全可靠),同时更新各节点存储的编码矩阵,即按照1.1中的存储过程将节点9上编码块所对应的编码系数放到整个编码矩阵中,同时将编码矩阵中损坏节点1编码块对应的编码系数删除。
以上仅以一次修复为例进行说明,修复过程的详细描述可行性的理论证明及实验验证结果作者已经在文献[10]中详细列出。
2 NCC-HIoT云存储方案性能分析
有效的云存储方案不仅要能够满足数据可用性、安全性、可修复性等方面的要求,还应该符合应用场景的特定需求,家庭物联网对于云存储方案除以上要求外,还对数据的实时性、高度共享性、高并发性等方面有着较高的要求,因此本文除分析云存储方案常见的性能外,还结合家庭物联网数据实时性、高度共享性、高并发性等方面的需求进行着重分析。
2.1 可用性分析
在NCC-HIoT云存储方案中,用户任取k个存储节点的编码块便可恢复出原始数据,若要证明NCCHIoT云存储方案的可用性,需证明(1)式有解:
其中n,k已经在1.1中给出定义,而A代表任取k个存储节点编码块所对应的编码系数矩阵,表示为:
根据线性代数相关知识:Ax=B有解的充分必要条件是矩阵A可逆,且X=A-1B。
在NCC-HIoT云存储方案中,选取的编码矩阵需要满足任取k(n-k)行必须是线性独立的,即任取k(n-k)行是行满秩的,所以矩阵A是满秩矩阵,故A是可逆的,所以Ax=B是有解的,(1)式成立得证。
通过上述理论分析,可以证明NCC-HIoT云存储方案的可用性。
2.2 安全性分析
在NCC-HIoT云存储方案中,上传到存储节点的数据并不是原始数据,而是利用编码矩阵编码后的数据,这可以显著提升数据存放的安全性。为了显性比较NCC-HIoT方案的安全性,以最常用的哈希加密为比较对象,从网络安全的五个维度以及确保五个维度满足所需的计算开销进行比较(计算开销是数据加密必须要考虑的最重要因素之一),具体见表1。
表1 安全性分析
由表1可以看出,NCC-HIoT云存储方案满足网络安全的五个维度,且由于该方案是通过网络编码对数据进行处理上传,在生成冗余备份数据的同时对数据进行了加密,节省额外加密所带来的计算开销,且网络编码就是通过做矩阵运算实现,对比哈希加密运算复杂度大大降低,更适用与家庭物联网场景,符合家庭物联网设备低计算能力的特征。
2.3 修复代价分析
目前基于家庭物联网的数据云存储方案中,较少考虑数据修复问题,为证明本文提出的修复方案修复计算开销小且不失一般性,特以文献[9]方案提出的修复方案为比较对象,对NCC-HIoT云存储方案数据修复代价进行分析。
表2 修复计算开销比较
为更直观反应,给出不同存储场景下(n、k取不同值时)两者乘除运算次数的比较,如表3所示。
表3 不同场景下两种方案乘除运算次数比较
通过表3可以发现,随着存储文件大小的增加,NCC-HIoT云存储方案在修复数据时更具优势。
2.4 实时性分析
基于物联网的云存储场景中,用户读取数据的延时主要集中在数据传输和数据恢复两个方面,其中在数据传输方面,NCC-HIoT云存储方案采用多节点分布式存储,相较其他基于集中平台的云存储方案,NCC-HIoT云存储方案支持用户就近选取存储节点读取数据,极大地减少了数据传输过程中的通信延时,特别是在网络拥塞的情况下,NCC-HIoT云存储方案在读取数据方面的优势更加明显。
对于数据恢复时间,本文基于Matlab Online平台模拟不同存储场景下恢复数据所需时间,如图2 所示。
由图2可知,NCC-HIoT云存储方案读取数据时间较小,实时性较好,且在不同存储场景下数据读取时间变化较小,适用于家庭物联网存储节点多的场景。
图2 不同存储场景数据读取时间
2.5 数据共享性分析
家庭物联网应用场景需要多种设备协同工作共同完成特定任务,在此过程中需要共享不同设备的数据,以便准确发出相应指令,如当室内温度较高时,室内空调设备和智能窗帘需要共享数据,同时做出规定动作,因此,需要及时共享数据,即基于家庭物联网的云存储平台需要支持数据的共享性。在NCCHIoT云存储方案中,每个存储节点存储的不仅存有一定数量的数据块,同时存放的有数据恢复所需的编码矩阵,对于授权获得数据的用户,可以随机选择相应的存储节点获取数据,不受时间和空间限制。
另外,家庭物联网智能设备大多计算能力较低,需要特别注意数据存储的安全性和共享性之间的平衡,若采用较复杂的加密算法,虽然在一定程度上提高了安全性,却需要读取数据的智能设备具备一定的计算能力才可恢复,极大地限制了云存储方案的使用场景。NCC-HIoT云存储方案能够较好地平衡数据安全性和智能设备的计算能力,通过网络编码对数据进行处理,提升了数据的安全性,且在智能设备读取数据时,仅需简单的矩阵运算便可恢复,能够很好地满足数据的共享性。
2.6 数据高并发性分析
当出现多个设备同时下载数据或者网络出现拥塞时,确保家庭物联网设备能够及时获取数据和指令是基于家庭物联网云存储方案必须解决的问题,在目前已有的基于平台的云存储方案中没有考虑或无法解决这个问题,而在NCC-HIoT云存储方案中,将数据均匀地存储在各个节点上,任取k个存储节点上的数据便可恢复出原始数据,当出现多个设备同时下载数据或者网络出现拥塞时,智能设备有一种获取数据的路径,能够很好地解决数据高并发性。
2.7 灵活地冗余备份机制
在NCC-HIoT云存储方案中,原始数据大小为k(n-k)个数据块,编码后为n(n-k)个编码块,冗余大小为n/k,因此,NCC-HIoT云存储方案支持根据用户数据的重要性及节点存储能力大小灵活调整数据的冗余度,相较于其他家庭物联网存储平台,该方案可以为不同用户定制个性化存储方案,可在一定程度上节省存储开销,同时取得较高的可靠性。
3 结论
本文基于家庭物联网的特征,引入基于网络编码的云存储方案,解决家庭物联网海量数据存储问题,网络编码是通过矩阵运算实现,对存储节点的计算能力要求不高,且编码后的数据能够带来一定的安全性,符合家庭物联网的应用场景,且网络编码的特性能够有效支撑在家庭物联网场景下海量数据的共享性、高并发性、实时性等特征。