CN103942112A - 磁盘容错方法、装置及系统 - Google Patents
磁盘容错方法、装置及系统 Download PDFInfo
- Publication number
- CN103942112A CN103942112A CN201310027284.9A CN201310027284A CN103942112A CN 103942112 A CN103942112 A CN 103942112A CN 201310027284 A CN201310027284 A CN 201310027284A CN 103942112 A CN103942112 A CN 103942112A
- Authority
- CN
- China
- Prior art keywords
- file
- mark
- disk
- node
- data block
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
Abstract
本发明公开了一种磁盘容错方法、装置及系统,属于计算机领域。所述方法包括:接收访问文件请求;获取文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点中包括的相互对应的磁盘存储相同的内容;从获取的每个节点列表中分别选择一个节点中访问文件包括的数据块;当从某个节点中访问失败,则在节点所在的节点列表中选择其他的一个节点,根据文件的标识从选择的节点中访问文件包括的数据块。本发明通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能。
Description
技术领域
本发明涉及计算机领域,特别涉及一种磁盘容错方法、装置及系统。
背景技术
磁盘容错是指当磁盘系统出现数据、文件损坏或丢失时,磁盘系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故之前的状态,使系统能够连续正常运行的技术。
现有技术中,磁盘容错一般采用RAID,其利用多块磁盘并通过某种校验机制来确保数据可靠性,按照实现方式和容错性能不同分为0-7多种类型,其中最出名的为RAID1和RAID5。现有技术一,RAID1将两块磁盘互为主从备份,数据写入时同时写入到两块磁盘,数据访问时候首先从主磁盘访问,访问失败后,再从备份磁盘访问。这种技术实现简单,提供很高数据可用性,而且磁盘主磁盘离线后,可以直接从备份磁盘恢复,不会影响性能。现有技术二,RAID5将磁盘和数据条带化,数据读写同时对多个磁盘进行,并且奇偶检验块离散分布于各个磁盘中,只要有一块磁盘损坏,可以根据其他磁盘的信息进行恢复。这种技术对于N块盘的阵列而言,磁盘空间利用率能到达(N-1)/N。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
对于RAID1,由于两块磁盘同一时刻只有一块磁盘提供服务,磁盘利用率只有50%。而RAID5写性能非常差,每次写入需要首先访问旧数据、旧奇偶校验数据,然后写入新数据、生成奇偶校验数据并写入,而且实现复杂性比较高,RAID控制器、RAID元数据信息问题可能成为整个系统的瓶颈,并且对多块磁盘同时存储、机器掉电、宕机等系统故障无能为力。
发明内容
为了提高磁盘利用率及读写性能,本发明实施例提供了一种磁盘容错方法、装置及系统。所述技术方案如下:
一方面,提供了一种磁盘容错方法,所述方法包括:
接收访问文件请求,所述访问文件请求中携带文件的标识;
根据预存的文件的标识与节点列表的对应关系和所述文件的标识,获取所述文件对应的多个节点列表,所述节点列表包括多个节点,每个节点包括多个磁盘,所述每个节点包括的磁盘一一对应,在所述每个节点中相互对应的磁盘存储相同的内容;
从所述获取的每个节点列表中分别选择一个节点,根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块;
当从某个节点中访问失败,则在所述节点所在的节点列表中选择其他的一个节点,根据所述文件的标识从所述选择的节点中访问所述文件包括的数据块。
另一方面,本发明提供了一种磁盘容错装置,所述装置包括:
接收模块,用于接收访问文件请求,所述访问文件请求中携带文件的标识;
第一获取模块,用于根据预存的文件的标识与节点列表的对应关系和所述文件的标识,获取所述文件对应的多个节点列表,所述节点列表包括多个节点,每个节点包括多个磁盘,所述每个节点包括的磁盘一一对应,在所述每个节点中相互对应的磁盘存储相同的内容;
访问模块,用于从所述获取的每个节点列表中分别选择一个节点,根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块;
容错模块,用于当从某个节点中访问失败,则在所述节点所在的节点列表中选择其他的一个节点,根据所述文件的标识从所述选择的节点中访问所述文件包括的数据块。
又一方面,本发明提供了一种磁盘容错系统,所述系统包括客户端、存储服务器集群和管理服务器;
所述客户端,用于向所述管理服务器发送访问文件请求,所述访问文件请求中携带文件的标识;
所述存储服务器集群,包括多个存储服务器组,每个存储服务器组包括至少两个存储服务器,每个存储服务器包括多个磁盘,所述每个存储服务器包括的磁盘一一对应,在所述每个存储服务器中相互对应的磁盘存储相同的内容;
所述管理服务器,用于接收访问文件请求;根据预存的文件的标识与存储服务器组的对应关系和所述文件的标识,获取所述文件对应的多个存储服务器组;从所述获取的每个存储服务器组中分别选择一个存储服务器,根据所述文件的标识从所述每个存储服务器组选择的一个存储服务器中访问所述文件包括的数据块;当从某个存储服务器访问失败,则在所述存储服务器所在的存储服务器组中选择其他的一个存储服务器,根据所述文件的标识从所述选择的存储服务器中访问所述文件包括的数据块。
本发明实施例提供的技术方案带来的有益效果是:
通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的磁盘容错方法流程图;
图2是本发明实施例2提供的磁盘容错方法流程图;
图3是本发明实施例2提供的结对存储的节点结构示意图;
图4是本发明实施例2提供的结对存储的磁盘结构示意图;
图5是本发明实施例3提供的磁盘容错方法流程图;
图6是本发明实施例3提供的结对存储的数据块结构示意图;
图7是本发明实施例4提供的磁盘容错装置结构示意图;
图8是本发明实施例4提供的磁盘容错装置的另一结构示意图;
图9是本发明实施例5提供的磁盘容错系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种磁盘容错方法,所述方法包括:
101:接收访问文件请求,访问文件请求中携带文件的标识;
102:根据预存的文件的标识与节点列表的对应关系和文件的标识,获取文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点包括多个磁盘,每个节点包括的磁盘一一对应,在每个节点中相互对应的磁盘存储相同的内容;
103:从获取的每个节点列表中分别选择一个节点,根据文件的标识从每个节点列表选择的一个节点中访问文件包括的数据块;
104:当从某个节点中访问失败,则在节点所在的节点列表中选择其他的一个节点,根据文件的标识从选择的节点中访问文件包括的数据块。
本发明实施例提供的方法,通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能。
实施例2
本发明在系统层次对数据安全性采用双机双工进行保护,双机双工是指两台机器均对外提供相同的服务,具有互为备份和负载均衡,当一台机器出现故障后,能及时切换流量到对等机中。
参见图2,本发明实施例基于提供了一种磁盘容错方法,该方法包括:
201:接收客户端发送的写文件请求,该写文件请求中携带待写入的文件;
具体地,本发明实施例应用于分布式存储系统,该分布式存储系统可以为TFS(Tencent File System,腾讯自研海量分布式存储系统)。
其中,本实施例的执行主语为管理节点chxmaster,参见图3,本发明实施例中一个管理节点chxmaster包括多个chxd_pair,chxd_pair是指节点列表,每个节点列表包括至少两个节点chxd_server,本实施例中的节点是指存储服务器。其中,chxmaster负责对各个节点列表包括的各个节点中存储的数据信息进行维护,chxmaster中存储了每个节点列表与文件的标识的对应关系,chxd_server负责实际数据的落地存储,一个节点列表包括的每个节点chxd_server存储相同的内容,各chxd_server同时对外提供服务且具有负载均衡功能。
另外,为了保证服务的可靠性,消除管理节点的故障瓶颈,本发明实施例的磁盘容错系统还包括备份管理节点salve_chxmaster,用于当管理节点chxmaster发生故障时,在备份管理节点上完成访问文件操作和/或写文件操作。其中,备份管理节点与管理节点的结构完全相同。
本实施例中,为了保证每个节点列表中的中所有节点存储的数据完全一样,每个节点包括一一对应的磁盘,在每个节点中相互对应的磁盘存储相同的内容,这样不会造成磁盘空间的浪费。参见图4,第一节点chxd_1包括若干个磁盘:第一磁盘sdb、第二磁盘sdc、第三磁盘sdd、第四磁盘sde……第i磁盘sdl,第二节点chxd_2包括相互对应的同样数目的磁盘:sdb、sdc、sdd、sde……sdl,且第一节点chxd_1与第二节点chxd_2相互对应的磁盘存储相同的内容,也就是说,逻辑上的一块磁盘数据同时存储在各chxd节点的对应物理磁盘中,比如第一节点chxd_1上的sdl盘存储的数据和chxd_2上的sdl盘存储的数据完全一样的,如第一节点chxd_1的sdb磁盘上存储sdb_data,第二节点chxd_2的sdb磁盘上也存储sdb_data,同理,chxd_1节点的sdc磁盘、sdd磁盘、sde磁盘……sdl磁盘,分别与chxd_2节点的sdc磁盘、sdd磁盘、sde磁盘……sdl磁盘上存储的内容相同,分别为:第一数据sdb_data、第二数据sdc_data、第三数据sdd_data、第四数据sde_data……第i数据sdl_data。
实际应用中,待写入的文件中一般包括文件的标识、大小、内容和类型等信息。
202:根据待写入的文件的标识,从自身获取待写入的文件对应的多个节点列表;
对于该步骤,管理节点中预存了文件的标识与节点列表的对应关系,可以在接收到客户端发送的写文件请求后,根据该文件信息的大小、类别等属性信息实时为待写入的文件分配存储位置,即为待写入的文件分配多个节点列表,获取该待写入的文件对应的多个节点列表,以将待写入的文件写入该多个节点列表包括的节点中的磁盘上。管理节点为待写入的文件分配多个节点列表后,存储文件的标识与节点列表的对应关系。
203:根据获取的多个节点列表,将待写入的文件划分成多个数据块,且划分的数据块与节点列表一一对应;
实际应用中,管理节点获取到多个节点列表,该待写入的文件要写入到该多个节点列表中时,将待写入的文件划分为多个数据块,划分的数据块与获取的节点列表一一对应,也就是说划分的数据块的数目与获取的节点列表的数目相同,并将待写入的文件划分的多个数据块分别写入到对应的节点列表中。例如,管理节点根据待写入的文件获取N个节点列表:第一节点列表、第二节点列表……第N节点列表时,根据获取的N个节点列表将待写入的文件分为N个数据块:第一数据块、第二数据块……第N数据块,以便于将待写入的文件划分的N个数据块分别写入到对应的N个节点列表中,具体为:将第一数据块写入到第一节点列表中,将第二数据块写入第二节点列表中……将第N数据块写入第N节点列表中。
204:在每个节点列表包括的每个节点中,对该待写入的文件执行写操作;
具体地,节点列表中的每个节点包括多个磁盘,每个磁盘对应一个磁盘的标识,本发明实施例可以在节点中预存文件的标识与磁盘的标识的对应关系,也可以由管理节点为待写入的文件分配节点列表时,对分配的每个节点列表分配每个节点列表包括的每个节点中存储文件的磁盘的标识后,在管理节点中存储文件的标识与节点列表的对应关系。
在每个节点列表包括的每个节点中,对待写入的文件执行写操作,具体为,在每个节点列表包括的每个节点中,确定出用于存储该待写入的文件包括的数据块的磁盘的标识,将待写入的文件包括的数据块写入对应的磁盘中。本实施例中,确定出用于存储该待写入的文件包括的数据块的磁盘的标识,可以为根据节点中预存的文件的标识与磁盘的标识的对应关系,获取待写入的文件对应的磁盘的标识;也可以为由管理节点为待写入的文件分配磁盘的标识,获取待写入的文件对应的磁盘的标识,从而将该待写入的文件存储到该磁盘的标识对应的磁盘中。
本实施例中,由于节点列表chxd_pair中包括的每个节点chxd_server均提供服务且具有负载均衡功能,节点列表中的各个节点之间为对等关系,写入待写入的文件时,对该待写入的文件对应的多个节点列表中的每个节点均执行写操作。例如,第一节点列表包括m个节点:chxd_server1、chxd_server2……chxd_serverm,当将待写入文件的第一数据块写入第一节点列表中的节点chxd_server1时,可以同时将该写操作更新到chxd_server2……chxd_serverm,也就是说,将待写入文件的第一数据块同时写入第一节点列表中的其他节点chxd_server2……chxd_serverm中,由于不同节点的操作是独立的,不会对系统效率造成影响。
实际应用中,从管理节点中获取待写入的文件对应的多个节点列表,将待写入的文件分为多个数据块,并在一个节点列表的节点上写入一个数据块,如,获取N个节点列表,每个节点列表中包括m个节点,将待写入的文件分为N个数据块,写入待写入的文件时,根据获取的第一节点列表中的节点中的磁盘的标识,将待写入文件的第一数据块写入第一节点列表的m个节点的磁盘中,将待写入文件的第二数据块写入第二节点列表的m个节点的磁盘中,也就是说在不同节点列表的节点上并发执行对待写入的文件的不同数据块的写操作,同一节点列表的所有节点上并发执行对待写入的文件的相同数据块的写操作,使得每个节点列表的所有节点上均写入一个数据块。
另外,本实施例中,确定出用于存储待写入的文件包括的数据块的磁盘的标识之后,还根据待写入的文件的标识和存储该待写入的文件包括的数据块的磁盘的标识,生成文件的标识与磁盘的标识的对应关系,并将待写入文件的标识与磁盘的标识的对应关系存储在管理节点中。由于管理节点中预存了文件的标识与节点列表的对应关系,此时管理节点中存储了文件的标识、节点列表与磁盘的标识之间的对应关系。
205:接收客户端发送的读文件请求,该读文件请求中携带文件的标识;
其中,访问文件请求中携带的文件的标识具体为文件名或文件属性等,本发明对此不作限定。
206:根据预存的文件的标识与节点列表的对应关系和文件的标识,获取该文件对应的多个节点列表;
当客户端client发起读文件请求时,chxmaster根据该文件的标识,从预存的文件的标识与节点列表的对应关系中获取该文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点包括多个磁盘,每个节点包括的磁盘一一对应,在每个节点中相互对应的磁盘存储相同的内容。其中,管理节点预存的文件的标识与节点列表的对应关系中,节点列表信息包括ip、port、devid、fid等,根据节点列表信息能够获得该文件在哪些节点上。ip是指节点的ip地址,用于确定出数据存储的chxd_server节点,port是指节点的具体服务进程,用于确定该节点上用以提供数据访问上的具体服务进程,devid用以确定文件所在的数据块位置,fid用以确定文件所在的时间存储区间。根据ip和port能确定具体的chxd_server,根据devid和fid能确定文件具体的存储位置。
207:从获取的每个节点列表中分别选择一个节点,根据文件的标识从每个节点列表选择的一个节点中读取该文件包括的数据块;
对于该步骤,获取到文件对应的多个节点列表时,对于每个节点列表,从该节点列表中选择一个节点读取该文件包括的数据块,在该文件对应的多个节点列表均选择一个节点读取该文件包括的数据块,可以访问该节点列表中的任一节点,本实施例对具体访问该节点列表中的哪个节点不做限定。
其中,根据文件的标识从每个节点列表选择的一个节点中读取该文件包括的数据块,具体包括:
由于管理节点中存储了节点列表对应的文件的标识与磁盘的标识的对应关系,根据文件的标识,从该对应关系中获取存储该文件的磁盘的标识,从而根据该文件的标识和存储该文件的磁盘的标识,从节点列表选择的一个节点中读取该文件包括的数据块。
208:当从某个节点中读取失败,则在该节点所在的节点列表中选择其他的一个节点,根据该文件的标识从选择的节点中读取文件包括的数据块。
本实施例中,每个节点列表中所有节点存储的数据完全一样,每个节点由相同块磁盘组成,且每块磁盘的大小相等,逻辑上的一块磁盘数据同时存储在各节点chxd_server的对应物理磁盘中,这样当从任何一个机器上读取失败时,会在该节点所在的节点列表中选择其他一个节点进行继续读取,此时根据文件的标识从选择的节点中读取文件包括的数据块。比如,chxd_1节点上的sdl盘数据和chxd_2上的sdl盘数据时完全一样的,当在chxd_1节点的sdl盘上读取sdl_data数据失败时,选择chxd_2上的sdl盘继续读取sdl_data数据。
实际应用中,若任何一个机器上的一块磁盘离线后,运维人员会收到报警,由该机器所在的节点列表chxd_pair中的另一台机器chxd_server能接管该服务,及时将数据迁移到别的节点列表中,以保证数据的高可靠性,避免数据丢失。
其中,本发明实施例解决了由于磁盘级的故障造成业务层数据无法正常访问的问题,当对节点列表的一个节点中的磁盘访问失败时,则将该访问文件请求发送给该节点列表中的其他节点的对应磁盘,由其他节点完成文件访问操作,达到了当某一节点的磁盘发生故障,不影响业务层数据访问的技术效果。
本发明实施例提供的并发访问操作,实现了对同一文件数据的读访问请求可以在不同节点的磁盘上并发处理,当选择了节点列表中的一个节点进行访问时,可以同时选择另一节点列表中的一个节点进行并发访问,由于不同节点的操作是独立的,不会对系统效率造成影响。
本发明实施例提供的方法,通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能;同时通过互备机器同时对外提供服务,提高了数据读写吞吐率,提高系统服务效率。
实施例3
本发明在上述磁盘级别的数据冗余的基础上,可以进一步细化粒度,实现数据块级别的数据冗余。目前,基于TFS的大规模分布式系统由上万台机器组成,每台机器大致由11块磁盘组成,一块磁盘大约750G到2T大小,海量数据使得数据读写异常成为常态,如果发生数据读写异常,就以磁盘为单位进行数据迁移,一方面会严重的影响系统服务效率,另一方面会造成大量硬件开销。数据块级别的冗余可以解决上述问题。
参见图5,本发明实施例提供了一种磁盘容错方法,所述方法包括:
301:接收客户端发送的写文件请求,该写文件请求中携带待写入的文件;
具体地,本发明实施例应用于分布式存储系统,该分布式存储系统可以为TFS(Tencent File System,腾讯自研海量分布式存储系统)。
其中,待写入的文件中一般包括文件的标识、大小、内容和类型等信息。该步骤与上述实施例2中的步骤201相同,此处不再赘述。
302:根据待写入的文件的标识,从自身获取待写入的文件对应的多个节点列表;
对于该步骤,管理节点中预存了文件的标识与节点列表的对应关系,可以在接收到客户端发送的写文件请求后,根据该文件信息的大小、类别等属性信息实时为待写入的文件分配存储位置,即为待写入的文件分配多个节点列表,获取该待写入的文件对应的多个节点列表,以将待写入的文件写入该多个节点列表包括的节点中的磁盘上。管理节点为待写入的文件分配多个节点列表后,存储文件的标识与节点列表的对应关系。
303:根据获取的多个节点列表,将待写入的文件划分成多个数据块,且划分的数据块与节点列表一一对应;
实际应用中,管理节点获取到多个节点列表,该待写入的文件要写入到该多个节点列表中时,将待写入的文件划分为多个数据块,划分的数据块与获取的节点列表一一对应,也就是说划分的数据块的数目与获取的节点列表的数目相同,并将待写入的文件划分的多个数据块分别写入到对应的节点列表中。例如,管理节点根据待写入的文件获取N个节点列表:第一节点列表、第二节点列表……第N节点列表时,根据获取的N个节点列表将待写入的文件分为N个数据块:第一数据块、第二数据块……第N数据块,以便于将待写入的文件划分的N个数据块分别写入到对应的N个节点列表中,具体为:将第一数据块写入到第一节点列表中,将第二数据块写入第二节点列表中……将第N数据块写入第N节点列表中。
304:在每个节点列表包括的每个节点中,对该待写入的文件执行写操作;
本实施例中,为了保证每个节点列表中所有节点存储的数据完全一样,每个节点包括一一对应的磁盘,在每个节点中相互对应的磁盘存储相同的内容,每个节点中相互对应的磁盘中存储相同的数据块,在所述每个节点中相互对应的磁盘包括的相同的数据块的偏移量相同,这样不会造成磁盘空间的浪费。参见图6,结对节点上对等磁盘上存储数据块信息的结构,第一节点chxd_1和第二节点chxd_2互为备份,假设sdb盘大小750GB,实际存储的数据占用668GB,将这680GB分为334个单元,每一单元称为一个数据块,大小为2G。第一节点的第一磁盘chxd_1.sdb盘的第一数据块chunk_1、第二数据块chunk_2.......第N数据块chunk_N,分别和第二节点的第一磁盘chxd_2.sdb盘的第一数据块chunk_1、第二数据块chunk_2.......第N数据块chunk_N存储的内容完全一致,且每个数据块在磁盘上的偏移也一样。
具体地,节点列表中的每个节点包括多个磁盘,每个磁盘对应一个磁盘的标识,本发明实施例可以在节点中预存文件的标识、磁盘的标识与数据块的偏移量的对应关系,也可以由管理节点为待写入的文件分配节点列表时,对分配的每个节点列表分配每个节点列表包括的每个节点中存储文件的磁盘的标识后,在管理节点中存储文件的标识、节点列表与数据块的偏移量的对应关系。
其中,在每个节点列表包括的每个节点中,对待写入的文件执行写操作,具体为,在每个节点列表包括的每个节点中,确定出用于存储该待写入的文件包括的数据块的磁盘的标识,并根据存储文件包括的数据块的磁盘的标识,确定出磁盘中存储所述文件包括的数据块的偏移量,根据存储所述文件包括的数据块的偏移量,将所述文件包括的数据块存储在所述磁盘的标识对应的磁盘的数据块中。本实施例中,确定出磁盘中存储所述文件包括的数据块的偏移量,可以为根据节点中预存的文件的标识、磁盘的标识与数据块的偏移量的对应关系,获取存储所述文件包括的数据块的偏移量;也可以为由管理节点为待写入的文件分配磁盘的标识和存储该文件包括的数据块的偏移量,获取存储所述文件包括的数据块的偏移量,从而将该待写入的文件包括的数据块存储在所述磁盘的标识对应的磁盘的数据块中。
本实施例中,由于节点列表chxd_pair中包括的每个节点chxd_server均提供服务且具有负载均衡功能,节点列表中的各个节点之间为对等关系,写入待写入的文件时,对该待写入的文件对应的多个节点列表中的每个节点均执行写操作。例如,第一节点列表包括m个节点:chxd_server1、chxd_server2……chxd_serverm,当将待写入文件的第一数据块写入第一节点列表中的节点chxd_server1时,可以同时将该写操作更新到chxd_server2……chxd_serverm,也就是说,将待写入文件的第一数据块同时写入第一节点列表中的其他节点chxd_server2……chxd_serverm中,由于不同节点的操作是独立的,不会对系统效率造成影响。
实际应用中,从管理节点中获取待写入的文件对应的多个节点列表,将待写入的文件分为多个数据块,并在一个节点列表的节点上写入一个数据块,如,获取N个节点列表,每个节点列表中包括m个节点,将待写入的文件分为N个数据块,写入待写入的文件时,根据获取的第一节点列表中的节点中的磁盘的标识,将待写入文件的第一数据块写入第一节点列表的m个节点的磁盘的数据块中,将待写入文件的第二数据块写入第二节点列表的m个节点的磁盘的数据块中,也就是说在不同节点列表的节点上并发执行对待写入的文件的不同数据块的写操作,同一节点列表的所有节点上并发执行对待写入的文件的相同数据块的写操作,使得每个节点列表的所有节点上均写入一个数据块。
另外,本实施例中,确定出用于存储待写入的文件包括的数据块的磁盘的标识之后,还根据待写入的文件的标识、存储文件包括的数据块的磁盘的标识和存储文件包括的数据块的偏移量,生成文件的标识、磁盘的标识和数据块的偏移量的对应关系,并将文件的标识、磁盘的标识和数据块的偏移量的对应关系存储在管理节点中。由于管理节点中预存了文件的标识与节点列表的对应关系,此时管理节点中存储了文件的标识、节点列表、磁盘的标识和数据块的偏移量之间的对应关系。
305:接收客户端发送的读文件请求,该读文件请求中携带文件的标识;
其中,访问文件请求中携带的文件的标识具体为文件名或文件属性等,本发明对此不作限定。
306:根据预存的文件的标识与节点列表的对应关系和文件的标识,获取该文件对应的多个节点列表;
当客户端client发起读文件请求时,chxmaster根据该文件的标识,从预存的文件的标识与节点列表的对应关系中获取该文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点包括多个磁盘,每个节点包括的磁盘一一对应,每个节点中相互对应的磁盘中存储相同的数据块,在所述每个节点中相互对应的磁盘包括的相同的数据块的偏移量相同,在每个节点中相互对应的磁盘中对应的数据块存储相同的内容。其中,管理节点预存的文件的标识与节点列表的对应关系中,节点列表信息包括ip、port、devid、fid等,根据节点列表信息能够获得该文件在哪些节点上。ip是指节点的ip地址,用于确定出数据存储的chxd_server节点,port是指节点的具体服务进程,用于确定该节点上用以提供数据访问上的具体服务进程,devid用以确定文件所在的数据块位置,fid用以确定文件所在的时间存储区间。根据ip和port能确定具体的chxd_server,根据devid和fid能确定文件具体的存储位置。
307:从获取的每个节点列表中分别选择一个节点,根据文件的标识从每个节点列表选择的一个节点中读取该文件包括的数据块;
对于该步骤,获取到文件对应的多个节点列表时,对于每个节点列表,从该节点列表中选择一个节点读取该文件包括的数据块,在该文件对应的多个节点列表均选择一个节点读取该文件包括的数据块,可以访问该节点列表中的任一节点,本实施例对具体访问该节点列表中的哪个节点不做限定。
其中,根据文件的标识从每个节点列表选择的一个节点中读取该文件包括的数据块,具体包括:
由于管理节点中存储了节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系,根据文件的标识,从该对应关系中获取存储该文件的磁盘的标识以及文件包括的数据块在磁盘中存储的偏移量,从而根据存储该文件的磁盘的标识和文件包括的数据块在磁盘中存储的偏移量,从节点列表选择的一个节点中读取该文件包括的数据块。
308:当从某个节点中读取失败,则在该节点所在的节点列表中选择其他的一个节点,根据该文件的标识从选择的节点中读取文件包括的数据块。
本实施例中,每个节点列表chxd_pair中所有节点chxd_server的数据完全一样,每个节点chxd_server由相同块磁盘组成,且每块磁盘的大小相等,逻辑上的一块磁盘数据同时存储在各节点chxd_server的对应物理磁盘中,这样当从任何一个机器上读取失败时,会在该节点所在的节点列表中选择其他一个节点进行继续读取,此时根据文件的标识从选择的节点中读取文件包括的数据块。比如chxd_1节点上的sdl盘数据和chxd_2上的sdl盘数据时完全一样的,当在chxd_1节点的sdl盘的第一数据块读取sdl_data数据失败时,选择chxd_2上的sdl盘的第一数据块上继续读取sdl_data数据。
实际应用中,当图6中的chxd_1节点上sdb盘的第一个数据块数据读写异常时,以chxd_2节点上sdb盘的第一个数据块为源进行数据迁移,sdb盘的其他数据块并不需要移动。这样可以大大降低数据迁移造成的系统额外开销,节省成本。
其中,本发明实施例解决了由于数据块级的故障造成业务层数据无法正常访问的问题,当对节点列表的一个节点中的数据块访问失败时,则将该访问文件请求发送给该节点列表中的其他节点的对应磁盘中对应的数据块,由其他节点完成文件访问操作,达到了当某一节点的数据块发生故障,不影响业务层数据访问的技术效果。
本发明实施例提供的并发访问的操作,实现了对同一文件数据的读访问请求可以在不同磁盘的数据块上并发处理,当选择了节点列表中的一个节点的磁盘的数据块进行访问时,可以同时选择另一节点列表中的一个节点,对该节点中的磁盘的数据块进行并发访问,由于不同节点的操作是独立的,不会对系统效率造成影响。
本发明实施例提供的方法,通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能;同时通过互备机器同时对外提供服务,提高了数据读写吞吐率,提高系统服务效率。
实施例4
参见图7,本发明实施例提供了一种磁盘容错装置,所述装置包括:
第一接收模块401,用于接收访问文件请求,访问文件请求中携带文件的标识;
第一获取模块402,用于根据预存的文件的标识与节点列表的对应关系和文件的标识,获取文件对应的多个节点列表,节点列表包括多个节点,每个节点包括多个磁盘,每个节点包括的磁盘一一对应,在每个节点中相互对应的磁盘存储相同的内容;
访问模块403,用于从获取的每个节点列表中分别选择一个节点,根据文件的标识从每个节点列表选择的一个节点中访问文件包括的数据块;
容错模块404,用于当从某个节点中访问失败,则在节点所在的节点列表中选择其他的一个节点,根据文件的标识从选择的节点中访问文件包括的数据块。
其中,访问模块403,包括选择单元和访问单元:
选择单元,用于从获取的每个节点列表中分别选择一个节点;
访问单元,包括:
第一获取子单元,用于获取节点列表对应的文件的标识与磁盘的标识的对应关系;
第二获取子单元,用于根据文件的标识,从节点列表对应的文件的标识与磁盘的标识的对应关系中获取存储文件的磁盘的标识;
访问子单元,用于根据文件的标识和存储文件的磁盘的标识,从选择单元选择的一个节点中访问文件包括的数据块。
其中,在每个节点中相互对应的磁盘中存储相同的数据块,在每个节点中相互对应的磁盘包括的相同的数据块的偏移量相同;相应地,访问模块包括选择单元和访问单元,
选择单元,用于从获取的每个节点列表中分别选择一个节点;
访问单元包括:
第一获取子单元,用于获取节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系;
第二获取子单元,用于根据文件的标识,从节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系中获取存储文件的磁盘的标识以及文件包括的数据块在磁盘中存储的偏移量;
访问子单元,用于根据存储文件的磁盘的标识和文件包括的数据块在磁盘中存储的偏移量,从选择单元选择的一个节点中访问文件包括的数据块。
进一步地,参见图8,该装置还包括:
第二接收模块405,用于接收写文件请求,写文件请求中携带待写入的文件;
第二获取模块406,用于根据待写入的文件的标识,从存储的文件的标识与节点列表的对应关系中获取待写入的文件对应的多个节点列表;
划分模块407,用于根据获取的多个节点列表,将待写入的文件划分成多个数据块,且划分的数据块与节点列表一一对应;
写入模块408,用于在每个节点列表包括的每个节点中,确定出用于存储文件包括的数据块的磁盘的标识,将文件包括的数据块写入磁盘的标识对应的磁盘中。
进一步地,该装置还包括存储模块,用于根据待写入的文件的标识和存储文件包括的数据块的磁盘的标识,生成文件的标识与磁盘的标识的对应关系;并将文件的标识与磁盘的标识的对应关系存储。
其中,写入模块408,包括:
确定单元,用于在每个节点列表包括的每个节点中,确定出用于存储文件包括的数据块的磁盘的标识,并根据存储文件包括的数据块的磁盘的标识,确定出磁盘中存储文件包括的数据块的偏移量;
写入单元,用于根据存储文件包括的数据块的偏移量,将文件包括的数据块存储在磁盘的标识对应的磁盘的数据块中。
进一步地,该装置还包括存储模块,用于根据待写入的文件的标识、存储文件包括的数据块的磁盘的标识和存储文件包括的数据块的偏移量,生成文件的标识、磁盘的标识和数据块的偏移量的对应关系;并将文件的标识、磁盘的标识和数据块的偏移量的对应关系存储。
本发明实施例提供的装置,通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从节点到磁盘进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单节点故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能;同时通过互备机器同时对外提供服务,提高了数据读写吞吐率,提高系统服务效率。
需要说明的是:上述实施例提供的磁盘容错装置在磁盘容错时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的磁盘容错装置与磁盘容错方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例5
参见图9,本发明实施例提供了一种磁盘容错系统,包括客户端501、存储服务器集群502和管理服务器503;
客户端501,用于向管理服务器503发送访问文件请求,访问文件请求中携带文件的标识;
存储服务器集群502,包括多个存储服务器组,每个存储服务器组包括至少两个存储服务器,每个存储服务器包括多个磁盘,每个存储服务器包括的磁盘一一对应,在每个存储服务器中相互对应的磁盘存储相同的内容;
管理服务器503,用于接收客户端501发送的访问文件请求,根据预存的文件的标识与存储服务器集群502包括的存储服务器组的对应关系和文件的标识,获取文件对应的多个存储服务器组;从获取的每个存储服务器组中分别选择一个存储服务器,根据文件的标识从每个存储服务器组选择的一个存储服务器中访问文件包括的数据块;当从某个存储服务器访问失败,则在存储服务器所在的存储服务器组中选择其他的一个存储服务器,根据文件的标识从选择的存储服务器中访问文件包括的数据块。
其中,本实施例中的管理服务器是指上述实施例中的管理节点。
进一步地,管理服务器503还用于:获取存储服务器组对应的文件的标识与磁盘的标识的对应关系;根据文件的标识,从存储服务器组对应的文件的标识与磁盘的标识的对应关系中获取存储文件的磁盘的标识;根据文件的标识和存储文件的磁盘的标识,从存储服务器组选择的一个存储服务器中访问文件包括的数据块。
进一步地,管理服务器503还用于在每个存储服务器中相互对应的磁盘中存储相同的数据块,在每个存储服务器中相互对应的磁盘包括的相同的数据块的偏移量相同。
进一步地,管理服务器503还用于:获取存储服务器组对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系;根据文件的标识,从存储服务器组对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系中获取存储文件的磁盘的标识以及文件包括的数据块在磁盘中存储的偏移量;根据存储文件的磁盘的标识和文件包括的数据块在磁盘中存储的偏移量,从存储服务器组选择的一个存储服务器中访问文件包括的数据块。
其中,客户端501还用于向管理服务器503发送写文件请求,写文件请求中携带待写入的文件;
相应地,管理服务器503还用于接收客户端501发送的写文件请求;根据待写入的文件的标识,获取待写入的文件对应的多个存储服务器组,管理服务器中存储文件的标识与存储服务器组的对应关系;根据获取的多个存储服务器组,将待写入的文件划分成多个数据块,且划分的数据块与存储服务器组一一对应;在每个存储服务器组包括的每个存储服务器中,确定出用于存储文件包括的数据块的磁盘的标识,将文件包括的数据块写入磁盘的标识对应的磁盘中。
进一步地,管理服务器503还用于根据待写入的文件的标识和存储文件包括的数据块的磁盘的标识,生成并存储文件的标识与磁盘的标识的对应关系。
其中,管理服务器503还用于在每个存储服务器组包括的每个存储服务器中,确定出用于存储文件包括的数据块的磁盘的标识,并根据存储文件包括的数据块的磁盘的标识,确定出磁盘中存储文件包括的数据块的偏移量;根据存储文件包括的数据块的偏移量,将文件包括的数据块存储在磁盘的标识对应的磁盘的数据块中。
其中,管理服务器503还用于根据待写入的文件的标识、存储文件包括的数据块的磁盘的标识和存储文件包括的数据块的偏移量,生成并存储文件的标识、磁盘的标识和数据块的偏移量的对应关系。
另外,为了保证服务的可靠性,消除管理服务器的故障瓶颈,本发明实施例的磁盘容错系统还包括备份管理服务器及备份存储服务器集群,用于当管理服务器发生故障时,在备份管理服务器上完成访问文件操作和/或写文件操作。其中,备份存储服务器集群与存储服务器集群的结构完全相同,备份管理服务器与管理服务器的结构完全相同。
具体地,备份存储服务器集群包括多个备份存储服务器组,每个备份存储服务器组包括至少两个备份存储服务器,每个备份存储服务器包括多个磁盘,所述每个备份存储服务器包括的磁盘一一对应,在所述每个备份存储服务器中相互对应的磁盘存储相同的内容。
具体地,备份管理服务器,用于当管理服务器发生故障时,获取管理服务器发送的访问文件请求,根据预存的文件的标识与备份存储服务器集群包括的备份存储服务器组的对应关系和文件的标识,获取文件对应的多个备份存储服务器组,每个备份存储服务器组包括多个备份存储服务器,每个备份存储服务器包括多个磁盘,每个备份存储服务器包括的磁盘一一对应,在每个备份存储服务器中相互对应的磁盘存储相同的内容;从获取的每个备份存储服务器组中分别选择一个备份存储服务器,根据文件的标识从每个备份存储服务器组选择的一个备份存储服务器中访问文件包括的数据块;当从某个备份存储服务器中访问失败,则在备份存储服务器所在的备份存储服务器组中选择其他的一个节点,根据文件的标识从选择的备份存储服务器中访问文件包括的数据块。
本发明实施例提供的系统,通过结合双机双工的优势提出结对存储技术,将完全独立的多台机器从存储服务器到磁盘,再到数据块进行对等互备,解决了大规模分布式存储系统中的数据读写故障、磁盘故障及单个服务器故障等问题,保证在任何场景下的数据可靠性,提高了磁盘利用率及读写性能;同时通过互备的存储服务器同时对外提供服务,提高了数据读写吞吐率,提高系统服务效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种磁盘容错方法,其特征在于,所述方法包括:
接收访问文件请求,所述访问文件请求中携带文件的标识;
根据预存的文件的标识与节点列表的对应关系和所述文件的标识,获取所述文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点包括多个磁盘,所述每个节点包括的磁盘一一对应,在所述每个节点中相互对应的磁盘存储相同的内容;
从所述获取的每个节点列表中分别选择一个节点,根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块;
当从某个节点中访问失败,则在所述节点所在的节点列表中选择其他的一个节点,根据所述文件的标识从所述选择的节点中访问所述文件包括的数据块。
2.如权利要求1所述的方法,其特征在于,所述根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块,包括:
获取节点列表对应的文件的标识与磁盘的标识的对应关系;
根据所述文件的标识,从所述节点列表对应的文件的标识与磁盘的标识的对应关系中获取存储所述文件的磁盘的标识;
根据所述文件的标识和存储所述文件的磁盘的标识,从所述节点列表选择的一个节点中访问所述文件包括的数据块。
3.如权利要求1所述的方法,其特征在于,在所述每个节点中相互对应的磁盘中存储相同的数据块,在所述每个节点中相互对应的磁盘包括的相同的数据块的偏移量相同。
4.如权利要求3所述的方法,其特征在于,所述根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块,包括:
获取节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系;
根据所述文件的标识,从所述节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系中获取存储所述文件的磁盘的标识以及所述文件包括的数据块在所述磁盘中存储的偏移量;
根据存储所述文件的磁盘的标识和所述文件包括的数据块在所述磁盘中存储的偏移量,从所述节点列表选择的一个节点中访问所述文件包括的数据块。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收写文件请求,所述写文件请求中携带待写入的文件;
根据待写入的文件的标识,从存储的文件的标识与节点列表的对应关系中获取所述待写入的文件对应的多个节点列表;
根据所述获取的多个节点列表,将所述待写入的文件划分成多个数据块,且划分的数据块与所述节点列表一一对应;
在每个节点列表包括的每个节点中,确定出用于存储所述文件包括的数据块的磁盘的标识,将所述文件包括的数据块写入所述磁盘的标识对应的磁盘中。
6.如权利要求5所述的方法,其特征在于,所述确定出用于存储所述文件包括的数据块的磁盘的标识之后,还包括:
根据所述待写入的文件的标识和所述存储所述文件包括的数据块的磁盘的标识,生成文件的标识与磁盘的标识的对应关系;
将所述文件的标识与磁盘的标识的对应关系存储。
7.如权利要求5所述的方法,其特征在于,所述确定出用于存储所述文件包括的数据块的磁盘的标识之后,还包括:
根据存储所述文件包括的数据块的磁盘的标识,确定出所述磁盘中存储所述文件包括的数据块的偏移量;
所述将所述文件包括的数据块存入所述磁盘的标识对应的磁盘中,包括:
根据存储所述文件包括的数据块的偏移量,将所述文件包括的数据块存储在所述磁盘的标识对应的磁盘的数据块中。
8.如权利要求7所述的方法,其特征在于,所述确定出所述磁盘中存储所述文件包括的数据块的偏移量之后,还包括:
根据所述待写入的文件的标识、所述存储所述文件包括的数据块的磁盘的标识和存储所述文件包括的数据块的偏移量,生成文件的标识、磁盘的标识和数据块的偏移量的对应关系;
将所述文件的标识、磁盘的标识和数据块的偏移量的对应关系存储。
9.一种磁盘容错装置,其特征在于,所述装置包括:
接收模块,用于接收访问文件请求,所述访问文件请求中携带文件的标识;
第一获取模块,用于根据预存的文件的标识与节点列表的对应关系和所述文件的标识,获取所述文件对应的多个节点列表,每个节点列表包括至少两个节点,每个节点包括多个磁盘,所述每个节点包括的磁盘一一对应,在所述每个节点中相互对应的磁盘存储相同的内容;
访问模块,用于从所述获取的每个节点列表中分别选择一个节点,根据所述文件的标识从所述每个节点列表选择的一个节点中访问所述文件包括的数据块;
容错模块,用于当从某个节点中访问失败,则在所述节点所在的节点列表中选择其他的一个节点,根据所述文件的标识从所述选择的节点中访问所述文件包括的数据块。
10.如权利要求9所述的装置,其特征在于,所述访问模块,包括:
选择单元,用于从所述获取的每个节点列表中分别选择一个节点;
访问单元,包括:
第一获取子单元,用于获取节点列表对应的文件的标识与磁盘的标识的对应关系;
第二获取子单元,用于根据所述文件的标识,从所述节点列表对应的文件的标识与磁盘的标识的对应关系中获取存储所述文件的磁盘的标识;
访问子单元,用于根据所述文件的标识和存储所述文件的磁盘的标识,从所述选择单元选择的一个节点中访问所述文件包括的数据块。
11.如权利要求9所述的装置,其特征在于,在所述每个节点中相互对应的磁盘中存储相同的数据块,在所述每个节点中相互对应的磁盘包括的相同的数据块的偏移量相同。
12.如权利要求11所述的装置,其特征在于,所述访问模块包括:
选择单元,用于从所述获取的每个节点列表中分别选择一个节点;
访问单元包括:
第一获取子单元,用于获取节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系;
第二获取子单元,用于根据所述文件的标识,从所述节点列表对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系中获取存储所述文件的磁盘的标识以及所述文件包括的数据块在所述磁盘中存储的偏移量;
访问子单元,用于根据存储所述文件的磁盘的标识和所述文件包括的数据块在所述磁盘中存储的偏移量,从所述选择单元选择的一个节点中访问所述文件包括的数据块。
13.如权利要求10所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收写文件请求,所述写文件请求中携带待写入的文件;
第二获取模块,用于根据待写入的文件的标识,从存储的文件的标识与节点列表的对应关系中获取所述待写入的文件对应的多个节点列表;
划分模块,用于根据所述获取的多个节点列表,将所述待写入的文件划分成多个数据块,且划分的数据块与所述节点列表一一对应;
写入模块,用于在每个节点列表包括的每个节点中,确定出用于存储所述文件包括的数据块的磁盘的标识,将所述文件包括的数据块写入所述磁盘的标识对应的磁盘中。
14.如权利要求13所述的装置,其特征在于,所述装置还包括存储模块,用于根据所述待写入的文件的标识和所述存储所述文件包括的数据块的磁盘的标识,生成文件的标识与磁盘的标识的对应关系;并将所述文件的标识与磁盘的标识的对应关系存储。
15.如权利要求13所述的装置,其特征在于,所述写入模块,包括:
确定单元,用于在每个节点列表包括的每个节点中,确定出用于存储所述文件包括的数据块的磁盘的标识,并根据存储所述文件包括的数据块的磁盘的标识,确定出所述磁盘中存储所述文件包括的数据块的偏移量;
写入单元,用于根据存储所述文件包括的数据块的偏移量,将所述文件包括的数据块存储在所述磁盘的标识对应的磁盘的数据块中。
16.如权利要求15所述的装置,其特征在于,所述装置还包括存储模块,用于根据所述待写入的文件的标识、所述存储所述文件包括的数据块的磁盘的标识和存储所述文件包括的数据块的偏移量,生成文件的标识、磁盘的标识和数据块的偏移量的对应关系;并将所述文件的标识、磁盘的标识和数据块的偏移量的对应关系存储。
17.一种磁盘容错系统,其特征在于,所述系统包括客户端、存储服务器集群和管理服务器;
所述客户端,用于向所述管理服务器发送访问文件请求,所述访问文件请求中携带文件的标识;
所述存储服务器集群,包括多个存储服务器组,每个存储服务器组包括至少两个存储服务器,每个存储服务器包括多个磁盘,所述每个存储服务器包括的磁盘一一对应,在所述每个存储服务器中相互对应的磁盘存储相同的内容;
所述管理服务器,用于接收所述客户端发送的访问文件请求;根据预存的文件的标识与所述存储服务器集群包括的存储服务器组的对应关系和所述文件的标识,获取所述文件对应的多个存储服务器组;从所述获取的每个存储服务器组中分别选择一个存储服务器,根据所述文件的标识从所述每个存储服务器组选择的一个存储服务器中访问所述文件包括的数据块;当从某个存储服务器访问失败,则在所述存储服务器所在的存储服务器组中选择其他的一个存储服务器,根据所述文件的标识从所述选择的存储服务器中访问所述文件包括的数据块。
18.如权利要求17所述的系统,其特征在于,所述管理服务器还用于:获取存储服务器组对应的文件的标识与磁盘的标识的对应关系;根据所述文件的标识,从所述存储服务器组对应的文件的标识与磁盘的标识的对应关系中获取存储所述文件的磁盘的标识;根据所述文件的标识和存储所述文件的磁盘的标识,从所述存储服务器组选择的一个存储服务器中访问所述文件包括的数据块。
19.如权利要求17所述的系统,其特征在于,所述存储服务器集群还用于在所述每个存储服务器中相互对应的磁盘中存储相同的数据块,在所述每个存储服务器中相互对应的磁盘包括的相同的数据块的偏移量相同。
20.如权利要求19所述的系统,其特征在于,所述管理服务器还用于:获取存储服务器组对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系;根据所述文件的标识,从所述存储服务器组对应的文件的标识、磁盘的标识与数据块的偏移量的对应关系中获取存储所述文件的磁盘的标识以及所述文件包括的数据块在所述磁盘中存储的偏移量;根据存储所述文件的磁盘的标识和所述文件包括的数据块在所述磁盘中存储的偏移量,从所述存储服务器组选择的一个存储服务器中访问所述文件包括的数据块。
21.如权利要求17所述的系统,其特征在于,所述客户端还用于向所述管理服务器发送写文件请求,所述写文件请求中携带待写入的文件;
相应地,所述管理服务器还用于接收客户端发送的写文件请求;根据待写入的文件的标识,获取所述待写入的文件对应的多个存储服务器组,所述管理服务器中存储文件的标识与存储服务器组的对应关系;根据所述获取的多个存储服务器组,将所述待写入的文件划分成多个数据块,且划分的数据块与所述存储服务器组一一对应;在每个存储服务器组包括的每个存储服务器中,确定出用于存储所述文件包括的数据块的磁盘的标识,将所述文件包括的数据块写入所述磁盘的标识对应的磁盘中。
22.如权利要求21所述的系统,其特征在于,所述管理服务器还用于根据所述待写入的文件的标识和所述存储所述文件包括的数据块的磁盘的标识,生成并存储文件的标识与磁盘的标识的对应关系。
23.如权利要求21所述的系统,其特征在于,所述管理服务器还用于在每个存储服务器组包括的每个存储服务器中,确定出用于存储所述文件包括的数据块的磁盘的标识,并根据存储所述文件包括的数据块的磁盘的标识,确定出所述磁盘中存储所述文件包括的数据块的偏移量;根据存储所述文件包括的数据块的偏移量,将所述文件包括的数据块存储在所述磁盘的标识对应的磁盘的数据块中。
24.如权利要求23所述的系统,其特征在于,所述管理服务器还用于根据所述待写入的文件的标识、所述存储所述文件包括的数据块的磁盘的标识和存储所述文件包括的数据块的偏移量,生成并存储文件的标识、磁盘的标识和数据块的偏移量的对应关系。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310027284.9A CN103942112B (zh) | 2013-01-22 | 2013-01-22 | 磁盘容错方法、装置及系统 |
PCT/CN2013/088170 WO2014114135A1 (en) | 2013-01-22 | 2013-11-29 | Disk fault tolerance method, device and system |
US14/259,106 US9477565B2 (en) | 2013-01-22 | 2014-04-22 | Data access with tolerance of disk fault |
HK15100608.7A HK1200931A1 (zh) | 2013-01-22 | 2015-01-20 | 磁盤容錯方法、裝置及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310027284.9A CN103942112B (zh) | 2013-01-22 | 2013-01-22 | 磁盘容错方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942112A true CN103942112A (zh) | 2014-07-23 |
CN103942112B CN103942112B (zh) | 2018-06-15 |
Family
ID=51189787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310027284.9A Active CN103942112B (zh) | 2013-01-22 | 2013-01-22 | 磁盘容错方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9477565B2 (zh) |
CN (1) | CN103942112B (zh) |
HK (1) | HK1200931A1 (zh) |
WO (1) | WO2014114135A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106534308A (zh) * | 2016-11-14 | 2017-03-22 | 中国银联股份有限公司 | 一种分布式存储系统中解决数据块访问热点的方法及装置 |
CN107092437A (zh) * | 2016-02-17 | 2017-08-25 | 杭州海康威视数字技术股份有限公司 | 数据写入、读取方法及装置、云存储系统 |
CN107436725A (zh) * | 2016-05-25 | 2017-12-05 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
CN110990129A (zh) * | 2019-10-17 | 2020-04-10 | 上海海加网络科技有限公司 | 一种基于智能启发式算法的分布式存储系统调度方法 |
CN111274205A (zh) * | 2020-01-07 | 2020-06-12 | 北京松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN111444157A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 分布式文件系统及数据访问方法 |
CN111695018A (zh) * | 2019-03-13 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、分布式网络系统、计算机设备 |
CN113572837A (zh) * | 2021-07-22 | 2021-10-29 | 南方电网数字电网研究院有限公司 | 基于分片技术的电网监控系统数据处理服务调度方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159790B (zh) * | 2015-09-30 | 2018-03-16 | 成都华为技术有限公司 | 一种数据抢救方法及文件服务器 |
CN106254516B (zh) * | 2016-08-31 | 2020-02-28 | 北京小米移动软件有限公司 | 负载均衡方法及装置 |
TWI607303B (zh) * | 2016-10-14 | 2017-12-01 | 喬鼎資訊股份有限公司 | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 |
CN106528005B (zh) * | 2017-01-12 | 2019-12-31 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的磁盘添加方法及装置 |
CN107037987A (zh) * | 2017-04-01 | 2017-08-11 | 北京华云网际科技有限公司 | 对分布式存储系统中卷的处理方法和装置 |
CN107888678B (zh) * | 2017-11-08 | 2020-11-13 | 北京奇艺世纪科技有限公司 | 一种文件下载的控制方法及装置 |
EP3640856A1 (en) * | 2018-10-19 | 2020-04-22 | Fujitsu Limited | A method, apparatus and computer program to carry out a training procedure in a convolutional neural network |
CN112256478B (zh) * | 2020-10-16 | 2023-05-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种单磁盘故障的修复方法、系统、设备及存储介质 |
CN113672422B (zh) * | 2021-08-18 | 2024-02-13 | 济南浪潮数据技术有限公司 | 一种磁盘故障探测方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127233A (zh) * | 2007-09-25 | 2008-02-20 | Ut斯达康通讯有限公司 | 流媒体应用中的硬盘错误检测与容错方法 |
US20110016353A1 (en) * | 2005-10-21 | 2011-01-20 | Isilon System, Inc. | Systems and methods for distributed system scanning |
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
CN102591842A (zh) * | 2010-12-17 | 2012-07-18 | 微软公司 | 在群集共享卷中的卷和文件系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389312B2 (en) * | 1997-04-28 | 2008-06-17 | Emc Corporation | Mirroring network data to establish virtual storage area network |
US7010554B2 (en) * | 2002-04-04 | 2006-03-07 | Emc Corporation | Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner |
US7225204B2 (en) * | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
US7069465B2 (en) * | 2002-07-26 | 2006-06-27 | International Business Machines Corporation | Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system |
US7028156B1 (en) * | 2003-07-01 | 2006-04-11 | Veritas Operating Corporation | Use of read data tracking and caching to recover from data corruption |
US7814273B2 (en) * | 2004-11-05 | 2010-10-12 | Data Robotics, Inc. | Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method |
US7653832B2 (en) * | 2006-05-08 | 2010-01-26 | Emc Corporation | Storage array virtualization using a storage block mapping protocol client and server |
US8266136B1 (en) * | 2009-04-13 | 2012-09-11 | Netapp, Inc. | Mechanism for performing fast directory lookup in a server system |
US9170892B2 (en) * | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US8732518B2 (en) * | 2011-04-13 | 2014-05-20 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
-
2013
- 2013-01-22 CN CN201310027284.9A patent/CN103942112B/zh active Active
- 2013-11-29 WO PCT/CN2013/088170 patent/WO2014114135A1/en active Application Filing
-
2014
- 2014-04-22 US US14/259,106 patent/US9477565B2/en active Active
-
2015
- 2015-01-20 HK HK15100608.7A patent/HK1200931A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016353A1 (en) * | 2005-10-21 | 2011-01-20 | Isilon System, Inc. | Systems and methods for distributed system scanning |
CN101127233A (zh) * | 2007-09-25 | 2008-02-20 | Ut斯达康通讯有限公司 | 流媒体应用中的硬盘错误检测与容错方法 |
CN102591842A (zh) * | 2010-12-17 | 2012-07-18 | 微软公司 | 在群集共享卷中的卷和文件系统 |
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092437A (zh) * | 2016-02-17 | 2017-08-25 | 杭州海康威视数字技术股份有限公司 | 数据写入、读取方法及装置、云存储系统 |
CN107092437B (zh) * | 2016-02-17 | 2019-11-22 | 杭州海康威视数字技术股份有限公司 | 数据写入、读取方法及装置、云存储系统 |
US11586673B2 (en) | 2016-02-17 | 2023-02-21 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data writing and reading method and apparatus, and cloud storage system |
CN107436725A (zh) * | 2016-05-25 | 2017-12-05 | 杭州海康威视数字技术股份有限公司 | 一种数据写、读方法、装置及分布式对象存储集群 |
US11216187B2 (en) | 2016-05-25 | 2022-01-04 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data writing and reading method and apparatus, and distributed object storage cluster |
CN106534308B (zh) * | 2016-11-14 | 2020-02-11 | 中国银联股份有限公司 | 一种分布式存储系统中解决数据块访问热点的方法及装置 |
CN106534308A (zh) * | 2016-11-14 | 2017-03-22 | 中国银联股份有限公司 | 一种分布式存储系统中解决数据块访问热点的方法及装置 |
CN111444157A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 分布式文件系统及数据访问方法 |
CN111444157B (zh) * | 2019-01-16 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 分布式文件系统及数据访问方法 |
CN111695018B (zh) * | 2019-03-13 | 2023-05-30 | 阿里云计算有限公司 | 数据处理方法及装置、分布式网络系统、计算机设备 |
CN111695018A (zh) * | 2019-03-13 | 2020-09-22 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、分布式网络系统、计算机设备 |
CN110990129A (zh) * | 2019-10-17 | 2020-04-10 | 上海海加网络科技有限公司 | 一种基于智能启发式算法的分布式存储系统调度方法 |
CN111274205A (zh) * | 2020-01-07 | 2020-06-12 | 北京松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN111274205B (zh) * | 2020-01-07 | 2024-03-26 | 北京小米松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN113572837A (zh) * | 2021-07-22 | 2021-10-29 | 南方电网数字电网研究院有限公司 | 基于分片技术的电网监控系统数据处理服务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014114135A1 (en) | 2014-07-31 |
HK1200931A1 (zh) | 2015-08-14 |
US20140229763A1 (en) | 2014-08-14 |
CN103942112B (zh) | 2018-06-15 |
US9477565B2 (en) | 2016-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942112A (zh) | 磁盘容错方法、装置及系统 | |
US11714708B2 (en) | Intra-device redundancy scheme | |
US11169723B2 (en) | Data storage system with metadata check-pointing | |
US11301144B2 (en) | Data storage system | |
US9823980B2 (en) | Prioritizing data reconstruction in distributed storage systems | |
US11438411B2 (en) | Data storage system with redundant internal networks | |
US11467732B2 (en) | Data storage system with multiple durability levels | |
US20180024964A1 (en) | Disaggregated compute resources and storage resources in a storage system | |
US8479037B1 (en) | Distributed hot-spare storage in a storage cluster | |
CN102024044B (zh) | 分布式文件系统 | |
CN103929500A (zh) | 一种分布式存储系统的数据分片方法 | |
CN101997823A (zh) | 一种分布式文件系统及其数据访问方法 | |
US20050091451A1 (en) | Methods of reading and writing data | |
WO2005041045A2 (en) | Methods of reading and writing data | |
CN104424052A (zh) | 一种自动冗余的分布式存储系统及方法 | |
US8683258B2 (en) | Fast I/O failure detection and cluster wide failover | |
US10915405B2 (en) | Methods for handling storage element failures to reduce storage device failure rates and devices thereof | |
US9898360B1 (en) | Preventing unnecessary data recovery | |
US20230185822A1 (en) | Distributed storage system | |
JP2022101208A (ja) | 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1200931 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1200931 Country of ref document: HK |