云計(jì)算Openstacks學(xué)習(xí)及實(shí)驗(yàn)部署文檔_第1頁(yè)
云計(jì)算Openstacks學(xué)習(xí)及實(shí)驗(yàn)部署文檔_第2頁(yè)
云計(jì)算Openstacks學(xué)習(xí)及實(shí)驗(yàn)部署文檔_第3頁(yè)
云計(jì)算Openstacks學(xué)習(xí)及實(shí)驗(yàn)部署文檔_第4頁(yè)
云計(jì)算Openstacks學(xué)習(xí)及實(shí)驗(yàn)部署文檔_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

寧夏大學(xué)專業(yè)綜合設(shè)計(jì)與開發(fā)實(shí)驗(yàn)報(bào)告Openstack的搭建楊大爺s班德爾城目錄目錄目錄 1第一部分————基礎(chǔ)知識(shí) 11. openstack是什么 12. Openstack的計(jì)算設(shè)施————Nova 43. Openstack的鏡像服務(wù)器————Glance 64. Openstack的管理Web的接口————Horizon 75.openstack的存儲(chǔ)設(shè)備————swift 85. Openstack的認(rèn)證服務(wù)————Keystone 10第二部分————openstack的搭建 111.openstack安裝的準(zhǔn)備工作 111.1實(shí)驗(yàn)環(huán)境 111.2網(wǎng)絡(luò)規(guī)劃 121.3實(shí)驗(yàn)環(huán)境的安裝 132.實(shí)驗(yàn)環(huán)境軟件的安裝 222.1基礎(chǔ)軟件包EPEL倉(cāng)庫(kù) 222.2yun安裝 233.基礎(chǔ)服務(wù)部署 243.1數(shù)據(jù)庫(kù)服務(wù) 243.2消息代理服務(wù)RabbitMQ 264.認(rèn)證服務(wù)keystone 274.1keystone的安裝 274.2keystone的配置 284.3keystone管理 304.4驗(yàn)證keystone安裝 325.Imageservices(Glance) 335.1glance安裝 335.2glance配置準(zhǔn)備 335.3設(shè)置數(shù)據(jù)庫(kù) 345.4設(shè)置rabbitmq 355.5設(shè)置keystone 355.6glance啟動(dòng) 365.7測(cè)試glance 376.ComputerServices(Nova) 396.1NOVA安裝 396.2創(chuàng)建配置文件 396.3nova的配置 406.4創(chuàng)建novaservice和endpoint 436.5啟動(dòng)novaservice 446.6安裝novnc并啟動(dòng)該服務(wù) 456.7驗(yàn)證nova的安裝 457.Dashboard(Horizon) 467.1horizon配置 467.2apache配置 467.3啟動(dòng)apache 478..Networkingservices(Neutron) 488.1neutron安裝 488.2neutron配置 488.3neutronplugin 518.4neutron啟動(dòng) 528.5測(cè)試neutron安裝 52第一部分————基礎(chǔ)知識(shí)openstack是什么為了更好的理解,我們首先來(lái)說(shuō)一下云計(jì)算的類型。根據(jù)所提供服務(wù)的類型,云計(jì)算有以下三種落地方式:1、Iaas(基礎(chǔ)架構(gòu)即服務(wù)),用戶能從中申請(qǐng)到硬件或虛擬硬件,包括裸機(jī)或虛擬機(jī),然后在上邊安裝操作系統(tǒng)或其他應(yīng)用程序。2、PaaS(平臺(tái)即服務(wù)),用戶能從中申請(qǐng)到一個(gè)安裝了操作系統(tǒng)以及支撐應(yīng)用程序運(yùn)行所需要的運(yùn)行庫(kù)等軟件的物理機(jī)或虛擬機(jī),然后在上邊安裝其他應(yīng)用程序,但不能修改已經(jīng)預(yù)裝好的操作系統(tǒng)和運(yùn)行環(huán)境。3、SaaS(軟件即服務(wù)),用戶可以通過網(wǎng)絡(luò)以租賃的方式來(lái)使用一些軟件,而不是購(gòu)買,比較常見的模式是提供一組賬號(hào)密碼。OpenStack就是一種IaaS。2010年7月,RackSpace和美國(guó)國(guó)家航空航天局合作,分別貢獻(xiàn)出RackSpace云文件平臺(tái)代碼和NASANebula平臺(tái)代碼,并以Apache許可證開源發(fā)布了OpenStack,OpenStack由此誕生。OpenStack第一版的代號(hào)為Austin,以RackSpace所在的美國(guó)德州Texas首府命名,計(jì)劃每隔幾個(gè)月發(fā)布一個(gè)全新的版本,并且以26個(gè)英文字母為首字母從A到Z順序命名后面的版本。第一版僅有Swift和Nova兩個(gè)項(xiàng)目。2011年2月,OpenStack社區(qū)發(fā)布了Bexar版本,這是OpenStack的第二版,新增了Glance來(lái)提供鏡像服務(wù)。2011年4月,OpenStack社區(qū)發(fā)布了更加穩(wěn)定的Cactus版本,但是這個(gè)版本沒有新的項(xiàng)目。2011年9月,OpenStack發(fā)布了它的第四個(gè)版本Diablo,從此OpenStack的版本更新定為每半年一次,分別是當(dāng)年的春秋兩季?!?OpenStack目前共涵蓋了七個(gè)核心組件,分別是計(jì)算(Compute)、對(duì)象存儲(chǔ)(ObjectStorage)、認(rèn)證(Identity)、用戶界面(Dashboard)、塊存儲(chǔ)(BlockStorage)、網(wǎng)絡(luò)(Network)和鏡像服務(wù)(ImageService)。每個(gè)組件都是多個(gè)服務(wù)的集合,一個(gè)服務(wù)意味著運(yùn)行著的一個(gè)進(jìn)程。Compute(Nova)Compute的項(xiàng)目代號(hào)是Nova,他根據(jù)需求提供虛擬機(jī)服務(wù),比如創(chuàng)建虛擬機(jī)或?qū)μ摂M機(jī)做熱遷移等。ObjectStorage(Swift)它允許存儲(chǔ)或檢索對(duì)象,也可以認(rèn)為它允許存儲(chǔ)或檢索文件,它能以低成本的方式管理大量無(wú)結(jié)構(gòu)數(shù)據(jù)。Identity(Keystone)為所有OpenStack服務(wù)提供身份驗(yàn)證和授權(quán),跟蹤用戶以及他們的權(quán)限,提供一個(gè)可用服務(wù)及API列表。DashBoard(Horizon)它為所有OpenStack的服務(wù)提供一個(gè)模塊化的基于Django的界面,通過這個(gè)界面,不論是最終用戶還是運(yùn)維人員都可以完成大多數(shù)的操作,比如啟動(dòng)虛擬機(jī),分配IP地址,動(dòng)態(tài)遷移等。BlockStorage(Cinder)提供塊存儲(chǔ)服務(wù)Network(Neutron)用于提供網(wǎng)絡(luò)連接服務(wù),允許用戶創(chuàng)建自己的虛擬網(wǎng)絡(luò)并連接各種網(wǎng)絡(luò)設(shè)備接口。ImageService(Glance)提供一個(gè)虛擬機(jī)鏡像的存儲(chǔ)、查詢和檢索服務(wù),通過提供一個(gè)虛擬磁盤映像的目錄和存儲(chǔ)庫(kù),為Nova虛擬機(jī)提供鏡像服務(wù)。下面以創(chuàng)建虛擬機(jī)為例說(shuō)明一下各個(gè)組件之間是如何相互配合完成工作的。用戶首先接觸到的是界面,也就是Horizon。通過Horizon上的簡(jiǎn)單界面操作,一個(gè)創(chuàng)建虛擬機(jī)的請(qǐng)求被發(fā)送到OpenStack系統(tǒng)后端。既然要啟動(dòng)一個(gè)虛擬機(jī),就必須指定虛擬機(jī)操作系統(tǒng)是什么類型,就必須下載啟動(dòng)鏡像以供虛擬機(jī)啟動(dòng)使用,這件事情就有Glance來(lái)完成的,而此時(shí)Glance所管理的鏡像是有可能存儲(chǔ)在Swift上的,所以需要與Swift交互得到需要的鏡像文件。在創(chuàng)建虛擬機(jī)的時(shí)候,自然而然地需要Cinder提供塊服務(wù)和Neutron提供網(wǎng)絡(luò)服務(wù),以便該虛擬機(jī)有volume可以使用,能被分配到IP地址與外界網(wǎng)絡(luò)連接,而且之后改虛擬機(jī)資源的訪問要經(jīng)過KeyStone的認(rèn)證之后才可以繼續(xù)。至此,OpenStack的所有核心組件都參與了這個(gè)創(chuàng)建虛擬機(jī)的操作。官方的解釋相信大家都已經(jīng)了解了,不了解也沒有關(guān)系。現(xiàn)在從常識(shí)的角度來(lái)給大家解釋和說(shuō)明。OpenStack是一個(gè)云平臺(tái)管理的項(xiàng)目,它不是一個(gè)軟件。這個(gè)項(xiàng)目由幾個(gè)主要的組件組合起來(lái)完成一些具體的工作。OpenStack是一個(gè)旨在為公共及私有云的建設(shè)與管理提供軟件的開源項(xiàng)目,OpenStack被公認(rèn)作為基礎(chǔ)設(shè)施即服務(wù)(簡(jiǎn)稱IaaS)資源的通用前端。如果這些還不明白,那么從另外的角度給大家介紹:首先讓大家看下面兩個(gè)圖就很簡(jiǎn)單明了了:

此圖為openstack的登錄界面

可以說(shuō)他是一個(gè)框架,甚至可以從軟件的角度來(lái)理解它。如果不明白,就從傳統(tǒng)開發(fā)來(lái)講解。不知道你是否了解oa,erp等系統(tǒng),他和oa,erp有什么不同。很簡(jiǎn)單就是openstack是用做云計(jì)算的一個(gè)平臺(tái),或則一個(gè)解決方案。它是云計(jì)算一個(gè)重要組成部分。openstack能干什么。大家都知道阿里云平臺(tái),百度云平臺(tái),而阿里云平臺(tái)據(jù)傳說(shuō)就是對(duì)openstack的二次開發(fā)。對(duì)于二次開發(fā)相信只要接觸過軟件的都會(huì)明白這個(gè)概念。不明白的自己網(wǎng)上去查一下。也就是說(shuō)openstack,可以搭建云平臺(tái),什么云平臺(tái),公有云,私有云。openstack自身都包含什么以下是5個(gè)OpenStack的重要構(gòu)成部分:Nova–計(jì)算服務(wù)Swift–存儲(chǔ)服務(wù)Glance–鏡像服務(wù)Keystone–認(rèn)證服務(wù)Horizon–UI服務(wù)Openstack的計(jì)算設(shè)施————NovaNova是OpenStack計(jì)算的彈性控制器。OpenStack云實(shí)例生命期所需的各種動(dòng)作都將由Nova進(jìn)行處理和支撐,這就意味著Nova以管理平臺(tái)的身份登場(chǎng),負(fù)責(zé)管理整個(gè)云的計(jì)算資源、網(wǎng)絡(luò)、授權(quán)及測(cè)度。雖然Nova本身并不提供任何虛擬能力,但是它將使用libvirtAPI與虛擬機(jī)的宿主機(jī)進(jìn)行交互。Nova通過Web服務(wù)API來(lái)對(duì)外提供處理接口,而且這些接口與Amazon的Web服務(wù)接口是兼容的。功能及特點(diǎn)實(shí)例生命周期管理計(jì)算資源管理網(wǎng)絡(luò)與授權(quán)管理基于REST的API異步連續(xù)通信支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMwarevSphere及Hyper-VOpenStack計(jì)算部件Nova彈性云包含以下主要部分:APIServer(nova-api)消息隊(duì)列(rabbit-mqserver)運(yùn)算工作站(nova-compute)網(wǎng)絡(luò)控制器(nova-network)卷管理(nova-volume)調(diào)度器(nova-scheduler)API服務(wù)器(nova-api)API服務(wù)器提供了云設(shè)施與外界交互的接口,它是外界用戶對(duì)云實(shí)施管理的唯一通道。通過使用web服務(wù)來(lái)調(diào)用各種EC2的API,接著API服務(wù)器便通過消息隊(duì)列把請(qǐng)求送達(dá)至云內(nèi)目標(biāo)設(shè)施進(jìn)行處理。作為對(duì)EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStackAPI”。消息隊(duì)列(RabbitMQServer)OpenStack內(nèi)部在遵循AMQP(高級(jí)消息隊(duì)列協(xié)議)的基礎(chǔ)上采用消息隊(duì)列進(jìn)行通信。Nova對(duì)請(qǐng)求應(yīng)答進(jìn)行異步調(diào)用,當(dāng)請(qǐng)求接收后便則立即觸發(fā)一個(gè)回調(diào)。由于使用了異步通信,不會(huì)有用戶的動(dòng)作被長(zhǎng)置于等待狀態(tài)。例如,啟動(dòng)一個(gè)實(shí)例或上傳一份鏡像的過程較為耗時(shí),API調(diào)用就將等待返回結(jié)果而不影響其它操作,在此異步通信起到了很大作用,使整個(gè)系統(tǒng)變得更加高效。運(yùn)算工作站(nova-compute)運(yùn)算工作站的主要任務(wù)是管理實(shí)例的整個(gè)生命周期。他們通過消息隊(duì)列接收請(qǐng)求并執(zhí)行,從而對(duì)實(shí)例進(jìn)行各種操作。在典型實(shí)際生產(chǎn)環(huán)境下,會(huì)架設(shè)許多運(yùn)算工作站,根據(jù)調(diào)度算法,一個(gè)實(shí)例可以在可用的任意一臺(tái)運(yùn)算工作站上部署。網(wǎng)絡(luò)控制器(nova-network)網(wǎng)絡(luò)控制器處理主機(jī)的網(wǎng)絡(luò)配置,例如IP地址分配,配置項(xiàng)目VLAN,設(shè)定安全群組以及為計(jì)算節(jié)點(diǎn)配置網(wǎng)絡(luò)。卷工作站(nova-volume)卷工作站管理基于LVM的實(shí)例卷,它能夠?yàn)橐粋€(gè)實(shí)例創(chuàng)建、刪除、附加卷,也可以從一個(gè)實(shí)例中分離卷。卷管理為何如此重要?因?yàn)樗峁┝艘环N保持實(shí)例持續(xù)存儲(chǔ)的手段,比如當(dāng)結(jié)束一個(gè)實(shí)例后,根分區(qū)如果是非持續(xù)化的,那么對(duì)其的任何改變都將丟失??墒?,如果從一個(gè)實(shí)例中將卷分離出來(lái),或者為這個(gè)實(shí)例附加上卷的話,即使實(shí)例被關(guān)閉,數(shù)據(jù)仍然保存其中。這些數(shù)據(jù)可以通過將卷附加到原實(shí)例或其他實(shí)例的方式而重新訪問。因此,為了日后訪問,重要數(shù)據(jù)務(wù)必要寫入卷中。這種應(yīng)用對(duì)于數(shù)據(jù)服務(wù)器實(shí)例的存儲(chǔ)而言,尤為重要。調(diào)度器(nova-scheduler)調(diào)度器負(fù)責(zé)把nova-API調(diào)用送達(dá)給目標(biāo)。調(diào)度器以名為“nova-schedule”的守護(hù)進(jìn)程方式運(yùn)行,并根據(jù)調(diào)度算法從可用資源池中恰當(dāng)?shù)剡x擇運(yùn)算服務(wù)器。有很多因素都可以影響調(diào)度結(jié)果,比如負(fù)載、內(nèi)存、子節(jié)點(diǎn)的遠(yuǎn)近、CPU架構(gòu)等等。強(qiáng)大的是nova調(diào)度器采用的是可插入式架構(gòu)。目前nova調(diào)度器使用了幾種基本的調(diào)度算法:隨機(jī)化:主機(jī)隨機(jī)選擇可用節(jié)點(diǎn);可用化:與隨機(jī)相似,只是隨機(jī)選擇的范圍被指定;簡(jiǎn)單化:應(yīng)用這種方式,主機(jī)選擇負(fù)載最小者來(lái)運(yùn)行實(shí)例。負(fù)載數(shù)據(jù)可以從別處獲得,如負(fù)載均衡服務(wù)器。Openstack的鏡像服務(wù)器————GlanceOpenStack鏡像服務(wù)器是一套虛擬機(jī)鏡像發(fā)現(xiàn)、注冊(cè)、檢索系統(tǒng),我們可以將鏡像存儲(chǔ)到以下任意一種存儲(chǔ)中:本地文件系統(tǒng)(默認(rèn))OpenStack對(duì)象存儲(chǔ)S3直接存儲(chǔ)S3對(duì)象存儲(chǔ)(作為S3訪問的中間渠道)HTTP(只讀)Glance構(gòu)件Glance控制器Glance注冊(cè)器Glance-API:主要負(fù)責(zé)接收響應(yīng)鏡像管理命令的Restful請(qǐng)求,分析消息請(qǐng)求信息并分發(fā)其所帶的命令(如新增,刪除,更新等)。默認(rèn)綁定端口是9292。Glance-Registry:主要負(fù)責(zé)接收響應(yīng)鏡像元數(shù)據(jù)命令的Restful請(qǐng)求。分析消息請(qǐng)求信息并分發(fā)其所帶的命令(如獲取元數(shù)據(jù),更新元數(shù)據(jù)等)。默認(rèn)綁定的端口是9191。功能及特點(diǎn)提供鏡像相關(guān)服務(wù)

Openstack的管理Web的接口————HorizonHorizon是一個(gè)用以管理、控制OpenStack服務(wù)的Web控制面板,它可以管理實(shí)例、鏡像、創(chuàng)建密匙對(duì),對(duì)實(shí)例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實(shí)例??傊?,Horizon具有如下一些特點(diǎn):實(shí)例管理:創(chuàng)建、終止實(shí)例,查看終端日志,VNC連接,添加卷等訪問與安全管理:創(chuàng)建安全群組,管理密匙對(duì),設(shè)置浮動(dòng)IP等

偏好設(shè)定:對(duì)虛擬硬件模板可以進(jìn)行不同偏好設(shè)定鏡像管理:編輯或刪除鏡像

查看服務(wù)目錄管理用戶、配額及項(xiàng)目用途

用戶管理:創(chuàng)建用戶等

卷管理:創(chuàng)建卷和快照對(duì)象存儲(chǔ)處理:創(chuàng)建、刪除容器和對(duì)象為項(xiàng)目下載環(huán)境變量5.openstack的存儲(chǔ)設(shè)備————swiftSwift為OpenStack提供一種分布式、持續(xù)虛擬對(duì)象存儲(chǔ),它類似于AmazonWebService的S3簡(jiǎn)單存儲(chǔ)服務(wù)。Swift具有跨節(jié)點(diǎn)百級(jí)對(duì)象的存儲(chǔ)能力。Swift內(nèi)建冗余和失效備援管理,也能夠處理歸檔和媒體流,特別是對(duì)大數(shù)據(jù)(千兆字節(jié))和大容量(多對(duì)象數(shù)量)的測(cè)度非常高效。功能及特點(diǎn):海量對(duì)象存儲(chǔ)大文件(對(duì)象)存儲(chǔ)數(shù)據(jù)冗余管理歸檔能力處理大數(shù)據(jù)集為虛擬機(jī)和云應(yīng)用提供數(shù)據(jù)容器處理流媒體對(duì)象安全存儲(chǔ)備份與歸檔良好的可伸縮性Swift組件Swift賬戶

Swift容器Swift對(duì)象Swift代理SwiftRINGSwift代理服務(wù)器用戶都是通過Swift-API與代理服務(wù)器進(jìn)行交互,代理服務(wù)器正是接收外界請(qǐng)求的門衛(wèi),它檢測(cè)合法的實(shí)體位置并路由它們的請(qǐng)求。此外,代理服務(wù)器也同時(shí)處理實(shí)體失效而轉(zhuǎn)移時(shí),故障切換的實(shí)體重復(fù)路由請(qǐng)求。Swift對(duì)象服務(wù)器對(duì)象服務(wù)器是一種二進(jìn)制存儲(chǔ),它負(fù)責(zé)處理本地存儲(chǔ)中的對(duì)象數(shù)據(jù)的存儲(chǔ)、檢索和刪除。對(duì)象都是文件系統(tǒng)中存放的典型的二進(jìn)制文件,具有擴(kuò)展文件屬性的元數(shù)據(jù)(xattr)。注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并沒有有效測(cè)試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運(yùn)行良好。不過,XFS被認(rèn)為是當(dāng)前最好的選擇。Swift容器服務(wù)器容器服務(wù)器將列出一個(gè)容器中的所有對(duì)象,默認(rèn)對(duì)象列表將存儲(chǔ)為SQLite文件(譯者注:也可以修改為MySQL,安裝中就是以MySQL為例)。容器服務(wù)器也會(huì)統(tǒng)計(jì)容器中包含的對(duì)象數(shù)量及容器的存儲(chǔ)空間耗費(fèi)。Swift賬戶服務(wù)器賬戶服務(wù)器與容器服務(wù)器類似,將列出容器中的對(duì)象。Ring(索引環(huán))Ring容器記錄著Swift中物理存儲(chǔ)對(duì)象的位置信息,它是真實(shí)物理存儲(chǔ)位置的實(shí)體名的虛擬映射,類似于查找及定位不同集群的實(shí)體真實(shí)物理位置的索引服務(wù)。這里所謂的實(shí)體指賬戶、容器、對(duì)象,它們都擁有屬于自己的不同的Rings。Openstack的認(rèn)證服務(wù)————KeystoneKeystone為所有的OpenStack組件提供認(rèn)證和訪問策略服務(wù),它依賴自身REST(基于IdentityAPI)系統(tǒng)進(jìn)行工作,主要對(duì)(但不限于)Swift、Glance、Nova等進(jìn)行認(rèn)證與授權(quán)。事實(shí)上,授權(quán)通過對(duì)動(dòng)作消息來(lái)源者請(qǐng)求的合法性進(jìn)行鑒定;Keystone采用兩種授權(quán)方式,一種基于用戶名/密碼,另一種基于令牌(Token)。除此之外,Keystone提供以下三種服務(wù):令牌服務(wù):含有授權(quán)用戶的授權(quán)信息目錄服務(wù):含有用戶合法操作的可用服務(wù)列表策略服務(wù):利用Keystone具體指定用戶或群組某些訪問權(quán)限認(rèn)證服務(wù)組件:服務(wù)入口:如Nova、Swift和Glance一樣每個(gè)OpenStack服務(wù)都擁有一個(gè)指定的端口和專屬的URL,我們稱其為入口(endpoints)。區(qū)位:在某個(gè)數(shù)據(jù)中心,一個(gè)區(qū)位具體指定了一處物理位置。在典型的云架構(gòu)中,如果不是所有的服務(wù)都訪問分布式數(shù)據(jù)中心或服務(wù)器的話,則也稱其為區(qū)位。用戶:Keystone授權(quán)使用者PS:代表一個(gè)個(gè)體,OpenStack以用戶的形式來(lái)授權(quán)服務(wù)給它們。用戶擁有證書(credentials),且可能分配給一個(gè)或多個(gè)租戶。經(jīng)過驗(yàn)證后,會(huì)為每個(gè)單獨(dú)的租戶提供一個(gè)特定的令牌。服務(wù):總體而言,任何通過Keystone進(jìn)行連接或管理的組件都被稱為服務(wù)。舉個(gè)例子,我們可以稱Glance為Keystone的服務(wù)。角色:為了維護(hù)安全限定,就云內(nèi)特定用戶可執(zhí)行的操作而言,該用戶關(guān)聯(lián)的角色是非常重要的。PS:一個(gè)角色是應(yīng)用于某個(gè)租戶的使用權(quán)限集合,以允許某個(gè)指定用戶訪問或使用特定操作。角色是使用權(quán)限的邏輯分組,它使得通用的權(quán)限可以簡(jiǎn)單地分組并綁定到與某個(gè)指定租戶相關(guān)的用戶。租間:租間指的是具有全部服務(wù)入口并配有特定成員角色的一個(gè)項(xiàng)目。PS:一個(gè)租間映射到一個(gè)Nova的“project-id”,在對(duì)象存儲(chǔ)中,一個(gè)租間可以有多個(gè)容器。根據(jù)不同的安裝方式,一個(gè)租間可以代表一個(gè)客戶、帳號(hào)、組織或項(xiàng)目。第二部分————openstack的搭建1.openstack安裝的準(zhǔn)備工作1.1實(shí)驗(yàn)環(huán)境由于我們采用的式偽分布模式來(lái)搭建openstack平臺(tái),所以這里我們采用虛擬機(jī)來(lái)實(shí)現(xiàn)偽分布節(jié)點(diǎn),采用的軟硬件配置如下:主機(jī)硬件環(huán)境軟件環(huán)境主機(jī)OSwindows10專業(yè)版64位(當(dāng)然,其他也行,我試過windows7專業(yè)版64位)虛擬平臺(tái)LinuxOSCentOS-6.5-x86_64至少建立兩臺(tái)虛擬機(jī),分別作為控制,網(wǎng)絡(luò)和計(jì)算節(jié)點(diǎn),這里建議采用克隆方式來(lái)完成。1.2網(wǎng)絡(luò)規(guī)劃兩節(jié)點(diǎn)網(wǎng)絡(luò)規(guī)劃如下:主機(jī)名IP地址作用描述O控制節(jié)點(diǎn)O計(jì)算節(jié)點(diǎn)1.3實(shí)驗(yàn)環(huán)境的安裝安裝OracleVMVirtualBox建立虛擬機(jī)虛擬電腦的安裝位置不建議選在系統(tǒng)啟動(dòng)盤,因?yàn)楹罄m(xù)實(shí)驗(yàn)做完會(huì)有很大的空間被占用,為防止影響系統(tǒng)速度,建議選擇別的盤來(lái)安裝,我的安裝地址如下:安裝完畢重啟即可:網(wǎng)絡(luò)的設(shè)置編輯/etc/sysconfig/network-scripts/ifcfg-eth0和/etc/sysconfig/network-scripts/ifcfg-eth1兩個(gè)文件,分別對(duì)網(wǎng)卡一和網(wǎng)卡二進(jìn)行設(shè)置。(1)設(shè)置網(wǎng)卡1[root@openstack-node1~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=static(2)置網(wǎng)卡2[root@openstack-node1~]#vim/etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=dhcp網(wǎng)絡(luò)內(nèi)部域名解析和hostname的配置(1)設(shè)置主機(jī)的hostname[root@openstack-node1~]#vim/etc/sysconfig/networkNETWORKING=yes(2)設(shè)置主機(jī)節(jié)點(diǎn)的域名解析[root@openstack-node1~]#vim/etc/hosts新添加:注意:openstack-node1s是主機(jī)名,是完整的主機(jī)域名,這個(gè)設(shè)置如果不對(duì)會(huì)導(dǎo)致啟動(dòng)rabbitmq錯(cuò)誤.內(nèi)核參數(shù)調(diào)整[root@openstack-node1~]#vim/etc/sysctl.confNet.ipv4.ip_forward=1Net.ipv4.conf.all,rp_filter=0Net.ipv4.conf.default.rp_filter=0[root@openstack-node1~]#sysctl-p關(guān)閉iptables和selinux關(guān)閉防火墻[root@openstack-node1~]#/etc/init.d/iptablesstop[root@openstack-node1~]#chkconfigiptablesoff[root@openstack-node1~]#chkconfig–list|grepiptables關(guān)閉selinux[root@openstack-node1~]#vim/etc/sysconfig/selinuxSELINUX=disabled系統(tǒng)的克隆C:\VM>nage.execlonevdi“F:\OS-VM\openstack-node1.vdi”“F:\OS-VM\openstack-node2.vdi”的安裝安裝xshell,建立openstack-node1和openstack-node2的連接:2.實(shí)驗(yàn)環(huán)境軟件的安裝2.1基礎(chǔ)軟件包EPEL倉(cāng)庫(kù)[root@openstack-node1~]#rpm-ivh2.2yun安裝[root@openstack-node1~]#yuminstall-ypython-pipgccgcc-c++makelibtoolpatchautomakepython-devellibxslt-develMySQL-pythonopenssl-devellibudev-develgitwgetlibvirt-pythonlibvirtqemu-kvmgeditpython-numdisplaypython-eventletdevice-mapperbridge-utilslibffi-devellibffipython-cryptolrzszswig安裝redhat的rdo倉(cāng)庫(kù)創(chuàng)建倉(cāng)庫(kù)[root@openstack-node1~]#[openstack-icehouse]

name=OpenStackIcehouseRepository

enabled=1

gpgcheck=0

gpgkey=Keystone安裝[root@openstack-node1~]#yuminstallopenstack-keystonepython-keystoneclientGlance的安裝[root@openstack-node1~]#yuminstallopenstack-glancepython-glanceclientpython-cryptoNova控制節(jié)點(diǎn)安裝[root@openstack-node1~]#yuminstallopenstack-nova-apiopenstack-nova-cert\openstack-nova-conductoropenstack-nova-consoleopenstack-nova-novncproxy\openstack-nova-schedulerpython-novaclient注意:nova.conf是配置Nova的核心配置文件,Nova的配置主要圍繞該配置文件Neutron控制節(jié)點(diǎn)安裝[root@openstack-node1~]#yuminstallopenstack-neutronopenstack-neutron-ml2python-neutronclientopenstack-neutron-linuxbridgeHorizon安裝[root@openstack-node1~]#yuminstall-yhttpdmod_wsgimemcachedpython-memcachedopenstack-dashboardCinder控制節(jié)點(diǎn)安裝[root@openstack-node1~]#yuminstallopenstack-cinderpython-cinderclientCinder存儲(chǔ)結(jié)點(diǎn)安裝[root@openstack-node1~]#yuminstallopenstack-cinder3.基礎(chǔ)服務(wù)部署3.1數(shù)據(jù)庫(kù)服務(wù)Mysql安裝[root@openstack-node1~]#yuminstallmysql-server[root@openstack-node1~]#cp/usr/share/mysql/f/etc/f[root@openstack-node1~]#vim/etc/f增加以下配置”[mysqld]default-storage-engine=innodbinnodb_file_per_tablecollation-server=utf8_general_ciinit-connect='SETNAMESutf8'character-set-server=utf8[root@openstack-node1~]#chkconfigmysqldon[root@openstack-node1~]#/etc/init.d/mysqldstart數(shù)據(jù)庫(kù)的安裝[root@openstack-node1~]#mysql-urootmysql>showdatabases;創(chuàng)建keystone數(shù)據(jù)庫(kù)并授權(quán)mysql>createdatabasekeystone;mysql>grantallonkeystone.*tokeystone@'/'identifiedby'keystone';創(chuàng)建glance數(shù)據(jù)庫(kù)并授權(quán)mysql>createdatabaseglance;mysql>grantallonglance.*toglance@'/'identifiedby'glance';創(chuàng)建nova數(shù)據(jù)庫(kù)并授權(quán)mysql>createdatabasenova;mysql>grantallonnova.*tonova@'/'identifiedby'nova';創(chuàng)建neutron并授權(quán)mysql>createdatabaseneutron;mysql>grantallonneutron.*toneutron@'/'identifiedby'neutron';創(chuàng)建cinder并授權(quán)mysql>createdatabasecinder;mysql>grantalloncinder.*tocinder@'/'identifiedby'cinder';3.2消息代理服務(wù)RabbitMQ安裝[root@openstack-node1~]#yum-yinstallncurses-devel[root@openstack-node1~]#yuminstall-yerlangrabbitmq-server[root@openstack-node1~]#chkconfigrabbitmq-serveron啟用Web監(jiān)控插件啟用后就可以通過http://IP:15672/來(lái)訪問web管理界面。默認(rèn)yum安裝的rabbitmq-server沒有將rabbitmq-plugins命令放到搜索路徑,需要使用絕對(duì)路徑來(lái)執(zhí)行。[root@openstack-node1~]#/usr/lib/rabbitmq/bin/rabbitmq-pluginslist[root@openstack-node1~]#/usr/lib/rabbitmq/bin/rabbitmq-pluginsenablerabbitmq_management[root@openstack-node1~]#/etc/init.d/rabbitmq-serverrestart打開本地瀏覽器,輸入http://IP:15672/,這里的IP為,即輸入11:15672,打開如下圖的rabbitmq管理界面,用戶名和密碼都為guest。4.認(rèn)證服務(wù)keystone4.1keystone的安裝安裝包的下載[root@openstack-node1~]#cd/usr/local/src[root@open-node1src]#下載過程中遇到個(gè)別包下載失敗的情況時(shí),只需單獨(dú)重新下載,無(wú)需下載全部。4.2keystone的配置建配置文件[root@openstack-node1src]#cd[root@openstack-node1keystone-2014.1.3]#cpetc/keystone-paste.ini/etc/keystone[root@openstack-node1keystone-2014.1.3]#cpetc/policy.v3cloudsample.json/etc/keystonecdcd/etccdkeystone★因?yàn)榍昂竽夸浻凶兓?,所以我們用這三條命令對(duì)文件地址做出改變,后續(xù)內(nèi)容也會(huì)遇到類似情況,處理方法同此處。[root@openstack-node1keystone]#置keystone(1)配置admin_token[root@openstack-node1~]#ADMIN_TOKEN=$(opensslrand-hex10)[root@openstack-node1~]#echo$ADMIN_TOKEN生成碼;df5ce3edb2690001251c5★:以后會(huì)遇到很多這樣的生成碼,不同的電腦會(huì)產(chǎn)生不同的碼,我們需要注意自己的生成碼,對(duì)照文檔做出相應(yīng)改變。[root@openstack-node1~]#vim/etc/keystone/keystone.conf13admin-token=df5ce3edb2690001251c5前邊的行數(shù)不一定準(zhǔn)確,可能有偏差,需注意(2)配置日志文件374debug=true439log_file=keystone.log444log_dir=/var/log/keystone(3)配置數(shù)據(jù)庫(kù)619connection=mysql注意:以上所示文件配置行數(shù)不一定準(zhǔn)確,只是大概值:(4)驗(yàn)證日志的配置[root@openstack-node1keystone]#grep"^[a-z]"/etc/keystone/keystone.conf設(shè)置PKITOKEN[root@openstack-node1~]#keystone-managepki_setup--keystone-userroot--keystone-grouproot[root@openstack-node1~]#chown-Rroot:root/etc/keystone/ssl[root@openstack-node1~]#chmod-Ro-rwx/etc/keystone/ssl同步數(shù)據(jù)庫(kù)[root@openstack-node1~]#keystone-managedb_sync[root@openstack-node1~]#mysql-h11-ukeystone-pkeystone-e"usekeystone;showtables;"如果現(xiàn)實(shí)如下數(shù)據(jù)庫(kù)列表,就表示數(shù)據(jù)庫(kù)沒問題:4.3keystone管理啟動(dòng)keystone[root@openstack-node1~]#keystone-all--config-file=/etc/keystone/keystone.conf[root@openstack-node1etc]#nohupkeystone-all--config-file=/etc/keystone/keystone.conf&[root@openstack-node1etc]#tail-f/var/log/keystone/keystone.log創(chuàng)建admin用戶[root@openstack-node1~]#exportOS_SERVICE_TOKEN=$ADMIN_TOKEN[root@openstack-node1~]#exportOS_SERVICE_TOKEN=7bb528919fa7fee2bf2c[root@openstack-node1~]#exportOS_SERVICE_ENDPOINT=11:35357/v2.0[root@openstack-node1keystone]#keystonerole-list創(chuàng)建admin用戶[root@openstack-node1~]#keystoneuser-create--name=admin--pass=admin創(chuàng)建admin角色[root@openstack-node1~]#keystonerole-create--name=admin創(chuàng)建admin租戶[root@openstack-node1~]#keystonetenant-create--name=admin--description="AdminTenant"連接adminn的用戶,角色和租戶[root@openstack-node1~]#keystoneuser-role-add--user=admin--tenant=admin--role=admin連接admin用戶,_member_角色admin租戶[root@openstack-node1~]#keystoneuser-role-add--user=admin--role=_member_--tenant=admin查看剛剛創(chuàng)建的用戶等情況:[root@openstack-node1~]#keystoneuser-list[root@openstack-node1~]#keystonerole-list[root@openstack-node1~]#keystonetenant-list創(chuàng)建普通用戶[root@openstack-node1~]#keystoneuser-create--name=demo--pass=demo[root@openstack-node1~]#keystonetenant-create--name=demo--description="DemoTenant"[root@openstack-node1~]#keystoneuser-role-add--user=demo--role=_member_--tenant=demo創(chuàng)建keystone的service和endpoint[root@openstack-node1~]#keystoneservice-create--name=keystone--type=identity--description="OpenStackIdentity"[root@openstack-node1~]#keystoneservice-list[root@openstack-node1~]#keystoneendpoint-create--service-id=8031013255c942578e4e9c06811fa836\--publicurl=11:5000/v2.0\--internalurl=11:5000/v2.0\--adminurl=11:35357/v2.0黃色部分是一個(gè)隨機(jī)生成碼,必須與第一條命令輸入后產(chǎn)生的碼相同。如果不同則會(huì)報(bào)錯(cuò),情況如下:[root@openstack-node1~]#keystoneendpoint-list[root@openstack-node1~]#keystone--help|greplist4.4驗(yàn)證keystone安裝unsetOS_SERVICE_TOKENSO_SERVICE_ENDPOINT驗(yàn)證測(cè)試[root@openstack-node1~]#keystone--os_username=admin--os_password=admin--os-auth-url=11:35357/v2.0token-get[root@openstack-node1~]#:35357/v2.0token-get環(huán)境變量配置[root@openstack-node1~]#vimkeystone-adminexportOS_TENANT_NAME=adminexportOS_USERNAME=adminexportOS_PASSWORD=adminexportOS_AUTH_URL=11:35357/v2.0[root@openstack-node1~]#keystonetoken-get[root@openstack-node1~]#sourcekeystone-admin[root@openstack-node1~]#keystonetoken-get[root@openstack-node1~]#vimkeystone-demoexportOS_TENANT_NAME=demoexportOS_USERNAME=demoexportOS_PASSWORD=demoexportOS_AUTH_URL=11:35357/v2.0[root@openstack-node1~]#sourcekeystone-admin[root@openstack-node1~]#keystoneuser-role-list--useradmin--tenantadmin[root@openstack-node1~]#keystoneuser-role-list--userdemo--tenantdemo[root@openstack-node1~]#sourcekeystone-demo[root@openstack-node1~]#keystoneuser-role-list--userdemo--tenantdemo5.Imageservices(Glance)5.1glance安裝因?yàn)橹耙呀?jīng)安裝,所以可以省略,省略后若發(fā)現(xiàn)后邊內(nèi)容無(wú)法進(jìn)行,只需重新安裝即可:[root@openstack-node1~]#[root@openstack-node1glance-2014.1.3]#pythonsetup.pyinstall5.2glance配置準(zhǔn)備復(fù)制配置文件復(fù)制源碼包的配置文件到/etc/glance目錄下[root@openstack-node1~]#c[root@openstack-node1etc]#cp*/etc/glance/此處復(fù)制過程除了glance-api.conf和glance-registry.conf選擇覆蓋外,其余同名文件選擇n,即不覆蓋。[root@openstack-node1~]#cd/etc/glance/更改部分配置文件的文件名[root@openstack-node1glance]#mvf.samplef[root@openstack-node1glance]#mvproperty-protections-policies.conf.sampleproperty-protectionds-policies.conf[root@openstack-node1glance]#mvproperty-protections-roles.conf.sampleproperty-protections-roles.conf5.3設(shè)置數(shù)據(jù)庫(kù)配置文件[root@openstack-node1glance]#vim/etc/glance/glance-api.conf[root@openstack-node1glance]#vimglance-registry.conf同步數(shù)據(jù)庫(kù)[root@openstack-node1glance]#glance-managedb_sync[root@openstack-node1glance]#mysql-h11-uglance-pglance-e"useglance;showtables;"5.4設(shè)置rabbitmq[root@openstack-node1]#vim/etc/glance/glance-api.conf5.5設(shè)置keystone[root@openstack-node1]#vim/etc/glance/glance-api.conf[root@openstack-node1]#vim/etc/glance/glance-registry.conf[root@openstack-node1]#5.6glance啟動(dòng)的命令啟動(dòng)[root@openstack-node1]#glance-api--config-file=/etc/glance/glance-api.conf[root@openstack-node1]#glance-registry--config-file=/etc/glance/glance-registry.conf的腳本啟動(dòng)[root@openstack-node1]#gitclone/unixhot/openstack-inc.git[root@openstack-node1]#cdopenstack-inc/control/init.d[root@openstack-node1init.d]#cpopenstack-keystoneopenstack-glance-*/etc/init.d[root@openstack-node1]#chmod+x/etc/init.d/openstack-glance-*[root@openstack-node1]#chkconfig--addopenstack-glance-api[root@openstack-node1]#chkconfig--addopenstack-glance-registry[root@openstack-node1]#chkconfigopenstack-glance-apion[root@openstack-node1]#chkconfigopenstack-glance-registryon[root@openstack-node1]#/etc/init.d/openstack-glance-apistart[root@openstack-node1]#/etc/init.d/openstack-glance-registrystart[root@openstack-node1]#chkconfig--addopenstack-keystone[root@openstack-node1]#chkconfigopenstack-keystoneon[root@openstack-node1]#psaux|grepkeystone[root@openstack-node1]#/etc/init.d/openstack-keystonestart[root@openstack-node1]#psaux|grepkeystone5.7測(cè)試glance在keystone中注冊(cè)glance[root@openstack-node1]#glanceimage-list[root@openstack-node1]#sourcekeystone-admin[root@openstack-node1]#glanceimage-list[root@openstack-node1]#keystoneservice-create--name=glance--type=image[root@openstack-node1]#keystoneendpoint-create\>--service-id=2976f75c8326421096b63609782a569a\>--publicurl=11:9292\>--internalurl=11:9292\>--adminurl=11:9292[root@openstack-node1]#keystoneservice-list[root@openstack-node1]#keystoneendpoint-list[root@openstack-node1]#glanceimage-list的鏡像測(cè)試[root@openstack-node1]#[root@openstack-node1]#[root@openstack-node1]#glanceimage-list[root@openstack-node1]#cd/var/lib/glance/images6.ComputerServices(Nova)6.1NOVA安裝[可忽略]pythonsetup.pyinstall6.2創(chuàng)建配置文件復(fù)制部分配置文件:cdetc/nova/cp-a*/etc/nova/cd/etc/nova/mvlogging_sample.conflogging.conf6.3nova的配置配置數(shù)據(jù)庫(kù)vim/etc/nova/nova.conf同步數(shù)據(jù)庫(kù)nova-managedbsyncmysql-h11-unova-pnova-e"usenova;showtables;"配置相關(guān)配置vim/etc/nova/nova.conf相關(guān)配置vim/etc/nova/nova.conf查看配置內(nèi)容grep"^[a-z]"/etc/nova/nova.conf6.4創(chuàng)建novaservice和endpointsourcekeystone-adminkeystoneservice-list創(chuàng)建novaservicekeystoneservice-create--name=nova--type=compute創(chuàng)建novaendpointkeystoneendpoint-create\>--service-id=5295489b1be44bbcaa4489657e8bd6a0\>--publicurl=11:8774/v2/%\(tenant_id\)s\>--internalurl=11:8774/v2/%\(tenant_id\)s\>--adminurl=11:8774/v2/%\(tenant_id\)s一般情況下多或者少空格不影響實(shí)驗(yàn)進(jìn)行,但是在此處>--service-id=5295489b1be44bbcaa4489657e8bd6a0\等號(hào)后面一定不能出現(xiàn)空格,要不會(huì)出現(xiàn)報(bào)錯(cuò),具體情況如下:正確結(jié)果如下:keystoneservice-list6.5啟動(dòng)novaservicemkdir/var/lib/nova/tmpcdopenstack-inc/control/init.dcpopenstack-nova-*/etc/init.d/chmod+x/etc/init.d/openstack-nova-*foriin{api,cert,conductor,console,consoleauth,novncproxy,scheduler};dochkconfig--addopenstack-nova-$i;doneforiin{api,cert,conductor,console,consoleauth,novncproxy,scheduler};dochkconfigopenstack-nova-$ion;doneforiin{api,cert,conductor,console,consoleauth,novncproxy,scheduler};doserviceopenstack-nova-$istart;donepsaux|grepnova6.6安裝novnc并啟動(dòng)該服務(wù)cd/usr/local/srcmvnoVNC-0.5//usr/share/novnc/etc/init.d/openstack-nova-novncproxystart6.7驗(yàn)證nova的安裝novahost-listnovaflavor-list7.Dashboard(Horizon)7.1horizon配置cd/usr/local/srcmvhorizon-2014.1.3/var/www/mvlocal_settings.py.examplelocal_settings.py7.2apache配置vim/etc/httpd/conf.d/horizon.conf<VirtualHost*:80>ErrorLog/var/log/httpd/horizon_error.logLogLevelinfoCustomLog/var/log/httpd/horizon_access.logcombinedWSGIApplicationGrouphorizonSetEnvAPACHE_RUN_USERapacheSetEnvAPACHE_RUN_GROUPapacheWSGIProcessGrouphorizon<Directory/var/www/horizon-2014.1.3/>OptionsFollowSymLinksMultiViewsAllowOverrideNoneOrderallow,denyAllowfromall</Directory></VirtualHost>WSGISocketPrefix/var/run/horizon7.3啟動(dòng)apacheChown–/etc/init.d/httpdrestart8..Networkingservices(Neutron)8.1neutron安裝[root@openstack-node1neutron-2014.1.3]#pythonsetup.pyinstall8.2neutron配置配置文件初始化[root@openstack-node1neutron-2014.1.3]#cp-aetc/*/etc/neutroncp:overwrite`/etc/neutron/dhcp_agent.ini'?ycp:overwrite`/etc/neutron/fwaas_driver.ini'?ycp:overwrite`/etc/neutron/l3_agent.ini'?ycp:overwrite`/etc/neutron/lbaas_agent.ini'?ycp:overwrite`/etc/neutron/metadata_agent.ini'?ycp:overwrite`/etc/neutron/neutron.conf'?ycp:overwrite`/etc/neutron/policy.json'?ycp:overwrite`/etc/neutron/rootwrap.conf'?y數(shù)據(jù)庫(kù)配置[root@openstack-node1~]#vim/etc/neutron/neutron.conf411connection=mysql://neutron:neutron@11:3306/neutron8.2.3keystone相關(guān)配置[root@openstack-node1~]#vim/etc/neutron/neutron.conf70auth_strategy=keystone396auth_port=35357397auth_protocol=http398admin_tenant_name=admin399admin_user=admin400admin_password=admin401signing_dir=admin相關(guān)配置[root@openstack-node1~]#vim/etc/neutron/neutron.conf136rabbit_password=openstack138rabbit_port=5672143rabbit_userid=guest145rabbit_virtual_host=/相關(guān)配置在neutron.conf[root@openstack-node1~]#vim/etc/nova/nova.conf299notify_nova_on_port_status_changes=True303notify_nova_on_port_data_changes=True306nova_url=11:8774/v2312nova_admin_username=admin318nova_admin_password=admin321nova_admin_auth_url=11:35357/v2.0網(wǎng)絡(luò)和日志相關(guān)配置日志文件的配置:3verbose=true6debu

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論