首頁 > 軟體

openGauss資料庫共用儲存特性概述

2023-02-22 06:01:11

openGauss 3.1.1是openGauss 5.0.0 release版本的Preview版本,希望廣大社群夥伴和開發者基於此版本進行場景化驗證,提前發現問題並反饋社群,社群將在LTS版本釋出前進行問題修復。當前檔案說明範圍僅限企業版。

版本介紹

3.1.1與之前的版本特性功能保持相容,主要功能如下:

繼承功能:

  • 基礎功能:SQL標準語法、資料型別、表(包括臨時表、全域性臨時表、外部表)、檢視、物化檢視、外來鍵、索引(包括btree索引、Gin索引、hash索引)、序列、函數、觸發器、聚合函數median、ROWNUM、UPSERT、、jsonb資料型別、GB18030字元集。
  • 儲存過程:儲存過程、儲存過程內commit/rollback、引數的儲存過程/函數呼叫省略()、儲存過程偵錯。
  • 安全功能:認證、許可權管理、網路通訊安全、資料庫審計、全密態資料庫、動態資料脫敏、國密演演算法、防篡改賬本資料庫、內建角色和許可權管理、透明加密、ANY許可權管理等。
  • 高可用:主備雙機、級聯備機、邏輯複製、極致RTO、備機擴容、基於Paxos分散式一致性協定(DCF)、兩地三中心跨Region容災。
  • SQL引擎增強:範圍分割區、全域性分割區索引、LIST分割區、HASH分割區、基於範圍分割區的自動擴充套件分割區、行存轉向量化、自治事務、並行查詢、Global Syscache、IPv6協定、postgis外掛。
  • 儲存引擎增強:延遲備庫、備機支援邏輯複製、並行邏輯解碼、灰度升級、捲動升級、Hash索引、列存表主鍵唯一約束、Ustore儲存引擎、段頁式儲存、釋出訂閱、行存表壓縮、MOT記憶體表、NUMA-aware高效能優化等。
  • 備份恢復:全量物理備份、邏輯備份、備機備份、增量備份和恢復、恢復到指定時間點(PITR)。
  • AI能力:引數自調優、慢SQL發現、AI查詢時間預測、資料庫指標採集預測與異常監控、DBMind自治運維平臺、智慧優化器、智慧索引推薦、deepSQL庫內AI演演算法、庫內AI演演算法支援XGBoost、multiclass和PCA。
  • 運維能力:WDR診斷報告新增資料庫執行指標、備機慢SQL診斷檢視、unique sql自動淘汰。
  • JDBC:支援JDBC使用者端負載均衡及讀寫分離。
  • CM:支援CM叢集管理,CM支援自定義資源管控,支援對外狀態查詢和推播能力。
  • 工具鏈:開發工具DataStudio、資料遷移工具chameleon。
  • 中介軟體:shardingSphere、openLookeng。
  • 周邊生態:dblink,支援openEuler、CentOS、Ubuntu、FusionOS系統
  • 其他:cmake指令碼編譯、容器化部署、kubernetes

新增功能:

  • 主備共用儲存
  • MySQL相容性增強
  • CM部署和資料庫部署解耦,CM支援增量升級
  • MOT記憶體表能力增強

其中,主備共用儲存特性是3.1.X版本引入的比較重要特性。下面重點介紹一下。

主備共用儲存

特性簡介

本特性提供主備機共用一份儲存的能力,實現基於磁陣裝置的主備共用儲存HA部署形態,可選通過OCK RDMA提升備機實時一致性讀能力_。_主備共用儲存架構圖如下圖所示。

圖 1 主備共用架構圖

客戶價值

解決傳統HA部署下儲存容量較單機部署翻倍的問題,減少了儲存容量,節省磁陣裝置。可選通過OCK RDMA提升備機實時一致性讀能力。

特性描述

-共用儲存依賴兩個自研的公共元件實現主備共用儲存的能力:

  • 分散式儲存服務DSS(Distributed Storage Service)

DSS是獨立程序,直接管理磁陣裸裝置,並對外提供類似分散式檔案系統的能力。通過共用記憶體和使用者端API動態庫,為資料庫提供建立檔案、刪除檔案、擴充套件和收縮檔案、讀寫檔案的能力。

  • 分散式記憶體服務DMS(Distributed Memory Service)

DMS是動態庫,整合在資料庫內部,通過TCP/RDMA網路傳輸PAGE內容,將主備記憶體融合,提供記憶體池化能力,以此實現備機實時一致性讀功能。

共用儲存通過分散式儲存服務DSS元件實現主備共用一份儲存。與傳統建庫相比,共用儲存基於磁陣建庫將目錄分為三種型別,每範例獨佔且不共用、每範例獨佔且共用、所有範例共用。其中需要共用的目錄均需存放到磁陣裝置上,而不共用的目錄存放在本地盤上。另外備機建庫只需要建隸屬於自己的目錄,不需要再次建立所有範例共用的目錄結構。主備共用儲存新增了相關GUC引數,以及將系統表儲存方式從頁式切換到段頁式。

共用儲存通過分散式記憶體服務DMS元件實現主備頁面實時交換,提供備機實時一致效能力。即主機事務提交後,在備機立即能夠讀到,不存在延遲讀現象(事務隔離級別為Read-Committed)。

共用儲存通過OCK RDMA降低DMS主備頁面交換時延。TCP下的備機一致性讀進行時延對比,開啟OCK RDMA,備機一致性讀時延至少要降低20%。

特性約束

主備共用儲存方案依賴於磁陣裝置,磁陣的LUN需要支援SCSI3的PR協定(包括PR OUT(“PERSISTENT RESERVE OUT”)PR IN(“PERSISTENT RESERVE IN”)和INQUIRY), 用於實現叢集IO FENCE。除此之外, 還需要支援SCSI3的CAW協定(COMPARE AND WRITE),用於實現共用磁碟鎖。如Dorado 5000 V3磁陣裝置。
實現的主備共用儲存HA部署形態只支援1主1備和1主2備場景,其他場景為體驗版未測試過,不承諾。
由於主備共用儲存依賴類似分散式檔案系統的功能來實現備機實時一致性讀能力,因此要求檔案後設資料變更越少越好。基於效能考慮,只支援段頁式表。
只支援主備部署在同一磁陣裝置上,不支援容災部署,也不支援主備混合部署(如主和備部署在不同的磁陣裝置上)。
主備頁面交換通過RDMA加速,依賴CX5網路卡,並且依賴OCK RDMA動態庫。
暫不支援備機重建及節點替換、節點修復等能力。
不支援從傳統HA部署升級到基於主備共用儲存部署。
共用儲存模式下gs_xlogdump_xid,gs_xlogdump_lsn,gs_xlogdump_tablepath,gs_xlogdump_parsepage_tablepath、pg_create_logical_replication_slot、gs_verify_and_tryrepair_page、gs_repair_page、gs_repair_file函數功能不支援使用。
共用儲存模式下T_CreatePublicationStmt、T_AlterPublicationStmt、T_CreateSubscriptionStmt、T_AlterSubscriptionStmt、T_DropSubscriptionStmt訂閱功能不支援使用。
共用儲存模式下不支援全域性臨時表。

安裝部分對應的也新增了共用儲存場景的支援。cluster_config_template.xml組態檔模板範例:

   ...
    <!-- 共用儲存模式開關 -->
    <PARAM name="enable_dss" value="on"/>
    <!-- dss範例目錄 -->
    <PARAM name="dss_home" value="/opt/huawei/install/data/dss"/>
    <!-- dss共用卷名 -->
    <PARAM name="ss_dss_vg_name" value="data"/>
    <!-- dss掛載卷組名和卷組資訊,包含共用卷 -->
    <PARAM name="dss_vg_info" value="data:/dev/sdb,p0:/dev/sdc,p1:/dev/sdd"/>
    <!-- cm投票卷 -->
    <PARAM name="votingDiskPath" value="/dev/sde"/>
    <!-- cm共用卷 -->
    <PARAM name="shareDiskDir" value="/dev/sdf"/>
    <!-- dss開啟ssl認證開關 -->
    <PARAM name="dss_ssl_enable" value="on"/>
    <!-- mes通訊協定型別  -->
    <PARAM name="ss_interconnect_type" value="TCP"/>
    <!-- rdma繫結cpu序列  -->
    <PARAM name="ss_rdma_work_config" value="1 7"/>

歡迎有興趣和條件的同學可以對主備共用儲存特性進行場景化驗證。

到此這篇關於openGauss資料庫共用儲存特性簡介的文章就介紹到這了,更多相關openGauss資料庫共用儲存內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com