資源管理及監控_第1頁
資源管理及監控_第2頁
資源管理及監控_第3頁
資源管理及監控_第4頁
資源管理及監控_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論