高效数据恢复的制作方法

文档序号:6376747阅读:410来源:国知局
专利名称:高效数据恢复的制作方法
技术领域
本发明涉及数据处理,尤其涉及高效数据恢复。
背景技术
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行专门的任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。因此,软件应用及其对应的用户生成的数据对于用户和公司往往非常有价值。在许多情况下,这种应用数据被备份在其它(远程)计算系统上。数据备份通常储存每个数据文件的副本。当随着时间对这些文件作出改变,备份盖写先前储存的备份数据以确保备份·数据是最新的。随着时间推移且越来越多的用户创建并编辑数据,这些数据备份可能变得愈加大。处理并传输这些大量数据可能变得繁重。

发明内容
此处描述的实施例涉及使用自定义模式定位并还原已备份的项,并高效传输恢复数据。在一实施例中,计算机系统定义一模式,该模式提供备份数据集中的数据搜索和检索。该模式为每个数据库项储存可搜索属性,并利用一文件系统来为备份集的数据项储存文件系统元数据。该计算机系统接收寻找备份数据集中的数据项的请求,并访问该模式,来从已储存的可搜索的属性中确定,备份数据集中的哪些恢复点包括被请求的数据项。该计算机系统还从备份数据集中的已确定的恢复点还原被请求的数据项。在另一实施例中,计算机系统从用户接收要从一组数据备份中的指定恢复点恢复的各备份数据项的指示。该计算机系统计算对应于每个用户指定备份数据项的校验和数据,并将计算出的用户指定备份数据文件的校验和数据与相关于已经在用户的计算机系统上的数据项的校验和数据进行比较,以确定要把备份数据项的哪些片段还原给用户。该计算机系统还从数据备份接收那些已备份的数据项,对于它们校验和还未存在于用户的计算机系统上,并将所接收的备份数据项与用户的现存数据项结合以完整地恢复用户数据。提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。


为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中图I示出了计算机体系结构,本发明的实施例可运行在其中,包括使用自定义模式定位并还原已备份项。图2示出了使用自定义模式定位并还原已备份项的示例性方法的流程图。图3示出了用于高效传输恢复数据的示例性方法的流程图。图4示出了替代的计算机体系结构实施例,其中恢复数据从备份位置被高效地传·送到恢复目标。
具体实施例方式此处描述的实施例涉及使用自定义模式定位并还原已备份的项,并高效传输恢复数据。在一实施例中,计算系统定义一模式,该模式提供备份数据集中的数据搜索和检索。该模式为每个数据库项储存可搜索属性,并利用一文件系统来为备份集的数据项储存文件系统元数据。该计算机系统接收寻找备份数据集中的数据项的请求,并访问该模式,来从已储存的可搜索的属性中确定,备份数据集中的哪些恢复点包括被请求的数据项。该计算机系统还从备份数据集中的已确定的恢复点还原被请求的数据项。在另一实施例中,一计算机系统从用户接收要从一组数据备份中的指定的恢复点恢复的各备份数据项的指示。该计算机系统计算对应于每个用户指定备份数据项的校验和数据,并将计算出的用户指定备份数据文件的校验和数据与相关于已经在用户的计算机系统上的数据项的校验和数据进行比较,以确定要把备份数据项的哪些片段还原给用户。该计算机系统还从数据备份接收那些已备份的数据项,对于它们校验和还未存在于用户的计算机系统上,并将所接收的备份数据项与用户的现存数据项结合以完整地恢复用户数据。以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是在一个动作被执行之前因为该动作依赖于另一动作的完成而需要的情况。本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或储存计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。以数据形式储存有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质计算机存储介质和传输介质。计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM)、或其它类型的存储器的固态驱动器(SSD)、或者其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码装置且可被通用或专用计算机访问的任何其他介质。“网络”被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括如下的网络所述网络可以用于运送计算机可执行指令形式或数据结构形式的数据或所期望的程序代码装置,并且可以被通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易 失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。计算机可执行(或计算机可解释)指令例如包括致使通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明还可在分布式系统环境中实践,在该环境中本地和远程计算机系统通过网络(经由硬连线数据链路、无线数据链路、或者经由硬连线和无线数据链路的组合)链接起来,每个计算机系统都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。图I示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构100包括客户机计算机系统101以及数据存储130。这些计算机系统可以是本地的或分布式计算机系统,并且可以包括或使用云计算系统。计算机系统可被配置为与其它计算机系统和/或其它设备通信。计算机系统可包括用于执行专门任务的各种模块。这些模块将在下面结合各种方法和系统来讨论。如上所指示的,计算机系统用户可为他们的数据创建备份。这些备份通常包括操作系统、一个或多个应用以及各种用户生成的文件和设置。这里描述的一些实施例包括高度优化的目录模式,以允许跨备份集的对项的高效搜索以及数据项的元数据从专用备份集中的提取。各实施例还描述了高效算法,其使用在恢复目标上或接近恢复目标的现存数据(恢复目标是数据要被还原到的计算机系统)来最小化来自备份存储(例如,数据存储130中的备份数据集131)的数据传输。该项级别目录可被分成2个部分一个储存项在一组数据库表中的可搜索属性(例如,名称、最后修改时间、大小、作者等),另一个为作为备份集的部分的物理文件储存文件系统元数据。第一部分提供针对恢复项的高效浏览和搜索特性。第二部分在备份期间帮助高效存储,并在恢复时帮助物理文件的元数据的提取。这两部分都将在下文中更详细描述。在一些情况中,储存在项属性目录中的项本质上是分层的。也就是说,项具有父子关系。代表父的项(例如,目录、子目录等)可储存在ParentItem (父项)表中,而子可储存在ChildItem (子项)表中。由于每个父项可具有多个子,关于父的信息不重复且只储存一次。在一些实施例中,特定项可以以多个版本出现。例如,c:\files目录下的文件"document, txt”可作为注明日期的备份(例如备份BI、B2等)的部分来被备份。文件可继续停留直到备份B100。那么,当用户试图浏览c: \files下的文件寻找备份B50来恢复时,文件document, txt出现在列表中。为了实现这一行为,ParentItem和ChildItem表中的每个项具有StartTime (开始时间)和EndTime (结束时间)。StartTime指示项出现的第一时间,而EndTime指示项变得无效(例如被删除)的时间。这确保了每个项的条目不在每个版本中重复,并且因此,表内用于存储信息的空间最小。该模式还帮助保持该表尽可能瘦,它进而有助于更好的查询表现。该模式可以高效地展示浏览器视图,在那里可看见一时间范围内的全部项的累积列表,因此避免用户需要去到每个备份集并分开浏览。
在一些情况中,关于子项的扩展信息可被储存在附加表中。附加表使用专用于已储存并被查询的属性的类型的模式。如此,扩展信息允许实现该扩展信息的搜索和恢复功能。例如,软件协作程序可在专门的恢复搜索UI中列举文档级特性和其它列表级详情。附加地或可替换地,对于数据文件,扩展信息可包括修改的时间、改变的时间、文件大小和任何其它文件系统属性。这些也可被呈现在搜索和恢复用户界面中。此外,基于子项数据源的上下文,子项信息可被扩展以添加专用子项特性。储存在ParentItem表中的路径信息可以是32K字符大的,或在一些实施例中更长。该信息被分成两个部分,第一部分包含第一路径的前(例如400个)字符,其余为第二部分。在大多数情况中,项路径的长度小于400个字符。这个机制有助于将第一部分包括为索引的部分,其有助于更快的查询响应。对于路径大于400字符长度的其余情况,同样通过将前400个字符作为索引的部分,查询被缩减为仅针对那些前400字符匹配查询的很少的行。文件元数据目录可被维持为无数据(dataless)虚拟硬盘(VHD)。无数据虚拟硬盘VHD是在那里创建带有全部元数据和属性的文件,但不为任何文件写数据流的虚拟硬盘。使用无数据VHD允许文件系统它本身被用作文件元数据的目录格式。在恢复期间,该无数据VHD可被挂载,且使用文件系统的还原API来为要恢复的文件提取元数据。这相比于将文件系统元数据转换到另一(自定义)格式的文件元数据的其它格式来说更高效。这些自定义格式在每次新特性被引入文件系统时需要被改变。使用无数据VHD允许系统在无数据VHD上将相同文件系统版本用作源,并避免处理任何有关自定义格式的兼容问题。为了优化恢复期间的数据传输,提供了一种算法,它被设计来起到源数据是全部还是部分可用的作用。该算法可被应用在各种不同情形,包括以下1)用户需要获得元数据的更老的版本,2)用户需要回复到数据破坏之前的状态,3)在故障或删除之后,用户需要重新开始恢复;以及4)用户需要通过窄的带宽和/或高等待时间的连接来将已备份数据恢复到恢复目标。通过仅恢复元数据中与备份数据不匹配的那些部分来优化数据传输,而不是完全下载全部用户文件。为备份集中的数据并为恢复目标中已经可用的数据计算校验和值。通过仅下载不具有与恢复目标中已经可用的相同校验和的数据块的数据来优化恢复。这个算法同样也被用来将数据恢复到替换位置。(如果校验和匹配)恢复程序可将匹配数据块从原始位置智能复制,并将备份数据仅用于不具有与原始位置中的校验和匹配的任何块的块。下面,分别参考图2和图3的方法200和300,更详细地解释这些概念。考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地理解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。图2示出了使用自定义模式定位并还原已备份项的方法200的流程图。现在将频繁参照图I的环境100的组件和数据来描述方法200。方法200包括定义模式的动作,该模式被配置来提供备份数据集中的数据搜索和检索,其中该模式为每个数据库项储存可搜索属性,并利用文件系统为备份集的数据项储存文件系统元数据(动作210)。例如,自定义模式110可被用户105或一组用户定义。模式可被设计来提供备份数据集131的数据搜索和检索。该模式本身包括每个数据库项(例如文件或文件集)的各种可搜索属性111。该模式可使用计算机系统101上的本地文件系统来为不同备份集的数据项储存文件系统元数据112。可搜索属性可包括数据部分第一次被储存在备份集中的时间(即,第一恢复点)的指示。可搜索属性还可包括数据部分被最后一次访问(或数据项被删除)的时间(即,最后的恢复点)。可使用访问模式以显示备份集的一个范围的用户界面,任何给定的数据项是备份集的部分。因此,用户能够在用户界面中指定数据项,并且用户界面可显示备份数据集的一个列表或范围,该项是备份数据集的部分。文件系统元数据112可包括父信息和文件名信息。父信息可包括驱动和路径信息,包括目录和子目录。在一些实施例中,对于大于400字符的数据路径,父信息可被分成不同文件。这样被分成两个部分的路径,两个部分的第一部分在长度上被限制到预定义数据长度。这一长度可以是400字符,或实质上任何其它字符数。父信息仅为储存在父以下的全部文件储存一次。避免数据路径冗余提高了效率。父信息和文件名信息可储存在分开的表中。在一些情况中,文件系统元数据112被储存在无数据虚拟硬盘驱动器中。如上面所解释的,无数据虚拟硬盘驱动器被配置成储存与它们对应的元数据和属性一起创建的数据文件,但不储存实际数据文件数据。在数据恢复期间,无数据虚拟硬盘驱动器被挂载,且文件系统应用程序编程接口(API)可被实现,以提取要(从备份数据集131中)恢复的数据项的元数据。返回到图2,方法200包括接收要在至少一个备份数据集中寻找一个或多个数据项的请求的动作(动作220)。例如,请求接收模块115可从用户105接收数据请求106,请求要在备份数据集131中找到某些指定数据项。模式110可被恢复点确定模块访问,因此它可以从已储存的可搜索属性111中确定,备份数据集中的哪些恢复点132包括被请求的数据项(动作230)。例如,如果文件被包括在备份B25 - B50中,备份B50包括文件的最新版本,恢复点确定模块将向数据还原模块125发送恢复点B25 - B50,数据还原模块125随后从备份数据集内的被确定的恢复点还原被请求的数据项126(动作240)。如此,模式110允许储存最小量的数据,并允许专用的备份项来以高效方式被搜索和恢复。图3示出了用于高效传输恢复数据的方法300的流程图。现在将频繁参照图4的环境400的组件和数据来描述方法300。方法300包括从用户接收要从一组数据备份中的指定恢复点恢复的一个或多个备份数据项的指示的动作(动作310)。例如,客户机计算机系统401可从用户405接收数据恢复请求406。数据恢复请求可指定要从已备份数 据项431内的已指定的恢复点恢复的各种备份数据项407。该已备份数据项可被储存在数据存储430中,可被客户机计算机系统访问(或直接附加到其上)。方法300还包括计算对应于用户指定的备份数据项的每一个的校验和数据的动作(动作320)。例如,校验和计算模块410可计算对应于每一个用户指定的备份数据项407的校验和411。被计算的校验和可被加版本,这样不同的校验和对应数据项的不同版本。备份数据也可被加版本,这样多个不同版本的数据项可被备份。这些不同的已备份数据项的每一个可具有其自己唯一的(加版本的)校验和。当使用这些加版本的校验和时,备份数据可从指定备份数据版本中还原。以此方式,相关于给定版本的全部文件可以被一起还原。方法300包括将用户指定的备份数据文件的计算出的校验和数据与相关联于已经在用户计算机系统上的数据项的校验和数据进行比较,以确定备份数据项的哪些片段要被还原给用户的动作(动作330)。例如,校验和比较模块415可将计算出的校验和411与一个或多个现存校验和412进行比较。现存校验和可对应于已经在用户计算机上的数据文件。比较可被用来确定哪些数据项已经在用户计算机上。接着,一旦确定哪些数据文件还不在用户计算机上,可从已备份数据项431中还原其校验和还未存在于用户计算机系统上的那些已备份数据项(例如,所选数据项432)(动作340)。这样,仅将不具有带有相同校验和的数据块的数据下载到用户计算机系统。方法300还包括将所接收到的备份数据项与用户的现存数据项结合以使得用户的数据完全恢复的动作(动作350)。一旦所选择的数据项432已经被接收,数据结合模块420可将现存数据与所接收到的数据结合以创建用户的完全还原的数据421。在一些情况中,已还原的数据项包括整个数据卷的数据文件。在数据恢复期间,如果恢复被删除或因系统故障而以其他方式停止,可以从故障或删除点重新开始。此外,备份数据可被还原到其它位置,而非用户计算机系统上的原始位置。例如,备份数据可被还原到不同于数据从其原始地被备份的计算机系统的其它(也许远程)计算机系统。因此,提供了使用自定义生成模式来定位并还原已备份项的方法、系统和计算机程序产品。此外,提供了通过仅传输还未在用户计算机系统上的数据来高效传输恢复数据的方法、系统和计算机程序产品。本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。·
权利要求
1.一种在包括多个计算系统的计算机联网环境中在包括至少一个处理器和存储器的计算机系统处,用于使用自定义模式来定位并还原已备份项的计算机实现的方法,所述方法包括 定义模式的动作,所述模式被配置来提供备份数据集中的数据搜索和检索,其中所述模式为每个数据库项储存可搜索属性,并利用文件系统为所述备份集的数据项储存文件系统元数据; 接收在所述备份数据集的至少一个中寻找一个或多个数据项的请求的动作; 访问所述模式以从所储存的可搜索属性中确定所述备份数据集中的哪些恢复点包括所请求的数据项的动作;以及 从所述备份数据集内的已确定的恢复点还原所请求的数据项的动作。
2.如权利要求I所述的方法,其特征在于,所述可搜索属性包括以下至少一个时间的指示数据部分第一次储存在所述备份集中的时间,和数据部分最后一次被访问的时间。
3.如权利要求2所述的方法,其特征在于,使用所述模式的用户界面显示所述备份集的一个范围,其中所述数据部分是所述备份集的部分。
4.如权利要求2所述的方法,其特征在于,所述用户界面为每个数据项示出了第一恢复点和最后一个恢复点。
5.如权利要求I所述的方法,其特征在于,文件系统元数据包括父信息和文件名信息。
6.如权利要求5所述的方法,其特征在于,所述父信息和文件名信息储存在分开的表中。
7.如权利要求5所述的方法,其特征在于,所述父信息包括被分成两个部分的路径,所述两个部分的第一部分在长度上被限制为预定义数据长度。
8.如权利要求5所述的方法,其特征在于,关于子项的已扩展信息的一个或多个部分被储存在附加表中,所述附加表使用专用于所储存和所查询的属性类型的模式,所述已扩展信息允许实现所述已扩展信息的搜索和恢复功能。
9.如权利要求5所述的方法,其特征在于,子项信息基于所述子项的数据源的上下文被扩展,以添加一个或多个专用子项特性。
10.如权利要求I所述的方法,其特征在于,所述文件系统元数据被储存在无数据虚拟硬盘驱动器中,所述无数据虚拟硬盘驱动器被配置来储存与数据文件对应的元数据和属性一起创建的数据文件,但不储存实际数据文件的数据。
11.如权利要求10所述的方法,其特征在于,在数据恢复期间,所述无数据虚拟硬盘驱动器被挂载,且实现文件系统应用程序编程接口来提取要恢复的所述数据项的元数据。
12.一种用于实现用于高效传输恢复数据的方法的计算机程序产品,所述计算机程序产品包括其上储存有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在被计算系统的一个或多个处理器执行时使得所述计算系统执行所述方法,所述方法包括 从用户接收要从一组数据备份中的指定恢复点恢复一个或多个备份数据项的指示的动作; 计算对应于每个用户指定备份数据项的校验和数据的动作; 将用户指定的备份数据文件的计算出的所述校验和数据与相关联于已经在用户计算机系统上的数据项的校验和数据进行比较,以确定备份数据项的哪些片段要被还原给用户的动作; 从至少一个数据备份接收校验和还未存在于所述用户计算机系统上的那些已备份数据项的动作;以及 将所接收到的备份数据项与用户的现存数据项结合,以使得用户的数据完全恢复的动作。
13.如权利要求12所述的计算机程序产品,其特征在于,所述备份数据和校验和被加版本。
14.如权利要求13所述的计算机程序产品,其特征在于,所述备份数据从指定的备份数据版本中被还原。
15.一种计算机系统,包括 一个或多个处理器; 系统存储器; 其上储存有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于使用自定义模式定位和还原已备份项的方法,所述方法包括以下 定义模式的动作,所述模式被配置来提供备份数据集中的数据搜索和检索,其中该模式为每个数据库项储存可搜索属性,并利用文件系统为备份集的数据项储存文件系统元数据,并且其中所述文件系统元数据被储存在无数据虚拟硬盘驱动器中,所述无数据虚拟硬盘驱动器被配置来储存与数据文件对应的元数据和属性一起创建的数据文件,但不储存实际数据文件的数据; 接收在所述备份数据集的至少一个中寻找一个或多个数据项的请求的动作; 访问所述模式以从所储存的可搜索属性中确定所述备份数据集中的哪些恢复点包括所请求的数据项的动作;以及 从所述备份数据集内的已确定的恢复点还原所请求的数据项的动作,其中在数据恢复期间,所述无数据虚拟硬盘驱动器被挂载,且文件系统应用程序编程接口可被实现,以提取要恢复的数据项的元数据。
全文摘要
本发明涉及高效数据恢复。各实施例涉及使用自定义模式定位并还原已备份的项,并高效传输恢复数据。在一实施例中,计算机系统定义一模式,该模式提供备份数据集中的数据搜索和检索。该模式为每个数据库项储存可搜索属性,并利用一文件系统来为备份集的数据项储存文件系统元数据。该计算机系统接收寻找备份数据集中的数据项的请求,并访问该模式,来从已储存的可搜索的属性中确定,备份数据集中的哪些恢复点包括被请求的数据项。该计算机系统还从备份数据集中的已确定的恢复点还原被请求的数据项。
文档编号G06F17/30GK102902601SQ20121033537
公开日2013年1月30日 申请日期2012年9月11日 优先权日2011年9月12日
发明者A·辛格拉, A·S·杰亚普拉卡什, B·K·阿加瓦拉, D·萨卡, P·V·坎佐德, A·斯里瓦斯塔瓦, V·普拉巴 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1