當前備份軟件比較流行,其中用到的關鍵技術是IP 地址漂移, 實際上IP地址漂移技術是利用共享的“虛擬”IP地址,當本地進行節點切換與路由切換,使另一端的發送和收方端沒有感覺到本地節點地址有變化,保證了通信的連續性,起到斷點保護的功效。
舉例說明:假設最簡單的主從方式、單網卡的情況下,雙機系統要占用3個網絡地址。主機一地址為200.10.20.1,主機二的地址為200.10.20.2, 同時,還應該有一個“虛擬”IP地址,該地址為工作IP地址,用來做“漂移”,即工作地址為200.10.20.3。 在分配IP地址時,要分清工作IP地址和主機自有地址。正常情況下,工作主機的自有地址是被工作地址取代的(若主機一在工作,主機一的地址由200.10.10.1變為200.10.10.3)。在發生主機切換的情況下,主機一的地址恢復為200.10.10.1,而主機二的地址會由200.10.10.2變為200.10.10.3,這就是我們所說的地址漂移。
采用地址漂移技術, 利用虛擬IP地址來綁定主服務器,可有效解決不能利用組播的情況下多台服務器集群之間的信息交互問題。此方法具有一定的代表性,在很多行業可以采用雙機集群方式廣泛應用於工業控制、重要事件的備份。兩台中心服務器通過網絡構成一套高可靠性雙機熱備份系統,同步工作、互為備份,當主機發生故障時,自動切換到備機工作,系統不間斷運行。而地址漂移技術是當其中一台主機有故障時,另一主機接管故障主機的網絡IP地址,使網絡仍能正常運行。
通常系統采用雙機熱備軟件或雙活技術,具有負載均衡功能,將信息處理、數據庫記錄、進程監控等各項功能在兩台服務器間進行動態分配,主服務器主要負責完成信息處理、進程監控等,備用服務器完成數據庫的記錄工作。當主服務器發生故障后,能夠進行檢測並告警,自動將主服務器上的信息處理和進程監控等應用轉移到備用服務器上繼續處理,備用服務器切換為主服務器,先前的數據庫記錄應用仍然保留。雙服務器主要用來工業控制數據采集或SCADA系統的數據通信與處理。
一般情形下,雙服務器都有各自的IP地址,如果選擇其中一台服務器IP地址進行通信,當此服務器出故障將無法接收信息時,這就為通信之間采用哪一個IP地址來交換信息造成選擇困難。解決多台服務器集群間信息交互的辦法有三個: 一是采用組播,該方法最簡單。只要將兩台計算機加入一個組播地址,則發送方將目的地址設置為此組播的IP地址即可,雙服務器都能夠收到包文,但對於雙向系統而言,在應用層要解決的問題比較多,人為地將系統復雜化,簡單的應用可以采用,但復雜的情形下此方法不可行。二是采用一份數據分別多次傳遞相應的多台服務器,雖然這樣能夠保證多台服務器均能夠收到數據,但是對網絡的占用時間、數據的同步性和實時性帶來了新的問題,如果在傳輸數據量大時,造成帶寬浪費,信道無法承受。 三是采用地址漂移技術,假設兩地A節點與B節點要進行通信業務,每個節點有三台服務器做集群,先給A節點與B節點分配相應的虛擬IP 地址a和b,兩地A、B之間傳遞數據采用a和b地址,A節點的
主服務器與a地址綁定,B節點的主服務器與b地址綁定。同時在主服務器啟動一個三通進程,所謂三通進程是指此進程負責接收信息,然后將收到的信息分別轉發到集群內兩台服務器。主服務器收到數據后,送往局域網內主服務器和備服務器的接收進程。當主機切換為備機時,此服務器卸載此虛擬IP地址,切換為主機的服務器加載虛擬IP地址,並啟用三通進程 負責接收和分發數據。虛擬IP地址在主備服務器之間漂移,也稱之為地址漂移技術,目前很多集群軟件也采用此技術來解決集群內多台計算機只有惟一IP地址的問題。
技術實現地址漂移需要涉及一些關鍵技術。
當主機加載虛擬IP地址后,必須利用ARP協議包通知路由器,告訴路由器虛擬IP地址在哪台主機上,這樣當路由器收到目的地址為虛擬IP時,會自動將數據包傳遞給主用計算機。 有兩種方式可產生ARP 數據包: 一是通過程序生成ARP數據包,並由鏈路層接口發送給路由器,這需要對網絡編程、特別是鏈路層編程有一定經驗的技術人員才可以實現。二是利用ARP命令,在程序中執行system(“arp”)即可,將本計算機的ARP表發送給局域網內的路由器。
路由器收到ARP數據包后,將MAC地址和IP地址的配對更新,當路由器接收到數據后,根據ARP表來尋找虛擬IP地址所在計算機的MAC地址,重新指定路由。
建立三通進程,負責接收數據,並將接收的數據分發給備份服務器。通常將三通進程作為系統守侯進程,這樣它隨着操作系統的啟動而自動執行,增強其可靠性。