引言
隨著計算機系統和網絡的不斷普及,數據作為開展業務不可缺少的基礎,其安全性成為了各公司、政府機構等需要考慮的問題。傳統的數據容災系統往往提供基于邏輯卷的備份能力,當客戶服務器數據被破壞或者丟失后,可以通過遠程存儲服務器提供數據的在線恢復,但是這種方式仍然無法避免服務中斷給企業造成的損失。服務級容災技術雖然可以提供服務級上的數據一致性和服務連續性,但是系統實現往往過于復雜,從傳統的數據容災系統遷移到服務容災系統的成本也比較大。
文中提出了一種基于遠程數據容災系統的服務漂移方案。當客戶服務器出現故障或者數據被破壞時,另一個鏡像服務器可以通過isCSI協議發起對存儲服務器上對應邏輯卷的連接請求,當虛擬邏輯建立后利用存儲服務器上的數據繼續提供服務。待客戶服務器的故障修復或數據恢復后,再將服務切換回客戶服務器。該方案拓展了傳統數據容災系統的功能,使其可以實現服務級別的容災,也為企業從數據容災系統遷移到服務容災系統提供了一種可行的方案。
1服務漂移的原理與實現
1.1 iSCSI介紹
iSCSI是Intemet小型計算機系統接口(InternetSmall Computer System Interface)的簡稱。如圖1所示,iSCSI是一種基于TCP/IP的協議,用來建立和管理IP存儲設備、主機和客戶機等之間的相互連接,并創建存儲區域網絡SAN。iSCSI的主要功能是在TCP/IP網絡上的主機系統(啟動器Initiator)和存儲設備(目標器Target)之間進行大量數據的封裝和可靠傳輸過程。此外,iSCSI提供了在IP網絡封裝SCSI命令,且運行在TCP上。
圖1 iSCSI結構圖
iSCSI的工作過程是:當iSCSI主機應用程序發出數據讀寫請求后,操作系統會生成一個相應的SCSI命令,該SCSI命令在iSCSI Initiator層被封裝成iSCSI消息包并通過TCP/IP傳送到設備端,設備端的iSCSItarget層會解開iSCSI消息包,得到SCSI命令的內容,然后傳送給SCSI設備執行;設備執行SCSI命令后的響應,在經過設備端iSCSI Target層時被封裝成iSCSI響應包,通過TCP/IP網絡傳送給主機的iSCSI Initiator層,iSCSI Initiator會從ISCSI響應包里解析出SCSI響應并傳送給操作系統,操作系統再響應給應用程序。
在服務漂移系統中,鏡像服務器用于在客戶服務器故障時代替其提供服務。鏡像服務器上所有對于數據的訪問請求都通過iSCSI Initiator封裝成TCP數據包,然后通過IP網路發送給存儲服務器。存儲服務器上iSCSI Target解封TCP數據包,執行數據訪問請求,然后把結果封裝成TCP數據包發送回去。通過這種方式在鏡像服務器和存儲服務器建立一種虛擬的邏輯卷鏈接,所有數據的實際操作在存儲服務器上執行,而操作的發起卻在鏡像服務器上,這樣保證了存儲服務器上的數據可以一直保持最新。
1.2系統結構
服務漂移要求當客戶服務器由于各種原因中斷運行時,可以由鏡像服務器代替其提供同樣的服務,并且能夠保證數據和服務訪問地址的一致性。服務漂移的實現應該包括為3部分:請求的重定向、數據的同步以及服務的啟用。
圖2顯示了服務漂移的系統架構。
圖2 包含服務漂移功能的容災系統架構圖
1.2.1客戶服務器
客戶服務是數據生產中心,客戶服務器上產生的數據通過Internet實時地備份到遠程存儲服務器中。
1.2.2網關服務器
網關服務器處于客戶服務器和外部網絡之間,將來自外部網絡的服務請求定向到客戶服務器,同時保護客戶不受外部攻擊。當客戶服務器服務中斷時,網關負責將服務請求定向到鏡像服務器。
1.2.3任務管理主機
任務管理主機可以是任何一臺接入Internet的主機,它通過Web界面和ActiveX控件分別與存儲服務器、客戶服務器進行通信,實現對于備份任務的遠程管理。
1.2.4數據庫服務器
數據服務器用于提供數據庫服務和Web訪問服務。關于任務的配置信息保存在數據庫中,其他模塊在初始化時可以通過訪問數據庫獲得任務的基本信息和狀態。同時數據庫服務也提供Web訪問服務,方便用戶遠程管理任務。
1.2.5存儲服務器
存儲服務器用于保存客戶服務器上的邏輯卷鏡像。它不斷接受來自客戶服務器上的實時備份數據,并寫人到對應邏輯卷鏡像。同時對于指定任務還可以執行數據同步、數據恢復等工作。
1.2.6鏡像服務器
鏡像服務器用于在客戶服務器出現故障無法提供服務時,代替客戶服務器提供服務。通過iSCSI協議將對邏輯卷的訪問請求轉發到存儲服務器上對應的邏輯卷鏡像。
1.3模塊實現
如圖3所示,包含服務漂移功能的容災系統包括三個子系統:數據存儲子系統、配置管理子系統、服務漂移子系統。
圖3 容災系統模塊結構
1.3.1數據存儲子系統
數據存儲子系統包括客戶端和服務器端的存儲模塊,提供客戶服務器和存儲服務器之間的實時備份、數據同步、數據恢復、離線數據導出等功能。
1.3.2配置管理子系統
配置管理主要為用戶提供給予Web的遠程管理界面,通過ActiveX和客戶端消息處理模塊實現控件和客戶服務器的通信。
1.3.3服務漂移子系統
服務漂移子系統主要負責當客戶服務器中斷服務時,啟動鏡像服務器上對應的服務,并將對于指向原客戶服務的服務請求重新定向到鏡像服務器。
1.4服務漂移過程
容災系統在正常工作情況下,存儲服務器和客戶服務器會保持定時的通信,以確定對方處于正常的工作狀態。當客戶服務器出現故障或災難時,存儲服務器會在檢測到客戶服務器長時間沒有返回消息后判斷客戶服務器出現了故障,并且在界面上通知用戶。
用戶通過配置管理子系統啟動服務漂移過程。如圖4所示,服務漂移過程的啟動主要經過三個階段:客戶服務器和存儲服務器之間iSCSI連接的建立、鏡像服務器上服務腳本的啟動、網關服務器的請求重定向。
1.4.1iSCSI連接的建立
存儲服務器在收到配置管理系統的消息后,首先會停止對于該客戶服務器對應邏輯卷的更新,并將對應任務調整為停止狀態。同時存儲服務器使用iSCSITarget工具建立一個iSCSI目標,并將該任務對應邏輯卷加人到該iSCSI目標中。在存儲服務器完成這些操作后,由鏡像服務器上的iSCSI Initiator工具發起對存儲服務器上iSCSI目標的連接。
1.4.2服務腳本的啟動
為了保證鏡像服務器上能夠提供和客戶服務器上相同的服務,并且保持數據的一致性,需要執行一系列的服務啟動腳本。服務啟動腳本的作用主要作用如下:發起iSCSI連接請求,建立和存儲服務器的邏輯卷連接;然后凋用系統API將連接的邏輯卷掛載到指定的盤符;啟動與客戶服務器上相同的服務進程(如Web服務器、FTP服務器等等)。
圖4 服務漂移的流程圖
1.4.3服務重定向
當完成以上兩個過程后,鏡像服務器已經能夠替代客戶服務器提供連續性的服務了。最后的服務重定向過程配置網關服務器將目前定位到客戶服務器的服務請求重定向到鏡像服務器。位于網關服務器上的重定向模塊通過運行iptables工具將所有指向原客戶服務器的請求轉發到鏡像服務器。
2性能測試
對于服務漂移系統的評估從兩個方面考慮:一是服務漂移切換的時間,時間越短對于服務中斷的影響越小,系統的性能也越好;二是服務漂移之后服務器的10性能,因為漂移是通過iSCSI實現遠程數據讀寫的,10性能可能不可能達到原來的磁盤直接讀取速度,漂移后的IO性能越高說明系統的性能越好。
測試環境的存儲服務器為Intel Xeon 2. 8Nz雙核CPU, 512MB內存,希捷ST3500630AV 7200轉硬盤,Intel 82541GI網卡。其他服務均為普通PC機。試驗環境下主要測試服務漂移速度和漂移后磁盤IO性能,數據如下:
在服務漂移的性能測試中,分別針對了200m到3200m數據進行了讀寫測試。結果如圖5所示,漂移之前原始邏輯卷的讀寫平均速度為28~29MB/s,漂移后通過iSCSI讀寫IO的平均速度為1OMI3/s。造成這樣的主要原因在于本系統使用的是百兆網卡,理論上的最高下行速度為12. SMB/s,所以iSCSI傳輸速度實際上已經達到了網卡傳輸速度的上限。雖然目前漂移后iSCSI的性能比起原始磁盤的讀取速度還有一定差距,但是在使用了千兆網卡后性能還能夠獲得進一步的提升。
圖5 服務漂移的性能測試
在服務漂移切換時間的測試中,啟動腳本主要執行兩個操作,一是啟動Windows Server2003上的IIS服務,二是啟動Microsoft SqlServer服務。結果如圖6所示,服務漂移的平均切換時間為17.2s,這樣的切換時間能夠比較快速地完成服務漂移的切換,不會對服務中斷造成太大的影響。
圖6 服務漂移的切換時間測試
3結束語
提出并實現一種基于現有數據容災系統的服務漂移方案,該服務漂移功能可以在客戶服務器遭到災難或故障時有效地實現服務連續性和數據一致性,并且具有較快的服務切換時間和,在IO性能上也具有較大的提升潛力。該方案是對現有數據容災系統功能一個有力的擴充,適合作為中小型系統的服務容災方案。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于數據容災系統的服務漂移實現