CN102004769B - 文件管理方法、设备及存储系统 - Google Patents

文件管理方法、设备及存储系统 Download PDF

Info

Publication number
CN102004769B
CN102004769B CN201010542579.6A CN201010542579A CN102004769B CN 102004769 B CN102004769 B CN 102004769B CN 201010542579 A CN201010542579 A CN 201010542579A CN 102004769 B CN102004769 B CN 102004769B
Authority
CN
China
Prior art keywords
volume
memory node
prefix value
data
node
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
Application number
CN201010542579.6A
Other languages
English (en)
Other versions
CN102004769A (zh
Inventor
程菊生
袁远
孔晗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN201010542579.6A priority Critical patent/CN102004769B/zh
Publication of CN102004769A publication Critical patent/CN102004769A/zh
Application granted granted Critical
Publication of CN102004769B publication Critical patent/CN102004769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种文件管理方法、设备及存储系统,其中,文件管理方法包括:将待存储的文件分割成多个数据块;根据各存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中;其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。使用本发明实施例提供的技术方案,便于文件的存储和管理。

Description

文件管理方法、设备及存储系统
技术领域
本发明涉及存储技术领域,特别涉及一种文件管理方法、设备及存储系统。
背景技术
随着分布式文件系统和集群系统的发展,很多在本地文件系统中应用的技术被移植到分布式文件系统和集群系统中,比如数据冗余技术。在本地文件系统中,利用同一存储节点的不同磁盘上的卷分别存储同一个文件的不同数据块,当该存储节点的某个磁盘出现故障时,利用其他磁盘上相应卷中存储的数据块内容恢复出该出现故障的磁盘上存储的数据块内容。
在分布式文件系统和集群系统中,数据冗余一般指采用多个副本,将不同的副本存放在不同的存储节点上,例如,在需要存储文件时,将待存储文件分割成多个数据块,每个数据块在不同的存储节点上存储多个副本,以便后续某个存储节点故障时进行数据恢复。然而,这种通过将不同的数据副本存放在不同的存储节点上来实现数据冗余的存储方式,浪费了存储资源。
发明内容
本发明实施例提供一种文件管理方法、设备及存储系统,通过将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,便于文件的存储和管理。
有鉴于此,本发明实施例提供:
一种文件管理方法,包括:
将待存储的文件分割成多个数据块,所述数据块的数量小于或等于存储节点的数目;
根据存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中;
其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。
一种服务器,包括:
分割单元,用于将待存储的文件分割成多个数据块,所述数据块的数量小于或等于存储节点的数目;
写入单元,用于根据存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中;
其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。
一种存储系统,包括:上述服务器和多个存储节点,
所述存储节点,用于存储数据块。
本发明实施例存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,根据卷号将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,即将一个待存储文件存储到一个超级卷中,从而使每个数据块无需在不同的存储节点上存储多个副本,不仅节省存储资源,且便于文件的后续管理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的文件管理方法流程图;
图2是本发明另一实施例提供的文件管理方法流程图;
图3是本发明实施例提供的一种前缀树结构图;
图4是本发明实施例提供的构建超级卷示意图;
图5是本发明实施例提供的超级卷分裂流程图;
图6A是本发明实施例提供的分裂前的超级卷结构示意图;
图6B是本发明实施例提供的分裂后的超级卷结构示意图;
图7是本发明实施例提供的数据迁移流程图;
图8是本发明实施例提供的数据迁移示意图;
图9是本发明实施例提供的数据恢复流程图;
图10是本发明实施例提供的数据恢复示意图;
图11是本发明实施例提供的服务器结构图;
图12是本发明实施例提供的存储系统结构图。
具体实施方式
参阅图1,本发明实施例提供一种文件管理方法,其包括:
101、将待存储的文件分割成多个数据块。
具体的,当要存储一个文件时,可以按照设定分割规则将该待存储文件分割为多个数据块,其中,数据块的个数必须小于或等于存储节点的数目。
102、根据存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。
由于前缀值用于区别同一存储节点上不同的卷,则利用存储节点的索引和卷所对应的前缀值组成的卷号就能唯一标识存储系统中的卷了。
在步骤102之前,还包括:为每个存储节点构建前缀树,其中,前缀树是树型结构,包括M层节点,第0层为根节点,第1到M-1层为叶子节点,前缀树中第i层节点的值为长度为i的二进制数(其中,i大于或者等于1),长度为N的子节点的二进制数的前N-1位是所述子结点的父结点的二进制数,最后一位是0或者1。其中,前缀树中没有子节点的叶子节点的值为前缀值。
其中,构建前缀树的过程具体包括:将前缀树的根设为0,控制其逐层进行分裂,即第一层叶子节点的值为0、1;若第一层的各叶子节点再进行分类,即0分裂为00和01,1分裂为10和11,则第二层叶子节点的值为00、01、10、11等。
其中,本发明实施例及后续实施例中的存储系统可以指分布式文件系统或者集群系统。本发明实施例各步骤的执行主体可以是服务器。
本发明实施例中存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,根据卷号将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,从而使每个数据块无需在不同的存储节点上存储多个副本,因此本发明实施例提供的文件管理方法不仅节省存储空间,且便于文件的后续管理。
为了使本发明实施例更加清楚明白,请参阅图2,如下实施例将详细介绍本发明实施例提供的文件管理方法,该方法具体包括:
201、服务器对各存储节点中的磁盘进行分区和格式化,在分区的基础上构建卷,为每个存储节点构建前缀树,所述前缀树中的前缀值用于区别同一存储节点上不同的卷;为各存储节点中的卷配置卷号,所述卷号包括:对应存储节点的索引和所述卷所对应的前缀值。
该步骤中构建前缀树的过程包括:将前缀树的根设为0,控制其逐层进行分裂,即第一层叶子节点的值为0、1,若第一层的叶子节点都进行分裂,则第二层叶子节点的值为00、01、10、11,若第二层的叶子节点都进行分裂,则第三层叶子节点的值为000、001、010、011、100、101、110、111,若仅将第二层叶子节点00和11进行分裂,则前缀树结构如图3所示。
具体的,为各存储节点上的每个卷分配卷号,该卷号在存储系统中可以唯一标识该卷,该卷号包括:存储节点的索引和该卷对应的前缀值。例如,存储系统中有4个存储节点,如果每个存储节点上只有一个卷,则各存储节点的卷号如下表1所示:
 存储节点0  存储节点1  存储节点2  存储节点3
 0:00  0:01  0:02  0:03
表1
其中,冒号的前面一位为前缀值,冒号的后面两位为存储节点的索引,存储节点的索引即为该存储节点在存储系统中的编号。
如果存储系统中有4个存储节点,每个存储节点上有两个卷,则各存储节点的卷号如下表2所示:
 存储节点0  存储节点1  存储节点2  存储节点3
 00:00  00:01  00:02  00:03
 01:00  01:01  01:02  01:03
表2
其中,冒号的前两位为前缀值,冒号的后两位为存储节点的索引。
202、服务器确定各存储节点上前缀值相同的卷属于同一个超级卷,并记录超级卷的信息,该超级卷信息包括:超级卷标识和该超级卷中的卷的卷号。
具体的,服务器将各存储节点上前缀值相同的卷划到同一个超级卷中,该超级卷的容量等于这些前缀值相同的卷的容量之和。如图4所示,第一个前缀树是为存储节点0构建的前缀树,第二个前缀树是为存储节点1构建的前缀树,第三个前缀树是为存储节点2构建的前缀树,三个前缀树中的前缀值分别对应相应存储节点上的卷,将三个存储节点上具有相同前缀值的卷划到一个超级卷中,如图4中的虚框所示。相应的,记录的超级卷信息如下表3所示:
  存储节点0   存储节点1   存储节点2
 超级卷000   000:00   000:01   000:02
 超级卷001   001:00   001:01   001:02
 超级卷110   110:00   110:01   110:02
 超级卷111   111:00   111:01   111:02
 超级卷01   01:00   01:01   01:02
 超级卷10   10:00   10:01   10:02
表3
表3中的第一列为超级卷标识,000:00、000:01、000:02分别为三个存储节点上属于超级卷000的卷,同理10:00、10:01、10:02分别为三个存储节点上属于超级卷10的卷。
203、服务器接收待存储的文件,将待存储的文件分割成多个数据块,并控制所分割的数据块数目小于或者等于存储系统中存储节点的个数。
具体的,将待存储文件分割成多个数据块具体的方式可以是:采用RAID-5(Redundant Array of Independent Disk,独立冗余磁盘阵列)、RAID-6或者Erasure Code(纠删码)等方法将文件进行条带化,得到多个数据块。
204、将多个数据块分别存储到同一超级卷的各卷中。
具体的,可以先根据待存储文件计算哈希值,具体的,可以是根据待存储文件的内容计算哈希值,确定哈希值的前N位为待写入的超级卷标识,其中,N为自然数,具体位数可以根据情况进行设定,可以是2位、3位、4位、8位等,具体可以采用MD5(Message Digest Algorithm,消息摘要算法)、SHA-1(HashAlgorithm,哈希算法)、SHA-128等算法计算哈希值,然后将该待存储文件分割成的多个数据块分别存储到该超级卷的各卷中。以获得的哈希值的前3位为待写入的超级卷的标识为例,假定计算的哈希值前3位为001,确定该001为待写入的超级卷标识,则将各数据块存储到卷号为001:00、001:01和001:02的卷中,这三个卷分别位于存储节点0、1、2上。其中,将多个数据块分别存储到该超级卷的各卷中时要保证超级卷中的一个卷只能存储一个数据块,以便后续当存储节点出现故障时,能够利用其他存储节点卷中的数据内容恢复出该故障节点的卷中的数据内容。
本发明实施例通过构建前缀树和为各存储节点分配包括前缀值和存储节点索引的卷号,以便将不同存储节点上具有相同前缀值的卷划为一个超级卷,在存储文件时,将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,即将一个待存储文件存储到一个超级卷中,不仅节省存储空间,且便于文件的后续管理。
后续需要读文件时,根据文件的哈希值确定该文件所存储的超级卷,然后从超级卷中的各卷读取数据内容。
当有新的应用需要多个超级卷时,需要进行超级卷分裂,参阅图5,如下本发明实施例提供一种超级卷分裂的方法,该方法具体包括:
501、服务器接收第一存储节点发送的卷分裂请求消息,所述卷分裂请求消息携带第一前缀值,所述第一前缀值为第一存储节点请求分裂的卷的前缀值。
当某个存储节点出现新的应用需要多个卷,想对现有的某个卷进行分裂时,其可以向服务器发送卷分裂请求消息,该卷分裂请求消息携带该存储节点所请求分裂的卷的前缀值。
502、服务器将与各存储节点对应的前缀树中与第一前缀值对应的叶子节点进行分裂,得到两个新前缀值,将第一前缀值对应的卷的卷号分别更新为两个卷号,这两个卷号中分别包括一个新的前缀值。其中,该步骤中的各存储节点是卷号中具有所述第一前缀值的叶子节点。
由于服务器为每个存储节点都创建了前缀树,则该步骤中需要将每个前缀树中的第一前缀值对应的叶子节点进行分裂,则相应的得到两个叶子节点,这两个叶子节点分别对应两个新前缀值,具体的,是通过在第一前缀值的末尾分别增加一个值为0的比特位和增加一个值为1的比特位得到两个新前缀值,根据分裂结果,将第一前缀值对应的卷的卷号更新为两个卷号,这两个卷号的前缀值为上述两个新前缀值。如下举例说明,假定第一存储节点(可以假定其为表4中的存储节点1)请求分裂前缀值为01的卷,则服务器将各存储节点的前缀树中前缀值01对应的叶子节点进行分裂,相应的得到两个叶子节点,这两个叶子节点的前缀值分别为010和011,然后根据分裂结果,更新超级卷信息,更新超级卷信息包括更新超级卷标识和存储节点的卷号,比如将超级卷标识01更新为010和011,将存储节点0的卷号01:00更新为010:00和011:00,具体如表4所示。
  存储节点0   存储节点1   存储节点2
 超级卷000   000:00   000:01   000:02
 超级卷001   001:00   001:01   001:02
 超级卷110   110:00   110:01   110:02
 超级卷111   111:00   111:01   111:02
 超级卷010   010:00   010:01   010:02
 超级卷011   011:00   011:01   011:02
 超级卷10   10:00   10:01   10:02
表4
503、服务器向各存储节点发送指示卷分裂的消息,所述指示卷分裂的消息包括对应存储节点更新后的两个卷号和指示对应存储节点将第一前缀值所对应的卷分裂成两个卷的指示信息。
后续各存储节点接收到指示卷分裂的消息之后,将第一前缀值所对应的卷分裂成两个卷,其中,步骤502中所分裂成的两个卷的卷号就是所述指示卷分裂的消息中携带的卷号,其他存储节点也会进行类似的处理。这样就将一个超级卷分裂成两个超级卷,如图6A和6B所示,图6A示出了分裂前的超级卷结构,图6B示出了分裂后的超级卷结构。
需要说明的是,步骤501为可选步骤,当出现新的应用需要多个卷时,可以由服务器决定将某个卷进行分裂。
本发明实施例提供的超级卷分裂方法可以实现超级卷的动态分裂,以便使用新的应用。
当有新的存储节点加入超级卷时,可能导致进行卷的数据进行迁移,即在同一超级卷中进行数据迁移,请参阅图7,本发明实施例提供一种数据迁移方法,该方法具体包括:
701、服务器向需要进行数据迁移的源存储节点发送第一迁移指示消息,该第一迁移指示消息包括:目标存储节点标识和第二前缀值,其中,第二前缀值为源存储节点要进行数据迁移的卷所对应的前缀值;服务器向需要接收迁移的数据的目标存储节点发送第二迁移指示消息,该第二迁移指示消息包括:第二前缀值。
其中,第一迁移指示消息用于指示源存储节点向目标存储节点发送第二前缀值对应的本地卷中的数据;第二迁移指示消息用于指示目标存储节点接收源存储节点迁出的数据并存入第二前缀值对应的本地卷中。
702、源存储节点收到第一迁移指示消息之后,向目标存储节点发送数据迁移请求消息。
703、目标存储节点收到数据迁移请求消息之后,将第二前缀值对应的本地卷设置为“傀儡卷”,目标存储节点向源存储节点发送针对数据迁移请求消息的响应消息,该响应消息用于通知源存储节点该目标存储节点已做好接收数据准备。
该步骤中,将本地卷设置为“傀儡卷”的方式为:将该本地卷设置为受保护状态,此时,该卷不可移动,且不能读写,避免在后续接收数据期间系统对“傀儡卷”中的数据进行读写,防止读写错误。
704、源存储节点接收到响应消息后,将第二前缀值对应的本地卷中的数据向目标存储节点发送。
705、目标存储节点接收源存储节点发送的数据并将数据存入第二前缀值对应的本地卷中,在接收完成后,将“傀儡卷”激活,目标存储节点向源存储节点发送通知消息,该消息用于通知源存储节点数据迁移完成。
该步骤中将“傀儡卷”激活的方式为:取消该卷的受保护状态,以后系统可以对该卷中的数据进行读写。
其中,设置该卷为可移动即为设置该卷为可读写状态。
706、源存储节点收到通知消息之后,删除第二前缀值对应的本地卷中的数据。
图8示出了数据迁移的过程,其将存储节点3中卷号为00:3的卷中的数据迁入存储节点4上的卷号为00:4的卷中。
上述实施例提供的数据迁移方法能够在同一超级卷内实现数据的迁移,由于在同一超级卷内进行数据迁移,可便于存储节点故障时的数据恢复,提高数据的安全性。
当某个存储节点发生故障时,会导致该节点上的所有数据丢失,为了恢复出故障存储节点上的数据,请参阅图9,本发明实施例提供一种数据恢复方法,该方法具体包括:
901、服务器通过心跳消息发现某个存储节点故障,选择用于数据恢复的目标存储节点。
902、服务器向目标存储节点发送数据恢复请求消息。
903、目标存储节点接收到数据恢复请求后,确定用于接收数据的卷,并将该卷设置为“傀儡卷”,向服务器发送针对该数据恢复请求消息的响应消息,响应消息包括所确定的卷信息,该响应消息用于通知服务器该目标存储节点已准备好接收数据。其中,卷信息包括:卷的ID、容量及所属的存储节点等信息。
具体的,目标存储节点收到数据恢复请求消息后,检查本地剩余存储空间大小,如果剩余存储空间达到目标存储节点预先设定的可接收数据的阈值,则将剩余存储空间中不属于任何超级卷中的一个卷设置为“傀儡卷”,该“傀儡卷”用于接收后续恢复出的数据。
其中,将一个卷设置为“傀儡卷”的方式为:将该卷设置为受保护状态,此时,该卷不可移动,且不能读写,避免在后续接收数据期间系统对“傀儡卷”中的数据进行读写,防止读写错误。
904、服务器收到响应消息后,将系统状态设置为恢复状态,读取除故障存储节点以外的其他存储节点中具有相同前缀值的卷中的数据,根据所读取的数据恢复出故障存储节点上具有相同前缀值的卷中的数据,根据目标存储节点确定的卷信息,将恢复出的数据存储到目标存储节点中的相应卷中,然后将系统状态设置为正常。
其中,故障存储节点和其他存储节点中具有相同前缀值的卷分别存储有同一文件的不同数据块。
905、目标存储节点在数据接收完成后,将“傀儡卷”激活。
该步骤中将“傀儡卷”激活的方式为:取消该卷的受保护状态,以后系统可以对该卷中的数据进行读写。
本发明实施例在存储节点故障时,可以利用同一超级卷中其他存储节点的卷中的数据恢复出故障存储节点上的数据,提高数据的安全性。
图10示出了数据恢复的过程,假定存储节点3故障,将存储节点3上卷号为00:3中的数据恢复出并存储到存储节点2中。
参阅图11,本发明实施例提供一种服务器,其包括:
分割单元1101,用于将待存储的文件分割成多个数据块;
写入单元1102,用于根据各存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。
在一种实现方式中,为了实现超级卷内的数据迁移,服务器还包括:发送单元1103,用于向源存储节点发送第一迁移指示消息,所述第一迁移指示消息包括:目标存储节点标识和第二前缀值,所述第二前缀值为源存储节点要进行数据迁移的卷所对应的前缀值,所述第一迁移指示消息用于指示源存储节点向目标存储节点发送所述第二前缀值对应的本地卷中的数据;向目标存储节点发送第二迁移指示消息,所述第二迁移指示消息包括:第二前缀值,所述第二迁移指示消息用于指示目标存储节点接收源存储节点迁出的数据并存入第二前缀值对应的本地卷中。
在一种实现方式中,当存储节点故障时,为了恢复出存储节点上的数据,该服务器还包括:选择单元1105,用于当存储有所述文件分割成的数据块的存储节点故障时,选择用于接收故障的存储节点上的数据的目标存储节点;发送单元1103,用于向所述目标存储节点发送数据恢复请求消息;接收单元1104,用于接收目标存储节点发送的针对所述数据恢复请求消息的响应消息;所述响应消息中携带所述目标存储节点确定接收数据的卷信息;恢复单元1106,用于读取除故障存储节点以外的其他存储有所述文件分割成的数据块的存储节点中具有相同前缀值的卷中的数据,根据所读取的数据恢复出故障存储节点上具有相同前缀值的卷中的数据;此时写入单元1102,还用于根据所述目标存储节点确定的接收数据的卷信息,将恢复单元恢复出的数据存储到目标存储节点中的相应卷中。
在一种实现方式中,所述写入单元1102用于根据文件的哈希值的前N位获得前缀值,将多个数据块分别存储到所获得的前缀值所对应的多个存储节点的卷中,其中,N为自然数。
在一种实现方式中,该服务器还包括:构建单元1108,用于为每个存储节点构建前缀树,不再进行分裂的叶子节点的值为前缀值,即没有子节点的叶子节点的值为前缀值;其中,所述前缀树中的前缀值用于区别同一存储节点上不同的卷;卷号分配单元1109,用于为各存储节点中的卷配置卷号,所述卷号包括:对应存储节点的索引和所述卷所对应的前缀值。
在一种实现方式中,为了实现卷分裂,该服务器还包括:
分裂单元1107,用于当各存储节点上第一前缀值对应的卷需要分裂时,将各存储节点中与第一前缀值对应的卷的卷号分别更新为两个卷号,所述两个卷号中的前缀值是通过在第一前缀值的末尾增加一个值为0的比特位和增加一个值为1的比特位得到的两个新前缀值;具体的,是将与各存储节点对应的前缀树中与第一前缀值对应的卷的卷号分别更新为两个卷号。
具体的,分裂单元是将构建单元1108构建的每个前缀树中的第一前缀值对应的叶子进行分裂,则相应的得到两个叶子,这两个叶子分别对应两个新前缀值。
发送单元1103,用于向各存储节点发送指示卷分裂的消息,所述指示卷分裂的消息包括对应存储节点更新后的两个卷号和指示对应存储节点将所述第一前缀值所对应的卷分裂成两个卷的指示信息,其中,对应存储节点所分裂成的两个卷的卷号就是所述指示卷分裂的消息中携带的对应存储节点更新后的卷号。
在一种实现方式中,服务器是接收到某个存储节点的卷分裂请求之后进行卷分裂的,此时该服务器还包括:接收单元1104用于接收第一存储节点发送的卷分裂请求消息,所述卷分裂请求消息携带第一前缀值,所述第一前缀值为第一存储节点请求分裂的卷的前缀值;所述发送单元1103具体用于接收到所述卷分裂请求消息之后,向各存储节点发送指示卷分裂的消息。
需要说明的是,上述几种实现方式的方案可以结合使用,不影响本发明的实现。
本发明实施例中存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,根据卷号将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,不仅节省存储空间,且便于文件的后续管理。
参阅图12,本发明实施例提供一种存储系统,其包括:服务器1201和多个存储节点1202,
服务器1201的结构和功能请参阅图11所示实施例以及方法实施例部分,在此不再赘述;
存储节点1202,用于存储数据块。
本发明实施例中存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,根据卷号将待存储文件分割出的多个数据块分别存储到不同存储节点上具有相同前缀值的卷中,不仅节省存储空间,且便于文件的后续管理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的文件管理方法、设备及存储系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种文件管理方法,其特征在于,包括:
确定前缀值相同的卷属于同一超级卷,并记录超级卷的信息,该超级卷信息包括:超级卷标识和该超级卷中的卷的卷号;
将待存储的文件分割成多个数据块,所述数据块的数量小于或等于存储节点的数目;
根据存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中;
其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
向源存储节点发送第一迁移指示消息,所述第一迁移指示消息包括:目标存储节点标识和第二前缀值,所述第二前缀值为源存储节点要进行数据迁移的卷所对应的前缀值,所述第一迁移指示消息用于指示源存储节点向目标存储节点发送所述第二前缀值对应的本地卷中的数据;
向目标存储节点发送第二迁移指示消息,所述第二迁移指示消息包括:第二前缀值,所述第二迁移指示消息用于指示目标存储节点接收源存储节点迁出的数据并存入第二前缀值对应的本地卷中。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
当存储有所述文件分割成的数据块的存储节点故障时,选择用于接收故障的存储节点上的数据的目标存储节点;
向所述目标存储节点发送数据恢复请求消息,接收目标存储节点发送的针对所述数据恢复请求消息的响应消息,所述响应消息中携带所述目标存储节点确定接收数据的卷信息;
读取除故障存储节点以外的其他存储有所述文件分割成的数据块的存储节点中具有相同前缀值的卷中的数据;
根据所读取的数据恢复出故障存储节点上具有相同前缀值的卷中的数据;
根据所述目标存储节点确定的接收数据的卷信息,将恢复出的数据存储到目标存储节点中的相应卷中。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中包括:
根据待存储文件的哈希值的前N位获得前缀值,将多个数据块分别存储到所获得的前缀值所对应的多个存储节点的卷中,其中,N为自然数。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
将多个存储节点中与第一前缀值对应的卷的卷号分别更新为两个卷号,所述两个卷号中的前缀值是通过在第一前缀值的末尾增加一个值为0的比特位和增加一个值为1的比特位得到的两个新前缀值;其中,所述多个存储节点是更新前的卷号包括第一前缀值的存储节点;
向所述多个存储节点发送指示卷分裂的消息,所述指示卷分裂的消息包括对应存储节点更新后的两个卷号和指示对应存储节点将所述第一前缀值所对应的卷分裂成两个卷的指示信息。
6.根据权利要求5所述的方法,其特征在于,该方法还包括:
接收第一存储节点发送的卷分裂请求消息,所述卷分裂请求消息携带第一前缀值,所述第一前缀值为第一存储节点请求分裂的卷的前缀值;所述第一存储节点为所述多个存储节点中的一个存储节点;
所述向多个存储节点发送指示卷分裂的消息具体为:
接收到所述卷分裂请求消息之后,向所述多个存储节点发送指示卷分裂的消息。
7.一种服务器,其特征在于,包括:
分割单元,用于将待存储的文件分割成多个数据块,所述数据块的数量小于或等于存储节点的数目;
写入单元,用于根据存储节点的卷号,将所述多个数据块分别存储到不同存储节点上具有相同前缀值的卷中;
其中,存储节点的卷号包括:对应存储节点的索引和所述卷所对应的前缀值,所述前缀值用于区别同一存储节点上不同的卷,且前缀值相同的卷属于同一超级卷,该超级卷信息包括:超级卷标识和该超级卷中的卷的卷号。
8.根据权利要求7所述的服务器,其特征在于,还包括:
发送单元,用于向源存储节点发送第一迁移指示消息,所述第一迁移指示消息包括:目标存储节点标识和第二前缀值,所述第二前缀值为源存储节点要进行数据迁移的卷所对应的前缀值,所述第一迁移指示消息用于指示源存储节点向目标存储节点发送所述第二前缀值对应的本地卷中的数据;向目标存储节点发送第二迁移指示消息,所述第二迁移指示消息包括:第二前缀值,所述第二迁移指示消息用于指示目标存储节点接收源存储节点迁出的数据并存入第二前缀值对应的本地卷中。
9.根据权利要求7所述的服务器,其特征在于,还包括:
选择单元,用于当存储有所述文件分割成的数据块的存储节点故障时,选择用于接收故障的存储节点上的数据的目标存储节点;
发送单元,用于向所述目标存储节点发送数据恢复请求消息;
接收单元,用于接收目标存储节点发送的针对所述数据恢复请求消息的响应消息;所述响应消息中携带所述目标存储节点确定接收数据的卷信息;
恢复单元,用于读取除故障存储节点以外的其他存储有所述文件分割成的数据块的存储节点中具有相同前缀值的卷中的数据,根据所读取的数据恢复出故障存储节点上具有相同前缀值的卷中的数据;
所述写入单元,还用于根据所述目标存储节点确定的接收数据的卷信息,将恢复出的数据存储到目标存储节点中的相应卷中。
10.根据权利要求7所述的服务器,其特征在于:
所述写入单元,用于根据文件的哈希值的前N位获得前缀值,并根据存储节点的卷号,将多个数据块分别存储到所获得的前缀值所对应的多个存储节点的卷中,其中,N为自然数。
11.根据权利要求7所述的服务器,其特征在于,还包括:
分裂单元,用于将多个存储节点中与第一前缀值对应的卷的卷号更新为两个卷号,所述两个卷号中的前缀值是通过在第一前缀值的末尾增加一个值为0的比特位和增加一个值为1的比特位得到的两个新前缀值;其中,所述多个存储节点是更新前的卷号包括第一前缀值的存储节点;
发送单元,用于向所述多个存储节点发送指示卷分裂的消息,所述指示卷分裂的消息包括第一前缀值,所述指示卷分裂的消息包括对应存储节点更新后的两个卷号和指示对应存储节点将所述第一前缀值所对应的卷分裂成两个卷的指示信息。
12.根据权利要求11所述的服务器,其特征在于,还包括:
接收单元,用于接收第一存储节点发送的卷分裂请求消息,所述卷分裂请求消息携带第一前缀值,所述第一前缀值为第一存储节点请求分裂的卷的前缀值;所述第一存储节点为所述多个存储节点中的一个存储节点;
所述发送单元,用于在接收到所述卷分裂请求消息之后,向所述多个存储节点发送指示卷分裂的消息。
13.一种存储系统,其特征在于,包括:多个存储节点和权利要求7-12任一项所述的服务器,其中,
所述存储节点,用于存储数据块。
CN201010542579.6A 2010-11-12 2010-11-12 文件管理方法、设备及存储系统 Active CN102004769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010542579.6A CN102004769B (zh) 2010-11-12 2010-11-12 文件管理方法、设备及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010542579.6A CN102004769B (zh) 2010-11-12 2010-11-12 文件管理方法、设备及存储系统

Publications (2)

Publication Number Publication Date
CN102004769A CN102004769A (zh) 2011-04-06
CN102004769B true CN102004769B (zh) 2013-03-27

Family

ID=43812131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010542579.6A Active CN102004769B (zh) 2010-11-12 2010-11-12 文件管理方法、设备及存储系统

Country Status (1)

Country Link
CN (1) CN102004769B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427556A (zh) * 2011-09-13 2012-04-25 珠海迈科电子科技有限公司 一种基于机顶盒的电视节目录制方法及系统
CN103425435B (zh) * 2012-05-15 2016-01-20 深圳市腾讯计算机系统有限公司 磁盘存储方法及磁盘存储系统
CN102880522B (zh) * 2012-09-21 2014-12-31 中国人民解放军国防科学技术大学 面向硬件故障的系统关键文件故障纠正方法及装置
CN103793425B (zh) * 2012-10-31 2017-07-14 国际商业机器公司 用于分布式系统的数据处理方法及装置
CN103051691B (zh) * 2012-12-12 2015-09-09 华为技术有限公司 分区分配方法、装置以及分布式存储系统
CN104166520B (zh) * 2013-05-20 2019-01-11 深圳先进技术研究院 分布式硬盘系统及在其中进行数据迁移的方法
CN104346359B (zh) * 2013-07-29 2017-11-17 深圳市腾讯计算机系统有限公司 一种存储索引的方法和装置
CN103617250B (zh) * 2013-11-28 2017-07-18 中经云数据存储科技(北京)有限公司 基于光存储阵列的文件管理方法以及文件格式系统
CN103793666A (zh) * 2014-01-24 2014-05-14 中经云数据存储科技(北京)有限公司 一种数据文件的保护方法及系统
CN104156380B (zh) * 2014-03-04 2019-03-26 深圳信息职业技术学院 一种分布式存储器哈希索引方法及系统
CN104503706B (zh) * 2014-12-23 2017-10-10 中国科学院计算技术研究所 一种基于磁盘阵列的数据存储及读取方法
CN107688567B (zh) * 2016-08-03 2021-02-09 腾讯科技(深圳)有限公司 一种索引存储方法及相关装置
CN108156189B (zh) * 2016-12-02 2019-03-08 中科星图股份有限公司 一种多节点系统中冗余数据处理方法
CN107145521B (zh) * 2017-04-10 2019-05-21 杭州趣链科技有限公司 一种面向区块链多级智能合约的数据迁移方法
CN111488321A (zh) * 2020-03-05 2020-08-04 北京联创信安科技股份有限公司 一种对存储卷的管理系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216791B (zh) * 2008-01-04 2010-07-07 华中科技大学 基于指纹的文件备份方法
CN101605148A (zh) * 2009-05-21 2009-12-16 何吴迪 云存储的并行系统的架构方法
CN101673289B (zh) * 2009-10-10 2012-08-08 成都市华为赛门铁克科技有限公司 分布式文件存储构架的构建方法和装置
CN101814045B (zh) * 2010-04-22 2011-09-14 华中科技大学 一种用于备份服务的数据组织方法

Also Published As

Publication number Publication date
CN102004769A (zh) 2011-04-06

Similar Documents

Publication Publication Date Title
CN102004769B (zh) 文件管理方法、设备及存储系统
US20230333930A1 (en) Distributed Erasure Coded Virtual File System
US10019317B2 (en) Parity protection for data chunks in an object storage system
CN106407040B (zh) 一种远程数据复制方法及系统
CN100592251C (zh) 储存虚拟化电脑系统及储存系统中管理资料快照影像方法
WO2020204882A1 (en) Snapshot-enabled storage system implementing algorithm for efficient reading of data from stored snapshots
CN107436725A (zh) 一种数据写、读方法、装置及分布式对象存储集群
CN103761190B (zh) 数据处理方法及装置
US20100161565A1 (en) Cluster data management system and method for data restoration using shared redo log in cluster data management system
US20180246793A1 (en) Data stripping, allocation and reconstruction
US20100161564A1 (en) Cluster data management system and method for data recovery using parallel processing in cluster data management system
CN103514249B (zh) 一种数据自精简方法和系统及存储装置
WO2018098972A1 (zh) 一种日志恢复方法、存储装置和存储节点
CN110383251B (zh) 存储系统、计算机可读记录介质、系统的控制方法
CN103827804B (zh) 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法
CN105404469A (zh) 一种视频数据的存储方法和系统
CN102652423A (zh) 用于集群选择和协作复制的集群族
US20100306466A1 (en) Method for improving disk availability and disk array controller
CN102387179B (zh) 分布式文件系统及其结点、存储方法和存储控制方法
CN105138281B (zh) 一种物理磁盘的共享方法及装置
CN109582213A (zh) 数据重构方法及装置、数据存储系统
CN111638995A (zh) 元数据备份方法、装置及设备、存储介质
CN107729536A (zh) 一种数据存储方法和装置
CN106775481A (zh) 数据读取方法及设备
CN117075821B (zh) 一种分布式存储方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGY CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220831

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right