OpenStack環(huán)境中運(yùn)行大數(shù)據(jù)系統(tǒng)的四大存儲問題
原創(chuàng)【51CTO.com原創(chuàng)稿件】目前,OpenStack 私有云應(yīng)用在經(jīng)過了長時間的技術(shù)累積和市場培養(yǎng)之后,產(chǎn)品的成熟度和客戶的認(rèn)可度都已邁入成熟。雖然基于OpenStack的云環(huán)境部署量越來越多,但是很多OpenStack云環(huán)境并不提供大數(shù)據(jù)服務(wù),比如類似AWS的Elastic MapReduce,再比如面向大數(shù)據(jù)的SQL,支持OLAP等等。與此同時,隨著用戶業(yè)務(wù)逐步實(shí)現(xiàn)了云遷移,在云上部署大數(shù)據(jù)系統(tǒng)的需求已經(jīng)日益常見和迫切。
2018年5月18-19日,由51CTO主辦的全球軟件與運(yùn)維技術(shù)峰會在北京召開。在第二日上午舉行的“OpenStack創(chuàng)新實(shí)戰(zhàn)”分論壇中,OStorage (奧思數(shù)據(jù))創(chuàng)始人兼CTO李明宇為大家?guī)眍}為《在OpenStack云上運(yùn)行大數(shù)據(jù)系統(tǒng):問題、方法與實(shí)踐》的精彩演講,針對如何在OpenStack云環(huán)境上運(yùn)行大數(shù)據(jù)系統(tǒng),在實(shí)際運(yùn)行過程中常見的問題,以及如何利用對象存儲解決這些問題展開了闡述。會后,51CTO記者根據(jù)李明宇在WOT2018全球軟件與運(yùn)維技術(shù)峰會的演講內(nèi)容進(jìn)行了整理。
在OpenStack環(huán)境上運(yùn)行大數(shù)據(jù)系統(tǒng)的兩種方法
李明宇之前在中科院軟件所工作,除了科學(xué)研究外,他著重解決實(shí)際工程問題,帶領(lǐng)團(tuán)隊承擔(dān)分布式和云計算系統(tǒng)的相關(guān)研發(fā)工作。離開中科院后,李明宇一直致力于OpenStack等云計算和大數(shù)據(jù)相關(guān)開源技術(shù)的研究和傳播,為企業(yè)提供咨詢、評測等技術(shù)服務(wù)。
他演講中談到,OpenStack是一個大體系里包含很多的小的開源項(xiàng)目,其中有六個核心項(xiàng)目人們最為熟知:管理虛機(jī)的Nova、管理網(wǎng)絡(luò)的Neutron、云硬盤的Cinder、認(rèn)證的Keystone以及鏡像和模板管理的Glance、Swift對象存儲。
李明宇表示,在OpenStack環(huán)境上運(yùn)行大數(shù)據(jù)系統(tǒng)有兩種方法:***種方法是基于OpenStack服務(wù)組件Sahara實(shí)現(xiàn)。他通過現(xiàn)場演示DEMO的方式,讓大家看到如何使用Sahara。Sahara實(shí)際上就是OpenStack專門為運(yùn)行Hadoop來打造的一個項(xiàng)目。如果用戶使用的OpenStack云環(huán)境沒有部署Sahara怎么辦?這時可以采用第二種方法,第二種是通過Heat和Hadoop社區(qū)的部署工具實(shí)現(xiàn),用戶直接管理Hadoop/大數(shù)據(jù)系統(tǒng)節(jié)點(diǎn)。OpenStack云平臺上的除了依賴OpenStack Sahara外,還可以在裸機(jī)上安裝Hadoop。
那么,這兩種方法孰優(yōu)孰劣呢?李明宇分析道,Sahara是云計算廠商視角,使用Sahara的好處在于服務(wù)商基于此提供大數(shù)據(jù)服務(wù),用戶使用更方便,總體來說還算穩(wěn)定。但Sahara其實(shí)并不是那么***,服務(wù)種類受限,靈活性不高。而不使用Sahara直接管理的好處在于從用戶視角出發(fā),靈活性好,用戶可控,但是劣勢在于需要由用戶管理大數(shù)據(jù)集群,并且難以感知云基礎(chǔ)設(shè)施底層特性。“用戶可以根據(jù)自己的需求,選擇最適合自己的方法。”
四大存儲問題
目前,OpenStack已被很多單位使用,在使用的過程中也會提出很多問題。而在OpenStack云上運(yùn)行大數(shù)據(jù)系統(tǒng)最容易遇到的問題就是存儲的問題。
李明宇表示,在存儲方面***個面臨的問題,就是塊存儲的冗余問題,虛機(jī)塊存儲/Volume底層冗余與HDFS本身的冗余。如果虛擬底層是采用Ceph支持虛機(jī)塊存儲,實(shí)際上虛機(jī)的塊設(shè)備/Volume在Ceph上有三個副本,HDFS上又有三個副本,從而造成塊存儲的過度冗余。
第二個問題是數(shù)據(jù)移動開銷比計算任務(wù)的移動開銷大。Hadoop集群并不是時刻都承載相同的負(fù)載壓力,我們希望在虛擬化環(huán)境中,Hadoop集群能夠具有彈性。從5個節(jié)點(diǎn)擴(kuò)展到10個節(jié)點(diǎn),再擴(kuò)展到50個節(jié)點(diǎn),再縮到5個節(jié)點(diǎn),如果數(shù)據(jù)存儲在這些節(jié)點(diǎn)的HDFS中,那么這時需要重新平衡數(shù)據(jù),數(shù)據(jù)移動開銷較大,需要時間、耗費(fèi)網(wǎng)絡(luò)和I/O資源。
第三個問題,很多數(shù)據(jù)處理/分析任務(wù)是臨時性的。為了實(shí)現(xiàn)在使用Hadoop集群或者利用大數(shù)據(jù)處理集群時,創(chuàng)建一個集群運(yùn)行數(shù)據(jù)分析或者數(shù)據(jù)倉庫,完成作業(yè)之后這個集群就可以銷毀。但是使用HDFS,是無法銷毀存有數(shù)據(jù)的虛機(jī)的,并且還會帶來額外開銷。相比這些開銷,網(wǎng)絡(luò)的開銷在降低,整體網(wǎng)絡(luò)成本在降低。針對上面這些問題,如果不再使用HDFS,可以用對象存儲替換。也就是在云環(huán)境里運(yùn)行大數(shù)據(jù)系統(tǒng)時,虛機(jī)只是進(jìn)行計算,而數(shù)據(jù)放到對象存儲。
第四個問題是跨多個地域的系統(tǒng)構(gòu)建存儲集群。這個問題可以通過OpenStack Swift對象存儲來解決,OpenStack Swift可支持跨多個數(shù)據(jù)中心、多個地域構(gòu)建存儲集群,這就給用戶構(gòu)建跨數(shù)據(jù)中心的大數(shù)據(jù)系統(tǒng)帶來了便利,用戶在提交數(shù)據(jù)處理作業(yè)時,不用關(guān)心數(shù)據(jù)到底是存放在哪個數(shù)據(jù)中心,而且可以一批任務(wù)處理多個數(shù)據(jù)中心的數(shù)據(jù),甚至多個地域的數(shù)據(jù)。
以上內(nèi)容是51CTO記者根據(jù)OStorage (奧思數(shù)據(jù))創(chuàng)始人兼CTO李明宇在WOT2018全球軟件與運(yùn)維技術(shù)峰會的采訪內(nèi)容整理,更多關(guān)于WOT的內(nèi)容請關(guān)注51cto.com。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】