虚拟磁盘备份系统、方法和装置与流程

文档序号:11582457阅读:221来源:国知局
虚拟磁盘备份系统、方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种虚拟磁盘备份系统、方法和装置。



背景技术:

虚拟化技术已经成为iaas(infrastructureasaservice,基础设施即服务)层的重要使能技术之一。它通过vmm(virtualmachinemonitor,虚拟机监控器)软件对物理机的cpu、内存、i/o等设备进行虚拟化,在一台物理机中虚拟出多个vm(virtualmachine,虚拟机),每个vm都运行一个客户操作系统(guestos,客户机)。vmm与一个特权操作系统(dom0或者hostos,宿主机)协调,保证位于同一物理机上的各个虚拟机相互隔离。

当前,在iaas服务中,数据存储主要有两类:共享存储和本地存储。本地存储方案中,一旦有节点出现故障,如物理磁盘损坏,该物理机上的所有虚拟机将不可用,另外,由于本地盘数据没有冗余备份,一旦出现物理磁盘损坏的情况,将导致该物理机上的所有虚拟机不可恢复,也就是说,现有的数据存储方式,在物理磁盘损坏的情况下,容易导致虚拟机无法使用。



技术实现要素:

本发明的主要目的在于提供一种虚拟磁盘备份系统、方法和装置,旨在解决现有的数据存储方式,在物理磁盘损坏的情况下,容易导致物理机上的所有虚拟机无法使用的技术问题。

为实现上述目的,本发明提供的一种虚拟磁盘备份系统,所述虚拟磁盘备份系统包括云服务器、服务主机和备份主机;

所述云服务器,用于在检测到所述服务主机和所述备份主机启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动预设的同步服务器程序,以及所述备份主机启动预设的同步客户端程序;

所述服务主机,用于在接收到所述虚拟磁盘备份指令时,截取本地虚拟磁盘的虚拟磁盘写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机;

所述备份主机,用于通过所述同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

优选地,所述服务主机,还用于在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机;

所述备份主机,还用于通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

优选地,所述云服务器,还用于在检测到所述服务主机宕机时,通知所述备份主机基于所述备份虚拟磁盘启动所述备份主机的虚拟机,以供所述备份主机根据启动的所述虚拟机继续提供服务。

优选地,所述云服务器,还用于在检测到虚拟磁盘迁移请求时,确定所述服务主机待切换的目的服务主机,并根据确定的所述目的服务主机发送虚拟磁盘迁移指令至所述服务主机;

所述服务主机,还用于在接收到所述虚拟磁盘迁移指令时,确定目的服务主机,并将本地虚拟磁盘迁移至确定的所述目的服务主机;在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机;

所述备份主机,还用于通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

优选地,所述云服务器,还用于获取所述目的服务主机的地址信息和虚拟机信息,并将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以供所述备份主机基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;

所述云服务器,还用于通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

优选地,一个服务主机可以由至少一个备份主机进行虚拟磁盘的备份;一个备份主机可以为至少一个服务主机进行虚拟磁盘的备份。

此外,为实现上述目的,本发明还提供一种虚拟磁盘备份方法,应用于服务主机,所述虚拟磁盘备份方法包括:

在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序;

截取本地虚拟磁盘的虚拟磁盘写操作;

将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

优选地,所述虚拟磁盘备份方法还包括:

在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作;

通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

优选地,所述虚拟磁盘备份方法还包括:

在接收到云服务器发送的虚拟磁盘迁移指令时,基于所述虚拟磁盘迁移指令确定目的服务主机;

将本地虚拟磁盘迁移至确定的所述目的服务主机;

在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

此外,为实现上述目的,本发明还提供一种虚拟磁盘备份装置,应用于服务主机,所述虚拟磁盘备份装置包括:

启动模块,用于在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序;

截取模块,用于截取本地虚拟磁盘的虚拟磁盘写操作;

发送模块,用于将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

优选地,所述截取模块,还用于在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作;

所述发送模块,还用于通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

优选地,所述虚拟磁盘备份装置还包括:

确定模块,用于在接收到云服务器发送的虚拟磁盘迁移指令时,基于所述虚拟磁盘迁移指令确定目的服务主机;

迁移模块,用于将本地虚拟磁盘迁移至确定的所述目的服务主机;

所述发送模块,还用于在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

本发明提出的虚拟磁盘备份系统,云服务器在检测到服务主机和备份主机启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动预设的同步服务器程序,以及所述备份主机启动预设的同步客户端程序,所述服务主机在接收到所述虚拟磁盘备份指令时,截取本地虚拟磁盘的虚拟磁盘写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机,所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。本发明实现了对服务主机的本地虚拟磁盘做实时备份,后续即使服务主机的物理磁盘出现损坏,也会由于备份主机的备份虚拟磁盘已经备份了数据,可以继续为服务主机中的虚拟机提供服务,保证了服务主机中的虚拟机可以正常使用。

附图说明

图1为本发明虚拟磁盘备份系统第一结构示意图;

图2为本发明虚拟磁盘备份系统第二结构示意图;

图3为本发明虚拟磁盘备份方法第一实施例的流程示意图;

图4为本发明虚拟磁盘备份方法第二实施例的功能模块示意图;

图5为本发明虚拟磁盘备份方法第三实施例的流程示意图;

图6为本发明虚拟磁盘备份装置第一实施例的功能模块示意图;

图7为本发明虚拟磁盘备份装置第三实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提出的技术方案,云服务器在检测到服务主机和备份主机启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动预设的同步服务器程序,以及所述备份主机启动预设的同步客户端程序,所述服务主机在接收到所述虚拟磁盘备份指令时,截取本地虚拟磁盘的虚拟磁盘写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机,所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。以解决现有的本地存储方案下,一旦出现节点故障,如物理磁盘损坏的时候,由于本地虚拟磁盘数据没有冗余备份,导致虚拟机无法使用的问题。

基于上述问题,本发明提供一种虚拟磁盘备份系统。

在本实施例中,所述虚拟磁盘备份系统包括云服务器、服务主机和备份主机;

所述云服务器,用于在检测到所述服务主机和所述备份主机启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动预设的同步服务器程序,以及所述备份主机启动预设的同步客户端程序;

所述服务主机,用于在接收到所述虚拟磁盘备份指令时,截取本地虚拟磁盘的虚拟磁盘写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机;

所述备份主机,用于通过所述同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

在本实施例中,在实现虚拟磁盘备份之前,先由云服务器在集群中指定任意的一台物理机作为服务主机,并从集群中指定其它预设台数的物理机作为备份主机。本实施例中,所述预设台数可以根据实际情况进行设置,例如,集群中的各台物理机的稳定性都较好,则可选择一台作为备份主机,若是集群中的各台物理机的稳定性都较差,为了防止后续备份主机也故障,则可选择多台物理机作为备份主机。

传统的备份主机选择方式,都是固定的选择一台作为备份主机,并且,服务主机和备份主机是一对一的关系,局限性很强,容易出现备份主机故障时,服务主机也无法使用的情况。

而本实施例,一个服务主机可以由至少一个备份主机进行虚拟磁盘的备份;当然,一个备份主机可以为至少一个服务主机进行虚拟磁盘的备份。即在集群中任意选择预设台数的物理机作为备份主机,保证了后续数据备份的稳定性。并且,一台备份主机还可以同时作为多台服务主机的备份主机,不是一台备注主机只能给一台服务主机使用,有利于节省系统资源。

在指定好服务主机和备份主机之后,确定服务主机中包含的虚拟机,然后将虚拟机对应的虚拟磁盘拷贝到备份主机中,使得服务主机和虚拟主机有相同的虚拟磁盘,便于后续进行数据的备份。进一步地,在指定好服务主机和备份主机之后,还需要对服务主机和备份主机进行初始化,本实施例中,具体地初始化操作包括:对服务主机和备份主机部署打了vm磁盘读写截获子模块补丁的vmm程序,同步服务器程序,同步客户端程序,agent(代理)程序,在对服务主机和备份主机部署了各个程序之后,启动服务主机和备份主机的agent程序,以完成初始化操作。本实施例中,之所以对服务主机和备份主机执行相同的初始化操作,是因为服务主机和备份主机的身份不是固定的,既可以作为自己的服务主机,也可以作为其它物理机的备份主机,后续可以根据具体的情况执行相应的操作。

在服务主机和备份主机完成初始化操作之后,所述服务主机和备份主机才可以和云服务器进行交互,本实施例中,服务主机和备份主机通过agent程序与云服务器进行交互,具体地,通过agent程序接收云服务器发送的虚拟磁盘备份指令。

本实施例中,由于对服务主机和备份主机部署了各种程序,因此为更好理解,参照图1对本发明的技术方案进行详述,其中,图1为本发明虚拟磁盘备份系统的第一结构示意图:

服务主机02的vmm中通过打补丁的方式添加有vm磁盘读写截获子模块021,syncserver(同步服务器)程序022和agent程序023,备份主机03中添加有syncclient(同步客户端)程序031和agent程序032。其中,vm磁盘读写操作截获子模块021负责截获vm对虚拟磁盘的读写操作,并将读写操作同步到同步服务器程序022中;同步服务器程序022再将数据传递到备份主机中的同步客户端程序031,同步客户端程序031通过调用虚拟磁盘镜像驱动,将数据实时写入到备份主机的备份虚拟磁盘中,实现对虚拟磁盘镜像的实时备份。值得注意的是,agent程序023和agent程序032不仅负责同云服务器01的交互,还会负责同步服务器022和同步客户端031的启动、关闭及状态监测。

继续参照图1,云服务器01在指定服务主机02和备份主机03的情况下,检测到所述服务主机02和所述备份主机03启动,实际上是检测到所述服务主机02中的agent程序023和所述备份主机03的agent程序032启动。在检测到所述服务主机02的agent程序023启动,和所述备份主机03的agent程序032启动时,发送虚拟磁盘备份指令至所述服务主机02和所述备份主机03,以供所述服务主机02启动同步服务器程序022,以及所述备份主机03启动同步客户端程序031。

所述服务主机02在接收到所述虚拟磁盘备份指令时,先由所述同步服务器程序022与vm磁盘读写截取子模块021建立通信连接,以通过所述vm磁盘读写截取子模块021截取本地虚拟磁盘的虚拟磁盘写操作,并且将截取的虚拟磁盘写操作发送至所述同步服务器程序022;同时,所述服务主机02还会将同步服务器程序022与备份主机03的同步客户端程序031建立通信连接,再通过所述同步服务器程序022将截取的所述虚拟磁盘写操作发送至所述备份主机03。

所述备份主机03通过所述同步客户端程序031接收到所述虚拟磁盘写操作时,调用虚拟磁盘镜像驱动的库函数,以将接收到的所述虚拟磁盘读写操作写到备份虚拟磁盘中,最终反馈执行结果至所述服务主机02,以告知所述服务主机02数据拷贝的结果。

本实施例提出的虚拟磁盘备份系统,云服务器在检测到服务主机和备份主机启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动预设的同步服务器程序,以及所述备份主机启动预设的同步客户端程序,所述服务主机在接收到所述虚拟磁盘备份指令时,截取本地虚拟磁盘的虚拟磁盘写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机,所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。本发明实现了对服务主机的本地虚拟磁盘做实时备份,后续即使服务主机的物理磁盘出现损坏,也会由于备份主机的备份虚拟磁盘已经备份了数据,可以继续为服务主机中的虚拟机提供服务,保证了服务主机中的虚拟机可以正常使用。

进一步地,基于第一实施例提出本发明虚拟磁盘备份系统的第二实施例,在本实施例中,所述服务主机,还用于在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作,并通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机;

所述备份主机,还用于通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

在本实施例中,继续参照图1,所述服务主机02通过vm磁盘读写截获子模块021感知本地虚拟磁盘阻塞,以确定本地虚拟磁盘出现故障,在检测到本地虚拟磁盘堵塞时,由vm磁盘读写截获子模块021截取本地虚拟磁盘的虚拟磁盘读写操作,然后通过所述同步服务器程序022将截取的所述虚拟磁盘读写操作发送至所述备份主机03。

所述备份主机03通过所述同步客户端程序031接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘,以执行所述虚拟磁盘读写操作,也就是说,所述备份主机03调用虚拟磁盘镜像执行具体的操作,若该虚拟磁盘读写操作是读操作,就在虚拟磁盘镜像中执行读操作,若该虚拟磁盘读写操作是写操作,就在虚拟磁盘镜像中执行写操作,最终反馈执行结果至所述服务主机02。

在本实施例中,相当于是在服务主机02的本地虚拟磁盘出现故障时,将本地虚拟磁盘对应的虚拟磁盘读写操作及时切换至备份主机03的备份虚拟磁盘中执行,保证了服务主机02中虚拟机对应的虚拟磁盘读写操作正常执行。

进一步地,基于第一实施例提出本发明虚拟磁盘备份系统的第三实施例,在本实施例中,

所述云服务器,还用于在检测到所述服务主机宕机时,通知所述备份主机基于所述备份虚拟磁盘启动所述备份主机的虚拟机,以供所述备份主机根据启动的所述虚拟机继续提供服务。

在本实施例中,继续参照图1,当所述服务主机02出现严重故障导致宕机时,服务主机02中的所有程序都会挂掉,因此所述云服务器01检测到所述服务主机02中的agent程序023停止时,就知道所述服务主机02宕机,在检测到所述服务主机02宕机时,所述云服务器01通知所述备份主机03启动所述备份虚拟磁盘,由于备份主机03的所述备份虚拟磁盘已经备份有服务主机02中所有的虚拟磁盘读写操作,那么,所述备份主机03即可继续根据所述备份虚拟磁盘启动所述备份主机03的虚拟机,以通过启动的所述虚拟机继续提供服务。

在本实施例中,所述云服务器01在检测到所述服务主机02宕机时,通知所述备份主机03启动所述备份虚拟磁盘,以供所述备份主机03根据所述备份虚拟磁盘启动虚拟机,并继续提供服务,保证了服务主机02宕机的情况下,备份主机03可以继续提供服务。

进一步地,基于第一实施例提出本发明虚拟磁盘备份系统的第四实施例,在本实施例中,

所述云服务器,还用于在检测到虚拟磁盘迁移请求时,确定所述服务主机待切换的目的服务主机,并根据确定的所述目的服务主机发送虚拟磁盘迁移指令至所述服务主机;

所述服务主机,还用于在接收到所述虚拟磁盘迁移指令时,确定目的服务主机,并将本地虚拟磁盘迁移至确定的所述目的服务主机;在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机;

所述备份主机,还用于通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

在本实施例中,所述云服务器在检测到虚拟磁盘迁移请求时,此时为了保证服务主机中的虚拟机可以正常运行,需要将所述服务主机的虚拟机迁移到其它服务主机中,以实现虚拟机的在线迁移。本实施例中,所述虚拟磁盘迁移请求的触发方式包括:服务主机需要使用大量内存时,触发虚拟磁盘迁移请求;或者,服务主机cpu的负载过大时,触发虚拟磁盘迁移请求。

为了实现虚拟机的在线迁移,参照图2,图2为本发明虚拟磁盘备份系统的第二结构示意图:所述服务主机02的vmm中通过打补丁的方式还添加有vm迁移截获子模块024,其中,所述vm迁移截获子模块024负责截获vm迁移操作,当截获到vm迁移这一操作时,会告知同步服务器程序022,再由syncserver程序022告知备份主机03中的同步客户端程序031。

应当理解,由于在选择备份主机时,可以在集群中进行选择,同理,在服务主机宕机时,将服务主机中的虚拟机迁移到其它服务主机时,同样可以在集群中,选择任一台物理机作为待切换的目的服务主机进行虚拟机的迁移。在选择好目的服务主机之后,即可发送虚拟磁盘迁移指令至所述服务主机,以通知所述服务主机将虚拟机进行在线迁移。

在本实施例中,参照图2,所述服务主机02在接收到所述云服务器01发送的虚拟磁盘迁移指令时,确定目的服务主机,然后根据vm迁移截获子模块024将本地虚拟磁盘迁移至确定的所述目的服务主机,在检测到本地虚拟磁盘迁移完成时,将迁移完成指令发送至同步服务器程序022,再通过所述同步服务器程序022将迁移完成指令发送至所述备份主机03。

所述备份主机03通过所述同步客户端程序031接收到所述迁移完成指令时,关闭与所述服务主机02的通信连接,也就是关闭与所述服务主机中同步服务器程序022的通信连接;同时,建立与所述目的服务主机中同步服务器程序的通信连接,以继续进行虚拟磁盘的备份服务。

进一步地,为了保证服务主机02将虚拟机迁移到目的服务主机时,可以迁移成功。所述云服务器,还用于获取所述目的服务主机的地址信息和虚拟机信息,并将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以供所述备份主机基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;

所述云服务器,还用于通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

也就是说,所述云服务器01发送虚拟磁盘迁移指令至服务主机02之前,所述云服务器01根据确定目的服务主机,获取所述目的服务主机的地址信息和虚拟机信息,然后将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机02,以便所述备份主机02后续基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;同时,所述云服务器01还会通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

在本实施例中,实现了虚拟机的在线迁移,并且,在虚拟机进行在线迁移时,本地虚拟磁盘的虚拟机可以在集群中的任一个物理机间进行迁移,提高了云计算服务系统的可维护性,更利于实现负载均衡。

本发明中,服务主机和备份主机之间不再是peer-to-peer(点对点,对等网络)的映射关系,而是全相联的映射关系,一个服务主机的不同虚拟磁盘可以由不同备份主机进行备份,这样当某一台使用本地虚拟磁盘的虚拟机从某一台服务主机迁移到新的服务主机上时,该虚拟机的虚拟磁盘仍然由原备份主机进行备份服务,提高了数据备份的灵活性。

本发明进一步提供一种虚拟磁盘备份方法,应用于服务主机。

参照图3,图3为本发明虚拟磁盘备份方法第一实施例的流程示意图。

在本实施例中,所述虚拟磁盘备份方法包括:

步骤s10,在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序;

步骤s20,截取本地虚拟磁盘的虚拟磁盘写操作;

步骤s30,将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

在本实施例中,在实现虚拟磁盘备份之前,先由云服务器在集群中指定任意的一台物理机作为服务主机,并从集群中指定其它预设台数的物理机作为备份主机。本实施例中,所述预设台数可以根据实际情况进行设置,例如,集群中的各台物理机的稳定性都较好,则可选择一台作为备份主机,若是集群中的各台物理机的稳定性都较差,为了防止后续备份主机也故障,则可选择多台物理机作为备份主机。

传统的备份主机选择方式,都是固定的选择一台作为备份主机,并且,服务主机和备份主机是一对一的关系,局限性很强,容易出现备份主机故障时,服务主机也无法使用的情况。

而本实施例,一个服务主机可以由至少一个备份主机进行虚拟磁盘的备份;当然,一个备份主机可以为至少一个服务主机进行虚拟磁盘的备份。即在集群中任意选择预设台数的物理机作为备份主机,保证了后续数据备份的稳定性。并且,一台备份主机还可以同时作为多台服务主机的备份主机,不是一台备注主机只能给一台服务主机使用,有利于节省系统资源。

在指定好服务主机和备份主机之后,确定服务主机中包含的虚拟机,然后将虚拟机对应的虚拟磁盘拷贝到备份主机中,使得服务主机和虚拟主机有相同的虚拟磁盘,便于后续进行数据的备份。进一步地,在指定好服务主机和备份主机之后,还需要对服务主机和备份主机进行初始化,本实施例中,具体地初始化操作包括:对服务主机和备份主机部署打了vm磁盘读写截获子模块补丁的vmm程序,同步服务器程序,同步客户端程序,agent(代理)程序,在对服务主机和备份主机部署了各个程序之后,启动服务主机和备份主机的agent程序,以完成初始化操作。本实施例中,之所以对服务主机和备份主机执行相同的初始化操作,是因为服务主机和备份主机的身份不是固定的,既可以作为自己的服务主机,也可以作为其它物理机的备份主机,后续可以根据具体的情况执行相应的操作。

在服务主机和备份主机完成初始化操作之后,所述服务主机和备份主机才可以和云服务器进行交互,本实施例中,服务主机和备份主机通过agent程序与云服务器进行交互,具体地,通过agent程序接收云服务器发送的虚拟磁盘备份指令。

云服务器在指定服务主机和备份主机的情况下,检测到所述服务主机和所述备份主机启动,实际上是检测到所述服务主机中的agent程序和所述备份主机的agent程序启动。在检测到所述服务主机的agent程序启动,和所述备份主机的agent程序启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供所述服务主机启动同步服务器程序,以及所述备份主机启动同步客户端程序。

所述服务主机在接收到所述虚拟磁盘备份指令时,先由所述同步服务器程序与vm磁盘读写截取子模块建立通信连接,以通过所述vm磁盘读写截取子模块截取本地虚拟磁盘的虚拟磁盘写操作,并且将截取的虚拟磁盘写操作发送至所述同步服务器程序;同时,所述服务主机还会将同步服务器程序与备份主机的同步客户端程序建立通信连接,再通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘写操作时,调用虚拟磁盘镜像驱动的库函数,以将接收到的所述虚拟磁盘读写操作写到备份虚拟磁盘中,最终反馈执行结果至所述服务主机,以告知所述服务主机数据拷贝的结果。

本实施例提出的虚拟磁盘备份方法,在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序,截取本地虚拟磁盘的虚拟磁盘写操作,将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。本实施例实现了对服务主机的本地虚拟磁盘做实时备份,后续即使服务主机的物理磁盘出现损坏,也会由于备份主机的备份虚拟磁盘已经备份了数据,可以继续为服务主机中的虚拟机提供服务,保证了服务主机中的虚拟机可以正常使用。

进一步地,基于第一实施例提出本发明虚拟磁盘备份方法的第三实施例,在本实施例中,参照图4,所述虚拟磁盘备份方法还包括:

步骤s40,在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作;

步骤s50,通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

在本实施例中,所述服务主机通过vm磁盘读写截获子模块感知本地虚拟磁盘阻塞,以确定本地虚拟磁盘出现故障,在检测到本地虚拟磁盘堵塞时,由vm磁盘读写截获子模块截取本地虚拟磁盘的虚拟磁盘读写操作,然后通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘,以执行所述虚拟磁盘读写操作,也就是说,所述备份主机调用虚拟磁盘镜像执行具体的操作,若该虚拟磁盘读写操作是读操作,就在虚拟磁盘镜像中执行读操作,若该虚拟磁盘读写操作是写操作,就在虚拟磁盘镜像中执行写操作,最终反馈执行结果至所述服务主机。

在本实施例中,相当于是在服务主机的本地虚拟磁盘出现故障时,将本地虚拟磁盘对应的虚拟磁盘读写操作及时切换至备份主机的备份虚拟磁盘中执行,保证了服务主机中虚拟机对应的虚拟磁盘读写操作正常执行。

进一步地,所述云服务器检测到所述服务主机宕机时,通知所述备份主机基于所述备份虚拟磁盘启动所述备份主机的虚拟机,以供所述备份主机根据启动的所述虚拟机继续提供服务。

即,所述服务主机出现严重故障导致宕机时,服务主机中的所有程序都会挂掉,因此所述云服务器检测到所述服务主机中的agent程序停止时,就知道所述服务主机宕机,在检测到所述服务主机宕机时,所述云服务器通知所述备份主机启动所述备份虚拟磁盘,由于备份主机的所述备份虚拟磁盘已经备份有服务主机中所有的虚拟磁盘读写操作,那么,所述备份主机即可继续根据所述备份虚拟磁盘启动所述备份主机的虚拟机,以通过启动的所述虚拟机继续提供服务。

在本实施例中,相当于所述云服务器在检测到所述服务主机宕机时,通知所述备份主机启动所述备份虚拟磁盘,以供所述备份主机根据所述备份虚拟磁盘启动虚拟机,并继续提供服务,保证了服务主机宕机的情况下,备份主机可以继续提供服务。

进一步地,基于第一或第二实施例提出本发明虚拟磁盘备份方法的第三实施例,在本实施例中,参照图5,所述虚拟磁盘备份方法还包括:

步骤s60,在接收到云服务器发送的虚拟磁盘迁移指令时,基于所述虚拟磁盘迁移指令确定目的服务主机;

步骤s70,将本地虚拟磁盘迁移至确定的所述目的服务主机;

步骤s80,在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

在本实施例中,所述云服务器在检测到虚拟磁盘迁移请求时,此时为了保证服务主机中的虚拟机可以正常运行,需要将所述服务主机的虚拟机迁移到其它服务主机中,以实现虚拟机的在线迁移。本实施例中,所述虚拟磁盘迁移请求的触发方式包括:服务主机需要使用大量内存时,触发虚拟磁盘迁移请求;或者,服务主机cpu的负载过大时,触发虚拟磁盘迁移请求。

应当理解,由于在选择备份主机时,可以在集群中进行选择,同理,在服务主机宕机时,将服务主机中的虚拟机迁移到其它服务主机时,同样可以在集群中,选择任一台物理机作为待切换的目的服务主机进行虚拟机的迁移。在选择好目的服务主机之后,即可发送虚拟磁盘迁移指令至所述服务主机,以通知所述服务主机将虚拟机进行在线迁移。

在本实施例中,所述服务主机在接收到所述云服务器发送的虚拟磁盘迁移指令时,确定目的服务主机,然后根据vm迁移截获子模块将本地虚拟磁盘迁移至确定的所述目的服务主机,在检测到本地虚拟磁盘迁移完成时,将迁移完成指令发送至同步服务器程序,再通过所述同步服务器程序将迁移完成指令发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,也就是关闭与所述服务主机中同步服务器程序的通信连接;同时,建立与所述目的服务主机中同步服务器程序的通信连接,以继续进行虚拟磁盘的备份服务。

进一步地,为了保证服务主机将虚拟机迁移到目的服务主机时,可以迁移成功。所述云服务器还会获取所述目的服务主机的地址信息和虚拟机信息,并将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以供所述备份主机基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;并且,所述云服务器还会通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

也就是说,所述云服务器发送虚拟磁盘迁移指令至服务主机之前,根据确定目的服务主机,获取所述目的服务主机的地址信息和虚拟机信息,然后将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以便所述备份主机后续基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;同时,所述云服务器还会通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

在本实施例中,实现了虚拟机的在线迁移,并且,在虚拟机进行在线迁移时,本地虚拟磁盘的虚拟机可以在集群中的任一个物理机间进行迁移,提高了云计算服务系统的可维护性,更利于实现负载均衡。

本发明中,服务主机和备份主机之间不再是peer-to-peer(点对点,对等网络)的映射关系,而是全相联的映射关系,一个服务主机的不同虚拟磁盘可以由不同备份主机进行备份,这样当某一台使用本地虚拟磁盘的虚拟机从某一台服务主机迁移到新的服务主机上时,该虚拟机的虚拟磁盘仍然由原备份主机进行备份服务,提高了数据备份的灵活性。

本发明进一步提供一种虚拟磁盘备份装置,应用于服务主机。

参照图6,图6为本发明虚拟磁盘备份装置100第一实施例的功能模块示意图。

需要强调的是,对本领域的技术人员来说,图6所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图6所示的虚拟磁盘备份装置100的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该虚拟磁盘备份装置100的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。

在本实施例中,所述虚拟磁盘备份装置100包括:

启动模块10,用于在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序;

截取模块20,用于截取本地虚拟磁盘的虚拟磁盘写操作;

发送模块30,用于将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。

在本实施例中,在实现虚拟磁盘备份之前,先由云服务器在集群中指定任意的一台物理机作为服务主机,并从集群中指定其它预设台数的物理机作为备份主机。本实施例中,所述预设台数可以根据实际情况进行设置,例如,集群中的各台物理机的稳定性都较好,则可选择一台作为备份主机,若是集群中的各台物理机的稳定性都较差,为了防止后续备份主机也故障,则可选择多台物理机作为备份主机。

传统的备份主机选择方式,都是固定的选择一台作为备份主机,并且,服务主机和备份主机是一对一的关系,局限性很强,容易出现备份主机故障时,服务主机也无法使用的情况。

而本实施例,一个服务主机可以由至少一个备份主机进行虚拟磁盘的备份;当然,一个备份主机可以为至少一个服务主机进行虚拟磁盘的备份。即在集群中任意选择预设台数的物理机作为备份主机,保证了后续数据备份的稳定性。并且,一台备份主机还可以同时作为多台服务主机的备份主机,不是一台备注主机只能给一台服务主机使用,有利于节省系统资源。

在指定好服务主机和备份主机之后,确定服务主机中包含的虚拟机,然后将虚拟机对应的虚拟磁盘拷贝到备份主机中,使得服务主机和虚拟主机有相同的虚拟磁盘,便于后续进行数据的备份。进一步地,在指定好服务主机和备份主机之后,还需要对服务主机和备份主机进行初始化,本实施例中,具体地初始化操作包括:对服务主机和备份主机部署打了vm磁盘读写截获子模块补丁的vmm程序,同步服务器程序,同步客户端程序,agent(代理)程序,在对服务主机和备份主机部署了各个程序之后,启动服务主机和备份主机的agent程序,以完成初始化操作。本实施例中,之所以对服务主机和备份主机执行相同的初始化操作,是因为服务主机和备份主机的身份不是固定的,既可以作为自己的服务主机,也可以作为其它物理机的备份主机,后续可以根据具体的情况执行相应的操作。

在服务主机和备份主机完成初始化操作之后,所述服务主机和备份主机才可以和云服务器进行交互,本实施例中,服务主机和备份主机通过agent程序与云服务器进行交互,具体地,通过agent程序接收云服务器发送的虚拟磁盘备份指令。

云服务器在指定服务主机和备份主机的情况下,检测到所述服务主机和所述备份主机启动,实际上是检测到所述服务主机中的agent程序和所述备份主机的agent程序启动。在检测到所述服务主机的agent程序启动,和所述备份主机的agent程序启动时,发送虚拟磁盘备份指令至所述服务主机和所述备份主机,以供启动模块10启动同步服务器程序,以及所述备份主机启动同步客户端程序。

截取模块20在接收到所述虚拟磁盘备份指令时,先由所述同步服务器程序与vm磁盘读写截取子模块建立通信连接,以通过所述vm磁盘读写截取子模块截取本地虚拟磁盘的虚拟磁盘写操作,并且将截取的虚拟磁盘写操作发送至所述同步服务器程序;同时,还会将同步服务器程序与备份主机的同步客户端程序建立通信连接,发送模块30再通过所述同步服务器程序将截取的所述虚拟磁盘写操作发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘写操作时,调用虚拟磁盘镜像驱动的库函数,以将接收到的所述虚拟磁盘读写操作写到备份虚拟磁盘中,最终反馈执行结果至所述服务主机,以告知所述服务主机数据拷贝的结果。

本实施例提出的虚拟磁盘备份装置,启动模块10在接收到云服务器发送的虚拟磁盘备份指令时,启动预设的同步服务器程序,截取模块20截取本地虚拟磁盘的虚拟磁盘写操作,发送模块30将截取的所述虚拟磁盘写操作通过所述同步服务器程序发送至备份主机,以供所述备份主机通过预设的同步客户端程序接收到所述虚拟磁盘写操作时,将接收到的所述虚拟磁盘写操作写到备份虚拟磁盘中。本实施例实现了对服务主机的本地虚拟磁盘做实时备份,后续即使服务主机的物理磁盘出现损坏,也会由于备份主机的备份虚拟磁盘已经备份了数据,可以继续为服务主机中的虚拟机提供服务,保证了服务主机中的虚拟机可以正常使用。

进一步地,基于第一实施例提出本发明虚拟磁盘备份装置的第二实施例,在本实施例中,

所述截取模块20,还用于在检测到本地虚拟磁盘出现故障时,截取本地虚拟磁盘的虚拟磁盘读写操作;

所述发送模块30,还用于通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘以执行所述虚拟磁盘读写操作,并反馈执行结果至所述服务主机。

在本实施例中,所述服务主机通过vm磁盘读写截获子模块感知本地虚拟磁盘阻塞,以确定本地虚拟磁盘出现故障,在检测到本地虚拟磁盘堵塞时,所述截取模块20由vm磁盘读写截获子模块截取本地虚拟磁盘的虚拟磁盘读写操作,然后所述发送模块30通过所述同步服务器程序将截取的所述虚拟磁盘读写操作发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述虚拟磁盘读写操作时,调用所述备份虚拟磁盘,以执行所述虚拟磁盘读写操作,也就是说,所述备份主机调用虚拟磁盘镜像执行具体的操作,若该虚拟磁盘读写操作是读操作,就在虚拟磁盘镜像中执行读操作,若该虚拟磁盘读写操作是写操作,就在虚拟磁盘镜像中执行写操作,最终反馈执行结果至所述服务主机。

在本实施例中,相当于是在服务主机的本地虚拟磁盘出现故障时,将本地虚拟磁盘对应的虚拟磁盘读写操作及时切换至备份主机的备份虚拟磁盘中执行,保证了服务主机中虚拟机对应的虚拟磁盘读写操作正常执行。

进一步地,所述云服务器检测到所述服务主机宕机时,通知所述备份主机基于所述备份虚拟磁盘启动所述备份主机的虚拟机,以供所述备份主机根据启动的所述虚拟机继续提供服务。

即,所述服务主机出现严重故障导致宕机时,服务主机中的所有程序都会挂掉,因此所述云服务器检测到所述服务主机中的agent程序停止时,就知道所述服务主机宕机,在检测到所述服务主机宕机时,所述云服务器通知所述备份主机启动所述备份虚拟磁盘,由于备份主机的所述备份虚拟磁盘已经备份有服务主机中所有的虚拟磁盘读写操作,那么,所述备份主机即可继续根据所述备份虚拟磁盘启动所述备份主机的虚拟机,以通过启动的所述虚拟机继续提供服务。

在本实施例中,相当于所述云服务器在检测到所述服务主机宕机时,通知所述备份主机启动所述备份虚拟磁盘,以供所述备份主机根据所述备份虚拟磁盘启动虚拟机,并继续提供服务,保证了服务主机宕机的情况下,备份主机可以继续提供服务。

进一步地,基于第一或第二实施例提出本发明虚拟磁盘备份装置的第三实施例,在本实施例中,参照图7,所述虚拟磁盘备份装置100还包括:

确定模块40,用于在接收到云服务器发送的虚拟磁盘迁移指令时,基于所述虚拟磁盘迁移指令确定目的服务主机;

迁移模块50,用于将本地虚拟磁盘迁移至确定的所述目的服务主机;

所述发送模块30,还用于在检测到本地虚拟磁盘迁移完成时,通过所述同步服务器程序将迁移完成指令发送至所述备份主机,以供所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,并建立与所述目的服务主机的通信连接,以继续进行虚拟磁盘的备份服务。

在本实施例中,所述云服务器在检测到虚拟磁盘迁移请求时,此时为了保证服务主机中的虚拟机可以正常运行,需要将所述服务主机的虚拟机迁移到其它服务主机中,以实现虚拟机的在线迁移。本实施例中,所述虚拟磁盘迁移请求的触发方式包括:服务主机需要使用大量内存时,触发虚拟磁盘迁移请求;或者,服务主机cpu的负载过大时,触发虚拟磁盘迁移请求。

应当理解,由于在选择备份主机时,可以在集群中进行选择,同理,在服务主机宕机时,将服务主机中的虚拟机迁移到其它服务主机时,同样可以在集群中,选择任一台物理机作为待切换的目的服务主机进行虚拟机的迁移。在选择好目的服务主机之后,即可发送虚拟磁盘迁移指令至所述服务主机,以通知所述服务主机将虚拟机进行在线迁移。

在本实施例中,确定模块40在接收到所述云服务器发送的虚拟磁盘迁移指令时,确定目的服务主机,然后迁移模块50根据vm迁移截获子模块将本地虚拟磁盘迁移至确定的所述目的服务主机,在检测到本地虚拟磁盘迁移完成时,所述发送模块30将迁移完成指令发送至同步服务器程序,再通过所述同步服务器程序将迁移完成指令发送至所述备份主机。

所述备份主机通过所述同步客户端程序接收到所述迁移完成指令时,关闭与所述服务主机的通信连接,也就是关闭与所述服务主机中同步服务器程序的通信连接;同时,建立与所述目的服务主机中同步服务器程序的通信连接,以继续进行虚拟磁盘的备份服务。

进一步地,为了保证服务主机将虚拟机迁移到目的服务主机时,可以迁移成功。所述云服务器还会获取所述目的服务主机的地址信息和虚拟机信息,并将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以供所述备份主机基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;并且,所述云服务器还会通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

也就是说,所述云服务器发送虚拟磁盘迁移指令至服务主机之前,根据确定目的服务主机,获取所述目的服务主机的地址信息和虚拟机信息,然后将所述目的服务主机的地址信息和虚拟机信息发送至所述备份主机,以便所述备份主机后续基于所述目的服务主机的地址信息和虚拟机信息,与所述目的服务主机建立通信连接;同时,所述云服务器还会通知所述目的服务主机有虚拟机接入,以供所述目的服务主机启动同步服务器程序,便于通过所述同步服务器程序与所述备份主机建立通信连接。

在本实施例中,实现了虚拟机的在线迁移,并且,在虚拟机进行在线迁移时,本地虚拟磁盘的虚拟机可以在集群中的任一个物理机间进行迁移,提高了云计算服务系统的可维护性,更利于实现负载均衡。

本发明中,服务主机和备份主机之间不再是peer-to-peer(点对点,对等网络)的映射关系,而是全相联的映射关系,一个服务主机的不同虚拟磁盘可以由不同备份主机进行备份,这样当某一台使用本地虚拟磁盘的虚拟机从某一台服务主机迁移到新的服务主机上时,该虚拟机的虚拟磁盘仍然由原备份主机进行备份服务,提高了数据备份的灵活性。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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