Asterisk HA Solution - Rsync

  • You do not have permissions to view this page - please try logging in.

版本為 09:53, 15 Nov 2024

到這個版本。

返回到 版本存檔.

查閱目前版本

使用 rsync 實現兩部完全一樣的 Asterisk 主機的 HA 方案。

設定開始

系統環境
  • Master Box (平日主要營運的主機)
    • hostnem = pbx-master
    • master ip = 192.168.7.62
  • Slave Box (離線備份的主機,當 Master 故障時,可接手營運)
    • hostnem = pbx-slave
    • slave ip = 192.168.7.70
  • Virtual IP (這又稱為 floating IP,作為主機對外服務的 IP)
    • float ip = 192.168.7.71
設定 SSH 免密碼的連接

On Master Box,同步方式:Master ---(push)---> Slave)
建立公鑰及私鑰證書

# cd /root/.ssh
# ssh-keygen -d 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <確認路徑無誤,按 Enter>
Enter passphrase (empty for no passphrase): <不可輸入密碼>
Enter same passphrase again: <按 Enter>
Your identification has been saved in /root/.ssh/id_rsa. <這是私鑰>
Your public key has been saved in /root/.ssh/id_rsa.pub. <這是公鑰>
The key fingerprint is:
42:e6:6b:21:07:74:33:95:2c:b8:17:25:a2:53:0e:f8 root@pbx-master.local

 將公鑰檔傳送到 Slave Box 的 /root/.ssh/authorized_keys (注意:檔名不可變更)

SSH 連接測試

ssh pbx-slave

不用輸入密碼即可登入 pbx-slave。

資料同步測試指令

rsync -avl /tmp/rsync.test -e ssh pbx-slave:/tmp/rsync.test

On Slave Box,同步方式:Slave ---(push)---> Master)

同以上方法完成。

兩主機資料同步的 script

檔名:ast-ha-rsync.sh

重點說明:

  • Master & Slave 使用同一個 script。
  • -s:更新目前主機的 ast-ha-rsync.sh 檔案至另一台主機。
  • -r:釋放目前主機的 virtual IP。
  • -v:將log 寫入紀錄檔(/var/log/xxx.log)。
  • -b (v2):同步資料到 Slave node,只能在 Master node 執行。
  • Slave node 機器如果有重新啟動,在 5 分鐘內,不會啟動服務 IP,這是因為在這期間要留給 Master 作啟動服務。
  • Master & Slave 是透過任一方服務 IP 的啟動,來決定哪一台是工作的 Asterisk。
Powered by MindTouch Core