亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

1???導(dǎo)讀
本文介紹了目前云原生環(huán)境下,支持有狀態(tài)應(yīng)用的幾種典型存儲(chǔ)方案的特點(diǎn),并對市場主流的幾個(gè)云原生存儲(chǔ)產(chǎn)品實(shí)際測試性能進(jìn)行對比。
?2???現(xiàn)狀
當(dāng)前,云原生已經(jīng)成為應(yīng)用開發(fā)者在選擇架構(gòu)設(shè)計(jì)時(shí)的首選。云原生讓應(yīng)用開發(fā)者可以將所有精力都集中在開發(fā)業(yè)務(wù)邏輯本身,這極大降低了應(yīng)用開發(fā)者的負(fù)擔(dān)。

而應(yīng)用系統(tǒng)的敏捷性、擴(kuò)展性、可靠性、高可用等,則由基礎(chǔ)設(shè)施軟件和運(yùn)維團(tuán)隊(duì)共同承擔(dān)。一方面,運(yùn)維團(tuán)隊(duì)需要利用基礎(chǔ)設(shè)施軟件,快速響應(yīng)業(yè)務(wù)系統(tǒng)提出的部署、擴(kuò)容、遷移等需求,另一方面,也要時(shí)刻保持業(yè)務(wù)系統(tǒng)和基礎(chǔ)設(shè)施軟件的穩(wěn)定運(yùn)行。這為基礎(chǔ)設(shè)施軟件和運(yùn)維團(tuán)隊(duì)都帶來了更大的挑戰(zhàn)。

如何正確的為基礎(chǔ)架構(gòu)軟件進(jìn)行設(shè)計(jì)和選型,就成為了運(yùn)維主管們最具挑戰(zhàn)的任務(wù)之一。

?3???云原生場景下的存儲(chǔ)系統(tǒng)

存儲(chǔ)系統(tǒng)一直以來都是基礎(chǔ)設(shè)施軟件中的核心之一。無論業(yè)務(wù)采用什么樣的運(yùn)行環(huán)境和架構(gòu),都離不開存儲(chǔ)系統(tǒng)的支撐。

在過去的 30 年中,業(yè)務(wù)系統(tǒng)的運(yùn)行環(huán)境經(jīng)歷了巨大的變化,從單獨(dú)部署的物理機(jī),小規(guī)模部署的虛擬化環(huán)境,大規(guī)模部署的云環(huán)境,以及目前的 K8s 平臺(tái)。在這個(gè)變革的過程中,業(yè)務(wù)系統(tǒng)對平臺(tái)敏捷性的要求越來越高。在物理機(jī)時(shí)代,運(yùn)維人員需要手動(dòng)配置存儲(chǔ)系統(tǒng)和部署業(yè)務(wù)系統(tǒng),業(yè)務(wù)上線以周為單位。而在云原生時(shí)代,每分鐘都可能發(fā)布新的應(yīng)用版本,每天都可能有大量的業(yè)務(wù)要上線。
這意味著,云原生時(shí)代的存儲(chǔ)系統(tǒng),除了要滿足性能、穩(wěn)定性、可靠性的要求以外,還要滿足業(yè)務(wù)系統(tǒng)對敏捷性的要求,能夠通過統(tǒng)一的編排系統(tǒng)配合業(yè)務(wù)上線,并且可以實(shí)現(xiàn)快速擴(kuò)容。同時(shí),為了減輕運(yùn)維管理員的工作負(fù)擔(dān),存儲(chǔ)系統(tǒng)自身的自動(dòng)化運(yùn)維能力,也成為運(yùn)維團(tuán)隊(duì)關(guān)注的核心焦點(diǎn)。
?4???云原生的存儲(chǔ)方案
云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

圖 1. 使用/部署容器的主要挑戰(zhàn)(圖片來源于 CNCF 報(bào)告)

從 CNCF 的調(diào)查可以看出,目前存儲(chǔ)系統(tǒng)依然是云原生場景使用和部署中面臨的最主要障礙之一。接下來我們來介紹一下云原生場景下不同存儲(chǔ)方案的優(yōu)劣點(diǎn)。

本地磁盤

本地磁盤是最容易想到的方式,也是從物理機(jī)時(shí)代就一直在使用的方式。

在服務(wù)器的硬盤槽上插上硬盤,并利用 HBA 卡或軟件的方式制作 RAID,劃分邏輯卷,格式化成某種文件系統(tǒng)后,掛載到容器中。

由于磁盤和應(yīng)用系統(tǒng)中間的 IO 路徑最短,本地磁盤可以提供最佳的性能。同時(shí) RAID 提供了一定程度的可靠性的保證,可以避免因單個(gè)磁盤故障而導(dǎo)致的數(shù)據(jù)丟失。因此,目前有大量用戶采用這種方式為有狀態(tài)的應(yīng)用提供存儲(chǔ)服務(wù)。

然而本地磁盤方案也存在著巨大的缺陷。

首先,本地磁盤無法提供節(jié)點(diǎn)級別的高可用,當(dāng)物理節(jié)點(diǎn)發(fā)生故障時(shí),由于數(shù)據(jù)都存儲(chǔ)在故障節(jié)點(diǎn)上,所以應(yīng)用無法被恢復(fù)到其他節(jié)點(diǎn)。如果業(yè)務(wù)系統(tǒng)有節(jié)點(diǎn)級高可用的要求,則必須由業(yè)務(wù)系統(tǒng)自己實(shí)現(xiàn)數(shù)據(jù)層面的高可用,這極大的增加了業(yè)務(wù)系統(tǒng)的復(fù)雜度。

其次,本地磁盤在敏捷性上也無法滿足業(yè)務(wù)需求,業(yè)務(wù)使用的存儲(chǔ)空間受限于本地磁盤的大小,如果達(dá)到磁盤空間的上限后難以擴(kuò)容。部署 RAID 也是相當(dāng)耗時(shí)的操作,難以實(shí)現(xiàn)在短時(shí)間內(nèi)部署大量的應(yīng)用系統(tǒng)。

此外,該方案無論是部署還是故障后的修復(fù),都需要大量人力的參與,這使得本地存儲(chǔ)方案的運(yùn)維成本非常高。同時(shí)由于節(jié)點(diǎn)間的存儲(chǔ)空間無法共享,也很容易造成存儲(chǔ)空間的浪費(fèi)。

總的來說,本地磁盤的方案只適合在業(yè)務(wù)容器化的初期階段進(jìn)行小規(guī)模試用,難以在大規(guī)模場景下被廣泛使用。

集中式存儲(chǔ)

集中式存儲(chǔ)提供了可遠(yuǎn)程訪問共享存儲(chǔ)的能力。和本地磁盤的方案相比,集中式存儲(chǔ)解決了應(yīng)用系統(tǒng)高可用的問題,當(dāng)業(yè)務(wù)系統(tǒng)所在的服務(wù)器發(fā)生故障時(shí),由于數(shù)據(jù)不再存儲(chǔ)在服務(wù)器本地,而是存儲(chǔ)在遠(yuǎn)端的共享存儲(chǔ)中,所以可以在其他節(jié)點(diǎn)上把應(yīng)用拉起來,以實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的高可用。此外,由于數(shù)據(jù)集中存儲(chǔ),也一定程度解決了本地存儲(chǔ)對磁盤空間浪費(fèi)的問題。

很多商用存儲(chǔ)都采用集中式存儲(chǔ)架構(gòu),除了基本的數(shù)據(jù)讀寫能力外,還提供了很多高級功能,包括快照、克隆、容災(zāi)等等,進(jìn)一步提升業(yè)務(wù)數(shù)據(jù)的可靠性。

然而集中式存儲(chǔ)的架構(gòu)決定了它不適合云原生的場景。

集中式存儲(chǔ)采用存儲(chǔ)控制器加盤柜的形式,控制器負(fù)責(zé)提供性能和存儲(chǔ)功能,盤柜提供可擴(kuò)展的存儲(chǔ)容量。

盡管集中式存儲(chǔ)可以為單個(gè)業(yè)務(wù)系統(tǒng)提供較高的性能保證,但是當(dāng)面臨大量業(yè)務(wù)并發(fā)訪問時(shí),存儲(chǔ)控制器則成為了性能瓶頸。如果想要滿足大量業(yè)務(wù)對性能需求,需要采用多套集中式存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)的管理成本也會(huì)急劇上升。

此外,由于集中式存儲(chǔ)誕生在幾十年前,在設(shè)計(jì)上就沒有把敏捷性和運(yùn)維便利性考慮進(jìn)去,無法應(yīng)對短時(shí)間內(nèi)大量 Volume 的并發(fā)創(chuàng)建和銷毀操作,無法滿足業(yè)務(wù)系統(tǒng)對敏捷性的要求。

分布式存儲(chǔ)

分布式存儲(chǔ)的誕生就是為了解決集中式存儲(chǔ)無法解決的問題。

分布式存儲(chǔ)天然具有橫向擴(kuò)展能力,在性能和高可用方面遠(yuǎn)優(yōu)于集中式存儲(chǔ),非常適合應(yīng)對大規(guī)模虛擬化場景。與此同時(shí),分布式存儲(chǔ)也逐漸具備了企業(yè)級存儲(chǔ)的能力,包括快照、克隆等等。

不過,盡管分布式存儲(chǔ)在架構(gòu)上具備眾多優(yōu)點(diǎn),但在實(shí)現(xiàn)難度上具備非常大的挑戰(zhàn),并不是所有的分布式存儲(chǔ)都能夠充分發(fā)揮出分布式架構(gòu)的優(yōu)勢。在實(shí)際的使用過程中,大部分分布式存儲(chǔ)的性能和穩(wěn)定性都難以達(dá)到生產(chǎn)級別的標(biāo)準(zhǔn),這使得很多運(yùn)維團(tuán)隊(duì)不敢輕易地部署分布式存儲(chǔ)產(chǎn)品。

總結(jié)

云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

圖 2. 不同存儲(chǔ)方案對比

5???云原生有狀態(tài)應(yīng)用對存儲(chǔ)系統(tǒng)的需求
談存儲(chǔ)技術(shù)無法脫離應(yīng)用場景。在云原生架構(gòu)下,大部分業(yè)務(wù)系統(tǒng)不會(huì)處理數(shù)據(jù)存儲(chǔ)的邏輯,而是盡可能將數(shù)據(jù)存儲(chǔ)和處理能力交給數(shù)據(jù)庫來完成。

目前越來越多的數(shù)據(jù)庫也在采用云原生架構(gòu),數(shù)據(jù)庫迎來了云原生時(shí)代。云原生數(shù)據(jù)庫將實(shí)例運(yùn)行在容器中,具備了快速部署,快速擴(kuò)容的能力。同時(shí),云原生數(shù)據(jù)庫也采用了“存算分離”的架構(gòu),將數(shù)據(jù)庫計(jì)算邏輯和存儲(chǔ)邏輯進(jìn)一步進(jìn)行分離,存儲(chǔ)能力交給更專業(yè)的存儲(chǔ)系統(tǒng)完成,數(shù)據(jù)庫只專注在數(shù)據(jù)庫的業(yè)務(wù)邏輯處理。

在某種程度上講,我們可以說云原生時(shí)代的有狀態(tài)應(yīng)用,大部分指的就是“云原生數(shù)據(jù)庫”。接下來,我們分兩種典型的數(shù)據(jù)庫類型進(jìn)行介紹。

交易型數(shù)據(jù)庫(OLTP)

常見的 OLTP 數(shù)據(jù)庫有 MySQL,PostgreSQL 等,通常承載的都是核心交易類業(yè)務(wù),對存儲(chǔ)系統(tǒng)的數(shù)據(jù)可靠性、性能要求極高。交易類業(yè)務(wù)本身對延遲非常敏感,所以存儲(chǔ)系統(tǒng)的性能直接決定了 OLTP 系統(tǒng)能提供的能力。存儲(chǔ)系統(tǒng)的帶寬越高、延遲越低,OLTP 能提供的 TPS 越高。

每一套業(yè)務(wù)系統(tǒng)通常都會(huì)有 N 套獨(dú)立的 OLTP 數(shù)據(jù)庫作為業(yè)務(wù)支撐。由于業(yè)務(wù)系統(tǒng)會(huì)頻繁的進(jìn)行部署以及擴(kuò)容,所以支撐 OLTP 的存儲(chǔ)系統(tǒng)必須具備很高的敏捷性,可以快速提供數(shù)據(jù)庫對存儲(chǔ)空間的需求,同時(shí)也要方便的進(jìn)行擴(kuò)容等操作。

大部分 OLTP 數(shù)據(jù)庫采用塊存儲(chǔ)系統(tǒng)作為數(shù)據(jù)存儲(chǔ)系統(tǒng),因?yàn)閴K存儲(chǔ)通??梢蕴峁┳罴训男阅?。此外,商業(yè)塊存儲(chǔ)還提供了快照、克隆等技術(shù),可以很好地保證數(shù)據(jù)庫業(yè)務(wù)的延續(xù)性。

分析型數(shù)據(jù)庫(OLAP)

OLAP 數(shù)據(jù)庫主要用在數(shù)據(jù)分析場景,對存儲(chǔ)系統(tǒng)的可靠性以及延遲的要求都不像 OLTP 數(shù)據(jù)庫那么高,且因?yàn)閿?shù)據(jù)量巨大,所以對存儲(chǔ)成本也非常敏感。

為了支撐 OLAP 對存儲(chǔ)成本的要求,存儲(chǔ)系統(tǒng)通常采用 EC 技術(shù),以降低數(shù)據(jù)存儲(chǔ)的成本。而考慮到文件接口難以支撐百億級別的文件數(shù)量,所以 OLAP 使用的存儲(chǔ)系統(tǒng)通常采用對象接口,例如 S3 接口。

OLAP 系統(tǒng)對敏捷性沒有特殊的需求,一旦部署好后,最常見的運(yùn)維操作是擴(kuò)容,并不會(huì)對數(shù)據(jù)庫頻繁的進(jìn)行重新部署和銷毀操作。

基于以上因素,分析型數(shù)據(jù)庫通常采用支持 EC 的對象存儲(chǔ)作為數(shù)據(jù)存儲(chǔ)服務(wù),通過 S3 接口訪問數(shù)據(jù)。

總結(jié)云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

?圖 3. OLTP 和 OLAP 對存儲(chǔ)系統(tǒng)的不同要求

6???多云環(huán)境對存儲(chǔ)系統(tǒng)帶來的新挑戰(zhàn)
隨著云技術(shù)越來越成熟,越來越多的企業(yè)面臨多云的需求:部分對數(shù)據(jù)安全不敏感且具有大量網(wǎng)絡(luò)流量的業(yè)務(wù)需要使用公有云服務(wù),而對數(shù)據(jù)安全性和服務(wù)穩(wěn)定性要求較高的業(yè)務(wù)需要使用私有云服務(wù)。

公有云和私有云在產(chǎn)品設(shè)計(jì)理念上完全不同,產(chǎn)品的使用方式、運(yùn)維方式、服務(wù)質(zhì)量、產(chǎn)品參數(shù)也完全不同。即使同樣是公有云或者私有云,不同的服務(wù)提供商之間也存在著巨大差異。多云的環(huán)境,對企業(yè)的運(yùn)維團(tuán)隊(duì)提出了巨大的挑戰(zhàn)。

而云原生架構(gòu)的誕生,就是為了應(yīng)對多云的挑戰(zhàn):開發(fā)者在設(shè)計(jì)云原生應(yīng)用時(shí),只需要關(guān)注應(yīng)用被如何創(chuàng)建和部署,無需關(guān)注在哪里運(yùn)行。

然而盡管目前有相當(dāng)多的開發(fā)者采用了云原生的架構(gòu)設(shè)計(jì)應(yīng)用系統(tǒng),但是對于基礎(chǔ)架構(gòu)軟件來說,目前還是由不同的云廠商來提供?;A(chǔ)架構(gòu)的運(yùn)維人員需要為不同服務(wù)商提供的存儲(chǔ)系統(tǒng),準(zhǔn)備不同的運(yùn)維方式,這極大的增加了運(yùn)維人員的負(fù)擔(dān)。

由此也誕生一個(gè)新的存儲(chǔ)系統(tǒng)類別:云原生存儲(chǔ)系統(tǒng)。云原生存儲(chǔ)系統(tǒng)可以良好的運(yùn)行在各種不同服務(wù)商提供的公有云環(huán)境或私有云環(huán)境,并且為運(yùn)維人員提供相同接口和運(yùn)維方式。云原生存儲(chǔ)系統(tǒng)可以極大的降低運(yùn)維團(tuán)隊(duì)的負(fù)擔(dān)。

云原生存儲(chǔ)有什么不同

此處我們以 IOMesh 的架構(gòu)圖作為示例,說明云原生存儲(chǔ)的特點(diǎn)。

云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

圖 4. IOMesh 產(chǎn)品架構(gòu)圖

云原生存儲(chǔ)不僅僅可以做到支持在公有云和私有云運(yùn)行,而且提供了容器化部署、自動(dòng)運(yùn)維、聲明式接口等特征,讓用戶可以采用和運(yùn)維其他云原生應(yīng)用一樣的方式對存儲(chǔ)系統(tǒng)進(jìn)行部署、運(yùn)維和管理。

除此之外,云原生存儲(chǔ)還需要能夠很好地和其他云原生基礎(chǔ)設(shè)施配合,例如云原生數(shù)據(jù)庫,使得云原生數(shù)據(jù)庫可以真正的在公有云和私有云都能夠得到一致的用戶體驗(yàn)。

?7???如何選擇云原生存儲(chǔ)
云原生存儲(chǔ)也是存儲(chǔ)系統(tǒng),所以存儲(chǔ)系統(tǒng)所必備的可靠性,性能,高可用等等特點(diǎn)都是必不可少的。

除此之外,“云原生”對存儲(chǔ)系統(tǒng)提出了更高的要求。

盡量減少環(huán)境依賴

云原生存儲(chǔ)系統(tǒng)應(yīng)盡量不對軟硬件環(huán)境存在任何依賴,例如對內(nèi)核的依賴,對特定的網(wǎng)絡(luò)設(shè)備和磁盤型號的依賴等等。只有盡量少的依賴,才能夠做到最大的適配性。

避免資源消耗過高

云原生存儲(chǔ)系統(tǒng)以容器的形式和業(yè)務(wù)系統(tǒng)混合部署在容器平臺(tái)上。如果存儲(chǔ)系統(tǒng)占用過多的計(jì)算資源(CPU、內(nèi)存),則會(huì)導(dǎo)致整體投入成本太高。

聲明式運(yùn)維方式

存儲(chǔ)系統(tǒng)應(yīng)支持通過聲明式的接口進(jìn)行運(yùn)維管理,同時(shí)支持一定程度的自動(dòng)化運(yùn)維,包括在線擴(kuò)容、升級等等。當(dāng)發(fā)生硬件故障時(shí),存儲(chǔ)服務(wù)可以自動(dòng)恢復(fù),以保證業(yè)務(wù)系統(tǒng)不受影響。

云原生生態(tài)

云原生存儲(chǔ)系統(tǒng)應(yīng)該可以很好地和云原生的運(yùn)維生態(tài)系統(tǒng)結(jié)合,包括監(jiān)控、報(bào)警、日志處理等待。

?8???云原生存儲(chǔ)系統(tǒng)的性能對比
性能是評判存儲(chǔ)系統(tǒng)是否能夠支撐核心業(yè)務(wù)的關(guān)鍵指標(biāo)。本文將對 4 個(gè)常見的云原生存儲(chǔ)系統(tǒng),IOMesh、Longhorn、Portworx、OpenEBS,的性能測試結(jié)果進(jìn)行對比。

我們準(zhǔn)備了三個(gè) Worker 節(jié)點(diǎn)作為運(yùn)行應(yīng)用和云原生存儲(chǔ)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)配備了兩塊 SATA SSD,四塊 SATA HDD,以及萬兆網(wǎng)卡。

在測試中,我們采用最常見的 MySQL 數(shù)據(jù)庫作為有狀態(tài)應(yīng)用,并使用 sysbench-tpcc 模擬業(yè)務(wù)負(fù)載。下表提供了四個(gè)云原生存儲(chǔ)系統(tǒng)在 TPC-C MySQL 測試中的 TPS、QPS 以及 P95 延遲數(shù)據(jù)。

云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

圖 5. TPC-C MySQL 綜合性能測試

下圖對比了四個(gè)云原生存儲(chǔ)系統(tǒng)的性能測試結(jié)果。圖中橫軸代表測試時(shí)間,縱軸分別代表:TPS、QPS、以及 P95 延遲的瞬時(shí)值。

云原生時(shí)代需要什么樣的存儲(chǔ)系統(tǒng)?

圖 6. TPC-C MySQL 性能穩(wěn)定性測試

從以上數(shù)據(jù)與對比可以明顯地看出, IOMesh 在絕對性能,以及性能的穩(wěn)定性上,都遙遙領(lǐng)先于其他的云原生存儲(chǔ)系統(tǒng),具備為核心生產(chǎn)系統(tǒng)提供存儲(chǔ)支撐的能力。

?9???總結(jié)
隨著云原生時(shí)代的到來,越來越多的業(yè)務(wù)系統(tǒng)會(huì)采用云原生架構(gòu)。存儲(chǔ)系統(tǒng)作為承載業(yè)務(wù)穩(wěn)定運(yùn)行的核心組件,在云原生的架構(gòu)下,也面臨著新的挑戰(zhàn)。與此同時(shí),數(shù)據(jù)庫以及存儲(chǔ)系統(tǒng)自身也受到了云原生架構(gòu)的影響,逐漸發(fā)展出云原生數(shù)據(jù)庫和云原生存儲(chǔ)系統(tǒng)。未來可以看到越來越多的云原生數(shù)據(jù)庫和云原生存儲(chǔ)出現(xiàn)在數(shù)據(jù)中心中,成為被廣泛使用的技術(shù)。

作者:張凱現(xiàn)任 SmartX 聯(lián)合創(chuàng)始人兼 CTO。張凱碩士畢業(yè)于清華大學(xué)計(jì)算機(jī)系,擁有十余年分布式存儲(chǔ)研究與產(chǎn)品經(jīng)驗(yàn)。在創(chuàng)立 SmartX 之前,張凱曾就職于 Baidu,負(fù)責(zé)大數(shù)據(jù)平臺(tái)基礎(chǔ)設(shè)施建設(shè)、穩(wěn)定性和性能優(yōu)化。

文章轉(zhuǎn)載:CSDN(ID:CSDNnews)
(版權(quán)歸原作者所有,侵刪)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!