《系统固件更新方法与使用该方法的服务器系统.pdf》由会员分享,可在线阅读,更多相关《系统固件更新方法与使用该方法的服务器系统.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103186404 A(43)申请公布日 2013.07.03CN103186404A*CN103186404A*(21)申请号 201110461358.0(22)申请日 2011.12.28G06F 9/445(2006.01)(71)申请人英业达股份有限公司地址中国台湾台北市士林区后港街六十六号(72)发明人卢盈志(74)专利代理机构北京律诚同业知识产权代理有限公司 11006代理人梁挥 常大军(54) 发明名称系统固件更新方法与使用该方法的服务器系统(57) 摘要一种系统固件更新方法与使用该方法的服务器系统,系统固件更新方法适于服务器系统,此服务器系统具有多个。
2、节点。此系统固件更新方法包括下列步骤。接收固件更新封装数据。依据固件更新封装数据与前述节点各自对应的节点信息,以查表的方式搜寻出需要更新的节点。依据更新顺序策略,排列出节点各自对应的优先顺序,并以优先顺序建立更新列表。依据更新列表,依序对节点进行固件更新,并更新节点各自对应的节点信息与更新列表。(51)Int.Cl.权利要求书2页 说明书6页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书6页 附图2页(10)申请公布号 CN 103186404 ACN 103186404 A1/2页21.一种系统固件更新方法,适于一服务器系统,该服务器系统具有多个节点。
3、,其特征在于,该系统固件更新方法包括:接收一固件更新封装数据;依据该固件更新封装数据与该些节点各自对应的一节点信息,以查表的方式搜寻出需要更新的该些节点;依据一更新顺序策略,排列出该些节点各自对应的一优先顺序,并以该优先顺序建立一更新列表;以及依据该更新列表,依序对该些节点进行固件更新,并更新该些节点各自对应的该节点信息与该更新列表。2.根据权利要求1所述的系统固件更新方法,其特征在于,依序对该些节点进行固件更新的步骤包括:依据该更新列表,由该些节点中选择优先顺序最高的该节点作为一更新节点;对该更新节点进行更新,并更新该更新节点所对应的该节点信息,将该更新节点由该更新列表中移除;依据该更新列表。
4、,检测所有该些节点是否更新完成;若检测所有该些节点未更新完成,判断该些节点更新的数量是否达到一临界值;若判断该些节点的更新数量未达到该临界值,则回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤;以及若判断该些节点的更新数量达到该临界值,等待一预定时间,再回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤。3.根据权利要求2所述的系统固件更新方法,其特征在于,还包括:判断该更新节点的负载量是否超过一预设值;若判断该更新节点的负载量超过该预设值,则回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤;以及若判断该更新节点。
5、的负载量未超过该预设值,则进入对该更新节点进行更新的步骤。4.根据权利要求2所述的系统固件更新方法,其特征在于,对该更新节点进行更新的步骤包括:判断该更新节点是否运行一操作系统;若判断该更新节点运行该操作系统,利用该固件更新封装数据的一固件更新数据执行一线上固件更新,以对该更新节点进行更新;以及若判断该更新节点未运行该操作系统,利用该固件更新封装数据的一映像文件开启该操作系统,以执行一离线固件更新来对该更新节点进行更新。5.一种服务器系统,其特征在于,包括:多个节点,该些节点各自具有一节点信息;一数据库,用于储存该些节点信息;以及一更新模块,耦接该些节点与该数据库,用以接收一固件更新封装数据,。
6、并依据该固件更新封装数据与该些节点信息,以查表的方式搜寻出需要更新的该些节点,再依据一更新顺序策略,排列出该些节点各自对应的一优先顺序,且以该优先顺序建立一更新列表并将该更新列表储存于该数据库,以及依据该更新列表,依序对该些节点进行固件更新,并更新权 利 要 求 书CN 103186404 A2/2页3该些节点信息与该更新列表。6.根据权利要求5所述的服务器系统,其特征在于,该更新模块还依据该更新列表,由该些节点中选择优先顺序最高的该节点作为一更新节点,以对该更新节点进行更新,并更新该更新节点所对应的该节点信息以及将该更新节点由该更新列表中移除,且该更新模块再依据该更新列表,检测所有该些节点是。
7、否更新完成,其中若检测所有该些节点未更新完成,该更新模块则判断该些节点更新的数量是否达到一临界值,若判断该些节点的更新数量未达到该临界值,该更新模块则再次依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,以对该更新节点进行更新,直到所有该些节点更新完成为止,而当判断该些节点的更新数量达到该临界值时,该更新模块等待一预定时间,再依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,以对该更新节点进行更新,直到所有该些节点更新完成为止。7.根据权利要求6所述的服务器系统,其特征在于,该更新模块判断该更新节点的负载量是否超过一预设值,若判断该更新节点的负载量超过该预设。
8、值,该更新模块再次依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,而若判断该更新节点的负载量未超过该预设值时,则该更新模块对该更新节点进行更新。8.根据权利要求6所述的服务器系统,其特征在于,该更新模块判断该更新节点是否运行一操作系统,若判断该更新节点运行该操作系统,该更新模块利用该固件更新封装数据的一固件更新数据执行一线上固件更新,以对该更新节点进行更新,而若判断该更新节点未运行该操作系统时,该更新模块利用该固件更新封装数据的一映像文件启动该操作系统,以执行一离线固件更新来对该更新节点进行更新。权 利 要 求 书CN 103186404 A1/6页4系统固件更新方法与使用。
9、该方法的服务器系统技术领域0001 本发明涉及一种固件更新方法,特别涉及一种系统固件更新方法与使用该方法的服务器系统。背景技术0002 随着科技的发展,通过因特网能够使得世界各地的计算机进行连接。一台计算机通过网络连线便能够与另一台计算机进行数据的交换、存取等动作。在客户端与服务器系统架构上,客户端与服务器便是通过网络来进行沟通。0003 一般来说,服务器系统可配置有多个节点,且每一个节点同时运行多个虚拟机器(Virtual Machine,VM),藉以提供给每一使用者独立的运作环境。并且,每个节点可视为各自独立的计算机,也即各节点具有记忆体、储存空间、运算能力与网络连接功能。因此,各节点可以。
10、运行独自的操作系统,且各节点之间也可以通过网络交换器(Switch)进行沟通与数据传输。0004 在服务器系统运行后,会因为有新的固件版本而需要对节点进行固件的更新。在现有技术中,服务器系统在接收到固件更新时,便会对需要更新的节点进行固件更新,并且固件更新的方式为在某一节点进行固件更新时,会先将此节点由服务器系统的运作中隔离出来,且于固件更新完成后再将此节点加入服务器系统的运作。然而,若服务器系统进行大量节点的固件更新,或是于节点的负载较大的情况下进行固件更新,将会影响服务器系统的运作性能,而造成使用的不便利性。发明内容0005 鉴于以上的问题,本发明的目的在于提供一种系统固件更新方法与使用其。
11、的服务器系统,藉以避免影响服务器系统的运作效率的情况下,对服务器系统完成所需的固件更新。0006 本发明的一种系统固件更新方法,适于一服务器系统,此服务器系统具有多个节点,例如为提供基础设施即服务(Infrastructure as a Service,IaaS)的货柜式(Container)数据中心(Data Center)。此系统固件更新方法包括下列步骤。接收固件更新封装数据。依据固件更新封装数据与前述多个节点各自对应的节点信息,以查表的方式搜寻出需要更新的节点。依据更新顺序策略,排列出节点各自对应的优先顺序,并以优先顺序建立更新列表。依据更新列表,依序对节点进行固件更新,并更新节点各自对。
12、应的节点信息与更新列表。0007 在一实施例中,前述依序对节点进行固件更新的步骤包括下列步骤。依据更新列表,由多个节点中选择优先顺序最高的节点作为更新节点。对更新节点进行更新,并更新更新节点所对应的节点信息,将更新节点由更新列表中移除。依据更新列表,检测所有节点是否更新完成。若检测所有节点未更新完成,判断节点更新的数量是否达到临界值。若判断节点的更新数量未达到临界值,则回到依据更新列表,由节点中选择优先顺序最高的节点说 明 书CN 103186404 A2/6页5作为更新节点的步骤。若判断节点的更新数量达到临界值,等待预定时间,再回到依据更新列表,由节点中选择优先顺序最高的节点作为更新节点的步。
13、骤。0008 在一实施例中,前述系统固件更新方法。判断更新节点的负载量是否超过预设值。若判断更新节点的负载量超过预设值,则回到依据更新列表,由节点中选择优先顺序最高的节点作为更新节点的步骤。若判断更新节点的负载量未超过预设值,则进入对更新节点进行更新的步骤。0009 在一实施例中,前述对更新节点进行更新的步骤包括下列步骤。判断更新节点是否运行操作系统。若判断更新节点运行操作系统,利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。若判断更新节点未运行操作系统,利用固件更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。0010 本发明的一种服务器系。
14、统,包括多个节点、数据库与更新模块。前述多个节点各自具有节点信息。数据库用于储存前述节点信息。更新模块耦接前述多个节点与数据库,用以接收固件更新封装数据,并依据固件更新封装数据与节点信息,以查表的方式搜寻出需要更新的节点,再依据更新顺序策略,排列出节点各自对应的优先顺序,且以优先顺序建立更新列表,并将更新列表储存于数据库,以及依据更新列表,依序对节点进行固件更新,并更新节点信息与更新列表。0011 在一实施例中,前述更新模块更依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,并更新更新节点所对应的节点信息以及将更新节点由更新列表中移除,且更新模块再依据更新列表,检。
15、测所有节点是否更新完成,其中若检测所有节点未更新完成,更新模块则判断节点更新的数量是否达到临界值,若判断节点的更新数量未达到临界值,更新模块则再次依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止,而若判断节点的更新数量达到临界值时,更新模块等待预定时间,再依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止。0012 在一实施例中,前述更新模块判断更新节点的负载量是否超过预设值,若判断更新节点的负载量超过预设值,更新模块再次依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,而若判。
16、断更新节点的负载量未超过预设值时,则更新模块对更新节点进行更新。0013 在一实施例中,前述更新模块判断更新节点是否运行操作系统,若判断更新节点运行操作系统,更新模块利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新,而若判断更新节点未运行操作系统时,更新模块利用固件更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。0014 本发明的一种系统固件更新方法与使用该方法的服务器系统,通过接收使用者上载固件更新封装数据,并据以搜寻出需要更新的节点且排列出这节点的更新顺序,以自动完成节点的线上更新或离线更新。如此一来,可有效增加服务器系统的使用便利性。另。
17、外,还可依据更新节点的负载量以及已完成更新的节点的数量而决定是否更新,以避免影响服务器系统的运作效能。0015 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。说 明 书CN 103186404 A3/6页6附图说明0016 图1为本发明的服务器系统的方框图;0017 图2为本发明的系统固件更新方法的流程图;0018 图3为本发明的另一系统固件更新方法的流程图。0019 其中,附图标记0020 100 服务器系统0021 110_1110_N 节点0022 120 数据库0023 130 更新模块具体实施方式0024 下面结合附图对本发明的结构原理和工作原理作具体的描述:。
18、0025 请参考图1所示,其为本发明的服务器系统的方框图。服务器系统100包括多个节点110_1110_N、数据库120与更新模块130,其中N为大于1的正整数。服务器系统100例如为提供基础设施即服务(Infrastructure as a Service,IaaS)的货柜式(Container)数据中心(Data Center)。0026 节点110_1110_N各自具有节点信息。其中,节点信息例如包括节点的产品编号,例如通用唯一识别码(Universally Unique Identifier,UUID)、节点的基本输入输出系统(Basic Input Output System,BIO。
19、S)的固件版本与节点的基板管理控制器(Baseboard Management Controller,BMC)的固件版本。举例来说,节点110_1的节点信息例如以110_1、版本1、版本2表示,其余节点110_2110_N则类推。0027 数据库120用于储存节点110_1110_N的节点信息。在本实施例中,例如可通过基板管理控制器取得各节点110_1110_N的节点信息,并将各节点信息储存于数据库120。更新模块130耦接节点110_1110_N与数据库120,用以接收固件更新封装数据。其中,固件更新封装数据可由客户端通过网络上载至服务器系统100的更新模块,以使更新模块可利用固件更新封装数。
20、据对服务器系统100进行固件更新。0028 接着,更新模块130会依据固件更新封装数据与前述节点信息,以查表的方式搜寻出需要更新的节点。其中,固件更新封装数据例如具有更新数据列表,而更新数据列表中包括有欲更新的节点的产品编号与其固件版本。因此,更新模块则可依据前述的更新数据列表与节点信息,而搜寻出需要更新的节点。为了方便说明,需要更新的节点以节点110_1、110_2与110_3为例。0029 在找到需要更新的节点后,更新模块130依据更新顺序策略,排列出节点110_1110_3各自对应的优先顺序,且以优先顺序建立更新列表并将更新列表储存于数据库120。在本实施例中,节点110_1110_N可。
21、分为服务节点(Service Node)、运算节点(Computing Node)与储存节点(Storage Node),其中服务节点用以提供相关服务与数据给客户端,运算节点用以进行数据运算,储存节点用以储存数据。0030 举例来说,前述的更新顺序策略例如依序为服务节点、储存节点与计算节点,并且节点110_1例如为储存节点,节点110_2例如为运算节点,节点110_3例如为服务节点。因此,通过上述的更新顺序策略,更新模块130所排列出的更新顺序为节点110_3、110_1与说 明 书CN 103186404 A4/6页7110_2,并以此更新顺序建立于更新列表中。0031 之后,更新模块130。
22、再依据更新列表,依序对节点110_3、110_1与110_2进行固件更新,并更新节点110_3、110_1与110_2的节点信息以及更新更新列表。如此一来,本实施例的服务器系统100可在效率影响较小的情况下,自动对需要进行固件更新的节点完成固件更新。0032 以下,将进一步说明本实施例的更新模块130进行固件更新的详细操作。0033 首先,更新模块130会依据更新列表,由节点110_1110_3中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新。由于节点110_3的优先顺序为最高,故更新模块130会优先选择节点110_3作为更新节点,以对更新节点110_3进行更新。并且,于固件更新完成。
23、后,更新模块130会更新节点110_3的节点信息,例如110_3、版本1、版本3。并且,将更新节点110_3由更新列表中移除,因此,更新列表中只剩节点110_1、110_2。0034 接着,更新模块130依据更新列表,检测所有节点是否更新完成。由于更新列表中仍存有节点110_1、110_2,因此更新模块130会检测所有节点未更新完成,则更新模块130会进一步判断节点更新的数量是否达到临界值。由于在节点进行固件更新时,必须将更新节点从服务器系统100的运作中隔离出来,并于固件更新完成后再将更新节点加入服务器系统的运作,如此将可能会降低服务器系统100的运作效率。由此可知,大量进行节点的固件更新,。
24、可能会大幅降低服务器系统100的运作效率。因此,使用者可设定每次固件更新的节点的数量(即临界值),藉以避免影响服务器系统100的运作效率。0035 假设临界值设定为2,表示每此固件更新的节点的数量上限为2个,但本发明不以此为限。由于前述仅进行节点110_3的固件更新,故更新模块130会判断节点的更新数量并未达到临界值。接着,更新模块130再次依据更新列表,由节点110_1110_2中选择优先顺序最高的节点作为更新节点。由于更新列表中仅剩节点110_1、110_2,且节点110_1的优先顺序高于节点110_2,故更新模块130会选择节点110_1作为更新节点,以对节点110_1进行更新。0036。
25、 之后,更新模块110会更新节点110_1的节点信息,例如110_1、版本1、版本3。之后,更新模块130会持续依据更新列表,选择需要更新的节点中优先顺序最高的节点,以进行固件更新,直到所有节点更新完成为止。0037 另一方面,当更新模块130更新完节点110_3、110_1时,则节点完成更新的数量已达到2个。此时,更新模块130会判断出节点的更新数量达到临界值,故更新模块130会等待预定时间,再依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止。其中,前述预定时间可由使用者自行调整,例如6小时、半天或一天,藉以避免大量进行节点的固件更新而。
26、降低服务器系统100的运作效率。0038 更新模块130更可判断更新节点的负载量是否超过预设值。其中,前述预设值例如设定为节点满负载量的60。也就是说,更新节点的负载量要低于其满负载量的60,更新模块130才予以对更新节点进行固件更新,进而减少对服务器系统100的运作效率的影响。0039 若判断更新节点的负载量超过预设值,表示此节点在进行大量数据的运算或传输。为了不影响服务器系统100的运作效率,因此更新模块130再次依据更新列表,继续由说 明 书CN 103186404 A5/6页8节点中选择优先顺序最高的节点作为更新节点。另一方面,若判断更新节点的负载量未超过预设值,则更新模块130便可对。
27、更新节点进行更新。如此一来,可避免节点于高负载的情况下进行固件更新,而降低服务器系统100的运作效率。0040 此外,在对更新节点进行固件更新时,更新模块130更可判断更新节点是否运行操作系统(OS),也即判断更新节点为正常运作模式或为待机模式。若判断更新节点运行操作系统,表示更新节点为正常运作模式,更新模块130利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。0041 举例来说,更新模块130还可进一步判断更新固件的版本的种类,例如基本输入输出系统或基板管理控制器的固件更新。若判断出固件更新的种类为基本输入输出系统或基板管理控制器,更新模块130会将固件更新封装数据。
28、解开为固件数据更新工具,以便将基本输入输出系统或基板管理控制器的固件更新数据更新至更新节点。并且,于固件更新完成后,将更新节点重启动(Reboot),并重置(Reset)基板管理控制器,以便更新节点的基本输入输出系统或基板管理控制器利用新的固件进行运作。另外,基本输入输出系统更新完成后,会传送智能平台管理界面(Intelligent Platform Management Interface,IPMI)指令给基板管理控制器以告知其更新状态,以便更新更新节点的节点信息以及更新列表。0042 若判断出固件更新的种类为基板管理控制器,更新模块130会由固件更新封装数据中取出基板管理控制器的固件更新数。
29、据,再利用智能平台管理界面指令去执行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新节点的基板管理控制器,以便更新节点的基板管理控制器运用新的固件进行运作。0043 另一方面,若判断更新节点未运行操作系统,表示更新节点为待机模式,此时更新模块利用固件更新封装数据的映像文件(ISO file)开启操作系统,以执行离线固件更新来对更新节点进行更新。其中,前述映像文件可包括可开机操作系统(Bootable OS)与自动执行文件,而更新节点可运行前述操作系统。0044 举例来说,更新模块130更可进一步判断更新固件的版本的种类,例如基本输入输出系统或基板管理控制器的固件更新。若判断出固件更新。
30、的种类为基本输入输出系统,更新模块130会挂载固件更新封装数据的映像文件给更新节点,以进行更新节点由此映像文件开机,并于开机的过程中执行前述自动执行文件,以更新基本输入输出系统或基板管理控制器的固件(就实作而言,例如,更新模块130会通过更新节点的基板管理控制器将固件更新封装数据的映像文件设成作基板管理控制器的虚拟光盘机的光盘片,并通过更新节点的基板管理控制器令更新节点由此虚拟光盘机启动操作系统,但并不以此为限)。0045 并且,于固件更新完成后,将更新节点重启动(Reboot),并重置(Reset)基板管理控制器,以便更新节点的基本输入输出系统或基板管理控制器利用新的固件进行运作。另外,基本。
31、输入输出系统更新完成后,会传送智能平台管理界面指令给基板管理控制器以告知其更新状态,以便更新更新节点的节点信息以及更新列表。0046 若判断出固件更新的种类为基板管理控制器,更新模块130会由固件更新封装数据中取出基板管理控制器的固件更新数据,再利用智能平台管理界面指令去执行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新节点的基板管理控制器,以便更新节点的基板管理控制器运用新的固件进行运作。0047 请参考图2所示,其为本发明的系统固件更新方法的流程图。本实施例的系统固说 明 书CN 103186404 A6/6页9件更新方法适于一服务器系统,且此服务器系统具有多个节点。在步骤S2。
32、10中,接收固件更新封装数据。在步骤S220中,依据固件更新封装数据与多个节点各自对应的节点信息,以查表的方式搜寻出需要更新的多个节点。在步骤S230中,依据更新顺序策略,排列出多个节点各自对应的优先顺序,并以优先顺序建立更新列表。在步骤S240中,依据更新列表,依序对多个节点进行固件更新,并更新多个节点各自对应的节点信息与更新列表。0048 请参考图3所示,其为本发明的另一系统固件更新方法的流程图。本实施例的系统固件更新方法适于一服务器系统,且此服务器系统具有多个节点。在步骤S302中,接收固件更新封装数据。在步骤S304中,依据固件更新封装数据与多个节点各自对应的节点信息,以查表的方式搜寻。
33、出需要更新的多个节点。在步骤S306中,依据更新顺序策略,排列出多个节点各自对应的优先顺序,并以优先顺序建立更新列表。0049 在步骤S308中,依据更新列表,由多个节点中选择优先顺序最高的节点作为更新节点。在步骤S310中,判断更新节点的负载量是否超过预设值。若判断更新节点的负载量超过预设值,则回到步骤S308,直到判断更新节点的负载量未超过预设值为止。0050 另一方面,若判断更新节点的负载量未超过预设值,则进入步骤S312,对更新节点进行更新。在步骤S314,更新更新节点所对应的节点信息,将更新节点由更新列表中移除。在步骤S316中,依据更新列表,检测所有节点是否更新完成。若检测所有节点。
34、都已更新完成,则结束此系统固件更新的流程。0051 另一方面,若检测所有节点未更新完成,则进入步骤S318,判断节点更新的数量是否达到临界值。若判断节点的更新数量未达到临界值,则回到步骤S308。若判断节点的更新数量达到该临界值,则进入步骤S320中,等待预定时间。接着,再回到步骤S308。0052 另外,在步骤S312对更新节点进行更新还包括下列步骤S322S326。在步骤S322中,判断更新节点是否运行操作系统。若判断更新节点运行操作系统,则进入步骤S324,利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。若判断更新节点未运行操作系统,则进入步骤S326,利用固件。
35、更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。0053 本发明的实施例的系统固件更新方法与使用该方法的服务器系统,其通过接收使用者上载固件更新封装数据(具有线上更新的数据与离线更新的映像文件),并据以搜寻出需要更新的节点且排列出这节点的更新顺序,以自动完成节点的线上更新或离线更新。如此一来,可有效增加服务器系统的使用便利性。另外,还可依据更新节点的负载量以及已完成更新的节点的数量而决定是否更新,以避免影响服务器系统的运作效能。0054 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。说 明 书CN 103186404 A1/2页10图1图2说 明 书 附 图CN 103186404 A10。