前言:想要寫出一篇引人入勝的文章?我們特意為您整理了談中小規(guī)模私有服務(wù)器集群方案設(shè)計(jì)范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:私有服務(wù)器集群部署的程序運(yùn)行環(huán)境具備一定的可控性和靈活性。針對中小型企業(yè),尤其是在企業(yè)項(xiàng)目孵化、驗(yàn)證、開發(fā)、測試等階段,程序運(yùn)行環(huán)境的可控性和靈活性是十分必要的。該文針對中小規(guī)模私有服務(wù)器集群方案設(shè)計(jì)進(jìn)行研究,提出了一套集群設(shè)計(jì)方案,能夠保證集群環(huán)境的可控性和靈活性,最大限度地利用服務(wù)器硬件資源、提升開發(fā)效率、降低運(yùn)維成本。中小型企業(yè)通過應(yīng)用該方案能夠節(jié)省大量的經(jīng)濟(jì)成本。
關(guān)鍵詞:私有云;服務(wù)器集群;集群方案;隔離網(wǎng)絡(luò)
盡管目前的公有云和私有云實(shí)踐如火如荼,但是云架構(gòu)本身具有一定的技術(shù)和經(jīng)濟(jì)門檻,并需要一個(gè)專業(yè)的云架構(gòu)運(yùn)維團(tuán)隊(duì)。具備這種條件對中小型企業(yè)來說具有一定的難度。中小規(guī)模私有服務(wù)器集群自身具備的自主全可控的優(yōu)勢,解決中小型企業(yè)存在基本需求但尚未有上云需求的兩難問題。中小型企業(yè)可以通過部署私有服務(wù)器集群,來支撐企業(yè)項(xiàng)目的孵化、驗(yàn)證、開發(fā)、調(diào)試等階段的基本需求。針對部分項(xiàng)目的特殊需求,項(xiàng)目系統(tǒng)需要運(yùn)行在私有的隔離網(wǎng)絡(luò)環(huán)境中,都需要部署一套私有服務(wù)器集群。私有服務(wù)器集群在建設(shè)和使用方面都必須滿足一定的規(guī)范,才能夠達(dá)到合理利用服務(wù)器硬件資源、提升開發(fā)效率、降低運(yùn)維成本的效果。本文中的中小規(guī)模私有服務(wù)器集群設(shè)計(jì)方案就是私有服務(wù)器集群的建設(shè)和使用規(guī)范。
1集群方案設(shè)計(jì)原則
中小規(guī)模私有服務(wù)器集群方案設(shè)計(jì)的原則是要充分提高集群的可控性和靈活性。集群的可控性能夠保證項(xiàng)目軟件具備一致的驗(yàn)證、開發(fā)、測試、運(yùn)行環(huán)境,保證軟件不會(huì)因?yàn)槌绦蜻\(yùn)行環(huán)境差異而產(chǎn)生異常,避免產(chǎn)生額外的調(diào)試負(fù)擔(dān)。集群的靈活性能夠保證集群可以部署多樣化的程序運(yùn)行環(huán)境,有針對性地滿足各種項(xiàng)目不同的環(huán)境需求。
2集群設(shè)計(jì)方案
中小規(guī)模私有服務(wù)器集群所涉及的內(nèi)容非常廣泛,需要能夠配置多種程序運(yùn)行環(huán)境,承載項(xiàng)目的各種應(yīng)用程序。集群方案的設(shè)計(jì)主要分為硬件系統(tǒng)和軟件服務(wù)兩大部分。集群方案的整體架構(gòu)如圖1所示。硬件系統(tǒng)主要包括服務(wù)器及其安裝的操作系統(tǒng)、配套網(wǎng)絡(luò)設(shè)備等。軟件服務(wù)指的是運(yùn)行在集群上的組建各種軟件環(huán)境的應(yīng)用程序及配套服務(wù)。軟件服務(wù)分為三類,分別是:(1)集群基礎(chǔ)服務(wù):構(gòu)建集群所需的基礎(chǔ)設(shè)施服務(wù),主要包括系統(tǒng)軟件源、自定義軟件源和時(shí)間同步服務(wù)等;(2)應(yīng)用服務(wù):運(yùn)行在硬件系統(tǒng)之上的與業(yè)務(wù)相關(guān)的各種應(yīng)用服務(wù),包括大數(shù)據(jù)服務(wù)、Docker微服務(wù)、數(shù)據(jù)庫服務(wù)、團(tuán)隊(duì)協(xié)作服務(wù)、單應(yīng)用服務(wù)和虛擬化云服務(wù)等。根據(jù)不同的業(yè)務(wù)場景需求選擇安裝一種或多種應(yīng)用服務(wù);(3)操作管理服務(wù):操作管理集群的基礎(chǔ)服務(wù),主要包括用戶權(quán)限管理、遠(yuǎn)程管理服務(wù)、文件交互服務(wù)、集群內(nèi)容管理等。
2.1硬件系統(tǒng)
組建中小規(guī)模私有服務(wù)器集群通常需要服務(wù)器3臺及以上,如果數(shù)量不足3臺,那么只需要將各項(xiàng)服務(wù)混合部署即可。集群中服務(wù)器的處理器總核數(shù)、內(nèi)存容量、磁盤類型及容量、網(wǎng)卡類型及帶寬可以根據(jù)業(yè)務(wù)的實(shí)際需求來自行選擇。表1中提供了計(jì)算型、存儲(chǔ)型和中間型三種類型中高檔需求的服務(wù)器配置參考示例。集群配套網(wǎng)絡(luò)設(shè)備的核心是交換機(jī),交換機(jī)應(yīng)該支持1000Mb/s速率或更高,可以采用華為、H3C或者思科等品牌的網(wǎng)管或非網(wǎng)管交換機(jī)。在視頻傳輸、大數(shù)據(jù)分布式計(jì)算、分布式存儲(chǔ)等必要的應(yīng)用場景下,如果遇到網(wǎng)絡(luò)性能瓶頸,可以選擇使用光口萬兆交換機(jī)。服務(wù)器的操作系統(tǒng)建議使用CentOS7,因?yàn)镃entOS官方提供了完整的基礎(chǔ)軟件安裝源,同時(shí)CentOS7已經(jīng)從系統(tǒng)內(nèi)核原生支持Docker服務(wù)。如果服務(wù)器的數(shù)量增加到5臺以上,可以將其中一臺服務(wù)器安裝為WindowsServer桌面版操作系統(tǒng),因?yàn)轫?xiàng)目中使用的部分軟件可能必須運(yùn)行在WindowsServer操作系統(tǒng)上。如果安裝WindowsServer系統(tǒng)純粹為了方便運(yùn)維管理,那么可以適當(dāng)降低該服務(wù)器的配置。評價(jià)硬件系統(tǒng)性能負(fù)載的指標(biāo)主要是系統(tǒng)線程數(shù)與處理器總核數(shù)的比例關(guān)系、內(nèi)存使用量、磁盤讀寫速度、磁盤使用量、網(wǎng)卡實(shí)時(shí)帶寬大小等方面。
2.2軟件服務(wù)
2.2.1集群基礎(chǔ)服務(wù)集群基礎(chǔ)服務(wù)作為服務(wù)器集群的基礎(chǔ)設(shè)施,主要包括基礎(chǔ)軟件源、自定義軟件源和時(shí)間同步服務(wù)等三部分。集群內(nèi)部的基礎(chǔ)軟件源和自定義軟件源保證了集群內(nèi)各服務(wù)器安裝的所有軟件都來自同一源頭,時(shí)間同步服務(wù)可以為集群中各個(gè)服務(wù)器提供時(shí)間同步服務(wù),共同保證了程序運(yùn)行環(huán)境的一致性,達(dá)到集群環(huán)境的可控性。(1)基礎(chǔ)軟件源CentOS官方提供了完整的操作系統(tǒng)配套基礎(chǔ)軟件的安裝源,這些軟件中包括可執(zhí)行的工具軟件,也包括其他軟件依賴的運(yùn)行庫軟件。將CentOS官方提供的基礎(chǔ)軟件鏡像中的軟件源部署到服務(wù)器集群內(nèi)部,以HTTP的形式為每一臺CentOS服務(wù)器提供遠(yuǎn)程軟件源支持。需要注意的是,即使服務(wù)器集群可以連接互聯(lián)網(wǎng),也推薦在集群中部署基礎(chǔ)軟件源,以確保軟件安裝源的可控性。(2)自定義軟件源如果遇到一些CentOS官方軟件源中沒有的軟件,或者軟件版本等不符合要求的軟件,就需要?jiǎng)?chuàng)建自定義軟件源。自定義軟件源可以是使用createrepo命令創(chuàng)建的rpm包軟件源形式,也可以是提供程序可執(zhí)行文件壓縮包的形式。自定義軟件源需要符合軟件完備性的要求,也就是通過自定義軟件源安裝軟件的時(shí)候,除了能夠依賴集群內(nèi)的基礎(chǔ)軟件源之外,不能夠再依賴其他任何第三方的服務(wù)。軟件依賴的完備性是為了防止經(jīng)過一段時(shí)間后,外部依賴軟件版本更新,導(dǎo)致項(xiàng)目軟件無法適配依賴軟件新版本的情況發(fā)生。(3)時(shí)間同步服務(wù)在服務(wù)器集群中存在不同服務(wù)器之間的系統(tǒng)交互,或者集群部署分布式系統(tǒng)時(shí),服務(wù)器之間的時(shí)間不一致會(huì)導(dǎo)致系統(tǒng)功能出現(xiàn)異常甚至系統(tǒng)崩潰。所以在集群中需要時(shí)間同步服務(wù),保證各個(gè)服務(wù)器之間的時(shí)間同步。集群中的時(shí)間同步服務(wù)整體的設(shè)計(jì)結(jié)構(gòu)如圖2所示。集群內(nèi)的時(shí)間同步服務(wù)需要選取一臺CentOS服務(wù)器作為集群時(shí)間同步服務(wù)器,其他的服務(wù)器啟動(dòng)時(shí)間同步服務(wù),通過該服務(wù)器進(jìn)行時(shí)間同步。如果集群網(wǎng)絡(luò)能夠連接其他網(wǎng)絡(luò)或者互聯(lián)網(wǎng),集群時(shí)間同步服務(wù)器可以指定向其他網(wǎng)絡(luò)或者互聯(lián)網(wǎng)的時(shí)間同步服務(wù)器進(jìn)行時(shí)間同步。在CentOS服務(wù)器上,使用chrony來創(chuàng)建時(shí)間同步服務(wù),可以配置接受其他服務(wù)器進(jìn)行時(shí)間同步的請求,也可以配置向其他服務(wù)器請求時(shí)間同步。WindowsServer類型的服務(wù)器,可以將系統(tǒng)的時(shí)間同步服務(wù)器地址修改為集群時(shí)間同步服務(wù)器,實(shí)現(xiàn)時(shí)間同步。
2.2.2應(yīng)用服務(wù)集群中安裝的應(yīng)用服務(wù)是體現(xiàn)集群功能靈活性的關(guān)鍵,集群中的應(yīng)用服務(wù)可以單獨(dú)部署,也可以混合部署,主要包括大數(shù)據(jù)服務(wù)、Docker微服務(wù)、數(shù)據(jù)庫服務(wù)、團(tuán)隊(duì)協(xié)作服務(wù)、單應(yīng)用服務(wù)、虛擬化云服務(wù)等。(1)大數(shù)據(jù)服務(wù)大數(shù)據(jù)服務(wù)中包含大數(shù)據(jù)的多種組件,根據(jù)不同組件的相互配合,能夠滿足多種復(fù)雜場景之下的大數(shù)據(jù)應(yīng)用。集群中可以安裝Ambari系統(tǒng)管理大數(shù)據(jù)組件,其中包括HDFS、MapRe⁃duce、Spark、Kafka、Storm、Flume、Zookeeper等。(2)Docker微服務(wù)Docker是目前非常主流的一種微服務(wù)組件管理方式,提供了多種多樣的公用組件,還可以配合k8s、Compose等組件進(jìn)行服務(wù)管理。Docker為各種不同組件抽象出一套通用的管理方法,將各個(gè)組件的安裝管理模式統(tǒng)一化,使各個(gè)組件的操作差異僅僅局限在軟件配置上。極大降低了組件的使用復(fù)雜程度,有利于開發(fā)人員的學(xué)習(xí)和使用。(3)數(shù)據(jù)庫服務(wù)集群式的數(shù)據(jù)庫服務(wù)包括兩種形式,一種是MySQL多節(jié)點(diǎn)部署的主從備份式數(shù)據(jù)庫,另外一種是并行計(jì)算數(shù)據(jù)庫,如Greenplum。前者實(shí)現(xiàn)低延時(shí)OLTP的高可用配置數(shù)據(jù)庫;后者實(shí)現(xiàn)了大規(guī)模的數(shù)據(jù)倉庫,以存儲(chǔ)大量、追加型、無修改、不刪除類型的日志型數(shù)據(jù),滿足OLAP和容忍較高延時(shí)的OLTP場景需求。(4)團(tuán)隊(duì)協(xié)作服務(wù)項(xiàng)目團(tuán)隊(duì)開發(fā),需要團(tuán)隊(duì)協(xié)作服務(wù)的支持,需要安裝Git、SVN等代碼托管服務(wù),再進(jìn)一步還可以安裝Jenkins等用于流水線作業(yè)、自動(dòng)化運(yùn)維的服務(wù)組件。(5)單應(yīng)用服務(wù)單應(yīng)用服務(wù)指的是單服務(wù)器上運(yùn)行的軟件,可能是一個(gè)Python腳本,也可能是一個(gè)Java開發(fā)的可運(yùn)行Jar包程序。單應(yīng)用服務(wù)程序的部署需要考慮部署服務(wù)器的處理器負(fù)載、內(nèi)存、磁盤和網(wǎng)絡(luò)帶寬的使用情況,要保持各個(gè)服務(wù)器運(yùn)行負(fù)載基本持平。為了保證程序運(yùn)行安全和系統(tǒng)穩(wěn)定,單服務(wù)運(yùn)行時(shí)需要采取分用戶的方式運(yùn)行,為應(yīng)用程序創(chuàng)建特定用戶,分配必要的權(quán)限,使程序運(yùn)行在限制權(quán)限的環(huán)境中,不能因?yàn)閱蝹€(gè)服務(wù)的問題,導(dǎo)致其他服務(wù)甚至系統(tǒng)異常。(6)虛擬化云服務(wù)項(xiàng)目系統(tǒng)的開發(fā)是一個(gè)非常復(fù)雜的工程。系統(tǒng)的涉及面越廣,出現(xiàn)的不可控因素的可能性越大,需要的程序運(yùn)行環(huán)境越復(fù)雜,僅僅靠有限數(shù)量的服務(wù)器和CentOS7、WindowsServer兩種操作系統(tǒng)無法支撐。在這種情況下,可以通過虛擬化云服務(wù)對系統(tǒng)環(huán)境進(jìn)行擴(kuò)展,安裝CentOS6、CentOS7、Ubuntu、Win⁃dows等操作系統(tǒng)的云主機(jī)運(yùn)行環(huán)境,增強(qiáng)集群環(huán)境的靈活性。目前主流的服務(wù)器處理器都支持虛擬化特性,部分服務(wù)器需要在BIOS中打開虛擬化支持。安裝虛擬化云服務(wù),可以在CentOS7系統(tǒng)中安裝VMware軟件作為虛擬機(jī)管理器,在Win⁃dowsServer上安裝VMware客戶端,遠(yuǎn)程管理運(yùn)行在CentOS7系統(tǒng)上的VMware云主機(jī)。通過對云主機(jī)設(shè)置不同的網(wǎng)絡(luò)連接方法和端口映射模式,可以靈活地調(diào)整外部對云主機(jī)內(nèi)部應(yīng)用的使用方法。
2.2.3操作管理服務(wù)(1)用戶權(quán)限管理對應(yīng)用程序進(jìn)行分用戶權(quán)限進(jìn)行管理,是保證集群服務(wù)安全性的有效手段。通過對不同用戶設(shè)置不同的權(quán)限,降低當(dāng)前用戶運(yùn)行程序帶來的異常對其他用戶運(yùn)行程序造成的影響。(2)遠(yuǎn)程管理服務(wù)服務(wù)器集群的維護(hù)工作,除了在系統(tǒng)崩潰、網(wǎng)絡(luò)中斷等極端情況下,都會(huì)使用遠(yuǎn)程管理的方法。遠(yuǎn)程管理服務(wù)主要有面向Linux的SSH、VNC服務(wù)和面向Windows的遠(yuǎn)程桌面、Team⁃Viewer等遠(yuǎn)程控制服務(wù)。服務(wù)器集群中必須部署符合實(shí)際情況的遠(yuǎn)程管理服務(wù)。(3)文件交互服務(wù)服務(wù)器集群中豐富的應(yīng)用內(nèi)容,都需要從集群外部獲得相關(guān)文件;集群內(nèi)部生成的文件,也有可能需要從集群內(nèi)部導(dǎo)出到集群外部。集群內(nèi)外文件交互的方式通常有HTTP、遠(yuǎn)程桌面拷貝、SFTP/FTP等方式,特殊環(huán)境下只能通過U盤,甚至光盤拷貝來進(jìn)行文件交互。(4)集群內(nèi)容管理集群投入使用后,集群中的內(nèi)容會(huì)逐漸增多,如果不能夠?qū)簝?nèi)容進(jìn)行有效的管理,集群使用和運(yùn)維工作會(huì)變得越來越困難。對集群內(nèi)容進(jìn)行清單式管理,就是要詳細(xì)記錄集群內(nèi)安裝的各項(xiàng)服務(wù)的配置信息和各項(xiàng)服務(wù)之間的關(guān)聯(lián)情況。各項(xiàng)服務(wù)的配置信息包括服務(wù)名稱、服務(wù)內(nèi)容、服務(wù)部署的IP地址、應(yīng)用的端口、用戶名/密碼、啟動(dòng)方式、關(guān)閉方式等細(xì)節(jié)信息。各項(xiàng)服務(wù)之間的關(guān)聯(lián)情況包括各個(gè)服務(wù)的相互依賴情況。清單式的集群內(nèi)容管理不僅方便集群的日常維護(hù),也便于集群使用人員的信息共享。
3軟件沖突解決方案
在服務(wù)器集群中混合部署多種應(yīng)用程序,可能會(huì)遇到大量的軟件沖突問題,包括軟件依賴沖突、部署端口沖突等。解決沖突的方案有三種:(1)通過修改程序源代碼或者修改配置文件的方式來消除沖突點(diǎn);(2)將沖突雙方調(diào)整到不同的服務(wù)器上部署;(3)利用集群中的虛擬化云服務(wù)重建一套云主機(jī)環(huán)境部署沖突程序。
4總結(jié)
本文提出了一套中小規(guī)模私有服務(wù)器集群設(shè)計(jì)方案,通過對硬件環(huán)境和軟件服務(wù)的規(guī)范化設(shè)計(jì),可以使集群滿足大數(shù)據(jù)計(jì)算、微服務(wù)部署、數(shù)據(jù)庫存儲(chǔ)、虛擬化云環(huán)境等多方面的綜合應(yīng)用。集群基礎(chǔ)服務(wù)構(gòu)建了服務(wù)器集群的基礎(chǔ)設(shè)施,操作管理服務(wù)規(guī)范了對集群使用的原則和方法,有利于集群的規(guī)范化管理。
參考文獻(xiàn):
[1]劉勝娃,陳思錦,李衛(wèi),等.面向企業(yè)私有云計(jì)算平臺的安全構(gòu)架研究[J].現(xiàn)代電子技術(shù),2014,37(4):34-36.
[2]張延彬,張誌,岳思思.私有云資源池網(wǎng)絡(luò)應(yīng)用實(shí)踐[J].網(wǎng)絡(luò)安全和信息化,2019(11):84-87.
[3]代彥.基于Vmware虛擬化技術(shù)的服務(wù)器集群的架構(gòu)與應(yīng)用[J].電子技術(shù)與軟件工程,2018(23):129.
[4]毛少楓.基于Docker容器的在線實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2019.
[5]李廣鵬,王柯.基于私有云環(huán)境全棧數(shù)據(jù)保護(hù)的研究及實(shí)踐[J].中國信息化,2019(10):56-57.
作者:賈叢飛 單位:公安部第一研究所