GaussDB (DWS) 集群管理系列:CM啟停功能的原理、流程和關鍵日志
CM啟停集群功能介紹
一 CM_CTL模塊
cm_ctl是GaussDB(DWS)提供的用來控制集群服務的工具。啟動集群和停止集群是cm_ctl的重要功能,其功能的實現主要通過啟停文件實現:
集群啟停文件 cluster_manual_start
實例啟停文件 instance_manual_start_X(X是實例編號,例如instance_manual_start_6001)
當啟動集群、節點、實例時,會刪除啟停文件,當停止集群、節點、實例時,會生成啟停文件。通過cm_ctl生成的啟停文件中有三行信息,每行為一個數字,第一個字段保留,第二、三個字段分別記錄了停止模式和停止等級。啟停文件位于$GAUSSHOME/bin下。其中,GAUSSHOME為環境變量。
行數
字段
取值范圍
說明
1
保留字段
0
-
2
停止模式
0:smart
發送SIGTERM信號
1: fast
發送SIGINT信號
2: immediate
發送SIGKILL信號
3
停止等級
0
單實例停止,對應實例級啟停文件
1
單節點停止,對應集群級啟停文件
2
集群級停止,對應集群級啟停文件
cm_agent組件不區分停止單節點和停止集群,因此啟停文件均為集群級;
停止等級僅用于內部識別,不影響實際的停止流程;
停止cm_server進程與具體停止模式無關,均發送SIGKILL信號;
如果啟停文件內容為空,則根據名稱判斷啟停文件級別,并執行默認的停止流程,默認的停止模式為smart;
目前不支持通過cm_ctl停止單個cm_server進程,可通過手動生成實例級啟停文件的方式控制;
以smart方式停止節點或集群時,DN環的停止順序為先停止備DN,再停止主DN;
cm_ctl啟停命令:
啟動集群
cm_ctl start
啟動節點
cm_ctl start –n nodeid
啟動實例
cm_ctl start –n nodeid –D datapath
停止集群
cm_ctl stop
停止節點
cm_ctl stop –n nodeid
停止實例
cm_ctl stop –n nodeid –D datapath
以下圖中實例6001為例,其啟動命令為cm_ctl start –n 1 –D /home/mpp/data/dnP1
具體的啟動停止操作將交由cm_agent執行。
二、CM_AGENT模塊
cm_agent是GaussDB(DWS)提供的部署在集群各主機上用來啟停和監控各數據庫實例進程的集群管理組件,拉起和停止本主機上部署的實例進程是cm_agent的一個重要功能。該功能由常駐的啟停線程來完成,根據檢測到的啟動、停止條件去相應地啟動、停止集群,下面對cm_agent的啟停流程進行介紹:
1. CM Agent啟停流程
cm_agent的停止實例進程流程如圖1所示:
圖1
cm_agent啟動實例進程的流程如圖2所示:
圖2
CM Agent整體的啟停流程大致如圖1和圖2所示,對于不同類型的實例,其啟停流程上會有一些差別,下面對不同實例啟停的差別進行描述:
(1)CM Server: 只有在檢查到啟停文件存在時才會殺死cm_server進程,而在磁盤、網卡有故障時并不會殺死cm_server進程。
(2)CN:對于已經被剔除的CN,不會再對其啟動。
(3)DN:拉起DN時進行build進程的檢查
a. build進程pid>0并且running(正在進行build)
b. build進程pid>0并且not running(即build失敗),重新進行build
c. build進程pid<0,重新進行build
d.build進程pid=0, 且DN進程不存在,(build已經完成)拉起DN
2. 關鍵日志舉例
日志類型
關鍵字段
舉例
啟動日志
GTM磁盤或網卡故障
disk damged/ nic down
stop the gtm instance 1001 due to disk damged or nic down
GTM進程不存在但滿足啟動條件
GTM START system
gtm(/home/mpp/data/gtm) is not running,now start, try 0 ! !GTM START system(command:…)
CN磁盤故障、網卡故障或CN被剔除
disk fault/ nic fault/ dropped
kill CN because disk fault or nic fault or be dropped
CN無法重啟
Do not start cn
Do not start cn because cn on current node has been manually stopped.
CN進程不存在但滿足啟動條件
CN START system
coordinate(/home/mpp/data/cn) is not running, now start, try 0 times!
CN START system(command:…)
DN啟停文件存在
manually stopped
Datanode 6001 is manually stopped. Do not perform start check.
cm_server因端口或磁盤原因無法重啟
would not be started
CM Server 1 would not be started due to port conflict.
cm_server啟停文件存在無法重啟
Do not start cm server
Do not start cm server because cm server on current instance has been manually stopped.
拉起cm_server
CM_SERVER START system
CM_SERVER START system(command:…).
停止日志
檢測到集群啟停文件
cluster manual start file
Found the cluster manual start file, set the shutdown flag.
所有實例正常停止
all the instances
all the instances have stopped!
仍存在實例進程
Stopping check
all the instances
EI企業智能 Gauss AP 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。