CN110955525B - 一种基于fpga设备的网络定义存储方法、读取方法及系统 - Google Patents
一种基于fpga设备的网络定义存储方法、读取方法及系统 Download PDFInfo
- Publication number
- CN110955525B CN110955525B CN201911239370.XA CN201911239370A CN110955525B CN 110955525 B CN110955525 B CN 110955525B CN 201911239370 A CN201911239370 A CN 201911239370A CN 110955525 B CN110955525 B CN 110955525B
- Authority
- CN
- China
- Prior art keywords
- user
- fpga
- data
- storage register
- key
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及网络定义存储技术领域,具体涉及一种基于FPGA设备的网络定义存储方法、读取方法及相应的网络定义存储系统。本发明的技术方案采用多密钥、多进程、多用户、多数据的工作机制,针对每个用户的每个数据都设置独立唯一的密钥,同时采用先进的多进程业务逻辑,实现多用户、多数据的并行操作,极大地提高了整个网络定义存储系统的效率。
Description
技术领域
本发明涉及网络定义存储技术领域,具体涉及一种基于FPGA设备的网络定义存储方法、读取方法及相应的网络定义存储系统。
背景技术
网络定义存储是一种在线存储技术,以高安全高可靠著称。
用户服务器将原始数据按一定长度拆分成若干子数据后,按顺序交由本服务器上部署的FPGA进行加密、加扰和冗余处理,然后通过网络将FPGA处理过的多个子数据块分别上传到多个网络存储服务器中。用户需要读取原始数据时,采用相反的方向,先从各个网络存储服务器下载子数据块到用户服务器,再按顺序经用户服务器上部署的FPGA进行去冗余、去扰、解密,最后重新拼装成原始数据返还给用户。由于采用冗余技术,可以确保在部分网络存储服务器出现异常无法下载的情况下,从其他正常的网络存储服务器下载的子数据块也能还原出完整的原始数据。
但是,现有的网络定义存储方法及系统中,所有用户的所有数据共用同一个密钥,有很大的安全隐患;并且无论进行加密、加扰和冗余处理,还是进行去冗余、去扰和解密处理,对子数据的处理先后顺序有严格的要求,工作效率低。并且现有的网络定义存储方法及系统不支持多数据并行处理,更不支持多用户并行操作数据。因此系统整体运行效率很低,对用户服务器的CPU、内存以及FPGA的性能是个极大地浪费。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种基于FPGA设备的网络定义存储方法、读取方法,以及一种基于FPGA设备的网络定义存储系统。
本发明的技术方案采用多密钥、多进程、多用户、多数据的工作机制,针对每个用户的每个数据都设置独立唯一的密钥,同时采用先进的多进程业务逻辑,实现多用户、多数据的并行操作,极大地提高了整个网络定义存储系统的效率。
本发明的技术方案采用每个用户分配一个用户进程、每个用户的每个数据存储/读取操作分配一个用户子进程的方式,再结合每个用户的每个数据分配唯一的不重复的密钥以及多个FPGA密钥存储寄存器和多个FPGA数据存储寄存器,很高效地实现了多用户多数据操作请求并发处理。
为了实现上述目的,本发明提出了一种基于FPGA设备的网络定义存储方法,包括以下步骤:
步骤S101、用户服务器为每个用户创建用户主进程,并为每个用户的每个待存储数据创建用户子进程;
步骤S102、每个所述用户子进程向对应的用户主进程申请唯一密钥,所述用户主进程将所述每个待存储数据拆分为若干子数据;
步骤S103、每个所述用户子进程向对应的用户主进程申请空闲的FPGA密钥存储寄存器,并将所述用户子进程的唯一密钥写入该FPGA密钥存储寄存器;
步骤S104、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将对应的所述子数据、密钥的保存位置和处理逻辑信息写入对应的FPGA数据存储寄存器;
步骤S105、当所述用户子进程完成FPGA数据存储寄存器的写入操作后,立即用阻塞方式读取FPGA数据存储寄存器;FPGA根据从FPGA数据存储寄存器中读出的子数据、密钥的保存位置和处理逻辑信息,取出所述待存储数据所对应的唯一密钥和子数据,并根据处理逻辑信息对所述子数据进行逻辑处理,输出N个子子数据,其中,N为正整数;将所述N个子子数据写入FPGA数据存储寄存器;
步骤S106、把所述N个子子数据分别上传到N个网络存储服务器,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S107、结束所述用户子进程和用户主进程。
优选的,所述的处理逻辑包括加密、加扰和加冗余。
优选的,所述的N个为至少3个。
优选的,所述用户主进程、用户子进程的调度、以及所述FPGA密钥存储寄存器和所述FPGA数据存储寄存器的申请和释放,都由所述用户服务器统一调度。
本发明还提出了一种基于FPGA设备的网络定义读取方法,包括以下步骤:
步骤S201、用户服务器为每个用户创建用户主进程,并为每个用户的每个待读取数据创建用户子进程;
步骤S202、每个所述用户子进程从用户服务器中读出每个待读取数据所对应的唯一密钥和该数据对应的N个子子数据在网络存储服务器上的存储位置信息,所述用户子进程根据所述存储位置信息,下载该存储位置上的N个子子数据;
步骤S203、每个所述用户子进程向对应的用户主进程申请空闲的PFGA密钥存储寄存器,并将步骤S202中所述待读取数据所对应的唯一密钥写入该FPGA密钥存储寄存器;
步骤S204、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将步骤S202中下载的N个子子数据、密钥存储位置和处理逻辑信息写入该FPGA数据存储寄存器;
步骤S205、当所述用户子进程完成该FPGA数据存储寄存器的写入操作后,立即用阻塞方式读FPGA数据存储寄存器;FPGA根据待读取数据所对应的唯一密钥在FPGA密钥存储寄存器中的位置以及处理逻辑信息,取出待读取数据所对应的唯一密钥以及子子数据,按照所述处理逻辑信息对子子数据进行逻辑处理,输出子数据,并把所述子数据写入FPGA数据存储寄存器;
步骤S206、所述用户子进程通过阻塞方式读出步骤S205的FPGA数据存储寄存器中的子数据,并把该子数据返还给用户,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S207、结束所述用户子进程和用户主进程。
优选的,所述的处理逻辑包括去冗余、去扰和解密。
优选的,所述的N个为至少3个。
优选的,所述用户主进程、用户子进程的调度、以及所述FPGA密钥存储寄存器和所述FPGA数据存储寄存器的申请和释放,都由所述用户服务器统一调度。
本发明还提出了一种基于FPGA设备的网络定义存储系统,包括:用户服务器和N个网络存储服务器,所述用户服务器配置有FPGA、CPU和内存,所述FPGA配置有寄存器,所述寄存器包括FPGA数据存储寄存器和FPGA密钥存储寄存器,所述FPGA数据存储寄存器用于读写待处理子数据,所述FPGA密钥存储寄存器用于读写密钥,所述用户服务器配置有CPU和内存,所述系统采用一种基于FPGA设备的网络定义存储方法。
本发明的技术方案和现有技术相比,其有益效果在于:
1、现有技术所有用户的所有数据共用同一个密钥,有很大的安全隐患;而在本发明的技术方案中,每个用户的每个数据都使用唯一的不重复的密钥,安全性极高;
2、现有技术只定义了一个密钥存储寄存器区域和一个数据存储寄存器区域,每个待存储子数据或待读取子子数据必须等前一个子数据或子子数据被FPGA处理完毕并被读出后,才能写入FPGA的数据存储寄存器;而在本发明的技术方案中,定义了多个FPGA数据存储寄存器,由用户服务器主进程进行集中调度,极大地提高了用户服务器上用户进程与FPGA交换数据的效率;
3、本发明的技术方案采用每个用户分配一个用户主进程、每个用户的每个数据存储/读取操作分配一个用户子进程的方式,再结合每个用户的每个数据分配唯一的不重复的密钥以及多个FPGA密钥存储寄存器和多个FPGA数据存储寄存器,很高效地实现了多用户多数据操作请求并发处理。
附图说明
图1是本发明一种基于FPGA设备的网络定义存储方法步骤流程图。
图2为本发明一种基于FPGA设备的网络定义读取方法步骤流程图。
图3为本发明一种基于FPGA设备的网络定义存储方法基本步骤示意图。
图4为本发明一种基于FPGA设备的网络定义读取方法基本步骤示意图。
图5为具体实施方式一种基于FPGA设备的网络定义存储方法原理示意图。
图6为具体实施方式一种基于FPGA设备的网络定义读取方法原理示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
如附图1所示,一种基于FPGA设备的网络定义存储方法,包括以下步骤:
步骤S101、用户服务器为每个用户创建用户主进程,并为所述用户的每个待存储数据创建用户子进程;
步骤S102、每个所述用户子进程向对应的用户主进程申请唯一密钥,所述用户主进程将所述每个待存储数据拆分为若干子数据;
步骤S103、每个所述用户子进程向对应的用户主进程申请空闲的FPGA密钥存储寄存器,并将所述用户子进程的唯一密钥写入该FPGA密钥存储寄存器;
步骤S104、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将对应的所述子数据、密钥的保存位置和处理逻辑信息写入对应的FPGA数据存储寄存器;
步骤S105、当所述用户子进程完成FPGA数据存储寄存器的写入操作后,立即用阻塞方式读取FPGA数据存储寄存器;FPGA根据从FPGA数据存储寄存器中读出的子数据、密钥的保存位置和处理逻辑信息,取出所述待存储数据所对应的唯一密钥和子数据,并根据处理逻辑信息对所述子数据进行逻辑处理,输出N个子子数据,其中,N为正整数;将所述N个子子数据写入FPGA数据存储寄存器;
步骤S106、把所述N个子子数据分别上传到N个网络存储服务器,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S107、结束所述用户子进程和用户主进程。
实施例2
如附图2所示,一种基于FPGA设备的网络定义读取方法,包括以下步骤:
步骤S201、用户服务器为每个用户创建用户主进程,并为每个用户的每个待读取数据创建用户子进程;
步骤S202、每个所述用户子进程从用户服务器中读出每个待读取数据所对应的唯一密钥和该数据对应的N个子子数据在网络存储服务器上的存储位置信息,所述用户子进程根据所述存储位置信息,下载该存储位置上的N个子子数据;
步骤S203、每个所述用户子进程向对应的用户主进程申请空闲的PFGA密钥存储寄存器,并将步骤S202中所述待读取数据所对应的唯一密钥写入该FPGA密钥存储寄存器;
步骤S204、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将步骤S202中下载的N个子子数据、密钥存储位置和处理逻辑信息写入该FPGA数据存储寄存器;
步骤S205、当所述用户子进程完成该FPGA数据存储寄存器的写入操作后,立即用阻塞方式读FPGA数据存储寄存器;FPGA根据待读取数据所对应的唯一密钥在FPGA密钥存储寄存器中的位置以及处理逻辑信息,取出待读取数据所对应的唯一密钥以及子子数据,按照所述处理逻辑信息对子子数据进行逻辑处理,输出子数据,并把所述子数据写入FPGA数据存储寄存器;
步骤S206、所述用户子进程通过阻塞方式读出步骤S205的FPGA数据存储寄存器中的子数据,并把该子数据返还给用户,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S207、结束所述用户子进程和用户主进程。
实施例3
一种基于FPGA设备的网络定义存储方法基本步骤
如附图3所示,标号1、2、3与上述存储基本步骤中的第S101、S102、步对应,标号4与上述存储基本步骤中的第S103步对应,标号5与上述存储基本步骤中的第S104步对应,标号6与上述存储基本步骤中的第S105步对应,标号7与上述存储基本步骤中的第S105步对应,标号8与上述存储基本步骤中的第S106步对应, 标号9与上述存储基本步骤中的第S107步对应。
实施例4
一种基于FPGA设备的网络定义读取方法基本步骤
如附图4所示,标号1、2、3与上述读取基本步骤中的第S201、S202步对应,标号4与上述读取基本步骤中的第S203步对应,标号5与上述读取基本步骤中的第S204步对应,标号6与上述读取基本步骤中的第S204步对应,标号7与上述读取基本步骤中的第S205步对应,标号8与上述读取基本步骤中的第S206步对应, 标号9与上述读取基本步骤中的第S207步对应。
实施例5
一种基于FPGA设备的网络定义存储方法,如附图5所示。
假设条件:U1和U2两个用户同时访问用户服务器,两个用户同时存储多个文件,其中用户U1存储2个文件U1F1和U1F2,用户U2存储两个文件U2F1和U2F2。
步骤101:两个用户U1和U2同时访问用户服务器,用户服务器本业务主进程T为两个用户分别创建两个用户进程U1T和U2T。如附图5标号1;
步骤102:两个用户同时提交多个文件存储请求,文件分别为U1F1、U1F2、U2F1、U2F2,其中U1的存储请求到达U1的用户进程U1T,U1T为两个文件U1F1和U1F2的后续操作分别创建两个用户子进程U1F1T和U1F2T;U2的存储请求到达U2的用户进程U2T,U2T为两个文件U2F1和U2F2的后续操作分别创建两个用户子进程U2F1T和U2F2T,用户子进程创建好后,就各自独立接收对应用户提交的对应文件。如附图5标号2;
步骤103:用户子进程U1F1T为文件U1F1向本业务主进程T申请唯一密钥U1F1K并进行本地保存,同时将文件U1F1按约定大小拆分为子数据U1F1P1和U1F1P2;用户子进程U1F2T为文件U1F2向本业务主进程T申请唯一密钥U1F2K,同时将文件U1F2按约定大小拆分为子数据U1F2P1和U1F2P2;用户子进程U2F1T为文件U2F1向本业务主进程T申请唯一密钥U2F1K,同时将文件U2F1按约定大小拆分为子数据U2F1P1和U2F1P2;用户子进程U2F2T为文件U2F2向本业务主进程T申请唯一密钥U2F2K,同时将文件U2F2按约定大小拆分为子数据U2F2P1和U2F2P2。如附图5标号3;
步骤104:用户子进程U1F1T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR1,并将U1F1K写入KR1;用户子进程U1F2T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR2,并将U1F2K写入KR2;用户子进程U2F1T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR3,并将U2F1K写入KR3;用户子进程U2F2T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR4,并将U2F2K写入KR4。如附图5标号4;
步骤105:用户子进程U1F1T向本业务主进程T申请空闲的FPGA数据存储寄存器DR1和DR2,并将子数据U1F1P1和密钥U1F1K的保存位置KR1以及处理逻辑等信息一起写入DR1,子数据U1F1P2和密钥U1F1K的保存位置KR1以及处理逻辑等信息一起写入DR2;用户子进程U1F2T向本业务主进程T申请空闲的FPGA数据存储寄存器DR3和DR4,并将子数据U1F2P1和密钥U1F2K的保存位置KR2以及处理逻辑等信息一起写入DR3,子数据U1F2P2和密钥U1F2K的保存位置KR2以及处理逻辑等信息一起写入DR4;用户子进程U2F1T向本业务主进程T申请空闲的FPGA数据存储寄存器DR5和DR6,并将子数据U2F1P1和密钥U2F1K的保存位置KR3以及处理逻辑等信息一起写入DR5,子数据U2F1P2和密钥U2F1K的保存位置KR3以及处理逻辑等信息一起写入DR6;用户子进程U2F2T向本业务主进程T申请空闲的FPGA数据存储寄存器DR7和DR8,并将子数据U2F2P1和密钥U2F2K的保存位置KR4以及处理逻辑等信息一起写入DR7,子数据U2F2P2和密钥U2F2K的保存位置KR4以及处理逻辑等信息一起写入DR8。上述每一个用户子进程完成写DR的操作后,都会立即用阻塞方式读同一个DR。如附图5标号5;
步骤106:FPGA定时扫描,发现数据存储寄存器DR1中有待处理数据,按一定格式读出,并根据其中部分字段读出处理逻辑为加密、加扰、加冗余,并根据其中部分字段读出对应密钥保存在密钥存储寄存器KR1中,取出密钥U1F1K及子数据U1F1P1,按读出的处理逻辑进行加密、加扰、加冗余处理,处理输出的三块,其特征在于,输出的子子数据个数与所配置网络存储服务器的个数相同,为实现高可靠性,即使其中某几个网络存储服务器出现异常,利用冗余算法从其他网络存储服务器下载的子子数据也能还原出正确的子数据,最好大于等于3个网络存储服务器;子子数据U1F1P1M1、U1F1P1M2和U1F1P1M3按一定格式写入DR1;FPGA继续扫描,发现数据存储寄存器DR2中有待处理数据,和上述过程类似,将U1F1P2M1、U1F1P2M2、U1F1P2M3写入DR2;同样的,FPGA分别将U1F2P1M1、U1F2P1M2、U1F2P1M3写入DR3,将U1F2P2M1、U1F2P2M2、U1F2P2M3写入DR4,将U2F1P1M1、U2F1P1M2、U2F1P1M3写入DR5,将U2F1P2M1、U2F1P2M2、U2F1P2M3写入DR6,将U2F2P1M1、U2F2P1M2、U2F2P1M3写入DR7,将U2F2P2M1、U2F2P2M2、U2F2P2M3写入DR8。如附图5标号6;
步骤107:当上述FPGA将子子数据U1F1P1M1、U1F1P1M2和U1F1P1M3写入DR1后,处于读DR1阻塞状态的用户子进程U1F1T立即得到读返回,于是读出U1F1P1M1、U1F1P1M2和U1F1P1M3,并立即分别上传到三个云存储服务器S1、S2和S3。上传完毕后,通知本业务主进程T释放数据存储寄存器DR1,同时本地保存这三个子子数据在云存储服务器的保存位置;同样的,U1F1P2M1、U1F1P2M2、U1F1P2M3分别上传到S1、S2和S3,并释放DR2,此时文件U1F1存储完成,FPGA的密钥存储寄存器KR1也可以通知本业务主进程T释放了;U1F2P1M1、U1F2P1M2、U1F2P1M3分别上传到S1、S2和S3,并释放DR3;U1F2P2M1、U1F2P2M2、U1F2P2M3分别上传到S1、S2和S3,并释放DR4,此时文件U1F2存储完成,FPGA的密钥存储寄存器KR2也可以通知本业务主进程T释放了;U2F1P1M1、U2F1P1M2、U2F1P1M3分别上传到S1、S2和S3,并释放DR5;U2F1P2M1、U2F1P2M2、U2F1P2M3分别上传到S1、S2和S3,并释放DR6,此时文件U2F1存储完成,FPGA的密钥存储寄存器KR3也可以通知本业务主进程T释放了;U2F2P1M1、U2F2P1M2、U2F2P1M3分别上传到S1、S2和S3,并释放DR7;U2F2P2M1、U2F2P2M2、U2F2P2M3分别上传到S1、S2和S3,并释放DR8,此时文件U2F2存储完成,FPGA的密钥存储寄存器KR4也可以通知本业务主进程T释放了。如附图5标号7;
步骤108:U1F1已存储完毕,结束用户子进程U1F1T;U1F2已存储完毕,结束用户子进程U1F2T;U2F1已存储完毕,结束用户子进程U2F1T;U2F2已存储完毕,结束用户子进程U2F2T。如附图5标号8;
步骤109:用户U1断开与用户服务器的连接,结束用户进程U1T;用户U2断开与用户服务器的连接,结束用户进程U2T。如附图5标号9。
其中附图5中看到的表格表示用户服务器本地保存的数据,包括用户所提交保存的文件名,文件名对应的唯一密钥,文件被处理后上传到不同的网络存储服务器的存储位置等信息。
实施例6
一种基于FPGA设备的网络定义读取方法,如附图6所示。
假设条件:U1和U2两个用户同时访问用户服务器,两个用户同时读取多个文件,其中用户U1读取2个文件U1F1和U1F2,用户U2读取两个文件U2F1和U2F2。
步骤201:两个用户U1和U2同时访问用户服务器,用户服务器本业务主进程T为两个用户分别创建两个用户进程U1T和U2T。如附图6标号1;
步骤202:两个用户同时提交多个文件读取请求,文件分别为U1F1、U1F2、U2F1、U2F2,其中U1的读取请求到达U1的用户进程U1T,U1T为两个文件U1F1和U1F2的后续操作分别创建两个用户子进程U1F1T和U1F2T;U2的读取请求到达U2的用户进程U2T,U2T为两个文件U2F1和U2F2的后续操作分别创建两个用户子进程U2F1T和U2F2T,如附图4标号2。用户子进程创建好后,就各自独立从本地读出用户所要读取的文件对应的密钥和在网络存储服务器上的保存位置。如附图6中的表格;
步骤203:用户子进程U1F1T读取本地记录,读出文件U1F1的密钥U1F1K和分片数据在网络存储服务器S1、S2、S3的存储位置,根据存储位置分别下载U1F1P1M1、U1F1P1M2、U1F1P1M3和U1F1P2M1、U1F1P2M2、U1F1P2M3;同样的,用户子进程U1F2T读取本地记录,读出文件U1F2的密钥U1F2K和分片数据在网络存储服务器S1、S2、S3的存储位置,根据存储位置分别下载U1F2P1M1、U1F2P1M2、U1F2P1M3和U1F2P2M1、U1F2P2M2、U1F2P2M3;用户子进程U2F1T读取本地记录,读出文件U2F1的密钥U2F1K和分片数据在网络存储服务器S1、S2、S3的存储位置,根据存储位置分别下载U2F1P1M1、U2F1P1M2、U2F1P1M3和U2F1P2M1、U2F1P2M2、U2F1P2M3;用户子进程U2F1T读取本地记录,读出文件U2F2的密钥U2F2K和分片数据在网络存储服务器S1、S2、S3的存储位置,根据存储位置分别下载U2F2P1M1、U2F2P1M2、U2F2P1M3和U2F2P2M1、U2F2P2M2、U2F2P2M3。如附图6标号3;
步骤204:用户子进程U1F1T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR1,并将U1F1K写入KR1;用户子进程U1F2T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR2,并将U1F2K写入KR2;用户子进程U2F1T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR3,并将U2F1K写入KR3;用户子进程U2F2T向本业务主进程T申请空闲的FPGA密钥存储寄存器KR4,并将U2F2K写入KR4。如附图6标号4;
步骤205:用户子进程U1F1T向本业务主进程T申请空闲的FPGA数据存储寄存器DR1和DR2,并按一定格式将子子数据U1F1P1M1、U1F1P1M2、U1F1P1M3和密钥U1F1K的保存位置KR1以及处理逻辑等信息一起写入DR1,将子子数据U1F1P2M1、U1F1P2M2、U1F1P2M3和密钥U1F1K的保存位置KR1以及处理逻辑等信息一起写入DR2;用户子进程U1F2T向本业务主进程T申请空闲的FPGA数据存储寄存器DR3和DR4,并将子子数据U1F2P1M1、U1F2P1M2、U1F2P1M3和密钥U1F2K的保存位置KR2以及处理逻辑等信息一起写入DR3,子子数据U1F2P2M1、U1F2P2M2、U1F2P2M3和密钥U1F2K的保存位置KR2以及处理逻辑等信息一起写入DR4;用户子进程U2F1T向本业务主进程T申请空闲的FPGA数据存储寄存器DR5和DR6,并将子子数据U2F1P1M1、U2F1P1M2、U2F1P1M3和密钥U2F1K的保存位置KR3以及处理逻辑等信息一起写入DR5,子子数据U2F1P2M1、U2F1P2M2、U2F1P2M3和密钥U2F1K的保存位置KR3以及处理逻辑等信息一起写入DR6;用户子进程U2F2T向本业务主进程T申请空闲的FPGA数据存储寄存器DR7和DR8,并将子子数据U2F2P1M1、U2F2P1M2、U2F2P1M3和密钥U2F2K的保存位置KR4以及处理逻辑等信息一起写入DR7,子子数据U2F2P2M1、U2F2P2M2、U2F2P2M3和密钥U2F2K的保存位置KR4以及处理逻辑等信息一起写入DR8。上述每一个用户子进程完成写DR的操作后,都会立即用阻塞方式读同一个DR。如附图6标号5;
步骤206:FPGA定时扫描,发现数据存储寄存器DR1中有待处理数据,按一定格式读出,并根据其中部分字段读出处理逻辑为去冗余、去扰、解密,并根据其中部分字段读出对应密钥保存在密钥存储寄存器KR1中,取出密钥U1F1K及子子数据U1F1P1M1、U1F1P1M2、U1F1P1M3,按读出的处理逻辑进行去冗余、去扰、解密处理,处理输出子数据U1F1P1按一定格式写入DR1;FPGA继续扫描,发现数据存储寄存器DR2中有待处理数据,和上述过程类似,将U1F1P2写入DR2;同样的,FPGA分别将U1F2P1写入DR3,将U1F2P2写入DR4,将U2F1P1写入DR5,将U2F1P2写入DR6,将U2F2P1写入DR7,将U2F2P2写入DR8。如附图6标号6;
步骤207:当上述FPGA将子数据U1F1P1写入DR1后,处于读DR1阻塞状态的用户子进程U1F1T立即得到读返回,于是读出U1F1P1并返还给用户U1,同时通知本业务主进程T释放数据存储寄存器DR1;同样的,U1F1P2返还给用户U1,并释放DR2,此时文件U1F1读取完成,FPGA的密钥存储寄存器KR1也可以通知本业务主进程T释放了;U1F2P1返还给用户U1,并释放DR3;U1F2P2返还给用户U1,并释放DR4,此时文件U1F2读取完成,FPGA的密钥存储寄存器KR2也可以通知本业务主进程T释放了;U2F1P1返还给用户U2,并释放DR5;U2F1P2返还给用户U2,并释放DR6,此时文件U2F1读取完成,FPGA的密钥存储寄存器KR3也可以通知本业务主进程T释放了;U2F2P1返还给用户U2,并释放DR7;U2F2P2返还给用户U2,并释放DR8,此时文件U2F2读取完成,FPGA的密钥存储寄存器KR4也可以通知本业务主进程T释放了。如附图6标号7;
步骤208:U1F1已读取完毕,结束用户子进程U1F1T;U1F2已读取完毕,结束用户子进程U1F2T;U2F1已读取完毕,结束用户子进程U2F1T;U2F2已读取完毕,结束用户子进程U2F2T。如附图6标号8;
步骤209:用户U1断开与用户服务器的连接,结束用户进程U1T;用户U2断开与用户服务器的连接,结束用户进程U2T。如附图6标号9。
其中附图6中看到的表格表示用户服务器本地保存的数据,包括用户所提交保存的文件名,文件名对应的唯一密钥,文件被处理后上传到不同的网络存储服务器的存储位置等信息。
实施例7
网络定义存储系统包含一台部署有FPGA板卡的用户服务器和多个网络存储服务器;用户服务器配置有一定数量的CPU和内存,用以支撑多用户多进程的系统开销;FPGA上的寄存器按一定长度和位置划分成若干区域,一部分用于读写待处理子数据,一部分用于读写密钥;用户服务器能通过网络及网络服务器所要求的鉴权方式访问网络存储服务器。
综上,本发明实施例提供一种数据存储方法、读取方法及网络定义存储系统;本发明的技术方案采用多密钥、多进程、多用户、多数据的工作机制,针对每个用户的每个数据都设置独立唯一的密钥,同时采用先进的多进程业务逻辑,实现多用户、多数据的并行操作,极大地提高了整个网络定义存储系统的效率。
以上内容是结合具体的实施方式对本方法做的进一步详细说明,但不能认定本方法的具体实施只限于这些说明。对于本方法所属技术领域的普通技术人员来说,在不脱离本实用信息构思的前提下,还可以做出若干简单推演或替换,都应该视为本方法的保护范围。
Claims (9)
1.一种基于FPGA设备的网络定义存储方法,其特征在于,包括以下步骤:
步骤S101、用户服务器为每个用户创建用户主进程,并为每个用户的每个待存储数据创建用户子进程;
步骤S102、每个所述用户子进程向对应的用户主进程申请唯一密钥,所述用户主进程将所述每个待存储数据拆分为若干子数据;
步骤S103、每个所述用户子进程向对应的用户主进程申请空闲的FPGA密钥存储寄存器,并将所述用户子进程的唯一密钥写入该FPGA密钥存储寄存器;
步骤S104、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将对应的所述子数据、密钥的保存位置和处理逻辑信息写入对应的FPGA数据存储寄存器;
步骤S105、当所述用户子进程完成FPGA数据存储寄存器的写入操作后,立即用阻塞方式读取FPGA数据存储寄存器;FPGA根据从FPGA数据存储寄存器中读出的子数据、密钥的保存位置和处理逻辑信息,取出所述待存储数据所对应的唯一密钥和子数据,并根据处理逻辑信息对所述子数据进行逻辑处理,输出N个子子数据,其中,N为正整数;将所述N个子子数据写入FPGA数据存储寄存器;
步骤S106、把所述N个子子数据分别上传到N个网络存储服务器,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S107、结束所述用户子进程和用户主进程。
2.根据权利要求1所述的一种基于FPGA设备的网络定义存储方法,其特征在于,所述的处理逻辑包括加密、加扰和加冗余。
3.根据权利要求1所述的一种基于FPGA设备的网络定义存储方法,其特征在于,所述的N个为至少3个。
4.根据权利要求1所述的一种基于FPGA设备的网络定义存储方法,其特征在于,所述用户主进程、用户子进程的调度、以及所述FPGA密钥存储寄存器和所述FPGA数据存储寄存器的申请和释放,都由所述用户服务器统一调度。
5.一种基于FPGA设备的网络定义读取方法,其特征在于,包括以下步骤:
步骤S201、用户服务器为每个用户创建用户主进程,并为每个用户的每个待读取数据创建用户子进程;
步骤S202、每个所述用户子进程从用户服务器中读出每个待读取数据所对应的唯一密钥和该数据对应的N个子子数据在网络存储服务器上的存储位置信息,所述用户子进程根据所述存储位置信息,下载该存储位置上的N个子子数据;
步骤S203、每个所述用户子进程向对应的用户主进程申请空闲的FPGA 密钥存储寄存器,并将步骤S202中所述待读取数据所对应的唯一密钥写入该FPGA密钥存储寄存器;
步骤S204、每个所述用户子进程向对应的用户主进程申请空闲的FPGA数据存储寄存器,并将步骤S202中下载的N个子子数据、密钥存储位置和处理逻辑信息写入该FPGA数据存储寄存器;
步骤S205、当所述用户子进程完成该FPGA数据存储寄存器的写入操作后,立即用阻塞方式读FPGA数据存储寄存器;FPGA根据待读取数据所对应的唯一密钥在FPGA密钥存储寄存器中的位置以及处理逻辑信息,取出待读取数据所对应的唯一密钥以及子子数据,按照所述处理逻辑信息对子子数据进行逻辑处理,输出子数据,并把所述子数据写入FPGA数据存储寄存器;
步骤S206、所述用户子进程通过阻塞方式读出步骤S205的FPGA数据存储寄存器中的子数据,并把该子数据返还给用户,所述用户子进程通知用户主进程释放相应的FPGA数据存储寄存器和FPGA密钥存储寄存器;
步骤S207、结束所述用户子进程和用户主进程。
6.根据权利要求5所述的一种基于FPGA设备的网络定义读取方法,其特征在于,所述的处理逻辑包括去冗余、去扰和解密。
7.根据权利要求5所述的一种基于FPGA设备的网络定义读取方法,其特征在于,所述的N个为至少3个。
8.根据权利要求5所述的一种基于FPGA设备的网络定义读取方法,其特征在于,所述用户主进程、用户子进程的调度、以及所述FPGA密钥存储寄存器和所述FPGA数据存储寄存器的申请和释放,都由所述用户服务器统一调度。
9.一种基于FPGA设备的网络定义存储系统,包括:用户服务器和N个网络存储服务器,所述用户服务器配置有FPGA、CPU和内存,所述FPGA配置有寄存器,所述寄存器包括FPGA数据存储寄存器和FPGA密钥存储寄存器,所述FPGA数据存储寄存器用于读写待处理子数据,所述FPGA密钥存储寄存器用于读写密钥,所述用户服务器配置有CPU和内存,其特征在于,所述系统采用权利要求1至4任意一项所述的一种基于FPGA设备的网络定义存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239370.XA CN110955525B (zh) | 2019-12-05 | 2019-12-05 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
PCT/CN2019/127032 WO2021109275A1 (zh) | 2019-12-05 | 2019-12-20 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239370.XA CN110955525B (zh) | 2019-12-05 | 2019-12-05 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955525A CN110955525A (zh) | 2020-04-03 |
CN110955525B true CN110955525B (zh) | 2022-12-20 |
Family
ID=69979935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911239370.XA Active CN110955525B (zh) | 2019-12-05 | 2019-12-05 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110955525B (zh) |
WO (1) | WO2021109275A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978950B (zh) * | 2022-06-02 | 2023-10-27 | 江苏新质信息科技有限公司 | 基于fpga、cpu协同的网络算法调用方法及系统 |
CN116521249B (zh) * | 2023-07-03 | 2023-10-10 | 北京左江科技股份有限公司 | 一种基于进程文件描述符的内核态报文分发方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971369A (zh) * | 2017-03-02 | 2017-07-21 | 南京师范大学 | 一种基于gpu的地形可视域分析的数据调度与分发方法 |
CN107526963A (zh) * | 2017-08-30 | 2017-12-29 | 深圳市风云实业有限公司 | 密钥查找设备、方法和计算机可读存储介质 |
CN108182263A (zh) * | 2018-01-05 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据中心综合管理系统的数据存储方法 |
CN110502932A (zh) * | 2018-05-18 | 2019-11-26 | 意法半导体(格勒诺布尔2)公司 | 处理系统、相关集成电路和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5204195B2 (ja) * | 2010-10-29 | 2013-06-05 | 株式会社東芝 | データ送信システムおよびデータ送信プログラム |
CN102546181B (zh) * | 2012-01-09 | 2014-12-17 | 西安电子科技大学 | 基于密钥池的云存储加解密方法 |
US9230091B2 (en) * | 2012-06-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Managing use of a field programmable gate array with isolated components |
CN104852949A (zh) * | 2014-02-14 | 2015-08-19 | 航天信息股份有限公司 | 基于混合加密机制的云存储数据管理方法和系统 |
-
2019
- 2019-12-05 CN CN201911239370.XA patent/CN110955525B/zh active Active
- 2019-12-20 WO PCT/CN2019/127032 patent/WO2021109275A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971369A (zh) * | 2017-03-02 | 2017-07-21 | 南京师范大学 | 一种基于gpu的地形可视域分析的数据调度与分发方法 |
CN107526963A (zh) * | 2017-08-30 | 2017-12-29 | 深圳市风云实业有限公司 | 密钥查找设备、方法和计算机可读存储介质 |
CN108182263A (zh) * | 2018-01-05 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据中心综合管理系统的数据存储方法 |
CN110502932A (zh) * | 2018-05-18 | 2019-11-26 | 意法半导体(格勒诺布尔2)公司 | 处理系统、相关集成电路和方法 |
Non-Patent Citations (1)
Title |
---|
基于MPI的分段线性混沌映射加密算法的研究;王希忠;《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》;20150215(第2期);第57-66页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021109275A1 (zh) | 2021-06-10 |
CN110955525A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7739381B2 (en) | System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services | |
US7277941B2 (en) | System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device | |
US8321659B2 (en) | Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data transfer controlling apparatus | |
CN103562878B (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
US9032218B2 (en) | Key rotation for encrypted storage media using a mirrored volume revive operation | |
JP4829632B2 (ja) | データ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体 | |
CN101681237B (zh) | 加密装置及加密方法 | |
CN110955525B (zh) | 一种基于fpga设备的网络定义存储方法、读取方法及系统 | |
WO2005065084A2 (en) | System and method for providing encryption in pipelined storage operations in a storage network | |
US7689734B2 (en) | Method for toggling non-adjacent channel identifiers during DMA double buffering operations | |
CN102855452A (zh) | 基于加密组块的快速数据加密策略遵从 | |
CN103221925A (zh) | 数据处理方法和存储设备 | |
CN109104275A (zh) | 一种hsm设备 | |
CN111949372B (zh) | 一种虚拟机迁移方法、通用处理器及电子设备 | |
CN101667140A (zh) | 控制操作系统切换的方法、装置及系统 | |
CN108491724A (zh) | 一种基于硬件的计算机接口加密装置及方法 | |
CN102725746B (zh) | 对分布式计算机系统中内存的管理方法和装置 | |
JP2006260491A (ja) | ストレージアレイ装置、暗号化記録システム、暗号化記録読出し方法及びプログラム | |
CN107688750B (zh) | 用于向静止数据提供透明在线加密的系统和方法 | |
US8332658B2 (en) | Computer system, management terminal, storage system and encryption management method | |
CN105511808A (zh) | 一种数据操作方法、系统及相关装置 | |
CN103607471A (zh) | 一种桌面系统之间的文件交换方法及系统 | |
CN107608825A (zh) | 一种云备份快照数据的方法及装置 | |
CN105094761A (zh) | 一种数据存储方法和设备 | |
JP4972994B2 (ja) | 情報処理装置および情報処理方法、並びにプログラム |
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 |