鄭逸凡



摘要:云計算是一種全新的計算資源分配模式,用戶可以通過終端按需使用服務器的計算資源。云端計算資源需要被池化才能供眾多用戶使用,用戶在使用云端資源時并不知道服務器的具體地理位置。建設具體的云端環境時到底需要使用什么技術,這與終端的用戶緊密關聯,不同的終端用戶類型決定了云端的組建技術也是不同的。
關鍵詞:云計算;虛擬機;負載均衡
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2020)09-0037-03
云計算的核心在于云端,必須根據用戶的需求,彈性分配計算資源。當用戶的請求增多時,云端可以相應的增加服務器,擴充計算能力;當用戶需要的計算資源減少時,云端可以自動讓多余的服務器處于休眠狀態,降低能源消耗。云端是運行各種軟件來完成相應任務的地方,云端采用的技術與任務的大小有關,大型任務需要多臺計算機組成一個集群來完成,小型任務只需要一臺計算機中的某個虛擬機來完成。
1 云布局
網絡延遲時間是衡量一個網絡是否順暢的重要標志,對于實時性交互要求高的軟件來說,云端到終端的網絡通訊時間應該控制在100毫秒以內,超出這個時間,用戶的體驗就會降低[1]。減小網絡延遲時間的方法是減少終端與云端網絡路徑上的節點數或者提高網絡設備的轉發速度,把云端建在網絡延遲小的地方是一種云布局解決方案。比如,在大城市建設存儲云,專門存儲用戶數據;在各個省會城市建設中等規模的云端分部,其主要作用是計算,數據依然保存在存儲云中;在地級市建設小型云端支部,負責本地區的計算任務。還有一種類似的解決方案是內容分發網絡,簡稱CDN,用戶可以就近訪問所需的內容,用戶體驗好,傳輸成本低,一個基本的CDN網絡如圖1所示。
2 存儲技術
云計算的本質是把服務器、網絡設備、存儲設備以及各種軟件轉化為服務產品,用戶通過網絡在線使用這些產品及服務,這里的存儲一方面是指虛擬內存的組成部分,另一方面指的是軟件和數據的存放場所[2]。讓CPU和存儲分離可以實現共享存儲,便于計算機資源橫向伸縮,目前能實現共享存儲的技術有FC、FCoE、iSCSI、NFS、CIFS等,前三個是磁盤塊共享技術,后兩個是文件共享技術。
云端主要采用的存儲技術是分布式存儲,通過分布式文件系統把多臺計算機的存儲資源整合成一個大的存儲空間。對于每一臺具體的計算機而言,既有直接插在主板上的直接存儲,又有通過網絡連接的外部存儲,服務器存儲局域網(Server SAN)逐漸在各個數據中心的建設中起到重要的作用,例如Ceph分布式存儲系統就屬于Server SAN,已經被很多數據中心采用。
3 虛擬化與容器技術
虛擬化是云計算的重要技術,主要用于服務器、網絡和存儲等物理資源的池化,從而實現計算資源的彈性分配[3]。對于不支持邏輯分區的計算機來說,可以通過安裝VMware等虛擬化軟件來模擬多臺計算機,這些模擬的計算機稱為虛擬機,用戶可以在虛擬機上安裝操作系統和應用軟件,可以給虛擬機配置CPU、內存、硬盤、網卡等資源。隨著多核CPU計算機的發展,鑒于其本身支持虛擬化,軟件開發商可以直接開發出能運行在裸機上的虛擬化層軟件,如微軟的Windows Hyper-v 2012、思杰的XenServer、EMC的ESXi 6、紅帽的RHEV-H等,然后在虛擬化軟件層上直接創建更多的虛擬機。
容器技術是在操作系統層上創建容器,這些容器共享操作系統的CPU、內存、存儲等資源,但是每個容器可以獨立設置自己的CPU、內存、硬盤和網絡容量,具備單獨的IP地址和操作系統管理員賬戶,容器可以關閉和重啟。虛擬機的隔離效果比容器技術好,在安全性要求較高的云端平臺中,虛擬機的使用率要高于容器,而在安全性要求不高的場合,容器技術逐漸成為開發者的首選。虛擬機與容器技術的區別如圖2所示。
4 負載均衡
云計算是用戶通過網絡連接到云端并使用里面的資源,這里面涉及到三個方面:一是用戶數眾多,二是云端的服務器有很多,三是終端與云端之間的網絡連接也存在多條[4]。負載就是任務,如何把眾多用戶的任務請求合理地分發到云端的各個服務器進行處理,就是負載均衡所要解決的問題。常見的負載均衡策略有:
(1)讓喚醒的服務器盡可能多地處理終端的請求;
(2)使每臺服務器消耗的計算資源占比盡可能相等,如果云端服務器的硬件配置相同,那么本策略將會使終端的請求平均地分配到各個服務器;
(3)讓執行相同任務的請求盡可能地分配到相同的服務器,比如同一個業務部門的任務一般都大同小異,把該部門的請求都分配給同一臺服務器,可以節約服務器內存;
(4)同一個終端的請求盡可能地分配到同一個臺服務器,這樣可以減少服務器的切換次數,從而降低網絡帶寬的消耗。
5 集群
對于大型任務,只靠一臺服務器無法完成時,就需要把大型任務拆分成若干個中小型任務,然后把這些任務逐個分配給某一臺服務器協同完成,這就是集群所要解決的問題。對用戶來說,很多臺服務器組成的集群相當于一臺超級計算機,不管是中小型任務還是大型任務,都能夠很快得到解決。一臺具備集群計算能力的超級計算機價格十分昂貴,而一臺PC服務器的價格卻越來越便宜,因此云端一般采用大量廉價的PC服務器組成一個集群來實現高性能計算。
集群涉及兩個技術:一是任務的拆分,二是任務的調度。任務的拆分關鍵是降低各個子任務之間的關聯性,從而提高任務執行的并行效率。任務的調度主要是把拆分出來的子任務合理地調度給云端服務器,從而協同完成總體任務。集群是一個系統工程,這里面涉及到一系列的基礎算法,比如選舉算法、波算法、快照、一致性算法等。目前比較著名的集群系統Hadoop,它就是負責分布式系統的基礎算法,在Hadoop上編寫分布式程序就比較容易了。一個簡易的Hadoop集群如圖3所示。
6 用戶隔離
用戶隔離是指當用戶通過終端登錄云端時,該用戶的操作行為和數據對于其他用戶來說是不可見的,這里面涉及到兩個方面的隔離,一個是用戶行為的隔離,另一個是用戶數據的隔離。用戶操作計算機的行為是通過消耗服務器資源來體現的,一個用戶占用計算資源的變化,其他用戶是感知不到的。現代的云計算服務廠商基本都是按照用戶的實際使用量來分配計算資源,但不超過用戶購買的資源上限。用戶數據一般保存在數據庫中,對于同一個數據庫系統的用戶數據隔離有三種方法:一是分離數據庫,二是共享數據庫但分離表、視圖等元素,三是共享數據庫和表、視圖等元素。
7 統一身份認證
云端有很多應用系統,每個系統都需要用戶登錄后使用,如果在每個應用系統中都進行一次身份驗證,將極大地降低云端的服務性能,統一身份認證就是用來解決這類問題的。云端專門設置了一臺或若干臺身份認證服務器,當用戶使用云端資源時會首先向這些身份認證服務器發出請求,如果驗證通過則用戶會收到一個認證通過的標識,以后該用戶訪問云端的其他應用系統時,系統只需要確認一下該用戶是否擁有身份認證通過的標識,如果有則允許訪問,這樣就實現了統一的身份認證,提高了服務器的處理效率。
參考文獻
[1] 黃旭.云計算環境下的分布存儲關鍵技術探究[J].通訊世界,2020,27(5):110-111.
[2] 張志镕.云計算技術在計算機網絡中的應用[J].計算機產品與流通,2020(6):47.
[3] 彭新玉.基于軟件定義的可虛擬化未來網絡關鍵技術研究及產業化[J].電子世界,2020(9):5-6.
[4] 張琦.云計算及關鍵技術的發展[J].計算機與網絡,2019,45(24):44.