一种具有p2p功能的分布式存储系统和方法

文档序号:7714560阅读:168来源:国知局

专利名称::一种具有p2p功能的分布式存储系统和方法
技术领域
:本发明涉及一种具有p2p功能的分布式存储系统和方法,属于流媒体存储领域。
背景技术
:传统的网络存储系统采用单一的存储服务器存放所有数据,存储服务器将成为系统性能的瓶颈,也将成为可靠性和安全性的焦点,而且还有单点依赖的缺陷,另外传统的存储服务器价格也比较昂贵,在数据恢复速度、可维护性方面都有比较大的缺陷,已经很难满足大规模存储应用的需要。为了解决这些问题,提出了网络分布式存储技术的概念。网络分布式存储技术是在存储应用上对用户透明,而实际物理存储却自动分布在不同的网络存储节点上的一种技术。原来的网络应用形式,大多是采用集中式,这种方式的瓶颈在于很难扩展链接容量。P2p技术是一种把集中分散为节点与节点间的互联,从而打破了集中方式中的瓶颈问题。从这一意义上来说,如果把p2p技术与分布式存储技术结合,就能使分布式存储技术在数据恢复、数据分发、数据收束方面会具有更优的性能。
发明内容本发明结合分布式和p2p技术,这里提出一种具有p2p功能的分布式存储系统和方法,该系统和方法能够利用低端机器,甚至用pc机就可以集成组织成一个能应用于超大规模的分布式存储系统。此系统还具备维护简单、价格低廉、应用透明以及支持无限的水平扩展能力等优良特点。该具有p2p功能的分布式存储系统,包括客户端,中心服务器和存储节点,其特征在于客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户丄山顺;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点健康状况报告信息;中心服务器根据读写的资源信息和各存储节点健康状况信息对各存储节点上的资源进行P2p调度;中心服务器采用映射表来存储资源映射信息而不存储实际的资源内容,所述映射表包括资源名、总长度、资源所在存储节点位置等内容;存储节点存储实际的资源内容,并根据中心服务器的调度与其它存储节点进行p2p通信。进一步,各存储节点定时向中心服务器汇报各自的健康状况;每一个资源都对应有一个计数器;5用户每访问一次该资源,则将该资源所对应的计数器值增加;随着某区域内的用户读取该资源的次数的增加,当该资源所对应的计数器值达到一个设定的阀值,则中心服务器将此资源为热门资源;为了使该区域内的用户更快的获取该热门资源,中心服务器向各存储节点发出调度请求,通知距离该区域最近的存储节点来获取此资源;距离该区域最近的存储节点与具有该热门资源的存储节点之间建立p2p连接,该热门资源拷贝到距离此区域最近的存储节点上。以及客户端向中心服务器发出读取资源的请求时;所述资源被分为多个数据块存储在多个不同的存储节点上;中心服务器查找这所述多个数据块对应的存放的地址,并这些地址将返回给客户丄山顺;客户端根据从中心服务器上获得的多个数据块对应的存放的地址,向这些地址所对应的存储节点发出读取数据的请求,进而读取所述资源的全部内容。本系统中,客户端向中心服务器发出写入资源的请求时;首先,客户端计算出该资源的唯一标识,并将该标识,以及资源长度报告消息的形式告诉中心服务器;中心服务器收到报告消息后记录下此报告消息,同时查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;中心服务器查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户丄山顺;所述存储节点地址可以是多个,其取决于分块存储的块的大小;客户端根据中心服务器返回的存储节点的地址,客户端向存储节点发出数据写入请求,进而将数据块传送到各地址所对应的存储节点;当存储完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息。客户端向存储节点发出数据写入请求时,存储节点向中心服务器请求距自己最近的两个存储节点,并进一步与这两个存储节点建立P2p连接,将客户端请求写入的数据发送到这两个存储节点上进行备份。更进一步,如果一个资源在预先设定的时间长度内被访问的次数小于预先设定的阀值,则将其设定为冷门资源,中心服务器检测到某块区域存在冷门资源后,给此区域所有存储有此冷门资源的存储节点发送消息,通知各存储节点将其删除。本发明还提供了一种具有p2p功能的分布式存储方法,其特征在于客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户丄山顺;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存6储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。进一步,中心服务器接收到存储节点的健康状况报告后,根据健康状况判断当某个时段内某个地区的访问量达到一定程度的时,中心服务器会认定此资源为热门资源会自动触发存储节点之间的P2p调度;当某个时段内某个地区的访问量低于一定程度的时候中心服务器则会认定为此资源为冷门资源,会自动触发数据收束调度;如果某个存储节点在一定时间内未发送状态汇报数据包,则认定该存储节点为死节点。更进一步,所述读写请求包括写入资源的请求和读取资源的请求;当存储完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息;存储节点定时向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。本发明提出的具有p2p功能的分布式存储方法包括以下步骤客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户丄山顺;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。更进一步,每一个资源都对应有一个计数器;用户每访问一次该资源,则将该资源所对应的计数器值增加;随着某区域内的用户读取该资源的次数的增加,当该资源所对应的计数器值达到一个设定的阀值,则中心服务器将此资源为热门资源;为了使该区域内的用户更快的获取该热门资源,中心服务器向各存储节点发出调度请求,通知距离该区域最近的存储节点来获取此资源;距离该区域最近的存储节点与具有该热门资源的存储节点之间建立p2p连接,该热门资源拷贝到距离此区域最近的存储节点上。所述读写请求包括写入资源的请求和读取资源的请求;客户端向中心服务器发出写入资源的请求时;首先,客户端计算出该资源在所有存储节点中的唯一标识,并将该唯一标识,以及资源长度报告消息的形式告诉中心服务器;中心服务器收到报告消息后记录下此报告消息,同时查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;中心服务器查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户丄山顺;所述存储节点地址可以是多个,其取决于分块存储的块的大小;客户端根据中心服务器返回的存储节点的地址数量,并且资源分解成与存储节点的地址数量相同数量的数据块,并向存储节点发出数据写入请求,进而将数据块传送到各地址所对应的存储节点;当存储完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息;客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户丄山顺;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。图1是具有p2p功能的分布式存储系统的示意图图2是中心服务器的构成以及数据处理示意图图3是客户端向中心服务器请求读取资源的示意图图4是中心服务器根据热门资源进行调度的示意图图5是客户端向中心服务器发出写入操作的示意图图6是采用冗余存储来数据块备份的示意图图7是对冷门资源进行处理的示意图图8是存储节点的数据处理示意图图9是存储节点向中心服务器发送健康状况报告的示意图具体实施例方式采用附图l来说明本申请所提出的具有p2p功能的分布式存储系统。如图l所示,首先,客户端向中心服务器发出读写请求,中心服务器存储文件映射信息而不存储实际的文件内容,作为一个具体的实施方式,可以采用一个映射表,映射表包括但不限于文件名、总长度、文件所在存储节点位置等内容,映射表可以以文件或者数据库的形式来组织实现。中心服务器从映射表中查找到相应的文件的存取地址,该地址对应为具体的存储节点上存储介质的可寻址的位置,并将该位置返回给客户端,由于是文件在存储节点上是分块存储且块的大小固定,中心服务器不会调度磁盘空间还不够存储一个数据块的存储节点,即如果存储节点上的剩余磁盘空间小于一个分块的大小,则中心服务器不再指示客户端在该存储节点上进行写数据的操作。中心服务器进而选择另一个距客户端最近的且至少可以存储一个数据块的存储节点。客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,如果符合读写条件(例如该存储节点的健康状况良好,剩余磁盘空间大于一个分块的大小,或者该存储节点未处于读写保护状态,或者客户端与该存储节点之间的带宽大于一个预先设定的阀值),客户端对存储节点进行读写操作,即将文件写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的文件。存储节点作为文件内容的实际存储位置,向中心服务器发送状态报告,状态报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息。中心服务器根据文件信息和各存储节点状态信息进行存储、读取调度控制。存储节点存储实际的文件内容,并根据中心服务器的调度与其它存储节点进行p2p通信。系统有大量的存储节点,对存储节点机器性能基本没有限制,甚至可以利用普通pc机,具体的量视具体的应用数据容量而定。同时存储节点需要定时向中心服务器发送健康状况报告信息,以及读写事件触发的相关状态信息。更进一步,中心服务器包含数据库模块、消息接收处理模块、调度处理模块组成。如下图2所示消息处理模块可以处理的消息包括,客户端读写请求,存储节点的定时状态汇报信息。上述两种消息都会导致中心服务器读写数据库,此外,当客户端的读请求达到阀值或者低于某个值后,则消息处理模块会向调度处理模块触发调度事件,然后把结果告诉数据库。读数据库的时候数据库返回具体的数据,而写入进数据库的时候则返回成功与否。上述数据库模块可以采用数据库来实现,表l-6仅仅描述了主要的关键数据项,并不代表实现的全部。表1文件信息表<table>tableseeoriginaldocumentpage9</column></row><table><table>tableseeoriginaldocumentpage10</column></row><table>表3存储节点信息表<table>tableseeoriginaldocumentpage10</column></row><table>表4存储节点状态信息表<table>tableseeoriginaldocumentpage10</column></row><table>表5用户访问统计信息表<table>tableseeoriginaldocumentpage10</column></row><table>表6调度策略配置表文件标识统计时间段用户访问区域访问数量阀值—个示意性但不是限定性的关于客户端向存储节点读数据的例子假设,要读取的文件为filel,客户端向中心服务器发出读取请求,包括文件的MD5,该MD5值作为文件在所有存储节点中的唯一标识。中心服务器找到此文件所有的块存放的存储节点后会把每个存储节点的数据块信息连同存储节点位置发送给客户端,例如所要读取的文件长度为90M,其被分别分成两个数据块,一个为64M,另一个为24M,分别存储在不同的存储节点上,中心服务器查找这两个数据块对应的存放地址(这两个数据块可能在同一个存储节点上,也可能是在不同的存储节点上,因此所述的存放地址不少于一个),并返回给客户端,客户端根据从中心服务器上获得的这两个数据块对应的存放地址,向上述存放地址所对应的存储节点发出读取数据的请求,进而读取文件filel的整个内容。每一个资源(比如文本文件、图片、视频文件等)都对应有一个计数器,如果某区域内的用户读取该资源的次数达到一个设定的阀值,则中心服务器将此资源为热门资源,为了使该区域内的用户更快的获取该热门资源,中心服务器向存储节点发出调度请求,通知距离此区域最近的存储节点来获取此资源,以便此区域内的用户下次能够高效的读取。如图3所示,为每一个文件设置一个访问计数器(如表5中所示的"访问统计数"),该文件每被访问一次则其所对应的访问计数器加一。当客户端向中心服务器发送文件读取请求时,中心服务器返回距客户端最近的有客户端要读取的数据的存储节点,同时增加客户端所在区域的文件访问计数器的值,如果访问计数器的累计值达到预先设定的阀值,则表明该文件为热门资源,中心服务器触发储存节点之间的P2p调度,其向存储节点发出调度请求,通知距离此区域最近的存储节点来获取此文件,距离该区域最近的存储节点与拥有该热门资源的存储节点之间建立p2p连接,以实现将该热门资源从其他存储节点上拷贝到距离此区域最近的存储节点上。客户端根据中心服务器返回的存储节点来读取数据直到读取完毕。上述p2p通信只会发生在存储节点与存储节点之间,经中心服务器调度后,被调度的两个存储节点之间会通过HTTP的方式收发数据。触发p2p调度的必要条件是某段时间内某个地区的访问量达到系统预先设定的阀值。如图4所示,首先,假设被传输热门资源存在于存储节点k上,存储节点n是被调度存储节点(也就是说该存储节点需要从其他存储节点取数据的存储节点)。存储节点之间的数据传输时通过HTTP协议来传输。首先,存储节点n发送HTTP请求到存储节点k,存储节点k响应并发送存储节点n所需要的数据块给存储节点n直到存储节点n所需要的数据块全部发送完毕,这个时候存储节点n会通知中心服务器做出文件信息的相应变更,即修改映射表,以调整资源以及其数据块的存放信息。—个示意性但不是限定性的关于客户端向存储节点写数据的例子要存储的文件称为filel,文件长度为90M字节。首先,客户端会采用MD5算法计算出此文件的MD5值,该11MD5值作为文件在所有存储节点中的唯一标识,然后会把所述MD5值,以及文件长度报告消息的形式告诉中心服务器,中心服务器收到此消息后会记录下此报告消息,同时查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端,所述存储节点可以为多个,其取决于分块存储的块的大小,例如每个分块存储的块大小64M,则对于文件长度为90M的文件,中心服务器查找距客户端最近的有足够磁盘空间的两个存储节点地址返回给客户端,客户端判断其与中心服务器所返回的存储节点之间的P2p通信能力,例如连接状况(可以用服务质量QoS来反映)、传输带宽,如果连接稳定、传输带宽大于预先设定的最低通信带宽,则客户端会把filel分割成64M,26M两块数据,并且将这两个数据块传送到从中心服务器所获得的两个存储节点地址所对应的存储节点。当传输完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息,该记录过程包括在映射表(诸如表l-表6)中填写相应的数据项。如图5所示,当客户端将文件写入存储节点时,其先向中心服务器发出写入请求,中心服务器根据该写入请求向客户端返回距离最近的一个存储节点地址,客户端向该存储节点发送将要被写入的数据块,进而存储节点将该数据块进行备份,当该存储节点被写满以后,客户端会向中心服务器另行申请存储节点,直到客户端所有数据都写完毕为止。如果期间有任务失败的话,那么会自动选择另外的存储节点进行写操作。作为本分明的另一种实施方式,可以采用冗余存储来达到数据块备份的效果,也就是说在存储节点收到应用层发来的数据后会向中心服务器请求距自己最近的两个存储节点来备份数据。这样的好处在于客户端在读取该存储节点上的文件时,如果该存储节点发生意外状况而导致其不能工作时,客户端可以从其他两个拥有备份数据的存储节点读取所需要的数据。如图6所示,客户端向一个北京市电信存储节点发出数据写入请求,则该北京市电信存储节点向中心服务器请求另外两个存储节点的地址,中心服务器向其返回距离该存储节点最近(所述最近可以是物理上的最近,也可以是逻辑链路上的最近)的其他两个存储节点,如图6的底部所示的其他两个北京市电信节点,这两个北京市电信存储节点收到备份数据后会通知中心服务器自己收到了来自其上层存储节点(图6中接收客户端的数据的北京市电信存储节点)发送来的备份信息。如果一个资源在预先设定的时间长度内(比如一月)被访问的次数小于预先设定的阀值,则将其设定为冷门资源,冷门资源所占用的存储节点磁盘空间就是一种浪费。如图7所示,中心服务器检测到某块区域存在冷门资源后,会给此区域所有存储有此资源的存储节点发送消息,通知各存储节点将其删除;如果此节点存储的资源的来源为客户端,那么可以认为此节点上的资源为原始数据,则压縮存储磁带设备。如图8所示,存储节点的具有网络读写数据模块、系统信息收集模块、状态通知模块,客户端向存储节点发出1/0请求,存储节点的网络数据读写模块接收该请求,根据该请求向磁盘读写数据,如果是读数据返回的是具体的数据,如果是写数据则返回的是操作结果(成功或者失败)。系统信息收集模块收集磁盘空间,连接数,系统资源占用信息,并由状态通知模块负责把这些信息汇报给中心服务器。如图9所示,中心服务器来根据存储节点即时汇报的数据来进行调度,也正是通过定时汇报来得知每个存储节点的健康状况。每个存储节点会定时向中心服务器汇报此节点的健康状况(见表3,此外所述健康状况也可以采用心跳报告来实现)。首先,每个存储节点都会维护一个定时器,每隔一段时间把系统信息收集器收集到的信息发送给中心服务器,这里的信息包括某个时段内某个地区的访问量、磁盘剩余空间,连接数。其中,某个时段内某个地区的访问量是存储节点之间触发p2p调度的依据,也是数据收束调度的依据。当某个时段内某个地区的访问量达到一定程度的时候中心服务器会认定此资源为热门资源会自动触发存储节点之间的P2p调度,当某个时段内某个地区的访问量低于一定程度的时候中心服务器则会认定为此资源为冷门资源,会自动触发数据收束调度。磁盘剩余空间和连接数则做为负载均衡调度的依据。此外状态汇报也可当作心跳包使用,如果某个存储节点在一定时间内未发送状态汇报数据包,则认定该存储节点为死节点,来做为存储节点是否存活的依据。综上所述,本发明提供了一种存储节点间具备p2p功能的分布式文件存储系统及其相应的方法,此系统较其他文件存储系统和方法的最大特点就是以智能的方式实现了分布式存储,并且存储节点与存储节点间可以通过p2p的方式进行数据转移。这两个特性使得分布式存储系统对于应用系统来说提供了更透明的使用方式和更高效的数据存储效率。同时本系统和方法的实现方式还为极大的利用低端机器构架超大规模的的存储系统提供了方法,这一方法极大的降低了存储系统的成本,却并不损失性能。权利要求一种具有p2p功能的分布式存储系统,包括客户端,中心服务器和存储节点,其特征在于客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户端;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点健康状况报告信息;中心服务器根据读写的资源信息和各存储节点健康状况信息对各存储节点上的资源进行p2p调度;中心服务器采用映射表来存储资源映射信息而不存储实际的资源内容,所述映射表包括资源名、总长度、资源所在存储节点位置等内容;存储节点存储实际的资源内容,并根据中心服务器的调度与其它存储节点进行p2p通信。2.如权利要求1所述的具有p2p功能的分布式存储系统,其特征在于各存储节点定时向中心服务器汇报各自的健康状况;所述健康状况进一步包括某个时段内某个地区的访问量、磁盘剩余空间,连接数;如果某个存储节点在一定时间内未发送状态汇报数据包,则认定该存储节点为死节点中心服务器来根据存储节点的健康状况来进行调度;对于一个资源而言,当某个时段内某个地区的访问量达到一定程度时,中心服务器认定此资源为热门资源,并触发存储节点之间的p2p调度,当某个时段内某个地区的访问量低于一定程度时,中心服务器则认定为此资源为冷门资源,并触发数据收束调度。3.如权利要求2所述的具有p2p功能的分布式存储系统,其特征在于每一个资源都对应有一个计数器;用户每访问一次该资源,则将该资源所对应的计数器值增加;随着某区域内的用户读取该资源的次数的增加,当该资源所对应的计数器值达到一个设定的阀值,则中心服务器将此资源为热门资源;为了使该区域内的用户更快的获取该热门资源,中心服务器向各存储节点发出调度请求通知距离该区域最近的存储节点来获取此资源;距离该区域最近的存储节点与具有该热门资源的存储节点之间建立p2p连接,该热门资源拷贝到距离此区域最近的存储节点上。4.如权利要求2所述的具有p2p功能的分布式存储系统,其特征在于客户端向中心服务器发出读取资源的请求时;所述资源被分为多个数据块存储在多个不同的存储节点上;中心服务器查找这所述多个数据块对应的存放的地址,并这些地址将返回给客户端;客户端根据从中心服务器上获得的多个数据块对应的存放的地址,向这些地址所对应的存储节点发出读取数据的请求,进而读取所述资源的全部内容。5.如权利要求2所述的具有p2p功能的分布式存储系统,其特征在于客户端向中心服务器发出写入资源的请求时;首先,客户端计算出该资源在所有存储节点中的唯一标识,并将该唯一标识,以及资源长度报告消息的形式告诉中心服务器;中心服务器收到报告消息后记录下此报告消息,同时查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;中心服务器查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;所述存储节点地址可以是多个,其取决于分块存储的块的大小;客户端根据中心服务器返回的存储节点的地址数量,并且资源分解成与存储节点的地址数量相同数量的数据块,并向存储节点发出数据写入请求,进而将数据块传送到各地址所对应的存储节点;当存储完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息。6.如权利要求5所述的具有p2p功能的分布式存储系统,其特征在于客户端向存储节点发出数据写入请求时,存储节点向中心服务器请求距自己最近的两个存储节点,并进一步与这两个存储节点建立p2p连接,将客户端请求写入的数据发送到这两个存储节点上进行备份。7.如权利要求2所述的具有p2p功能的分布式存储系统,其特征在于如果一个资源在预先设定的时间长度内被访问的次数小于预先设定的阀值,则将其设定为冷门资源,中心服务器检测到某块区域存在冷门资源后,给此区域所有存储有此冷门资源的存储节点发送消息,通知各存储节点将其删除。8.—种具有p2p功能的分布式存储方法,其特征在于包括以下步骤客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户端;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。9.如权利要求8所述的具有p2p功能的分布式存储方法,其特征在于每一个资源都对应有一个计数器;用户每访问一次该资源,则将该资源所对应的计数器值增加;随着某区域内的用户读取该资源的次数的增加,当该资源所对应的计数器值达到一个设定的阀值,则中心服务器将此资源为热门资源;为了使该区域内的用户更快的获取该热门资源,中心服务器向各存储节点发出调度请求,通知距离该区域最近的存储节点来获取此资源;距离该区域最近的存储节点与具有该热门资源的存储节点之间建立p2p连接,该热门资源拷贝到距离此区域最近的存储节点上。10.如权利要求8所述的具有p2p功能的分布式存储方法,其特征在于所述读写请求包括写入资源的请求和读取资源的请求;客户端向中心服务器发出写入资源的请求时;首先,客户端计算出该资源在所有存储节点中的唯一标识,并将该唯一标识,以及资源长度报告消息的形式告诉中心服务器;中心服务器收到报告消息后记录下此报告消息,同时查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;中心服务器查找距客户端最近的有足够磁盘空间的存储节点地址返回给客户端;所述存储节点地址可以是多个,其取决于分块存储的块的大小;客户端根据中心服务器返回的存储节点的地址数量,并且资源分解成与存储节点的地址数量相同数量的数据块,并向存储节点发出数据写入请求,进而将数据块传送到各地址所对应的存储节点;当存储完毕后,存储节点会把自己收到的块信息报告给中心服务器,中心服务器在映射表中记录该资源的存放信息;客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户端;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,将资源写入存储节点中的存储介质上,或者从存储节点中的存储介质中读取相应的资源;存储节点向中心服务器发送健康状况报告,健康状况报告中包括该存储节点的存储状态信息,包括存储总容量,剩余空间等,中心服务接收各个存储节点状态报告信息;中心服务器根据读写的资源信息和各存储节点健康状况对各存储节点上的资源进行p2p调度。全文摘要本发明提出一种具有p2p功能的分布式存储系统和方法,其特征在于客户端向中心服务器发出读写请求;中心服务器从映射表中查找到相应的资源的存取地址,并将该位置返回给客户端;客户端根据中心服务器返回的存储节点的地址向具体的存储节点发出读写请求,存储节点向中心服务器发送健康状况报告,中心服务器根据读写的资源信息和各存储节点健康状况信息对各存储节点上的资源进行p2p调度。本发明提供的系统户方法能够利用低端机器集成组织成一个超大规模的分布式存储系统,备维护简单、支持无限的水平扩展能力。文档编号H04L29/08GK101710901SQ20091018095公开日2010年5月19日申请日期2009年10月22日优先权日2009年10月22日发明者李茗,杨永强,祝晓光申请人:乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1