近幾年來,互聯網行業處于一個快速發展的快車道,一個又一個風口不斷地涌向周邊行業。共享單車的出現解決了人們出行最后一公里的問題;新零售概念的提出,無人貨柜的出現,更是將線上和線下的數據打通,優化了人們的購物體驗;以抖音為首的短視頻應用,在一夜間爆紅,成為當下社交與宣傳的重要載體。
而數據中心作為支撐這些業務的基礎設施,其規模也隨著業務的激增逐漸擴大,單集群內超過數萬臺服務器的情況已不再罕見。面對如此龐大的服務器數量,在網絡建設之初的交換機網絡開局已成為網工的夢魘。
數據中心開局現狀
聚焦于數據中心場景,我們先來回顧一下傳統的交換機網絡開局流程。
▲傳統網絡設備開局流程
Step 1:提前準備交換機的版本文件;
Step 2:根據部署的架構場景選擇對應的配置模板;
Step 3:開始“搬磚”,到達現場,香港服務器租用,設備拆箱集中堆放,加電啟動;
Step 4:使用U盤插到交換機,串口線連接設備,逐臺進行版本升級(若需要);
Step 5:根據配置模板結合實際設備的情況進行VLAN、IP、路由以及其他基本信息的修訂,然后開始刷配置(另外按照各公司要求,還會協助收集設備的SN用于資產管理);
Step 6:協調弱電同學幫忙搬到機房上架;
Step 7:基于Checklist完成連通性的測試工作。
整套流程下來,既耗人力,又耗時間。據實際項目經驗來看,在不堆疊的前提下完成一臺設備的升級和配置大約在10分鐘,堆疊情況下由于設備需要重啟,需要30分鐘才能完成。
總結來看,對于支撐數萬臺服務器集群的數據中心網絡場景,如果按照這種傳統的開局模式來部署,會存在以下幾點不足:
效率低下:靠手工方式進行設備的版本升級、刷腳本,效率非常低;
出錯率高:重復性的工作會導致網工疲于思考,稍有不慎出現失誤,需要額外的時間用于排查錯誤更正,產生一定的時間損耗。
對此,各廠家做了許多的探索,比如零配置上線技術。
數據中心自動化開局
隨著數據中心規模的不斷增大,標準化的建設方式已經成為主流。每個集群內的服務器以及網絡設備的規模都是固定的,對應到網絡設備的配置策略也是一致的(當然IP等基礎信息會略有不同)。因此,在這樣標準化、規范化的場景下,我們可以將這些重復性的、機械性的工作編成處理邏輯,交給網絡設備自己去完成上線工作,進而解放人力,同時也降低了人們出錯的風險。
廠商對于自動化上線技術的開發,主要是利用編程語言(比如Python、Go等)進行邏輯處理,讓網絡設備自行加載,完成上線,例如ZAM(Zero-configure Automatic Manage, 零配置自動管理)技術。
交換機自動化上線的思路:新出廠或空配置的設備上電啟動后自動向文件服務器中獲取文件并加載(包括版本文件、配置文件、補丁文件等),實現設備的免現場配置、部署,從而避免了運維人員重復地執行刷腳本、升級等機械性操作,提升開局效率。
以ZAM技術為例,首先要在運維端搭建統一的DHCP服務器和TFTP服務器(可以是同一臺服務器),基于架構標準化設計和項目信息提前生成每臺設備的完整配置文件以及版本文件,同時這些文件的文件名需要與設備的SN關聯起來,確保每個配置文件可以對應唯一一臺具體的物理設備。
▲零配置上線方案架構
交換機加電起機后會主動發起DHCP請求,通過Option拿到TFTP服務器的地址以及腳本名稱。通過TFTP的方式下載到腳本文件后,解析并執行。然后自動進行版本的升級以及配置文件的加載,重啟后完成設備開局。主要流程如下:
▲零配置上線流程
細節可以分拆成幾個階段來理解:
DHCP&TFTP獲取階段
設備加電后,首先判斷自身是否存在配置文件,如果不存在則進入ZAM模式;如果存在則正常加載現有配置文件啟動;
進入ZAM模式后,會先嘗試從MGMT口上發起DHCP請求,無應答后會從業務口上廣播該請求報文。DHCP Server在回應報文中通過Option66(或者150)、67選項,將TFTP Server的IP以及Python腳本名稱同步給設備;
▲典型的DHCP配置
交換機設備(需要支持Python的運行環境)進行Python腳本的下載。
自動化執行階段
初始化: