劉義穎
摘要:目前軟件應(yīng)用廣泛,對軟件可靠性要求越來越高。近幾年云計算技術(shù)的研究逐漸增多,對于云平臺的可靠性技術(shù)也有了新的要求。Amazon Web Services(AWS)提供了一整套云計算服務(wù),用戶能夠構(gòu)建復(fù)雜、可擴展的應(yīng)用程序。AWS在最小成本情況下,為用戶提供了一套構(gòu)建容錯的軟件系統(tǒng)平臺。在技術(shù)和性能等多方面的優(yōu)勢,被業(yè)界廣泛認可和接受。該文主要研究Amazon Web Services云平臺中的核心組件是如何提供可靠性技術(shù)的,分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling進行研究分析,為以后云計算平臺的搭建和可靠性技術(shù)的研究提供依據(jù)。
關(guān)鍵詞:Amazon Web Services(AWS);可靠性技術(shù);靈活性;伸縮性
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)33-8030-02
Abstract: At present, the software is widely used, the requirement of reliability of software is more and more high necessary. In recent years, the research about cloud computing has gradually increased, the reliability technology of cloud platform also has new requirements. Amazon Web Services (AWS) provides a set of cloud computing services, users can build complex and scalable applications. In the minimum cost situation, AWS provides a set of building fault-tolerant software platform for the users. Because of the advantages of technology and performance, it was widely recognized and accepted. This paper mainly studies that how the core component of Amazon Web Services cloud platform can provide reliability technology, research on the core components of Amazon were EC2, Amazon Simple Storage (S3), Elastic Storage Block (EBS), Elastic Load Balancing, Auto Scaling, to provide the basis theory for building a cloud computing platform or research on reliability technology.
Key words: Amazon Web Services(AWS) ; reliability technology; Flexibility; Scalability
在當今社會,軟件應(yīng)用廣泛,已經(jīng)成為影響國民經(jīng)濟、政治乃至社會生活的重要因素。因此對軟件的可靠性要求很高,尤其是對高可靠和復(fù)雜的軟件系統(tǒng)而言,例如云計算系統(tǒng)。云計算是將計算作業(yè)分布在分布式計算機上,通過網(wǎng)絡(luò)中央數(shù)據(jù)中心,企業(yè)或用戶能夠?qū)①Y源切換到需要的不同應(yīng)用上,根據(jù)需求訪問不同的計算機和存儲系統(tǒng)。云計算是分布式計算(Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing)、網(wǎng)絡(luò)存儲(Network Storage)、虛擬化(Virtualization),以及負載均衡(Load Balance)等傳統(tǒng)計算機和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物[1-3]。
目前的企業(yè)級的云計算產(chǎn)品層出不窮,最具代表性的有Amazon Web Services,IBM Blue Cloud,Cisco UCS和Joyent等。在2006年底,Amazon發(fā)布了EC2(Elastic Compute Cloud,靈活計算云),EC2是首個IaaS云服務(wù),在技術(shù)和性能等多方面的優(yōu)勢,并被業(yè)界廣泛認可和接受。AWS 提供了一整套云計算服務(wù),用戶能夠構(gòu)建復(fù)雜、可擴展的應(yīng)用程序。AWS在最小成本情況下,為用戶提供了一套構(gòu)建容錯的軟件系統(tǒng)平臺。AWS提供多種架構(gòu)服務(wù),從五個方面對系統(tǒng)提供了容錯功能,分別是EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling[4]。
本文主要研究Amazon Web Services云平臺中的核心組件是如何提供可靠性技術(shù)的,下面分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling進行研究分析,為以后云計算平臺的搭建和可靠性技術(shù)的研究提供依據(jù)。
1 Amazon EC2
Amazon EC2(Amazon Elastic Compute Cloud)是一個在云中提供可調(diào)整計算能力大小的網(wǎng)絡(luò)服務(wù)。Amazon EC2中的實例類型是基本的硬件原型,用戶可以選擇一個實例類型來匹配他的應(yīng)用所需要內(nèi)存數(shù)量、計算能力。MI是一個定義服務(wù)實例的模板,這個模板基本上包含了一個軟件結(jié)構(gòu)(例如:操作系統(tǒng),應(yīng)用服務(wù)器和應(yīng)用程序),并應(yīng)用到一個實例類型上。用戶可以綁定操作系統(tǒng)、應(yīng)用軟件和相關(guān)配置到一個AMI(Amazon Machine Inage)上, 可以使用這些AMI來提供多個虛擬化實例,通過簡單的網(wǎng)絡(luò)服務(wù)調(diào)用解除它們,根據(jù)用戶的容量需求的變化來迅速調(diào)整容量的大小。
2 Amazon Simple Storage (S3)
S3 是一個具有工業(yè)強度的平臺,能夠輕松地滿足用戶的數(shù)據(jù)存儲需求。它能夠存儲應(yīng)用程序的數(shù)據(jù),執(zhí)行個人或企業(yè)備份,把媒體和需要很大帶寬的其他內(nèi)容快速且低成本地分發(fā)給用戶的客戶。
S3 具有的特性包括:1) 可靠性。它具有容錯能力,能夠非??焖俚鼗謴?fù)系統(tǒng),停機時間非常短。Amazon 提供的服務(wù)水平協(xié)議(SLA)保證99.99%的可用性。2) 簡單性。S3基于簡單的概念,為開發(fā)應(yīng)用程序提供很強的靈活性。如果需要,可以在S3 組件之上構(gòu)建更多功能,從而構(gòu)建更復(fù)雜的存儲方案。3) 可伸縮性。S3 提供很強的可伸縮性,可以在出現(xiàn)需求高峰時輕松快速地擴展。4) 廉價。與市場上的其他企業(yè)和個人數(shù)據(jù)存儲解決方案相比,S3 的費率非常有競爭優(yōu)勢。
3 Elastic Storage Block (EBS)
Amazon EBS是一個用于持久保存運行實例上數(shù)據(jù)的存儲塊,可以創(chuàng)建類似未格式化的文件卷(Volume),并關(guān)聯(lián)到到位于同一Amazon Zone的實例上。 Amazon EBS 本質(zhì)上是硬盤,可以被附加到一個正在運行的Amazon EC2實例上。Amazon EBS特別適合需要一個數(shù)據(jù)庫、一個文件系統(tǒng)或者訪問原始塊級存儲的應(yīng)用。EBS卷存儲冗余數(shù)據(jù),使它們比在傳統(tǒng)硬盤山更耐用。一個EBS卷的年故障率(AFR)是0.1% 和0.5%,而普通的硬盤是4%。
在AWS平臺上構(gòu)建容錯應(yīng)用程序的時候,Amazon EBS 和Amazon EC2經(jīng)常聯(lián)合使用。任何需要保存的詩句應(yīng)該存儲在Amazon EBS卷上,而不是存儲在與每個Amazon EC2實例相關(guān)的所謂的“臨時存儲”。如果Amazon EC2實例失效并需要被替換,AMazon EBS卷可以被附加到新的AMazon EC2實例上。因為新的實例實際上是原始實例的重復(fù),不應(yīng)該有數(shù)據(jù)或者功能的損失。
4 Elastic Load Balancing
Elastic Load Balancing(彈性負載平衡)是一個AWS產(chǎn)品,跨過多個Amazon EC2實例,分配輸入流量到用戶的應(yīng)用程序中。當用戶使用Elastic Load Balancing時,用戶就會獲得一個DNS主機名——任何發(fā)送到該主機名的請求,都委托給一個Amazon EC2實例池。Elastic Load Balancing在Amazon EC2實例池中,探測出運行不正常的實例,并自動引導(dǎo)流量到正常實例, 直到不正常實例被修復(fù)。
Auto Scaling和Elastic Load Balancing是一個理想的組合——Elastic Load Balancing給了用戶一個DNS名稱來訪問,自動伸縮功能確保總有正確數(shù)量的健康的Amazon EC2實例來接受請求。
5 Auto Scaling
Auto Scaling能夠自動地調(diào)整你的Amazon EC2的容量大小,當幾個服務(wù)器實例需要時,根據(jù)以下定義的規(guī)則執(zhí)行:
1)當運行服務(wù)器實例的數(shù)量高于(或低于)一定數(shù)量, 加載(或終止)服務(wù)器實例。2)當服務(wù)器實例的資源利用率(即CPU、網(wǎng)絡(luò)或磁盤)高于(或低于)某個閾值,啟動服務(wù)器實例(或終止)。這些指標將從亞馬遜云監(jiān)測服務(wù)被收集,負責監(jiān)控Amazon EC2實例。
Auto Scaling可以使應(yīng)用程序根據(jù)需要動態(tài)的增加以及減少實例,因此也可以使用Auto Scaling來提高應(yīng)用程序的可靠性,例如在Auto Scaling中設(shè)置條件,保證系統(tǒng)中正常的實例個數(shù)不會低于兩個或者應(yīng)用程序中任何一個EC2實例的時延在一段時間內(nèi)不能超過5秒。一旦這些條件被觸發(fā),系統(tǒng)就會自動的增加實例的個數(shù)從而提高服務(wù)的可用性。
6 結(jié)束語
本文通過研究Amazon Web Services云平臺的可靠性技術(shù),分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling的功能和可靠性方面進行研究分析,為以后云計算平臺的搭建和可靠性技術(shù)的研究提供依據(jù)。
參考文獻:
[1] 員春欣,江建慧.安全關(guān)鍵計算機系統(tǒng)[M].北京:中國鐵道出版社,2003.
[2] I. Foster, Z. Yong, I. Raicu, and S. Lu, Cloud computing and grid computing 360-degree compared [J].Grid Computing Environments Workshop,2008:1-10.
[3] M. Armbrust, A.Fox, R.Griffith, et al., Above the clouds: a Berkeley view of cloud computing, Technical Report [R].No.UCB/EECS-2009-28, University of California at Berkley,USA,2009.
[4] 吳朱華.云計算核心技術(shù)剖析[M].北京:人民郵電出版社,2011.
[5] AWS云計算白皮書 http://aws.amazon.com/cn/whitepapers/.
[6] AWS_Cloud_Best_Practices.pdf.
[7] Salapura,V,Harper,R,Viswanathan,M.Resilient cloud computing[J].IBM Journal of Research and Development,2013,57(5):1-12.
[8] Shufen Zhang,Shuai Zhang,Xuebin,et al. Analysis and Research of Cloud Computing System Instance[C]. // Proceedings of the 2nd International Conference on Future Networks, Sanya,2010:88-92.
[9] Michael R Lyu. Handbook of Software Reliability Engineering [M].McGraw-Hill,1996.
[10] Eugster, Patrick Th, and Rachid Guerraoui. "Probabilistic multicast." Dependable Systems and Networks, 2002. DSN 2002. Proceedings. International Conference on. IEEE,2002.
[11] Kramer, Jeff, and Jeff Magee. "The evolving philosophers problem: Dynamic change management." Software Engineering[J].IEEE Transactions on,1990,16(11):1293-1306.
[12] Lamport L,Shostak R,Pease M.The Byzantine generals problem[J].ACM Transactions on Programming Languages and Systems (TOPLAS),1982,4(3):382-401.
[13] 田東,陳蜀宇,陳峰.一種網(wǎng)格環(huán)境下的動態(tài)故障檢測算法[J].計算機研究與發(fā)展,2006,43(11): 1870-1875.
[14] Steinder, Malgorzata, and Adarshpal S. Sethi. "Probabilistic fault localization in communication systems using belief networks." Networking.IEEE/ACM Transactions on 12.5 (2004): 809-822.
[15] Zheng Z,Zhou T, Lyu M, et al. Component ranking for fault-tolerant cloud applications[J].2012.