CN103036949B - 一种虚拟化环境下Cassandra系统的优化方法和系统 - Google Patents
一种虚拟化环境下Cassandra系统的优化方法和系统 Download PDFInfo
- Publication number
- CN103036949B CN103036949B CN201210494542.XA CN201210494542A CN103036949B CN 103036949 B CN103036949 B CN 103036949B CN 201210494542 A CN201210494542 A CN 201210494542A CN 103036949 B CN103036949 B CN 103036949B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- submodule
- machine
- physical machine
- backup 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种虚拟化环境下Cassandra系统的优化方法,包括以下步骤:利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机,根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分,根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键请求的虚拟机最近的虚拟机进行通信。本发明还公开了一种虚拟化环境下Cassandra系统的优化系统。本发明的优化方法和系统能够解决现有方法中存在副本放置失效和通信效率不高的问题。
Description
技术领域
本发明属于海量数据存储和管理领域,更具体地,涉及一种虚拟化环境下Cassandra系统的优化方法和系统。
背景技术
随着云计算进行的如火如荼,虚拟化技术得到了更加广泛的应用,在虚拟机中做海量数据存储和管理也受到了越来越多人的重视和关注。Cassandra系统是一个高效的存储管理系统,采用了谷歌公司BigTable的数据模型和亚马逊公司Dynamo的分布式模型,是一个P2P的去中心化的键值存储系统。主要特点是:可扩展性非常好,支持线性扩展;面向列存储,并且支持超级列;高可用,易于容灾。虚拟化作为云计算的基础设施,让Cassandra系统能够更好的运行在虚拟化环境下,为用户提供更好的服务,具有重大的意义。
然而,现有的Cassandra系统运行在虚拟化环境下,存在以下问题:
(1)副本放置失效:Cassandra系统的副本放置策略是针对物理机的,虚拟化环境会导致备份的数据无效。例如副本的放置策略是简单策略,Cassandra系统会选择节点形成的环中相邻的几个节点写入数据,如果相邻的虚拟机节点在同一台物理机上,同一份数据的多个副本就被写到同一台物理机的多个虚拟机中,物理机挂掉后,物理机上所有的虚拟机都挂掉了,数据就不可访问了,Cassandra系统的可靠性和可用性就得不到保证;
(2)通信效率不高。同一物理机上虚拟机之间的通信效率要远远高于不同物理机上虚拟机之间的通信效率。同一物理机上的两个虚拟机通信,可以通过事件通道直接传输数据。但是不同物理机上虚拟机之间的通信,一次网络IO请求要先将数据交给前端驱动,前端驱动将请求发送给事件通道,然后事件通道再将请求转发给后端驱动,后端驱动完成IO请求后,将请求的结果按照发送的路径原路返回。这样其通信效率相对于同一物理机上虚拟机之间的通信效率大大降低。如何使Cassandra系统充分利用同一物理机上虚拟机之间的通信,避免不同物理机上虚拟机的通信,提高系统的性能,成为一个亟待解决的问题。
发明内容
本发明的目的在于提供一种虚拟化环境下Cassandra系统的优化方法,其能够解决现有方法中存在副本放置失效和通信效率不高的问题。
为实现上述目的,本发明提供了一种虚拟化环境下Cassandra系统的优化方法,包括以下步骤:
(1)利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机;
(2)根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分;
(3)根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键请求的虚拟机最近的虚拟机进行通信。
P2P协议采用Gossip协议。
步骤(1)包括以下子步骤:
(1-1)当前物理机获取其对应虚拟机的信息;
(1-2)当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息;
(1-3)另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入步骤(1-4),否则进入步骤(1-6);
(1-4)另一台物理机向当前物理机发送其数据中比摘要信息新的数据;
(1-5)当前物理机保存来自另一台物理机的新的数据;
(1-6)另一台物理机向当前物理机请求更新数据;
(1-7)当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机;
(1-8)另一台物理机保存来自当前物理机的新的数据。
虚拟机的信息包括该物理机上启动的所有虚拟机、虚拟机的IP、物理机的主机信息、主机IP、物理机所在的机架信息,当前物理机使用MD5算法对获取的虚拟机信息进行摘要处理,以获取摘要信息。
步骤(3)包括以下子步骤:
(3-1)获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序;
(3-2)虚拟机接收来自用户的键值请求;
(3-3)获取键值请求的令牌值Tk;
(3-4)在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机;
(3-5)在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点;
(3-6)判断键值请求中的备份数n是否大于2,若大于,则转入步骤(3-8),否则转入步骤(3-7);
(3-7)将键值请求发送到当前虚拟机和主备份节点,过程结束;
(3-8)在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-2个虚拟机作为附加备份节点;
(3-9)将键值请求发送到当前虚拟机、主备份节点和附加备份节点;
(3-10)接收来自用户的键请求,并确定接收到该键请求的虚拟机;
(3-11)确定当前虚拟机、主备份节点和附加备份节点中距离接收到键请求的虚拟机最近的一台虚拟机;具体而言,首先判断三者中有没有和接收到键请求的虚拟机在同一物理机上的虚拟机,如果没有,则进一步判断三者中有没有和接收到键请求的虚拟机位于同一机架上的虚拟机;
(3-12)将键请求发送到确定的距离接收到键请求最近的该台虚拟机。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
1、对用户透明:因为采用了步骤(1)和步骤(2),Cassandra系统自动获取物理机虚拟机的对应关系,并且这些位置关系用户是无法感知的,因此是对用户透明的。
2、可扩展性强:因为采用了步骤(1-1)至步骤(1-8),P2P的协议没有单点故障,节点加入即可使用,因此可扩展性强。
3、高可用:因为采用了步骤(3-1)至步骤(3-9),Cassandra系统能够选择正确的节点备份,任意一台物理机器关掉后,数据任然可以访问,因此高可用。
4、高性能:因为采用了步骤(3-10)至步骤(3-12),读取数据时选择距离最近的节点通信,可以提高吞吐率和相应时间,因此是高性能的。
本发明的另一个目的在于提供一种虚拟化环境下Cassandra系统的优化系统,其能够解决现有系统中存在的副本放置失效和通信效率不高的问题。
为实现上述目的,本发明提供了一种虚拟化环境下Cassandra系统的优化系统,包括获取模块、划分模块、副本和通信优化模块,获取模块用于利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机,划分模块用于根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分,副本和通信模块用于根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键请求的虚拟机最近的虚拟机进行通信。
获取模块包括获取子模块、摘要信息发送子模块、摘要信息比较子模块、发送新数据子模块、保存新数据子模块、请求更新数据子模块、发送更新数据子模块、保存更新数据子模块,获取子模块用于为当前物理机获取其对应虚拟机的信息,摘要信息发送子模块用于为当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息,摘要信息比较子模块用于另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入发送新数据子模块,否则进入请求更新数据子模块,发送新数据子模块用于另一台物理机向当前物理机发送其数据中比摘要信息新的数据,保存新数据子模块用于当前物理机保存来自另一台物理机的新的数据,请求更新数据子模块用于另一台物理机向当前物理机请求更新数据,发送更新数据子模块用于当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机,保存更新数据子模块用于另一台物理机保存来自当前物理机的新的数据。
副本和通信优化模块包括令牌子模块、接收用户键值请求子模块、获取键值令牌值子模块、查找当前虚拟机子模块、查找主备份节点子模块、判断备份数子模块、第一发送请求子模块、查找附加备份节点子模块、第二发送请求子模块、接收键请求子模块、节点确定子模块、第三发送请求子模块,令牌子模块用于获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序,接收用户键值请求子模块用于虚拟机接收来自用户的键值请求,获取键值令牌值子模块用于获取键值请求的令牌值Tk,查找当前虚拟机子模块用于在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机,查找主备份节点子模块用于在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点,判断备份数子模块用于判断键值请求中的备份数n是否大于,若大于,则转入查找附加备份节点子模块,否则转入第一发送请求子模块,第一发送请求子模块用于将键值请求发送到当前虚拟机和主备份节点,查找附加备份节点子模块用于在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-个虚拟机作为附加备份节点,第二发送请求子模块用于将键值请求发送到当前虚拟机、主备份节点和附加备份节点,接收键请求子模块用于接收来自用户的键请求,并确定接收到该键请求的虚拟机,节点确定子模块用于确定当前虚拟机、主备份节点和附加备份节点中距离接收到键请求的虚拟机最近的一台虚拟机,第三发送请求子模块用于将键请求发送到确定的距离接收到键请求最近的该台虚拟机。
通过本发明所构思的以上技术方案,与现有技术相比,本发明的系统具有以下的有益效果:
1、对用户透明:因为采用了获取模块和划分模块,Cassandra系统自动获取物理机虚拟机的对应关系,并且这些位置关系用户是无法感知的,因此是对用户透明的。
2、可扩展性强:因为采用了获取模块,P2P的协议没有单点故障,节点加入即可使用,因此可扩展性强。
3、高可用:因为采用了令牌子模块、接收用户键值请求子模块、获取键值令牌值子模块、查找当前虚拟机子模块、查找主备份节点子模块、判断备份数子模块、第一发送请求子模块、查找附加备份节点子模块、第二发送请求子模块,Cassandra系统能够选择正确的节点备份,任意一台物理机器关掉后,数据任然可以访问,因此高可用。
4、高性能:因为采用了接收键请求子模块、节点确定子模块和第三发送请求子模块,读取数据时选择距离最近的节点通信,可以提高吞吐率和相应时间,因此是高性能的。
附图说明
图1是本发明的应用环境图。
图2是本发明虚拟化环境下Cassandra系统的优化方法的流程图。
图3是本发明方法中步骤(1)的细化流程图。
图4是本发明方法中步骤(3)的细化流程图。
图5是本发明虚拟化环境下Cassandra系统的优化系统的模块框图。
图6是本发明系统中获取模块的细化框图。
图7是本发明系统中副本和通信模块的细化框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的Cassandra系统是工作在虚拟机环境下。图中物理机共有物理机1—物理机n,每个物理机上启动虚拟机1—虚拟机n,在各个物理机上安装P2P监控模块,监控各个物理机上启动的虚拟机,并且保存物理机虚拟机之间的位置对应关系。Cassandra系统运行在虚拟机中,并且通过分布式哈希形(DHT)成一个简单的环,每个虚拟机节点保存部分数据。虚拟机中的Cassandra系统获取P2P监控保存的数据,对虚拟机物理机的位置关系进行组织划分。当用户向虚拟机中的Cassandra系统发送读写请求时,利用划分的结果,选择相应的节点作为备份节点,并且优先选择最近的节点读取数据。
如图2所示,本发明虚拟化环境下Cassandra系统的优化方法包括以下步骤:
(1)利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机;在本实施方式中,P2P协议采用Gossip协议;
(2)根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分;具体而言,首先通过网络请求步骤(1)中已经获取的信息,然后将这些信息保存在内存中,保存的信息包括机架、物理机、虚拟机信息,机架到物理机的映射关系,物理机到虚拟机的映射关系,最后,按照映射关系,将同一物理机上的虚拟机保存在一起,然后按照机架到物理机的映射,将同一机架上的虚拟机放在一起。
(3)根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键请求的虚拟机最近的虚拟机进行通信。
如图3所示,本发明方法中步骤(1)包括以下子步骤:
(1-1)当前物理机获取其对应虚拟机的信息,该信息包括该物理机上启动的所有虚拟机、虚拟机的IP、物理机的主机信息、主机IP、物理机所在的机架信息等;
(1-2)当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息,具体而言,当前物理机使用信息摘要5(Message digest-5,简称MD5)算法对获取的虚拟机信息进行摘要处理,以获取摘要信息;
(1-3)另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入步骤(1-4),否则进入步骤(1-6);
(1-4)另一台物理机向当前物理机发送其数据中比摘要信息新的数据;
(1-5)当前物理机保存来自另一台物理机的新的数据;
(1-6)另一台物理机向当前物理机请求更新数据;
(1-7)当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机;
(1-8)另一台物理机保存来自当前物理机的新的数据。
从上述过程可以看出,Gossip是一个快速的轻量级通信协议,利用Gossip协议通信的数据大部分是摘要数据,通信量比较小,所有节点的同步开销为logN(N为物理机的总数),同步速度快。此外,因为Gossip协议是P2P的,没有主节点,不会有单点故障的问题,可扩展性非常好,节点启动加入即可。
如图4所示,本发明方法中步骤(3)包括以下子步骤:
(3-1)获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序;
(3-2)虚拟机接收来自用户的键值(Key-value)请求;
(3-3)获取键值请求的令牌值Tk;具体而言,是采用MD5算法来获取令牌值;
(3-4)在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机;
(3-5)在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点;
(3-6)判断键值请求中的备份数n是否大于2,若大于,则转入步骤(3-8),否则转入步骤(3-7);
(3-7)将键值请求发送到当前虚拟机和主备份节点,过程结束;
(3-8)在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-2个虚拟机作为附加备份节点;
(3-9)将键值请求发送到当前虚拟机、主备份节点和附加备份节点;
(3-10)接收来自用户的键请求,并确定接收到该键请求的虚拟机;
(3-11)确定当前虚拟机、主备份节点和附加备份节点中距离接收到键请求的虚拟机最近的一台虚拟机;具体而言,首先判断三者中有没有和接收到键请求的虚拟机在同一物理机上的虚拟机,如果没有,则进一步判断三者中有没有和接收到键请求的虚拟机位于同一机架上的虚拟机;
(3-12)将键请求发送到确定的距离接收到键请求最近的该台虚拟机。
如图5所示,本发明虚拟化环境下Cassandra系统的优化系统包括获取模块1、划分模块2、副本和通信优化模块3。
获取模块1用于利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机。在本实施方式中,P2P协议采用Gossip协议。
划分模块2用于根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分。
副本和通信模块3用于根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键请求的虚拟机最近的虚拟机进行通信。
如图6所示,本发明系统中获取模块1包括获取子模块11、摘要信息发送子模块12、摘要信息比较子模块13、发送新数据子模块14、保存新数据子模块15、请求更新数据子模块16、发送更新数据子模块17、保存更新数据子模块18。
获取子模块11用于为当前物理机获取其对应虚拟机的信息,该信息包括该物理机上启动的所有虚拟机、虚拟机的IP、物理机的主机信息、主机IP、物理机所在的机架信息等。
摘要信息发送子模块12用于为当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息,具体而言,当前物理机使用信息摘要5(Messagedigest-5,简称MD5)算法对获取的虚拟机信息进行摘要处理,以获取摘要信息。
摘要信息比较子模块13用于另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入子模块14,否则进入子模块16。
发送新数据子模块14用于另一台物理机向当前物理机发送其数据中比摘要信息新的数据。
保存新数据子模块15用于当前物理机保存来自另一台物理机的新的数据。
请求更新数据子模块16用于另一台物理机向当前物理机请求更新数据。
发送更新数据子模块17用于当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机。
保存更新数据子模块18用于另一台物理机保存来自当前物理机的新的数据。
如图7所示,本发明系统中副本和通信优化模块3包括令牌子模块31、接收用户键值请求子模块32、获取键值令牌值子模块33、查找当前虚拟机子模块34、查找主备份节点子模块35、判断备份数子模块36、第一发送请求子模块37、查找附加备份节点子模块38、第二发送请求子模块39、接收键请求子模块310、节点确定子模块311、第三发送请求子模块312。
令牌子模块31用于获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序。
接收用户键值请求子模块32用于虚拟机接收来自用户的键值(Key-value)请求。
获取键值令牌值子模块33用于获取键值请求的令牌值Tk;具体而言,是采用MD5算法来获取令牌值。
查找当前虚拟机子模块34用于在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机。
查找主备份节点子模块35用于在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点。
判断备份数子模块36用于判断键值请求中的备份数n是否大于2,若大于,则转入查找附加备份节点子模块38,否则转入第一发送请求子模块37。
第一发送请求子模块37用于将键值请求发送到当前虚拟机和主备份节点。
查找附加备份节点子模块38用于在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-2个虚拟机作为附加备份节点。
第二发送请求子模块39用于将键值请求发送到当前虚拟机、主备份节点和附加备份节点。
接收键请求子模块310用于接收来自用户的键请求,并确定接收到该键请求的虚拟机。
节点确定子模块311用于确定当前虚拟机、主备份节点和附加备份节点中距离接收到键请求的虚拟机最近的一台虚拟机;具体而言,首先判断三者中有没有和接收到键请求的虚拟机在同一物理机上的虚拟机,如果没有,则进一步判断三者中有没有和接收到键请求的虚拟机位于同一机架上的虚拟机。
第三发送请求子模块312用于将键请求发送到确定的距离接收到键请求最近的该台虚拟机。
实例:
为了验证本发明方法的可行性和有效性,在真实环境下配置系统,对虚拟化环境下的Cassandra系统的优化进行实验。
本发明的服务器基本硬件和软件配置如下表所示:
本发明模块部署包括两部分:物理机环境下P2P监控模块,虚拟化环境下Cassandra系统补丁部分。总共包含3个模块:获取模块、划分模块、副本和通信优化模块。
本发明使用P2P协议对物理集群上的虚拟机资源进行监控,Cassandra系统虚拟机集群使用thrift接口获取监控信息,并且确定各个虚拟机节点之间的位置关系。对于用户写请求,选择不在同一物理机上的虚拟机作为备份节点。对于读请求,选择最近的虚拟机节点通信,从而提高Cassandra系统在虚拟化环境下的可靠性,可用性,并且提高Cassandra系统的整体性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种虚拟化环境下Cassandra系统的优化方法,其特征在于,包括以下步骤:
(1)利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机;
(2)根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分;
(3)根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键值请求的虚拟机最近的虚拟机进行通信,本步骤包括以下子步骤:
(3-1)获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序;
(3-2)虚拟机接收来自用户的键值请求;
(3-3)获取键值请求的令牌值Tk;
(3-4)在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机;
(3-5)在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点;
(3-6)判断键值请求中的备份数n是否大于2,若大于,则转入步骤(3-8),否则转入步骤(3-7);
(3-7)将键值请求发送到当前虚拟机和主备份节点,过程结束;
(3-8)在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-2个虚拟机作为附加备份节点;
(3-9)将键值请求发送到当前虚拟机、主备份节点和附加备份节点;
(3-10)接收来自用户的键值请求,并确定接收到该键值请求的虚拟机;
(3-11)确定当前虚拟机、主备份节点和附加备份节点中距离接收到键值请求的虚拟机最近的一台虚拟机;具体而言,首先判断三者中有没有和接收到键值请求的虚拟机在同一物理机上的虚拟机,如果没有,则进一步判断三者中有没有和接收到键值请求的虚拟机位于同一机架上的虚拟机;
(3-12)将键值请求发送到确定的距离接收到键值请求最近的该台虚拟机。
2.根据权利要求1所述的优化方法,其特征在于,P2P协议采用Gossip协议。
3.根据权利要求1所述的优化方法,其特征在于,步骤(1)包括以下子步骤:
(1-1)当前物理机获取其对应虚拟机的信息;
(1-2)当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息;
(1-3)另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入步骤(1-4),否则进入步骤(1-6);
(1-4)另一台物理机向当前物理机发送其数据中比摘要信息新的数据;
(1-5)当前物理机保存来自另一台物理机的新的数据;
(1-6)另一台物理机向当前物理机请求更新数据;
(1-7)当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机;
(1-8)另一台物理机保存来自当前物理机的新的数据。
4.根据权利要求3所述的优化方法,其特征在于,
虚拟机的信息包括该物理机上启动的所有虚拟机、虚拟机的IP、物理机的主机信息、主机IP、物理机所在的机架信息;
当前物理机使用MD5算法对获取的虚拟机信息进行摘要处理,以获取摘要信息。
5.一种虚拟化环境下Cassandra系统的优化系统,其特征在于,
包括获取模块、划分模块、副本和通信优化模块;
获取模块用于利用P2P协议获取虚拟机和物理机的对应关系,以确定每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机;
划分模块用于根据每一台机架上启动的物理机,以及每一台物理机上启动的虚拟机对虚拟机进行组织和划分;
副本和通信模块用于根据组织和划分的结果以及来自用户的键值请求,采用二分法选择相应的虚拟机作为当前虚拟机,主备份节点和附加备份节点作为副本放置,同时确定当前虚拟机、主备份节点和附加备份节点中距离接收到来自用户键值请求的虚拟机最近的虚拟机进行通信;
副本和通信优化模块包括令牌子模块、接收用户键值请求子模块、获取键值令牌值子模块、查找当前虚拟机子模块、查找主备份节点子模块、判断备份数子模块、第一发送请求子模块、查找附加备份节点子模块、第二发送请求子模块、接收键值请求子模块、节点确定子模块、第三发送请求子模块;
令牌子模块用于获取Cassandra系统中所有虚拟机的令牌,并且对令牌进行排序;
接收用户键值请求子模块用于虚拟机接收来自用户的键值请求;
获取键值令牌值子模块用于获取键值请求的令牌值Tk;
查找当前虚拟机子模块用于在所有虚拟机的令牌中进行二分查找,以获取第一个大于令牌值Tk的令牌所对应的虚拟机作为当前虚拟机;
查找主备份节点子模块用于在当前虚拟机后的虚拟机中查找第一个与当前虚拟机不在同一物理机上的虚拟机作为主备份节点;
判断备份数子模块用于判断键值请求中的备份数n是否大于,若大于,则转入查找附加备份节点子模块,否则转入第一发送请求子模块;
第一发送请求子模块用于将键值请求发送到当前虚拟机和主备份节点;
查找附加备份节点子模块用于在主备份节点后的虚拟机中查找与主备份节点不在同一机架上的n-个虚拟机作为附加备份节点;
第二发送请求子模块用于将键值请求发送到当前虚拟机、主备份节点和附加备份节点;
接收键值请求子模块用于接收来自用户的键值请求,并确定接收到该键值请求的虚拟机;
节点确定子模块用于确定当前虚拟机、主备份节点和附加备份节点中距离接收到键值请求的虚拟机最近的一台虚拟机;
第三发送请求子模块用于将键值请求发送到确定的距离接收到键值请求最近的该台虚拟机。
6.根据权利要求5所述的优化系统,其特征在于,
获取模块包括获取子模块、摘要信息发送子模块、摘要信息比较子模块、发送新数据子模块、保存新数据子模块、请求更新数据子模块、发送更新数据子模块、保存更新数据子模块;
获取子模块用于为当前物理机获取其对应虚拟机的信息;
摘要信息发送子模块用于为当前物理机根据获取的虚拟机信息向另一台物理机发送摘要信息;
摘要信息比较子模块用于另一台物理机将接收到的摘要信息与其自身保存的数据进行对比,以判断该数据是否比摘要信息新,如果是则转入发送新数据子模块,否则进入请求更新数据子模块;
发送新数据子模块用于另一台物理机向当前物理机发送其数据中比摘要信息新的数据;
保存新数据子模块用于当前物理机保存来自另一台物理机的新的数据;
请求更新数据子模块用于另一台物理机向当前物理机请求更新数据;
发送更新数据子模块用于当前物理机将其数据中比另一台物理机中数据新的数据发送到另一台物理机;
保存更新数据子模块用于另一台物理机保存来自当前物理机的新的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210494542.XA CN103036949B (zh) | 2012-11-27 | 2012-11-27 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210494542.XA CN103036949B (zh) | 2012-11-27 | 2012-11-27 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103036949A CN103036949A (zh) | 2013-04-10 |
CN103036949B true CN103036949B (zh) | 2015-06-17 |
Family
ID=48023421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210494542.XA Expired - Fee Related CN103036949B (zh) | 2012-11-27 | 2012-11-27 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103036949B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142861B (zh) * | 2013-05-10 | 2018-06-08 | 中国电信股份有限公司 | 服务器资源的配置处理方法与装置 |
CN104572289B (zh) * | 2013-10-10 | 2017-11-14 | 中国电信股份有限公司 | 基于虚拟化的服务器配置测算处理方法与装置 |
CN106055381B (zh) | 2013-10-23 | 2019-10-22 | 华为技术有限公司 | 一种创建虚拟机的方法和装置 |
CN104104730B (zh) * | 2014-07-25 | 2017-03-29 | 重庆广播电视大学 | 面向高可靠性的云系统虚拟机任务备份装置、系统及方法 |
CN107038059A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 虚拟机部署方法及装置 |
CN114924843B (zh) * | 2022-07-14 | 2022-11-04 | 深圳市遇贤微电子有限公司 | 一种信息传输的方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN101986661A (zh) * | 2010-11-04 | 2011-03-16 | 华中科技大学 | 一种改进的虚拟机群下MapReduce数据处理方法 |
CN102624936A (zh) * | 2011-01-27 | 2012-08-01 | 中国移动通信集团公司 | 节点标识分配方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141410B2 (en) * | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
-
2012
- 2012-11-27 CN CN201210494542.XA patent/CN103036949B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043380A (zh) * | 2007-04-20 | 2007-09-26 | 北京航空航天大学 | 虚拟机网络拓扑信息的处理方法及装置 |
CN101986661A (zh) * | 2010-11-04 | 2011-03-16 | 华中科技大学 | 一种改进的虚拟机群下MapReduce数据处理方法 |
CN102624936A (zh) * | 2011-01-27 | 2012-08-01 | 中国移动通信集团公司 | 节点标识分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
(美)休伊特.《CASSANDRA 权威指南》.《CASSANDRA 权威指南》.2011, * |
Also Published As
Publication number | Publication date |
---|---|
CN103036949A (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103036949B (zh) | 一种虚拟化环境下Cassandra系统的优化方法和系统 | |
CN103268318B (zh) | 一种强一致性的分布式键值数据库系统及其读写方法 | |
CN102523234B (zh) | 一种应用服务器集群实现方法及系统 | |
CN101997823B (zh) | 一种分布式文件系统及其数据访问方法 | |
CN102857578B (zh) | 一种网络硬盘的文件上传方法、系统及网盘客户端 | |
CN105187512A (zh) | 一种虚拟机集群负载均衡方法及系统 | |
CN105518631B (zh) | 内存管理方法、装置和系统、以及片上网络 | |
CN103336730B (zh) | 一种基于云存储的数据备份方法及系统 | |
CN102523290B (zh) | 数据的处理方法、设备和系统 | |
WO2017052992A1 (en) | Technologies for reducing latency variation of stored data object requests | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
US10708379B1 (en) | Dynamic proxy for databases | |
CN102567227A (zh) | 共享缓存设备的双控制器存储系统和方法 | |
US9110820B1 (en) | Hybrid data storage system in an HPC exascale environment | |
CN103458013A (zh) | 一种流媒体服务器集群负载均衡系统及均衡方法 | |
CN105045871A (zh) | 数据聚合查询方法及装置 | |
CN102438278A (zh) | 移动通信网络的负载分配方法及负载分配装置 | |
CN103795801A (zh) | 一种基于实时应用集群的元数据集群设计方法 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN114625762A (zh) | 一种元数据获取方法、网络设备及系统 | |
CN104753992A (zh) | 一种数据存储、虚拟平台故障恢复的方法、设备和系统 | |
CN105468296A (zh) | 基于虚拟化平台的无共享存储管理方法 | |
CN110807039A (zh) | 一种云计算环境下数据一致性维护系统及方法 | |
US20240205292A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
US20130226867A1 (en) | Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150617 Termination date: 20211127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |