1. 程式人生 > >SylixOS多路網卡冗余管理簡介

SylixOS多路網卡冗余管理簡介

網卡冗余;sylisos

1.多路網卡冗余管理模塊概述

為了保證系統網絡的可靠性,實現冗余設備熱切換是一種常見的方法。SylixOS支持的多路網卡冗余管理模塊是一款網卡故障保護管理模塊。它提供一種故障保護機制,對網絡設備進行冗余備份,當其中一個設備由於某種原因不能正常工作時,另一個設備馬上就可以代替這個設備完成相同的功能,有效的防止了網絡堵塞、網線斷開、網絡接口連接器松動、設備硬件故障等導致的網絡通信故障。

2.多路網卡冗余管理模塊功能

其主要功能有:

  • 輪詢機制,通過不間斷定時檢測的方式,檢測網絡設備狀態;

  • 中斷機制,通過狀態變化中斷的方式,啟動中斷處理任務,通知檢測網絡設備狀態;

  • 心跳機制,通過檢測上一次報文接收時間和當前時間差值,判斷網絡設備狀態;

  • 通過shell命令添加和刪除網卡冗余。

3.多路網卡冗余管理模塊特點

  1. "毫秒級"切換速度

    多路網卡冗余管理模塊支持中斷方式檢測,可以迅速響應物理鏈路連接斷開導致的網絡通信故障並立即切換網絡設備,切換時間可以達到1ms左右。

  2. 支持多路網卡冗余

    多路網卡冗余管理模塊支持添加多組網卡冗余,分別檢測各組網卡冗余並及時進行網絡設備切換。

  3. 準確的網絡狀況識別

    網絡通信故障除了網線斷開、網絡接口連接器松動等硬件故障外,網絡堵塞同樣會導致網絡無法正常通信,降低系統網絡可靠性。多路網卡冗余管理模塊針對網絡堵塞這類問題,添加了"心跳機制"檢測,當一段時間內沒有發生網絡通信時,認為發生網絡堵塞,自動切換到另一網卡設備,保證網絡正常通信。超時時間由用戶設置。

  4. Shell命令控制

    多路網卡冗余管理模塊通過shell命令開啟和關閉指定網卡冗余,還可以通過shell命令設置心跳機制超時時間、設置輪詢機制輪詢檢測時間等。


    4.多路網卡冗余管理模塊實現機制


    4.1整體框架

    多路網卡冗余管理方案設計思路為:創建一個虛擬網絡接口,通過虛擬網絡接口中對私有成員和網絡驅動函數的替換,實現控制不同的物理網卡進行數據發送和接收,如圖 4.1所示:

    技術分享圖片

    圖 4.1 虛擬網絡接口

    多路網卡冗余管理功能實現後,網絡通信框圖改變為如圖 4.2所示:

    技術分享圖片

    圖 4.2 網絡通信框圖


    4.2輪詢機制檢測模塊

    輪詢機制的實現方法是在模塊初始化後,啟動一個監測線程。該線程的功能是對綁定的網絡設備進行不間斷定時檢測,當發現網絡設備物理鏈路連接斷開時,就切換到另一個網絡設備上。系統檢測網絡設備的時間間隔,可以根據系統需要進行調整,在不影響性能的前提下盡量減少故障恢復時間。


    4.3中斷機制檢測模塊

    中斷機制是軟硬結合的一種方法,需要硬件支持。其具體實現方法是,首先硬件支持連接狀態變化中斷,當連接狀態變化時,啟動中斷處理任務,通知檢測網絡設備狀態,當發現網絡設備物理鏈路連接斷開時,就切換到另一個網絡設備上。


    4.4心跳機制檢測模塊

    心跳機制的實現方法是在模塊初始化後,記錄綁定網卡每一次報文接收時的時間,並啟動一個監測線程。該線程的功能是比較上一次報文接收時間和當前時間的差值。當差值大於用戶指定的超時時間後,認為當前工作的網絡設備由於某種原因不能正常工作,立即切換到另一個網絡設備上。


    4.5物理網卡切換模塊

    當檢測模塊檢測到當前工作的網絡設備無法正常工作時,就會調用物理網卡切換模塊進行網絡設備切換。其具體實現方法是,將虛擬網絡接口的私有數據指針和發送回調函數替換為另一個網絡設備的私有數據指針和發送回調函數,並將該網絡設備的接收回調函數替換為網卡冗余模塊中的接收回調input函數,最後將數據通過虛擬網絡接口上傳至協議棧。


SylixOS多路網卡冗余管理簡介