【複製】mha-3


翻譯自 : http://code.google.com/p/mysql-master-ha/wiki/Architecture

一、Architecture of MHA
/*mha的結構(架構)*/

When a master crashes, MHA recovers rest slaves as below.
/* 當master崩潰時,mha按照下面恢復剩餘的slave們 */

In relay log files on slaves, master''s binary log positions are written at "end_log_pos" sections (example).
By comparing the latest end_log_pos between slaves, we can identify which relay log events are not sent to each slave.
MHA internally recovers slaves (fixes consistency issues) by using this mechanism.
In addition to basic algorithms covered in the slides at the MySQL Conf 2011, MHA does some optimizations and enhancements, such as generating differential relay logs very quickly (indenpendent from relay log file size), making recovery work with row based formats, etc.

/*
在slave上的relay log日誌文件,master的二進制日誌的位置寫在的“end_log_pos”部分
通過在slave之間,比較最新的“end_log_pos”,可以辨別出哪些 relay log 事件沒有發送的每一個slave上
MHA使用這種機制,內部恢復slave(修正一致性問題)
除了包含在mysql conf 2011中的基本的算法,mha還做了一些優化和改進,例如非常快的產生不同的 relay log(取決relay log的大小),使恢復工作基於行格式
*/



二、MHA Components
/*mha組件*/

MHA consists of MHA Manager and MHA Node as below.
/*mha由 mha manager 和 mha node 組成*/


MHA Manager has manager programs such as monitoring MySQL master, controlling master failover, etc.

MHA Node has failover helper scripts such as parsing MySQL binary/relay logs, identifying relay log position from which relay logs should be applied to other slaves, applying events to the target slave, etc. MHA Node runs on each MySQL server.

When MHA Manager does failover, MHA manager connects MHA Node via SSH and executes MHA Node commands when needed.


/*
MHA Manager節點有管理程序,例如監控MySQL主,控制主節點故障轉移等。
MHA node節點具有故障轉移等輔助腳本,來解析MySQL二進制/中繼日誌,從應該發送到其他slave上的relay log中辨別出 relay log 位置,將事件應用到目標slave上。
MHA node節點運行在每一個MySQL服務器上
當 MHA manager節點 故障轉移時,MHA manager節點通過SSH連接 MHA node節點 ,並在需要時執行MHA node節點命令。
*/




三、Custom Extensions
/*自定義擴展*/

MHA has a couple of extention points. For example, MHA can call any custom script to update master's ip address (updating global catalog database that manages master's ip address, updating virtual ip, etc).
This is because how to manage IP address depends on users' environments and MHA does not want to force one approach.'

Current extension points are as below. MHA Manager package includes sample scripts.

/*
mha有幾個擴展點。例如,mha可以調用任何自定義腳本來更新 master的ip(例如虛擬vip)
這是因爲如何管理ip地址,取決於用戶的環境。mha並不希望強制執行的方法之一。
目前的擴展點如下。 MHA manager 節點包中包含的示例腳本。
*/


secondary_check_script   : For checking master availability from multiple network routes
                          檢查主從多個網絡路由可用性
master_ip_failover_script: For updating master's ip address used from applications '
                          更新master的ip,從應用程序中使用的IP地址
shutdown_script          : For forcing shutdown the master
                          強制關閉master
report_script            : For sending reports
                          發送報告
init_conf_load_script    : For loading initial configuration parameters
                          加載初始配置參數
master_ip_online_change_script: For updating master ip address. This is not used for master failover, but used for online master switch
                               更新主IP地址。這不是用於master故障轉移,但用於在線master切換



這幾個腳本的詳細描述和解釋,將在後續譯文中發出。




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