余 鳳,徐曉鐘,李建軍
(1.上海師范大學 信息與機電工程學院,上海200234;2.中國電子科技集團公司第32研究所 國家工程軟件產品質量監(jiān)督檢驗中心,上海200233)
責任編輯:魏雨博
云計算是一個復雜、動態(tài)、分布式的體系結構,由大量異構軟件系統(tǒng)協(xié)同工作,并因其優(yōu)異性得到了IT界和學術界的一致認可。在IT界中,各大云計算先驅如Google、IBM、Amazon等公司均表現出了極大的投資熱情,紛紛推出具有自己鮮明特色的云計算服務平臺。學術界也從理論方面對仿真、性能優(yōu)化、技術融合、軟件測試、漏洞檢測等諸多問題進行了深入研究,提出各自見解,推動了IT領域的信息技術變革浪潮。然而軟件測試的研究作為保障云計算服務質量和優(yōu)化調度云計算資源的前提,面臨著前所未有的挑戰(zhàn)[1]。
目前,云計算測試問題得到了廣泛的關注,逐步發(fā)展成一個新的研究領域——云測試[1-4]。對于云測試的概念,結合文獻[1]和[2]的不同理解,可以將其分為兩個方面:“云測試”和“測試云”。前者突出了利用利用云計算環(huán)境資源開展測試服務,而后者則是針對“云”中的平臺和基礎設施以及對“云”本身環(huán)境進行測試。根據目前的發(fā)展狀況,“云測試”的研究占據主體地位,“測試云”則幾乎被忽略。因此,本文對于“測試云”進行了一個初步探索。
IaaS是云計算的基石,接近物理硬件資源。IaaS層能否被合理使用,直接關系到云計算其他幾個層次服務使用的可靠性和穩(wěn)定性,故針對IaaS層的測試研究不可忽視。
IaaS是云計算體系結構的最底層服務。如圖1所示,它是由云服務廠商通過虛擬化的相關技術提供給用戶的基礎設施硬件資源,包括處理、存儲、網絡以及其他基本的計算資源,方便用戶能夠部署和運行操作系統(tǒng)及應用程序,卻無需管理和控制任何云計算基礎設施。
圖1 IaaS的體系結構圖
該領域最典型的應用例子是Amazon的EC2、Apache的開源項目Hadoop、Microsoft的Windows Azure。EC2能夠根據需要伸縮計算資源,它提供一個虛擬的集群環(huán)境,讓用戶自主創(chuàng)建服務器鏡像AMI,操作云計算平臺上的各個實例,使得云操作系統(tǒng)環(huán)境運行自身的應用程序。Hadoop本身實現的是分布式文件系統(tǒng)(HDFS)以及計算框架MapReduce。此外,Hadoop還包含一系列擴展項目,包括分布式文件數據庫HBase和分布式協(xié)同服務ZooKeeper。Windows Azure可看成一個云計算服務的操作系統(tǒng),用戶以此為橋梁,在微軟云數據中心運行Windows應用程序和存儲應用程序數據。
針對IaaS層的測試涉及服務平臺內部結構、物理資源管理、虛擬機管理、功能擴展和資源配置等方面測試問題。IaaS層是將一些大型服務器集群相互連接通信組成一個數據中心,虛擬化成共享資源池,通過Internet連接為用戶提供按需服務。研究分析圖2的IaaS部署圖,一般需要考慮以下幾個主要方面的測試內容。
圖2 IaaS部署系統(tǒng)圖
IaaS基于OPFENStack或Eucalptus平臺開發(fā)實現,VMM技術架構采用Hypervisor模型、宿主模型、混合模型中的一種,服務器兼容主流系統(tǒng),如Windows、Redhat、Suse等Linux操作系統(tǒng)。物理服務器至少支持Intel VT-x或AMD-V等虛擬化功能,能夠實現對主機、網絡、存儲等計算資源的運算能力虛擬化再進行統(tǒng)一分配。即物理資源虛擬化后,VCPU應分配標識信息(ID號、隸屬于哪個客戶機等)、地址空間、IP地址、狀態(tài)信息、虛擬寄存器信息等;虛擬網絡應分配IP地址、標識號、地址空間、虛擬路由、虛擬網卡等;虛擬存儲應分配IP地址、標識號、地址空間等。這些信息應被記錄在日志中作為備份,同時記錄下虛擬化日期、時間等信息,以便將來在出現故障時能快速定位減少維修時間。云平臺在提供服務時,可根據需要分配由唯一信息標識的虛擬資源給用戶使用。
物理服務器的管理包括設備添加、部署、配置和拆除等能力。支持新增物理服務器的“一鍵入云”自動化安裝、配置和特殊情況下的人工操作;支持為集群中的每個物理設備建立使用檔案,管理員可以通過Web頁面查看檔案中的序列號、設備類型、制造信息和配置信息及操作日期、時間和操作內容等;支持服務器運行狀態(tài)信息備份,在故障發(fā)生后,能將備份信息全部遷移到另一臺完好的服務器,自動安裝部署運行,極其短暫的中斷時間不影響整個系統(tǒng)的運行。
物理設備控制是管理人員可以以瀏覽器的方式登錄資源管理平臺,根據需要遠程開啟、關閉物理機,在指定的服務器上創(chuàng)建、卸載虛擬機,控制虛擬機的啟停,創(chuàng)建虛擬機快照,實現人工智能化管理。在有新設備接入集群時,能自動識別主機。
物理存儲設備管理包括對存儲介質、存儲控制器和存儲網絡的管理和控制,物理網絡管理包括對物理網絡設備如網卡、交換機、路由器等的管理、控制和維護。支持Web頁面監(jiān)控設備,以圖表的方式顯示存儲空間總量和已使用量,為用戶提供物理網絡拓撲圖,實時查看網絡狀態(tài)(IP、網速、流量、虛擬防火墻個數等),并能進行更改、開啟和關閉等操作;支持對數據自動進行冗余和快照,智能隔離故障設備和快速恢復資源。
虛擬化技術[5-6]是云計算的關鍵技術。在服務器虛擬化過程中,虛擬化軟件需要實現對硬件的抽象,完成對資源的分配、調度和管理,做好虛擬機與宿主操作系統(tǒng)及多個虛擬機間的隔離。
虛擬機資源管理提供虛擬機全生命周期創(chuàng)建、運行和刪除中各個階段的相應管理功能,支持主機選擇,提供基于VNC的虛擬機連接機制。管理員可以在一臺物理服務器中創(chuàng)建多個相互獨立的虛擬機,并控制虛擬機啟動、停止、重啟、暫停、掛起、恢復、克隆、刪除、備份、遷移,動態(tài)修改參數配置(VCPU個數、內存大小、硬盤數量和網卡個數等),更改操作系統(tǒng)和應用程序。虛擬機創(chuàng)建可以基于模板定義,將創(chuàng)建好的或常使用的虛擬機保存為可復用的模板,用于快速創(chuàng)建具有相同應用和配置的虛擬機,形成虛擬機集群。虛擬機暫停是暫停計算處理,保存當前狀態(tài)至內存,內存處于通電狀態(tài);而虛擬機掛起則是保存當前狀態(tài)至硬盤,虛擬內存也清空。遷移方式支持運行狀態(tài)下的在線熱遷移和關機狀態(tài)下的離線遷移;數據備份包括熱備份、冷備份、增量備份、全備份等方式。
虛擬機集成管理是指系統(tǒng)可運行VWMare、XenServer、Xem、KVM、微軟Hyper-V等虛擬服務器系統(tǒng)。虛擬機鏡像管理不僅兼容包括raw、vhd、vmdk、iso等多種格式,還支持對鏡像格式的操作系統(tǒng)和軟件進行安裝操作,并對鏡像進行復制、刪除等操作。
虛擬機支持3種訪問方式:系統(tǒng)級訪問、應用級訪問和特權級訪問。不同的方式設定相應的對虛擬機的系統(tǒng)進程、用戶進程、普通進程、一般文件讀寫及執(zhí)行等的訪問權限。支持針對虛擬機的密鑰管理,即用戶申請創(chuàng)建虛擬機時,每臺虛擬機都隨機生成高強度密碼,而用戶只可憑此私鑰訪問及獲取虛擬機資源。
用戶可以指定每臺虛擬機使用資源的優(yōu)先級。當多個虛擬機共享內存資源,特別是存在“資源復用”的情況時,級別高的虛擬機能夠優(yōu)先分配到資源,以體現不同的服務水平協(xié)議(SLA)。同時虛擬機的最高性能與物理服務器中同時運行的虛擬機的數量和負載情況無關,即當各虛擬機資源分配確定后,無論其他虛擬機是忙或閑,都不影響本虛擬機的性能。
虛擬機網絡管理實現物理網和虛擬網之間的互通,保證虛擬機和物理服務器進行通信,實現內部網絡與外網(含企業(yè)網、互聯(lián)網)間的映射和必要的安全保障。根據用戶訪問和資源控制需要,切實完成網絡隔離和帶寬控制等,提高資源安全性和均衡性。用戶可通過可視化界面查看網絡拓撲圖,明確網絡劃分情況、IP使用情況及各種虛擬設備的在線狀態(tài),從而及時應對突發(fā)情況。
虛擬機存儲管理[7]指從存儲資源池中創(chuàng)建存儲卷實例,將其掛載到虛擬機或者從虛擬機上卸載。提供包括傳統(tǒng)的NAS及SAN、分布式存儲、本地存儲等在內的多種存儲方案;支持為存儲卷創(chuàng)建快照,用于故障時快速恢復數據信息;支持跨物理機和虛擬機訪問共享虛擬磁盤和應用程序數據,極大擴展云平臺應用范圍;提供標準化接口,實現本地存儲和第三方存儲服務接入,并能對兩者進行有效管理;支持對提供的海量存儲數據存儲系統(tǒng)的集成和接入;支持所使用的計算資源存儲容量不足時,隨時應用彈性塊存儲來創(chuàng)建更大的存儲空間,源于彈性塊存儲服務使用的是共享存儲設備,不受本地服務器硬盤容量的限制。
云計算中的關鍵功能包括資源的彈性伸縮、動態(tài)調度、租戶隔離、負載均衡等,這些功能的實現離不開策略的制定。故云平臺應提供以下至少5種策略管理。
1)彈性伸縮管理。華云在其IaaS技術白皮書中定義了3種集群伸縮模式:橫向模式(通過增減實例數量滿足需求)、縱向模式(通過增減性能滿足需求)、動態(tài)遷移(故障情況或反應不及時的情況下通過將實例遷移到性能更好的物理機上)。管理員自由組合模式,提供給用戶相應的策略以滿足應用需求。
2)負載均衡策略[8-9]。包括CPU占用最少策略、內存使用最少策略、訪問量最少策略、分布式流量控制策略[10]、分布式轉發(fā)策略等集中式的和分布式的策略?;贒NS的策略和集中式的基于轉發(fā)器的策略是常見的集中式負載均衡策略。
3)虛擬機調度策略。主要指將虛擬機創(chuàng)建在哪個物理服務器上的策略。用戶可智能調度硬件資源,以最優(yōu)的方式完成當前業(yè)務需求。在測試集群可使用“節(jié)點模式”(在創(chuàng)建虛擬機時盡量將依托物理機資源用盡后再用下一臺),而在生產集群中使用“貪婪模式”(虛擬機盡量平均分布在每臺物理機中,減少相互影響)。除此之外,還有“利舊優(yōu)先”、“利新優(yōu)先”、“輪循使用”、“能耗最大優(yōu)先”、“能耗最小優(yōu)先”等高級策略。
4)能耗管理策略。自動判斷云平臺中的物理服務器是否處于空閑狀態(tài),若是則自動進入休眠模式節(jié)省電量,若不是,則可通過向服務器發(fā)送節(jié)電指令,使其CPU在夜間或非業(yè)務高峰期降頻實現節(jié)能。
5)流程服務支持策略?;诹鞒桃?,提供內置的資源申請流程、事件管理流程、問題管理流程和變更管理流程的運維流程支持。
物理設備和虛擬機的監(jiān)控管理保證管理員可以以可視化圖形界面監(jiān)控資源的實時狀態(tài),如CPU的使用率、內存和存儲的使用量及讀寫操作頻率、網絡的輸入輸出流量、帶寬及路由狀態(tài),同時系統(tǒng)可生成數據查詢報告。資源中心的全局視圖以可下鉆的方式展現目前云平臺中資源情況,如有多少個集群,每個集群包含哪些物理機,每臺物理機上又跑了哪些虛擬機,虛擬機又運行了哪些應用程序等。全面的監(jiān)控措施可保證故障發(fā)生時快速定位錯誤,快速修復,保證平臺正常運行。
告警管理支持通過日志記錄、閾值設置等方式監(jiān)控物理和虛擬資源,當接近或超過閾值時,通過短信、郵件等方式發(fā)送告警信息,確保管理員能夠在第一時間收到故障信息,對設備進行維護。
基于角色的用戶管理包括角色的增刪改查(用戶的注冊、審批、查詢、修改、停用)、權限設定(資源的權限分配)和多種用戶接入控制(用戶/密碼、Ukey認證、手機驗證等)??蓪崿F訪問接口管理是IaaS對外提供包括基于瀏覽器的圖形化界面、命令行界面和開放可編程接口在內的標準化接口,支持組合角色的訪問控制,支持用戶將已有的應用環(huán)境整體遷移至云平臺,保護用戶投資。
日志管理至少提供INFO、Debug兩種基本運行日志,記錄下用戶行為、系統(tǒng)配置變更信息、系統(tǒng)錯誤和告警事件,方便管理員查詢和回溯用戶事件及監(jiān)控系統(tǒng)運行。計費管理指管理員可以內部定制云平臺服務的使用費用規(guī)則(計費方式、費率、折扣等),通過界面反饋給用戶消費信息,在費用不足時提醒用戶及時充值,對高優(yōu)先級用戶實行寬容措施,可欠費一定期限。
報表管理指系統(tǒng)提供部署服務相關的報表:統(tǒng)計和報告物理機和虛擬機數目、部署實施情況;提供監(jiān)控和管理服務報表:統(tǒng)計和報告服務器和虛擬機的資源利用率情況;提供流程服務報表:統(tǒng)計和報告服務流程執(zhí)行的相關情況。每張報表都支持下鉆,使服務提供商可以針對這些報表了解IT資源現狀,預測潛在風險,評估擴容需求。
安全問題[11-14]自云計算提出以來就一直困擾著云服務提供者和使用者。云計算不僅面臨著傳統(tǒng)的網絡安全問題,也面臨著技術創(chuàng)新隨之而來的一系列新安全性問題。2011年4月21日,Amazon出現其史上最嚴重的一次宕機事件,Amazon云數據中心出現大范圍宕機,導致多個與之相關的網站受到影響。2010年2月25日,谷歌應用程序開發(fā)者服務Google App Engine出現宕機,原因是一個備份數據中心發(fā)生故障。因此,保證云計算系統(tǒng)的安全性成為熱點。
在網絡安全方面[15],支持以服務器、虛擬機或VLAN為單元進行防火墻設置;支持在云平臺入口放置防火墻,用于病毒檢測、查殺和流量檢測等功能;支持在云平臺內部設置多臺物理防火墻或虛擬防火墻,用于對內部網絡流量的管理和過濾;支持網絡接入控制,防止非法占用IP資源和內部設備的非法跨網段接入,且對虛擬機MAC地址與IP地址進行強綁定,在發(fā)現任何一項被非法篡改時立即斷開網絡連接;支持以NetFlow等技術監(jiān)控網絡中數據流量,據此對各種業(yè)務應用占用網絡帶寬的情況進行分析;設定流量閾值,實行及時進行預警功能;提供基于物理網絡的網絡隔離和帶寬控制功能,實現多租戶環(huán)境下的物理隔離,更好的保護租戶的應用和數據。
在數據保護方面,每個存儲卷設有相應的配額和訪問權限,只有授權用戶才能讀寫數據;支持用戶對關鍵數據進行加密存儲;支持數據的自動化冗余,數據被均勻地保存在多臺存儲節(jié)點中,并且每一份數據都可以配置成2~10份以上的自動copy,即使單臺存儲宕機,上層應用也不會受到任何影響;支持為特定租戶劃分獨立物理存儲,實現用戶敏感數據的物理隔離;支持虛擬機和宿主操作系統(tǒng)及宿主機間的隔離,保證數據隔離;支持對用戶常用登陸地點、狀態(tài)信息的分析記錄,當出現改變時,對用戶再次進行本人確定,保證數據的安全性。
上述所提的測試點是針對IaaS的主要功能點,覆蓋這些點的測試雖然在一定程度上可以得到一個優(yōu)化的IaaS服務,但仍然存在以下不足:
1)性能測試[16]也是IaaS測試不可分割的一部分,但目前針對其的研究都是圍繞單一的Hadoop框架展開的[14,17],而實際中則存在不同類型的云系統(tǒng)。
2)IaaS的五大安全問題備受關注:數據泄露的防護和數據使用的監(jiān)視、認證和授權、事件響應和取證功能(端到端的日志和報告)、基礎架構的強化、端到端的加密。但在云計算中存在多級服務委托關系,底層由大量異構、復雜系統(tǒng)組成,故系統(tǒng)間存在未知漏洞和不明確的錯誤,這都為全面的安全性測試設定了困難,影響了服務質量的可靠性。
3)云測試雖日益受到關注,但缺少統(tǒng)一的、標準的、詳細的測試規(guī)范,同時針對IaaS的研究主要集中在性能測試問題,沒有分析考慮不同平臺環(huán)境下的功能測試、兼容性測試、可靠性測試等問題。
隨著云計算理念的不斷深化,云測試將得到進一步的發(fā)展。除了基于云計算資源的軟件測試獲得過多關注,針對“云”平臺和基礎設施的測試也將逐步被重視。IaaS是云平臺的底層架構,其性能好壞影響上面兩層服務質量的可靠性。針對IaaS層的測試,是“云”平臺測試的一部分。本文從IaaS系統(tǒng)部署的不同層面詳細分析了其關鍵測試點,為實際的測試提供了具體依據。在未來的研究中,將根據云計算IaaS產品的技術實現方式,研究關鍵技術的驗證技術。
[1]李喬,柯棟梁,王小林.云測試研究現狀綜述[J].計算機應用研究,2012,29(12):4401-4406.
[2]Cloud testing[EB/OL].[2014-02-23].http://en.wikipedia.org/wiki/Cloud_testing.
[3]唐滔,邱旭東.初探云計算在測試領域中的應用[J].科技資訊,2011(15):18.
[4]潘慧,朱信忠,趙建民,等.基于Hadoop云測試體系架構的設計[J].計算機工程與科學,2013,35(10):72-78.
[5]葉可江,吳朝暉,姜曉紅,等.虛擬化云計算平臺的能耗管理[J].計算機學報,2012,35(6):1262-1285.
[6]溫少君,陳俊杰,郭濤.一種云平臺中優(yōu)化的虛擬機部署機制[J].計算機工程,2012,38(11):17-19.
[7]王培海.基于Android的移動云存儲系統(tǒng)設計與實現[J].電視技術,2011,35(11):94-97.
[8]陳俊麗.基于云計算服務的彈性負載均衡機制的研究與實現[D].四川:城都理工大學,2013.
[9]杜壵,郭濤,陳俊杰.云環(huán)境下機群彈性負載均衡機制[J].計算機應用,2013,33(3):830-833.
[10]宋昕,宋歡歡.云計算環(huán)境下的流量控制額負載均衡策略[J].電子設計工程,2011,19(1):112-115.
[11]馮登國,張敏,張妍,等.云計算安全研究[J].軟件學報,2012,22(1):71-83.
[12]楊先強.針對云計算IaaS層的高危安全漏洞檢測工具的設計與實現[D].北京:北京郵電大學,2012.
[13]俞能海,郝卓,徐甲甲.云安全研究進展綜述[J].電子學報,2013,41(2):371-381.
[14]鄧謙.基于Hadoop的云計算安全機制研究[D].南京:南京郵電大學,2013.
[15]郎登何.基于點集拓撲群分形變幻的云計算加密方法[J].電視技術,2013,37(15):102-106.
[16]賀秦祿,李戰(zhàn)懷,趙曉南,等.云存儲性能評測技術研究[J].計算機應用研究,2013,30(5):1357-1364.
[17]PAN X H,TAN J Q,KAVULYA S,et al.Ganesha:black-box diagnosis of MapReduce systems[J].ACM SIGMETRICS Performance Evaluation Review,2009,37(3):8-13.