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