发明内容
本发明实施例的主要目的在于提供一种小文件的存储方法及系统,以解决现有技术中的存储器由于存储用磁盘没有存储区分而导致的访问IO性能较差、进而导致了寻址效率低的问题。
为了实现上述目的,本发明实施例提供一种小文件的存储方法,该方法包括:管理系统接收来自客户端的存储请求;所述管理系统根据接收到的多个存储器的负载信息选择分布性最佳的存储器,其中,每一存储器包括至少一个外部磁盘存储器,所述的负载信息包括磁盘剩余空间、CPU负载信息和磁盘IO信息;所述管理系统获取所述最佳存储器的IP地址并发送给所述客户端;所述客户端与所述最佳存储器建立连接;所述最佳存储器接收并存储来自所述客户端的需要存储的数据。
优选地,所述每一存储器包括若干外部磁盘存储器,其中,所述若干外部磁盘存储器之间采用轮询磁盘剩余空间的机制确定本地负载均衡。
所述管理系统根据接收到的多个存储器的负载信息选择分布性最佳的存储器包括:所述管理系统分别确定每个存储器的负载信息的权重;所述管理系统根据所述每个存储器的负载信息的权重确定各存储器的负载情况;所述管理系统将负载情况所述分布性最佳的存储器选择为最佳存储器。
具体地,通过如下方式确定存储器的负载情况:根据预定规则对所述负载信息中的每项信息设置权重;根据所述每项信息设置的权重确定每个存储器的负载信息权重。
通过如下公式确定所述存储器的负载情况:
存储器的负载情况=(磁盘剩余空间)×a+(CPU负载信息)×b+(磁盘IO信息)×c,其中,a为所述磁盘剩余空间的权重,b为所述CPU负载信息的权重;c为所述磁盘IO信息的权重。
最佳存储器接收并存储来自所述客户端的需要存储的数据包括:所述最佳存储器接收所述客户端的需要存储的数据;所述最佳存储器存储所述需要存储的数据至相应的磁盘存储器。
本发明实施例还提供一种小文件的存储系统,该系统包括:管理系统、客户端、以及包括多个存储器,其中,每个存储器包括至少一个分区的外部磁盘存储器,所述的管理系统包括:存储请求接收单元,用于接收来自所述客户端的存储请求;最佳存储器选择单元,用于根据接收到的多个存储器的负载信息选择分布性最佳的存储器,其中,所述的负载信息包括磁盘剩余空间、CPU负载信息和磁盘IO信息;IP地址获取单元,用于获取所述最佳存储器的IP地址;IP地址发送单元,用于将获取的所述最佳存储器的IP地址发送给所述客户端;所述客户端与所述最佳存储器建立连接,所述最佳存储器接收并存储来自所述客户端的需要存储的数据。
优选地,所述每一存储器包括若干外部磁盘存储器,其中,所述若干外部磁盘存储器之间采用轮询磁盘剩余空间的机制确定本地负载均衡。
其中,最佳存储器选择单元包括:负载情况确定模块,用于根据接收到的多个存储器的负载信息确定各存储器的负载情况;最佳存储器选择模块,用于将负载情况分布性最佳的存储器选择为最佳存储器。
上述的负载情况确定模块包括:权重设置子模块,用于根据预定规则对所述负载信息中的每项信息设置权重;负载情况确定子模块,用于根据所述每项信息设置的权重确定每个存储器的负载信息权重。
具体地,所述的负载情况确定模块通过如下公式确定所述存储器的负载情况:存储器的负载情况=(磁盘剩余空间)×a+(CPU负载信息)×b+(磁盘IO信息)×c,其中,a为所述磁盘剩余空间的权重,b为所述CPU负载信息的权重;c为所述磁盘IO信息的权重。
所述存储器包括:数据接收单元,用于接收所述客户端的需要存储的数据;数据存储单元,用于存储所述需要存储的数据至相应的磁盘存储器。
借助于上述技术方案至少之一,通过对存储器进行分区、以及根据负载信息选择分布性最佳存储器进行存储数据,可以使得数据可以均衡的分布在每块磁盘上,提高IO性能,从而提高系统的寻址效率,提高数据的读写操作速度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中的存储用磁盘没有存储区分,导致了存储数据后的存储器存在访问IO性能差、寻址效率低的问题。基于此,本发明实施例提供一种小文件的存储方法及系统。以下结合附图对本发明进行详细说明。
实施例一
本发明实施例提供一种小文件的存储方法,如图1所示,该方法包括:
步骤101,管理系统接收来自客户端的存储请求;
步骤102,管理系统根据接收到的多个存储器的负载信息选择分布性最佳的存储器,其中,负载信息包括磁盘剩余空间、CPU负载信息和磁盘IO信息,每个存储器包括至少一个外部磁盘存储器;
步骤103,管理系统获取最佳存储器的IP地址并发送给客户端;
步骤104,客户端与最佳存储器建立连接;
步骤105,最佳存储器接收并存储来自客户端的需要存储的数据。
由以上描述可以看出,通过对存储器进行分区、以及根据负载信息选择分布性最佳存储器进行存储数据,可以使得数据可以均衡的分布在每块磁盘上,提高IO性能,从而提高系统的寻址效率,提高数据的读写操作速度。
其中,分布性是指数据在磁盘之间分布存储的特性。
优选地,每一存储器包括若干外部磁盘存储器,其中,若干外部磁盘存储器之间采用轮询磁盘剩余空间的机制确定本地负载均衡,这样数据就可以均衡的分布在每块磁盘上,以均衡各个磁盘的利用率。再通过对存储器分区,就可以提高系统的寻址效率,提高数据的读写操作速度。
上述步骤102具体包括:管理系统根据接收到的多个存储器的负载信息分别确定每个存储器的负载信息的权重;再根据每个存储器的负载信息的权重确定各存储器的负载情况;然后将负载情况分布性最佳的存储器选择为最佳存储器。即,可以通过如下方式确定存储器的负载情况:根据预定规则对负载信息中的每项信息设置权重;根据每项信息设置的权重确定每个存储器的负载信息权重。该预定规则可以是信息的重要度。
在具体实施时,负载信息中每项信息的权重可以根据重要度来设置,即,越重要的信息权重越高。例如,对于存储器,磁盘剩余空间是最重要的一项信息,设定权重为a=0.6,CPU负载和磁盘IO同等重要,均设为b=c=(-0.2)。然后根据下面公式确定存储器的负载情况:
Val=(磁盘剩余空间)×a+(CPU负载)×b+(磁盘IO)×c
根据上述公式,负载情况最优的存储器即是Val值最大的存储器。这样,数据就可以均衡的分布在各存储器上。
上述步骤105具体包括:最佳存储器接收客户端的需要存储的数据;最佳存储器存储需要存储的数据至相应的磁盘存储器。例如,一个存储器可以分为若干了区,对于接收的数据,可以根据该数据的大小合理的存储到相应的区块,这样,可以提高IO效率,调高数据的读写操作速度。
以下给出一实例。
图2是管理系统与存储器的连接关系图,管理系统根据每个存储器定时发送的负载信息,包括磁盘剩余空间、CPU负载、磁盘IO。在硬件上,每个存储器本身自带的存储容量为1-2T,每个存储器均可以外挂若干个1-2T的外部存储器。例如,其中一个存储器具有20T的容量,该存储器具有10个区分的磁盘存储器,每个空间为2T,这样将20T磁盘的磁道寻址改为2T内的磁道寻址,这从硬件架构上提高了IO性能,可以提高系统寻址速度,提高数据的读写操作速度。
当管理系统接收到来自客户端的存储请求后,管理系统综合比较各存储器的负载,选择负载最小的存储器来进行数据操作。然后管理系统将选择的负载最小存储器的IP地址发送给客户端,使得客户端与该存储器进行通信。该存储器在接收到数据之后,根据数据的大小选择合适的区存储数据,这样可以合理分配存储器的磁盘存储器,有效地利用有限的资源。
由以上描述可知,每台存储器的数据都可以均衡的分布在每块磁盘上,数据分布性较强,且提高了每台存储器的磁盘IO效率。
在实际操作中,存储数据也可以采用对磁盘剩余空间的轮询机制来实现,即,管理系统选择磁盘剩余空间大的存储器作为最佳存储器,进行数据存储操作。
实施例二
本发明实施例还提供一种小文件的存储系统,如图3所示,该系统包括管理系统1、客户端2、以及包括多个存储器3,其中,每个存储器包括至少一个分区的磁盘存储器。管理系统1分别与客户端2、以及包括多个存储器3连接,客户端2与其中一个存储器连接。每个存储器定时将负载信息发送给管理系统,负载信息包括磁盘剩余空间、CPU负载信息和磁盘IO信息。当管理系统接收来自客户端的存储请求时,管理系统根据接收到的存储器的负载信息选择最佳存储器,管理系统获取最佳存储器的IP地址并发送给客户端,然后客户端与最佳存储器建立连接发送数据至最佳存储器进行存储,最佳存储器接收并存储数据。
如图4所示,管理系统1包括:
存储请求接收单元11,用于接收来自客户端的存储请求;
最佳存储器选择单元12,用于根据接收到的多个存储器的负载信息选择最佳存储器,其中,负载信息包括磁盘剩余空间、CPU负载信息和磁盘IO信息;
IP地址获取单元13,用于获取最佳存储器的IP地址;
IP地址发送单元14,用于将获取的最佳存储器的IP地址发送给客户端。
由以上描述可以看出,通过存储器的分区、以及管理系统根据负载信息选择最佳存储器进行存储数据,可以使得数据可以均衡的分布在每块磁盘上,提高IO性能,从而提高系统的寻址效率,提高数据的读写操作速度。
具体地,如图5所示,最佳存储器选择单元12包括:
负载情况确定模块121,用于根据接收到的多个存储器的负载信息确定各存储器的负载情况;
最佳存储器选择模块122,用于将负载情况最优的存储器选择为最佳存储器。
如图6所示,负载情况确定模块121包括:
权重设置子模块1211,用于根据预定规则对所述负载信息中的每项信息设置权重;
负载情况确定子模块1212,用于根据所述每项信息设置的权重确定每个存储器的负载信息权重。
如图7所示,每个存储器3包括:
数据接收单元31,用于接收所述客户端的需要存储的数据;
数据存储单元32,用于存储所述需要存储的数据至相应的磁盘存储器。
上述各单元的执行过程可以参考上述实施例一中的描述,此处不再赘述。
综上所述,本发明实施例通过权重负载均衡和磁盘区分的轮询机制负载均衡来存储数据,使得数据可以均衡的分布在各存储器上,由于数据均衡的分布在每块磁盘上,这提高了数据的分布性,提高了磁盘IO效率,克服了现有技术中的由于存储用磁盘没有存储区分而导致的访问IO性能较差、进而导致了寻址效率低的问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。