发明内容
本发明的目的在于提供一种数据散列存储的方法及装置,以提高存储的数据的安全性能。
本发明是这样实现的:
第一方面,本发明实施例提供了一种数据散列存储的方法,所述方法应用于分布式存储系统,所述分布式存储系统包括云主机、磁盘前端驱动器及多个存储节点,所述方法包括:
所述磁盘前端驱动器接收所述云主机发送的数据写入请求;
所述磁盘前端驱动器按照预先与所述云主机绑定的逻辑磁盘片,将所述请求写入的数据划分为多个数据分片,所述逻辑磁盘片为预先将与所述云主机绑定的逻辑磁盘进行划分获得,所有的所述逻辑磁盘片对应的物理存储单元散列分布在不同的存储节点上;
所述磁盘前端驱动器将获得的所述多个数据分片分配不同的逻辑磁盘片,将所述多个数据分片散列存储到所分配的逻辑磁盘片对应的不同的存储节点上;
所述磁盘前端驱动器将所述数据分片的元数据信息进行存储。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中所述磁盘前端驱动器将所述多个数据分片散列存储到不同的存储节点之前,将所述多个数据分片分别进行加密,所述加密的密码由用户通过所述云主机向所述磁盘前端驱动器发送。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中所述分布式存储系统中还包括索引服务器,所述索引服务器对存储在所述索引服务中的元数据进行管理;
所述磁盘前端驱动器将所述数据分片的元数据信息存储到所述索引服务器。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中所述索引服务器对所述元数据进行加密。
结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中所述磁盘前端驱动器获得每个数据分片的副本数据分片,将每个副本数据分片分配不同的逻辑磁盘片,将所述多个副本数据分片散列存储到为所述副本数据分片分配的逻辑磁盘片对应不同的存储节点上,其中,所述请求写入的数据的数据分片和所述副本数据分片相同的数据分片,存储在不同的存储节点上。
第二方面,本发明实施例提供了一种数据散列存储的装置,所述数据散列存储的装置应用于分布式存储系统,所述分布式存储系统包括云主机、磁盘前端驱动器及多个存储节点,所述磁盘前端驱动器包括:
数据写入请求接收单元,用于接收所述云主机发送的数据写入请求;
数据划分单元,用于按照预先与所述云主机绑定的逻辑磁盘片,将所述请求写入的数据划分为多个数据分片,所述逻辑磁盘片为预先将与所述云主机绑定的逻辑磁盘进行划分获得,所有的所述逻辑磁盘片对应的物理存储单元散列分布在不同的存储节点上;
数据分配单元,用于将获得的所述多个数据分片分配不同的逻辑磁盘片,将所述多个数据分片散列存储到所分配的逻辑磁盘片对应的不同的存储节点上;
元数据管理单元,用于将所述数据分片的元数据信息进行存储。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中所述磁盘前端驱动器还包括:
数据分片加密单元,用于所述数据分配单元将所述多个数据分片散列存储到不同的存储节点之前,将所述多个数据分片分别进行加密,所述加密的密码由用户通过所述云主机向所述磁盘前端驱动器发送。
结合第二方面或第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中所述分布式存储系统中还包括索引服务器,所述索引服务器对存储在所述索引服务中的元数据进行管理;
所述元数据管理单元将所述数据分片的元数据信息进行存储,包括:所述元数据管理单元将所述数据分片的元数据信息存储到所述索引服务器。
结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中所述索引服务器对存储在所述索引服务中的元数据进行管理,包括:所述索引服务器对所述元数据进行加密。
本发明实施例提供的一种数据散列存储的方法及装置,通过将数据散列存储于存储节点,将元数据进行加密后存储于索引服务器储。在存储节点上,由于数据是散列存放,所以仅仅依靠存储的数据分片不能重组出存储的数据;在索引服务器上,由于存储的是元数据,所以也不能仅仅依靠元数据重组出存储的数据。且索引服务器存储的元数据经过加密,所以即便元数据被盗取也不会从元数据中找到存储的数据的信息。这样的存储方式提高了数据存储的安全性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
云存储就是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。云存储系在给使用者带来便捷的同时,由于其存储数据的方式,也使使用者存储的数据存在被盗取的危险。本发明实施例公开的散列存储数据的方法及装置能够提高云存储系统中存储的数据的安全性。
参阅图1,本发明实施例提供一种数据散列存储的方法,所述方法应用于分布式存储系统,分布式存储系统包括云主机、数据散列存储的装置及多个存储节点,数据散列存储的装置包括磁盘前端驱动器,所述方法包括:
S101:磁盘前端驱动器接收云主机发送的数据写入请求。
S102:磁盘前端驱动器按照预先与云主机绑定的逻辑磁盘片,将请求写入的数据划分为多个数据分片,逻辑磁盘片为预先将与云主机绑定的逻辑磁盘进行划分获得,所有的逻辑磁盘片对应的物理存储单元散列分布在不同的存储节点上。
S103:磁盘前端驱动器将获得的多个数据分片分配不同的逻辑磁盘片,将多个数据分片散列存储到所分配的逻辑磁盘片对应的不同的存储节点上。
S104:磁盘前端驱动器将数据分片的元数据信息进行存储。
通过执行上述步骤,分布式存储系统包括的数据散列存储的装置将数据分片散列存储于多个存储节点中,将包括存储数据分片的逻辑磁盘片信息和物理存储单元信息的元数据与数据分片分开存储。这样的存储方式安全性较高。
为了使存储的数据分片更具安全性,参阅图2,本发明实施例提供另一种数据散列存储的方法,应用于分布式存储系统,分布式存储系统包括云主机、数据散列存储的装置及多个存储节点,数据散列存储的装置包括磁盘前端驱动器,方法包括:
S201:磁盘前端驱动器接收云主机发送的数据写入请求。
S202:磁盘前端驱动器按照预先与云主机绑定的逻辑磁盘片,将请求写入的数据划分为多个数据分片,逻辑磁盘片为预先将与云主机绑定的逻辑磁盘进行划分获得,所有的逻辑磁盘片对应的物理存储单元散列分布在不同的存储节点上。
S203:磁盘前端驱动器将多个数据分片分别进行加密,加密的密码由用户通过云主机向磁盘前端驱动器发送。
S204:磁盘前端驱动器将获得的多个数据分片分配不同的逻辑磁盘片,将多个数据分片散列存储到所分配的逻辑磁盘片对应的不同的存储节点上。
S205:磁盘前端驱动器将数据分片的元数据信息进行存储;
该步骤具体为:磁盘前端驱动器将数据分片的元数据信息存储到索引服务器。为了使存储的数据分片安全,索引服务器对元数据进行加密。
由于该散列存储数据的方法是通过索引服务器管理元数据,不需要传统的文件管理系统,并且存储的元数据经过加密,所以存储的数据安全性能较高。
当只存储一份数据时,若存储节点被物理损或数据被抹掉,那么存储的数据不能被还原,为了防止这个情况发生,存储数据时还要执行以下步骤:
S206:磁盘前端驱动器获得每个数据分片的副本数据分片,将每个副本数据分片分配不同的逻辑磁盘片,将多个副本数据分片散列存储到为副本数据分片分配的逻辑磁盘片对应不同的存储节点上。
在存储副本数据分片之前执行S207:磁盘前端驱动器将副本数据分片进行加密。
存储数据时,请求写入的数据的数据分片和副本数据分片相同的数据分片,存储在不同的存储节点上。存储在在不同的存储节点上,才能有效保障存储的数据的安全性。如果数据相同的数据分片存储在相同的存储节点上,若该存储节点遗失或损坏,那么存储的数据还是不能还原。
参阅图3,本发明实施例提供一种数据散列存储的装置,数据散列存储的装置应用于分布式存储系统,分布式存储系统包括云主机、数据散列存储的装置及多个存储节点,数据散列存储的装置包括磁盘前端驱动器301,磁盘前端驱动器301包括数据写入请求接收单元302、数据划分单元303、数据分配单元304和元数据管理单元305。其中,
数据写入请求接收单元302用于接收云主机发送的数据写入请求。
数据划分单元303用于按照预先与云主机绑定的逻辑磁盘片,将请求写入的数据划分为多个数据分片,逻辑磁盘片为预先将与云主机绑定的逻辑磁盘进行划分获得,所有的逻辑磁盘片对应的物理存储单元散列分布在不同的存储节点上。
数据分配单元304用于将获得的多个数据分片分配不同的逻辑磁盘片,将多个数据分片散列存储到所分配的逻辑磁盘片对应的不同的存储节点上。
元数据管理单元305用于将数据分片的元数据信息进行存储。
参阅图4,本发明实施例提供另一种数据散列存储的装置,数据散列存储的装置应用于分布式存储系统,分布式存储系统包括云主机、数据散列存储的装置及多个存储节点,数据散列存储的装置包括磁盘前端驱动器301,磁盘前端驱动器301包括数据写入请求接收单元302、数据划分单元303、数据分配单元304、元数据管理单元305和数据分片加密单元306。
其中,数据写入请求接收单元302、数据划分单元303、数据分配单元304和元数据管理单元305的作用于图3中相应的单元的作用相同。数据分片加密单元306用于数据分配单元将多个数据分片散列存储到不同的存储节点之前,将多个数据分片分别进行加密,加密的密码由用户通过云主机向磁盘前端驱动器发送。
使用上述散列存储数据的装置存储数据时,磁盘前端驱动器301接收到要存储的数据,例如10M,那么数据划分单元303将这10M的数据划分成若干数据分片,例如100个数据分片,根据负载均衡原则和存储任务将数据分片分配给不同的逻辑磁盘片。逻辑磁盘片是由逻辑磁盘划分所得,逻辑磁盘事先与云主机绑定。假如逻辑磁盘片对应的物理存储单元散列分布在三个存储节点上,分别为C1、C2和C3三个存储节点,那么可能会在C1存储节点存储30个数据分片,在C2存储节点存储50个数据分片,在C3节点存储20个数据分片。
数据副本的存储与上述方法相同,只是在相同的存储节点不存储相同的数据分片,以保证存储的数据的安全。
使用本发明实施例提供的散列存储数据的方法及装置时,因为逻辑磁盘片对应的物理存储单元是散列在各个存储节点上,数据分片按照逻辑磁盘片进行存储的话,数据分片也会存储到各个存储节点上;并且,存储节点上是数据分片,因此,看不到完整的文件又因为云存储系统提供专用接口给用户,对存储的数据对应的元数据加密存储,秘钥由用户自行设定,只有使用专用接口并且提供正确密钥的用户才能成功读取数据,后台运营商只能看到加密后的无意义数据,也就无法查看其里面内容,也保障了数据的安全性。所以本发明实施例提供的散列存储数据的方法及装置存储数据时具有较高的安全性能。
参见图5,本发明实施例提供一种散列存储数据的装置400,包括:处理器403、存储器402、总线401和通信接口404。所述处理器403、通信接口404和存储器402通过总线401连接;处理器403用于执行存储器402中存储的可执行模块,例如计算机程序。
其中,存储器402可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口404(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线401可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器402用于存储程序,所述处理器403在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器403中,或者由处理器403实现。
处理器403可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器403可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器403读取存储器402中的信息,结合其硬件完成上述方法的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。