劉義穎
摘要:目前軟件應(yīng)用廣泛,對軟件可靠性要求越來越高。近幾年云計(jì)算技術(shù)的研究逐漸增多,對于云平臺(tái)的可靠性技術(shù)也有了新的要求。Amazon Web Services(AWS)提供了一整套云計(jì)算服務(wù),用戶能夠構(gòu)建復(fù)雜、可擴(kuò)展的應(yīng)用程序。AWS在最小成本情況下,為用戶提供了一套構(gòu)建容錯(cuò)的軟件系統(tǒng)平臺(tái)。在技術(shù)和性能等多方面的優(yōu)勢,被業(yè)界廣泛認(rèn)可和接受。該文主要研究Amazon Web Services云平臺(tái)中的核心組件是如何提供可靠性技術(shù)的,分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling進(jìn)行研究分析,為以后云計(jì)算平臺(tái)的搭建和可靠性技術(shù)的研究提供依據(jù)。
關(guān)鍵詞:Amazon Web Services(AWS);可靠性技術(shù);靈活性;伸縮性
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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
在當(dāng)今社會(huì),軟件應(yīng)用廣泛,已經(jīng)成為影響國民經(jīng)濟(jì)、政治乃至社會(huì)生活的重要因素。因此對軟件的可靠性要求很高,尤其是對高可靠和復(fù)雜的軟件系統(tǒng)而言,例如云計(jì)算系統(tǒng)。云計(jì)算是將計(jì)算作業(yè)分布在分布式計(jì)算機(jī)上,通過網(wǎng)絡(luò)中央數(shù)據(jù)中心,企業(yè)或用戶能夠?qū)①Y源切換到需要的不同應(yīng)用上,根據(jù)需求訪問不同的計(jì)算機(jī)和存儲(chǔ)系統(tǒng)。云計(jì)算是分布式計(jì)算(Distributed Computing)、并行計(jì)算(Parallel Computing)、效用計(jì)算(Utility Computing)、網(wǎng)絡(luò)存儲(chǔ)(Network Storage)、虛擬化(Virtualization),以及負(fù)載均衡(Load Balance)等傳統(tǒng)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物[1-3]。
目前的企業(yè)級(jí)的云計(jì)算產(chǎn)品層出不窮,最具代表性的有Amazon Web Services,IBM Blue Cloud,Cisco UCS和Joyent等。在2006年底,Amazon發(fā)布了EC2(Elastic Compute Cloud,靈活計(jì)算云),EC2是首個(gè)IaaS云服務(wù),在技術(shù)和性能等多方面的優(yōu)勢,并被業(yè)界廣泛認(rèn)可和接受。AWS 提供了一整套云計(jì)算服務(wù),用戶能夠構(gòu)建復(fù)雜、可擴(kuò)展的應(yīng)用程序。AWS在最小成本情況下,為用戶提供了一套構(gòu)建容錯(cuò)的軟件系統(tǒng)平臺(tái)。AWS提供多種架構(gòu)服務(wù),從五個(gè)方面對系統(tǒng)提供了容錯(cuò)功能,分別是EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling[4]。
本文主要研究Amazon Web Services云平臺(tái)中的核心組件是如何提供可靠性技術(shù)的,下面分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling進(jìn)行研究分析,為以后云計(jì)算平臺(tái)的搭建和可靠性技術(shù)的研究提供依據(jù)。
1 Amazon EC2
Amazon EC2(Amazon Elastic Compute Cloud)是一個(gè)在云中提供可調(diào)整計(jì)算能力大小的網(wǎng)絡(luò)服務(wù)。Amazon EC2中的實(shí)例類型是基本的硬件原型,用戶可以選擇一個(gè)實(shí)例類型來匹配他的應(yīng)用所需要內(nèi)存數(shù)量、計(jì)算能力。MI是一個(gè)定義服務(wù)實(shí)例的模板,這個(gè)模板基本上包含了一個(gè)軟件結(jié)構(gòu)(例如:操作系統(tǒng),應(yīng)用服務(wù)器和應(yīng)用程序),并應(yīng)用到一個(gè)實(shí)例類型上。用戶可以綁定操作系統(tǒng)、應(yīng)用軟件和相關(guān)配置到一個(gè)AMI(Amazon Machine Inage)上, 可以使用這些AMI來提供多個(gè)虛擬化實(shí)例,通過簡單的網(wǎng)絡(luò)服務(wù)調(diào)用解除它們,根據(jù)用戶的容量需求的變化來迅速調(diào)整容量的大小。
2 Amazon Simple Storage (S3)
S3 是一個(gè)具有工業(yè)強(qiáng)度的平臺(tái),能夠輕松地滿足用戶的數(shù)據(jù)存儲(chǔ)需求。它能夠存儲(chǔ)應(yīng)用程序的數(shù)據(jù),執(zhí)行個(gè)人或企業(yè)備份,把媒體和需要很大帶寬的其他內(nèi)容快速且低成本地分發(fā)給用戶的客戶。
S3 具有的特性包括:1) 可靠性。它具有容錯(cuò)能力,能夠非??焖俚鼗謴?fù)系統(tǒng),停機(jī)時(shí)間非常短。Amazon 提供的服務(wù)水平協(xié)議(SLA)保證99.99%的可用性。2) 簡單性。S3基于簡單的概念,為開發(fā)應(yīng)用程序提供很強(qiáng)的靈活性。如果需要,可以在S3 組件之上構(gòu)建更多功能,從而構(gòu)建更復(fù)雜的存儲(chǔ)方案。3) 可伸縮性。S3 提供很強(qiáng)的可伸縮性,可以在出現(xiàn)需求高峰時(shí)輕松快速地?cái)U(kuò)展。4) 廉價(jià)。與市場上的其他企業(yè)和個(gè)人數(shù)據(jù)存儲(chǔ)解決方案相比,S3 的費(fèi)率非常有競爭優(yōu)勢。
3 Elastic Storage Block (EBS)
Amazon EBS是一個(gè)用于持久保存運(yùn)行實(shí)例上數(shù)據(jù)的存儲(chǔ)塊,可以創(chuàng)建類似未格式化的文件卷(Volume),并關(guān)聯(lián)到到位于同一Amazon Zone的實(shí)例上。 Amazon EBS 本質(zhì)上是硬盤,可以被附加到一個(gè)正在運(yùn)行的Amazon EC2實(shí)例上。Amazon EBS特別適合需要一個(gè)數(shù)據(jù)庫、一個(gè)文件系統(tǒng)或者訪問原始?jí)K級(jí)存儲(chǔ)的應(yīng)用。EBS卷存儲(chǔ)冗余數(shù)據(jù),使它們比在傳統(tǒng)硬盤山更耐用。一個(gè)EBS卷的年故障率(AFR)是0.1% 和0.5%,而普通的硬盤是4%。
在AWS平臺(tái)上構(gòu)建容錯(cuò)應(yīng)用程序的時(shí)候,Amazon EBS 和Amazon EC2經(jīng)常聯(lián)合使用。任何需要保存的詩句應(yīng)該存儲(chǔ)在Amazon EBS卷上,而不是存儲(chǔ)在與每個(gè)Amazon EC2實(shí)例相關(guān)的所謂的“臨時(shí)存儲(chǔ)”。如果Amazon EC2實(shí)例失效并需要被替換,AMazon EBS卷可以被附加到新的AMazon EC2實(shí)例上。因?yàn)樾碌膶?shí)例實(shí)際上是原始實(shí)例的重復(fù),不應(yīng)該有數(shù)據(jù)或者功能的損失。
4 Elastic Load Balancing
Elastic Load Balancing(彈性負(fù)載平衡)是一個(gè)AWS產(chǎn)品,跨過多個(gè)Amazon EC2實(shí)例,分配輸入流量到用戶的應(yīng)用程序中。當(dāng)用戶使用Elastic Load Balancing時(shí),用戶就會(huì)獲得一個(gè)DNS主機(jī)名——任何發(fā)送到該主機(jī)名的請求,都委托給一個(gè)Amazon EC2實(shí)例池。Elastic Load Balancing在Amazon EC2實(shí)例池中,探測出運(yùn)行不正常的實(shí)例,并自動(dòng)引導(dǎo)流量到正常實(shí)例, 直到不正常實(shí)例被修復(fù)。
Auto Scaling和Elastic Load Balancing是一個(gè)理想的組合——Elastic Load Balancing給了用戶一個(gè)DNS名稱來訪問,自動(dòng)伸縮功能確保總有正確數(shù)量的健康的Amazon EC2實(shí)例來接受請求。
5 Auto Scaling
Auto Scaling能夠自動(dòng)地調(diào)整你的Amazon EC2的容量大小,當(dāng)幾個(gè)服務(wù)器實(shí)例需要時(shí),根據(jù)以下定義的規(guī)則執(zhí)行:
1)當(dāng)運(yùn)行服務(wù)器實(shí)例的數(shù)量高于(或低于)一定數(shù)量, 加載(或終止)服務(wù)器實(shí)例。2)當(dāng)服務(wù)器實(shí)例的資源利用率(即CPU、網(wǎng)絡(luò)或磁盤)高于(或低于)某個(gè)閾值,啟動(dòng)服務(wù)器實(shí)例(或終止)。這些指標(biāo)將從亞馬遜云監(jiān)測服務(wù)被收集,負(fù)責(zé)監(jiān)控Amazon EC2實(shí)例。
Auto Scaling可以使應(yīng)用程序根據(jù)需要?jiǎng)討B(tài)的增加以及減少實(shí)例,因此也可以使用Auto Scaling來提高應(yīng)用程序的可靠性,例如在Auto Scaling中設(shè)置條件,保證系統(tǒng)中正常的實(shí)例個(gè)數(shù)不會(huì)低于兩個(gè)或者應(yīng)用程序中任何一個(gè)EC2實(shí)例的時(shí)延在一段時(shí)間內(nèi)不能超過5秒。一旦這些條件被觸發(fā),系統(tǒng)就會(huì)自動(dòng)的增加實(shí)例的個(gè)數(shù)從而提高服務(wù)的可用性。
6 結(jié)束語
本文通過研究Amazon Web Services云平臺(tái)的可靠性技術(shù),分別對核心組件Amazon EC2,Amazon Simple Storage (S3),Elastic Storage Block (EBS),Elastic Load Balancing,Auto Scaling的功能和可靠性方面進(jìn)行研究分析,為以后云計(jì)算平臺(tái)的搭建和可靠性技術(shù)的研究提供依據(jù)。
參考文獻(xiàn):
[1] 員春欣,江建慧.安全關(guān)鍵計(jì)算機(jī)系統(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] 吳朱華.云計(jì)算核心技術(shù)剖析[M].北京:人民郵電出版社,2011.
[5] AWS云計(jì)算白皮書 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)境下的動(dòng)態(tài)故障檢測算法[J].計(jì)算機(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.