一种虚拟机备份、恢复方法及装置与流程

文档序号:12550494阅读:191来源:国知局
一种虚拟机备份、恢复方法及装置与流程

本发明涉及计算机应用技术领域,特别是涉及一种虚拟机备份、恢复方法及装置。



背景技术:

随着云计算技术的快速发展,虚拟化技术也得到了快速发展。虚拟化技术可以充分利用昂贵的硬件资源,并且可以隔离硬件体系结构和软件系统之间的依赖关系,改进系统的安全性能,提高计算资源的利用率。

在实际应用中,实体物理机可作为虚拟化主机,虚拟化技术可以将虚拟化主机底层的物理资源整合虚拟出不同配置的虚拟机,为用户提供所需计算资源。随着虚拟化技术的发展和深入研究,虚拟机将逐渐取代实体物理机成为企业各种业务运行环境。

对虚拟机相应数据进行备份,在出现故障时快速恢复虚拟机,可以保护企业数据和减小企业损失。传统的对虚拟机的备份和恢复需要在虚拟机中安装备份代理,这样将占用虚拟化主机的资源,增加虚拟化主机的额外负载,且在需要恢复时,需在恢复的虚拟机上安装备份代理,再进行数据复制等操作,需要较长时间,影响企业生产的时效性。



技术实现要素:

本发明的目的是提供一种虚拟机备份方法及装置,以由单独的备份服务器执行虚拟机的备份和恢复操作,虚拟机不需要安装备份代理软件,不会增加虚拟化主机的额外负载;本发明的另一目的是提供一种虚拟机恢复方法及装置,以提高系统稳定性和企业恢复生产的时效性。

为解决上述技术问题,本发明提供如下技术方案:

一种虚拟机备份方法,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,包括:

在达到设定的对第一虚拟机备份的触发条件时,获得所述第一虚拟机对应的第一虚拟磁盘的位图,所述第一虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机;

基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中。

在本发明的一种具体实施方式中,在所述基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中之后,还包括:

清空所述第一虚拟磁盘的位图,以基于预设的备份方式在所述第一虚拟磁盘的位图中重新记录所述第一虚拟磁盘中变化数据块的索引位置。

在本发明的一种具体实施方式中,所述备份方式为全量备份方式、增量备份方式或者差异备份方式。

一种虚拟机恢复方法,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,包括:

接收对第二虚拟机的恢复请求,所述第二虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机,在设定的存储设备上存储有所述第二虚拟机对应的备份数据;

根据所述恢复请求,确定可用虚拟化主机;

在所述可用虚拟化主机上创建第二虚拟磁盘,将所述第二虚拟磁盘对应的底层存储指向所述存储设备中所述第二虚拟机对应的备份数据;

基于所述第二虚拟磁盘启动第三虚拟机,将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中。

在本发明的一种具体实施方式中,所述将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中,包括:

以设定的传输速率将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中,所述传输速率低于设定的传输速率阈值。

一种虚拟机备份装置,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,包括:

位图获得模块,用于在达到设定的对第一虚拟机备份的触发条件时,获得所述第一虚拟机对应的第一虚拟磁盘的位图,所述第一虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机;

数据备份模块,用于基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中。

在本发明的一种具体实施方式中,还包括位图清空模块,用于:

在所述基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中之后,清空所述第一虚拟磁盘的位图,以基于预设的备份方式在所述第一虚拟磁盘的位图中重新记录所述第一虚拟磁盘中变化数据块的索引位置。

在本发明的一种具体实施方式中,所述备份方式为全量备份方式、增量备份方式或者差异备份方式。

一种虚拟机恢复装置,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,包括:

恢复请求接收模块,用于接收对第二虚拟机的恢复请求,所述第二虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机,在设定的存储设备上存储有所述第二虚拟机对应的备份数据;

虚拟化主机确定模块,用于根据所述恢复请求,确定可用虚拟化主机;

虚拟磁盘创建模块,用于在所述可用虚拟化主机上创建第二虚拟磁盘,将所述第二虚拟磁盘对应的底层存储指向所述存储设备中所述第二虚拟机对应的备份数据;

虚拟机恢复模块,用于基于所述第二虚拟磁盘启动第三虚拟机,将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中。

在本发明的一种具体实施方式中,所述虚拟机恢复模块,具体用于:

以设定的传输速率将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中,所述传输速率低于设定的传输速率阈值。

应用本发明实施例所提供的虚拟机备份方法,备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,在达到设定的对第一虚拟机备份的触发条件时,获得第一虚拟机对应的第一虚拟磁盘的位图,基于第一虚拟磁盘的位图,将第一虚拟磁盘中的相应数据备份到设定的存储设备中。由单独的备份服务器执行虚拟机的备份操作,虚拟机不需要安装备份代理软件,不会增加虚拟化主机的额外负载。

应用本发明实施例所提供的虚拟机恢复方法,在接收到对第二虚拟机的恢复请求时,可以根据恢复请求,确定可用虚拟化主机,在可用虚拟化主机上创建第二虚拟磁盘,将第二虚拟磁盘对应的底层存储指向存储设备中第二虚拟机对应的备份数据,基于第二虚拟磁盘启动第三虚拟机,将存储设备中第二虚拟机对应的备份数据复制到第二虚拟磁盘中,实现对第二虚拟机的恢复,由单独的备份服务器执行虚拟机的恢复操作,在虚拟机崩溃或者遇到故障时可以快速恢复虚拟机上的应用,提高系统稳定性和企业恢复生产的时效性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中虚拟机备份系统的结构示意图;

图2为本发明实施例中一种虚拟机备份方法的实施流程图;

图3为本发明实施例中全量备份的示意图;

图4为本发明实施例中增量备份的示意图;

图5为本发明实施例中差异备份的示意图;

图6为本发明实施例中一种虚拟机恢复方法的实施流程图;

图7为本发明实施例中虚拟机恢复过程示意图;

图8为本发明实施例中数据合并过程示意图;

图9为本发明实施例中一种虚拟机备份装置的结构示意图;

图10为本发明实施例中一种虚拟机恢复装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种虚拟机备份方法,该方法可以应用于备份服务器,备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机。如图1所示,备份服务器分别与虚拟化主机A和虚拟化主机B通过路由交换通信连接,虚拟化主机A上配置有虚拟机vm1~虚拟机vm3,虚拟化主机B上配置有虚拟机vm4和虚拟机vm5,备份服务器还可以与数据中心中管理主机通过路由交换相连,管理主机可以为用户提供远程备份和恢复备份的管理。

备份服务器通过虚拟化主机提供的相关接口可以查询相应虚拟机的状态信息,对虚拟机进行开机、关机、创建或删除快照、创建或删除虚拟磁盘位图等操作。

参见图2所示,为本发明实施例所提供的一种虚拟机备份方法的实施流程图,该方法可以包括以下步骤:

S210:在达到设定的对第一虚拟机备份的触发条件时,获得第一虚拟机对应的第一虚拟磁盘的位图。

第一虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机。

在本发明实施例中,可以按照设定时间间隔对虚拟机执行备份操作,或者在接收到用户的备份指令时,对用户指定的虚拟机执行备份操作。这些都可以作为对虚拟机备份的触发条件。

在达到设定的对第一虚拟机备份的触发条件时,备份服务器可以通过第一虚拟机所在的虚拟化主机获得第一虚拟机对应的第一虚拟磁盘的位图。

每个虚拟机对应一个虚拟磁盘。针对某个虚拟机而言,在该虚拟机创建之初,会在该虚拟机对应的虚拟磁盘中创建该虚拟磁盘的位图,随着该虚拟机的业务进程,在该虚拟磁盘的位图中记录了该虚拟磁盘中变化数据块的索引位置。

S220:基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中。

在步骤S210,备份服务器获得第一虚拟机对应的第一虚拟磁盘的位图,基于该第一虚拟磁盘的位图,可以获得第一虚拟磁盘中数据块的变化情况,并将第一虚拟磁盘中的相应数据备份到设定的存储设备中。存储设备可以设置于备份服务器上,还可以独立于备份服务器。

在本发明实施例中,可以根据实际情况或者用户指令采用不同备份方式,备份方式可以为全量备份、增量备份、差异备份。

如果采用全量备份方式,则第一虚拟磁盘的位图中记录的为第一虚拟磁盘创建时刻至当前时刻所有变化数据块的索引位置,备份服务器根据第一虚拟磁盘的位图,可以获得第一虚拟磁盘创建时刻至当前时刻所有变化数据块的索引位置,基于该索引位置,可以将相应数据备份到设定的存储设备中,进行全量备份。首次备份时采用全量备份方式。

如果采用增量备份方式,则第一虚拟磁盘的位图中记录的为上一次备份时刻至当前时刻变化数据块的索引位置,备份服务器根据第一虚拟磁盘的位图,可以获得第一虚拟磁盘上一次备份时刻至当前时刻变化数据块的索引位置,基于该索引位置,可以将相应数据备份到设定的存储设备中,进行增量备份。

如果采用差异备份方式,则第一虚拟磁盘的位图中记录的为首次备份时刻至当前时刻的变化数据块的索引位置,备份服务器根据第一虚拟磁盘的位图,可以获得首次备份时刻至当前时刻的变化数据块的索引位置,基于该索引位置,可以将相应数据备份到设定的存储设备中,进行差异备份。

非首次备份时可以采用增量备份方式,还可以采用差异备份方式。

对于增量备份方式而言,增量备份虚拟磁盘之间是一个链式结构,为树状形式,一个根节点有多个叶子节点,叶子节点深度可以为多个;对于差异备份方式而言,差异备份也会形成一个树状结构,叶子节点深度只有一个;对于全量备份方式而言,只有根节点,没有叶子节点。

在本发明的一个实施例中,在步骤S220之后,该方法还可以包括以下步骤:

清空第一虚拟磁盘的位图,以基于预设的备份方式在第一虚拟磁盘的位图中重新记录第一虚拟磁盘中变化数据块的索引位置。

在本发明实施例中,在一次备份结束后,可以清空第一虚拟磁盘的位图,这样,基于预设的备份方式可以在第一虚拟磁盘的位图中重新记录第一虚拟磁盘中变化数据块的索引位置。

备份方式可以为全量备份方式、增量备份方式或者差异备份方式。

基于全量备份方式,可以在第一虚拟磁盘的位图中重新记录第一虚拟磁盘中从第一虚拟磁盘创建时刻至当前时刻变化数据块的索引位置,即第一虚拟磁盘中所有数据块的索引位置。

基于增量备份方式,可以在第一虚拟磁盘的位图中重新记录自上一次备份时刻至当前时刻变化数据块的索引位置。

基于差异备份方式,可以在第一虚拟磁盘的位图中重新记录自首次备份时刻至当前时刻变化数据块的索引位置。

为便于理解,举例说明。

假设虚拟机vm1在虚拟化主机A上有一个虚拟磁盘为disk1,为disk1做备份,具体实施过程为:

第一次为disk1做备份时,为全量备份,disk1的位图(bitmap)记录的是disk1创建时刻至第一次备份时刻所有数据块的索引位置,备份服务器基于disk1的位图将disk1的数据全量复制为disk1_backup,存储于存储设备中。disk1_backup为disk1的一次全量备份,具体如图3所示。

第二次为disk1做备份时,如果为增量备份,则在上一次(这里为第一次)做完备份时将disk1的位图清零,在上一次备份的基础上重新记录变化数据块的索引位置,备份服务器在第二次基于disk1的位图进行数据复制时,备份的数据(backing file)即为上一次备份时刻至这一次备份时刻的增量部分,若为第n次增量备份,重复执行即可,具体如图4所示。如果为差异备份,则在每次做完备份时将disk1的位图清零,在disk1的位图中重新记录的变化数据块的索引位置都是相对于第一次全量备份的,若为第n次差异备份,重复执行即可,具体如图5所示。

应用本发明实施例所提供的虚拟机备份方法,备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,在达到设定的对第一虚拟机备份的触发条件时,获得第一虚拟机对应的第一虚拟磁盘的位图,基于第一虚拟磁盘的位图,将第一虚拟磁盘中的相应数据备份到设定的存储设备中。由单独的备份服务器执行虚拟机的备份操作,虚拟机不需要安装备份代理软件,不会增加虚拟化主机的额外负载。

本发明实施例还提供了一种虚拟机恢复方法,该方法应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,如图1所示。

参见图6所示,为本发明实施例所提供的一种虚拟机恢复方法的实施流程图,该方法可以包括以下步骤:

S610:接收对第二虚拟机的恢复请求。

所述第二虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机,在设定的存储设备上存储有所述第二虚拟机对应的备份数据。

在本发明实施例中,备份服务器根据预设的备份规则可以将每个虚拟化主机的每个虚拟机对应的虚拟磁盘的数据进行备份,存储于存储设备中。第二虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机,在设定的存储设备上存储有第二虚拟机对应的备份数据。

在实际应用中,可以根据实际情况向备份服务器发出针对第二虚拟机的恢复请求。备份服务器接收到对第二虚拟机的恢复请求后,可以继续执行步骤S620的操作。

S620:根据所述恢复请求,确定可用虚拟化主机。

备份服务器接收到对第二虚拟机的恢复请求后,根据该恢复请求,可以确定可用虚拟化主机,即在与自身通信连接的多个虚拟化主机中选择一个可用虚拟化主机。具体的,可以根据虚拟化主机的可用资源进行选择。确定的可用虚拟化主机可以是第二虚拟机所在的虚拟化主机,还可以是其他虚拟化主机。

S630:在所述可用虚拟化主机上创建第二虚拟磁盘,将所述第二虚拟磁盘对应的底层存储指向所述存储设备中所述第二虚拟机对应的备份数据。

确定可用虚拟化主机后,备份服务器在可用虚拟化主机上创建第二虚拟磁盘,将第二虚拟磁盘对应的底层存储指向存储设备中第二虚拟机对应的备份数据。

S640:基于所述第二虚拟磁盘启动第三虚拟机,将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中。

在可用虚拟化主机上创建第二虚拟磁盘后,基于第二虚拟磁盘启动第三虚拟机,将存储设备中第二虚拟机对应的备份数据复制到第二虚拟磁盘中,这样,将第二虚拟机恢复为第三虚拟机,继续执行各种业务。

为便于理解,举例说明。

假设第二虚拟机为图1中的虚拟机vm2,在存储设备中存储有虚拟机vm2对应的备份数据,要对虚拟机vm2进行恢复,确定的可用虚拟化主机为虚拟化主机B,即在虚拟化主机B中恢复虚拟机vm2。

在虚拟化主机B上创建一个active层磁盘,即基于虚拟机vm2的虚拟磁盘链接克隆一个虚拟磁盘,active层磁盘后端镜像即备份文件指向存储设备中虚拟机vm2对应的备份数据。基于active层磁盘可以启动一个虚拟机,如图7所示。

备份服务器在后端将存储设备中虚拟机vm2对应的备份数据合并到active层磁盘中。其中,对于差异备份,是将根节点和叶子节点数据合并到active层磁盘中,对于增量备份,可以指定增量备份中的某一个叶子节点进行恢复,并将根节点和指定的叶子节点之间的所有节点数据都合并到active层磁盘中,如图8所示。

在本发明的一种具体实施方式中,可以以设定的传输速率将存储设备中第二虚拟机对应的备份数据复制到第二虚拟磁盘中,传输速率低于设定的传输速率阈值。在数据合并过程中可以对其进行限速,减少对业务带宽的影响。

数据合并完成之后完成了虚拟机的恢复,由于在数据合并的过程中不会暂停或者关闭恢复的虚拟机,可以缩短虚拟机的恢复时间。

在实际应用中,用户可以通过管理主机提供的web界面对虚拟机进行备份和恢复的管理,既可以本地管理还可以基于远程操作实现。

应用本发明实施例所提供的虚拟机恢复方法,在接收到对第二虚拟机的恢复请求时,可以根据恢复请求,确定可用虚拟化主机,在可用虚拟化主机上创建第二虚拟磁盘,将第二虚拟磁盘对应的底层存储指向存储设备中第二虚拟机对应的备份数据,基于第二虚拟磁盘启动第三虚拟机,将存储设备中第二虚拟机对应的备份数据复制到第二虚拟磁盘中,实现对第二虚拟机的恢复,由单独的备份服务器执行虚拟机的恢复操作,在虚拟机崩溃或者遇到故障时可以快速恢复虚拟机上的应用,提高系统稳定性和企业恢复生产的时效性。

相应于图2所示的方法实施例,本发明实施例还提供了一种虚拟机备份装置,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,下文描述的一种虚拟机备份装置与上文描述的一种虚拟机备份方法可相互对应参照。

参见图9所示,该装置包括以下模块:

位图获得模块910,用于在达到设定的对第一虚拟机备份的触发条件时,获得所述第一虚拟机对应的第一虚拟磁盘的位图,所述第一虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机;

数据备份模块920,用于基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中。

应用本发明实施例所提供的虚拟机备份装置,备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,在达到设定的对第一虚拟机备份的触发条件时,获得第一虚拟机对应的第一虚拟磁盘的位图,基于第一虚拟磁盘的位图,将第一虚拟磁盘中的相应数据备份到设定的存储设备中。由单独的备份服务器执行虚拟机的备份操作,虚拟机不需要安装备份代理软件,不会增加虚拟化主机的额外负载。

在本发明的一种具体实施方式中,还包括位图清空模块,用于:

在所述基于所述第一虚拟磁盘的位图,将所述第一虚拟磁盘中的相应数据备份到设定的存储设备中之后,清空所述第一虚拟磁盘的位图,以基于预设的备份方式在所述第一虚拟磁盘的位图中重新记录所述第一虚拟磁盘中变化数据块的索引位置。

在本发明的一种具体实施方式中,所述备份方式为全量备份方式、增量备份方式或者差异备份方式。

相应于图6所示的方法实施例,本发明实施例还提供了一种虚拟机恢复装置,应用于备份服务器,所述备份服务器与多个虚拟化主机通信连接,每个虚拟化主机上配置有多个虚拟机,下文描述的一种虚拟机恢复装置与上文描述的一种虚拟机恢复方法可相互对应参照。

参见图10所示,该装置包括以下模块:

恢复请求接收模块1010,用于接收对第二虚拟机的恢复请求,所述第二虚拟机为任意一个虚拟化主机上配置的任意一个虚拟机,在设定的存储设备上存储有所述第二虚拟机对应的备份数据;

虚拟化主机确定模块1020,用于根据所述恢复请求,确定可用虚拟化主机;

虚拟磁盘创建模块1030,用于在所述可用虚拟化主机上创建第二虚拟磁盘,将所述第二虚拟磁盘对应的底层存储指向所述存储设备中所述第二虚拟机对应的备份数据;

虚拟机恢复模块1040,用于基于所述第二虚拟磁盘启动第三虚拟机,将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中。

应用本发明实施例所提供的虚拟机恢复装置,在接收到对第二虚拟机的恢复请求时,可以根据恢复请求,确定可用虚拟化主机,在可用虚拟化主机上创建第二虚拟磁盘,将第二虚拟磁盘对应的底层存储指向存储设备中第二虚拟机对应的备份数据,基于第二虚拟磁盘启动第三虚拟机,将存储设备中第二虚拟机对应的备份数据复制到第二虚拟磁盘中,实现对第二虚拟机的恢复,由单独的备份服务器执行虚拟机的恢复操作,在虚拟机崩溃或者遇到故障时可以快速恢复虚拟机上的应用,提高系统稳定性和企业恢复生产的时效性。

在本发明的一种具体实施方式中,所述虚拟机恢复模块1040,具体用于:

以设定的传输速率将所述存储设备中所述第二虚拟机对应的备份数据复制到所述第二虚拟磁盘中,所述传输速率低于设定的传输速率阈值。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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