一种分布式文件系统架构下的文件管理方法及装置与流程

文档序号:23852934发布日期:2021-02-05 14:41阅读:60来源:国知局
一种分布式文件系统架构下的文件管理方法及装置与流程

[0001]
本发明涉及分布式文件系统技术领域,更为具体来说,本发明为一种分布式文件系统架构下的文件管理方法及装置。


背景技术:

[0002]
目前,随着分布式文件系统的不断发展,用户能够获取的数据往往可呈指数倍地增长。其中,hdfs(hadoop distributed file system,hadoop分布式文件系统)属于分布式计算中数据存储管理的基础,具有高容错、高可靠性、高获得性、高吞吐率、高可扩展性等优点,能为海量数据提供可靠的存储,为超大数据集(large data)应用提供了便利。但是,hdfs中经常会出现小文件冗余的问题,目前的解决方案往往是小文件冗余出现后对存储器进行清理;然而这种解决方案仍会严重影响对hdfs的使用,在冗余问题出现后至冗余问题解决前这段时间内,存储器的性能会很差。可见常规的方案必然会影响到用户的使用和体验,亟需得到改进。


技术实现要素:

[0003]
为解决小文件冗余的现有处理方式存在的一段时间内存储器性能差和用户体验不好等问题,本发明创新地提供了一种分布式文件系统架构下的文件管理方法及装置,以解决现有技术存在的至少一个问题。
[0004]
为实现上述技术目的,本发明公开了一种分布式文件系统架构下的文件管理方法,该文件管理方法可包括但不限于如下的步骤:遍历分布式文件系统中的目标存储器内所有文件,并在遍历的过程中获取各个文件的文件属性信息和统计所述目标存储器中文件的数量;读取目标存储器的存储属性信息,然后利用所述文件属性信息、所述存储属性信息及所述目标存储器中文件的数量生成目标存储器的不饱和因子;其中,所述不饱和因子用于表征目标存储器的文件冗余状态;发出与所述不饱和因子所处的范围相对应的控制指令。
[0005]
进一步地,所述发出与所述不饱和因子所处的范围相对应的控制指令的步骤包括:判断所述不饱和因子所处的范围;在所述不饱和因子处于第一数值范围内时发出延迟返回控制指令,以在间隔设定时长后重新执行遍历所述目标存储器的步骤;在所述不饱和因子处于第二数值范围内时发出预警提示控制指令,以告知用户目标存储器有发生文件冗余的风险;在所述不饱和因子处于第三数值范围内时发出报警提示控制指令,以告知用户目标存储器已发生文件冗余的问题;且第一数值范围内各数值大于或等于第二数值范围内各数值大于或等于第三数值范围内各数值。
[0006]
进一步地,在所述不饱和因子处于所述第二数值范围内或所述第三数值范围内时还包括发出文件合并控制指令的步骤;将文件属性信息的相似度大于第一阈值且合并后形成的新文件大小大于第二阈值的多个文件进行合并。
[0007]
进一步地,将多个文件进行合并的步骤前还包括:对所有文件进行归类处理,并使
待合并的多个文件处于同一目录下。
[0008]
进一步地,在所述不饱和因子处于所述第二数值范围内或所述第三数值范围内时还包括如下步骤:基于各个文件大小对目标存储器内所有文件进行排序;按照由小到大的顺序将目标存储器中的文件转存到其他存储器,直至所述不饱和因子处于第一数值范围内。
[0009]
进一步地,所述其他存储器包括其他物理位置上的存储器或在所述目标存储器上划分出的虚拟存储器。
[0010]
进一步地,还包括设置倒计时器的步骤;检测到所述目标存储器首次运行时启动所述倒计时器;在所述倒计时器倒计时结束时发出遍历启动指令,以开始遍历分布式文件系统中的目标存储器内所有文件。
[0011]
为实现上述技术目的,本发明还公开了一种分布式文件系统架构下的文件管理装置,该文件管理装置可包括但不限于目标存储器遍历模块、不饱和因子生成模块及控制命令发出模块。
[0012]
目标存储器遍历模块,用于遍历分布式文件系统中的目标存储器内所有文件,并用于在遍历的过程中获取各个文件的文件属性信息和统计所述目标存储器中文件的数量。不饱和因子生成模块,用于读取目标存储器的存储属性信息,并用于利用所述文件属性信息、所述存储属性信息及所述目标存储器中文件的数量生成目标存储器的不饱和因子。其中,所述不饱和因子用于表征目标存储器的文件冗余状态。控制命令发出模块,用于发出与所述不饱和因子所处的范围相对应的控制指令。
[0013]
为实现上述技术目的,本发明还公开了一种计算机设备,所述计算机设备可包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行本发明中任一实施例所述的分布式文件系统架构下的文件管理方法的步骤。
[0014]
为实现上述技术目的,本发明还公开了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明任一实施例所述的分布式文件系统架构下的文件管理方法的步骤。
[0015]
本发明的有益效果为:与现有技术相比,本发明创新地提供了不饱和因子作为衡量小文件冗余的指标,而且能够在小文件冗余发生前进行预警和在小文件冗余刚出现时进行报警,避免了问题发生后再清理存储器导致影响用户正常的使用等问题的出现,具有衡量准确、“防微杜渐”及极大提升用户使用体验等技术效果。
[0016]
本发明还能够根据分布式系统实际的生产或测试环境调整监控指标和预警指标,从而使本发明更加符合实际的业务需求,所以本发明还具有小文件冗余指标调整灵活、应用环境适应性较强等突出优点。
附图说明
[0017]
图1示出了本发明一些实施例的分布式文件系统架构下的文件管理方法的流程示意图。
[0018]
图2示出了本发明一些实施例的小文件冗余的预警方法的流程示意图。
[0019]
图3示出了本发明一些实施例的分布式文件系统架构下的整个管理系统的框架示
意图。
[0020]
图4示出了本发明一些实施例的计算机设备的内部结构框图。
[0021]
图5示出了本发明一些实施例的实施环境图。
具体实施方式
[0022]
下面结合说明书附图对本发明提供的一种分布式文件系统架构下的文件管理方法及装置进行详细的解释和说明。
[0023]
如图1所示,本发明一些实施例提供了一种分布式文件系统架构下的文件管理方法,用于衡量和判断是否发生文件冗余的问题,具体用于判断hdfs中小文件冗余的问题,该文件管理方法可包括但不限于如下的步骤。
[0024]
s1,遍历分布式文件系统中的目标存储器内所有文件,并在遍历的过程中获取各个文件的文件属性信息和统计目标存储器中文件的数量。其中,文件属性信息可包括但不限于文件的大小信息、文件的格式信息、文件的编码信息、文件的安全信息、文件的加密信息、文件的版本信息、文件的存储路径信息、文件的名称信息、文件的来源信息、文件的最新修改情况信息等。本发明一些实施例可采用递归拉取数据方式读取各个文件的属性信息,可达到全面且高效地对目标存储器中的文件进行逐个地访问;更为具体地,对于目标存储器的首层目录,遍历该首层目录下的所有文件和/或文件夹,对于文件件情况,进入各个文件夹后在遍历当前文件夹下的所有文件和/或子文件夹,对于非首层目录再次出现文件夹的情况则继续访问,从而能够实现递归拉取过程,直至目标存储器内存在的所有文件均被当前遍历过程访问过,在访问过程中可通过记数方式统计目标存储器中的文件数量。
[0025]
s2,读取目标存储器的存储属性信息,然后利用文件属性信息、存储属性信息及目标存储器中文件的数量生成目标存储器的不饱和因子;其中,不饱和因子用于表征目标存储器的文件冗余状态。本发明主要是为了解决小文件冗余带来的目标存储器性能下降的问题,所以不饱和因子用于表征目标存储器的小文件冗余状态。本发明一些实施例中的不饱和因子可采用但不限于如下的实施方式进行计算:
[0026][0027][0028][0029]
其中,h表示不饱和因子,n表示目标存储器中文件的数量,h
i
表示目标存储器中第i个文件的饱和度,h
avg
表示目标存储器中所有文件平均饱和度,b
i
表示第i个文件的大小,b表示标准数据块大小。
[0030]
应当理解的是,存储器的标准数据块(block)大小往往在出厂时已经固定,所以目标存储器的标准数据块大小是一个已知确定值。
[0031]
s3,发出与不饱和因子所处的范围相对应的控制指令。在本发明一些实施例中,发出与不饱和因子所处的范围相对应的控制指令的步骤包括:判断不饱和因子所处的范围以及根据范围发出对应的指令。具体说明如下。
[0032]
s300,在不饱和因子处于第一数值范围内时发出延迟返回控制指令,以在间隔设定时长后重新执行遍历目标存储器的步骤。本发明一些实施例中的设定时长例如可以是三天,从而可达到检测目的的同时节约设备资源。
[0033]
s301,在不饱和因子处于第二数值范围内时发出预警提示控制指令,以告知用户目标存储器有发生文件冗余的风险。提醒用户应当引起足够的重视,目标存储器随时有可能产生小文件冗余问题。如图2所示,本发明一些实施例可在管理员手动操作下进行预警:在管理员向服务器输入想要检测的路径(对应目标存储器地址)后,本发明能够递归查找目标存储器中各个文件,进而可获取文件、目标存储器的信息,包括各个小文件及其信息;然后基于本发明提供的不饱和因子计算方式确定当前目标存储器的不饱和因子,以上述第二数值范围作为监控指标,如果计算得到的不饱和因子落在第二数值范围内(即预警规则),则进行预警,而且可展示预警指标和预警结果,供管理员和/或用户直观地查看本发明达到的效果。
[0034]
s302,在不饱和因子处于第三数值范围内时发出报警提示控制指令,以告知用户目标存储器已发生文件冗余的问题。以提醒管理员和/或用户应当采取一定的措施,有效解决当前发生的小文件冗余问题。本发明一些实施例面对小文件冗余问题时,可停止小于500k的文件写入目标存储器,在小文件冗余问题解决前避免问题进一步恶化或避免解决时间过长情况发生。因而在本发明某些实施例中,可将小于500k的文件视为小文件。其中,第一数值范围内各数值大于或等于第二数值范围内各数值大于或等于第三数值范围内各数值。在本发明一些实施例中,第一数值范围例如可以为(0.5,1),第二数值范围为(0.25,0.5],第三数值范围为(0,0.25]。
[0035]
本发明一些改进后的文件管理方法中还可包括在先设置倒计时器的步骤,可具体包括如下步骤s01和步骤s02。
[0036]
s01,检测到目标存储器首次运行时启动倒计时器。目标存储器首次运行例如可以是设备出厂后或重新格式化后第一次运行,通过启动倒计时器方式实现在一段时间后执行后续的操作。
[0037]
s02,在倒计时器倒计时结束时发出遍历启动指令,以开始遍历分布式文件系统中的目标存储器内所有文件,即开始执行上述步骤s1。可见本发明一些实施例能够通过设置倒计时器方式尽早地对目标存储器进行检查,从而能够大概率避免目标存储器的不饱和因子进入第三数值范围前进行有效地预警,即在发生小文件冗余问题前降低其发生的可能性,达到“防微杜渐”等技术目的。
[0038]
作为进一步改进的技术方案,本发明的一些实施例在不饱和因子处于第二数值范围内或者第三数值范围内时还包括发出文件合并控制指令的步骤。将多个文件进行合并的步骤前还包括对所有文件进行归类处理,并使待合并的多个文件处于同一目录下,同一目录例如可以是同一根目录或同一子目录等;将文件属性信息的相似度大于第一阈值且合并后形成的新文件大小大于第二阈值的多个文件进行合并,在本发明一些实施例中,被合并在一起的多个文件例如需满足如下条件:多个文件的文件属性信息的相似度大于第一阈值,且多个文件合并后形成的新文件大小大于第二阈值,第一阈值例如可以是85%,第二阈值例如可以是128mb。基于如上改进后的技术方案,本发明能够通过相似的小文件合并存储的方式调节不饱和因子的所处范围,以能够在一定程度上自动解决小文件冗余的问题,提
高hdfs系统的访问效率的同时极大地提升了用户体验。本实施例中待合并小文件优选处在一个目录中,相比于跨目录文件合并,可见本实施例通过相似的小文件归类的方式减少了数据处理时间、提高小文件合并效率,以使目标存储器尽快地恢复非冗余状态。其中,文件属性信息可包括文件的存储路径信息以及文件的大小信息、文件的格式信息、文件的编码信息、文件的安全信息、文件的加密信息、文件的版本信息、文件的名称信息、文件的来源信息、文件的最新修改情况信息中的多种。另外,文件的合并可包括但不限于将多个小文件压缩成一个文件的步骤,而且本发明可优选采用压缩速度最快(该情形压缩量相对较小、压缩后形成文件相对大)的方式进行多个文件的压缩,从而最快地完成文件合并过程,并能够使合并后的文件占据相对较大的存储空间,进一步避免小文件冗余的问题;然后返回步骤s1。
[0039]
在本发明另一些实施例中,在不饱和因子处于第二数值范围内或第三数值范围内时还可包括如下步骤:基于各个文件大小对目标存储器内所有文件进行由小到大或由大到小排序,然后可根据排序结果为各个文件设置优先级,本实施例可以按照由小到大的顺序将目标存储器中的文件转存到其他存储器,即越小的文件优先级越高、越大的文件优先级越低,在转存过程中可按照一定周期(例如9s)计算不饱和因子,直至不饱和因子处于第一数值范围内,以最终达到尽快解决小文件冗余的问题。更为具体地,其他存储器可包括但不限于其他物理位置上的存储器或者在目标存储器上划分出的虚拟存储器。对于目标存储器上划分出的虚拟存储器的方案,本实施例能够设置将虚拟存储器部分不作为当前目标存储器的组成,那么当前的目标存储器容量=初始的目标存储器容量-虚拟存储器容量,进而计算不饱和因子时统计的文件也是当前的目标存储器中的各个文件;虚拟存储器作为从初始的目标存储器上划分出的暂存区,本实施例中在发生小文件冗余的时间段内只可允许向暂存区内写入数据而不能从中取出数据,所以该方式可在不依赖外部存储器的情况下自动地解决小文件冗余问题;然后返回步骤s1。
[0040]
本发明另一些实施例还能够提供分布式文件系统架构下的文件管理装置,该装置可包括但不限于目标存储器遍历模块、不饱和因子生成模块以及控制命令发出模块。
[0041]
目标存储器遍历模块,用于遍历分布式文件系统中的目标存储器内所有文件,并用于在遍历的过程中获取各个文件的文件属性信息和统计目标存储器中文件的数量。如图3所示,本发明一些实施例的目标存储器遍历模块可在核心读取和计算层实现,用于从hdfs层递归拉取数据;其中,可通过服务器启动目标存储器遍历模块,启动方式可以是定时启动(按时调度)或管理员手动启动;另外,目标存储器遍历模块、不饱和因子生成模块及控制命令发出模块对应的程序可通过java语言开发,当然本发明中使用的倒计时器对应的程序也可通过java语言开发得到。
[0042]
不饱和因子生成模块,用于读取目标存储器的存储属性信息,并用于利用文件属性信息、存储属性信息及目标存储器中文件的数量生成目标存储器的不饱和因子。如图3所示,本发明一些实施例不饱和因子生成模块也可在核心读取和计算层实现,基于读取的上述各参数计算出目标存储器当前的不饱和因子。其中不饱和因子用于表征目标存储器的文件冗余状态。
[0043]
控制命令发出模块,用于发出与不饱和因子所处的范围相对应的控制指令。具体地,控制命令发出模块用于在不饱和因子处于第一数值范围内时发出延迟返回控制指令,以在间隔设定时长后重新执行遍历目标存储器的步骤;控制命令发出模块用于在不饱和因
子处于第二数值范围内时发出预警提示控制指令,以告知用户目标存储器有发生文件冗余的风险;控制命令发出模块还能够用于在不饱和因子处于第三数值范围内时发出报警提示控制指令,进而告知用户目标存储器已发生文件冗余的问题;且第一数值范围内各数值大于或等于第二数值范围内各数值大于或等于第三数值范围内各数值。在本发明一些优选的实施例中,控制命令发出模块还用于在不饱和因子处于第二数值范围内或第三数值范围内时发出文件合并控制指令,从而对所有文件进行归类处理,并使待合并的多个文件处于同一目录下,将文件属性信息的相似度大于第一阈值且合并后形成的新文件大小大于第二阈值的多个文件进行合并。控制命令发出模块也能够发出文件转存指令,以基于各个文件大小对目标存储器内所有文件进行排序,按照由小到大的顺序将目标存储器中的文件转存到其他存储器,一直到不饱和因子处于第一数值范围内为止。如图3所示,本发明一些实施例的控制命令发出模块也可在核心读取和计算层实现,用于实现预警和报警、自动解决小文件冗余等等功能;其中,核心读取和计算层将预警结果、报警结果等数据传递到服务器层,进而服务器层可将相应的结果传给前端页面层进行前端展示。
[0044]
本发明另一些实施例中的文件管理装置还可包括倒计时模块,倒计时模块用于检测到目标存储器首次运行时启动倒计时器。然后倒计时器开始进行倒计时且在倒计时结束时通知控制命令发出模块,控制命令发出模块还用于在倒计时器的倒计时结束时发出遍历启动指令,以开始遍历分布式文件系统中的目标存储器内所有文件。
[0045]
如图4所示,本发明一些实施例还能够提供一种计算机设备,该设备可包括但不限于存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行本发明任一实施例中的分布式文件系统架构下的文件管理方法的步骤。该文件管理方法的步骤可包括但不限于如下的步骤:s01,检测到目标存储器首次运行时启动倒计时器;s02,在倒计时器倒计时结束时发出遍历启动指令,从而开始遍历分布式文件系统中的目标存储器内所有文件。s1,遍历分布式文件系统中的目标存储器内所有文件,并在遍历的过程中获取各个文件的文件属性信息和统计目标存储器中文件的数量;s2,读取目标存储器的存储属性信息,然后再利用文件属性信息、存储属性信息及目标存储器中文件的数量生成目标存储器的不饱和因子;其中,不饱和因子用于表征目标存储器的文件冗余状态。s3,然后可发出与不饱和因子所处的范围相对应的控制指令。在本发明一些实施例中,发出与不饱和因子所处的范围相对应的控制指令步骤包括:判断不饱和因子所处的范围;具体可以包括:s300,在不饱和因子处于第一数值范围内时发出延迟返回控制指令,以在间隔设定时长后重新执行遍历目标存储器的步骤;s301,在不饱和因子处于第二数值范围内时发出预警提示控制指令,以告知用户目标存储器有发生文件冗余的风险;s302,在不饱和因子处于第三数值范围内时发出报警提示控制指令,以告知用户目标存储器已经发生文件冗余的问题;且第一数值范围内各数值大于或等于第二数值范围内各数值大于或等于第三数值范围内各数值。如图5所示实施环境,本发明一些实施例的分布式文件系统架构下的文件管理方法例如还可在终端120上执行,可以将终端120作为服务器使用,进而可生成向计算机设备110(可具有核心读取和计算层)发出相应的命令,以实现本发明的方案。
[0046]
如图4所示,本发明还有一些实施例能够提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明任一实施例中的分布式文件系统架构下的文件管理方法的步骤。该文件管理方法的步骤可包
括但不限于:s01,检测到目标存储器首次运行时启动倒计时器;s02,在倒计时器倒计时结束时发出遍历启动指令,以开始遍历分布式文件系统中的目标存储器内所有文件。s1,遍历分布式文件系统中的目标存储器内所有文件,并在遍历的过程中获取各个文件的文件属性信息和统计目标存储器中文件的数量;s2,读取目标存储器的存储属性信息,然后利用文件属性信息、存储属性信息及目标存储器中文件的数量生成目标存储器的不饱和因子;其中,不饱和因子用于表征目标存储器的文件冗余状态。s3,然后可发出与不饱和因子所处的范围相对应的控制指令。在本发明一些实施例中,发出与不饱和因子所处的范围相对应的控制指令的步骤包括:判断不饱和因子所处的范围;具体可包括:s300,在不饱和因子处于第一数值范围内时发出延迟返回控制指令,以在间隔设定时长后重新执行遍历目标存储器的步骤;s301,在不饱和因子处于第二数值范围内时发出预警提示控制指令,以告知用户目标存储器有发生文件冗余的风险;s302,在不饱和因子处于第三数值范围内时发出报警提示控制指令,以告知用户目标存储器已经发生文件冗余的问题;且第一数值范围内各数值大于或等于第二数值范围内各数值大于或等于第三数值范围内各数值。
[0047]
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0048]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。所述计算机可读存储介质可以是非易失性,也可以是易失性的。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram,random access memory),只读存储器(rom,read-only memory),可擦除可编辑只读存储器(eprom,erasable programmable read-only memory,或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom,compact disc read-only memory)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0049]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga,programmable gate array),现场可编程门阵列(fpga,field programmable gate array)等。
[0050]
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0051]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0052]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1