2024年金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究報告-北京金融科技產(chǎn)業(yè)聯(lián)盟_第1頁
2024年金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究報告-北京金融科技產(chǎn)業(yè)聯(lián)盟_第2頁
2024年金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究報告-北京金融科技產(chǎn)業(yè)聯(lián)盟_第3頁
2024年金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究報告-北京金融科技產(chǎn)業(yè)聯(lián)盟_第4頁
2024年金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究報告-北京金融科技產(chǎn)業(yè)聯(lián)盟_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

金融行業(yè)分布式數(shù)據(jù)庫容器化建設(shè)需求研究I版權(quán)聲明本報告版權(quán)屬于北京金融科技產(chǎn)業(yè)聯(lián)盟,并受法律保護。轉(zhuǎn)載、編摘或利用其他方式使用本白皮書文字或觀點的,應注明來源。違反上述聲明者,將被追究相關(guān)法律責任。編制委員會主任:聶麗琴編委會成員:編寫組成員:李嵩嵩楊旭劉月然朱鵬秦延濤曹偉劉海波楊銳陳偉紅黃貴趙亮燕征南梁海安駱明順路新英梁廣濤徐雪濤朱潔郎岳樟李保洋編審:參編單位:北京金融科技產(chǎn)業(yè)聯(lián)盟招商銀行股份有限公司中國農(nóng)業(yè)銀行股份有限公司杭州云猿生數(shù)據(jù)有限公司騰訊云計算(北京)有限責任公司金篆信科有限責任公司平安科技(深圳)有限公司華為云計算技術(shù)有限公司阿里云計算有限公司上海愛可生信息技術(shù)股份有限公司北京百度網(wǎng)訊科技有限公司1 3 4(一)分布式數(shù)據(jù)庫技術(shù) 4(二)容器技術(shù) 8 (一)調(diào)度 (二)變更 (五)備份恢復 (七)監(jiān)控報警 (八)數(shù)據(jù)庫訪問控制 (九)混沌工程 (十)智能運維 (十一)其他 (一)一致性校驗 (二)容災 2 (一)分層抽象 (二)管理平臺API設(shè)計 3一、目標隨著金融行業(yè)數(shù)字化轉(zhuǎn)型的不斷深入,金融機構(gòu)對于數(shù)據(jù)管理提出了更高的要求。在容器技術(shù)和數(shù)據(jù)庫生態(tài)系統(tǒng)不斷發(fā)展的可擴展性和高可用性,成為金融行業(yè)數(shù)據(jù)管理的重要選擇,可為金融行業(yè)帶來如下收益:提高自動化程度,分布式數(shù)據(jù)庫容器化能使其在多云、混合云環(huán)境中靈活地部署和管理,利用云平臺的資源調(diào)度和自動化能力,實現(xiàn)分布式數(shù)據(jù)庫的自動擴縮容和高可用性。提升部署和運維效率,分布式數(shù)據(jù)庫容器化簡化了部署和管理過程。通過使用容器鏡像,將配置和依賴項打包在一起,實現(xiàn)一致性和可重復性的部署,簡化生產(chǎn)環(huán)境的運維工作,降低人為錯誤的風險。優(yōu)化資源利用率,傳統(tǒng)的分布式數(shù)據(jù)庫部署通常需要專用的服務器和資源,導致資源利用率較低。而分布式數(shù)據(jù)庫容器化允許在同一臺服務器上進行高密度的數(shù)據(jù)庫實例部署,通過容器的隔離性和資源限制功能,可以更好地利用服務器資源,提高資源利用率和成本效益。數(shù)據(jù)庫混合部署,金融應用通常需要使用多種類型的數(shù)據(jù)庫,容器化使得在同一個環(huán)境中運行和管理不同類型的數(shù)據(jù)庫變得更加高效、經(jīng)濟,實現(xiàn)不同數(shù)據(jù)庫的混合部署。保證數(shù)據(jù)安全與隔離,在多租戶或共享環(huán)境中,相對于共享4物理機,分布式數(shù)據(jù)庫容器化提供了更好的數(shù)據(jù)隔離和安全保障。每個數(shù)據(jù)庫實例運行在獨立的容器中,可以減少數(shù)據(jù)泄露和相互干擾的風險。本文從金融行業(yè)視角,對分布式數(shù)據(jù)庫和容器技術(shù)進行了研究,結(jié)合實踐中的真實運維需求和應用需求給出了分布式數(shù)據(jù)庫容器化建設(shè)方案,為云化時代金融機構(gòu)運用容器技術(shù)解決云平臺和分布式數(shù)據(jù)庫間兼容匹配的問題提供有效參考。二、技術(shù)分析(一)分布式數(shù)據(jù)庫技術(shù)分布式數(shù)據(jù)庫是一種在多個物理或邏輯位置存儲數(shù)據(jù)的數(shù)據(jù)庫系統(tǒng)。在金融行業(yè),分布式數(shù)據(jù)庫提供了高可用性、數(shù)據(jù)一致性和彈性擴縮容能力。金融機構(gòu)可以利用分布式數(shù)據(jù)庫處理大規(guī)模交易數(shù)據(jù),實現(xiàn)快速查詢和實時分析,從而提高決策效率。隨著金融科技的發(fā)展,分布式數(shù)據(jù)庫在支持復雜金融產(chǎn)品、風險管理和客戶服務等方面發(fā)揮著越來越重要的作用。分布式數(shù)據(jù)庫的性能,源自其在數(shù)據(jù)分布、事務處理和架構(gòu)上的獨特之處。1.數(shù)據(jù)分布方式。分布式數(shù)據(jù)庫與單機數(shù)據(jù)庫存儲在本地磁盤或者共享磁盤的方式不同,采用Sharde-Nothing架構(gòu)。數(shù)據(jù)通過多副本保存在不同的數(shù)據(jù)節(jié)點,每個數(shù)據(jù)節(jié)點擁有一部分數(shù)據(jù),多個數(shù)據(jù)節(jié)點共同組成完整數(shù)據(jù)。目前分布式數(shù)據(jù)庫產(chǎn)品的數(shù)據(jù)分布有兩種方式。指定分片鍵分布:數(shù)據(jù)表以指定分片鍵及分片算法方式,將5整張表的數(shù)據(jù)打散分布到各個數(shù)據(jù)節(jié)點。常用的分片策略有:哈希分片(hash)、范圍分片(range)、列表分片(list)、復制分片(duplicate)、多級分片等。根據(jù)大小默認分布:某些分布式數(shù)據(jù)產(chǎn)品采用默認分片方式,根據(jù)固定大?。ㄈ?00M)對數(shù)據(jù)進行物理切割,每個切割單元稱為Region,每個Region的內(nèi)容與數(shù)據(jù)表無對應關(guān)系,一個Region可能包含多個不同數(shù)據(jù)表中的數(shù)據(jù)。2.分布式事務。分布式事務指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于分布式系統(tǒng)的不同節(jié)點上,實現(xiàn)的目標是將單機數(shù)據(jù)庫的ACID理論(即保證事務的原子性、一致性、隔離性、持久性),延伸到分布式架構(gòu)。在分布式系統(tǒng)設(shè)計中,CAP理論(ConsPartitiontolerance)指出,一個分布式系統(tǒng)在出現(xiàn)分區(qū)故障(Partition)時,無法同時保證數(shù)據(jù)一致性(Consistency)和可用性(Availability因此分布式系統(tǒng)設(shè)計時通常需要在這三者之間做出權(quán)衡。業(yè)內(nèi)常用的分布式事務處理有兩種方案:a.兩階段提交(2PC)和三階段提交(3PC);b.SAGA事務(事務補償方案是一種長活事務模型,用于處理分布式事務,通過補償操作來恢復失敗的事務。在設(shè)計分布式系統(tǒng)時,選擇合適的一致性模型和算法是非常重要的,這直接影響到系統(tǒng)的性能、可靠性和用戶體驗。對于分布式事務功能上的主要包含如下三個方面:6(1)數(shù)據(jù)一致性:不同于單機數(shù)據(jù)庫的事務只在本機一個節(jié)點中完成,分布式數(shù)據(jù)庫的事務需要跨越多個數(shù)據(jù)節(jié)點。事務參與節(jié)點數(shù)量增加,發(fā)生故障的概率隨之增加。在故障發(fā)生時如何保證事務數(shù)據(jù)一致性、故障發(fā)生后失敗的事務如何高效回滾處理,通常需要根據(jù)具體的應用場景和業(yè)務需求來平衡。(2)分布式事務性能:由于分布式事務提與單機數(shù)據(jù)庫事務相比性能有所下降。優(yōu)化分布式事務性能,是分布式數(shù)據(jù)庫產(chǎn)品的重大挑戰(zhàn)。(3)事務隔離級別:目前大多數(shù)分布式數(shù)據(jù)庫產(chǎn)品可以實現(xiàn)的隔離級別為READCOMMIT,少部分產(chǎn)品可支持多種事務隔離級別。若實現(xiàn)單機數(shù)據(jù)庫如Oracle的隔離級別及MVCC多版本控制,在分布式架構(gòu)下具有較高難度。目前業(yè)界的產(chǎn)品均在此功能上不斷提升探索,并不斷探索在分布式場景中解決讀寫并發(fā)操作帶來的一致性問題。3.架構(gòu)。分布式數(shù)據(jù)庫技術(shù)架構(gòu)包括管理模塊、計算模塊、存儲模塊3部分組成,技術(shù)架構(gòu)如圖1所示。7分布式數(shù)據(jù)庫具有高擴展性、高可用性、分布式事務強一致性等特點,并且部分產(chǎn)品具備數(shù)據(jù)庫云化能力,可為客戶提供數(shù)據(jù)庫云服務的標準化交付和快速部署,支持多種部署模式等。經(jīng)過對主流分布式數(shù)據(jù)庫的架構(gòu)設(shè)計分析,總結(jié)出以下幾點共同特征:(1)線性擴展:分布式數(shù)據(jù)庫軟件架構(gòu)采用分層設(shè)計,一般基于Share-Nothing架構(gòu),采用集群方式部署,實現(xiàn)各組件的靈活擴展,從而提供高性能的數(shù)據(jù)庫服務。同時結(jié)合數(shù)據(jù)動態(tài)重分布和讀寫分離等技術(shù),實現(xiàn)性能的線性擴展。計算節(jié)點、數(shù)據(jù)節(jié)點均可橫向線性擴展,滿足性能及容量的無限擴展需求??梢灾С侄喾N組網(wǎng)架構(gòu),創(chuàng)新研發(fā)數(shù)據(jù)復制技術(shù),針對不同的業(yè)務場景靈活配置不同的策略來滿足不同的可用性和可靠性要求,8提高系統(tǒng)吞吐量的同時,實現(xiàn)同城RPO為0。滿足數(shù)據(jù)高可靠、服務高可用要求。支持機房級故障自動切換、支持異地帶載演練和異地帶壓演練。(3)分布式事務強一致性:具備分布式事務一致性,從數(shù)據(jù)庫層面實現(xiàn)了數(shù)據(jù)的強一致性,對應用透明,無需應用改造,提升應用遷移效率。云容器技術(shù)是一種將應用程序及其依賴項打包在輕量級、可移植的容器中的技術(shù),這些容器可以在任何支持容器運行的環(huán)境中快速部署和運行。容器技術(shù)通過隔離應用程序及其運行環(huán)境,提高了應用的可移植性和可擴展性。在云環(huán)境中,容器可以輕松地在不同的云服務和數(shù)據(jù)中心之間遷移,實現(xiàn)資源的最優(yōu)配置和成本效益。1.Pod。Pod是K8s的最小工作單元。每個Pod包含一個或多個容器。Pod中的容器會作為一個整體被Master調(diào)度到一個Node上運行。K8s引入Pod主要基于如下兩個目的:(1)可管理性。有些容器需要緊密聯(lián)系,Pod提供了比容器更高層次的抽象,將他們封裝到一個部署單元中。K8s以Pod為最小單位進行調(diào)度、擴展、共享資源、管理生命周期。(2)通信和資源共享。Pod中的所有容器使用同一個網(wǎng)絡namespace,即相同的IP地址和Port空間。他們可以直接用localhost通信,可以共享存儲。92.調(diào)度。K8s系統(tǒng)的核心任務是創(chuàng)建客戶端請求創(chuàng)建的Pod對象,并確保其以期望的狀態(tài)運行。創(chuàng)建Pod對象時,調(diào)度器為每一個Pod資源挑選合適的節(jié)點來運行,因此也被稱作Pod調(diào)度器。調(diào)度過程中,調(diào)度器不會修改Pod資源,而是從中讀取數(shù)據(jù),并根據(jù)配置的策略挑選出最適合的節(jié)點,而后通過API調(diào)用將Pod綁定至挑選出的節(jié)點之上以完成調(diào)度過程。k8s內(nèi)建了適合絕大多數(shù)場景Pod資源調(diào)度需求的默認調(diào)度器,支持同時使用算法基于原生及可定制的工具來選出集群中最適合運行當前Pod資源的一個節(jié)點,其核心目標是基于資源可用性將各Pod資源公平地分布于集群節(jié)點之上。目前,K8s平臺提供的默認調(diào)度器也稱為“通用調(diào)度器”,通過三個步驟完成調(diào)度操作:節(jié)點預選(Predicate)、節(jié)點優(yōu)先級排序及節(jié)點擇優(yōu)。節(jié)點預選是基于一系列預選規(guī)則對每個節(jié)點進行檢查,將那些不符合條件的節(jié)點過濾掉從而完成節(jié)點預選。節(jié)點優(yōu)選是對預選出的節(jié)點進行優(yōu)先級排序,以便選出最適合運行Pod對象的節(jié)點。最后,從優(yōu)先級排序結(jié)果中挑出優(yōu)先級最高的節(jié)點運行Pod象,當此類節(jié)點多于一個時,則從中隨機選擇一個。3.Service。k8s的Service是一個抽象層,定義了一種訪問Pod組的方法,通??缍鄠€容器和節(jié)點。Service為Pod組提供固定的IP地址和DNS名稱,以便其他組件可以通過該地址和名稱與Pod通信,即使背后的Pod實例發(fā)生變化也不受影響。k8s提供了幾種類型的Service:ClusterIP:這是默認的Service類型,為Service分配一個內(nèi)部的IP地址,使得Service只能在集群內(nèi)部訪問,適用于集群內(nèi)部通信。NodePort:這種類型的Service會在集群的所有節(jié)點上開放),<NodePort>訪問Service。LoadBalancer:這種Service在NodePort的基礎(chǔ)上,通過云提供商的負載均衡器向外部暴露一個Service。云提供商會在其負載均衡器上分配一個外部IP地址,流量會通過這個IP地址路由到集群中的Service。4.存儲。k8s提供了多種存儲卷(Volume)類型,用于管理和也支持多種backend類型,包括emptyDir、hostPath、GCEPersistentDisk、AWSElasticBlockStore、NFS、Ceph等。其中PersistentVolume是集群中的一個存儲資源,由管理員預先配置或由動態(tài)存儲供應系統(tǒng)自動供應。PersistentVolume通常關(guān)聯(lián)到底層的物理存儲系統(tǒng),如NAS、SAN,云盤,分布式存儲或者本地盤。PV是與Pod生命周期獨立的,當Pod不再存在時,PV中的數(shù)據(jù)仍然保持不變。三、運維需求分析運維服務能力和運維體系是分布式數(shù)據(jù)庫平穩(wěn)運行的重要備份恢復、安全防護等服務能力,并形成標準化的操作流程和規(guī)可以有效提升分布式數(shù)據(jù)庫的穩(wěn)定性、可用性和性能,降低故障風險,并快速響應和處置故障。在分布式數(shù)據(jù)庫管理平臺中,調(diào)度算法和策略直接影響到數(shù)據(jù)庫實例的資源利用效率、業(yè)務性能和運維成本。一個高效、智能、靈活的調(diào)度系統(tǒng)需要綜合考慮多方面的因素和需求,并支持多樣化的調(diào)度策略和優(yōu)化手段。應具備如下能力:1.多維度資源評估與約束控制。調(diào)度系統(tǒng)維護節(jié)點資源分配表,記錄每個節(jié)點上已分配的分布式數(shù)據(jù)庫實例及其資源需求(如CPU核數(shù)、內(nèi)存大小、存儲空間等),同時通過監(jiān)控組件實時采集節(jié)點的各項資源指標。通過比較節(jié)點的資源分配表和實時監(jiān)控數(shù)據(jù),控制計算節(jié)點的負載水平和剩余容量。2.基于分布式數(shù)據(jù)庫服務分級的調(diào)度。根據(jù)不同的維度,對分布式數(shù)據(jù)庫實例進行分級打標:(1)業(yè)務重要性:根據(jù)分布式數(shù)據(jù)庫實例所承載業(yè)務的重要程度,劃分為核心、重要、一般、長尾等級別。(2)服務等級協(xié)議(SLA):根據(jù)業(yè)務對分布式數(shù)據(jù)庫實例的可用性、性能、數(shù)據(jù)一致性等指標的要求,劃分為高保、低保等級別,或者定義更細粒度的SLA等級。(3)業(yè)務訪問模式:根據(jù)分布式數(shù)據(jù)庫實例的讀寫比例、并發(fā)用戶數(shù)、請求量波動等訪問特征,劃分為穩(wěn)態(tài)業(yè)務(訪問平穩(wěn))和敏態(tài)業(yè)務(訪問波動大)等。3.節(jié)點密度分級與超賣管理。通過對節(jié)點打標區(qū)分高密度和低密度節(jié)點,并設(shè)置不同的超賣比例。根據(jù)節(jié)點的密度等級和數(shù)據(jù)庫的業(yè)務級別,自動匹配最優(yōu)的部署方案,在資源利用率和業(yè)務隔離性之間取得平衡。4.基于分布式數(shù)據(jù)庫畫像的智能混部與負載錯峰,通過對分布式數(shù)據(jù)庫實例的資源使用情況進行持續(xù)監(jiān)控和分析,可以自動識別負載類型和高峰期特征,并據(jù)此進行智能混部和負載錯峰調(diào)度,優(yōu)化節(jié)點的資源利用效率。5.主機組隔離調(diào)度,不同的業(yè)務負載往往會運行在不同的Node分組中,如經(jīng)典的數(shù)據(jù)面和控制面的分離、不同數(shù)據(jù)庫引擎的部署隔離等。6.NumaNode調(diào)度能力,在多NumaNode架構(gòu)機器下跨Numa分配和管理能力。1.配置變更。分布式數(shù)據(jù)庫配置變更是指對參數(shù)、設(shè)置等進行調(diào)整和優(yōu)化。應符合如下流程:(1)變更的影響分析和風險評估:評估變更對分布式數(shù)據(jù)制定相應的應對措施和回滾方案。通過測試環(huán)境和模擬工具,對變更進行預演和驗證,確保變更的正確性和有效性,并優(yōu)化變更的執(zhí)行方案。(2)變更流程和審批機制:制定詳細的變更執(zhí)行計劃,明確變更的時間窗口、操作步驟、驗證標準等,確保變更過程的規(guī)范性和一致性。建立標準化的配置變更流程,明確變更的申請、審核、執(zhí)行、驗證等各個環(huán)節(jié)的職責和要求。對變更進行分級管理,根據(jù)變更的影響范圍、風險程度和緊急程度,設(shè)置不同的審批層級和權(quán)限控制。通過變更管理平臺和工單系統(tǒng),實現(xiàn)變更流程的自動化和可視化,確保變更過程的可追溯和可審計。(3)變更的配置管理和版本控制:建立分布式數(shù)據(jù)庫配置的基線管理和版本控制機制,通過配置管理數(shù)據(jù)庫(CMDB)等工具,實現(xiàn)配置的標準化和可追溯。對不同環(huán)境和實例,維護一致的配置模板和參數(shù)標準,確保配置的一致性和可重復性。定期對配置進行審計和合規(guī)性檢查,發(fā)現(xiàn)和糾正配置漂移和違規(guī)情況,保障分布式數(shù)據(jù)庫的長期穩(wěn)定運行。(4)變更的執(zhí)行和監(jiān)控:對于需要重啟分布式數(shù)據(jù)庫的配置變更,采用滾動升級策略,最小化變更對業(yè)務的影響。在變更過程中,對性能指標、資源利用、錯誤日志等進行實時監(jiān)控,及時發(fā)現(xiàn)和處理異常情況。(5)變更的驗證和回滾機制:根據(jù)預定的驗證標準(例如冒煙測試用例對變更后的分布式數(shù)據(jù)庫進行全面的功能、性能和安全驗證,確保變更的正確性和有效性。建立變更的回滾機制和應急預案,在變更出現(xiàn)問題或未達到預期效果時,能夠快速回滾到變更前的穩(wěn)定狀態(tài)。對變更過程和結(jié)果進行詳細的記錄和總結(jié),形成變更報告和知識庫,為后續(xù)的變更優(yōu)化和問題診斷提供參考。(6)變更的發(fā)布和通知:建立變更的發(fā)布流程和策略,根據(jù)變更的優(yōu)先級和影響范圍,合理安排變更的發(fā)布時間和方式。通過郵件、短信、即時通訊等多種渠道,及時向相關(guān)人員發(fā)送變更通知和進度更新,確保信息的透明和同步。2.資源變更。資源變更是對分布式數(shù)據(jù)庫所依賴的計算、存儲、網(wǎng)絡等資源進行調(diào)整、優(yōu)化和擴展,以滿足業(yè)務增長和性能要求的變化。資源變更應符合如下流程:(1)資源監(jiān)控和評估:持續(xù)監(jiān)控分布式數(shù)據(jù)庫的性能指標和資源利用情況,及時發(fā)現(xiàn)和預警資源瓶頸和容量不足。定期評估分布式數(shù)據(jù)庫的資源配置和業(yè)務需求匹配度,識別優(yōu)化和擴容的時機。(2)物理資源評估和決策:評估當前實例所在服務器的資源利用情況,包括CPU、內(nèi)存、磁盤、網(wǎng)絡等,判斷是否有足夠的可用資源來滿足變更需求。如果當前服務器資源不足,需要評估分布式數(shù)據(jù)庫集群中其他服務器的資源狀態(tài),尋找可用資源較數(shù)據(jù)的重要性和業(yè)務等級等因素,制定跨機遷移或集群調(diào)度的決策方案。(3)變更流程和審批機制:制定詳細的變更執(zhí)行計劃,明確變更的時間窗口、操作步驟、驗證標準等,確保變更過程的規(guī)范性和一致性。建立標準化的配置變更流程,明確變更的申請、審核、執(zhí)行、驗證等各個環(huán)節(jié)的職責和要求。對變更進行分級管理,根據(jù)變更的影響范圍、風險程度和緊急程度,設(shè)置不同的審批層級和權(quán)限控制。通過變更管理平臺和工單系統(tǒng),實現(xiàn)變更流程的自動化和可視化,確保變更過程的可追溯和可審計。(4)跨機遷移和集群調(diào)度(可能):如果需要進行跨機遷移,需要通過集群調(diào)度算法,選擇集群中資源利用率較低、可用資源較多的服務器作為遷移目標。在遷移過程中,需要確保數(shù)據(jù)的一致性和完整性,可以采用數(shù)據(jù)同步、快照、日志傳輸?shù)燃夹g(shù)手段,最小化遷移對業(yè)務的影響。(5)重啟帶來的副本輪轉(zhuǎn)(可能):在進行資源變更時,如果需要調(diào)整內(nèi)存等資源限制,可能需要重啟數(shù)據(jù)庫進程才能生效。為了最小化重啟對業(yè)務的影響,可以采用逐個副本輪轉(zhuǎn)的方式,依次對分布式數(shù)據(jù)庫的各個副本進行資源調(diào)整和重啟。(6)變更驗證和優(yōu)化機制:監(jiān)測各項性能指標是否符合預期?;谛阅茉u估的結(jié)果,運維人員可以進一步優(yōu)化資源配置,或者調(diào)整變更方案,以實現(xiàn)性能和資源利用率的最佳平衡。如果將分布式數(shù)據(jù)庫恢復到變更前的狀態(tài)。3.版本變更(升級)。版本升級的目的是定期更新分布式數(shù)據(jù)庫軟件,以支持新功能、提升性能或修復已知漏洞。不同升級場景下的技術(shù)方案和實施流程:(1)升級策略和風險評估:根據(jù)分布式數(shù)據(jù)庫軟件的版本發(fā)布計劃和生命周期,制定長期的升級策略和路線圖,平衡新特性引入和穩(wěn)定性保障的需求。評估不同版本之間的兼容性和差異性,重點關(guān)注數(shù)據(jù)格式、SQL語法、性能特征、配置參數(shù)等方面評估其必要性、可行性和風險性,權(quán)衡升級的收益、成本和潛在風險,選擇最佳的升級時機和方案。在執(zhí)行升級之前,需要進行一次數(shù)據(jù)備份,以降低數(shù)據(jù)損壞的風險,減小發(fā)生數(shù)據(jù)損壞情況下恢復服務的時間窗口。(2)小版本升級與滾動升級:對于小版本升級(如補丁版本或者次要版本),通常采用滾動升級的方式,逐個升級分布式數(shù)據(jù)庫實例,以最小化對業(yè)務的影響。滾動升級通??梢栽诜植际綌?shù)據(jù)庫正常運行的情況下進行,通過控制升級窗口期和切換時間,最小化業(yè)務中斷時間。(3)大版本升級與藍綠部署:對于大版本升級(如主要版本或者架構(gòu)變更),由于涉及重大變化和風險,通常采用藍綠部署的方式,通過業(yè)務切換實現(xiàn)平滑升級。藍綠部署可以最大限度地降低升級風險,提供回滾保障,但需要額外的硬件資源和較復雜的流量切換機制,需要修改業(yè)務連接數(shù)據(jù)庫的DNS配置/負載均衡/應用程序配置。(4)升級驗證與回滾機制:無論采用何種升級方式,都需要在升級前后進行嚴格的驗證和測試,確保業(yè)務邏輯、數(shù)據(jù)一致性、性能表現(xiàn)等符合預期。升級驗證的主要包括:數(shù)據(jù)完整性驗證、查詢結(jié)果驗證、性能基準測試、業(yè)務場景回歸測試等,必要時需要進行數(shù)據(jù)訂正或者補償。建立完善的回滾機制和應急預案,對于升級過程中發(fā)現(xiàn)的嚴重問題或者異常情況,能夠及時回退到升級前的穩(wěn)定狀態(tài),保證業(yè)務連續(xù)性。切換分為故障自動切換和計劃內(nèi)切換。1.故障自動切換(Failover)。故障自動切換的目標是在leader(leader也稱主副本)發(fā)生故障時,快速、自動地將服務切換到預先準備好的follower(follower也稱備副本以最大限度地減少業(yè)務中斷時間,確保業(yè)務連續(xù)性。故障自動切換應符合如下流程:的可用性。當leader無法訪問或響應超時時,觸發(fā)故障切換流程。通過follower或者其他組件二次確認leader是否故障,防止誤判。中選擇一個作為新的leader。選舉過程考慮follower的復制狀態(tài)、硬件配置、網(wǎng)絡延遲、綜合負載等因素。確保新leader具有最新的數(shù)據(jù)和最佳的性能。更新數(shù)據(jù)庫連接配置,使應用程序連接到新leader。確保切換過程快速、平穩(wěn),最小化對業(yè)務的影響。的follower。建立新的復制關(guān)系,同步新leader的數(shù)據(jù)更新。監(jiān)控復制狀態(tài),確保數(shù)據(jù)的一致性和完整性。(5)故障恢復:對舊leader進行故障診斷和修復。根據(jù)實際情況,決定是否將其重新加入集群作為follower。記錄故障原因和處理過程,分析原因,優(yōu)化故障自動切換流程。有時需要將服務從一個分布式數(shù)據(jù)庫實例切換到另一個實例,以(1)準備階段:確保備用實例與主實例的數(shù)據(jù)完全同步。驗證備用實例的配置和性能是否滿足要求。提交切換計劃進行審批(可選)。通知相關(guān)人員和系統(tǒng)關(guān)于即將進行的切換操作(可(2)切換階段:停止向主實例寫入新的數(shù)據(jù)。等待主實例和備用實例之間的數(shù)據(jù)完全同步。將讀取操作切換到備用實例。將備用實例提升為新的主實例。更新相關(guān)系統(tǒng)和客戶端的配置,以連接新的主實例。(3)驗證階段:檢查新的主實例是否正常工作。驗證數(shù)據(jù)的完整性和一致性。監(jiān)控系統(tǒng)性能、查詢響應時間、慢查詢等指標,確保切換后的穩(wěn)定性。(4)回退預案(可選):如果切換后出現(xiàn)問題,可以將服務切換回原來的主實例。確?;赝诉^程中數(shù)據(jù)的一致性和完整性。1.故障副本重搭。分布式數(shù)據(jù)庫副本的健康狀態(tài)對于整個系統(tǒng)的穩(wěn)定運行至關(guān)重要。由于各種原因,導致復制中斷或數(shù)據(jù)不一致時,需要進行副本重搭操作,以修復受影響的副本。重搭操作應符合如下流程:(1)問題識別:通過監(jiān)控系統(tǒng)或人工檢查,發(fā)現(xiàn)副本出現(xiàn)問題。確定問題的原因和影響范圍。(2)隔離受影響的副本:將出現(xiàn)問題的副本從復制拓撲中移除,避免影響其他節(jié)點。停止對該副本的讀寫操作,防止數(shù)據(jù)進一步損壞。(3)重建新副本:創(chuàng)建一個新的副本實例,或清空受影響副本的數(shù)據(jù)。從leader或其他健康的副本進行數(shù)據(jù)同步,重建副本數(shù)據(jù)。同步過程中,確保數(shù)據(jù)的一致性和完整性。重建完成后,將副本加入集群拓撲。(4)數(shù)據(jù)同步驗證:監(jiān)控新副本的復制狀態(tài)和延遲,確保與leader庫保持一致。對新副本進行數(shù)據(jù)一致性校驗,如比對表結(jié)構(gòu)、數(shù)據(jù)行數(shù)等。進行必要的性能測試,評估新副本的處理能力。(5)舊副本下線(可選):進行必要的數(shù)據(jù)備份或歸檔。下線舊副本,回收資源或進行后續(xù)處理。2.計劃內(nèi)副本重搭。計劃內(nèi)的副本重搭操作,常見于節(jié)點下線、版本升級、硬件更換等場景。與故障引發(fā)的非計劃性重搭不同,計劃內(nèi)重搭有充分的準備時間,可以更好地控制操作過程和影響范圍。計劃內(nèi)副本重搭操作通常包括以下流程:(1)重搭計劃制定:明確重搭的原因、目標和時間安排。評估重搭對業(yè)務的影響,制定降低影響的策略。評估是否需要額外的硬件資源。(2)重建新副本:創(chuàng)建一個新的副本實例,或清空受影響副本的數(shù)據(jù)。從leader庫或其他健康的副本進行數(shù)據(jù)同步,重建副本數(shù)據(jù)。同步過程中,確保數(shù)據(jù)的一致性和完整性。重建完成后,將副本加入集群拓撲。(3)數(shù)據(jù)同步驗證:監(jiān)控新副本的復制狀態(tài)和延遲,確保與leader保持一致。對新副本進行數(shù)據(jù)一致性校驗,如比對表結(jié)構(gòu)、數(shù)據(jù)行數(shù)等。進行必要的性能測試,評估新副本的處理能(4)服務切換(可選):選擇合適的時間窗口,盡量減少對業(yè)務的影響。將讀寫請求從舊副本切換到新副本。監(jiān)控切換過程,確保服務的平穩(wěn)過渡。(5)舊副本下線(可選):停止舊副本的復制進程,斷開與leader的連接。進行必要的數(shù)據(jù)備份或歸檔。下線舊副本,回收資源或進行后續(xù)處理。備份可以在分布式數(shù)據(jù)庫故障、人為錯誤或災難情況下提供數(shù)據(jù)恢復的手段。為了確保備份的有效性和可靠性,需要制定完善的備份策略和規(guī)范的運維操作流程。1.數(shù)據(jù)備份。數(shù)據(jù)備份主要有自動和手動兩種主要方式:(1)自動備份:制定備份策略,包括備份類型(存儲快照/利用分布式數(shù)據(jù)庫廠商提供的備份工具和執(zhí)行。制定備份數(shù)據(jù)的管理和歸檔策略,根據(jù)數(shù)據(jù)的生命周期和法規(guī)要求,確定備份數(shù)據(jù)的保留期限和歸檔方式。(2)手動備份:在特定情況下,如重大變更前、升級遷移前等,需要進行手動備份以確保數(shù)據(jù)安全。2.數(shù)據(jù)庫恢復。數(shù)據(jù)庫備份進行恢復的流程:(1)確定恢復目標:確定需要恢復的目標時間點。確定需要恢復的分布式數(shù)據(jù)庫對象(庫、表)和數(shù)據(jù)范圍(行、列)。(2)選擇合適的備份:根據(jù)恢復目標時間點,選擇最接近且時間點之前的可用備份。考慮備份的類型和完整性,優(yōu)先選擇全量備份,必要時輔以增量備份或日志備份。驗證所選備份的完整性和有效性,例如MD5、CRC校驗碼等。(3)執(zhí)行恢復操作:創(chuàng)建恢復操作的審計和追蹤記錄,記權(quán)限配置等。利用分布式數(shù)據(jù)庫廠商提供的備份恢復工具和執(zhí)行步驟,有序執(zhí)行恢復操作。監(jiān)控恢復進度和狀態(tài),記錄恢復過程中的關(guān)鍵事件和異常情況。(4)驗證恢復結(jié)果:執(zhí)行必要的數(shù)據(jù)校驗和業(yè)務驗證,確?;謴秃蟮臄?shù)據(jù)庫能夠正常支持業(yè)務運行。生成恢復報告,記錄恢復過程、恢復結(jié)果和驗證情況。分布式數(shù)據(jù)庫遷移包括停機遷移和在線遷移。停機遷移適合業(yè)務可以接受一定的停機時間、對數(shù)據(jù)一致性要求較高的場景。在線遷移適合業(yè)務連續(xù)性要求極高、可以容忍一定的性能影響的場景。分布式數(shù)據(jù)庫遷移應符合如下流程:1.遷移準備。確定遷移的源端和目標端分布式數(shù)據(jù)庫,評估數(shù)據(jù)量、業(yè)務特點、網(wǎng)絡條件等因素。檢查源端和目標端分布式數(shù)據(jù)庫的配置一致性,包括版本、字符集、網(wǎng)絡配置等,避免兼容性問題。選擇合適的遷移時間窗口,通常在業(yè)務低峰期或維護窗口進行。制定詳細的遷移計劃,包括遷移步驟、時間估計、風險評估、回退預案等。2.數(shù)據(jù)導出。使用分布式數(shù)據(jù)庫廠商提供的備份工具,導出源端的全量數(shù)據(jù)。對導出的數(shù)據(jù)文件進行壓縮和加密,減少數(shù)據(jù)傳輸量和保護數(shù)據(jù)安全。3.數(shù)據(jù)傳輸。根據(jù)網(wǎng)絡條件和數(shù)據(jù)量,選擇合適的數(shù)據(jù)傳輸方式,如網(wǎng)絡流式傳輸、NAS、對象存儲等。使用數(shù)據(jù)傳輸工具,將導出的數(shù)據(jù)文件從源端傳輸?shù)侥繕硕?。監(jiān)控數(shù)據(jù)傳輸進度和網(wǎng)絡性能,確保傳輸?shù)男屎头€(wěn)定性。4.數(shù)據(jù)導入。在目標端分布式數(shù)據(jù)庫上創(chuàng)建與源端相同的將傳輸?shù)臄?shù)據(jù)文件導入到目標端分布式數(shù)據(jù)庫。監(jiān)控數(shù)據(jù)導入進度和資源消耗,確保導入的效率和可靠性。5.增量同步。在全量數(shù)據(jù)導入完成后,啟動增量同步進程,實時同步源端分布式數(shù)據(jù)庫的變更到目標端。使用分布式數(shù)據(jù)庫變更捕捉工具,捕獲源端增量變更。將捕獲的增量變更應用到目標端,保持兩端數(shù)據(jù)的最終一致性。6.數(shù)據(jù)校驗。在數(shù)據(jù)導入和增量同步完成后,對目標端分布式數(shù)據(jù)庫進行全面的數(shù)據(jù)校驗。使用數(shù)據(jù)比對工具,逐表比對源及時進行人工核查和補償,確保數(shù)據(jù)的完整性和準確性。7.應用切換。在數(shù)據(jù)校驗通過后,準備將業(yè)務應用從源端分布式數(shù)據(jù)庫切換到目標端分布式數(shù)據(jù)庫。對源端分布式數(shù)據(jù)庫停寫,等待目標端分布式數(shù)據(jù)庫與源端完全一致。修改DNS/負載均衡/應用的分布式數(shù)據(jù)庫連接配置,將流量切到目標端分布式數(shù)據(jù)庫地址。對業(yè)務功能和性能進行監(jiān)控和驗證。如果切換過程中出現(xiàn)問題,及時按照回退預案進行回退操作,保證業(yè)務的連續(xù)性。8.遷移完成(可選)。對源端分布式數(shù)據(jù)庫進行一次全量備份下線源端分布式數(shù)據(jù)庫,釋放相關(guān)的資源。實時收集和分析數(shù)據(jù)庫的各項性能指標、資源使用情況、SQL語句執(zhí)行情況等,可以幫助數(shù)據(jù)庫管理人員全面掌握分布式數(shù)據(jù)庫的運行狀態(tài)和性能表現(xiàn)。應具備如下能力:(1)性能指標監(jiān)控:監(jiān)控分布式數(shù)據(jù)庫的關(guān)鍵性能指標,如CPU使用率、內(nèi)存占用、I/O性能、網(wǎng)絡帶寬等。跟蹤并發(fā)連接數(shù)、活動會話數(shù)、鎖等待情況等,評估分布式數(shù)據(jù)庫的并發(fā)處理能力和資源利用效率。監(jiān)測緩存命中率、日志寫入速度、checkpoint頻率等,優(yōu)化內(nèi)存和持久化性能。(2)資源使用情況監(jiān)控:監(jiān)控磁盤空間使用情況,包括數(shù)跟蹤數(shù)據(jù)庫的CPU、內(nèi)存、I/O等資源的使用情況,發(fā)現(xiàn)資源瓶頸和異常使用模式。監(jiān)測分布式數(shù)據(jù)庫的網(wǎng)絡連接和帶寬使用情況,優(yōu)化網(wǎng)絡配置和減少網(wǎng)絡延遲。(3)SQL語句執(zhí)行情況監(jiān)控:捕獲和分析分布式數(shù)據(jù)庫執(zhí)行的SQL語句,了解應用程序的數(shù)據(jù)訪問模式。監(jiān)控SQL語句的執(zhí)行時間、執(zhí)行頻率、返回結(jié)果集大小等,發(fā)現(xiàn)性能較差的SQL語句和潛在的優(yōu)化機會。跟蹤SQL語句的執(zhí)行計劃和資源消耗,如CPU時間、邏輯讀寫、物理讀寫等,優(yōu)化SQL語句的性能。(4)異常情況和錯誤監(jiān)控:監(jiān)控分布式數(shù)據(jù)庫的錯誤日志和告警信息,及時發(fā)現(xiàn)和處理異常情況,如死鎖、表空間不足、并制定優(yōu)化方案。監(jiān)測分布式數(shù)據(jù)庫的安全事件和審計日志,發(fā)現(xiàn)和防范潛在的安全威脅和違規(guī)操作。(5)業(yè)務監(jiān)控和關(guān)聯(lián)分析:結(jié)合業(yè)務系統(tǒng)的關(guān)鍵指標,如響應時間、吞吐量、并發(fā)用戶數(shù)等,分析分布式數(shù)據(jù)庫性能對業(yè)務的影響。將分布式數(shù)據(jù)庫監(jiān)控數(shù)據(jù)與應用程序監(jiān)控數(shù)據(jù)進行關(guān)聯(lián)分析,全面診斷性能問題的根本原因?;跇I(yè)務的優(yōu)先級和SLA要求,制定監(jiān)控的策略和告警規(guī)則,確保業(yè)務的連續(xù)性和穩(wěn)定性。(6)監(jiān)控數(shù)據(jù)的應用和優(yōu)化:定期分析和挖掘監(jiān)控數(shù)據(jù),利用監(jiān)控數(shù)據(jù)建立性能基線,量化評估分布式數(shù)據(jù)庫的性能表現(xiàn),發(fā)現(xiàn)性能的趨勢和規(guī)律,為容量規(guī)劃和資源調(diào)配提供依據(jù)。將監(jiān)控數(shù)據(jù)與機器學習算法相結(jié)合,實現(xiàn)智能化的異常檢測和性能預發(fā)現(xiàn)分布式數(shù)據(jù)庫的性能瓶頸和資源利用不平衡,制定針對性的優(yōu)化方案,如SQL調(diào)優(yōu)、索引優(yōu)化、參數(shù)調(diào)整等。將分布式數(shù)據(jù)庫監(jiān)控數(shù)據(jù)與業(yè)務指標相關(guān)聯(lián),分析業(yè)務峰值和增長趨勢對數(shù)據(jù)庫性能的影響,提前進行容量評估和資源擴容,確保業(yè)務的平穩(wěn)增長。將監(jiān)控數(shù)據(jù)與其他IT系統(tǒng)的數(shù)據(jù)進行整合和關(guān)聯(lián)分析,實現(xiàn)端到端的性能問題診斷和優(yōu)化。2.報警。報警是分布式數(shù)據(jù)庫監(jiān)控的重要延伸和補充,可以幫助運維人員及時發(fā)現(xiàn)和處理分布式數(shù)據(jù)庫的各種問題,保障分布式數(shù)據(jù)庫的穩(wěn)定運行和數(shù)據(jù)的安全。報警應符合如下功能:(1)報警規(guī)則的設(shè)置:根據(jù)分布式數(shù)據(jù)庫的類型、業(yè)務需求和SLA要求,確定需要設(shè)置報警的關(guān)鍵指標和閾值,如CPU使用率、內(nèi)存占用、連接數(shù)、響應時間等。針對不同的指標和場景,設(shè)置不同級別的報警規(guī)則,以便區(qū)分問題的緊急程度和影響范圍。(2)報警的觸發(fā)和通知:當分布式數(shù)據(jù)庫的監(jiān)控指標達到或超過預設(shè)的閾值時,自動觸發(fā)相應級別的報警,并生成詳細的報警信息,包括時間、指標、閾值、當前值等。根據(jù)報警的級別和影響范圍,選擇合適的通知方式,確保報警信息能夠及時、準確地發(fā)送給相關(guān)人員。對于嚴重或緊急的報警,設(shè)置多種通知渠對于頻繁發(fā)生的同類報警,可以進行聚合和壓縮,在一定時間內(nèi)只發(fā)送一次匯總報警,減少報警噪音。對于持續(xù)時間較長的報警,可以設(shè)置遞增的報警間隔,避免重復發(fā)送對問題處理無益的報警。(3)報警的關(guān)聯(lián)分析和趨勢預測:結(jié)合專家知識和機器學習,構(gòu)建報警事件的決策樹和規(guī)則引擎,實現(xiàn)報警的自動分類和風險評估,輔助運維人員的判斷和決策。對報警事件進行關(guān)聯(lián)分全面診斷問題的根本原因。利用機器學習算法和大數(shù)據(jù)分析技術(shù),對報警數(shù)據(jù)進行挖掘和建模,預測潛在的問題和風險,提前采取預防措施。結(jié)合業(yè)務數(shù)據(jù)和其他監(jiān)控數(shù)據(jù),實現(xiàn)跨層面、跨系統(tǒng)的報警關(guān)聯(lián)分析,提供全局視角下的問題診斷和優(yōu)化建議。(4)報警信息的處理和跟蹤:建立標準化的報警處理流程,明確不同級別報警的響應時間,確保問題能夠得到及時的處理。跟蹤和記錄報警事件的處理過程和結(jié)果,包括原因分析、解決方案、處理時間等,并進行總結(jié)和復盤,持續(xù)優(yōu)化報警處理的效率用于評估和優(yōu)化報警規(guī)則的質(zhì)量。定期審核和優(yōu)化報警規(guī)則和閾值,根據(jù)數(shù)據(jù)庫的運行狀況、業(yè)務變化和問題反饋,不斷完善報警策略,提高報警的準確性和時效性。(八)數(shù)據(jù)庫訪問控制分布式數(shù)據(jù)庫訪問控制通過對數(shù)據(jù)庫的用戶、權(quán)限、角色等進行精細化管理,確保只有授權(quán)的用戶才能訪問數(shù)據(jù)庫,且只能在其權(quán)限范圍內(nèi)進行操作。有效的訪問控制可以防止非法用戶的入侵,防止合法用戶的越權(quán)操作,從而保障數(shù)據(jù)庫的機密性、完整性和可用性。數(shù)據(jù)庫訪問控制應遵循如下原則:1.用戶賬號管理。根據(jù)最小權(quán)限原則,為不同的應用系統(tǒng)和運維人員創(chuàng)建獨立的分布式數(shù)據(jù)庫用戶賬號。定期審核和清理過期、廢棄、冗余的用戶賬號,保持賬號的精簡性和有效性。2.密碼策略管理。制定并執(zhí)行強密碼策略,要求密碼符合一定的復雜度要求,如長度、字符類型等。支持定期更換分布式數(shù)據(jù)庫用戶密碼,防止密碼泄露或被暴力破解。保護密碼傳輸和存儲的安全,避免明文存儲密碼。3.權(quán)限與角色管理。基于業(yè)務需求和安全要求,設(shè)計合理的數(shù)據(jù)庫權(quán)限模型和角色層次。遵循權(quán)限最小化和職責分離原則,只授予用戶必需的操作權(quán)限,避免過度授權(quán)。通過分布式數(shù)據(jù)庫角色將權(quán)限模板化,簡化權(quán)限管理和分配。定期審核和調(diào)整用戶權(quán)限和角色分配,確保權(quán)限配置的準確性和合理性。4.敏感數(shù)據(jù)管控。識別和分類分布式數(shù)據(jù)庫中的敏感數(shù)據(jù),如個人隱私數(shù)據(jù)、財務數(shù)據(jù)等。對敏感數(shù)據(jù)實施更嚴格的訪問控制,如列級別權(quán)限控制、數(shù)據(jù)脫敏等。啟用分布式數(shù)據(jù)庫審計功能,對敏感數(shù)據(jù)的訪問和操作進行記錄和監(jiān)控。5.訪問行為審計。對分布式數(shù)據(jù)庫的訪問行為進行全面的審計和記錄,包括登錄/注銷、權(quán)限變更、數(shù)據(jù)操作等。重點關(guān)注高危操作和敏感數(shù)據(jù)的訪問,設(shè)置實時告警和定期報表。6.異常訪問檢測。建立數(shù)據(jù)庫訪問行為基線,了解正常的用戶訪問模式和流量特征。實時監(jiān)控數(shù)據(jù)庫訪問流量,利用機器學與安全信息和事件管理(SIEM)系統(tǒng)集成,關(guān)聯(lián)分析跨系統(tǒng)的威脅7.通過白名單限制非法訪問。制定明確的分布式數(shù)據(jù)庫白名單策略。在分布式數(shù)據(jù)庫或相關(guān)的安全設(shè)備(如防火墻、訪問控制系統(tǒng)等)中配置白名單規(guī)則。定期審核分布式數(shù)據(jù)庫白名單,識別和去除不再需要的白名單項。對數(shù)據(jù)庫白名單的訪問進行實時監(jiān)控,記錄訪問日志,并設(shè)置異常訪問的報警規(guī)則。(九)混沌工程利用混沌工程對分布式數(shù)據(jù)庫缺陷的探索來彌補系統(tǒng)穩(wěn)定性保障的短板,有助于提前發(fā)現(xiàn)和解決分布式數(shù)據(jù)庫系統(tǒng)中的潛在問題,提高系統(tǒng)的可靠性和用戶的信任度。分布式數(shù)據(jù)庫混沌工程應具備如下能力:1.故障場景。支持各種常見類型故障的發(fā)起與恢復,覆蓋物理機/虛擬機、容器不同底層基礎(chǔ)設(shè)施。具備如下功能:(1)支持存儲資源故障注入,如:磁盤填充、磁盤損壞、磁盤速度慢、磁盤不可讀、磁盤不可寫、文件故障、文件句柄耗盡等;(2)支持網(wǎng)絡資源故障注入,如:網(wǎng)絡抖動、網(wǎng)絡丟包、(3)支持容器資源故障注入,如:pod、node等;(4)支持計算資源故障注入,如:CPU滿載、內(nèi)存負載故(5)支持服務、進程資源故障注入,如:進程掛起、進程殺死、服務停止故障、服務器關(guān)機、服務器重啟等;(6)支持自定義故障注入,如:Shell故障注入;(7)支持典型故障類型注入,如:數(shù)據(jù)庫宕機、數(shù)據(jù)同步延時、節(jié)點故障、突發(fā)流量等。2.實驗場景管理。作為分布式數(shù)據(jù)庫混沌平臺的核心功能,可對實驗進行執(zhí)行、停止、并行執(zhí)行、根據(jù)業(yè)務指標動態(tài)控制、超時停止等操作??衫脤嶒灳幣趴梢宰詣佣〞r實現(xiàn)故障的并行/串行/掛起模擬注入以及故障的自我恢復。通過編排的能力可以構(gòu)造復雜的故障場景而非只能完成單一故障任務的模擬。支持對實驗場景和場景模板的創(chuàng)建、編輯和刪除,支持場景庫管理、熱點場景定義、場景分類、多故障并行組合實驗場景、實驗爆炸半徑定義,及實驗環(huán)境的創(chuàng)建、恢復等。3.數(shù)據(jù)庫資源管理。為實驗人員提供納管目標分布式數(shù)據(jù)庫所有環(huán)境功能,能夠?qū)崟r獲取納管環(huán)境的狀態(tài)與信息,可對目標數(shù)據(jù)庫資源環(huán)境申請、審批;實時展示目標分布式數(shù)據(jù)庫狀態(tài)、狀態(tài)查看功能。適配多種架構(gòu)與類型分布式數(shù)據(jù)庫,支持X86、C86、ARM硬件平臺,支持Windows、統(tǒng)信、麒麟等軟件平臺。故障場景使用與可視化展示,具備如下功能:支持實驗計劃生命周期管理,如實驗計劃的創(chuàng)建、編輯、廢止等,實驗計劃的執(zhí)行時間定義,如立即執(zhí)行,指定時間執(zhí)行、周期執(zhí)行,實驗計劃優(yōu)先級設(shè)置,手動終止混沌實驗,根據(jù)基礎(chǔ)監(jiān)控設(shè)置防護策略并終止實驗,根據(jù)系統(tǒng)事件終止實驗,歷史實驗展示可展示全部實驗列表、詳細信息,復制歷史實驗直接發(fā)起實驗。5.混沌實驗監(jiān)控。實時獲取目標分布式數(shù)據(jù)庫監(jiān)控信息,通過監(jiān)控界面展示數(shù)據(jù)庫集群主機、數(shù)據(jù)節(jié)點、網(wǎng)關(guān)節(jié)點、實例四個維度的監(jiān)控信息。如存活狀態(tài)、延遲情況、資源利用率等。網(wǎng)絡等系統(tǒng)指標監(jiān)控功能。(2)支持數(shù)據(jù)庫集群狀態(tài)監(jiān)控指標采集,如:數(shù)據(jù)庫集群狀態(tài)、TPS和QPS監(jiān)控、SOL平均響應時間統(tǒng)計、鎖/等待事件監(jiān)控、數(shù)據(jù)庫會話連接監(jiān)控等。支持自定義監(jiān)控指標設(shè)置、故障注入生效驗證、故障恢復成功驗證、業(yè)務穩(wěn)態(tài)數(shù)據(jù)設(shè)置、實施過程中爆炸半徑檢查。6.混沌實驗結(jié)果復盤。實驗結(jié)束后,可自動生成實驗報告,記錄整個混沌實驗的執(zhí)行情況,為后續(xù)系統(tǒng)優(yōu)化和改進提供依據(jù)。具有實驗基礎(chǔ)信息、監(jiān)控指標截圖、故障可能原因、解決辦法、應急預案、總結(jié)建議等。具備實驗流程可視化、實驗數(shù)據(jù)圖形化,支持實驗數(shù)據(jù)統(tǒng)計分析、報告自動生成等。(十)智能運維數(shù)據(jù)庫智能運維利用大數(shù)據(jù)手段、專家經(jīng)驗引擎快速復制資深數(shù)據(jù)庫管理員的成熟經(jīng)驗,將大量傳統(tǒng)手動的分布式數(shù)據(jù)庫運維工作自運維,有效保障數(shù)據(jù)庫服務的安全、穩(wěn)定及高效運行。1.實時診斷。實時診斷提供7*24小時實時異常診斷與優(yōu)化服務,利用實時信息進行分析處理,以提高異常發(fā)現(xiàn)及處理的效率,可實現(xiàn)定期巡檢、主動異常發(fā)現(xiàn)和秒級分析優(yōu)化相結(jié)合的分布式數(shù)據(jù)庫健康守護新模式。系統(tǒng)不間斷地進行實時診斷,解析分布式數(shù)據(jù)庫問題的根源,并提出優(yōu)化建議,以便迅速發(fā)出告警通知??芍С值脑\斷能力:鎖問題、慢查詢、事務問題、性能問提供建議、高度定制化的能力。2.SQL優(yōu)化。SQL優(yōu)化為用戶提供一鍵優(yōu)化SQL語句功能,并給出對應執(zhí)行計劃解析和優(yōu)化建議。適用于業(yè)務優(yōu)化慢SQL、代碼上線前審查、自檢等場景。SQL優(yōu)化應具備查詢解析和語義實時監(jiān)控和反饋功能。3.全鏈路分析。全鏈路分析收集分布式數(shù)據(jù)庫實例各節(jié)點產(chǎn)生的審計日志,通過數(shù)據(jù)匯集、實時預處理計算,統(tǒng)計/智能分析,給到分析視圖與結(jié)果建議,并提供了完整剖析鏈路執(zhí)行與性能情況的能力,能夠協(xié)助客戶全方位、多維度高效定位問題。(1)SQL透視追蹤。正向解析:從業(yè)務SQL到各數(shù)據(jù)節(jié)點,可根據(jù)不同條件查找業(yè)務SQL,并查看SQL在數(shù)據(jù)庫及集群中的解析過程,以及每一步的性能損耗情況。反向解析:從各數(shù)據(jù)節(jié)點到業(yè)務SQL的執(zhí)行過程透視,通過分布式數(shù)據(jù)庫當前SQL執(zhí)行情況,找到性能有損SQL,并可反向定位業(yè)務實際來源。(2)SQL聚合分析。業(yè)務聚合分析:提取業(yè)務SQL前綴進行解析,分別送入不同的區(qū)域,實現(xiàn)業(yè)務編碼的快速聚合分析,以及大體量下,業(yè)務SQL的快速查找。性能統(tǒng)計分析:聚合SQL模板分析,業(yè)務時段內(nèi)集群中各項性能指標影響的SQL全局排序,并能實時獲取模板內(nèi)SQL明細、鏈路視圖、SQL鏈路執(zhí)行過程。(3)事務聚合分析。業(yè)務事務分析:提取第一條事務前綴送入分析,將被拆解后的業(yè)務原事務還原,根據(jù)業(yè)務前綴進行分析與查找。性能統(tǒng)計分析:事務模板化處理,實現(xiàn)時段內(nèi)集群事務全局性能排序,并能實時獲取事務模板內(nèi)事務的明細,可查看事務內(nèi)容,也可關(guān)聯(lián)找到分片中被拆解的各個事務。異常事務分析:分辨整個集群中異常的事務,智能分析具體的異常原因以及解決方案。(4)降本增效助力金融。業(yè)務標簽管理:當集群數(shù)據(jù)量體巨大的時候,可以自定義開啟部分業(yè)務標簽名,即可降低集群業(yè)務維度數(shù)據(jù)的聚合量,快速出具結(jié)果。圖形化及可視化:實時獲取鏈路耗時圖、SQL轉(zhuǎn)義過程及內(nèi)容。查找及鉆?。褐С秩罩救孔侄尾檎壹皹I(yè)務查找、支持業(yè)務標簽模式及性能模式的數(shù)據(jù)下鉆。(十一)其他1.審計日志。分布式數(shù)據(jù)庫通過訪問控制可大幅度降低安全風險,但對于具備權(quán)限的用戶,仍需要審計其操作,防止用戶登錄信息泄露或訪問權(quán)限被濫用,審計功能可加強對數(shù)據(jù)安全、合規(guī)的要求。審計日志功能應支持審計日志功能的開啟和關(guān)閉;審計日志內(nèi)容包括用戶登錄、查詢、修改、刪除等操作類型,及操2.性能容量管理。分布式數(shù)據(jù)庫容器化部署是依托云原生服務模型及管理模式進行管理,為確保數(shù)據(jù)庫系統(tǒng)的服務能力和性能,且兼顧數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性和業(yè)務連續(xù)性,需要設(shè)計一套技術(shù)上可實現(xiàn)的性能容量管理規(guī)范。包括性能要求與容量要求等。(1)性能要求。禁止出現(xiàn)大事務或者長時間不提交、回滾的長事務。禁止聯(lián)機交易大表出現(xiàn)全表掃描。聯(lián)機程序謹慎使用JOIN,批處理禁止復雜JOIN(超過3張表)。JOIN操作必須有關(guān)聯(lián)條件,避免笛卡爾積,影響SQL執(zhí)行效率。禁止使用外鍵與級聯(lián)。禁止使用存儲過程、自定義函數(shù)、觸發(fā)器、定時作業(yè)、視圖。系統(tǒng)正式投產(chǎn)前必須評估系統(tǒng)是否需要進行性能壓測。盡量用標準SQL語法。表清空建議采用truncate方式。只讀應用建議從follower訪問。應用分表或采用分區(qū)表、多表間并發(fā),避免同一個索引掃描時交叉互鎖。避免使用子查詢,盡可能改用JOIN操作。將復雜SQL拆分為多條簡單SQL。表數(shù)據(jù)量發(fā)生較大變化時建議進行統(tǒng)計信息顯式收集。(2)容量要求。合理控制數(shù)據(jù)庫容量,數(shù)據(jù)庫單庫、單表容量。單庫最大容量建議不超過500GB,非分區(qū)表的單表存儲容量(OLTP)建議不超過20GB,非分區(qū)表的單表記錄數(shù)(OLTP)建議不超過1000萬行,單庫、單表容量過大影響性能、備份恢復效率。如超出此容量規(guī)格,建議進行垂直或水平分庫分表。建議普通類系統(tǒng)一個實例下不超過10個schema,重要類系統(tǒng)一個實例下不超過3個schema。對于表空間占用較大且持續(xù)增長的表必須配置清理策略。聯(lián)機交易系統(tǒng)當前庫禁止保留超過13個月的歷史數(shù)據(jù)。禁止在分布式數(shù)據(jù)庫中存儲圖片,文件等大的二進制數(shù)據(jù)。3.資源池管理。分布式數(shù)據(jù)庫容器資源池最佳建設(shè)實踐為每集群近千臺node節(jié)點級規(guī)模,為了充分利用資源池的計算資源和存儲資源,且保障分布式數(shù)據(jù)庫系統(tǒng)的絕對可用性,需要設(shè)計一套管理完善及技術(shù)上可實現(xiàn)的資源池管理標準規(guī)范。資源池基線優(yōu)先級如下:首要保證分布式數(shù)據(jù)庫系統(tǒng)的可用性,其次滿足資源治理工作要求,盡可能的保證數(shù)據(jù)庫均勻的分布在分布式數(shù)據(jù)庫容器資源池中。可以設(shè)置三種資源池管理基線:藍線,新架建上限基線,用于保證架建時,機器被充分利用。黃線,資源調(diào)平基線,達到該基線,不允許新增任何容器實例。紅線,擴容上限,一旦達到該基線,則不允許容器垂直擴容,如有垂直擴容需求,須先發(fā)起跨節(jié)點重調(diào)度流程,再在調(diào)度后的新節(jié)點上發(fā)起垂直擴容。4.圍繞數(shù)據(jù)庫的k8s穩(wěn)定性。云原生的管控與業(yè)務解耦是非常重要的設(shè)計原則。對穩(wěn)定性要求極高的金融應用系統(tǒng),需要嚴格控制系統(tǒng)故障的爆炸半徑。管控層包括K8s底座的問題和故障不會影響到數(shù)據(jù)服務的正常運行。分布式數(shù)據(jù)庫服務租戶之間的故障和性能不能相互影響。K8s底座上分布式數(shù)據(jù)庫管理系統(tǒng)組件應遵從如下原則:設(shè)計上必須兼容K8s體系,不可做侵入性改造,避免和定制化底座綁定,APIServer/Etcd/Master/Kubelet等K8s核心組件異常對于正常運行分布式數(shù)據(jù)庫Pod不應該批量操作,自定義DatabaseOperator做到授權(quán)能力,避免代碼邏輯問題導致大規(guī)模Pod對象更新操作。所有行為都需要做到授權(quán)驗證的,避免誤操作發(fā)生,需對所有DatabaseOperator大規(guī)模更新場景充分驗證和頻率限制。四、應用需求分析在分布式數(shù)據(jù)庫高可用架構(gòu)中,leader和follower之間的數(shù)據(jù)一致性是保證業(yè)務正確性和連續(xù)性的基礎(chǔ)。然而,由于網(wǎng)絡延遲、硬件故障、軟件錯誤等原因,follower的數(shù)據(jù)可能與leader不一致。這種不一致可能表現(xiàn)為數(shù)據(jù)丟失、數(shù)據(jù)重復、數(shù)據(jù)錯亂等問題,嚴重影響數(shù)據(jù)的可靠性和完整性。為確保leader和follower的數(shù)據(jù)在任意時刻均滿足數(shù)據(jù)一致。副本間一致性校驗是關(guān)鍵,應滿足如下步驟:1.制定校驗計劃。確定校驗的范圍和頻率,選擇合適的校驗2.數(shù)據(jù)導出。如果是在線校驗,此步驟可以省略。否則,在leader和follower上分別導出相同范圍的數(shù)據(jù),確保導出的數(shù)據(jù)格式一致,如SQL導出或二進制導出,記錄導出的時間戳,作為后續(xù)對比的基準。者在線定義的)的數(shù)據(jù)。檢查數(shù)據(jù)行數(shù)、表結(jié)構(gòu)、索引等是否一致。對于不一致的數(shù)據(jù),生成差異報告,記錄具體的差異內(nèi)容。判斷不一致是由復制延遲、人為操作還是其他因素引起的。評估修復數(shù)據(jù)不一致的風險和成本。5.數(shù)據(jù)修復。根據(jù)差異分析結(jié)果,提供數(shù)據(jù)修復方案,如提供修復sql等。對于少量的不一致數(shù)據(jù),可以手動修改或重新同1.容災實例。分布式數(shù)據(jù)庫實例在leader發(fā)生故障時能夠硬件故障、人為錯誤等各種潛在風險,與本地高可用不同,容災實例通常部署在異地數(shù)據(jù)中心,通過數(shù)據(jù)同步和網(wǎng)絡連接與leader保持一致,提供更高級別的容錯和災備能力。搭建數(shù)據(jù)庫容災實例應滿足如下步驟:(1)異地實例部署。規(guī)劃異地實例架構(gòu),可以是異構(gòu)(與本地機房不一致的cpu),也可以是同構(gòu)。在異地數(shù)據(jù)中心新建獨立的分布式數(shù)據(jù)庫實例。建立異地實例與leader之間的網(wǎng)絡連接,安全和訪問控制策略。(2)實例備份和恢復。在leader上進行全量數(shù)據(jù)備份有數(shù)據(jù),日志等生成一份完整的數(shù)據(jù)備份。將全量備份傳輸?shù)疆惖厝轂膶嵗诘臄?shù)據(jù)中心。傳輸方法可以通過網(wǎng)絡,也可以通過對象存儲、NAS等。在異地容災實例上進行備份恢復和初始化,確保與leader配置一致。(3)配置數(shù)據(jù)同步。根據(jù)業(yè)務需求和技術(shù)條件,選擇合適的復制模式,如異步復制、半同步復制等。配置leader和異地容災實例之間的復制關(guān)系,復制的起始位置應該為全量備份結(jié)束的位置和復制方向應該為從leader到異地庫方向。設(shè)置復制的安全認證和傳輸加密等參數(shù),確保復制的安全性。(4)延遲復制配置(可選)。根據(jù)業(yè)務的要求,評估是否需要配置延遲復制。延遲復制可以在leader誤操作時,使用follower數(shù)據(jù)進行快速恢復。(5)復制狀態(tài)監(jiān)控。實時監(jiān)控leader和異地容災實是否禁止切換等。設(shè)置復制時延,節(jié)點狀態(tài)等相關(guān)警告和告警閾值,及時發(fā)現(xiàn)和處理復制中的異常情況。定期檢查復制的完整性和數(shù)據(jù)一致性,確保異地容災實例與leader保持同步。2.容災切換。在分布式數(shù)據(jù)庫容災架構(gòu)中,異地容災實例是應對主機房故障的重要手段。當主機房發(fā)生自然災害、停電、大面積網(wǎng)絡故障等重大故障時,需要快速、可靠地將業(yè)務切換到異地容災實例,確保業(yè)務連續(xù)性和數(shù)據(jù)可用性。容災切換應滿足如下步驟:(1)故障確認與評估。監(jiān)控系統(tǒng)發(fā)現(xiàn)主機房故障,如電力中斷、網(wǎng)絡斷開等。確認故障范圍和影響程度,評估主機房恢復時間和數(shù)據(jù)庫受損情況。決定是否啟動異地容災切換預案,評估切換的風險和影響。(2)啟動容災預案。通知相關(guān)團隊和人員,包括數(shù)據(jù)庫運維、應用開發(fā)等。通過預先準備的控制臺(白屏)或者腳本(黑屏)操作步驟,啟動切換。(3)leader停寫(可選)。如果主機房故障未導致leader完全不可訪問,應斷開leader與應用的所有連接,將leader設(shè)置為只讀,停止對leader的寫入操作,避免雙寫造成數(shù)據(jù)不一致。如有需要,例如后續(xù)有掉電風險,應嘗試優(yōu)雅地關(guān)閉leader數(shù)據(jù)庫,避免數(shù)據(jù)損壞。記錄leader停寫的時間點和日志位置,作為后續(xù)數(shù)據(jù)恢復的起點。(4)切換應用連接。修改DNS配置/負載均衡配置/應用程序的連接配置,將流量導向異地容災實例。(5)恢復業(yè)務運行。驗證應用程序與異地容災實例的連通性,確保切換后的業(yè)務可用性。逐步恢復業(yè)務應用和服務,監(jiān)控業(yè)務運行狀態(tài)和性能指標。與業(yè)務團隊密切溝通,確認業(yè)務運行正常,無異常情況發(fā)生。3.回切。在主機房恢復后,應在一定時間范圍內(nèi),將流量再次切回主機房:(1)主機房恢復后的數(shù)據(jù)補全。持續(xù)關(guān)注主機房的恢復進度,評估恢復時間和數(shù)據(jù)庫損壞情況。當主機房恢復后,啟動leader數(shù)據(jù)庫,并對在切換至異地容災實例之前未能同步的數(shù)據(jù)部分進行備份。與異地容災實例建立數(shù)據(jù)同步關(guān)系。將異地容災實例切換期間的增量數(shù)據(jù)同步回leader,確保數(shù)據(jù)的完整性和一致性。比對leader和異地容災實例的數(shù)據(jù),進行必要的數(shù)據(jù)修復或重建。(2)切換回主機房。評估leader數(shù)據(jù)庫的性能和穩(wěn)定性,確認其可以承載業(yè)務負載。制定切換回主機房的計劃,包括停止異地容災實例寫入、切換負載均衡/DNS/應用配置等步驟。在業(yè)務低峰期執(zhí)行切換操作,將業(yè)務流量逐步導向leader。驗證業(yè)務運行狀態(tài)和數(shù)據(jù)完整性,確保切換回主機房后的系統(tǒng)穩(wěn)定性。災實例的數(shù)據(jù)同步,確保與leader保持一致,以便于后續(xù)的容五、建設(shè)方案分布式數(shù)據(jù)庫容器化作為一個通用的模型,旨在為各種分布式數(shù)據(jù)庫在K8s中的部署和運維提供一種抽象和統(tǒng)一的表示方法。該模型將容器化分布式數(shù)據(jù)庫的管理映射到位于四個層次的形成了一個分層的架構(gòu)。容器化分層圖見圖2。Cluster層:一個Cluster對象代表一個完整的分布式數(shù)據(jù)庫集群,包括數(shù)據(jù)庫的所有組件和服務。Component層:Component表示組成Cluster對象的邏輯組件,如元數(shù)據(jù)管理、數(shù)據(jù)存儲、查詢引擎等。每個Component對象都有其特定的職責和功能。一個Cluster對象里包含一到多個Component對象。InstanceSet層:InstanceSet對象管理Component對象里多個副本所需的工作負載,感知副本的角色。一個Component對象包含一個InstanceSet對象。Instance層:Instance對象代表InstanceSet對象內(nèi)的一個實際運行實例,對應K8s中的Pod。一個InstanceSet對象可以管理零到多個Instance對象。1.Cluster層。Cluster對象是指一個完整的、可運行的分布式數(shù)據(jù)庫,由多個Component對象組成,這些Component對象協(xié)同工作,分別提供數(shù)據(jù)存儲、計算和管理功能。Cluster對象封裝了分布式數(shù)據(jù)庫的所有Component對象及其配置和資源,代表了數(shù)據(jù)庫集群的整體行為和屬性。包括:創(chuàng)建、擴縮容、隔離、銷毀等完整的生命周期操作,以及通過Component對象關(guān)聯(lián)監(jiān)控、日志、LB、備份、HA、調(diào)度策略等周邊屬性定義,共同協(xié)作完成分布式數(shù)據(jù)庫對象的操作完備性。Cluster對象的生命周期支持創(chuàng)建、運行、變更、停止、重啟、休眠、進入回收站和銷毀等運維操作。Cluster對象的生命周期管理需要根據(jù)Component對象的拓撲結(jié)構(gòu)(通常是一個有向無環(huán)圖DAG)進行編排。各個Component對象之間通常存在服務依賴關(guān)系,Cluster對象需要定義這些Component對象之間的依賴關(guān)系。在Cluster對象進行一致性備份時,需要協(xié)調(diào)多個Component對象的備份過程,以確保整個集群的數(shù)據(jù)一致性和可恢復性?;謴瓦^程需要按照備份的一致性位點和順序,對元數(shù)據(jù)、分片數(shù)據(jù)等進行有序的恢復和重放。2.Component層。Component是指分布式數(shù)據(jù)庫集群中的一個邏輯組件或服務,每個Component對象都承擔特定的功能和角色,如數(shù)據(jù)存儲、元數(shù)據(jù)管理、查詢處理等。Component對象封裝了特定功能所需的資源、配置和行為,是Cluster對象的基本構(gòu)建塊。多個Component對象相互協(xié)作,共同提供完整的數(shù)據(jù)庫服務。Component對象需要管理分布式數(shù)據(jù)庫集群里一個組件所有副本的生命周期。支持創(chuàng)建、重啟、升級、修改配置、垂直擴縮容、水平擴縮容、高可用切換、跨節(jié)點遷移、休眠、進入回收站和銷毀等運維操作。Component對象創(chuàng)建時,可根據(jù)組件的配當有新的功能特性、性能優(yōu)化或者bug修復時,Component對象可進行升級操作。通過修改Component對象的配置參數(shù),動態(tài)調(diào)整多個副本的配置。Component對象支持多個副本的高可用切換,當節(jié)點發(fā)生不可恢復故障,或者在進行節(jié)點的維護、升級時,可以使用跨節(jié)點遷移功能將組件副本從一個節(jié)點遷移到另一個節(jié)點。Componet支持相關(guān)配置,可選配置項如表1所示。設(shè)置親和性和反親

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論