ProxySQL輔助的PXC集羣維護模式

原文:https://www.percona.com/blog/2017/05/31/proxysql-assisted-pxc-maintenance-mode/

作者:Ramesh Sivaraman    


在這篇博文中,我們將介紹PXC 維護模式如何使用ProxySQL 使集羣節點下線而不影響工作負載

Percona XtraDB Cluster 維護模式

由於PXC提供了高可用的解決方案,它必須考慮到集羣節點需要下線維護的情況(通過與集羣隔離或完全關閉)

PXC通過引入維護模式實現這一點。PXC的維護模式減少因爲突發故障影響工作負載的次數,如果節點是使用ProxySQL下線的(作爲負載均衡器)

中心思想是延遲核心節點的動作,並允許ProxySQL轉移工作負載

ProxySQL是如何管理PXC維護模式的

在PXC維護模式下,當用戶觸發shutdown信號(或者將特定的節點設置爲維護模式),ProxySQL將節點標記爲OFFLINE

  • 當用戶觸發了shutdown,PXC節點設置pxc_maint_mode爲SHUTDOWN(默認DISABLED)然後sleep x秒(由參數pxc_maint_transition_period決定---默認10s)。ProxySQL 自動檢測這個變化並將節點標記爲OFFLINE。應用這個改變後,ProxySQL拒絕爲任何DML事務建立連接,但已經存在的查詢可以繼續執行,直到 pxc_maint_transition_period 秒後。一旦休眠期完成,PXC傳遞一個真正的關閉信號-----從而給了ProxySQL足夠的時間轉移工作負載

  • 如果用戶需要將節點設置爲維護模式,可以簡單的設置參數pxc_maint_mode 爲 MAINTENANCE。隨即,pxc_maint_mode 被更新並且客戶端連接開始休眠x秒(由 pxc_maint_transition_period 決定)後再把控制權交給用戶。ProxySQL 自動檢測這個變化並將節點標記爲OFFLINE。在這種情況下,ProxySQL避免爲任何DML事務建立連接,但已經存在的連接可以繼續使用。

  • ProxySQL 自動檢測 維護狀態的變化並自動重新路由流量,從而減少了突發性的工作負載故障

技術細節:

  • ProxySQL Galera checker 腳本(proxysql_galera_checker)通過使用 ProxySQL 調度程序檢查pxc_maint_mode參數狀態(除了已經存在的wsrep_local_state),持續檢測各個節點的狀態。

  • 調度程序 是一個集成在ProxySQL中的像計劃任務(cron-like)的實現,支持毫秒的粒度

  • 如果 腳本(proxysql_galera_checker)檢測到 pxc_maint_mode = SHUTDOWN | MAINTENANCE,然後proxySQL將節點標記爲OFFLINE_SOFT。這樣可以避免在這個節點新建立連接(或工作負載)

proxysql_galera_checker 日誌示例:

<span style="font-weight: 400;">Thu Dec  8 11:21:11 GMT 2016 Enabling config</span>   
<span style="font-weight: 400;">Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25000 , status ONLINE , wsrep_local_state 4</span>    
<span style="font-weight: 400;">Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25100 , status ONLINE , wsrep_local_state 4</span>    
<span style="font-weight: 400;">Thu Dec  8 11:21:17 GMT 2016 Check server 10:127.0.0.1:25200 , status ONLINE , wsrep_local_state 4</span>    
<b>Thu Dec  8 11:21:17 GMT 2016 Changing server 10:127.0.0.1:25200 to status OFFLINE_SOFT due to SHUTDOWN</b>    
<span style="font-weight: 400;">Thu Dec  8 11:21:17 GMT 2016 Number of writers online: 2 : hostgroup: 10</span>    
<span style="font-weight: 400;">Thu Dec  8 11:21:17 GMT 2016 Enabling config</span>    
<span style="font-weight: 400;">Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25000 , status ONLINE , wsrep_local_state 4</span>    
<span style="font-weight: 400;">Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25100 , status ONLINE , wsrep_local_state 4</span>    
<b>Thu Dec  8 11:21:22 GMT 2016 Check server 10:127.0.0.1:25200 , status OFFLINE_SOFT , wsrep_local_state 4</b>

翻譯的不好,歡迎批評

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章