具体实施方式
在下文中,将参照附图详细描述本发明的实施例。然而,在这点上,尽管为了实践本发明而对下面描述的实施例进行技术上优选的限制,但是本发明的范围不限于下述实施例。
第一示例性实施例
图1是示出根据本发明的第一示例性实施例的存储设备的配置的框图。根据本实施例的存储设备1包括控制单元11。控制单元11将写入目标文件转换为一个或多个块,并根据是否将对写入目标文件应用重复消除来指定用于对该写入目标文件进行写入的写入方法。此外,存储设备1包括存储单元12。存储单元12包括存储介质,并且根据写入方法计算各自与一个或多个块中的相应一个相关联的哈希值。存储单元12基于相应的哈希值来确定存储介质上的一个或多个地址,然后将一个或多个块写入存储介质。
存储设备1能够在单个设备的基础上处理执行了重复消除的写入和不执行任何重复消除的正常写入这两者。
如上所述,本实施例可以提供一种存储设备,其被配置为对于每个文件,根据确定相对于存储介质写入/读取的利用效率和处理性能中的哪一个是优先的结果,在单个设备的基础上适当地使用涉及消除重复的写入或者不涉及重复消除的写入。
第二示例性实施例
图2是示出根据本发明的第二示例性实施例的存储设备的配置的框图。根据该第二示例性实施例的存储设备2包括数据通信网络接口21,管理通信网络接口22和文件系统访问单元23。该文件系统访问单元23用作控制单元。此外,存储设备2包括模式管理表24、文件管理表25和未使用文件表26。此外,存储设备2包括内容地址存储单元27(CAS单元27)和磁盘设备28。CAS单元和磁盘设备28用作存储单元。
存储设备2通过数据通信网络和管理通信网络耦合到客户端、用户终端。客户端通过数据通信网络对存储设备2的文件执行操作,诸如读取/写入文件。此外,客户端通过管理通信网络执行对存储设备2的设置和管理。诸如PC(个人计算机)或服务器的信息终端可以用作客户端。
此外,耦合到数据通信网络的客户端和耦合到管理通信网络的客户端可以是相同的客户端,或者可以是相互独立的客户端。此外,客户端可以是单个客户端或多个客户端。此外,数据通信网络和管理通信网络可以是相互独立的网络,或者可以是相同的网络。
数据通信网络接口21经由数据通信网络耦合到客户端。管理通信网络接口22经由管理通信网络耦合到客户端。可以通过TCP/IP(传输控制协议/因特网协议)或任何其它适当的协议来执行数据通信和管理通信。
模式管理表24指定在执行重复消除的重复消除(DE)模式中或在不执行重复消除的通用(GP)模式中是否执行文件的写入。由客户端通过管理通信网络设置模式管理表24。
客户端通过数据通信网络访问文件系统访问单元23。在来自客户端的访问中,可以使用诸如CIFS(公共因特网文件系统)、NFS(网络文件系统)或FTP(文件传输协议)的协议。
文件系统访问单元23将来自客户端的输入/输出(I/O)请求转换为对位于较低层中的CAS单元27的I/O请求,并且执行对于I/O请求的处理。在接收到来自客户端的请求之后,文件系统访问单元23对于写入CAS单元27的文件执行各种处理,诸如划分为块、写入、读取和删除。文件系统访问单元23能够基于在文件系统访问单元23中设置的标准将文件划分为块。在划分为块时,块的大小可以是固定的或可变的。例如,具有1024KB大小的文件可以被划分为例如八个大小为96KB的块和四个大小为64KB的块。
文件系统访问单元23创建文件管理表25和未使用文件表26以管理文件。此外,文件系统访问单元23基于模式管理表24将要写入CAS单元27的文件指定为DE模式和GP模式中的任一个。
CAS单元27耦合到磁盘设备28,并且管理磁盘设备28。也就是说,无论文件系统访问单元23指定DE模式实施GP模式,CAS单元27以DE模式或GP模式将构成文件的每个块写入磁盘设备28中并且读取每个块。可以通过诸如HDD(硬盘驱动器)或SSD(固态驱动器)的存储设备来实现磁盘设备28。这里,尽管在图2中示出了两个磁盘设备28,但是可以可选地确定磁盘设备28的数量。
可以通过使用允许其执行程序的CPU来实现文件系统访问单元23和CAS单元27。
图3是示出模式管理表24的示例的图。由客户端通过管理通信网络设置模式管理表24。在列“目标路径”中,存储文件系统、目录、文件等的路径。每个路径是设置DE模式或GP模式的目标。在列“模式”中,在优先重复消除的情况下,存储表示DE模式的代码(DE),并且在优先通常的I/O特性的情况下,存储表示GP模式的代码(GP)。
图4是示出文件管理表25的示例的图。在列“文件路径”中,存储成为管理目标的每个文件的所有路径。在列“文件识别号”中,存储分配给相应文件并且是不与任何其它文件的识别号重复的唯一号的识别号。此外,文件管理表25在其中存储与构成文件的一个或多个块中的每一个相关的信息。在列“偏移”中,存储块的初始位置,并且在列“块大小”中存储块的大小。虽然图4表示块大小是可变的情况,但是块大小可以是固定的,此外,在列“内容地址“中,存储当CAS单元27已经将各个块存储到磁盘设备28中时已经从磁盘设备28获得的相应的内容地址。
客户端将文件路径设置为相应的文件。当客户端选择相关文件的DE模式时,即客户端优先考虑存储介质的利用效率时,客户端能够根据模式管理表24来将相关文件的文件路径设置为与DE模式相关联的、已经被预先设置的文件路径,以便允许相关文件的文件路径与“DE”相关联。此外,当客户端对于相关文件选择GP模式时,即客户端优先处理写/读的处理性能时,客户端能够根据模式管理表24设置相关文件的文件路径,以允许相关文件的文件路径与“GP”相关联。
文件系统访问单元23设置文件识别号、偏移和块大小。此外,文件系统访问单元23从CAS单元27接收每个块的内容地址。文件系统访问单元23对于每个块,将文件路径、文件识别号、偏移、块大小和内容地址登记到文件管理表25中。
图5是示出未使用文件表26的示例的图。在未使用文件表26中,存储删除时删除文件的文件识别号和删除文件的文件大小。文件系统访问单元23将删除文件的文件识别号和文件大小登记到未使用文件表26中。
接下来,将针对三个划分操作中的每一个描述存储设备2的操作,三个划分操作即为文件读取操作、文件写入操作和文件删除操作。
图6是示出存储设备2的文件读取操作的流程图。执行图6所示的流程图的处理,对于构成文件的每个块,实现了文件的读取。在图6所示的流程图中,当文件系统访问单元23已经从客户端接收到对要读取的文件的文件路径的指定时,存储设备2开始其处理。
文件系统访问单元23参照文件管理表25,以获得构成与文件路径相对应并且是读取目标的文件的块的内容地址(步骤A10)。
文件系统访问单元23指示CAS单元27基于构成作为读取目标的文件的块的内容地址来读取块。CAS单元27从磁盘设备28读取与内容地址相对应的块,将该块发送到文件系统访问单元23(步骤A11),然后终止处理流程。此后,文件系统访问单元23可以将块恢复成文件,并通过数据通信网络接口21将该文件发送到客户端。
图7是示出在存储设备2的文件写入操作中文件系统访问单元23的操作的流程图。在如图7所示的流程图中,当文件系统访问单元23从客户端接收到要对写入的文件的指定时,存储设备2开始其处理。对于该文件设置文件路径。
文件系统访问单元23参照包括在模式管理表24中的文件的文件路径、目标路径和模式,以确认待写入的目标文件对应于DE模式还是GP模式(步骤B10)。在DE模式的情况下(步骤B11中为“是”),文件系统访问单元23将待写入的目标文件的块写入CAS单元27(步骤B12),然后处理流程进行到步骤B18。稍后将描述CAS单元27的写入操作。
在步骤B12的处理中,当相关文件是新文件时,文件系统访问单元23对相关文件设置唯一文件识别号。此外,文件系统访问单元23基于在文件系统访问单元23中已经设置的标准将文件划分为块。文件系统访问单元23对于每个划分的块,将块识别信息的集合与文件路径一起登记到文件管理表中,该块识别信息的集合包括文件识别号、相关块的开始偏移以及块大小。此外,文件系统访问单元23将每个块写入CAS单元27,而不给定块识别信息的集合。
在GP模式的情况下(步骤B11中为“否”),文件系统访问单元23确认文件是否是现有文件或新文件。也就是说,当对于相关文件设置了文件识别号时,相关文件被确定为现有文件,并且当对于相关文件未设置任何文件识别号时,相关文件被确定为新文件(步骤B13)。
在现有文件的情况下(步骤B13中为“是”),处理流程进行到步骤B17。在新文件的情况下(步骤B13中为“否”),以如下所述的方式设置文件识别号。
首先,文件系统访问单元23确认未使用文件表26是否为空(步骤B14)。在未使用文件表26为空的情况下(步骤B13中为“是”),文件系统访问单元23重新设置唯一的文件识别号(步骤B15)。
在未使用文件表26不为空的情况下(步骤B13中为“否”),文件系统访问单元23从未使用文件表26中选择一个未使用文件识别号并对其进行设置(步骤B16)。例如,可以在未使用文件表26中按照降序顺序地选择未使用文件识别号。随后,文件系统访问单元23从未使用文件表26中删除所选择的文件识别号。
通过该处理,当对于其已经设置了一个未使用文件识别号的新文件具有与先前文件相同的块大小和偏移时,结果,新文件被存储在与先前文件的内容地址相同的内容地址处。也就是说,在磁盘设备28中已经成为未使用的内容地址不被保留为未使用,而是可以用于新文件数据的存储,因此,该配置使得能够实现提高存储介质的利用效率的写入。
这里,不以在步骤B14至B16的处理中描述的方式执行步骤B12中的处理。这是因为在DE模式的情况下,具有相同内容的块被给予相同的内容地址,以允许在多个文件之间重复的块仅被存储一次,从而节省存储介质的容量。
文件系统访问单元23将包括文件识别号、偏移和块大小这三组的块识别信息集合给予每个块,并将块登记到CAS单元27中(步骤B17)。此后,流程进行到步骤B18。以下将描述CAS单元27的写操作。
在步骤B17的处理中,文件系统访问单元23基于已经在文件系统访问单元23中设置的标准,将相关文件划分为块。此时,也存在相关文件未被划分为块的情况,但是整个块被作为一个块来处理。图4中示出的文件管理表25示例了GP模式的文件识别号为“1359”和“1360”的每个文件被做为一个块而整体处理的情况。
文件系统访问单元23对于每个块,将包括文件识别号、偏移和块大小这三组的块识别信息集合与文件路径一起登记到文件管理表中。此外,文件系统访问单元23将块识别信息的集合给予每个块,并将块写入CAS单元27。
在步骤B18中,文件系统访问单元23从CAS单元27接收各个块的内容地址,并用接收到的内容地址更新文件管理表25。此后,文件系统访问单元23终止处理流程。
图8是示出在存储设备2的文件写入操作中CAS单元27的操作的流程图。在图8所示流程图中,当CAS单元27已经从文件系统访问单元23接收到块的写入时,存储设备2开始其处理。
CAS单元27确认是否将识别信息(文件识别号、偏移和块大小)的集合给予要写入的每个块(步骤C10)。
在给定了识别信息集合的情况下(步骤C10中为“是”),CAS单元27对于每个块计算与块识别信息集合对应的哈希值(步骤C11)。
CAS单元27对于每个块基于计算的哈希值确定在磁盘设备28上的存储目的地,执行写入,然后向文件系统访问单元23通知每个块的存储目的地的内容地址(步骤CI2)。之后,CAS单元27终止处理流程。在这种情况下,当已经写入块时,执行写入以便重写块。
在步骤C10中的确定结果为是的情况下,以GP模式存储块。根据其计算哈希值的识别信息集合不是块自身的内容,因此,当已经写入块时,能够通过重写块来存储最新内容。此外,根据识别信息集合来计算哈希值比根据块的内容来计算哈希值容易,因此使得能够实现相应块的写入被更快地执行。
这里,可以以下面描述的方式执行基于哈希值来确定块的存储目的地的地址的方法。也就是说,CAS单元27保持包含哈希值的对应表和在其处已经写入对应块的地址。当给定块的哈希值已经存在于对应表中时,可以使用对应的地址。当在对应表中不存在给定块的哈希值时,在将块存储到磁盘设备28之后,利用在其处已经存储块的地址更新对应表。
在没有给定识别信息的集合的情况下(步骤C10中为“否”),CAS单元27计算与每个块的内容相对应的哈希值(步骤C13)。CAS单元27确定块是否已经被存储(步骤C14)。在块已经被存储的情况下(在步骤C14中为是),则不执行重写,然后终止处理流程。
在块未被存储的情况下(步骤C14中为“否”),CAS单元27对于每个块基于所计算的哈希值确定磁盘设备28上的存储目的地,执行写入,以及通知文件系统访问单元23每个块的存储目的地的内容地址(步骤C15)。之后,CAS单元27终止处理流程。在步骤C10中确定结果为否的情况下,以DE模式存储块。因此,由于没有执行重写,该配置使得能够实现提高存储介质的利用效率、加速写入等。
图9是示出存储设备2的文件删除操作的流程图。在图9所示的流程图中,当文件系统访问单元23从客户端接收到对要删除的文件的文件路径的指定时,存储设备2开始其处理。
文件系统访问单元23参照文件路径和模式管理表24来确认删除目标文件的模式(步骤D10)。在GP模式的情况下(步骤D11中为“是”),文件系统访问单元23从文件管理表25获取删除目标文件的识别号和块大小,并用所获取的识别号和块大小更新未使用文件表26(步骤DI2)。接着,文件系统访问单元23删除相关文件,并通过从文件管理表25中删除与相关文件有关的信息来更新文件管理表25(步骤D13)。此后,文件系统访问单元23终止处理流程。
在DE模式的情况下(步骤D11中为“否”),文件系统访问单元23删除该文件,并通过从文件管理表25中删除与相关文件有关的信息来更新文件管理表25(步骤D13)。此后,文件系统访问单元23终止处理流程。
这里,可以通过将诸如存储器的存储介质容纳在文件系统访问单元23中而在文件系统访问单元23中存储模式管理表24、文件管理表25和未使用文件表26,但是本实施例不限于该配置。模式管理表24、文件管理表25和未使用文件表26可以存储在CAS单元中。
这里,模式管理表24、文件管理表25和未使用文件表26分别具有图3所示的表格形式、图4所示的表格形式以及图5所示的表格形式,但是本发明不限于这些表格形式。可以以诸如B树的数据结构的形式创建模式管理表24、文件管理表25和未使用文件表26。此外,可以以任何形式创建模式管理表24、文件管理表25和未使用文件表26,只要模式管理表24的数据结构、文件管理表25的数据结构、以及未使用文件表26的数据结构分别能够保存和管理相当于图3所示的表的信息、相当于图4所示的表的信息以及相当于图5所示的表的信息。
如上所述,根据本实施例的存储设备2根据与块相关的并由客户端指定的存储方法来计算各自与块中的相应一个相关联的哈希值,基于所计算的哈希值中的相应一个确定在存储介质中每个块的地址,然后将块写入存储介质。该配置使得能够基于哈希值分离在其处将执行重复消除的地址和在其处将不执行重复消除的地址。因此,存储设备2能够在单个设备的基础上处理执行重复消除的写入和不执行重复消除的正常写入这两者。
此外,当不执行重复消除时,存储设备2将存在于存储介质上并且由于文件的删除而变为未使用的内容地址分配给新文件。该配置实现了一种最小化存储介质的减少并提高存储介质的利用效率的写入方法,这是当基于文件的内容选择存储介质中的文件的存储目的地时出现的问题。
如上所述,根据本实施例,能够提供一种存储设备,该存储设备被配置为对于每个文件根据确定相对于存储介质写入/读取的利用效率和处理性能中的哪一个将是优先的结果,基于单个设备适当地使用涉及消除重复的写入或者不涉及的重复消除的写入。
虽然已经参照本发明的示例性实施例具体示出和描述了本发明,但是本发明不限于这些实施例。本领域普通技术人员将理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。此外,应注意,发明人的意图是保留所要求保护的发明的所有等同物,即使权利要求在审查期间被修改。
以上公开的示例性实施例的全部或部分可以被描述为但不限于以下补充说明。
补充说明1
一种存储设备,包括:控制单元,所述控制单元被配置为将写入目标文件转换为一个或多个块,并根据是否将对写入目标文件应用重复消除来指定用于写入目标文件的写入方法;以及存储单元,所述存储单元包括存储介质,并且被配置为根据写入方法计算各自与一个或多个块中的对应的一个相关联的一个或多个哈希值,基于一个或多个哈希值中的相应一个确定存储介质上的一个或多个地址中的每一个,以及将一个或多个块写入存储介质。
补充说明2
根据补充说明1的存储设备,其中,在写入方法是对写入目标文件应用重复消除的方法的情况下,存储单元根据一个或多个块中的相应一个的内容计算一个或多个哈希值。
补充说明3
根据补充说明1或补充说明2的存储设备,其中,在写入方法是不对写入目标文件应用重复消除的方法的情况下,控制单元将一个或多个识别信息集合给予一个或多个块中的相应一个,并且存储单元根据一个或多个识别信息集合中的相应一个计算一个或多个哈希值中的每一个。
补充说明4
根据补充说明3的存储设备,其中,一个或多个识别信息集合中的每一个包括一个或多个块中的相应一个的识别号、偏移和块大小。
补充说明5
根据补充说明1至4中任一项的存储设备,其中,控制单元基于客户端的指定来指定是否将应用重复消除。
补充说明6
根据补充说明1至5中任一项的存储设备,其中,在写入方法是对写入目标文件应用重复消除的方法的情况下,当预先写入一个或多个块时存储单元不重写该一个或多个块。
补充说明7
根据补充说明1至6中任一项的存储设备,其中,在写入方法是不对写入目标文件应用重复消除的方法的情况下,当预先写入一个或多个块时存储单元重写该一个或多个块。
补充说明8
根据补充说明4至7中任一项的存储设备,其中,在写入方法是不对写入目标文件应用重复消除的方法的情况下,存储单元从已经被预先设置并且处于未使用状态的至少一个识别号中选择和设置识别号。
补充说明9
一种存储方法,包括:将写入目标文件转换为一个或多个块,根据是否将对写入目标文件应用重复消除指定用于写入目标文件的写入方法,根据写入方法计算各自与一个或多个块中的对应一个相关联的一个或多个哈希值;基于一个或多个哈希值中的相应一个,确定在存储介质上的一个或多个地址中的每一个,以及将一个或多个块写入存储介质中。
补充说明10
根据补充说明9的存储方法,其中,在写入方法是对写入目标文件应用重复消除的方法的情况下,根据一个或多个块中的相应一个的内容计算一个或多个哈希值。
补充说明11
根据补充说明9或10的存储方法,其中,在写入方法是不对写入目标文件应用重复消除的方法的情况下,将一个或多个识别信息集合给予一个或多个块中的相应一个,并且根据一个或多个识别信息集合中的相应一个计算一个或多个哈希值中的每一个。
补充说明12
根据补充说明11的存储方法,其中,一个或多个识别信息集合中的每一个包括一个或多个块中的相应一个的识别号、偏移和块大小。
补充说明13
根据补充说明9至12中任一项的存储方法,其中,基于客户端的指定来指定是否将应用消除重复。
补充说明14
根据补充说明9至13中任一项的存储方法,其中,在写入方法是对写入目标文件应用重复消除的方法的情况下,当预先写入一个或多个块时不重写一个或多个块。
补充说明15
根据补充说明9至14中任一项的存储方法,其中,在写入方法是不对写入目标文件应用重复消除的方法的情况下,当预先写入一个或多个块时重写一个或多个块。
补充说明16
根据补充说明12至15中任一项的存储方法,其中,在写入方法是对写入目标文件应用重复消除的方法的情况下,从已经被预先设置并且处于未使用状态的至少一个识别号中选择和设置识别号。