面向异构桌面云平台的数据融合方法及系统与流程

文档序号:13207824阅读:462来源:国知局
面向异构桌面云平台的数据融合方法及系统与流程

本发明涉及云计算和云存储技术领域,尤其涉及一种面向异构桌面云平台的数据融合方法及系统。



背景技术:

随着云计算理论和技术的不断成熟,应用范围不断深入,其业务需求的种类和范围也不断扩大。用户在对各类云资源服务能力需求日益增大的同时,对服务的灵活性、自主性、定制化等方面的要求也日趋提高。过去不同的云服务架构之间相互独立、各自为战的局面将向开放灵活、共存协作的方向发展。如近年来出现的混合云(multi-cloud)、互联云(inter-cloud)以及云联盟(federatedcloud)都是围绕这个目标而提出的一些新型云服务模式。然而,不同的云平台之间在各个层次都存在的广泛的异构性。其中在iaas(infrastructureasaservice,基础设施即服务)层面,主流的云平台就包括eucalyptus、openstack和cloudstack,它们的基础架构不同,支持的虚拟化方式也不尽相同,给彼此之间的共存与协作带来了挑战。当前的相关工作主要将不同的异构云平台的操作和交互接口暴露给第三方(如云经纪人),然后在第三方进行交互与协作,从而共同为用户服务。这类方式要求深入到参与协作的异构云平台内部使用的apis(applicationprogramminginterface,应用程序编程接口)),实现方法较为复杂,并且未能彻底地对异构平台的软件和数据进行统一的组织和管理。



技术实现要素:

本发明目的在于公开一种面向异构桌面云平台的数据融合方法及系统,以深化异构云之间的数据融合,解决异构桌面云平台之间“数据和信息孤岛化”的问题,实现支持异构桌面云平台之间的共存及其资源的交互和融合。

为达上述目的,本发明公开一种面向异构桌面云平台的数据融合方法,包括:

以算存分离的方式将各个异构云的云主机的至少部分程序和数据存储于后台服务器集群,并在后台服务器集群中采用按共享程度划分成三层的树形结构进行存储,以供相应的云主机进行流式加载;第一层存储操作系统镜像和操作系统启动数据;第二层存储软件应用级别的程序和数据;第三层存储用户级别的个人数据,并在为每台云主机配置了专用于存储私有数据和修改数据的用户数据虚拟磁盘镜像的同时,还在后台服务器集群虚拟磁盘中挂载一个专门用于将同一用户在不同云上的数据进行融合的共享虚拟磁盘镜像;

对于用户在桌面云a中拥有的云主机i对应的用户数据虚拟磁盘镜像中能共享的用户数据,云主机a在将所述能共享的用户数据读取到的内存后,写入所述共享虚拟磁盘镜像中;当同一所述用户登录桌面云b中拥有的云主机j后,读取所述共享虚拟磁盘镜像并将所述能共享的用户数据写入云主机j所对应的用户数据虚拟磁盘镜像中,完成数据的共享。

与上述方法相对应的,本发明还公开一种面向异构桌面云平台的数据融合系统,包括:

后台服务器集群,用于与云主机之间以算存分离的方式存储各个异构云的云主机的至少部分程序和数据,并采用按共享程度划分成三层的树形结构进行存储,以供相应的云主机进行流式加载;第一层存储操作系统镜像和操作系统启动数据;第二层存储软件应用级别的程序和数据;第三层存储用户级别的个人数据,并在为每台云主机配置了专用于存储私有数据和修改数据的用户数据虚拟磁盘镜像的同时,还在后台服务器集群虚拟磁盘中挂载一个专门用于将同一用户在不同云上的数据进行融合的共享虚拟磁盘镜像;

所述系统,还用于对于用户在桌面云a中拥有的云主机i对应的用户数据虚拟磁盘镜像中能共享的用户数据,云主机a在将所述能共享的用户数据读取到的内存后,写入所述共享虚拟磁盘镜像中;当同一所述用户登录桌面云b中拥有的云主机j后,读取所述共享虚拟磁盘镜像并将所述能共享的用户数据写入云主机j所对应的用户数据虚拟磁盘镜像中,完成数据的共享。

基于上述方法及系统,可选的,云主机接入后台服务器集群包括:

用户的云主机申请接入时,首先向后台服务集群管理平台提出申请;在所述后台服务集群管理平台对云主机用户的安全验证通过之后,在后台服务集群上为云主机申请虚拟磁盘,并分配相应硬盘数据区域构建虚拟磁盘镜像文件,完成相关的虚拟磁盘初始化工作;

在虚拟磁盘初始化之后,所述后台服务集群管理平台将虚拟磁盘访问接口返还给所述云主机,并切换所述云主机的磁盘读写路径,在所述云主机读写磁盘时通过本地的虚拟磁盘读写驱动将本地i/o重定向到所述后台服务集群上;

所述后台服务集群捕获所述云主机发来的虚拟磁盘读写请求,解析请求并读写虚拟磁盘镜像中相应的数据块并通过虚拟磁盘协议进行封装,返回给所述云主机。

优选地,本发明方法及系统还包括:

在相应云端数据库保留相应云主机所对应用户的个人数据,并在所述云端数据库与所述后台服务器集群所对应数据库之间采用双读双写机制进行数据同步,具体包括:

在云端写入口添加同时写入后台服务器集群用户数据库中的代码,将云端写入云端数据库操作和云端写入后台服务器集群数据库操作用事务封装;

在云端所有读取用户信息的入口,同时读取云端数据库数据和后台服务器集群数据库数据,比较两份数据的修改时间,并输出上次修改时间最近的用户数据。

本发明具有以下有益效果:

1)、云主机的存储和计算分离。云主机所需的程序和数据均存储在后台服务器集群并进行集中统一管理,通过网络按照特定的数据访问协议动态按需提供给云主机用户,程序的执行则在云主机的本地端。而且,后台服务器集群按共享程度划分成三层的树形结构进行存储,有效地减少数据的冗余,提高存储的效率,并为各类异构桌面云平台提供统一的数据资源存储模型和数据访问方法以及控制机制。

由于我们现在所使用的操作系统种类是有限的,所有我们只要制定有限几个镜像文件存储在后台服务器集群中就可以了。同时,由于不同云主机只会修改少量系统数据和应用数据,因此针对每个用户虚拟磁盘,只需要分配少量的存储空间。对于用户来说,用户感知到的是一个完整的包含操作系统、应用软件和个人数据的完整磁盘,而事实上,在后台服务器集群中,这些数据被划分成多个部分,并且与用户隐私无关的数据可以被其他用户共享。

2)、高易用性和扩展性。可以将云桌面平台与透明计算服务平台进行有机的整合,不需要对桌面云系统内部接口进行改造,只需为各个桌面云平台提供统一的透明计算接入接口即可随时随地动态获得后台服务器集群提供的服务。同时,不同云也拥有统一的服务管理平台,集中管理资源与安全服务,并且对桌面云用户来说是透明的。因此,具有高易用性和扩展性。

3)、设立了共享虚拟磁盘镜像,使得同一用户在不同异构云之间的部分用户数据实现了共享与融合,为解决异构桌面云平台之间“数据和信息孤岛化”的问题提供了可行的方案;最终实现支持异构桌面云平台之间的共存及其资源的深度交互和融合。

下面将参照附图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例公开的异构云数据融合架构示意图;

图2是本发明实施例公开的后台服务器数据资源组织模型示意图;

图3是本发明实施例公开的云主机接入后台服务器集群的流程图;

图4是本发明实施例公开的用户数据共享流程示意图一;

图5是本发明实施例公开的用户数据共享流程示意图二;

图6是本发明实施例公开的云端双写用户信息同步示意图;

图7是本发明实施例公开的云端双读用户信息同步示意图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

实施例1

本实施例公开一种面向异构桌面云平台的数据融合方法。

对应本实施例的异构云的数据融合总体架构如图1所示,其将多个异构的桌面云系统接入统一的后台服务器集群,将后台服务器集群作为真正存储云主机程序和数据的后台。对于桌面云用户来说,可以继续通过pc、智能手机、平板电脑等终端使用原有的方式访问桌面云服务,而对云桌面的程序和数据的访问请求将重定向至后台服务器集群处理,对于用户来说这个服务过程是透明的。

本实施例中,后台服务器集群的搭建在同一局域网中,具体可将各服务器以最简单的物理线路连接在一起组成基本集群。

本实施例中,以算存分离的方式将各个异构云的云主机的至少部分程序和数据存储于后台服务器集群,并在后台服务器集群中采用按共享程度划分成三层的树形结构进行存储,以供相应的云主机进行流式加载;第一层存储操作系统镜像和操作系统启动数据;第二层存储软件应用级别的程序和数据;第三层存储用户级别的个人数据,并在为每台云主机配置了专用于存储私有数据和修改数据的用户数据虚拟磁盘镜像的同时,还在后台服务器集群虚拟磁盘中挂载一个专门用于将同一用户在不同云上的数据进行融合的共享虚拟磁盘镜像。

即本实施例中,后台服务集群虚拟磁盘中数据资源按资源共享程度及性质划分成以下3类:

系统级别的资源:我们所使用的操作系统种类是有限的,使用同一系统的用户可以使用相同的镜像文件启动云主机。

软件应用级别的资源:我们所使用的部分软件是有共性的,例如办公室软件类,java软件开发者会通用相同的开发工具,这些软件则就可以共享存储,即只存储一份安装资源,云主机按需求加载。

用户级别的个人资源:这部分主要指的是用户的特有数据,这个要单独存储。

后台服务器集群虚拟磁盘对应的数据存储模型如图2所示,该模型是一种基于树状的按共享程度划分层次的存储模型,不同的os(operatingsystem,操作系统)环境及其下方的应用群组和用户数据组成一个“存储森林”。每棵树的树根存储了支持操作系统启动所必须加载的数据,这一部分可以被每台云主机共享。在树的第二层节点到非叶子节点,针对每个不同的用户群组,为其配置不同的群组虚拟磁盘,群组虚拟磁盘中存储了相关的软件资源,能被群组中的云主机共享。而在树的最低层,为每台云主机配置了专用于存储私有数据和修改数据的用户数据虚拟磁盘镜像。由于不同云主机只会修改少量系统数据和应用数据,因此针对每个用户虚拟磁盘,只需要分配少量的存储空间。对于用户来说,用户感知到的是一个完整的包含os、应用软件和个人私有数据的完整磁盘,而事实上,在服务端上这些数据被划分成多个部分,并且与用户隐私无关的数据可以被其他用户共享。

本实施例中,桌面云系统接入后台服务器集群的流程如图3所示。包括:

用户的云主机申请接入时,首先向后台服务集群管理平台提出申请;在后台服务集群管理平台对云主机用户的安全验证通过之后,在后台服务集群上为云主机申请虚拟磁盘,并分配相应硬盘数据区域构建虚拟磁盘镜像文件,完成相关的虚拟磁盘初始化工作。

在虚拟磁盘初始化之后,后台服务集群管理平台将虚拟磁盘访问接口返还给云主机,并切换云主机的磁盘读写路径,在云主机读写磁盘时通过本地的虚拟磁盘读写驱动将本地i/o重定向到后台服务集群上。

后台服务集群捕获云主机发来的虚拟磁盘读写请求,解析请求并读写虚拟磁盘镜像中相应的数据块并通过虚拟磁盘协议进行封装,返回给云主机。

考虑用户x在桌面云a中拥有一台云主机i,同时在桌面云b中拥有一台云主机j。在云主机i和云主机j各自的后台服务集群虚拟磁盘中挂载同一个共享虚拟磁盘镜像shared_vdi,此时用户在两台云主机上都可以看到shared_vdi的视图。用户使用云主机读写shared_vdi仍然通过虚拟磁盘读写请求发送给后台服务集群的读写控制模块,在读写控制模块中完成请求的解析,根据当前请求数据块的段地址和偏移量索引shared_vdi中对应的数据块,完成数据块的读写操作。考虑到在实际的应用场景中,不会出现同一用户同时操作两台云主机写入同一文件的情况,故不考虑shared_vdi中的文件块级别读写互斥保护问题。基于后台服务器集群所提供的共享虚拟磁盘镜像,如图4及图5所示,本实施例面向异构桌面云平台的数据融合方法可以使得:

对于用户在桌面云a中拥有的云主机i对应的用户数据虚拟磁盘镜像中能共享的用户数据,云主机a在将能共享的用户数据读取到的内存后,写入共享虚拟磁盘镜像中;当同一用户登录桌面云b中拥有的云主机j后,读取共享虚拟磁盘镜像并将能共享的用户数据写入云主机j所对应的用户数据虚拟磁盘镜像中,完成数据的共享。例如:同一用户能共享的数据可以是同一用户在不同异构云主机所分别上传的图片、文档、视频等;也可以是不同异构云主机上针对同一软件所保存的用户数据表等,比如用户在a云主机上填写的姓名、性别等信息可与用户在b云主机上所填写的兴趣、爱好等信息进行融合;其中,对于同一属性存在两个值的信息通常不能进行融合,比如,两台云主机的登录密码不一样,需分开存储。

本实施例中,基于现有的云主机通常配置了对应的云端数据库,并在相应云端数据库保留相应云主机所对应用户的个人数据;为此,本实施例进一步在云端数据库与后台服务器集群所对应数据库之间采用双读双写机制进行数据同步,具体包括:

在云端写入口添加同时写入后台服务器集群用户数据库中的代码,将云端写入云端数据库操作和云端写入后台服务器集群数据库操作用事务封装;具体可参照下述的【云端双写】部分内容。

在云端所有读取用户信息的入口,同时读取云端数据库数据和后台服务器集群数据库数据,比较两份数据的修改时间,并输出上次修改时间最近的用户数据;具体可参照下述的【云端双读】部分内容。

【云端双写】:

云端的用户信息写入一般在云端管理端完成,管理端页面一般使用java或者python语言编写。如图6所示,可以在云端写入口处添加同时写入后台服务器集群用户数据库中的代码,将云端写入云端数据库操作和云端写入后台服务器集群数据库操作用事务封装,保证用户信息写操作从云端到后台服务器集群端的同步。由于两个写操作是同时完成的,所以在云端写操作结束后,后台服务器集群读取用户信息即可立刻获得最新的正确数据,保证了云端和后台服务器集群数据读取的一致性。进一步地,在云端双写具体的算法实现中,为了保证程序的健壮性,还可以通过下述约束强化系统的可靠性和便捷性:

约束1、云端双写的目的是为了保证云端用户数据库与后台用户数据库的一致性,所以需要将两次数据库写操作以事务的形式封装,当两次写操作只成功了一个时,需要在事务执行完毕后将执行成功的数据库写操作回滚,避免数据库内容的不一致。

约束2、考虑到跨机器的数据库操作会出现偶发性的访问异常,数据库执行返回错误结果时,可以尝试对此函数进行多次补偿,即调用递归自身并传递已补偿次数信息,多次重试,避免偶发性异常对系统稳定性的影响。同时,补偿次数可以根据系统的实际使用情况在第一次调用此函数时在参数中设定。

【云端双读】:

云端读用户信息同步如图7所示,当后台服务器集群执行完用户信息写操作时,云端需要立刻读取到最新的用户信息数据。此时,采用双读方案。在云端所有读取用户信息的入口,同时读取云端数据和后台服务器集群后台数据,比较两份用户数据,并选用上次修改时间最近的数据。当后台服务器集群写用户信息操作完成后,后台服务器集群用户信息数据库中用户信息表最新修改时间一项已更新,此时云端读取到的数据就是刚刚更新的正确数据,保证了云端读取数据的一致性。

本实施例中,云端双读方案在具体实现的过程中,还进一步考虑了以下场景:

1)、原有桌面云用户接入后台服务器。

如果某一桌面云用户在接入后台服务器集群之前已经在桌面云服务器的用户数据库中创建了用户信息,则在该桌面云系统接入后台服务器集群之前,需要将桌面云服务器的用户数据库数据拷贝到后台服务器用户数据库中。在拷贝过程中,云端如果有新的用户信息写入数据库操作,仍然以云端双写的方式写入桌面云用户数据库和后台服务器用户数据库。拷贝完成之后,校验桌面云用户数据库与后台服务器用户数据库的一致性。

2)、在后台服务器为用户创建指定桌面云账户。

后台服务器服务管理平台提供为用户在指定桌面云系统中创建账户的接口。在创建过程中,用户信息只写入了后台服务器用户数据库,而没有写入云端用户数据库。但是由于有了云端双读策略的保证,该用户在对应的桌面云系统中登录时,可以访问到在后台服务器数据库创建的用户数据,完成信息的读取。

3)、云端写入云端读取。

云端写入用户信息数据库时,会采用云端双写的方式同时写入后台服务器用户数据库。如果在写入完成之后,后台服务器用户数据库没有新的写入数据,那么云端双读可以读取到两份上次修改时间一样的用户信息数据,由于有了云端双写策略的保证,两份数据内容是一致的,任选一份都能得到正确的用户数据。

4)、后台服务器集群写入云端读取。

当用户在正常使用桌面云服务时,如果用户信息在后台服务器服务管理平台执行了修改操作(比如用户云桌面服务续期),由于后台服务器的写入操作只会对后台服务器用户数据库进行,就导致了云端双读从两个数据库中获取到两份不一致的用户信息数据,此时,可以比较两份数据库的“上次修改时间”字段,修改时间最近的表项即为正确的用户数据。

基于上述场景考虑,用户信息存储于云端包含的数据库中,一般不允许修改数据库表结构。为了融合异构云的用户信息,本实施例简化的后台服务器用户数据库表结构如表1所示。

表1:

由于云端与后台服务器集群均有读写用户信息的入口,所以需要以上述表1为基础,将异构云用户信息在后台服务器数据库中融合,并保证数据在云端和后台服务器读写的一致性。

综上,本实施例公开的面向异构桌面云平台的数据融合方法,具有以下有益效果:

1)、云主机的存储和计算分离。云主机所需的程序和数据均存储在后台服务器集群并进行集中统一管理,通过网络按照特定的数据访问协议动态按需提供给云主机用户,程序的执行则在云主机的本地端。而且,后台服务器集群按共享程度划分成三层的树形结构进行存储,有效地减少数据的冗余,提高存储的效率,并为各类异构桌面云平台提供统一的数据资源存储模型和数据访问方法以及控制机制。

由于我们现在所使用的操作系统种类是有限的,所有我们只要制定有限几个镜像文件存储在后台服务器集群中就可以了。同时,由于不同云主机只会修改少量系统数据和应用数据,因此针对每个用户虚拟磁盘,只需要分配少量的存储空间。对于用户来说,用户感知到的是一个完整的包含操作系统、应用软件和个人数据的完整磁盘,而事实上,在后台服务器集群中,这些数据被划分成多个部分,并且与用户隐私无关的数据可以被其他用户共享。

2)、高易用性和扩展性。可以将云桌面平台与透明计算服务平台进行有机的整合,不需要对桌面云系统内部接口进行改造,只需为各个桌面云平台提供统一的透明计算接入接口即可随时随地动态获得后台服务器集群提供的服务。同时,不同云也拥有统一的服务管理平台,集中管理资源与安全服务,并且对桌面云用户来说是透明的。因此,具有高易用性和扩展性。

3)、设立了共享虚拟磁盘镜像,使得同一用户在不同异构云之间的部分用户数据实现了共享与融合,为解决异构桌面云平台之间“数据和信息孤岛化”的问题提供了可行的方案;最终实现支持异构桌面云平台之间的共存及其资源的深度交互和融合。

实施例2

与上述方法实施例相对应的,本实施例公开一种配套执行上述方法的系统。

本实施例公开的面向异构桌面云平台的数据融合系统包括:

后台服务器集群,用于与云主机之间以算存分离的方式存储各个异构云的云主机的至少部分程序和数据,并采用按共享程度划分成三层的树形结构进行存储,以供相应的云主机进行流式加载;第一层存储操作系统镜像和操作系统启动数据;第二层存储软件应用级别的程序和数据;第三层存储用户级别的个人数据,并在为每台云主机配置了专用于存储私有数据和修改数据的用户数据虚拟磁盘镜像的同时,还在后台服务器集群虚拟磁盘中挂载一个专门用于将同一用户在不同云上的数据进行融合的共享虚拟磁盘镜像;

本实施例系统,还用于对于用户在桌面云a中拥有的云主机i对应的用户数据虚拟磁盘镜像中能共享的用户数据,云主机a在将能共享的用户数据读取到的内存后,写入共享虚拟磁盘镜像中;当同一用户登录桌面云b中拥有的云主机j后,读取共享虚拟磁盘镜像并将能共享的用户数据写入云主机j所对应的用户数据虚拟磁盘镜像中,完成数据的共享。

基于本实施例的系统,云主机接入后台服务器集群包括:

用户的云主机申请接入时,首先向后台服务集群管理平台提出申请;在后台服务集群管理平台对云主机用户的安全验证通过之后,在后台服务集群上为云主机申请虚拟磁盘,并分配相应硬盘数据区域构建虚拟磁盘镜像文件,完成相关的虚拟磁盘初始化工作;

在虚拟磁盘初始化之后,后台服务集群管理平台将虚拟磁盘访问接口返还给云主机,并切换云主机的磁盘读写路径,在云主机读写磁盘时通过本地的虚拟磁盘读写驱动将本地i/o重定向到后台服务集群上;

后台服务集群捕获云主机发来的虚拟磁盘读写请求,解析请求并读写虚拟磁盘镜像中相应的数据块并通过虚拟磁盘协议进行封装,返回给云主机。

进一步的,本实施例系统还包括:

在相应云端数据库保留相应云主机所对应用户的个人数据,并在云端数据库与后台服务器集群所对应数据库之间采用双读双写机制进行数据同步,具体包括:

在云端写入口添加同时写入后台服务器集群用户数据库中的代码,将云端写入云端数据库操作和云端写入后台服务器集群数据库操作用事务封装;

在云端所有读取用户信息的入口,同时读取云端数据库数据和后台服务器集群数据库数据,比较两份数据的修改时间,并输出上次修改时间最近的用户数据。

同理,实施例公开的面向异构桌面云平台的数据融合系统,具有以下有益效果:

1)、云主机的存储和计算分离。云主机所需的程序和数据均存储在后台服务器集群并进行集中统一管理,通过网络按照特定的数据访问协议动态按需提供给云主机用户,程序的执行则在云主机的本地端。而且,后台服务器集群按共享程度划分成三层的树形结构进行存储,有效地减少数据的冗余,提高存储的效率,并为各类异构桌面云平台提供统一的数据资源存储模型和数据访问方法以及控制机制。

由于我们现在所使用的操作系统种类是有限的,所有我们只要制定有限几个镜像文件存储在后台服务器集群中就可以了。同时,由于不同云主机只会修改少量系统数据和应用数据,因此针对每个用户虚拟磁盘,只需要分配少量的存储空间。对于用户来说,用户感知到的是一个完整的包含操作系统、应用软件和个人数据的完整磁盘,而事实上,在后台服务器集群中,这些数据被划分成多个部分,并且与用户隐私无关的数据可以被其他用户共享。

2)、高易用性和扩展性。可以将云桌面平台与透明计算服务平台进行有机的整合,不需要对桌面云系统内部接口进行改造,只需为各个桌面云平台提供统一的透明计算接入接口即可随时随地动态获得后台服务器集群提供的服务。同时,不同云也拥有统一的服务管理平台,集中管理资源与安全服务,并且对桌面云用户来说是透明的。因此,具有高易用性和扩展性。

3)、设立了共享虚拟磁盘镜像,使得同一用户在不同异构云之间的部分用户数据实现了共享与融合,为解决异构桌面云平台之间“数据和信息孤岛化”的问题提供了可行的方案;最终实现支持异构桌面云平台之间的共存及其资源的深度交互和融合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1