CN115828272A - 一种数据存储方法装置、设备及可读介质 - Google Patents
一种数据存储方法装置、设备及可读介质 Download PDFInfo
- Publication number
- CN115828272A CN115828272A CN202111092612.4A CN202111092612A CN115828272A CN 115828272 A CN115828272 A CN 115828272A CN 202111092612 A CN202111092612 A CN 202111092612A CN 115828272 A CN115828272 A CN 115828272A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- metadata
- hard disk
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013500 data storage Methods 0.000 title claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 76
- 238000004590 computer program Methods 0.000 claims description 14
- 238000007726 management method Methods 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 14
- 230000005012 migration Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000002955 isolation Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000002041 carbon nanotube Substances 0.000 description 1
- 229910021393 carbon nanotube Inorganic materials 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种数据存储的方法、装置、设备及可读介质,其中,方法的步骤包括:首先,接收待存储的第一数据;接着,对待存储的第一数据中的第一部分数据进行加密,并将加密后的所述第一部分数据写入非易失性内存中,再将第二部分数据写入硬盘或磁盘中。该方法相比对整个数据加密,选取部分数据进行加密,这样可大大减少加密时长,同时也能在一定程度上保证安全性,该方法对部分数据实现可靠的加密,只获取到部分未加密的数据时,就无法完整的获得第一数据。此外,由于加密数据量小耗时小,该方法还可以使得数据可以快速读取,用户基本感知不到对数据的加解密操作。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储的方法、装置、设备及可读介质。
背景技术
随着人工智能、VR、5G等技术的发展,应用数据量爆炸式增长,数据上云需求越来越强,如何确保数据上云后的安全是用户最关心的问题之一。在存储领域,各类业务场景中产生了大量数据,存储厂商为控制存储成本,会对访问频率低的冷数据进行重删压缩后存储。但重删压缩后的数据体量仍然巨大,对此类数据进行加密和解密时间开销也很大,降低了数据的读写效率,且该过程中的密钥保存也存在安全风险,不适用于海量数据保护。可见,如何对海量数据实现安全、高速的存储是一个亟待解决的问题。
发明内容
第一方面,本申请实施例提供一种数据存储的方法,该方法包括:首先,接收待存储的第一数据;接着,将待存储的第一数据中的第一部分数据进行加密,将加密后的所述第一部分数据写入非易失性内存中,再将所述待存储的第一数据的第二部分数据写入硬盘或磁盘中。相比对整个数据加密,本方法选取部分数据进行加密,这样可大大减少加密时长,同时也能在一定程度上保证安全性,该方法对部分数据实现可靠的加密,只获取到部分未加密的数据时,就无法完整的获得第一数据。此外,由于加密数据量小耗时小且存储在非易失性内存中,可以使得数据被快速读取,用户基本感知不到对数据的加解密操作。
一种可能的设计方式,对所述第一部分数据进行加密,具体包括:在可信执行环境TEE 中,对所述第一数据中的第一部分数据进行加密。在TEE技术实现的硬件隔离的安全执行环境中执行加密,可以保证数据加密过程中的可靠性和安全性。
一种可能的设计方式,将前述第一部分数据的元数据和所述第二部分数据的元数据写入所述非易失性内存中,这里的第一部分数据的元数据中包括:第一部分数据进行加密和解密所需要的时长和第一部分数据的访问次数。该方法将元数据写入非易失性内存中,可以保存元数据读取的效率。
一种可能的设计方式,当所述第二数据满足迁移条件时,将所述第一部分数据从所述非易失性内存中迁移到所述硬盘或磁盘中。
一种可能的设计方式,前述的预设条件包括:第一部分数据进行加密和解密所需要的时间超过阈值,和/或,第一部分数据的访问频率小于阈值。
一种可能的设计方式,接收读取请求,这里的读取请求用于读取前述第一数据;从前述非易失性内存中读取所述加密后的第一部分数据,并从前述硬盘或磁盘中读取前述第二部分数据对前述加密后的前述第一部分数据进行解密,获得前述第一部分数据;根据解密后的第一部分数据和前述第二部分数据获得前述第一数据。
第二方面,本申请实施例还提供了一种数据存储的方法,前述装置包括:接收模块,用于接收第一数据,前述第一数据是待存储的数据。加解密模块,对第一数据中的第一部分数据进行加密;写入模块,用于将加密的第一部分数据写入非易失性内存中,以及将前述第一数据的第二部分数据写入硬盘或磁盘中。
一种可能的设计方式,前述加解密模块还用于:在可信执行环境TEE中,对前述第一数据中的第一部分数据进行加密。
一种可能的设计方式,前述装置还包括:元数据管理模块,用于将前述第一部分数据的元数据和前述第二部分数据的元数据写入前述非易失性内存中,其中,前述第一部分数据的元数据中包括:前述第一部分数据进行加密和解密所需要的时长和前述第一部分数据的访问次数。
一种可能的设计方式,前述装置还包括:迁移模块,用于:当前述第一部分数据满足迁移条件时,将前述第一部分数据从前述非易失性内存中迁移到前述硬盘或磁盘中。
一种可能的设计方式,前述预设条件包括:前述第一部分数据进行加密和解密所需要的时间超过阈值,和/或,前述第一部分数据的访问频率小于阈值。
一种可能的设计方式,前述接收模块,还用于:接收读取请求,前述读取请求用于读取前述第一数据;读取模块,用于:从前述非易失性内存中读取前述加密后的前述第一部分数据,并从前述硬盘或磁盘中读取前述第二部分数据;前述加解密模块,用于:对加密后的前述第一部分数据进行解密,获得前述第一部分数据;前述读取模块,还用于:根据第一部分数据和第二部分数据获得前述第一数据。
第三方面,本申请实施例还提供了一种计算设备,所述计算设备包括处理器和存储器;所述存储器,用于存储计算机程序指令;所述处理器执行调用所述存储器中的计算机程序指令执行第一方面及其任一种可能的设计方式中的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质被计算设备执行时,所述计算设备执行第一方面及其任一种可能的设计方式中的方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请第一方面以及其任一种可能的实现方式中提供的方法。
附图说明
图1是本申请实施例提供的一种是本申请实施例提供一种集中式存储网络架构示例图;
图2是本申请实施例提供的一种分布式存储系统的系统架构示意图;
图3是本申请实施例提供的一种数据存储方法流程示意图;
图4是本申请实施例提供的一种硬件示意图;
图5是本申请实施例提供的一种数据存储装置500;
图6是本申请实施例提供的一种设备600的结构举例示意图;
具体实施方式
为了便于理解本申请实施例,首先,对本申请涉及的部分术语进行解释说明。
(1)可信执行环境(TEE,Trusted Execution Environment):通过对外部资源和内部资源的硬件隔离实现安全的执行环境。隔离的具体实现包括中断隔离、RAM的隔离和外设的隔离、芯片内部RAM和ROM的隔离等。通过这种隔离将一个CPU物理核分成安全状态和非安全状态,当物理核处于非安全状态时只能访问非安全的外设和内存;当物理核处于安全状态时,可以访问安全资源也可以访问非安全资源。具体的,数据仅在隔离的安全区“飞地”(Enclave)内才进行解密并计算,除此之外任何其他方法都无法接触到数据明文内容,数据在离开“飞地”(Enclave)之前又会被自动加密。各类CPU供应商都推出了他们的TEE方案,例如ARM TrustZone、Intel SGX和AMD SEV等等,以创建一个安全的执行环境。
(2)加密算法(Encryption Alogrithm):网络安全通信中要用到两类加密算法,加密一般分为对称加密(Symmetric Key Encryption)和非对称加密(Asymmetric KeyEncryption)。对称密码算法有时又叫单密钥算法,非对称密码算法也叫公开密钥密码算法或双密钥算法。常见的对称加密算法有:DES、3DES、AES、3DEA等,常见的非对称加密算法:RSA、ECC、DSA 等。对称密码算法的加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密,只要通信需要保密,密钥就必须保密。
在存储领域,各类业务场景中产生了大量数据,存储厂商为控制存储成本,会对访问频率低的冷数据进行重删压缩后存储,为了保障数据安全,存储厂商还会采用加密算法对数据进加密后存储,但海量数据加密和解密时间开销很大,严重降低了数据的读写效率,且该过程中的密钥保存也存在安全风险。
鉴于前述问题,本申请实施例提出了一种适用于海量数据存储场景的加密存储方案,该方案利用不同存储介质的特征对数据进行存储,能够在确保大容量的前提下加速读写效率,将数据分为加密部分和非加密部分,并基于TEE硬件保护技术对选取部分的数据TEE中加密,同时将密钥的安全保存在TEE中。
下面分别从系统架构(图1-图2)、方法实现(图3-图4)、软件装置(图5)和硬件装置(图6)等多个角度,对本申请提供的技术方案进行介绍。下面先对本申请实施例的系统架构进行举例说明。
需要说明的是,本发明实施例描述的系统架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
图1是本申请实施例提供一种集中式存储网络架构示例图,该存储网络架构中包括应用服务器100、交换机110和存储系统120(或存储节点),本申请提供的方法可以应用于如图 1所示的存储网络架构中。
应用服务器100可以是物理机,也可以是虚拟机。物理机包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。在图1所示的应用场景中,用户通过应用服务器100上运行的应用程序来存取数据。
交换机110是一个可选设备,应用服务器100可以通过光纤交换机110访问存储系统120 以存取数据。应用服务器100也可以直接通过网络与存储系统120通信。此外,光纤交换机 110也可以替换成以太网交换机、InfiniBand交换机、RoCE(RDMA over ConvergedEthernet) 交换机等。
存储系统120包括引擎121和一个或多个硬盘134,引擎121是集中式存储系统中最为核心的部件,许多存储系统的高级功能都在其中实现。
图1中所示的存储系统120是盘控分离的存储系统,即引擎121和硬盘134是部署在两台设备上。图1中的系统120中还具备硬盘框130,硬盘框130包括控制单元131、若干个硬盘134和网卡(图中未示出)。
引擎121中包括一个或多个控制器,以图1中的两个控制器122为例,这两个控制器之间具有镜像通道,使得两个控制器122可以互为备份,从而避免硬件故障导致整个存储系统 120不可用。引擎121还包含前端接口125和后端接口126,其中前端接口125用于与应用服务器100通信,从而为应用服务器100提供存储服务。而后端接口126用于与硬盘134通信,以扩充存储系统的容量。
控制器122中至少包括处理器123、非易失性内存124、内存127。处理器123是一个中央处理器(central processing unit,CPU),用于处理来自存储系统外部(服务器或者其他存储系统)的数据访问请求,也用于处理存储系统内部生成的请求。
非易失性内存124(Non-Volatile Memory,NVM),指掉电不会丢失数据的内部存储器。例如,该非易失性内存124可以是存储级内存(Storage Class Memory,SCM),SCM又称为持久型存储器(persistent memory,PMem/PM),是一种结合传统储存装置与存储器特性的复合型储存技术。SCM同时具备了持久化和快速字节级访问的特点,SCM能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。狭义的理解中,SCM可以指的采用内存DIMM(Dual Inline Memory Module,双列直插内存模块)接口的、可字节寻址的NVM(Non-Volatile Memory,非易失性存储器)设备。具体的,SCM可以包括相变存储器(Phase-change memory,PCM)、电阻式随机存储存取非易失性存储器(Resistive RandomAccess Memory,ReRAM)、非易失性磁性随机存储器(Magnetic Random AccessMemory,MRAM) 或碳纳米管随机存储器(Montero’sCNT Random Access Memory,NRAM)等其他任何同时具备快速字节级寻址和持久化特性的存储芯片。
在本申请实施例的场景中,非易失性内存124可以用于存储持久化数据,例如安全存储场景下的加密数据,相对于存储在硬盘134中的数据,存储在非易失性内存124中的数据可以向CPU提供更高的读写速度。
除了前述的非易失性内存124之外,存储系统120中还可以包括其他类型的内存127,用于与处理器直接交换数据。例如,内存127可以是随机存取存储器(Random AccessMemory, RAM)、只读存储器(read only memory,ROM)。例如,随机存取存储器是动态随机存取存储器(dynamic random access memory,DRAM)和静态随机存取存储器(static randomaccess memory,SRAM)等。
处理器123可以运行内存中的软件程序来实现对硬盘的管理。例如,将硬盘抽象化为存储资源池,然后划分为LUN提供给文件文件服务器使用等,这里的LUN其实就是在应用服务器上看到的硬盘。一些集中式存储系统本身也是文件服务器,可以为应用服务器提供共享文件服务。
硬盘134用于提供存储资源,按照引擎121与硬盘134之间通信协议的类型,硬盘134 可能是串行连接SCSI(Serial AttachedSCSI,SAS)硬盘、非易失性存储器标准(Non-Volatile Memory Express,NVMe)硬盘、外围设备高速连接标准(Peripheral ComponentInterconnect express,PCIe)硬盘、串行ATA(SerialAdvanced Technology Attachment,SATA)硬盘以及其他类型的硬盘框。在本申请实施例中,硬盘134可以是机械硬盘(harddisk drive,HDD) 或固态硬盘(solid state drive,SSD)。硬盘134还可以是磁盘或者其他类型的存储介质来替代,例如叠瓦式磁记录硬盘(Shingled magneticrecording,SMR)等。
控制单元131可具有多种形态,在一种实施方式中,硬盘框130可以是智能盘框,硬盘 130中包括控制单元131,控制单元131包括CPU和内存。该CPU用于执行地址转换以及读写数据等操作。网卡用于与其他服务器110通信。在另一种实施方式中,控制单元131的功能可以卸载到网卡上。换言之,在该种实施方式中,硬盘框130内部可以不具有控制单元131,而是由网卡来完成数据读写、地址转换以及其他计算功能。此时,该网卡是一个智能网卡。
可选的,图1中所示的存储系统120还可以是盘控一体的存储系统,引擎121具有硬盘槽位,硬盘134可直接部署在引擎121中,即硬盘134和引擎121部署于同一台设备。
本申请实施例提供的数据存储方法除了适用于集中式存储系统,也同样适用于分布式存储系统。图2是本申请实施例提供的一种分布式存储系统的系统架构示意图,分布式存储系统包括服务器集群。服务器集群包括一个或多个服务器140(图2中示出了三个服务器140,但不限于两个服务器140),各个服务器140之间可以相互通信。
服务器140是一种既具有计算能力又具有存储能力的设备,如服务器、台式计算机等。在软件上,每台服务器140上具有操作系统。在服务器140上可以创建虚拟机107,虚拟机107所需的计算资源来源于服务器140本地的处理器123、内存127,而虚拟机107所需的存储资源既可以来源于服务器140本地的硬盘134,也可以来自其他服务器140中的硬盘134。此外,虚拟机107中可运行各种应用程序,用户可通过虚拟机107中的应用程序触发读/写数据请求。
服务器140可以执行本申请实施例提供的数据存储方法,在硬件上,如图2所示,服务器140至少包括处理器123、内存124、网卡104和硬盘134。处理器123、内存124、网卡 104和硬盘134之间通过总线连接,网卡104用于与其他应用服务器110通信。关于处理器 123、非易失性内存124、内存127和硬盘134作用和具体类型可以参见图1中的相关说明,此处不再赘述。
需要说明的是,图2仅作为分布式存储系统的一种示例图,是一种全融合架构的举例。实际中的分布式存储的系统架构还有其他可能实施方式,例如存算一体、存算分离等其他实施方式,本申请实施例不对此做出限制。
下面对本申请实施例提供的一种数据存储方法的实现过程进行说明。示例性的,该方法可应用于图1-图2的存储系统中,图3给出了该数据存储方法流程图的示例,实现过程可以包括以下步骤:
步骤210、接收待存储的第一数据。
处理器123接收到第一数据,该第一数据可以是从应用接收到的数据。例如,在图1的集中式系统中,存储系统120中的控制器122接收来自存储系统外部(应用服务器100或者其他存储系统)的发来的写入请求,该写入请求携带待存储的第一数据。可选的,处理器在对第一数据进行加密存储前,还可以先对第一数据进行重删和压缩。
可选的,将第一数据进行切分,生成第一部分数据和第二部分数据。
一种可能的实施方式,根据不同TEE机制的特性,从前述第一数据中,确定需加密部分数据(第一部分数据)的大小,并作数据切分,分成需要加密的第一部分数据和不需要加密的第二部分数据。
由于主流加密算法随着数据量增加,耗时明显增加。再者,SGX、TrustZone和SEV只支持有限内存大小的数据保护,数据量超过该大小后,数据读写IO性能会急剧下降。因此,我们需要根据TEE数据操作耗时情况和加密算法的性能,灵活选取加密部分的数据大小,具体的:
a)SGX可保护区域仅支持最大128MB,数据量超过128MB,数据读写IO耗时增加,时间开销巨大,不适用于大数据量保护。根据现有的测试结果,SGX在保护区域大小小于64MB时,其数据读写延迟最小。作为示例,我们可以选择4KB~64MB的数据在SGX中进行加密,也就是步骤2中将第一数据切分为4KB~64MB大小的第一部分数据,以及剩下的第二部分数据。
b)TrustZone、SEV提供全内存保护功能,超过内存大小的数据就无法提供保护,且没有数据持久化设计。换句话说,我们根据内存的大小对第一数据进行切分,示例的,这里的内存可以是图1-图2中的非易失性内存124。假设内存124的大小为256MB,那么本步骤中将第一数据切分为128MB大小的第一部分数据,以及剩下的第二部分数据。
步骤220、基于TEE技术对第一部分数据进行加密,并将加密后的第一部分数据和相应密钥写入非易失性内存中。
图4是本申请实施例提供的一种硬件示意图,通过结合硬件结构进一步介绍了图3中的方法。如图4所示,示例的,处理器123中的TEE中可以包括两个隔离的安全区Enclave1和 Enclave2,Enclave1用于执行数据的加密和解密,Enclave2用于执行对密钥的管理。
具体的,处理器123将需要加密的数据(即前述第一部分数据)传入TEE中,并进行数据加密和解密的计算。一种可能的实施方式,处理器123在Enclave1中完成对第一部分数据的加密。例如,处理123可以采用加密算法(例如AES、3DEA、DES)对第一部分数据进行加密,并将生成的密钥存储在非易失性内存124中。为了保证安全性,现有CPU卡通常采用3DES算法加密,采用的密码长度为128位。同时,处理器123还会生成对应的第一部分数据的元数据,其管理方法和数据结构区别于非加密数据的元数据
一种可能的实施方式,处理器123在另一个隔离的安全区Enclave2中实现对密钥的管理功能,主要功能是提供各种密钥的生成机制和加密算法,并将生成的密钥存储在非易失性内存124中。可选的,密钥的管理和加解密的计算过程也可以由同一个Enclave完成。
处理器123在加密的过程中,会记录数据整体加密过程耗时,后续存入对应元数据中。同样,在解密的过程中,会记录数据整体加密过程耗时,后续存入对应元数据中。可选的。元数据还会记录加密数据的访问次数。
一种可能的实施方式,将元数据存储在非易失性内存124中,这里的元数据可以包括加密数据(加密的第一部分数据)的元数据,也可以包括非加密数据(第二部分数据)的元数据。
可选地,由于第一部分数据存储在NVM中,可以采用具有特定一致性策略的元数据管理策略,确保存在NVM和SSD里数据的一致性。例如,shadow paging及其优化策略确保数据的高速读写与一致性。
步骤230、将第二部分数据写入硬盘或磁盘中。
处理器123将不需要解密的第二部分数据写入硬盘134中。同时,处理器123还会生成对应的第二部分数据的元数据。
可选地,由于第二部分数据存储在硬盘134(例如SSD)中,可以采用适用于块设备的元管理结构。例如,log-structured是一种确保数据一致性的方法,其顺序追加写的特性适用于块设备(可提升读写速度)。
一种可能的实施方式,加密的数据(第一部分数据)和未加密数据(第二部分数据)分别建立各自的元数据管理结构分别管理。分开是指有各自的元数据索引(比如NVM里的数据就用hash索引,SSD里的数据就用树索引),然后基于各自的索引结构建立适合的元数据管理机制。
步骤240、当第一部分数据满足迁移条件时,将所述加密的第一部分数据从所述非易失性内存中迁移到所述硬盘或磁盘中。
一种可能的实施方式,若NVM介质容量达到某一限度,会触发数据迁移,根据迁移策略 (根据数据加解密时间、访问次数等)识别出部分数据,随后选中的数据会被迁移到下层大容量介质中。例如,处理器123读取第一部分数据的元数据,根据加解密耗时以及访问次数, 判断加密数据(第一部分数据)是否迁移到下层大容量介质(SSD/HDD/磁盘)。
当第一部分数据进行加密和解密所需要的时间超过阈值,和/或,第一部分数据的访问频率小于阈值时,确定第一部分数据需要迁移,减少对NVM资源的占用。判断为需要迁移时,则将加密数据从NVM中迁移到SSD中。
本申请实施例提出的方案,将待存储的数据被分成2部分,只选取少部分数据加密,同时,对加密数据和非加密数据并行处理。相比对整个数据加密,这样可大大减少加密时长,加密数据量小传输耗时小,非加密数据量大传输耗时长,并行操作可一定程度上抵消加解密操作的耗时,使得数据可以快速读取基本感知不到对数据的加解密操作。
此外,考虑不同存储介质的物理特性,设计了混合元数据管理策略,即加密的数据(第一部分数据)和未加密数据(第二部分数据)分别建立各自的元数据管理结构分别管理。本申请实施例的方案在满足高并发的同时,还可以适应不同介质特性,最大化了数据传输性能。
基于图2-图3的数据存储方法,本申请实施例还给出了相应数据读取和数据删除的方法举例,此处仅作简单介绍,相似内容不做赘述。
(1)数据读取
例如,当处理器123接收到读数据请求时,根据数据中携带的标记,假设该标记指向第一数据。处理器123从NVM(即124)中读取第一数据的加密部分和非加密部分的元数据。若两类元数据都不存在,则对上返回空;若两类元数据,一个存在另一个不存在,则进入故障处理流程。若两类元数据都存在,从NVM中读取加密数据的第一部分数据到TEE 中,并从SSD中读取未加密的第二部分数据。在图2中的TEE中解密第一部分数据(例如在Enclave1中)得到第一数据,最后,合并第二部分数据和解密后的第一部分数据,得到完整第一数据后,将其返回上层。
(2)数据删除
例如,当处理器123接收到删除数据请求时,根据数据中携带的标记,从NVM中读取数据加密部分和非加密部分的元数据。若两类元数据都不存在,则对上返回空。若两类元数据,一个存在另一个不存在,则进入故障处理流程;若两类元数据都存在,删除加密数据和未加密数据,同时,删除加密数据的元数据和未加密数据的元数据。若删除都执行成功,则对上返回成功。
基于与方法实施例同一发明构思,本申请实施例还提供了一种数据存储装置。
图5是本申请提供的一种数据存储装置500,该装置可以部署于图1或图2中的存储系统120上或服务器140上。如图2所示,示例的,该数据存储装置可以包括:
接收模块,用于接收第一数据,所述第一数据是待存储的数据。该第一数据可以是从应用接收到的数据。例如,在图1的集中式系统中,存储系统120中的控制器122接收来自存储系统外部(应用服务器100或者其他存储系统)的发来的写入请求,该写入请求携带待存储的第一数据。可选的,该接收模块用于:接收读取请求,所述读取请求用于读取所述第一数据。
可选的,切分模块(图5中未示出),用于对第一数据进行切分,生成第一部分数据和第二部分数据。具体的,在可信执行环境中,对所述第一部分数据进行加密。一种可能的实施方式,根据不同TEE机制的特性,从前述第一数据中,确定需加密部分数据(第一部分数据) 的大小,并作数据切分,分成需要加密的第一部分数据和不需要加密的第二部分数据。具体内容请参照图2-图3的内容和文字介绍,此处不再赘述。
加解密模块,对所述第一部分数据进行加密;具体的,处理器123将需要加密的数据(即前述第一部分数据)传入TEE中,并进行数据加密和解密的计算。相关内容请参照前文,此处不再赘述。可选的,在后续接收到读取请求时,该加解密解密模块还可以对所述第一部分数据进行解密。
写入模块,用于将加密的第一部分数据写入非易失性内存中,以及将所述第二部分数据写入硬盘或磁盘中。
元数据管理模块,用于将所述第一部分数据的元数据和所述第二部分数据的元数据写入所述非易失性内存中。可选的,所述第一部分数据的元数据中包括:第一部分数据进行加密和解密所需要的时长和第一部分数据的访问次数;所述预设条件包括:所述第一部分数据进行加密和解密所需要的时间超过阈值,和/或,第一部分数据的访问频率小于阈值。该模块在加密的过程中,会记录数据整体加密过程耗时,后续存入对应元数据中。同样,在解密的过程中,会记录数据整体加密过程耗时,后续存入对应元数据中。可选的,元数据还会记录加密数据的访问次数。一种可能的实施方式,该模块将元数据存储在非易失性内存124中,这里的元数据可以包括加密数据(加密的第一部分数据)的元数据,也可以包括非加密数据(第二部分数据)的元数据。相关内容请参照前文,此处不再赘述。
迁移模块,用于当所述第一部分数据满足迁移条件时,将所述加密的第一部分数据从所述非易失性内存中迁移到所述硬盘或磁盘中。一种可能的实施方式,若NVM介质容量达到某一限度,会触发数据迁移,根据迁移策略(根据数据加解密时间、访问次数等)识别出部分数据,随后选中的数据会被迁移到下层大容量介质中。例如,处理器123读取第一部分数据的元数据,根据加解密耗时以及访问次数,判断加密数据(第一部分数据)是否迁移到下层大容量介质(SSD/HDD/磁盘)。
读取模块,用于:根据所述第一数据的元数据,从所述非易失性内存,和从所述硬盘或磁盘中分别读取所述第一部分数据和所述第二部分数据,其中,所述第一数据的元数据包括:所述第一部分数据的元数据和所述第二部分数据的元数据;可选的,该模块还用于:根据解密后得到的第一部分数据和第二部分数据得到第一数据并返回。
图6是本申请实施例提供了一种设备600的结构举例示意图,可以用于实现图3-图4中提出的方法。该设备600可以是服务器140、存储系统120或其任何计算设备。图中的计算设备600包括总线601、处理器602、存储器603和接口604。处理器602、存储器603之间通过总线601通信。
总线601用以连接处理器602、存储器603和接口604以及其他可能的组件,可以包括地址总线、数据总线、控制总线、扩展总线、局部总线中的一种或多种。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。总线601应用外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等标准。
处理器602可以为中央处理器(Central Processing Unit,CPU)或其他类型处理器芯片,处理器602可以执行本申请实施例中数据存储的方法。存储器603可以包括随机存取存储器 (random access memory,RAM)、只读存储器(read-only memory,ROM)、快闪存储器(flash EPROM)、机械硬盘(hard disk drive,HDD)或固态硬盘(solid state drive,SSD)等任何可以用来存储并保存信息的其他存储器、存储设备、存储介质中的一种或多种。存储器603 中存储有可执行的程序代码,该可执行的程序代码可通过处理器602执行以实现本申请实施例图3-图4中存储数据的方法。
接口604可以为网络接口卡(Networking Interface Card,NIC)或其他类型的收发机设备、主机总线适配器(Host Bus Adaptor,HBA)等,用于和其他设备进行通信。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solidstatedrive,SSD)。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种数据存储的方法,其特征在于,所述方法包括:
接收待存储的第一数据;
对所述待存储的第一数据中的第一部分数据进行加密,将加密后的所述第一部分数据写入非易失性内存中;
将所述待存储的第一数据的第二部分数据写入硬盘或磁盘中。
2.根据权利要求1所述的方法,其特征在于,对所述待存储的第一数据中的第一部分数据进行加密,具体包括:
在可信执行环境TEE中,对所述第一数据中的第一部分数据进行加密。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
将所述第一部分数据的元数据和所述第二部分数据的元数据写入所述非易失性内存中,其中,所述第一部分数据的元数据中包括:第一部分数据进行加密和解密所需要的时长和第一部分数据的访问次数。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:
当所述第一部分数据满足迁移条件时,将所述第一部分数据从所述非易失性内存中迁移到所述硬盘或磁盘中。
5.根据权利要求4所述的方法,其特征在于,所述预设条件包括:所述第一部分数据进行加密和解密所需要的时间超过阈值,和/或,所述第一部分数据的访问频率小于阈值。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收读取请求,所述读取请求用于读取所述第一数据;
从所述非易失性内存中读取所述加密后的第一部分数据,并从所述硬盘或磁盘中读取所述第二部分数据;
对所述加密后的所述第一部分数据进行解密,获得所述第一部分数据;
根据所述第一部分数据和所述第二部分数据获得所述第一数据。
7.一种数据存储的装置,其特征在于,所述装置包括:
接收模块,用于接收第一数据,所述第一数据是待存储的数据。
加解密模块,对第一数据中的第一部分数据进行加密;
写入模块,用于将加密的第一部分数据写入非易失性内存中,以及将所述第一数据的第二部分数据写入硬盘或磁盘中。
8.根据权利要求8所述的装置,其特征在于,所述加解密模块还用于:
在可信执行环境TEE中,对所述第一数据中的第一部分数据进行加密。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
元数据管理模块,用于将所述第一部分数据的元数据和所述第二部分数据的元数据写入所述非易失性内存中,其中,所述第一部分数据的元数据中包括:所述第一部分数据进行加密和解密所需要的时长和所述第一部分数据的访问次数。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述装置还包括:
迁移模块,用于:当所述第一部分数据满足迁移条件时,将所述第一部分数据从所述非易失性内存中迁移到所述硬盘或磁盘中。。
11.根据权利要求10任一项所述的装置,其特征在于,所述预设条件包括:所述第一部分数据进行加密和解密所需要的时间超过阈值,和/或,所述第一部分数据的访问频率小于阈值。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述装置还包括:
所述接收模块,还用于:接收读取请求,所述读取请求用于读取所述第一数据;
读取模块,用于:从所述非易失性内存中读取所述加密后的所述第一部分数据,并从所述硬盘或磁盘中读取所述第二部分数据;
所述加解密模块,还用于:对加密后的所述第一部分数据进行解密,获得所述第一部分数据;
所述读取模块,还用于:根据所述第一部分数据和所述第二部分数据获得所述第一数据。
13.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;
所述存储器,用于存储计算机程序指令;
所述处理器执行调用所述存储器中的计算机程序指令执行如权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被计算设备执行时,所述计算设备执行上述权利要求1至6中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111092612.4A CN115828272A (zh) | 2021-09-17 | 2021-09-17 | 一种数据存储方法装置、设备及可读介质 |
PCT/CN2022/118404 WO2023040821A1 (zh) | 2021-09-17 | 2022-09-13 | 一种数据存储方法、装置、设备及可读介质 |
EP22869190.3A EP4350557A4 (en) | 2021-09-17 | 2022-09-13 | DATA STORAGE METHOD AND DEVICE, DEVICE AND READABLE STORAGE MEDIUM |
US18/596,154 US20240211612A1 (en) | 2021-09-17 | 2024-03-05 | Data Storage Method and Apparatus, Device, and Readable Medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111092612.4A CN115828272A (zh) | 2021-09-17 | 2021-09-17 | 一种数据存储方法装置、设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115828272A true CN115828272A (zh) | 2023-03-21 |
Family
ID=85515252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111092612.4A Pending CN115828272A (zh) | 2021-09-17 | 2021-09-17 | 一种数据存储方法装置、设备及可读介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240211612A1 (zh) |
EP (1) | EP4350557A4 (zh) |
CN (1) | CN115828272A (zh) |
WO (1) | WO2023040821A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1359758A1 (en) * | 2002-04-12 | 2003-11-05 | Hewlett Packard Company, a Delaware Corporation | Efficient encryption of image data |
EP1678566A1 (en) * | 2003-10-31 | 2006-07-12 | Telefonaktiebolaget LM Ericsson (publ) | Method and devices for the control of the usage of content |
CN101577143A (zh) * | 2009-06-19 | 2009-11-11 | 华为技术有限公司 | 文件存储方法、装置及系统 |
CN104615785A (zh) * | 2015-03-04 | 2015-05-13 | 浪潮集团有限公司 | 一种基于TYKY cNosql数据库的数据存储方法及装置 |
JP6478800B2 (ja) * | 2015-05-18 | 2019-03-06 | 三菱電機株式会社 | デジタルコンテンツ編集装置、デジタルコンテンツ再生装置、デジタルコンテンツ復号装置、デジタルコンテンツ暗号化復号システムおよびデジタルコンテンツ暗号化復号方法 |
CN106658034A (zh) * | 2016-12-05 | 2017-05-10 | 乐视控股(北京)有限公司 | 文件存储和读取的方法及装置 |
CN107330337B (zh) * | 2017-07-19 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 混合云的数据存储方法、装置、相关设备及云系统 |
CN110022558B (zh) * | 2019-04-03 | 2023-01-31 | Oppo广东移动通信有限公司 | 一种升级包的加密、解密方法和电子装置及存储介质 |
US11379447B2 (en) * | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
-
2021
- 2021-09-17 CN CN202111092612.4A patent/CN115828272A/zh active Pending
-
2022
- 2022-09-13 EP EP22869190.3A patent/EP4350557A4/en active Pending
- 2022-09-13 WO PCT/CN2022/118404 patent/WO2023040821A1/zh active Application Filing
-
2024
- 2024-03-05 US US18/596,154 patent/US20240211612A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023040821A1 (zh) | 2023-03-23 |
EP4350557A4 (en) | 2024-10-16 |
EP4350557A1 (en) | 2024-04-10 |
US20240211612A1 (en) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220214967A1 (en) | Management of Storage Resources Allocated from Non-volatile Memory Devices to Users | |
US11789614B2 (en) | Performance allocation among users for accessing non-volatile memory devices | |
US8578178B2 (en) | Storage system and its management method | |
WO2017190084A1 (en) | Offloading storage encryption operations | |
US11210430B2 (en) | System and method to negotiate encryption responsibilities between an encryption capable controller and a self encrypting drive | |
WO2019148841A1 (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
US11468201B2 (en) | System and method for slice virtual disk encryption | |
US11636223B2 (en) | Data encryption for directly connected host | |
US11782634B2 (en) | Dynamic use of non-volatile ram as memory and storage on a storage system | |
CN117112219A (zh) | 主机内存数据访问的方法和装置 | |
WO2023273803A1 (zh) | 一种认证方法、装置和存储系统 | |
CN115828272A (zh) | 一种数据存储方法装置、设备及可读介质 | |
EP4095667A1 (en) | Data management apparatus, data management method, and data storage device | |
US9058295B2 (en) | Encrypt data of storage device | |
KR102484065B1 (ko) | 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템 | |
WO2024051252A1 (zh) | 数据处理方法及装置 | |
EP4354331A1 (en) | Systems, methods, and apparatus for protection for device data transfers | |
EP4354306A1 (en) | Systems, methods, and apparatus for namespace identification for devices | |
KR20230056920A (ko) | 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법 | |
KR20230063170A (ko) | 스토리지 컨트롤러를 포함하는 스토리지 장치 및 이의 동작 방법 | |
KR20230071023A (ko) | 스토리지 장치 및 이의 동작 방법 | |
KR20240082056A (ko) | 어플리케이션 단위로 어플리케이션과 스토리지 장치간 안전한 저장공간을 제공하기 위한 스토리지 장치, 스토리지 장치 동작 방법 및 시스템 | |
CN114661239A (zh) | 一种基于nvme硬盘的数据交互系统及方法 | |
CN115098876A (zh) | 主控芯片、固态硬盘及其密钥管理方法、计算机存储介质 |
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 |