




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IBM RSCT 中的 ERRM(Event response resource Manager) 组件为这一需求提供了一套有效的解决方案。对于常见的系统指标数值,例如文件系统使用状况,CPU 工作状况,内存使用状况以及网卡各种指标值等都提供了很好的支持。同时,用户也可以很方便地定制各种系统资源监控。本文将详细阐述 RSCT ERRM 在集群系统监控中的应用。 随着大规模集群系统的广泛应用,系统的监控变得日趋复杂,对于系统各种指标数值的监控的显得愈发重要。IBM RSCT 中的 ERRM(Event response resource Manager) 组件为这一需求提供了一套有效的解决方案。
2、对于常见的系统指标数值,例如文件系统使用状况,CPU 工作状况,内存使用状况以及网卡各种指标值等都提供了很好的支持。同时,用户也可以很方便地定制各种系统资源监控。本文将详细阐述 RSCT ERRM 在集群系统监控中的应用。1. RSCT 框架简介 RSCT(Reliable Scalable Cluster Technology)是一系列软件组件的集合,为 IBM 许多集群软件提供可用性,可扩展性及易用性等方面的底层支持。RSCT 包含以下几个组件,本文主要讨论 RMC 子系统和核心资源管理器 ERRMRMC 子系统 (Resource Monitoring and Control subsy
3、stem) RSCT 核心资源管理器 (RSCT core resource managers),包括 ERRM, ConfigRM, FSRM,HostRM,SensorRM 等。 RSCT 集群安全服务 (RSCT cluster security services) 拓扑服务子系统 (Topology Services subsystem) 组群服务子系统 (Group Services subsystem) 图 1. RSCT 资源架构图 1 显示了 RSCT 中资源的架构, RMC 子系统是整个 RSCT 的核心,它为其它组件提供了一套通用的接口,这样 RSCT 的上层客户软件无需关
4、心各个底层的资源管理器的运行细节,只要通过 RMC 提供的接口 (RMC API) 与 RSCT 进行通信。同时,底层的资源管理器及服务只需实现 RMC 指定的接口 (RMF API) 来提供相应的功能。本文中的 ERRM 就是 RSCT 核心资源管理器的一种,它主要用于系统监控。2. RSCT 资源 / 资源类、域 2.1 资源和资源类 RSCT 中最基础的概念就是资源 (resource)。所谓资源,在 RSCT 中可以是任意的物理或者逻辑上的实体,例如集群中的一个主机节点,主机上的一个网卡或主机操作系统的根文件系统等等,资源有许多不同的属性,所有拥有相同属性而又有不同属性值的资源组成了资
5、源类 (resource class),资源类负责发现资源,创建资源,删除资源等等。一个资源类隶属于一个资源管理器(resource manager),而资源管理器可以提供任意数量的资源类。RSCT 几乎所有的功能都和资源以及资源类相关。 在 RSCT 的各个包被正确安装以后可以通过 RMC 的命令行接口来显示系统中的关于资源和资源类的各种信息。2.1.1. 显示资源类 / 资源定义 通过 RMC 的命令行接口 lsrsrcdef(该命令位于目录 /usr/sbin/rsct/bin 中)可以显示关于资源和资源类的定义信息,在不带任何参数的情况下,该命令会输出系统中所有存在的资源类。示例 1
6、演示了如何使用 lssrcdef 命令来查看系统中所有的 RSCT 资源类(注:该示例是笔者测试环境中的输出,实际情况可能与此会有不同): 示例 1c176n11:/ # lsrsrcdefclass_name"IBM.Condition""IBM.EthernetDevice""IBM.EventResponse""IBM.FDDIDevice""IBM.Host""IBM.FileSystem".可以将资源类作为参数传递给命令 lsrsrcdef 并加上 -c 选项显示资
7、源类本身的定义,示例 2 是将 IBM.FileSystem 资源类作为参数传递给命令 lsrsrcdef 的输出,可见 IBM.FileSystem 属于资源管理器 IBM.FSRM: 示例 2c176n11:/ # lsrsrcdef -c -e "IBM.FileSystem"Resource Class Definition for IBM.FileSystemresource class 1:class_name = "IBM.FileSystem"class_id = 9properties = "has_rsrc_insts&qu
8、ot;,"has_ctrl_interface","mtype_subdivided"display_name = "File System"description = "The FileSystem resource class monitors the attributes andmount status of all resources."locator = "NodeNameList"class_pattr_count = 1class_dattr_count = 3class_acti
9、on_count = 0pattr_count = 32dattr_count = 4action_count = 0error_count = 0rsrc_mgr_count = 1rsrc_mgrs 1:mgr_name = "IBM.FSRM"first_key = 1last_key = 1资源类本身也有一些属性可以通过 lsrsrcdef -c -A p|d resource_class 来进一步显示,其中 -A 选项表示希望显示的属性是永久属性(-A p), 还是动态属性(-A d), 这类属性值可能随时发生变化。如果要显示资源相关信息,只要去掉 lsrsrcd
10、ef 命令中的 -c 选项并加上 -A d|p 选项,其中 -A d 表示显示动态属性,-A p 显示永久属性。示例 3 显示 IBM.FileSystem 资源的动态属性定义: 示例 3c176n11:/ # lsrsrcdef -Ad -e "IBM.FileSystem"Resource Dynamic Attribute Definitions for IBM.FileSystemattribute 1:program_name = "OpState"display_name = "Operational State"grou
11、p_name = "General"properties = "public"description = "Whenever the operational state of a resource is changed,this dynamic attribute is asserted."attribute_id = 1group_id = 0data_type = "uint32"variable_type = "state"variety_list = 1,8variety_count =
12、 1init_value = 0min_value = 0max_value = 100expression = "OpState != 1"expression_description = "An event will be generated when the filesystem goes offline."rearm_expression = ""rearm_description = ""PTX_name = ""attribute 2:program_name = "Per
13、centTotUsed"attribute 3:program_name = "PercentINodeUsed"可以看出 IBM.FileSystem 资源有三个动态 (-A d 选项 ) 属性,同样的方法可以显示出资源的永久属性。2.1.2. 显示资源类 / 资源属性值 RMC 同样提供了用于显示资源类和资源属性值的方法 rmc 接口 lsrsrc。例如,希望得到系统中所有的 IBM.FileSystem 资源及其属性值。可以通过 lsrsrc -A d|p|b -s “selection_string” IBM.FileSystem 来得到。其中 -A 选项
14、值的 d 代表动态属性,p 表示永久属性,b 表示两者,-s 选项用于过滤希望显示的 IBM.FileSystem 资源信息。示例 4 显示了 Name 属性不等于 (/) 的 IBM.FileSystem 资源的永久属性值: 示例 4c176n11:/ # lsrsrc -Ap -s "Name !='/'" IBM.FileSystemResource Persistent Attributes for IBM.FileSystemresource 1:Name = "/opt"MountPoint = "/opt"
15、;MountDir = "/opt"Dev = "/dev/hd10opt"Vfs = "jfs"Log = ""Mount = "true"Permissions = "rw"Account = ""Type = ""Size = 262144Frag = 512Nbpi = 4096Compress = "no"Bf = "false"Ag = 8ManualMode = 0ActivePee
16、rDomain = ""NodeNameList = ""resource 2:Name = "/tmp"resource 3:Name = "/var"resource 4:Name = "/usr"resource 5:Name = "/home"2.1.3. 创建资源 一般情况下并不需要手动去创建资源,因为在各个资源管理器初始化的时候都会自动调用资源类的发现程序去检查系统当前属于该资源类的资源并存储。例如对于 IBM.FileSystem 资源类,它属于资源管理器 IB
17、M.FSRM,当 IBM.FSRM 初始化的时候,就会驱动 IBM.FileSystem 发现程序去检查系统当前存在的文件系统资源并存储起来。但有时候还是得手动创建一些资源,例如 ERRM 的 IBM.Condition 资源。创建资源的 rmc 接口为 mkrsrc。将 -e 选项和资源类名作为 mkrsrc 的参数时,会显示创建该资源类必须指定的属性以及可选属性的例子。示例 5 的输出显示了如何创建 IBM.FileSystem 资源:示例 5c176n11:/ # mkrsrc -e IBM.FileSystemSample mkrsrc command with required at
18、tributes:mkrsrc IBM.FileSystem Name=char_ptrSample mkrsrc command with required and optional attributes, and command arguments:mkrsrc IBM.FileSystem Name=char_ptr NodeNameList=char_ptr_array NodeIDs=uint64_array2.1.4. 修改资源类 / 资源永久属性值 对于已经创建或者自动发现的资源,可以通过 rmc 接口 chrsrc 来修改资源的永久属性值,注意并不是所有的永久属性值都可以修改的
19、,资源只读属性是无法通过 chrsrc 来修改的。可将属性和资源类作为参数通过 2.1.1 中 lsrsrcdef 接口检查资源属性是否可以手动改变,动态属性值一般不通过 rmc 修改,而是随着系统变化,属性值自动由各个资源管理器根据一定的频率收集设置。可以通过 -s 选项来对满足特定条件的某个或者某些资源的属性值进行修改。示例 6 是修改 Name 属性等于”FSCondition”的 IBM.Condition 资源的 EventExpression 属性值:示例 6c176n11:/#chrsrc -s "Name ='FSCondition'" IB
20、M.Condition EventExpression="Name !=''"除了 -s 选项,可以通过指定在整个 cluster 中是唯一的资源句柄(resource handler)属性值,来限定某个资源修改属性值,资源句柄可以通过 lsrsrc 得到,具体请参见参考文献 2。修改资源类的属性值,同样使用 chrsrc 接口,但比资源多一个 -c 选项表示资源类。2.1.5. 删除资源 对于系统中的各种资源,可以通过 rmc 接口 rmrsrc 删除。如 chrsrc 接口一样,rmrsrc 支持 -s 选项和基于资源句柄的形式。示例 7 表示删除系统中
21、所有 IBM.Condition 资源:示例 7c176n11:/ # rmrsrc -s "Name !=''" IBM.Condition2.2. RSCT 域RSCT 域表示集群节点配置目的。集群中的节点可以配置为 high availability( 高可用性 ) 或者 manageability( 可管理性 ),这样可以将节点所处的域或者环境分为两种:1)Peer Domain2) Mangement Domain(管理域);Peer Domain 表示该节点位于这样一个集群系统中,集群系统中的节点的地位都是等同的,一个节点知道集群中其余所有节点的
22、信息,这为高可用性应用提供了条件,因为从外界来看,整个集群是一个整体,任何一个节点宕机都可能有剩余节点来继续提供相应的服务;Management Domain,这种集群里,一个管理服务器(Management Server)管理若干个被管理节点(Managed Node),这种 Domain 中,被管理节点之间互相不知道对方的信息。只有管理服务器知道所有的被管理节点的信息,这种集群主要是为了简化系统管理,所有的管理工作都可以在管理服务器上完成。通常的集群往往是 Peer Domain 和 Mangement Domain 的组合。如图 2 所示:Node1,Node2,Node3 是管理服务器
23、的被管理节点同时位于 PeerDomain1,Node n-1,Node n 类似。图 2. 同时拥有 Peer Domain 和 Management Doman 的集群2.2.1. 建立 Peer Domain建立 Peer Domain 一般可以遵照以下步骤:1)列出需要加入到该 PeerDomain 的所有节点,确保节点之间都是互通的(各个节点 /etc/hosts 里面都有所有集群节点的 Host 名与 IP 信息)而且已经正确安装 RSCT 软件包。如有 NodeA,NodeB,NodeC,NodeD 需要加入 Peer Domain。2)确定 1)中的一个节点为 originat
24、or 节点,如 NodeA3)在 NodeB,NodeC,NodeD 上执行 preprpnode NodeA,使得节点 NodeA 和这些节点间建立信任关系; 4)在 Originator 节点如 NodeA 上,执行 mkrpdomain <domain_name> NodeA NodeB NodeC NodeD5)在任一个节点上执行 startrpdomain <domain_name> 启动该 Peer Domain,注意一个节点可以同时位于多个 Peer Domain 中,但同时只能在其中一个 domain 里面 Online。6)Peer Domain 建立
25、以后可以通过 addrpnode,rmrpnode 增加和减少集群中的节点。通过 stoprpdomain 使得整个集群 offline,通过 stoprpnode/startrpnode 停止和启动节点。如果从资源的角度分析 Peer Domain 的建立,相当于各个节点的系统在后台创建了两种隶属于资源管理器 IBM.ConfigRM 的资源类 IBM.PeerDomain 和 IBM.PeerNode 的资源。同样可以通过 lsrsrc 命令显示这两种资源的属性值。2.2.2. 建立 Management Domain对于建立管理域(Management Domain),目前是通过基于 R
26、SCT 的上层的软件 CSM 实现的。将集群中的一个节点作为管理服务器(Management server),其余节点作为该管理服务器的被管理节点。大体步骤如下:列出需要加入到该管理域的所有节点,确保已经正确安装 RSCT 软件包。 指定其中一个为管理服务器,该管理服务器需要知道所有被管理节点的 Host 名与 IP 地址(通常将这些信息放在 /etc/hosts 中)。在所有节点上安装 CSM 软件包,相对于被管理节点,管理服务器需要安额外装 csm.server ( 以 AIX 为例 ) 及其依赖的包。反之,被管理节点需要安装 csm.client 包而这对于管理服务器是可选的(管理服务器
27、本身也可以成为自身的被管理节点) 在管理服务器的上,通过 definenode 定义被管理节点。设置资源管理器 IBM.DMSRM 的 AddUnrecognizedNodes 属性为 1,这样被管理节点可以注册到该管理服务器上。 在被管理节点上执行:mgmtsvr -n < 被管理节点名 > < 管理服务器的 IP> 以上步骤成功执行以后,整个管理域就建立起来了。从资源的角度分析 Management Domain 的建立,管理服务器在后台创建了隶属于资源管理器 IBM.DMSRM 的资源类 IBM.ManagedNode 的资源,每个被管理节点对应一个 IBM.Ma
28、nagedNode 资源以存储被管理节点的信息;而被管理节点则创建了对应于 IBM.CSMAgentRM 的资源类 IBM.ManagementServer 的资源以存储管理服务器的各种信息。3. RSCT 资源监控 资源管理器 IBM ERRM 提供了三个资源类 IBM.Condition,IBM.EventResponse,IBM.Assosication。系统资源监控是 ERRM 主要的功能,即如果系统在某一时刻某个条件 (condition) 满足,与这个条件关联的预先定义的动作 (response) 就会被触发。这里的条件对应于 ERRM 的 IBM.Condition 资源类,它用
29、于定义用户关心的系统资源的状况,如某个节点的 /tmp 文件系统使用比例大于 90% 就是一个条件;而动作对应于 IBM.EventResponse 资源类,它用于定义在某个条件满足时,用户想采取的措施,如当上面的 /tmp 使用大于 90% 时使用邮件通知系统管理员就是一个动作。另外,ERRM 的还有一个资源类 IBM.Association,一个 IBM.Association 资源用于关联一个 IBM.Condition 资源和一个 IBM.EventResponse。这样只需定义多个 IBM.Association 资源用于关联不同的 IBM.Condition 资源和 IBM.Eve
30、ntResponse 资源就可以重复利用已经存在的 IBM.Condition 资源和 IBM.EventResponse 资源。同时,只有在 IBM.Condition 资源和 IBM.EventResponse 资源被一个活动的(Active)的 IBM.Association 资源关联的时候,这些条件和相应的动作才会触发。 根据需要,可以创建监控不同域范围的 IBM.Condition 资源,然后关联相应的 IBM.EventResponse 资源来达到资源监控的目的。其一般步骤如下:根据需要建立集群,如独立系统,Management Domain 或 Peer Domain; 确定需要
31、监控的系统资源及其属性 创建 IBM.Condition 资源并根据需要设定监控范围; 创建或使用已存在的,在条件满足时触发的动作即 IBM.EventResponse 资源; 创建 IBM.Assocation 资源关联 3)和 4)中的 IBM.Condition 和 IBM.EventResponse 资源;并使其处于 Active 状态; 上面 1),2)两步在上面的章节中已经介绍过。下面阐述如何具体的 IBM.Condition,IBM.EventResponse 以及 IBM.Association 资源。3.1 管理 IBM.Condition 资源 根据 IBM.Conditi
32、on 资源监控范围的不同,可以将系统监控分为对独立系统资源的监控,对 Peer Domain 范围内系统资源的监控和对 Management Domain 系统范围资源的监控。而这只需在创建 IBM.Condition,将不同的参数值传给命令 mkcondition 的 -m 选项。 示例 8 是通过 IBM.ERRM 提供的接口 mkcondition 创建 IBM.Condition 资源的一般形式:示例 8mkcondition r resource_class eevent_expression Erearm_expression d event_description D rearm
33、_description m l m p n node_name1,node_name2. p node_name qnotoggle qtoggle s selection_stringS c w i h TV condition下面是其中的重要选项涵义,-r 表示被监控的资源类, -e 表示被监控资源的属性构成的某个条件表达式其返回值是真或者假,开始监控以后 rmc 以一定频率不断检测该条件的结果,如果为真变触发相应的事件,执行相应的动作。 -E 是可选的,意思是如果 -e 中的表达式为真时,不在重复检测 -e 中的条件,转而检测 -E 中的条件,其主要目的是是避免不断触发重复事件; -d
34、, -D 分别是对于 -e,-E 中条件表达式的描述; -m 表示希望 IBM.Condition 资源监控的范围,l 表示 local 即 Individual Workstation,m 表 Management Domain 中所有节点资源,p 表示 Peer Domain 中所有节点的资源 -n 表示在 -m 的指定的范围内的某个或者某些特定的节点上监控资源,如对于一个有三个节点 NodeA, NodeB, NodeC 的某个 Peer Domain 中,如果只需要监控 NodeA 和 NodeB 上的资源,则传递 -n NodeA,NodeB 给 mkcondition; -p 表示
35、希望该 IBM.Condition 资源最终被创建在哪个节点;默认为命令执行所在的节点; -s 表示筛选满足该条件的资源进行监控,默认情况下,会对属于由 -r 指定的资源类的所有资源进行监控。例如只希望监控 IBM.FileSystem 资源中的根文件系统,可以传递 -s “Name = /”给 mkcondition; -TV 表示打印出 mkcondition 命令的详细执行输出,一般作为调试使用。 condition 表示该 IBM.Condition 资源的名字。 示例 9 是在 Peer Domain 中为了监控整个 PeerDomain 中所有节点的根文件系统的空间使用百分比创建
36、IBM.Condition 资源的例子:示例 9mkcondition -r IBM.FileSystem -e “PercentTotUsed > 90”-d “An event will be generated when more than 90 percent of the total space ofthe filesystem is in use.” -E “PercentTotUsed < 85” -D “The event will be rearmed whenthe percent of the total space used in the filesyste
37、m falls below 85 percent.” -m p-s “Name = /” PeerDomainRootFSCondition表示如果集群中的任意一个节点的根文件系统使用超过 90%,触发相应的事件;然后转而检测是否该根文件系统使用空间小于 85%,如果小于 85% 则重新检测是否超过 90%。如此继续下去。此外还可以通过 -c 选项拷贝已经存在的 IBM.Condition 资源的定义并在此基础上进行修改。除了可以用 IBM.ERRM 提供的接口 mkcondition 创建 IBM.Conditon 资源,同样可以使用 rmc 提供的接口 mkrsrc,其本质都是通过 rmc
38、 api 完成相应的资源创建。示例 10 是与上面的 mkcondition 命令的相对应的 mkrsrc 命令形式:示例 10mkrsrc IBM.Condition ResourceClass=”IBM.FileSystem” EventExpression=” PercentTotUsed > 90” EventDescription=” An event will be generated when more than90 percent of the total space of the filesystem is in use.” RearmDescription=“Perc
39、entTotUsed < 85” RearmExpression=” The event will be rearmed when the percent ofthe total space used in the filesystem falls below 85 percent.” ManagementScope=2SelectionString= “Name = /” Name=”PeerDomainRootFSCondition”已存在的 IBM.Condition 资源可以通过 chcondition 命令修改,对应于 rmc 的接口为 chrsrc。承接上面的例子,示例 11
40、 表示如果希望系统在文件系统空间超过 95% 的时候触发相应的事件使用 chcondition 修改 IBM.Condition 资源的例子: 示例 11chcondition -e “PercentTotUsed > 95” PeerDomainRootFSCondition示例 12 表示对应于 chcondition 命令的 chrsrc 命令形式 示例 12chrsrc -s “Name = PeerDomainRootFSCondition” IBM.Condition EventExpression=” PercentTotUsed > 95”显示系统中所有或者某个 I
41、BM.Condition 资源可以通过 lscondition 命令 , 示例 13 展示如何显示 PeerDomainRootFSCondition 的定义:示例 13lscondition PeerDomainRootFSCondition示例 14 表示对应于 lscondition 的 lsrsrc 命令形式 :示例 14lsrsrc -s “Name = PeerDomainRootFSCondition” IBM.Condition如果希望删除该某个 IBM.Condition 资源,可以通过 rmcondition 或者 rmrsrc,承接上面的例子,示例 15 显示如何删除一个
42、条件: 示例 15rmcondition PeerDomainRootFSCondition示例 16 表示对应于 rmcondition 的 rmrsrc 命令形式:示例 16rmrsrc -s “Name = PeerDomainRootFSCondition” IBM.Condition3.2 管理 IBM.EventResponse 资源只有 IBM.Condition 条件还不足够完成所有的功能,在条件满足的时候,必需能够触发相应的动作,才能达到资源监控的功能,而 IBM.EventResponse 资源的作用正在于此。示例 17 是 IBM.ERRM 组件提供的 mkrespons
43、e 接口创建 IBM.EventResponse 资源的其一般形式:示例 17mkresponse n action d days_of_week,days_of_week. t time_of_day,time_of_day. s action_scriptr return_code e a r b oE env_var=value,env_var=value. u p node_nameh TV response-n 表示属于该 IBM.EventResponse 资源一个动作名,定义 IBM.EventResponse 资源时只能定义一个 action,但修改时可以增加; -d 表示该动
44、作在一周中的这几天执行,1 表示周日,2 表示周一,其余依次类推。可以同过-表示一个时间段如 1-7 表示整个星期;用+不连续的天时间段如 1+7 表示周日和周一; -t 表示在某天的那个时间段该动作执行;用二十四小时制的 hhmm 的形式表示,1015 表示 10:15am -s 表示动作可执行程序,可以是命令或者是可执行脚本。RSCT 提供了三个脚本 logevent,notifyevent 以及 wallevent,可以自己编写自己需要的脚本。 -p 表示 IBM.EventResponse 资源最终被创建在的节点,默认为执行命令的节点 response 表示该 IBM.EventRes
45、ponse 资源的名称。 下面创建的 IBM.EventResponse 资源表示在工作日工作时间时执行动作 NotifyAdmin,其目的是发送短消息给系统管理员有相关信息:mkresponse -n NotifyAdminVia -d 2-6 -t 0900-1600 -s “/bin/sendSMS” NotifyAdminResponse其中 sendSMS 是用户自己自定义的脚本用于发送短消息。如果希望修改已经定义的 IBM.EventResponse 资源,可以通过 chresponse 完成。示例 18 表示对于上面的 IBM.EventResponse 资源,如需增加一个动作序列,除了发送短消息给系统管理员,还希望通过在 console 上输出一些信息通知已登录的用户 , 并改为一周全天候执行所有动作。示例 18chresponse -a -n NotifyLogonUser “/usr/sbin/rsct/bin/wallevent -c" -d 1-7 -t 0000-2400NotifyAdminResponse显示系统中所有或者某个 IBM. EventResp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏北四市生物试题及答案
- 2025年镇江房地产市场区域分化现状与投资机遇深度分析报告
- 2025年主题公园市场发展态势报告:品牌竞争力评估与行业趋势
- 班组长工作述职报告
- 网络直播行业自律规范与内容监管效果评估研究报告
- 安全工程师考试内容解析试题及答案
- 电商绿色物流智能化与自动化技术应用报告
- 红棋考试题及答案
- 工会考试知识试题及答案
- 教育资源整合的反思试题及答案
- 老人文艺活动免责协议书
- 《功能性食品开发与应用》课件-维持血糖健康水平功能食品的开发与应用
- 12G614-1 砌体填充墙结构构造
- DL∕T 1474-2021 交、直流系统用高压聚合物绝缘子憎水性测量及评估方法
- 《初中七年级期中考试家长会》课件模板(五套)
- 学术规范和论文写作-教学大纲
- 2023年设备检修标准化作业规范
- GB/T 20001.1-2024标准起草规则第1部分:术语
- 工笔花鸟学习心得范文
- 2024年度《儿童生长发育》课件
- 初中生机器人课程课件
评论
0/150
提交评论