簡體   English   中英

freeswitch 中的高可用性

[英]high availability in freeswitch

我已經安裝並配置了 FreeSwitch。 它已啟動並完美運行。 現在我需要實現高可用性。 我的 freeswitch 部署在 aws ubuntu ec2 中。 根據 aws 文檔的 HA,它顯示了浮動 ip 概念。 我試過了,但我無法在 aws 中創建虛擬 ip。 我也試過efs。 它也失敗了。 還有其他可能的解決方案嗎?..

在 Freeswitch 中,沒有關於 HA 的單一內容。 如果你想要 VIP,你確實有 [0],但不建議這樣做,因為需要 VIP 來決定服務器是啟動還是關閉,這並不容易。對此有多種解決方案。 但通常,您需要將 FreeSwitch 視為執行某些業務邏輯的應用程序,並在其背后放置一個反向代理。 代理是輕量級的,他能夠從 HA 和可擴展性中獲得更多。

OpenSIPs 或 Kamailio 的並發會話能力至少是任何軟交換機(FreeSwitch、Asterisk 等)的十倍。因此您的解決方案是在 FreeSwitch 后面放置一些 SIP 代理。 那么如果 FreeSwitch 關閉,代理將不會向它發送調用。 代理本身有一個專用的多主協議,你仍然需要考慮邊緣情況,如 BLF、會議等。

一般來說,關於 VoIP HA,不要試圖保存實時通話。 只需確保系統已啟動並正在運行以進行下一次調用

更新:參見https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Configuration/High-Availability/

[0]: (過時 URL https://freeswitch.org/confluence/pages/viewpage.action?pageId=7143926 )

“HA”的 FreeSWITCH 文檔描述了 FreeSWITCH 可以從中恢復的微不足道的(實際上無用的)場景。 那並不是真的給你 HA。 沒有對不同類型故障的感知,節點之間沒有協調以防兩者/都沒有嘗試變得活躍,沒有數據同步,如果升級失敗則無法控制節點,沒有對事件/故障的響應等。如果這是對於家庭系統,只需創建一個備用節點並保持其斷電,直到您需要它。 如果是用於商業 VoIP 安裝,請繼續閱讀。

首先看看這個 voip-info web 頁面:高可用性設計 盡管有幾個部分提到了 Asterisk 而不是 FreeSWITCH,但它很好地解釋了什么是高可用性,什么不是。 (很容易將高可用性與負載平衡混淆)。 如果您認為浮動 IP 是最大的挑戰,那么您可能忽略了在現實世界中使 VoIP HA 正常工作需要做些什么。

首先定義 VoIP“故障”。 用最簡單的術語來說,就是 FreeSWITCH 進程死亡。 但通常 FreeSWITCH 進程是活動的,只是不橋接調用(因此避免簡單的進程監控腳本)。 如果網絡連接中斷(或防火牆失敗),或者您的 AZ 和中繼線/電話機之間的路由變得不穩定怎么辦。 您的 HA 解決方案應該能夠考慮上游路由等環境因素,以確定對等點是否不再提供電話服務。 一些解決方案使用通用的 Linux 心跳軟件,它沒有任何深入的 FreeSWITCH 可見性或環境可見性。

如何保持數據在同行之間同步? 從語音郵件到配置數據,再到電話機固件等。RDS 或 DRBD 等解決方案使這一切變得簡單,但一個對等方的破壞會立即破壞另一個。 例如,如果一個節點上的損壞進程損壞了關鍵的 FreeSWITCH 文件,另一個節點是否會啟動(如果他們使用 DRBD,則不會)。 因此,避免使用基於 RDS 或 DRBD 的“解決方案”。

如果您引入負載平衡(即多個活動對等點),如果 2 個對等點同時收到用戶 123 的語音郵件 #1,哪一個“獲勝”? 這需要您引入用於呼叫橋接的前端服務器、用於語音郵件的后端等。而且您仍然存在單點故障或共享組件。

如果您從故障中恢復並且集群需要重新組裝,如果每個對等方都將數據寫入其共享“磁盤”的副本,會發生什么情況? 您是否手動開始協調? 如果同時出現 2 個對等點(雙重活動)怎么辦 - 哪個獲勝並接管? 如果您引入共享磁盤解決方案(DRBD、NFS、iSCSI),那么您就消除了 HA 解決方案中最大和最重要的元素之一:對等自治。 所以尋找“同步”,而不是“共享磁盤”。

FreeSWITCH 最便宜的“HA”解決方案傾向於使用共享虛擬磁盤(例如:DRBD/NFS/SMB)和/或共享通道組。 正如您將在上面讀到的,真正的 HA 解決方案(如 911/PSAP 呼叫中心使用的解決方案)需要完全自主的對等點和呼叫路徑。 有些解決方案開始在各處添加冗余(例如:前端、數據庫、角色服務器等),但它們真正做的是創建多個故障點,無法處理大多數現實世界的故障場景。 而且它們很難維護。

所以現在決定你是想要免費的還是商業的,以及權衡是什么。 高端是HAfs (免費/商業)產品,它沒有共享組件並使用復雜的健康檢測,並且與所有 FreeSWITCH 發行版兼容 - 但需要更多 Linux 技能才能安裝並且根據版本可能更昂貴(更多適用於企業或關鍵任務電話系統)。 另一端是一個(免費腳本)flipit 腳本,它易於安裝,但將其稱為“HA”有點牽強。 雖然您詢問了 AWS,但也有 VMware 提供通用 HA(但它不是 PBX/trunk/SIP/等),您還會發現一些供應商提供 RAID 1 作為 PBX 的“HA”,但這有點牽強。 這個范圍內還有更多產品。 沒有供應商“批准”、“認可”或“認證”任何其他產品,因此您必須在購買前試用。

您還會發現有人提供“容器”作為 HA 解決方案,但這並不是真正的 HA。 容器是部署軟件的便捷方式,您可以准備一個備用的 PBX 容器進行部署; 但是,您沒有同步設置/語音郵件/等,沒有檢測到故障等。

最后,您還會找到對 Kamailio、openSIP、代理等的引用。但是所有這些都會在您的“集群”前面創建一個新的單點(或多點)故障。 然后你必須將 HA 添加到你的 HA 解決方案中,等等。

當你評估產品時,一定要問正確的問題。 沒有一種解決方案適合所有人 - 但 voip-info HA 設計頁面將幫助您了解權衡取舍,如果您需要滿足 911/PSAP 標准或正在構建大容量呼叫中心。 看看高端的 HAfs 產品,如果它是供家庭使用,試試 flipit(我在某處看到一個 AWS 特定版本,但現在找不到)或通用 Linux 集群(結合心跳、rsync 等包,監控. 等也可在 AWS 上使用)。 最后你會發現移動一個浮動的 IP 是最容易上手的事情之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM