版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于云原生存儲的容器持久化存儲方案
【摘要】容器正逐漸成為云上應(yīng)用的標(biāo)準(zhǔn)部署單元,某保險(xiǎn)公司將所有業(yè)務(wù)系統(tǒng)進(jìn)行容器化部署,在綜合了技術(shù)先進(jìn)性、成熟性、安全性、可擴(kuò)展性等架構(gòu)評估要素,并利用現(xiàn)有的物理存儲的基礎(chǔ)上,最終確認(rèn)采用以分布式云原生存儲IOMesh方案為主、容器本地存儲相配合的容器持久化存儲架構(gòu)方案。該方案可以整合當(dāng)前IT基礎(chǔ)架構(gòu)中的存儲系統(tǒng),支持的基礎(chǔ)架構(gòu)包括公有云、私有云和裸金屬,大大提高企業(yè)在多云或混合云架構(gòu)中存儲資源的利用率,也滿足了云應(yīng)用、數(shù)據(jù)庫以及大數(shù)據(jù)等不同業(yè)務(wù)場景的存儲需求。1.背景某保險(xiǎn)公司將所有業(yè)務(wù)系統(tǒng)進(jìn)行容器化部署,容器云平臺的數(shù)據(jù)存儲采取了分布式持久化技術(shù),存儲場景涉及了云應(yīng)用、數(shù)據(jù)存儲和分析、高性能計(jì)算以及數(shù)據(jù)邊界隔離。由于金融監(jiān)管的要求,存儲作為核心基礎(chǔ)架構(gòu)設(shè)施,需要保證高穩(wěn)定性和高安全性,需要對數(shù)據(jù)一致性、災(zāi)備和恢復(fù)有嚴(yán)格的要求。2.需求分析容器正逐漸成為云上應(yīng)用的標(biāo)準(zhǔn)部署單元,容器云平臺需要解決分布式持久化存儲的需求。同時(shí)容器編排系統(tǒng)也已成為趨勢,在無狀態(tài)的容器中,分布式存儲系統(tǒng)需要適配不同的存儲模式和規(guī)模,具體的架構(gòu)需求如下:分布式持久化存儲系統(tǒng)根據(jù)不通的場景具備融合架構(gòu)和分離架構(gòu)的能力,滿足高效率的文件檢索、高帶寬的吞吐性能,高可靠的數(shù)據(jù)安全保障;存儲插件需要支持不同的后端存儲;分布式持久化存儲系統(tǒng)需要結(jié)合容器云平臺實(shí)現(xiàn)自動化功能,如彈性伸縮,隔離管理,還需要具備可視化監(jiān)控。3.總體架構(gòu)設(shè)計(jì)3.1方案設(shè)計(jì)原則高可用原則關(guān)鍵軟硬件組件都要求高可用設(shè)計(jì)部署,全鏈路冗余,能應(yīng)對多種故障場景。先進(jìn)性與成熟性原則方案采用業(yè)界主流云計(jì)算技術(shù),保持技術(shù)的先進(jìn)性,同時(shí)更偏向于采用成熟的商業(yè)解決方案,以保證系統(tǒng)的穩(wěn)定性??蓴U(kuò)展性原則采用分布式架構(gòu)方案,滿足彈性擴(kuò)容需求,并對外提供開放標(biāo)準(zhǔn)的API接口,便于功能的擴(kuò)展。合適原則方案適應(yīng)大多數(shù)存儲場景,注重成本與收益的平衡,合理利用現(xiàn)有計(jì)算存儲資源,關(guān)注資源的使用效率。簡單原則盡量降低方案設(shè)計(jì)的復(fù)雜性,在滿足合適原則下,選用簡單易行方案。3.2總體架構(gòu)圖1.容器持久化存儲架構(gòu)圖如圖1所示,容器云可構(gòu)筑在公有云、私有云、虛擬化以及裸金屬等不同的物理底座之上。不同于物理存儲,容器存儲是容器云的組件之一,是跨平臺、更高層的邏輯概念,主要包括容器云存儲和容器本地存儲,容器云存儲通過CSI存儲插件可將云存儲卷掛載到容器,從而能被容器應(yīng)用訪問。在本方案中,主要采用的是以分布式云原生存儲為主、容器本地存儲相配合的容器持久化存儲架構(gòu),并充分利用現(xiàn)有的物理存儲系統(tǒng),提高資源利用效率,也滿足全業(yè)務(wù)場景的存儲需求。3.3部署建議物理機(jī)部署物理底座選擇裸金屬,可滿足最大性能需求,但不易擴(kuò)展,運(yùn)維簡便性不足。虛擬化部署物理底座選擇虛擬化或云平臺,易擴(kuò)展、運(yùn)維簡單,適用于大多數(shù)容器應(yīng)用場景,但有一定的資源損耗?;旌喜渴鹁C合來看,最終建議采用混合部署的方式,需要根據(jù)集群性能、運(yùn)維管理、資源利用率、技術(shù)成熟度、成本等因素,合理利用原有的計(jì)算存儲資源,去權(quán)衡不同業(yè)務(wù)場景下的物理部署方案。4.詳細(xì)方案說明4.1存儲方案選型容器云存儲是建立在物理存儲之上的一種邏輯概念,需建立物理存儲到容器存儲的映射關(guān)系。結(jié)合現(xiàn)有的物理存儲資產(chǎn),分析物理存儲到容器存儲的映射關(guān)系,如表1所示?,F(xiàn)有物理存儲特點(diǎn)映射方式容器訪問方式對象存儲容量擴(kuò)展性強(qiáng),成本低,性能一般不需要映射HTTP/RESTAPI接口NAS存儲性能不高,擴(kuò)展性弱容器云文件存儲NFS,掛載存儲卷到容器SAN存儲存儲延時(shí)低,性能穩(wěn)定,成本高,擴(kuò)展性弱容器本地存儲HostPath或EmptyDir容器云塊存儲iscsi,掛載存儲卷到容器本地硬盤成本低,適配SSD和HDD容器本地存儲HostPath或EmptyDir分布式云原生存儲iscsi,掛載存儲卷到容器表1.物理存儲到容器存儲的映射關(guān)系容器一般不需要持有對象存儲,容器應(yīng)用可直接訪問對象存儲;傳統(tǒng)NAS存儲可匹配容器云平臺的文件存儲需求,支持在多個(gè)容器中掛載和數(shù)據(jù)共享;傳統(tǒng)SAN存儲成本較高,性能穩(wěn)定,為特定的業(yè)務(wù)場景服務(wù),但彈性擴(kuò)展能力弱,運(yùn)維管理相對復(fù)雜,并不適合提供大規(guī)模容器云塊存儲服務(wù);服務(wù)器的本地磁盤成本低,在其上規(guī)劃部署分布式云原生存儲,可提供大規(guī)模容器云塊存儲服務(wù)功能。在合理利用現(xiàn)有存儲資源的前提下,提供大規(guī)模容器云塊存儲功能的云原生存儲是本方案的主要選型目標(biāo)。云原生存儲是專為容器化應(yīng)用構(gòu)建的存儲系統(tǒng),和應(yīng)用一起運(yùn)行在容器平臺之上,充分發(fā)揮容器平臺的優(yōu)勢,滿足高可用性、可擴(kuò)展性、動態(tài)部署、存儲服務(wù)自維護(hù)等要求,可極大地降低管理復(fù)雜度和運(yùn)維成本。目前主流的云原生存儲方案主要分為開源與閉源商用兩種解決方案:1)開源云原生存儲主要包括OpenEBS、Rook-Ceph等開源架構(gòu)的分布式云原生存儲。其特點(diǎn)是IO性能、吞吐、時(shí)延等方面都表現(xiàn)欠佳,需要有比較強(qiáng)的技術(shù)團(tuán)隊(duì)做保障,不適宜直接應(yīng)用于生產(chǎn)環(huán)境。2)商用云原生存儲方案商業(yè)云原生存儲提供了更多企業(yè)級應(yīng)用功能,性能和穩(wěn)定性方面也要優(yōu)于開源方案。相比于Portworx、StorageOS等國外廠商的云原生存儲方案,SmartX公司的IOMesh有著國內(nèi)本地研發(fā)的優(yōu)勢,能提供更快的用戶響應(yīng),同時(shí)也具備著更高的IO性能。綜合技術(shù)先進(jìn)性、成熟性、安全性、可擴(kuò)展性等架構(gòu)評估要素,在利用現(xiàn)有的物理存儲的基礎(chǔ)上,最終確定了以分布式云原生存儲IOMesh方案為主、容器本地存儲相配合的容器持久化存儲方案。4.2IOMesh云原生存儲架構(gòu)IOMesh可以整合當(dāng)前IT基礎(chǔ)架構(gòu)中的存儲系統(tǒng),支持的基礎(chǔ)架構(gòu)包括公有云、私有云和裸金屬,大大提高企業(yè)在多云或混合云架構(gòu)中存儲資源的利用率。IOMesh將整個(gè)架構(gòu)中的存儲資源進(jìn)行池化,支持在線擴(kuò)容,以供Kubernetes集群使用,如圖2所示。圖2.IOMesh云原生存儲架構(gòu)圖IOMesh主要有三個(gè)組件:IOMeshCSIDriver,是符合KubernetesCSIDriver規(guī)范的CSI插件,可以為容器調(diào)度平臺提供管理存儲的接口;IOMeshOperator,提供了和應(yīng)用統(tǒng)一的運(yùn)維方式,負(fù)責(zé)存儲集群的運(yùn)維,包括一鍵安裝、一鍵升級、一鍵擴(kuò)容等;IOMeshCluster,分布式塊存儲集群,基于本地存儲盤構(gòu)建存儲資源池。IOMesh的優(yōu)勢主要在于:1)裸設(shè)備存儲引擎:性能更優(yōu);2)智能數(shù)據(jù)分層:自動分層,成本效益最大化;3)無內(nèi)核依賴:故障隔離,穩(wěn)定性高;4)自動數(shù)據(jù)恢復(fù):高可用,易維護(hù);5)彈性擴(kuò)展:靈活橫向擴(kuò)展;6)卷級別管理:存儲管理更精細(xì)的;7)監(jiān)控分析:可視化的統(tǒng)一監(jiān)控管理。4.3動態(tài)Provision過程持久化存儲主要通過持久卷(PV,PersistentVolume)、持久卷聲明(PVC,PersistentVolumeClaim)兩種方式來實(shí)現(xiàn)。PV是集群存儲資源,PVC則是用戶對存儲資源的請求,通過PV滿足請求。PV的Provision分為靜態(tài)和動態(tài)兩種方式,其中靜態(tài)供應(yīng)需要管理員手動創(chuàng)建PV,但會大大增加存儲運(yùn)維工作;而動態(tài)供應(yīng)可以不需要集群管理員的任何手動干預(yù),主要通過定義存儲類(StorageClass),并在PVC時(shí)對存儲類進(jìn)行聲明的方式。存儲類抽象了存儲供應(yīng)的細(xì)節(jié),而依賴于制定的供應(yīng)程序來處理供應(yīng)邏輯。整個(gè)自動供應(yīng)過程如圖3所示:圖3.動態(tài)Provision過程本方案中使用的存儲及對應(yīng)的存儲類配置信息如下表所示:存儲CSI-Provisioner存儲接口AcessModes用途NetAppnetapp.io/tridentNfsReadWriteOnce,ReadWriteMany共享文件存儲IOMeshcom.iomesh.csi-driverIscsiReadWriteOnce高性能塊存儲存儲類是管理員需要提前規(guī)劃定義的,對于IOMesh來說,其存儲類定義可參考如下:在完成存儲類定義后,用戶可使用已定義的存儲類iomesh–sc1來創(chuàng)建聲明PVC,指定的PV支持單節(jié)點(diǎn)讀寫,大小為10G,定義的yaml文件參考如下:4.4應(yīng)用場景分類在容器云平臺中,典型的有狀態(tài)應(yīng)用場景主要包括云應(yīng)用、云數(shù)據(jù)庫、NOSQL、大數(shù)據(jù)分析和高性能計(jì)算等類型,本節(jié)將分別介紹這幾類應(yīng)用場景下的存儲應(yīng)用。4.4.1云應(yīng)用場景一般是輕量級應(yīng)用,應(yīng)用之間不掛載共享存儲,容器部署在云VM主機(jī)上,應(yīng)用間可通過容器直接訪問對象存儲的方式實(shí)現(xiàn)數(shù)據(jù)共享。在云原生存儲池中創(chuàng)建不同業(yè)務(wù)應(yīng)用的StorageClass,單個(gè)應(yīng)用容器對應(yīng)于一個(gè)或多個(gè)StorageClass,應(yīng)用通過申請指定的StorageClass的存儲資源PVC,存儲集群會創(chuàng)建和分配PV,PV會再被動態(tài)綁定到應(yīng)用容器,從而實(shí)現(xiàn)存儲資源的動態(tài)供應(yīng),如圖4所示。圖4.云應(yīng)用的容器存儲部署對于部分需要掛載共享存儲的應(yīng)用,則使用NAS存儲對應(yīng)的StorageClass,通過PVC綁定PV,最終實(shí)現(xiàn)應(yīng)用容器通過NFS方式共享文件存儲。4.4.2數(shù)據(jù)庫場景數(shù)據(jù)庫場景主要是MySQL、PostgreSQL等關(guān)系型數(shù)據(jù)庫以及MongoDB、Cassandra、Hbase等NoSQL數(shù)據(jù)庫,具體可根據(jù)存儲IO性能需求選擇部署在云VM主機(jī)或物理服務(wù)器上。對于數(shù)據(jù)庫場景來說,存儲IO性能至關(guān)重要。在同等硬件條件和測試參數(shù)下,IOMesh的性能遠(yuǎn)超業(yè)界同類產(chǎn)品。圖5.存儲性能測試對比MySQL部署:以單節(jié)點(diǎn)MySQL容器化部署為例,在Kubernetes中使用Service和Deployment部署MySQL,通過PVC聲明了一個(gè)存儲卷,并在Deployment中引用這個(gè)PVC,IOMesh再通過動態(tài)供應(yīng)卷的機(jī)制為MySQL提供PV。當(dāng)MySQL容器所在的節(jié)點(diǎn)發(fā)生故障時(shí),Kubernetes集群會立即檢測到節(jié)點(diǎn)故障,并自動在集群內(nèi)的一個(gè)可用節(jié)點(diǎn)上創(chuàng)建新的Pod,并重新綁定原有的PV,一定程度上保證了數(shù)據(jù)庫服務(wù)的高可用。Cassandra部署:Cassandra是一種Key—Value鍵值對數(shù)據(jù)庫,采用一致性hash算法對存儲在節(jié)點(diǎn)上的數(shù)據(jù)進(jìn)行分片,每個(gè)節(jié)點(diǎn)上均保存有數(shù)據(jù)分片。以三節(jié)點(diǎn)的Cassandra集群部署為例,在Kubernetes中使用headlessService和StatefulSet部署Cassandra集群,replicas設(shè)置為3。每個(gè)Cassandra集群節(jié)點(diǎn)各申請一個(gè)PVC,IOMesh再將通過動態(tài)供應(yīng)卷的機(jī)制提供PV。每一個(gè)Cassandra集群節(jié)點(diǎn)均有為穩(wěn)定、唯一的網(wǎng)絡(luò)標(biāo)識和持久化存儲,應(yīng)用可以按照順序、優(yōu)雅的啟停。對于關(guān)系數(shù)據(jù)庫和NOSQL來說,云原生存儲提供了數(shù)據(jù)多副本機(jī)制保障數(shù)據(jù)安全,可根據(jù)具體的技術(shù)架構(gòu)和實(shí)際業(yè)務(wù)需要決定是否部署數(shù)據(jù)庫層的高可用架構(gòu)或數(shù)據(jù)多副本,避免存儲資源的浪費(fèi)。4.4.3大數(shù)據(jù)場景大數(shù)據(jù)分析、高性能計(jì)算場景是一種大規(guī)模、高并發(fā)的數(shù)據(jù)密集型應(yīng)用。相比于傳統(tǒng)業(yè)務(wù)應(yīng)用,存儲方面需要滿足更大的內(nèi)存、存儲級內(nèi)存、固態(tài)硬盤、NVMe、更大的存儲容量等基礎(chǔ)設(shè)施要求,容器化后也一般是部署在物理主機(jī)上,可充分使用服務(wù)器的內(nèi)存和本地NVMeSSD。傳統(tǒng)的大數(shù)據(jù)分析和高性能計(jì)算場景存在著資源利用率低、資源隔離性差等問題,而容器化改造能很好地解決這個(gè)問題。一般來說,數(shù)據(jù)分析類應(yīng)用是一種夜間離線業(yè)務(wù),而在線業(yè)務(wù)高峰主要出現(xiàn)在日間,容器云平臺混合部署后,容器的彈性伸縮可以有效提升資源利用率;大數(shù)據(jù)分析和高性能計(jì)算的各組件容器化后,可以做到容器間對于CPU、內(nèi)存等資源的隔離。以大數(shù)據(jù)分析應(yīng)用為例,包括分布式文件系統(tǒng)HDFS、列數(shù)據(jù)庫HBase等組件,容器化部署如下表所示。大數(shù)據(jù)組件用途容器部署方式數(shù)據(jù)存儲HDFS文件存儲,Hadoop基礎(chǔ)組件StatefulSet+DaemonSet本地磁盤,根目錄;IOMesh塊存儲HBase列數(shù)據(jù)庫StatefulSetHDFSMySQL關(guān)系數(shù)據(jù)庫DeploymentIOMesh塊存儲Hive數(shù)據(jù)查詢分析StatefulSetHDFS,MySQLHbase架構(gòu)在HDFS之上,HDFS的存儲架構(gòu)需重點(diǎn)設(shè)計(jì)。如圖6所示,HDFS一般包括Namenode和多個(gè)Datanode,Namenode容器管理著HDFS的元數(shù)據(jù)MetaData,存放在IOMesh云原生存儲池中;每個(gè)節(jié)點(diǎn)主機(jī)通過DaemonSet方式固定部署某個(gè)Datanode容器,Datanode容器管理著實(shí)際的數(shù)據(jù)塊,存儲在節(jié)點(diǎn)主機(jī)的本地磁盤。HDFS的數(shù)據(jù)量較大,本身就支持多數(shù)據(jù)副本機(jī)制,有著一套完整的存儲管理機(jī)制,數(shù)據(jù)塊部署在本地磁盤可以很好地契合場景。圖6.HDFS的容器存儲部署
4.5異常場景應(yīng)對對于分布式持久化存儲系統(tǒng)來說,異常場景主要受以下三類因素影響:1)自身的可用性存儲的軟硬件組件層面的冗余設(shè)計(jì)存在缺陷,在部分組件故障失效時(shí),會導(dǎo)致部分或全部服務(wù)不可用,甚至?xí)霈F(xiàn)數(shù)據(jù)丟失的極端情況。2)自身的穩(wěn)定性在部分軟硬件故障或故障恢復(fù)時(shí),存儲性能出現(xiàn)較大下降,響應(yīng)延遲增加,從而可能會導(dǎo)致應(yīng)用訪問隊(duì)列堵塞,嚴(yán)重影響到用戶體驗(yàn)。3)外在的容器云環(huán)境云原生存儲運(yùn)行在容器云平臺上,會受到容器云平臺的故障影響,比如節(jié)點(diǎn)主機(jī)故障、容器云平臺故障等,從而嚴(yán)重影響到云原生存儲,用戶體驗(yàn)下降或無法對外提供服務(wù)。針對上述因素引起的異常場景,在存儲方案設(shè)計(jì)和部署時(shí),需要關(guān)注以下幾點(diǎn):高可用部署高可用部署需要滿足軟硬件層面的全冗余,需要考慮軟件層的組件配置、組件的主機(jī)部署、機(jī)柜位置分布、網(wǎng)絡(luò)拓?fù)涞纫蛩亍τ谠圃鎯OMesh來說,采用了先進(jìn)的全分布式架構(gòu),其充分利用了容器云平臺的高可用特性,安裝部署簡單,可根據(jù)實(shí)際需求,配置3~5MetaServers和ChunkServer。存儲插件IOMesh采用IO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車行業(yè)工程師的工作總結(jié)
- 【八年級下冊歷史】第12課 民族大團(tuán)結(jié) 同步練習(xí)
- 2024年秋葉飄教案
- 2024年秋天的懷念教案篇
- 2024年美術(shù)教案匯編8篇
- 制造業(yè)合同范本(2篇)
- 2024無錫經(jīng)典財(cái)稅獨(dú)家資料初級會計(jì)職稱考試《初級會計(jì)經(jīng)濟(jì)法基礎(chǔ)》考試密卷
- 2024年福建省《公共基礎(chǔ)之管理公文》必刷500題帶解析含答案ab卷
- 【人教版九上歷史】背誦秘笈
- gps靜態(tài)測量實(shí)習(xí)報(bào)告(實(shí)習(xí)報(bào)告,靜態(tài),測量)
- 2024-2030年中國高密度聚乙烯管道行業(yè)發(fā)展展望與投資策略建議報(bào)告
- 2024-2030年中國醋酸乙烯行業(yè)運(yùn)營狀況與發(fā)展風(fēng)險(xiǎn)評估報(bào)告
- 企業(yè)文化塑造與員工激勵(lì)方案
- 2024年01月22504學(xué)前兒童科學(xué)教育活動指導(dǎo)期末試題答案
- 多發(fā)性神經(jīng)病護(hù)理
- 【MOOC】線性代數(shù)-浙江大學(xué) 中國大學(xué)慕課MOOC答案
- 開門紅包費(fèi)用申請
- 區(qū)塊鏈原理與實(shí)踐全套完整教學(xué)課件
- 運(yùn)動神經(jīng)元病小講課
- 工會的財(cái)務(wù)管理制度〔13篇〕
- 新版醫(yī)務(wù)人員法律法規(guī)知識培訓(xùn)課件
評論
0/150
提交評論