一种磁盘阵列的监控方法及系统的制作方法

文档序号:6779202阅读:420来源:国知局
专利名称:一种磁盘阵列的监控方法及系统的制作方法
技术领域
本发明涉及存储设备领域,尤其涉及一种磁盘阵列的监控方法及系统。
背景技术
信息技术的迅速发展对存储设备的容量和处理效率提出了越来越高的要求。磁盘 阵列技术是指把多个独立的磁盘按不同的方式组合起来形成一个磁盘组,从而提供比单个 磁盘更高的存储性能和提供数据备份,不但显著提高了数据的存储容量,且保障了用户数 据的安全性。 目前,主流的磁盘阵列一般通过主柜级联多个扩展柜来实现存储容量的扩展。 如图1所示一种双控的磁盘阵列系统中,主柜10由冗余的第一控制器11、第二控制器 12以及磁盘组、散热模块、温度传感器和电源模块等组成,其中,第一控制器ll和第二 控制器12都具有CPU(CentralProcessing Unit :中央处理器)、内存、主机通道、磁盘 通道、扩展通道和同步通道等,第一控制器11和第二控制器12可根据具体需要工作在 Active-Active(主-主)模式或者(Active-Standby (主-备)模式。每个扩展柜20由冗 余的第一扩展柜21、第二扩展柜21、磁盘组、散热模块、温度传感器和电源模块等组成,其 中,第一扩展柜21和第二扩展柜22都包括管理芯片、主机通道、磁盘通道和扩展通道等,第 一扩展柜21和第二扩展柜22的工作模式与主柜10对应。主柜10中控制器的扩展通道与 扩展柜1中扩展器的主机通道对应连接, 一个扩展柜20中控制器的扩展通道与另一个扩展 柜20中扩展器的主机通道相连,依次类推,形成主柜10与多个扩展柜20的级联模式。
为了保障磁盘阵列系统的可用性能,防止出现设备故障,主柜10需要对每个扩展 柜20上的磁盘组、散热模块、温度传感器和电源模块以及硬盘故障状态灯等组件的运行状 况进行及时、准确地监控。目前通常的形式为静态监控,即主柜10周期性向所有扩展柜20 发送查询请求,各个扩展柜20中受监控的组件通过I2C总线或者GPIO(General Purpose I即utOutput :通用输入输出口)将各自的状态信息传递给该扩展柜20中的管理芯片,管理 芯片再通过SES(SCSI Enclosure Service :)协议将状态信息传递给主柜10。
然而,静态查询的做法并没有考虑磁盘阵列系统的高度动态异构和主柜业务需求 量的差异,如果有些扩展柜20长时间没有数据访问,该扩展柜20中的磁盘组长期处于休眠 状态,其状态基本保持不变,如果主柜10仍然定期对这些扩展柜20进行监控,则不仅浪费 系统资源和能耗,而且主柜10对于磁盘组的频繁访问容易导致磁盘故障。
因此,针对一些应用环境,主柜10并没有必要对扩展柜20频繁地进行状态查询。 一种现有技术如
公开日为2006年6月24日,公开号为CN101465769A,发明名称为《双控制 器磁盘阵列的动态故障检测系统》的中国专利,揭示了由并行的主、从控制器构成的动态故 障检测系统,主、从控制器之间通过第二千兆以太网接口进行心跳故障检测,通过光纤通道 适配器进行数据同步;主、从控制器上分别加载心跳模块、信息监控模块、故障切换模块和 服务监控模块,该技术方案采用动态心跳设定机制实现了多个磁盘控制器之间的故障检测 功能,以减少系统开销。然而,该系统需要启用专门的接口作为心跳线,而且当扩展柜20数目较多时,难以根据各个扩展柜20的业务需求量调节查询周期,因此对于系统资源的节约 仍然具有一定的局限性。

发明内容
本发明所要解决的技术问题是,提供一种实现主柜对扩展柜的动态监控、节约系 统资源且保障系统运行的磁盘阵列的监控方法及系统。 本发明解决其技术问题所采用的技术方案是提供一种磁盘阵列的监控方法,用 于实现磁盘阵列中主柜对至少一个扩展柜的监控,包括以下步骤在主柜中预设扩展柜在 预定时间t。内的IO请求量阀值S。;主柜获取所述扩展柜在预定时间t。内的IO请求总量; 主柜对所述扩展柜的10请求总量与所述10请求量阀值S。进行比较,并根据比较结果调节 对所述扩展柜的状态查询周期。
主柜根据所述比较结果调节对所述扩展柜的状态查询周期的方式为 如果所述扩展柜的10请求总量小于所述10请求量阀值S。,则增大主柜对所述扩
展柜的状态查询周期;如果所述扩展柜的IO请求总量大于所述IO请求量阀值S。,则减小主
柜对所述扩展柜的状态查询周期。 —种实施方式中,主柜包括工作在主-主模式的第一控制器和第二控制器;所述 扩展柜在预定时间t。内的IO请求总量为所述扩展柜在预定时间t。内从所述第一控制器和
第二控制器接收到的IO请求量之和; 所述第一控制器或第二控制器对所述扩展柜的IO请求总量与所述IO请求量阀值 S。进行比较,并根据比较结果调节对所述扩展柜的状态查询周期。 进一步地,所述第一控制器或第二控制器根据比较结果调节对所述扩展柜的状态
查询周期之后,还包括将调节后的状态查询周期通知给对板控制器的步骤。 另一种实施方式中,主柜包括工作在主-备模式的第一控制器和第二控制器;所
述扩展柜在预定时间t。内的IO请求总量为所述扩展柜在预定时间t。内从所述第一控制器
接收到的IO请求量。 将所述扩展柜在预定时间t。内的10请求量阀值S。预设为S。 = 50 % (10PSXt。XN) ;N指所述扩展柜中磁盘组所包含的磁盘个数,IOPS指每个磁盘的每秒输出 输入频度,t。的单位为秒。 本发明还保护了一种磁盘阵列的监控系统,包括主柜和与主柜级联的至少一个扩 展柜,所述主柜包括请求量获取模块、比较模块和调节模块; 请求量获取模块用于获取扩展柜在预定时间t。内的IO请求总量,并将所述扩展 柜的10请求总量提供给所述比较模块; 比较模块中预设扩展柜在预定时间t。内的10请求量阀值S。,用于对所述扩展柜 的10请求总量与所述10请求量阀值S。进行比较,并将比较结果提供给所述调节模块;
调节模块用于根据所述比较结果调节主柜对所述扩展柜的状态查询周期。
进一步地,主柜包括工作在主-主模式的第一控制器和第二控制器,所述请求量 获取模块包括统计模块以及分设在所述第一控制器和第二控制器中的第一请求量检测模 块和第二请求量检测模块; 第一请求量检测模块和第二请求量检测模块分别用于检测所述扩展柜在预定时间t。内从第一控制器和第二控制器接收到的10请求量; 统计模块用于统计所述扩展柜在预定时间t。内从所述第一控制器和第二控制器 接收到的IO请求量之和,并将其作为所述扩展柜在预定时间t。内的IO请求总量提供给所 述比较模块。 所述第一控制器或第二控制器还包括同步模块,所述同步模块用于将调节后的状 态查询周期通知给对板控制器。 本发明还保护了一种用于磁盘阵列系统的主柜,包括请求量获取模块、比较模块 和调节模块; 请求量获取模块用于获取扩展柜在预定时间t。内的IO请求总量,并将所述扩展 柜的10请求总量提供给所述比较模块; 比较模块中预设扩展柜在预定时间t。内的10请求量阀值S。,用于对所述扩展柜
的10请求总量与所述10请求量阀值S。进行比较,并将比较结果提供给所述调节模块; 调节模块用于根据所述比较结果调节主柜对所述扩展柜的状态查询周期。 本发明的有益效果是,本发明实现了磁盘阵列系统中主柜根据扩展柜的10请求
状况对扩展柜的动态监控。当扩展柜轻负载时,增大状态查询周期以节约系统资源和能耗;
在扩展柜重负载时,减小状态查询周期以及时获取扩展柜的状态,保障了系统的安全性和
可靠性。


图1为一种双控的磁盘阵列系统的级联框图; 图2为本发明的磁盘阵列的监控方法第一种具体实施方式
流程图;
图3为本发明的磁盘阵列的监控方法第二种具体实施方式
流程图;
图4为本发明的磁盘阵列的监控系统第一种具体实施方式
框图;
图5为本发明的磁盘阵列的监控系统第二种具体实施方式
框图。
具体实施例方式
以下结合附图对本发明的具体实施方式
进行详细说明。 本发明的磁盘阵列的监控方法中,主柜10实现了对至少一个与主柜10级联的扩 展柜20的动态监控。 目前,主柜10 —般通过一个或者多个控制器实现对扩展柜20的监控,其具体方式 为主柜10中的控制器通过扩展通道与至少一个扩展柜20中扩展器的主机通道对应连接, 以实现业务数据与其他信息的交互。主柜10的控制器中预设状态查询周期的初始值,并根 据该状态查询周期定期向扩展柜20发送查询请求,对扩展柜20上的磁盘组、散热模块、温 度传感器和电源模块以及硬盘故障状态灯等组件的运行状况进行监控,各个扩展柜20中 受监控的组件通过I2C总线或者GPIO将各自的状态信息传递给该扩展柜20中的管理芯 片,管理芯片再通过SES协议将状态信息传递给主柜10中的控制器,因此本实施方式的以 下步骤可直接由主柜10的控制器实现,也可通过主柜中其他功能模块与控制器配合实现。
如图2所示的第一种具体实施方式
包括以下步骤 步骤S100 :在主柜10中预设扩展柜20在预定时间t。内的10请求量阀值S。,每个扩展柜20对应的10请求量即该扩展柜20从主柜10中的控制器接收到的IO请求量,反映 了该扩展柜20进行数据输入、输出的次数。S。用于判断磁盘阵列系统中某一扩展柜20 (例 如编号为i)的10请求是否过于密集,即该扩展柜20负荷较重;或者10请求是否过于稀 疏,即该扩展柜20较轻,从而根据具体判断结果对该扩展柜20的状态查询周期进行动态调 节。 扩展柜20在预定时间t。(单位为秒)内能够支持的最大10请求量由该扩展柜20 中磁盘组所包含的磁盘个数N以及每个磁盘对应的IOPS(Input/Output Operations per Second :每秒输出输入频度)决定,S卩MAX(IO) = IOPSX t。XN,而磁盘的IOPS取决于该 磁盘的转速和总线接口速度。 一种较好的实施方式中,取S。 = 50% MAX(IO),即S。 = 50% (10PSXt。XN),当然,还可根据具体需要设置S。的大小,以及根据硬件状况和实际应用环 境取预定时间t。。 —般情况下,可针对所有扩展柜20预设同一 10请求量阀值S。,也可视应用状况针 对不同的扩展柜20预设不同的10请求量阀值S。,还可设置多个10请求量阀值S。,以便根 据不同的取值对扩展柜20的状态查询周期进行细化调节。 步骤S101 :主柜10获取扩展柜20在预定时间t。内的10请求总量Si,该步骤中, 主柜10可根据具体需要仅获取特定的某一扩展柜20在该时间段内的IO请求总量Si,也可 以同时或者依次获取每个扩展柜20在预定时间t。内的IO请求总量Sp SfSn等,以便分 别与预设的10请求量阀值S。进行比较。 步骤S102 :对获取的扩展柜20的10请求总量St与预设的10请求量阀值S。进行 比较,以便根据比较结果调节主柜10对某一扩展柜20或者多个扩展柜20的状态查询周 期。 步骤S103 :判断某一扩展柜20的10请求总量St是否小于S。,是,则进入步骤 S104,否则进入步骤S105。 步骤S104 :该扩展柜20的10请求总量St小于10请求量阀值S。,则增大主柜10 对该扩展柜20的状态查询周期。即该扩展柜20的IO请求较稀疏,磁盘组可能长期处于休 眠状态,因此各个组件的状态变化不频繁,增大状态查询周期后,主柜10可以每隔较长的 时间对该扩展柜20进行监控,避免浪费系统资源和能耗。 步骤S105 :判断该扩展柜20的10请求总量St是否等于S。,是,则进入步骤S107 保持对该扩展柜20的状态查询周期不变,否则进入步骤S106。 步骤S106 :该扩展柜20的10请求总量Si大于10请求量阀值S。,则减小主柜10 对该扩展柜20的状态查询周期。即该扩展柜20的IO请求较密集,磁盘组被频繁访问,因 此各个组件的状态变化频繁,减少状态查询周期后,主柜10可以每隔较较短的时间再对该 扩展柜20进行监控,避免遗漏监控该扩展柜20的状态。 —般情况下,系统启动后,主柜10会设置对各扩展柜20的状态查询周期的初始 值,由于本实施方式对状态查询周期进行调节时,不能无限地增大或者减小,因此可根据实 际应用环境设置其极限值。例如设置步骤S104中,增大后的状态查询周期最大取状态查询 周期的初始值的2倍,相应地,步骤S106中,减小后的状态查询周期的最小取状态查询周期
的初始值的一半。 步骤S107:结束流程。本发明的第二种具体实施方式
实现了双控的磁盘阵列的监控方法, 即主柜10包括第一控制器11和第二控制器12,第一控制器11和第二控制器12可根据具 体需要工作在Active-Active模式,或者Active-Standby模式。 如果第一控制器11和第二控制器12工作在Active-Active模式,可根据具体状
况在第一控制器11中预设扩展柜20的10请求量阀值S。,并对各扩展柜20的10请求总量
Si进行统计(也可根据具体情况选择在第二控制器12中实现该步骤),因此,第二控制器
12需要发送扩展柜20在预定时间t。内从第二控制器12接收到的10请求量Si2至第一控
制器11,扩展柜20在预定时间t。内的10请求总量Si为该扩展柜20在预定时间t。内从第
一控制器11和第二控制器12接收到的10请求量之和,即Si = Sn+Si2。 如果第一控制器11和第二控制器12工作在Active-Standby模式,直接将该扩展
柜20在预定时间t。内从第一控制器11接收到的10请求量Sn作为扩展柜20在预定时间
t。内的IO请求总量Si。 本实施方式包括以下步骤 步骤S200 :在主柜10的第一控制器11中预设扩展柜20在预定时间t。内的10请 求量阀值S。。 步骤S201 :判断主柜10是否正常连接所有扩展柜20,是,则进入步骤S202,否则 进入步骤S212。 步骤S202 :设置主柜10对各个扩展柜20的状态查询周期的初始值。 步骤S203 :判断第一控制器11和第二控制器12是否工作在Active-Active模式,
是,则进入步骤S205,否则进入步骤S204。 步骤S204 :第一控制器11和第二控制器12工作在Active-Standby模式,第一控 制器ll直接检测Sn作为Si。 步骤S205 :第一控制器11和第二控制器12分别检测各扩展柜20在预定时间t。 内从第一控制器11和第二控制器12接收到的10请求量,即Su和Si2。
步骤S206 :第二控制器12将各个扩展柜20对应的Si2发送至第一控制器11。
步骤S207 :第一控制器11对Sn和Si2进行统计得到该扩展柜20对应的Si5即St
—Sn+Si2。 步骤S208 :第一控制器11对每个扩展柜20对应的Si与S。进行比较。
步骤S209 :根据比较结果判断是否需要调节扩展柜20的状态查询周期,判断方式 与第一实施方式相同,是,则进入步骤S210,否则可根据具体需要(例如可定期返回或者人 为干预)返回步骤S203进行循环检测和调节。 步骤S210 :动态调节主柜10对各扩展柜20的状态查询周期,调节方式与第一实 施方式相同。 步骤S211 :通过第一控制器11与第二控制器12之间的同步通道将调节后的状态 查询周期通知对板控制器。本实施方式中由第一控制器11通知第二控制器12,然后可根据 需要返回步骤S203继续调节,或者进入步骤S212。
步骤S212:流程结束。 如图4所示,本实施方式磁盘阵列的监控系统包括主柜10和与主柜10级联的至 少一个扩展柜20,主柜10包括请求量获取模块30、比较模块40和调节模块50。其中,请求
8量获取模块30、比较模块40和调节模块50可都设置在主柜10内的控制器中。 其中,请求量获取模块30用于获取某一个或者多个扩展柜20在预定时间t。内的
10请求总量Si,即该扩展柜20从主柜10中的控制器接收到的10请求总量Si,并将其提供
给比较模块40。 比较模块40中预设扩展柜20在预定时间t。内的10请求量阀值S。,例如设置为 S。 = 50% (10PSXt。XN),该模块用于对获得的扩展柜20的IO请求总量Si与预设的10请 求量阀值S。进行比较,并将比较结果提供给调节模块50。 调节模块50用于根据比较结果调节主柜10对一个或者多个扩展柜20的状态查 询周期。 即如果扩展柜20的10请求总量Si小于10请求量阀值S。,则增大主柜10对该 扩展柜20的状态查询周期;如果扩展柜20的10请求总量Si大于10请求量阀值S。,则减 小主柜10对该扩展柜20的状态查询周期。 如图5所示的双控的磁盘阵列中,主柜10还包括可工作在Active-Active模式, 或者Active-Standby模式的第一控制器11和第二控制器12。 本实施方式的请求量获取模块30包括统计模块,以及分设在第一控制器11和第 二控制器12中的第一请求量检测模块31和第二请求量检测模块32。 当第一控制器11和第二控制器12工作在Active-Active模式时,第一请求量检 测模块31和第二请求量检测模块32分别用于检测一个或者多个扩展柜20在预定时间t。 内从第一控制器11和第二控制器12接收到的10请求总量,即Su和Si2。第二请求量检测 模块32检测完成后,可将Si2发送至设在第一控制器11内的统计模块。当第一控制器11 和第二控制器12工作在Active-Standby模式时,可直接将扩展柜20从主用的第一控制器 11或第二控制器12接收到的IO请求总量作为IO请求总量Si。 统计模块用于统计第一请求量检测模块31和第二请求量检测模块32检测到的I0 请求量之和,即将同一扩展柜20从第一控制器11和第二控制器12接收到的10请求量相 加,得到Si = Sn+S^,并将其作为该扩展柜20在预定时间t。内的IO请求总量Si提供给比 较模块40。 该实施方式中,第一控制器11或第二控制器12中还可包括同步模块,同步模块从 调节模块50中接受调节后的状态查询周期,并将其通过同步通道通知给对板控制器。
为了灵活应用起见,统计模块还可包括分设在第一控制器11和第二控制器12中 的第一统计模块71和第二统计模块72 ;相应地,比较模块40还可包括分设在第一控制器 11和第二控制器12中的第一比较模块41和第二比较模块42,调节模块50还包括分设在 第一控制器11和第二控制器12中的第一调节模块51和第二调节模块52,同步模块可包括 分设在第一控制器11和第二控制器中的第一同步模块61和第二同步模块62,以便用户根 据在不同工作模式下的具体需要在第一控制器11或者第二控制器12中完成IO请求量统 计、比较和状态查询周期调节等步骤。 例如在第一控制器11中的第一比较模块41中预设扩展柜20在预定时间t。内的 10请求量阀值S。,由第一统计模块71对各扩展柜20的10请求总量Si进行统计,由第一比 较模块41进行比较,由第一调节模块51根据比较结果调节主柜10对于各扩展柜20的状 态查询周期。
本发明实现了一种磁盘阵列中主柜10根据扩展柜20的10请求状况动态监控扩展柜20的方法,在扩展柜20轻负载时,增大状态查询周期以节约系统资源和能耗;在扩展柜20重负载时,减小状态查询周期以及时获取扩展柜的状态,提高故障及时发现率,从而提高系统发生故障后及时有效的恢复能力,保障了系统的安全运行。 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
一种磁盘阵列的监控方法,用于实现磁盘阵列中主柜对至少一个扩展柜的监控,其特征在于,包括以下步骤在主柜中预设扩展柜在预定时间t0内的IO请求量阀值S0;主柜获取所述扩展柜在预定时间t0内的IO请求总量;主柜对所述扩展柜的IO请求总量与所述IO请求量阀值S0进行比较,并根据比较结果调节对所述扩展柜的状态查询周期。
2. 根据权利要求1所述的方法,其特征在于,主柜根据所述比较结果调节对所述扩展柜的状态查询周期的方式为如果所述扩展柜的IO请求总量小于所述IO请求量阀值S。,则 增大主柜对所述扩展柜的状态查询周期。
3. 根据权利要求2所述的方法,其特征在于,还包括如果所述扩展柜的10请求总量 大于所述io请求量阀值s。,则减小主柜对所述扩展柜的状态查询周期。
4. 根据权利要求1至3中任一项所述的方法,其特征在于,主柜包括工作在主-主模式 的第一控制器和第二控制器;所述扩展柜在预定时间t。内的IO请求总量为所述扩展柜在预定时间t。内从所述第一控制器和第二控制器接收到的IO请求量之和;所述第一控制器或第二控制器对所述扩展柜的IO请求总量与所述IO请求量阀值S。进 行比较,并根据比较结果调节对所述扩展柜的状态查询周期。
5. 根据权利要求4所述的方法,其特征在于,所述第一控制器或第二控制器根据比较 结果调节对所述扩展柜的状态查询周期之后,还包括将调节后的状态查询周期通知给对板 控制器的步骤。
6. 根据权利要求1至3中任一项所述的方法,其特征在于,主柜包括工作在主_备模式 的第一控制器和第二控制器;所述扩展柜在预定时间t。内的IO请求总量为所述扩展柜在预定时间t。内从所述第一 控制器接收到的IO请求量。
7. 根据权利要求1至3中任一项所述的方法,其特征在于,将所述扩展柜在预定时间t。 内的10请求量阀值S。预设为S。 = 50% (10PSXt。XN);N指所述扩展柜中磁盘组所包含的磁盘个数,IOPS指每个磁盘的每秒输出输入频度,t。 的单位为秒。
8. —种磁盘阵列的监控系统,包括主柜和与主柜级联的至少一个扩展柜,其特征在于, 所述主柜包括请求量获取模块、比较模块和调节模块;请求量获取模块用于获取扩展柜在预定时间t。内的IO请求总量,并将所述扩展柜的 IO请求总量提供给所述比较模块;比较模块中预设扩展柜在预定时间t。内的IO请求量阀值S。,用于对所述扩展柜的10 请求总量与所述10请求量阀值S。进行比较,并将比较结果提供给所述调节模块;调节模块用于根据所述比较结果调节主柜对所述扩展柜的状态查询周期。
9. 根据权利要求8所述的系统,其特征在于,主柜包括工作在主-主模式的第一控制器 和第二控制器,所述请求量获取模块包括统计模块以及分设在所述第一控制器和第二控制 器中的第一请求量检测模块和第二请求量检测模块;第一请求量检测模块和第二请求量检测模块分别用于检测所述扩展柜在预定时间t。 内从所述第一控制器和第二控制器接收到的IO请求量;统计模块用于统计所述扩展柜在预定时间t。内从所述第一控制器和第二控制器接收 到的IO请求量之和,并将其作为所述扩展柜在预定时间t。内的IO请求总量提供给所述比 较模块。
10. 根据权利要求9所述的系统,其特征在于所述第一控制器或第二控制器还包括同步模块,所述同步模块用于将调节后的状态查询周期通知给对板控制器。
11. 一种用于磁盘阵列系统的主柜,其特征在于,包括请求量获取模块、比较模块和 调节模块;请求量获取模块用于获取扩展柜在预定时间t。内的IO请求总量,并将所述扩展柜的 IO请求总量提供给所述比较模块;比较模块中预设扩展柜在预定时间t。内的IO请求量阀值S。,用于对所述扩展柜的10 请求总量与所述10请求量阀值S。进行比较,并将比较结果提供给所述调节模块;调节模块用于根据所述比较结果调节主柜对所述扩展柜的状态查询周期。
全文摘要
本发明公开了一种磁盘阵列的监控方法和系统,用于实现磁盘阵列中主柜对至少一个扩展柜的监控,方法包括以下步骤在主柜中预设扩展柜在预定时间t0内的I0请求量阀值S0;主柜获取所述扩展柜在预定时间t0内的I0请求总量;主柜对所述扩展柜的I0请求总量与所述I0请求量阀值S0进行比较,并根据比较结果调节主柜对所述扩展柜的状态查询周期。本发明实现了磁盘阵列中主柜对扩展柜的动态监控,节约了系统资源且保障了系统运行。
文档编号G11B27/36GK101763882SQ200910189559
公开日2010年6月30日 申请日期2009年11月26日 优先权日2009年11月26日
发明者张葱仔 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1