发明内容
本发明实施例的目的在于提供一种数据处理方法和系统,用以节省能源,放缓设备折旧速度。
为了实现上述目的,本发明实施例提供了一种数据处理方法,包括:
多个存储节点中的一个全数据节点,获得分片文件,所述分片文件表示一存储文件对应存储在所述多个存储节点中的数据,将所述分片文件进行整合,保存整合后的文件;
在获知客户端节点请求读取所述存储文件时,发送所述整合后的文件给所述客户端节点。
本发明实施例还提供了一种数据处理系统,包括与客户端节点进行通信的多个存储节点,所述多个存储节点中包括至少一个全数据节点;
所述客户端节点,用于发送读数据请求,所述读数据请求用于请求读取存储在所述全数据节点中的数据;
所述全数据节点,用于获得分片文件,所述分片文件表示一存储文件对应存储在所述多个存储节点中的数据,将所述分片文件进行整合,保存整合后的文件,在获知客户端节点请求读取所述存储文件时,发送所述整合后的文件给所述客户端节点。
本发明实施例还提供了一种数据处理方法,包括:
接收客户端节点发送的读取数据请求,所述读取数据请求中携带待读取的文件的目录和文件名;根据所述待读取文件的目录和文件名查询本地全局文件数据表,获得文件标识,向全部存储节点广播所述文件标识以及所述客户端节点的地址;
存储节点在根据所述文件标识确定本地保存相应文件时,根据所述客户端节点的地址将相应数据发送给所述客户端节点。
本发明实施例还提供了一种数据处理系统,包括与客户端节点进行通信的主控节点和多个存储节点,其中:
所述客户端节点,用于向所述主控节点发送读取数据请求,所述读取数据请求中携带文件的目录和文件名;
所述主控节点,用于根据待读取文件的目录和文件名查询本地全局文件数据表,获得全局唯一的文件标识,并向全部存储节点广播所述文件标识以及所述客户端节点的地址;
所述存储节点,用于在根据所述文件标识确定本地保存相应文件时,根据所述客户端节点的地址将相应数据发送给所述客户端节点。
本发明实施例的有益效果在于:
采用本发明实施例提供的技术方案,多个存储节点中的一个全数据节点获得一存储文件对应的分布在所述多个存储节点中的分片文件,将所述分片文件进行整合,保存整合后的文件。由于整合后的文件是一个完整文件,则在读取文件时,只需启动一个存储节点,可以节省能源,并且放缓设备折旧速度。
采用本发明实施例提供的技术方案,接收客户端节点发送的读取数据请求,所述读取数据请求中携带待读取的文件的目录和文件名;根据所述待读取文件的目录和文件名查询本地全局文件数据表,获得文件标识,向全部存储节点广播所述文件标识以及所述客户端节点的地址,存储节点根据文件标识确定本地保存相应文件时,根据客户端节点的地址将相应数据发送给客户端节点。由于不需要客户端节点来和存储节点建立连接,采用广播令存储节点获知客户端节点需要读取文件,提升了系统性能。
具体实施方式
本发明实施例提供的一种数据存储的方法,如图1所示,包括:
步骤S101,客户端节点从主控节点获取待存储文件的ID以及多个存储节点的地址,并将待存储文件分片后分别写入多个存储节点;
步骤S102,多个存储节点中的一个全数据节点将一存储文件分布在多个存储节点中的分片文件收集并作为一个完整文件保存。
步骤S102也可以表达为:获得一存储文件对应的分布在多个存储节点中的分片文件,并将各分片文件进行整合且保存整合后的文件。也就是说,获得分片文件,所述分片文件表示一存储文件对应存储在所述多个存储节点中的数据,将所述分片文件进行整合,保存整合后的文件。
对于多个存储节点中的一个全数据节点来说,其数据处理流程如图2所示,包括:
步骤S201,获得一存储文件对应的分布在多个存储节点中的分片文件, 将各分片文件进行整合,保存整合后的文件;
步骤S202,在获知客户端节点请求读取该存储文件时,发送整合后的文件给客户端节点。
由于整合后的文件是一个完整文件,则在客户端节点读取文件时,只需启动一个存储节点,可以节省能源,并且放缓设备折旧速度。另外,由于文件只在一个存储节点中保存,那么,即使采用现有技术中的数据读取方法,即由客户端节点来和存储节点建立连接,也能够降低客户端节点的CPU的消耗,并提高数据读取速度。
本发明实施例提供的一种数据读取的方法,包括:主控节点接收客户端节点发送的读取数据请求,所述读取数据请求中携带待读取的文件的目录和文件名;根据所述待读取文件的目录和文件名查询本地全局文件数据表,获得文件标识,向全部存储节点广播所述文件标识以及所述客户端节点的地址;
存储节点在根据所述文件标识确定本地保存相应文件时,根据所述客户端节点的地址将相应数据发送给所述客户端节点。
该数据读取的方法具体可如图3所示,包括:
步骤S301,客户端节点向主控节点请求读取文件;
步骤S302,主控节点根据待读取文件的目录和文件名查询本地全局文件数据表,获得全局唯一的文件标识,并向全部存储节点广播文件标识以及客户端节点的地址;
步骤S303,存储节点根据文件标识判断本地是否保存相应文件,若是,进行步骤S304,否则,直接结束;
步骤S304,存储节点根据客户端节点的地址将相应数据发送给客户端节点。
在采用图3所示的数据读取的方法时,存储节点获知客户端节点请求读取一存储文件的方法可以为:接收主控节点的读取广播消息,该读取广播消息中包括一存储文件全局唯一的文件标识以及客户端节点的地址,在确定该 文件标识对应该存储文件时,获知客户端节点请求读取该存储文件。
由于不需要客户端节点来和存储节点建立连接,采用广播的方式令存储节点获知客户端节点需要读取文件,极大地提升了系统性能。
上述数据存储的方法和数据读取的方法可以配合使用,也可以单独使用,在其各自单独使用时,可以配合其他相应存储或读取方法,本发明实施例中不对具体的配合使用的存储或读取方法进行限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。
实施例一
本实施例中的数据处理系统,如图4所示,包括主控节点(即图中的M节点)、客户端节点(即图中的C节点)和存储节点,存储节点包括全数据节点(即图中的B节点)和性能存储节点(即图中的D节点)。
本实施例中数据存储的方法,如图5所示,包括:
步骤S401,客户端节点向主控节点发送写数据请求;
步骤S402,主控节点为待存储文件分配ID,并将该文件ID与存储节点的地址发送给客户端节点;
步骤S403,客户端节点将待存储文件分片后分别写入多个存储节点;
步骤S404,多个存储节点中的一个全数据节点获得一存储文件对应的分布在多个存储节点中的分片文件,并将各分片文件进行整合且保存整合后的文件。
本实施例中数据读取的方法可以是如图3所示的数据读取方法,也可以是现有技术中的数据读取方法。
由于在本实施例中将文件作为完整文件保存,则在读取文件时,只需启动一个存储节点,可以节省能源,并且放缓设备折旧速度。另外,由于文件只在一个存储节点中保存,那么,即使采用现有技术中的数据读取方法,即由客户端节点来和存储节点建立连接,也能够降低客户端节点的CPU的消耗, 并提高数据读取速度。
另外,在本实施例中,还包括一个性能存储节点的控制流程,如图6所示,包括:
步骤S501,统计存储节点的访问量;
步骤S502,判断各个存储节点的平均访问量是否小于第一设定阈值,若是,进行步骤S503,否则进行步骤S504;
步骤S503,选择部分性能存储节点,并将选择到的性能存储节点的数据转移到剩余的存储节点,并在转移完成后关闭选择到的性能存储节点,结束;
在本步骤中,性能存储节点的选择规则可以根据实际需要进行设定,这里不作限定。
在具体实现时,也可以在选择部分性能存储节点后,先判断各选择到的性能存储节点上是否保存有数据,若是,则进行数据的转移,否则,就不需要进行转移操作。
步骤S504,判断各个存储节点的平均访问量是否大于第二设定阈值,第二设定阈值大于第一设定阈值,若是,进行步骤S405,否则直接结束;
步骤S505,开启部分或者全部处于关闭状态的性能存储节点。
在本步骤中,选择开启哪些性能存储节点的具体方法可以根据实际需要进行处理,这里不作限定。
在具体实现时,可以在访问量大时增加开启的性能存储节点数量,访问量小时降低开启的性能存储节点数量,不局限于上述性能存储节点的控制流程。
为了确保数据冗余备份和系统可靠,可以增加主控节点和全数据节点的数目。
由于在采用图3所示的数据读取方法的情况下,其对应的数据存储方法可以采用现有技术中的数据存储方法,也可以采用本发明实施例中提供的数据存储方法,在采用现有技术中的数据存储方法的情况下,存储节点可以不区分为全数据节点和性能存储节点,但为了提高存储节点的利用率,降低能耗, 仍然可以对存储节点的开启和关闭控制,具体可以统计各个存储节点的访问量,若各个存储节点的平均访问量小于第一设定阈值,则选择部分存储节点,并将选择到的存储节点的数据转移到剩余的存储节点,并在转移完成后关闭所述选择到的存储节点。若各个存储节点的平均访问量大于第二设定阈值,所述第二设定阈值大于所述第一设定阈值,则开启部分或者全部处于关闭状态的性能存储节点。
本实施例中的数据处理系统,包括与客户端节点进行通信的多个存储节点,该多个存储节点中包括至少一个全数据节点;
全数据节点,用于获得一存储文件对应的分布在多个存储节点中的分片文件,并将各分片文件进行整合且保存整合后的文件,且在获知客户端节点请求读取该存储文件时,发送整合后的文件给客户端节点。
上述数据处理系统的多个存储节点可以全部都是全数据节点,也可以一部分是全数据节点一部分是性能存储节点,总之,该多个存储节点中至少包括一个全数据节点。
在另一个实施例中,该数据处理系统还可以包括主控节点、客户端节点,在本实施例中数据读取的方法采用如图3所示的数据读取方法的情况下:
客户端节点,用于向主控节点发送读取数据请求,读取数据请求中携带文件的目录和文件名;
主控节点,用于根据文件的目录和文件名查询本地全局文件数据表,获得全局唯一的文件标识,并向全部存储节点广播文件标识以及客户端节点的地址;
存储节点还用于接收主控节点的广播,并在根据文件标识确定出本地保存相应文件时,根据客户端节点的地址将相应数据发送给客户端节点。
在本实施例中进行如图6所示的性能存储节点的控制流程的情况下,主控节点还用于统计多个存储节点的访问量,若各个存储节点的平均访问量小于第一设定阈值,则选择部分性能存储节点,并将选择到的性能存储节点的数据转移到剩 余的存储节点,并在转移完成后关闭选择到的性能存储节点;若各个存储节点的平均访问量大于第二设定阈值,若第二设定阈值大于第一设定阈值,则开启部分或者全部处于关闭状态的性能存储节点。在具体实现时,主控节点中可以保存各存储节点的状态信息,则在关闭或开启性能存储节点后,主控节点更新该状态信息。
由于在具体实现时,图3所示的数据读取方法不一定对应本发明实施例中提供的数据存储方法,本实施例还提供一种数据处理系统,包括主控节点、客户端节点和多个存储节点,其中:
所述客户端节点,用于向所述主控节点发送读取数据请求,所述读取数据请求中携带文件的目录和文件名;
所述主控节点,用于根据待读取文件的目录和文件名查询本地全局文件数据表,获得全局唯一的文件标识,并向全部存储节点广播所述文件标识以及所述客户端节点的地址;
所述存储节点,用于在根据所述文件标识确定本地保存相应文件时,根据所述客户端节点的地址将相应数据发送给所述客户端节点。
为了对存储节点的开启和关闭进行控制,所述主控节点还可以用于,统计各个存储节点的访问量,若各个存储节点的平均访问量小于第一设定阈值,则选择部分存储节点,并将选择到的存储节点的数据转移到剩余的存储节点,并在转移完成后关闭所述选择到的存储节点。
在具体实现时,主控节点可以是一个计算节点,主要特点是计算能力强,内存大,在内存里面保存所有的目录、文件、文件ID信息,根据读写请求里面的目录名、文件名可以快速获得文件ID;保存有存储节点的地址信息和状态信息;有网络接口可以通过网络和客户端节点、存储节点进行通信。
全数据节点可以是一个计算存储节点,主要特点是连接有数量多容量大的磁盘,有网络接口通过网络和主控节点、性能存储节点、客户端节点进行通信,从成本考虑可以使用便宜的机械式硬盘。
客户端节点可以是一个需要读写文件的客户端,客户端的应用软件通过客户端节点里面的文件系统客户端软件读写文件,就像读写本地文件一样,客户端节点有网络接口可以通过网络和主控节点、存储节点进行通信。
性能存储节点可以是一个计算存储节点,主要特点是有大量的内存,可以缓存文件数据,同时有大容量的SSD硬盘,这是由于性能存储节点容量可以比较小,很少访问的数据可以在性能存储节点删除,所以性能存储节点可以使用SSD(Solid StateDisk,固态硬盘)这种高性能的存储器,也可以使用高速硬盘;性能存储节点有网络接口通过网络可以和主控节点、全数据节点、客户端节点进行通信。
在本实施例中,供各个节点进行通信的网络可以为以太网,通过以太网交换机或者HUB连接;也可以使用InfiniBand交换机,各个节点通过InfiniBand适配器(HBA,Host Bus Adapter)和交换机连接;可以使用Myrinet交换机。各个节点通过Myrinet适配器(Myrinet HBA)和交换机连接;可以使用ATM(Asynchronous Transfer Mode,异步传输模式)交换机,各个节点通过ATM适配器(ATM HBA)和交换机连接;可以使用智能光网络交换机,各个节点通过智能光网络适配器和交换机连接。
实施例二
在本实施例中,主控节点与全数据节点可以合并设置,则本实施例中的数据处理系统如图7所示,其中,M’节点为合并后的主控节点与全数据节点,称为合并节点,D节点为性能存储节点,C为客户端节点。
本实施例中数据存储的方法,如图8所示,包括:
步骤S601,客户端节点向合并节点发送写数据请求;
步骤S602,合并节点为待存储文件分配ID,并将该文件ID与性能存储节点的地址发送给客户端节点;
步骤S603,客户端节点将待存储文件分片后分别写入各性能存储节点和合并节点;
步骤S604,该合并节点获得一存储文件对应的分布在多个存储节点中的 分片文件,并将各分片文件进行整合且保存整合后的文件。
由于在系统中可以包括多个合并节点,因此,合并节点也可以在客户端节点请求写数据时,将其他合并节点的地址也发送给客户端节点,则客户端节点将待存储文件分片后分别写入各性能存储节点和各合并节点,在这种情况下,最终收集文件的合并节点可以不是最初为客户端分配文件ID的那个合并节点。
本实施例中数据读取的方法,如图9所示,包括:
步骤S701,客户端节点向合并节点请求读取文件;
步骤S702,合并节点根据待读取文件的目录和文件名查询本地全局文件数据表,获得全局唯一的文件标识,并向全部性能存储节点广播文件标识以及客户端节点的地址;
步骤S703,性能存储节点以及合并节点根据文件标识判断本地是否保存相应文件,若是,进行步骤S704,否则,直接结束;
步骤S704,性能存储节点以及合并节点根据客户端节点的地址将相应数据发送给客户端节点。
在本实施例中,同样可以具有实施例一中所述的性能存储节点的控制流程,也同样可以增加主控节点和全数据节点的数目来确保数据冗余备份和系统可靠。
在本实施例中,供各个节点进行通信的网络可以为以太网,通过以太网交换机或者HUB连接;也可以使用InfiniBand交换机,各个节点通过InfiniBand适配器(HBA,Host Bus Adapter)和交换机连接;可以使用Myrinet交换机。各个节点通过Myrinet适配器(Myrinet HBA)和交换机连接;可以使用ATM交换机,各个节点通过ATM适配器(ATM HBA)和交换机连接;可以使用智能光网络交换机,各个节点通过智能光网络适配器和交换机连接。
综上所述,采用本发明实施例提供的技术方案,由于将文件作为完整文件保存,则在读取文件时,只需启动一个存储节点,可以节省能源,并且放 缓设备折旧速度。
系统性能可以根据需要提供,性能存储节点可以作为加速节点,在性能需要扩充的时候,可以增加节点。在性能需要降低的时候,关闭性能存储节点,同样可以省电,放缓设备折旧速度。
并且,由于采用广播的方式,并发的方式,极大提升了系统性能。
性能存储节点可以使用大内存和SSD结合,比机械磁盘提供更好的性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。