一种在XenServer中实现分布式存储的方法和装置制造方法及图纸

技术编号:21224358 阅读:57 留言:0更新日期:2019-05-29 05:06
本发明专利技术提供了一种在XenServer中实现分布式存储的方法和装置,该方法包括:接收用户触发的存储库建立消息,将在分布式存储集群中建立的存储池用作XenServer的存储库;接收用户触发的物理块设备PBD创建消息,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD;接收用户触发的虚拟磁盘映像VDI创建消息,在XenServer中创建VDI并存储到所述存储库;接收用户触发的虚拟磁盘映射消息,建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系。本发明专利技术能够使XenServer支持分布式存储。

A Method and Device for Implementing Distributed Storage in XenServer

The invention provides a method and device for realizing distributed storage in XenServer. The method includes: receiving user-triggered storage establishment message, using the storage pool established in the distributed storage cluster as XenServer's storage pool, receiving user-triggered PBD creation message of physical block device, and determining PBD creation message. All XenServer host information carried by the user is created to connect each XenServer host to the repository and mount all PBDs created; receive user-triggered virtual disk image VDI creation message, create VDI in XenServer and store it in the repository; receive user-triggered virtual disk mapping message, and build The mapping relationship between each block device in the distributed storage cluster and each VDI in the repository is established. The invention enables XenServer to support distributed storage.

【技术实现步骤摘要】
一种在XenServer中实现分布式存储的方法和装置
本专利技术涉及存储
,特别涉及一种在XenServer中实现分布式存储的方法和装置。
技术介绍
XenServer是思杰公司(Citrix)推出的一种服务器虚拟化平台,软件包中包含所有需要创建和管理部署的虚拟x86计算机上运行的Xen开放源码,准虚拟化的虚拟机管理程序与近乎完美的性能。XenServer对Windows和Linux进行了特殊优化,不需要底层操作系统,可直接运行与服务器硬件上,是一个具有高效率和高扩展行的系统。现有实现中,XenServer没有分布式存储,这对CitrixXenServer在超融合HCI上是最致命的,不利于创建基于XenServer的“超融合”一体机。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种在XenServer中实现分布式存储的方法和装置,能够使XenServer支持分布式存储。为了达到上述目的,本专利技术提供了如下技术方案:一种在XenServer中实现分布式存储的方法,该方法包括:接收用户触发的存储库建立消息,将在分布式存储集群中建立的存储池用作XenServer的存储库;接收用户触发的物理块设备PBD创建消息,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD;接收用户触发的虚拟磁盘映像VDI创建消息,在XenServer中创建VDI并存储到所述存储库;接收用户触发的虚拟磁盘映射消息,建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系。一种在XenServer中实现分布式存储的插件,该插件包括:接收单元和处理单元;所述接收单元,用于接收用户触发的存储库建立消息;用于接收用户触发的物理块设备PBD创建消息;用于接收用户触发的虚拟磁盘映像VDI创建消息;用于接收用户触发的虚拟磁盘映射消息;所述处理单元,用于接收单元接收到用户触发的存储库建立消息时,将在分布式存储集群中建立的存储池用作XenServer的存储库;用于接收单元接收到用户触发的PBD创建消息时,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD;用于接收单元接收到用户触发的VDI创建消息时,在XenServer中创建VDI并存储到所述存储库;用于接收单元接收到用户触发的虚拟磁盘映射消息时,建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系。由上面的技术方案可知,本专利技术中,在分布式存储集群中建立存储池,将该存储池用作XenServer的一个存储库;将该存储库与XenServer中的主机通过创建和挂载PBD实现对接,然后再在该存储库中创建多个VDI,建立该存储库中的各VDI与分布式存储集群中各块设备之间的映射关系,从而将分布式存储集群引入到XenServer中,实现了XenServer对分布式存储的支持。附图说明图1是本专利技术实施例在XenServer中实现分布式存储的方法流程图;图2是本专利技术实施例在XenServer中实现分布式存储的插件的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本专利技术的技术方案进行详细说明。参见图1,图1是本专利技术实施例在XenServer中实现分布式存储的方法流程图,如图1所示,该方法包括以下步骤:步骤101、接收用户触发的存储库建立消息,将在分布式存储集群中建立的存储池用作XenServer的存储库。本专利技术实施例中,分布式存储集群为基于Ceph的分布式存储集群,可以预先在该分布式存储集群中创建一个用于存储VDI(虚拟磁盘映像)的存储池,当将应用本专利技术实现的插件安装到XenServer之后,用户可以在XenServer中触发存储库建立消息,后台接收到该存储库建立消息后,可以将该存储池用作XenServer的存储库。在实际应用中,可以预先配置一个用于创建存储库的应用程序接口,该应用程序接口的输入参数为存储池信息(如存储池的uuid)、存储库的属性信息(例如存储库支持的块设备类型),实现的主要功能是:根据XenServer提供的sr-introduce命令创建一个以该输入参数指定存储池为基础的存储库,具有该输入参数指定的存储库属性。以下是执行XenServer提供的存储库建立命令(sr-introduce)的示例:#xesr-introducename-label="CEPHRBDStorage"type=rbduuid=cda789de-c8d3-4d0d-8510-7deaa8c53aa8shared=truecontent-type=user上述命令中,cda789de-c8d3-4d0d-8510-7deaa8c53aa8是存储池的uuid。上述命令执行后,创建得到一个基于该存储池的存储库,并且得到存储库的uuid(假设存储库uuid为4ceb0f8a-1539-40a4-bee2-450a025b04e1)。在上述命令中,将存储库支持的块设备类型(存储库属性之一)设置为rbd(即type=rbd),表明该存储库中存储的VDI对应的块设备类型为rbd。因此,在本步骤中,用户可以在XenServer提供存储库建立消息触发界面中指定存储池和存储库属性,然后触发存储库建立消息(携带所述指定的存储池信息和存储库属性信息),后台接收到用户触发的存储库建立消息后,可以将该存储库建立消息携带的信息作为输入参数,调用该用于创建存储库的应用程序接口,从而将用户指定的存储池用作XenServer中的存储库。步骤102、接收用户触发的物理块设备PBD创建消息,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD。本专利技术实施例中,为了使建立的存储仓库与XenServer实现对接,通过创建物理块设备(PBD)将XenServer中的部分或全部主机与该存储库连接起来。在实际应用中,可以预先配置一个用于创建PBD的应用程序接口,该应用程序接口的输入参数为XenServer主机信息(如各主机的uuid)、存储库信息(例如存储库的uuid)、和PBD属性信息,实现的主要功能是:根据XenServer提供的pbd-create命令创建一个用于连接XenServer主机和存储库的PBD,该PBD具有该输入参数指定的PBD属性。需要说明的是,该应用程序接口的输入参数中,XenServer主机信息可以有一个或多个,由该应用程序接口的具体实现决定,如果只能有一个XenServer主机信息,则当需要建立该存储库与多个XenServer主机的连接时,可以多次执行本步骤。以下是执行XenServer提供的PBD创建命令(pbd-create)的示例:#xepbd-createsr-uuid=4ceb0f8a-1539-40a4-bee2-450a025b04e1host-uuid=83f2c775-57fc-457b-9f98-2b9b0a7dbcb5上述命令中,sr-uuid和host-uuid分别为存储库的uuid和主机的uuid。本文档来自技高网...

【技术保护点】
1.一种在XenServer中实现分布式存储的方法,其特征在于,该方法包括:接收用户触发的存储库建立消息,将在分布式存储集群中建立的存储池用作XenServer的存储库;接收用户触发的物理块设备PBD创建消息,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD;接收用户触发的虚拟磁盘映像VDI创建消息,在XenServer中创建VDI并存储到所述存储库;接收用户触发的虚拟磁盘映射消息,建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系。

【技术特征摘要】
1.一种在XenServer中实现分布式存储的方法,其特征在于,该方法包括:接收用户触发的存储库建立消息,将在分布式存储集群中建立的存储池用作XenServer的存储库;接收用户触发的物理块设备PBD创建消息,确定PBD创建消息携带的所有XenServer主机信息,创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD;接收用户触发的虚拟磁盘映像VDI创建消息,在XenServer中创建VDI并存储到所述存储库;接收用户触发的虚拟磁盘映射消息,建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系。2.根据权利要求1所述的方法,其特征在于,所述分布式存储集群为基于Ceph的分布式存储集群,所述分布式集群中的块设备类型为rbd;预先在XenServer中配置rbd块设备类型;将在分布式存储集群中建立的存储池用作XenServer的存储库时,进一步基于所述存储库建立消息,设置该存储库支持的块设备类型为rbd;建立分布式存储集群中各块设备与所述存储库中各VDI的映射关系后,进一步包括:捕获到rbd类型的块设备时,将该块设备的磁盘格式由所述分布式存储集群支持的磁盘格式转换为XenServer支持的磁盘格式。3.根据权利要求2所述的方法,其特征在于,所述PBD创建消息携带PBD属性信息,所述PBD属性信息包括权限用户信息和存储库安装模式;创建用于连接每一XenServer主机和所述存储库的PBD,并挂载创建的所有PBD时,进一步确定所述PBD创建消息携带PBD属性信息中的权限用户信息,如果该权限用户是管理员,则判断分布式存储集群的管理员与该管理员是否使用相同密钥文件,若是,则根据所述PBD属性信息对创建的PBD进行属性配置,若否,则终止PBD创建,并输出PBD创建失败信息;如果该权限用户不是管理员,则根据所述PBD属性信息对创建的PBD进行属性配置。4.根据权利要求2所述的方法,其特征在于,该方法进一步包括:接收用户触发的虚拟磁盘映射取消消息,确定该虚拟磁盘映射取消消息携带的rbd快设备和VDI信息,基于Xenserver提供的映射取消命令,取消该rbd块设备与该VDI之间的映射关系。5.根据权利要求2所述的方法,其特征在于,该方法进一步包括:接收用户触发的快照生成消息,基于Xenserver提供的快照生成命令,建立该快照生成消息指定的VDI对应的快照,并将快照数据存入该VDI对应的快照虚拟磁盘;接收用户触发的快照数据销毁消息,基于Xenserver提供的快照数据销毁命令,将该快照数据销毁消息指定的VDI对应的快照虚拟磁盘销毁;接收用户触发的VDI删除消息,基于Xenserver提供的VDI删除命令,将该VDI删除消息指定的VDI删除;接收用户触发的VDI分离消息,基于Xenserver提供的VDI分离命令,将该VDI分离消息指定的VDI分离。6.根据权利要求5所述的方法,其特征在于,该方法进一步包括:接收用户触发的快照导出消息,基于XenServer提供的快照导出命令,将该快照导出消息指定的虚拟机vm的快照导出到该快照导出消息指定的目标文件,并在导出时执行快照支持的磁盘格式到预设磁盘格式的转换;接收用户触发的快照导入消息,基于XenServer提供的快照导入命令,将该快照导入消息指定的虚拟机vm的快照从该快照导入消息指定的目标文件导入,并在导入时执行预设磁盘格式到快照支持的磁盘格式的转换。7.根据权利要求2所述的方法,其特征在于,该方法进一步包括:接收用户触发的VDI克隆消息,基于Xenserver提供的VDI克隆命令对该VDI克隆消息指定的VDI进行克隆;接收用户触发的VDI扩容消息,确定该VDI扩容消息携带的VDI信息和扩容信息,基于Xenserver提供的VDI扩容命令,按照所述扩容信息对该VDI进行扩容;接收用户触发的快照合并消息,确定该快照合并消息携带的快照信息和目标文件信息,基于Xenserver提供的快照合并命令,将该快照合并到目标文件中。8.一种在XenServer中实现分布式存储的插件,其特征在于,该插件包括:接收单元和处理单元;所述接收单元,用于接收用户触发的存储库建立消息;用于接收用户触发的物理块设备PBD创建消息;用于接收用户触发的虚拟磁盘映像VDI创建消息;用于接收用户触发的虚拟磁盘映射消息;所述处理单元,用于接收单元接收到用户触发的存储库建立消息时,将在分布式存储集群中建立的存储池用作XenServer的存储库;用于接收单元接收到用户触发的PBD创建消息时,确定PBD创建...

【专利技术属性】
技术研发人员:杨世明
申请(专利权)人:创新科存储技术深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1