技術實踐|高斯集群服務器雙缺省網關故障分析
導語:當前國產化數據庫使用范圍越來越廣泛,在GaussDB數據庫的使用過程中難免會遇到一些問題,有的問題是由于在安裝過程中沒有注意細節而產生的,多數隱患問題都是在特定場景下才會暴露出來,且暴露的時間未知,這就給數據庫的運維工作帶來極大的挑戰。
本文就是基于一次數據庫安裝過程中出現的故障而形成的,文中主要闡述了網絡基礎知識、數據庫環境、故障分析、問題解決、總結等內容,供各位同僚在日后的服務器安裝過程中參考借鑒。
網絡基礎知識介紹
■路由(Routing):是指IP數據包從源到目的地時,端到端路徑的網絡范圍,通俗解釋:數據包由源地址到目的地址所經過的所有路徑的集合。
■ 網關(Gateway):可以用于廣域網互連,也可以用于局域網互連。網關是一種充當轉換重任的網絡設備。要實現這兩個網絡之間的通信(跨網段訪問),則必須通過網關。
■ 缺省網關(Default Gateway):是一臺主機如果想和其他網段的主機通信,但找不到可用的路由,就把數據包發給缺省網關。
■ 默認路由(Default route):是對IP數據包中的目的地址找不到存在的其他路由時,所選擇的最后的路由。
■ 三層交換機(L3 Switch):具有部分路由器功能的交換機,工作于OSI網絡標準模型的第3層(網絡層)。三層交換機最重要的目的是加快局域網內部的數據交換,所具有的路由功能也是為這一目的服務的,能夠做到一次路由,多次轉發。在局域網中一般三層交換機充當網關。
■ 二層交換機(L2 Switch):工作于OSI網絡標準模型的第2層(數據鏈路層),故而稱為二層交換機。二層交換機屬數據鏈路層設備,可以識別數據幀中的MAC地址信息,并根據MAC地址進行轉發,同時將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。局域網內部(相同網段)主機相互訪問需要經過二層交換機。
■ 雙(多)網關主機:一臺服務器存在多個網關,訪問不同的網段經過不同的網關。
網絡基本示例圖

基于上面的拓撲圖,當網段A的服務器A要訪問網段B的服務器B時,就需要經過網關D,如圖中的紅色虛線所示,這個虛線就是路由,因為服務器A連接2個網關,如果服務器A把IP數據包發送給網關C,那么服務器A和服務器B之間肯定是無法通信的。
以上內容為對于網絡基礎知識的介紹,接下來將進入本文的重點——高斯集群服務器的雙缺省網關故障分析。
數據庫集群環境描述
高斯數據庫版本A8.0.0.5,共2(管理節點)+21(數據節點)臺物理節點,7個安全環,每個安全環3臺數據節點。
CN節點4個,每個數據節點有2個主DN節點、2個備DN節點、2個從DN節點。
每臺物理機有96核心CPU,1TB內存。
管理面和業務面的網絡都為雙萬兆網口,管理面網段:172.18.10.0/24,業務面網段:172.18.20.0/24,數據庫服務器雙網口,Bond1:業務面,Bond0:管理面。
集群簡單拓撲圖

問題描述
某日重啟高斯集群的CN1服務器(一臺CN節點)后,當執行跑批作業時收到告警,ETL服務器上跑批作業部分失敗,報錯中發現ETL服務器在CN1節點執行的作業都失敗了,但在其他三個CN節點執行的作業都正常,登錄ETL服務器后,手動Telnet CN1節點的25308端口不通,Telnet其他3個CN節點正常。
問題檢查
根據問題描述,初步判斷只有CN1節點出現問題。
■ 在ETL服務器上抓取數據包,發現數據包可以正常發送,但ETL服務器沒有收到CN1節點的回包


■ 在CN1節點抓取數據包,可以接收到ETL主機的數據包,也可以正常發送回包


■ 查看其他CN服務器路由


■ 查看CN1服務器路由


問題分析
檢查主機路由發現CN1服務器的默認路由和其他3臺CN服務器不同,CN1服務器bond1的Metric值為301,而其他CN服務器bond1的Metric值為300,根據路由選擇的優先級規則,Metric值越小優先級越高,所以CN1服務器的缺省網關為bond0,其他CN服務器的缺省網關為bond1。
分析到此故障原因已經發現,CN1的缺省網關是bond0,默認路由指向管理面的三層交換機,所以返回ETL服務器的IP數據包都發送到管理面網段,導致ETL服務器不能收到回包。
實際ETL服務器和CN1數據包的路由如下圖的紅色虛線所示:


問題總結
服務器的缺省網關一般情況下只有一個,當服務器的缺省網關有多個時,就會根據Metric值來進行優先級選擇,優先級高(Metric值最小)的即為此時的缺省網關。
此案例中的解決方法有多種,其中的兩種方案如下:
■ 管理面網段取消默認網關配置,業務面網段配置默認網關,FI控制臺網段(10.10.10.0/24)的主機在高斯集群服務器中,均配置靜態路由。
■ 管理面網段取消默認網關配置,業務面網段配置默認網關,管理面三層交換機中做雙向NAT轉換,把FI控制臺主機的IP地址(10.10.10.100)映射為管理面網段(172.18.10.0/24)的IP地址。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。










