掌桥专利:专业的专利平台
掌桥专利
首页

存储系统及控制方法

文献发布时间:2023-06-19 16:11:11



本申请享有以日本特许申请2021-8054号(申请日:2021年1月21日)为基础申请的优先权。本申请通过参照该基础申请而包括基础申请的全部内容。

技术领域

本发明的实施方式涉及存储系统以及控制方法。

背景技术

近年来,具备非易失性存储器的存储系统广泛普及。HDD(hard disk drive,硬盘驱动器)、SSD(solid state drive,固态驱动器)等存储系统被用作服务器、个人计算机等信息处理装置的储存器。

另外,近年来,对数据的安全性的关注不断提高。进而,GDPR(general dataprotection regulation,通用数据保护条例)等关于个人信息的处理的限制被强化。与此相伴,例如将包括个人信息的大数据储存于存储系统并进行解析的主机也即是服务器、个人计算机等信息处理装置的负荷不断增加。

发明内容

本发明的一个实施方式提供能够减轻主机的负荷且安全地管理个人信息的存储系统以及控制方法。

根据实施方式,存储系统具备非易失性存储器和控制非易失性存储器的控制器。控制器构成为能够从主机接收包括对关系数据库进行定义或操作的数据库操作命令的指令,根据来自主机的指令创建关系数据库,将关系数据库保存于非易失性存储器,向关系数据库写入数据或者从关系数据库读出数据。

附图说明

图1是表示与主机连接的实施方式的存储系统的一构成例的图。

图2是表示包括实施方式的存储系统的信息处理系统和包括比较例的存储系统的信息处理系统的与数据的授受相关的差异的图。

图3是表示实施方式的存储系统可能接收的用于定义关系数据库(表)的指令的一例的图。

图4是表示实施方式的存储系统可能接收的用于向关系数据库(表)插入数据的指令的一例的图。

图5是表示实施方式的存储系统可能接收的用于从关系数据库(表)检索数据的指令的一例的图。

图6是表示实施方式的存储系统中的针对查询的响应许可条件的一览的图。

图7是表示实施方式的存储系统的针对查询的响应例的图。

图8是表示实施方式的存储系统的查询接收时的处理步骤的一例的图。

附图标记说明

1…存储系统,2…主机,3…接口,11…控制器,12…DRAM,13…NAND存储器,110…控制部,111…查询处理部,112…加密/解密部,120…主机接口部,130…DRAM接口部,140…NAND接口部,200…关系数据库

具体实施方式

以下,参照附图对实施方式进行说明。

图1是表示本实施方式的存储系统1的一构成例的图。图1中一并示出了包括存储系统1、连接于存储系统1的主机2以及将存储系统1与主机2连接的接口3的信息处理系统的一构成例。

主机2是服务器、个人计算机等信息处理装置。

接口3将主机2与存储系统1连接。接口3例如遵循PCI Express(PCIe)

存储系统1能够作为HDD、SSD等储存装置来实现。在此,示出了存储系统1作为SSD实现的例子。存储系统1具有控制器11、DRAM(Dynamic Random Access Memory,动态随机存取存储器)12以及NAND型闪速存储器(NAND存储器)13。

控制器11例如构成为SoC(system on a chip,片上系统)。控制器11基于主机2发出的指令,执行从主机2发送来的数据向NAND存储器13的写入处理、主机2请求的数据从NAND存储器13的读出处理等。

控制器11也可以对要写入到NAND存储器13的数据进行加密。在该情况下,控制器11对从NAND存储器13读出的加密了的数据进行解密。

控制器11具有控制部110、主机接口部120、DRAM接口部130、NAND接口部140。控制器11的各部的功能既可以通过专用硬件来实现,也可以通过处理器执行程序来实现。

主机接口部120控制与主机2的通信。主机接口部120遵循具有能够收发包括数据库操作命令的指令的指令格式的独自的接口规格。主机接口部120是如NVM Express(NVMe)

数据库操作命令用于命令对数据库进行定义、操作。数据库的操作包括数据的插入、删除、检索(取出)。数据库的例子是关系数据库(Relational database)、对象指向数据库、键值型数据库。在以下的说明中,设为数据库是关系数据库。

数据库操作命令能够通过数据库语言来描述。数据库语言例如是结构化查询语言。另外,数据库语言例如是SQL语句。在以下的说明中,设为数据库语言是SQL语句。

也即是,本实施方式的存储系统1构成为能够从主机2接收包括SQL语句的指令。更具体而言,控制器11根据从主机2接受的SQL语句来创建关系数据库(表)或对关系数据库进行操作。

DRAM接口部130控制对DRAM12的数据访问(写/读)。NAND接口部140控制对NAND存储器13的数据访问。

控制部110是综合地控制存储系统1的模块。更具体而言,控制部110控制主机接口部120、DRAM接口部130、NAND接口部140。控制部110例如由1个以上的处理器(未图示)构成。控制部110通过执行被称为固件等的程序,作为查询处理部111、加密/解密部112发挥功能。固件例如在存储系统1的电源接通时、复位时从NAND存储器13被加载到控制器11内的存储器(未图示)。

查询处理部111执行与从主机2发送来的SQL语句对应的处理。更具体而言,查询处理部111创建关系数据库、将关系数据库保存在NAND存储器13上、向关系数据库写入数据、从关系数据库读出数据。请求从关系数据库检索目标数据并将其读出的SQL语句也被称为查询。

本实施方式的存储系统1中的查询处理部111在执行与SQL语句对应的处理时,为了实现隐私保护数据挖掘(PPDM)等那样的在保护个人的隐私的同时进行数据分析的功能,能够一并执行用于匿名化的处理。查询处理部111例如能够执行用于k-匿名化的处理。

k-匿名化是以下处理:在处理各行与一个人对应且各列表示个人的属性的n行m列的表形式的数据库的情况下,使得无法区分k-1人以下的个人。在k-匿名化中,将唯一地表示个人的属性称为标识符。将单独无法确定个人但能通过多个组合来确定个人的属性称为准标识符。准标识符的列也称为k-匿名性列。将不想他人知道的属性称为敏感属性。敏感属性是包括如被公开则隐私会被侵犯那样的个人信息的属性。敏感属性的列也被称为秘密列。

查询处理部111在来自主机2的SQL语句是请求敏感属性的列的数据的查询的情况下,针对该查询回复错误。在是不仅请求敏感属性的列的数据还请求非敏感属性的列的数据的查询的情况下,查询处理部111既可以回复错误,也可以仅回复非敏感属性的列的数据。也即是,本实施方式的存储系统1不将敏感属性的列的数据作为针对查询的响应而回复。

另外,查询处理部111在来自主机2的SQL语句是请求准标识符的列的数据的查询的情况下,判定检索结果是否满足k-匿名性。满足k-匿名性是指无法根据准标识符的列的数据区分k-1人以下的个人。例如,在存在“住所(都道府县)”、“性别”、“年龄”的准标识符的情况下,无论在“东京”、“男性”、“32岁”等哪个属性值的组合中,k人以上的个人都符合。查询处理部111在检索结果不满足k-匿名性的情况下,针对该查询回复错误。也即是,本实施方式的存储系统1仅在满足k-匿名性的情况下,将准标识符的列的数据作为针对查询的响应来回复。换言之,本实施方式的存储系统1在不满足k-匿名性的情况下,不将准标识符的列的数据作为针对查询的响应来回复。

进而,查询处理部111在对某列进行有一般化(广义化)的设定的情况下,在向该列写入数据时或从该列读出数据时,执行基于预先指定的规则的一般化处理。一般化是指,例如在“年龄”这一准标识符的列的数据的情况下,以将10~19加工为10(多岁)、将20~29加工为20(多岁)这样的方式对数据进行加工。在从列读出数据时执行一般化的情况下,由于在关系数据库(表)上保持有原来的值,因此,能够动态地设定一般化的规则。例如,关于上述的“年龄”这一准标识符的列的数据,也能够如将10~14设为10、将15~19设为15这样对粒度进行细分化。此外,该一般化也可以不由查询处理部111执行,而由以SQL语句请求向关系数据库插入数据的主机2执行。

控制器11使用DRAM12作为进行关系数据库的操作、数据的加密/解密时的操作区域。此外,操作区域也可以是控制器11内的SRAM(未图示)等。也即是,DRAM12对于存储系统1不是必须的。

加密/解密部112对向关系数据库写入的数据进行加密,另外,对从关系数据库以加密的状态读出了的数据进行解密。查询处理部111经由DRAM12在与加密/解密部112之间授受数据。更具体而言,查询处理部111将向NAND存储器13上的关系数据库写入的数据保存于DRAM12,向加密/解密部112委托该DRAM12上的数据的加密。查询处理部111将通过加密/解密部112加密了的数据向NAND存储器13上的关系数据库写入。另外,查询处理部111将从NAND存储器13上的关系数据库读出的被加密了的状态的数据保存于DRAM12,向加密/解密部112委托该DRAM12上的数据的解密。查询处理部111使用由加密/解密部112解密后的数据,执行与来自主机2的查询对应的数据的检索。

图2是表示包括本实施方式的存储系统1的信息处理系统和包括比较例的存储系统1x的信息处理系统的与数据的授受相关的一比较例的图。

图2的(A)中表示通过接口3x连接比较例的存储系统1x和主机2x的信息处理系统。主机2x将包括与访问对象的数据相关联的逻辑地址的读指令、写指令发送至存储系统1x。逻辑地址的例子是逻辑块地址(LBA)。

在图2的(A)的信息处理系统中,主机2x执行与SQL语句对应的处理。即,为了进行与SQL语句对应的处理,CPU 21x、主存储器22x等主机2x的资源被消耗。另外,主机2x必须执行用于匿名化的处理。例如,在数据挖掘程序发出的SQL语句是请求敏感属性的列的数据的查询的情况下,主机2x必须进行生成错误的处理。另外,在数据挖掘程序发出的SQL语句是一并请求敏感属性的列的数据和非敏感属性的列的数据的查询的情况下,主机2x必须进行生成错误或者提取非敏感属性的列的数据的处理。

另外,在图2的(A)的信息处理系统中,通常,主机2x在数据库的创建时进行用于与准标识符的列的数据相关的匿名化的处理。因此,难以动态地进行k-匿名化,如变更一般化的规则等。另外,在主机2x中判定与查询相应的检索结果是否满足k-匿名性,在不满足k-匿名性的情况下针对该查询生成错误的情况下,CPU21x的负荷进一步增加。并且,还需要准备执行适于为了数据挖掘而储存的数据的匿名化的处理的程序等。

另外,在图2的(A)的信息处理系统中,主机2x为了执行与查询相应的检索,将指定了逻辑地址(LBA)的读指令向存储系统1x发出。主机2x将作为该读指令的响应而从存储系统1x发送来的数据(data)保存于主存储器22x。在数据被加密且保存于存储系统1x的NAND存储器13x的情况下,主机2x为了执行与查询相应的检索,执行以加密了的状态被读出的数据的解密。也即是,产生在主存储器22x上存在明文的数据(a1)的机会。因此,个人信息在主存储器22x上以明文的状态存在,无法否定个人信息会向外部泄露的危险性。另外,数据的加密/解密也使CPU21x的负荷增加。

在存储系统1x中进行数据的加密/解密的情况下,能够减轻主机2x中的CPU21x的负荷。但是,会产生个人信息以明文的状态存在于主机2x的主存储器22x上的机会这一点,是相同的。另外,在数据(a2)以明文保存于NAND存储器13x的情况下,存在存储系统1x或NAND存储器13x被拿走、明文的状态的个人信息被盗取的担忧。

另一方面,图2的(B)示出了包括本实施方式的存储系统1的信息处理系统。

在图2的(B)的信息处理系统中,仅使用本实施方式的存储系统1,就能够实现用于隐私保护数据挖掘的匿名化。进而,能实现安全地管理个人信息。

例如,设为在主机2中工作的数据挖掘程序发出了请求敏感属性的列的数据的查询。主机2将该查询(SQL语句)作为指令对存储系统1发出。

存储系统1在从主机2接受的查询是请求敏感属性的列的数据的查询的情况下,针对该查询,回复错误。在从主机2接受的查询是一并请求敏感属性的列的数据和非敏感属性的列的数据的查询的情况下,存储系统1回复错误或仅回复非敏感属性的列的数据。

另外,存储系统1判定与查询相应的检索结果是否满足k-匿名性,在不满足k-匿名性的情况下,针对该查询,回复错误。

也即是,在图2的(B)的信息处理系统中,主机2丝毫不考虑匿名化而将查询发送给存储系统1即可。即,仅使用本实施方式的存储系统1,就能够实现在保护个人的隐私的同时进行数据分析的隐私保护数据挖掘功能。并且,能够减轻CPU21的负荷。

另外,向主机2回复不包括敏感属性的列的数据且满足k-匿名性的检索结果(Result)(b1)。因此,不产生在主机2内存在个人信息(敏感属性)的机会。也即是,在主机2中泄露个人信息的危险性被排除。另外,与能够通过CPU21执行各种程序的主机2内的存储器不同,存储系统1的DRAM12在控制器11的控制下,能够排除不正常的访问,因此,还能够防止个人信息(b2)从该DRAM12泄露。另外,实施了加密的数据被保存于NAND存储器13(b3),因此,即便存储系统1或NAND存储器13被拿走,也不会被盗取明文的状态的个人信息。

图3是表示本实施方式的存储系统1能够从主机2接收的、用于定义关系数据库(表)的指令的一例的图。

在图3中,将用于定义关系数据库(表)的指令表述为“CREATE”。CREATE指令包括CREATE指令用的指令ID、表的名称(表名)、k-匿名化信息以及1个以上的列信息。

指令ID是唯一地表示指令的识别信息。

表的名称是用于从多个表中指定目标表的信息。表的名称例如在数据的插入时(INSERT)、检索时(SELECT)使用。关于INSERT指令和SELECT指令的一例,在下文进行说明(图4、图5)。

k-匿名化信息是k的设定值。例如在对k-匿名化信息设定了“2”的情况下,执行用于匿名化的处理,以使得不区分2人以下的个人。

列信息包括列的名称、属性、是否需要一般化的各信息。列的名称是用于从多个列中指定目标列的信息。列的名称例如在数据的检索时(SELECT)使用。属性是表示该列是标识符、准标识符、敏感属性中的哪一个的信息。是否需要一般化是表示是否对数据进行一般化的信息。在进行一般化的情况下,例如,附加表示应从多个一般化规则中应用的一般化规则的信息。作为一般化规则的例子,可举出(a)将年龄的第1位(个位)数字置换为0而设为10多岁、20多岁,(b)将住所中的市区镇村以下删除而仅设为都道府县等。

主机2通过对本实施方式的存储系统1发出该CREATE指令,能够在存储系统1创建各种关系数据库。

存储系统1在接收到CREATE指令时,制作具有与指定的1个以上的列信息对应的1个以上的列的、被指定的名称的表,并保存在NAND存储器13中。另外,存储系统1关于从该表的数据的取得,禁止区分由指定的k-匿名化信息表示的k的值以下的个人。

主机2通过发出用于向关系数据库插入数据的指令(INSERT),能够在创建出的关系数据库中不断储存数据。此时,从主机2向存储系统1发送明文的个人信息,但通过利用现有的密码通信技术,能够防止个人信息的泄露。

图4是表示INSERT指令的一例的图。INSERT指令包括INSERT指令用的指令ID、表的名称(表名)以及1个以上的值。

指令ID是唯一地表示指令的识别信息。

表的名称是用于从多个表中指定目标表的信息。在INSERT指令的SQL语句中,表的名称例如被指定为“INTO表的名称”。

值是保存在表中的列中的数据。在INSERT指令的SQL语句中,值例如被指定为“VALUES(值(1)、…、值(N))”。

例如在接收到“INSERT INTO T1 VALUES(1、‘abc’、10)”这一INSERT指令的情况下,存储系统1在包括3个列的T1这一名称的表中,插入在第1列保存“1”、在第2列保存“abc”、在第3列保存“10”的行。在写入数据时执行一般化处理的情况下,存储系统1在接收INSERT指令时,基于预先指定的一般化规则来加工向被指定了一般化的执行的列写入的值。

图5是表示SELECT指令的一例的图。SELECT指令包括SELECT指令用的指令ID、表的名称(表名)、1个以上的列的名称(列名)以及1个以上的条件。

指令ID是唯一地表示指令的识别信息。

表的名称是用于从多个表中指定目标表的信息。在SELECT指令的SQL语句中,表的名称例如被指定为“FROM表的名称”。

列的名称是用于从表中的多个列中指定数据取得对象的列的信息。在SELECT指令的SQL语句中,列的名称例如被指定为“SELECT列的名称(1)、…、列的名称(M)”。也能够代替指定数据取得对象的列,而指定返还符合条件的行的数量。在该情况下,例如被指定为“SELECT Count(*)WHERE条件(1)、…、条件(M)”。

条件是用于从表中的多个行中检索目标行的信息。条件包括检查对象的列的名称和比较值。检查对象的列的名称和数据取得对象的列的名称可以互不相同。在SELECT指令的SQL语句中,条件例如被指定为“WHERE条件(1)、…、条件(M)”。存储系统1读出符合条件的行的被指定的列的数据。此外,在不指定条件的情况下,存储系统1也可以读出与指定的列的名称对应的列的所有行的数据。

在读出数据时执行一般化处理的情况下,存储系统1在接收SELECT指令时,基于预先指定的一般化规则来加工从指定了一般化的执行的列读出的值。

图6是表示本实施方式的存储系统1中的针对查询(SELECT指令)的响应许可条件的一览的图。

如图6所示,本实施方式的存储系统1具备条件1、条件2这2个响应许可条件。

条件1:没有请求秘密列(敏感属性的列)的数据。

条件2:检索结果满足k-匿名性。

在不满足上述2个响应许可条件中的一方或双方的情况下,本实施方式的存储系统1针对查询,例如回复错误。或者,存储系统1在对查询进行了成功的响应的基础上,不发送敏感属性的列的数据(例如发送空数据)。

此外,关于条件1,在还请求了非敏感属性的列的数据的情况下,本实施方式的存储系统1也可以针对查询仅回复非敏感属性的列的数据。

图7是表示本实施方式的存储系统1的针对查询(SELECT指令)的响应例的图。在图7中,SELECT指令的自变量中的表的名称被省略。

在此,设想创建了包括列201~列204的关系数据库(表)200的情况。列201(列的名称:AAA)是标识符。列202(列的名称:BBB)是敏感属性。列203(列的名称:CCC)和列204(列的名称:DDD)是准标识符。在向关系数据库200写入列204的数据时或从关系数据库200读出列204的数据时,执行基于预先指定的规则的一般化。另外,设想:作为k-匿名化的k的值而设定了“2”。

首先,设想从主机2接收到请求列201的数据和列202的数据的查询(c1)的情况。该查询请求了敏感属性的列202的数据,因此,存储系统1针对该查询回复错误。此外,存储系统1也可以仅回复非敏感属性的列201的数据。

接着,设想从主机2接收到请求列202的数据的值大于15的行的数量的查询(c2)的情况。该查询没有请求敏感属性的列202的数据。另外,该查询的检索结果是符合检索条件(BBB>15)的行的数量,不包括准标识符的列203、列204的数据。符合检索条件(BBB>15)的行是第2行和第4行。存储系统1针对该查询回复“2”作为检索结果。

接着,设想接收到请求列202的数据的值比15大的行的、列203的数据的查询(c3)的情况。该查询没有请求敏感属性的列202的数据。另一方面,该查询的检索结果包括准标识符的列203的数据。符合检查条件(BBB>15)的行是第2行和第4行。第2行的列203的数据是“A”,第4行的列203的数据也是“A”。因此,根据检索结果所包括的准标识符的列203的数据无法区分k-1(2-1=1)以下的个人。因而,该检索结果满足了k-匿名性。存储系统1针对该查询,作为检索结果而回复第2行的列203的数据即“A”和第4行的列203的数据即“A”。

接着,设想接收到请求列202的数据的值比12小的行的、列204的数据的查询(c4)的情况。该查询没有请求敏感属性的列202的数据。另一方面,该查询的检索结果包括准标识符的列204的数据。符合检查条件(BBB<12)的行仅为第1行。也即是,会能够区分k-1(2-1=1)以下的个人。因而,该检索结果不满足k-匿名性。存储系统1针对该查询回复错误。

图8是表示实施方式的存储系统1的查询接收时的处理步骤的一例的图。

存储系统1对接收到的查询进行解析(S101)。更具体而言,存储系统1的查询处理部111调查是否请求秘密列(敏感属性的列)的数据。在查询请求了秘密列的数据的情况下(S102:是),存储系统1针对该查询回复错误(S103),结束该查询的处理。

另一方面,在查询没有请求秘密列的数据的情况下(S102:否),存储系统1执行与该查询相应的检索(S104)。此时,在DRAM12上进行从NAND存储器13上的关系数据库以加密的状态被读出了的数据的解密。存储系统1使用该解密后的DRAM12上的数据,执行与查询相应的检索。

存储系统1对检索结果进行解析(S105)。更具体而言,存储系统1的查询处理部111调查检索结果是否满足k-匿名性。在检索结果不满足k-匿名性的情况下(S106:否),存储系统1针对该查询回复错误(S103),结束该查询的处理。

另一方面,在检索结果满足k-匿名性的情况下(S106:是),存储系统1作为对该查询的响应,回复检索结果(S107)。

这样,在构成为能够从主机2接收包括数据库语言的指令的本实施方式的存储系统1中,不需要由主机2执行查询的处理,因此,能够减轻主机2的资源的消耗,另外能够减轻负荷。在查询的处理时,存储系统1也执行k-匿名化的处理,因此,能够进一步减轻主机2的负荷。另外,通过不需要由主机2执行查询的处理,能够消除明文的个人信息存在于主机2内的机会,能够防止个人信息的泄露。通过由存储系统1也执行k-匿名化的处理,还能够动态地执行k-匿名化。

进而,通过由存储系统1执行数据的加密以及解密,能够进一步减轻主机2的负荷。

对本发明的几个实施方式进行了说明,但这些实施方式是作为例子而提示的,并不旨在限定发明的范围。这些新的实施方式能够以其他各种方式来实施,在不脱离发明的主旨的范围内,能够进行各种省略、置换、变更。这些实施方式和/或其变形包括在发明的范围和/或主旨内,并且包括在权利要求书所记载的发明及其等同的范围内。

技术分类

06120114733270