GuassDB
GaussDB(DWS)資源負載管理

資源負載管理滿足的主要業務類型
集群的負載控制
資源可控,保證集群不過載
客戶的SLA保證
根據客戶的期望,設置不同作業優先級,達成SLA
多租戶間的資源隔離
通過資源隔離達成多用戶間執行業務不干擾
系統的健康監測
資源的監控、收集和匯總,用于實時健康匯報和歷史作業查詢
功能介紹
基礎框架
控制組-用于進行CPU資源的處層級管理
資源池-計算資源(CPU、內存)、資源池內并發隊列的設置入口
用戶管理-數據庫多租戶模型的用戶接口,設置用戶存儲空間大小,與資源池進行關聯
主要功能
負載管理
優先級調度
多租戶
資源監控
資源負載管理對象
計算資源:
CPU、內存時服務器上的計算資源,通過對資源的集中管控,可以有效避免“作業”占用資源的沖突,實現所有作業和諧共處,高優先級的作業優先執行,以及用戶間的資源隔離。
存儲資源:
存儲空間管理是多租戶場景下的重要特性,用于限定不同用戶可以使用的空間配額。
Resource Pool:是GaussDB 200實現的邏輯資源實體,每個資源池可以分配到適當配額的CPU、內存、存儲空間等,一個資源池對應一個租戶。將用戶關聯到該租戶角色,相當于該用戶會收到資源池所分配到的資源的限制。
任務流程
開始→啟動資源負載管理→啟動控制組→創建資源池→關聯作業到資源池→執行作業→結束
控制組(Cgroups)簡介
負載管理的作用
自適應負載
執行作業前,客戶不需要指定work_mem、max_active_statements等參數進行系統調優,數據庫自動適應負載變化,保障數據庫可靠運行。
無論多大并發,系統穩定運行。
作業查詢規則
類型
說明
Blocktime
作業的阻塞時間,單位為秒,包括全局并發排隊以及局部并發排隊的總時間
Elasedtime
已經被執行的作業,從開始執行到當前所消耗的時間,單位為秒。
Allcputime
作業在所有datanode上執行時所耗費的cpu總時間,單位為秒
Cpuskewpercent
作業在datanode上執行時的cpu時間的傾斜率,有效范圍為1-100。
cpuskewpercent的分析依賴于qualificationtime設置
查看作業的負載狀態
SELCET * FROM pg_session_wlmstat;
Pg_session_slmstat重要屬性如下:
名稱
類型
描述
Priority
Integer
語句所在cgroup的優先級
Attribute
Text
語句的屬性:
Simple:簡單語句
Complicated:復雜語句
Special:管理員執行的或者數據庫內部的語句
Ordinary:非special的語句
Block_time
Bigint
語句當前為止的pending的時間
Elapsed_time
Bigint
語句當前為止的實際執行時間
Total_cpu_time
Bigint
語句在上一時間周期內的DN上cpu使用的總時間
Cpu_skew_percent
Integer
語句在上一時間周期內的DN上cpu使用的傾斜率
Control_group
Text
語句當前所使用的cgroup
Status
Text
語句當前的狀態:
Pending:執行前狀態
Running:執行進行狀態
Finished:執行正常結束
Aborted:執行異常終止
Active:非以上四種狀態外的正常狀態
Unknown:未知狀態
Enqueue
Text
語句當前的排隊情況:
Global:在全局隊列中排隊
Respool:在資源池隊列排隊
Transcation:語句處于一個事務塊中
None:未在排隊
Resource_pool
Name
語句當前所在的資源池
Query
Text
該后端的最新查詢。如果state狀態是active,此字段顯示當前正在執行的查詢。所有其他情況表示上一個查詢。
安全與權限設計
連接認證
原理
連接認證是辨別“對方是誰”,判斷連接用戶是否為數據庫合法用戶。
連接認證是數據庫安全的第一層防護,認證機制可以防止非法用戶入侵數據庫內部。
GaussDB(DWS)是基于客戶端/服務器(C/S)架構的數據庫系統
客戶端與服務器(CN節點)網絡通信協議通常為TCP/IP協議
認證方式
配置CN節點的postgresql.conf文件
監聽IP地址的信息存在此文件中,文件默認存放在數據簇根目錄下
配置CN節點的pg_hba.conf節點
客戶端認證所需的配置信息均存在此文件中,文件默認存放在數據簇根目錄下
HBA文件內容是若干HBA記錄的集合,文件每一行代表一條記錄
空白行及井號開始(注釋)的行被忽略
各個字段含義:
Local:server端匹配通過unix域套接字(Unix Domain Socket)進行的連接。
Host:server端匹配通過TCP/IP進行的連接,host能匹配SSL和非SSL連接請求。
Hostssl:server端匹配通過TCP/IP進行的連接,且必須為SSL加密連接請求,非SSL加密連接請求會被拒絕。
Hostnossl:server端匹配通過TCP/IP進行的連接,且必須為非SSL加密連接請求,SSL加密連接請求會被拒絕。
Database:server端匹配匹配客戶端連接的數據庫名稱,可以指定具體的單個數據庫,可以通過逗號分隔的方法指定多個數據庫,也可以使用以下幾種預定義的值:
All:匹配所有數據庫
Sameuser:匹配和用戶名同名的數據庫
Samerole:匹配的用戶必須必須是一個與數據庫同名的角色中的成員。
User:server端匹配客戶端用戶名,可以是特定單用戶,可以是逗號分隔的多用戶;如果是一個角色時,角色名稱前應加上前綴‘+’,表示直接或間接屬于這個角色的用戶;也可以使用預定義的值。
address:server端匹配客戶端的IP地址,支持CIDR-address、IP-address+IP-mask兩種方式。
METHOD:server端與客戶端建立連接時的認證方法。
通道加密
原理
SSL:Secure Sockets Layer-安全套接字層,是網絡通信提供安全及數據完整性的安全協議。
對稱加密算法:加密和解密使用相同的密鑰,特點是算法公開、加解密速度快、效率高。
非對稱加密算法:包含兩個密鑰:公鑰和私鑰,加密和解密使用不同的密鑰,特點是算法復雜度高、安全性更強、性能較對稱加密差。
SSL握手階段,使用非對稱加密算法協商會話密鑰。
用戶管理
用戶與角色
用戶:
使用數據庫系統服務的個體;
職責單一,往往附屬于某個組織或部門
可以做什么:
使用工具對接數據庫
訪問數據庫對象
執行SQL語句
角色:
按照數據庫系統中承擔的責任劃分具有不同權限的角色。
角色用來作為權限集合的載體。
代表一個數據庫用戶、或一組數據用戶的行為約束。
角色和用戶
用戶被賦予一個或多個角色。
角色是一種權限集合,不應該具有登錄數據庫并執行SQL能力。
用戶是實體,角色是行為。
對用戶權限的管理簡化為對角色權限的管理。
在GaussDB(DWS)中,用戶和角色使用相同的操作方式與維護方式。
相關操作
\help create user查看
\help alter user 查看
使用\d命令查看pg_authid表詳細信息
\help drop user查看
權限模型
基于角色的權限管理模型
基于角色的用戶管理(Role-Based Access Control,簡稱RBAC)是通過為角色賦予權限,用戶通過成為適當角色而得到這些角色的權限。使用RBAC可以極大簡化對權限的管理。
RBAC模型:
為角色賦予適當的權限。
指定用戶為相應的角色。
RBAC中的關系:
一個用戶可對應多個角色
一個角色可對應多個用戶
一個角色可以擁有多個權限
一種權限可以被分配給許多個角色
RBAC的特點與優勢:
間接關系
職責分離
便于授權管理
可以支持最小特權原則、責任分離原則、數據抽象原則
三權分立
GaussDB(DWS)默認是非三權分立模型,可以在postgresql.conf中設置參數enableSeparationOfDuty=on以開啟模型
管理員名稱
能否創建用戶
能否查看審計日志
是否有系統管理員權限
系統管理員
否
否
是
安全管理員
是
否
否
審計管理員
否
是
否
權限管理
系統權限與對象權限
系統權限:
數據庫系統特定操作的能力,如CREATE DB、CREATE ROLE
系統權限無法通過GRANT賦予,只能在創建修改用戶時指定
對象權限:
數據庫對象操作的能力,如SELECT、INSERT、UPDATE、DELETE等
對象權限可以由對象所有者或管理員通過GRANT/REVOKE對其他角色分配與撤銷。
系統權限
權限作用
能否GRANT/REVOKE
SYSADMIN
查看特殊系統表權限
是
CREATEDB
創建數據庫DATABASE
否
CREATEROLE
創建用戶與角色
否
AUDITDAMIN
是否可以查看審計日志
否
LOGIN
是否有連接數據庫權限
否
角色與權限
角色是權限的集合,權限限制了用戶的行為
通過為用戶分配角色,限定用戶的權力范圍
使用角色管理權限,更加有效
使用角色管理其所有用戶權限,更加統一
角色可以被派生(開始資源管控,層級只能兩層)
角色的對象權限集合可以被繼承,系統權限無法繼承
權限相關操作
對象權限管理主要通過GRANT/REVOKE賦予或收回角色在某個對象上的權限。
PUBLIC特指為所有角色賦權
示例
為角色role_1賦予表table_1的select權限
Grant select on table_1 to role_1;
為用戶user_1賦予角色role_1的所有權限,user_1可以讀取表table_1
Grant role_1 to user_1;
收回角色role_1在表table_1的select權限
Revoke select on table_1 from role_1;
收回用戶user_1上的role_1所有權限
Revoke role_1 from user_1;
查看用戶的系統權限與表對象權限
\du role_1查看
推薦權限分配
系統最小授權規劃原則
步驟
描述
規劃原則
1
規劃系統權限
默認情況下,只有系統管理員具有系統權限。在數據庫安裝車工后,可以使用系統管理員給其他用戶分配系統權限。
從安全性考慮,系統權限應該分別賦予可信賴的用戶。
2
規劃對象權限
對象權限的規劃比較靈活,系統管理員可以將某些數據庫對象的所有權限賦予某個用戶,也可以將某些數據庫對象的部分權限分別賦予不同的用戶。
3
規劃角色
在實際工作中,如果有兩個以上的用戶具有相同的對象權限,則建議將這幾個用戶規劃為一個角色,并將這些權限賦予此角色。
4
賦予用戶權限
根據以上規劃:
通過create/alter user語句將系統權限賦予指定用戶。
通過grant/revoke語句將獨享權限賦予指定用戶。
安全審計
數據庫審計
數據庫審計屬于數據庫安全技術之一
數據庫安全審計主要用于監視并記錄在數據庫系統中用戶的操作行為
審計的作用通常為了保護數據庫中的信息私密
操作行為的記過記錄在審計日志中
作用:
提高數據庫安全級別
可以對用戶訪問數據庫的行為進行記錄、分析
支持對數據庫操作細粒度的篩選
可以對事故進行追溯
可以識別安全威脅
審計日志
一次操作記作一條記錄
詳細操作信息:
操作用戶
操作時間
被操作的數據庫
被操作的表
連接信息
操作sql
數據加密
TDE透明加密
透明加密(Transparent Data Encryption)用來提供數據加密保護,當用戶開始TDE特性后,對于連接到數據庫的應用程序是透明的,不需要應用程序做任何改動。
TDE開啟后,數據在寫入磁盤之前加密,在讀取到內存之前解密。
優點
防止硬盤被盜竊、數據泄露
對用戶完全透明,使用無感知
GaussDB(DWS)數據庫透明加密特點
支持行存/列存表數據加密
支持AES、SM4加解密算法
支持集群級別配置
日常巡檢
為什么要巡檢
日常巡檢
主動識別問題與風險,提前處理和預防,保證局點穩定運行
升級、補丁、擴容前巡檢
提前失敗導致變更失敗的風險,確保變更順利進行。
用什么巡檢
FusionInsight Tool Prober
提供給運維工程師的一套健康檢查工具,能夠檢查集群相關節點、服務的健康狀態,提前發現集群中潛在的問題,并生成健康檢查報告。
FusionInsight Tool由兩部分組成:FusionCare 和 SysChecker
FusionCare提供巡檢界面可視化、環境管理、任務管理、報告管理功能。
SysChecker提供對FusionInsight的巡檢功能。
巡檢流程
開始→檢查前準備→遠程linux安裝FusionCare→添加環境信息→執行巡檢任務→查看巡檢結果→修復異常檢查項→結束。
巡檢場景
日常巡檢:用于集群日常維護,獲取集群的健康狀態,發現集群的潛在風險。
升級前巡檢:用于集群版本升級前,提前發現可能會導致集群升級失敗的問題。
補丁前巡檢:用于集群安裝補丁包前,提前發現可能導致集群補丁安裝失敗的各種問題。
深度巡檢:用于GaussDB集群日常維護,獲取集群更深度的健康狀態,發現集群的潛在風險。
TCP/IP 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。