近幾年來,互聯(lián)網(wǎng)行業(yè)處于一個(gè)快速發(fā)展的快車道,一個(gè)又一個(gè)風(fēng)口不斷地涌向周邊行業(yè)。共享單車的出現(xiàn)解決了人們出行最后一公里的問題;新零售概念的提出,無人貨柜的出現(xiàn),更是將線上和線下的數(shù)據(jù)打通,優(yōu)化了人們的購物體驗(yàn);以抖音為首的短視頻應(yīng)用,在一夜間爆紅,成為當(dāng)下社交與宣傳的重要載體。
而數(shù)據(jù)中心作為支撐這些業(yè)務(wù)的基礎(chǔ)設(shè)施,其規(guī)模也隨著業(yè)務(wù)的激增逐漸擴(kuò)大,單集群內(nèi)超過數(shù)萬臺服務(wù)器的情況已不再罕見。面對如此龐大的服務(wù)器數(shù)量,在網(wǎng)絡(luò)建設(shè)之初的交換機(jī)網(wǎng)絡(luò)開局已成為網(wǎng)工的夢魘。
一、數(shù)據(jù)中心開局現(xiàn)狀
聚焦于數(shù)據(jù)中心場景,我們先來回顧一下傳統(tǒng)的交換機(jī)網(wǎng)絡(luò)開局流程。
圖1 傳統(tǒng)網(wǎng)絡(luò)設(shè)備開局流程
Step 1: 提前準(zhǔn)備交換機(jī)的版本文件;
Step 2: 根據(jù)部署的架構(gòu)場景選擇對應(yīng)的配置模板;
Step 3: 開始"搬磚",到達(dá)現(xiàn)場,設(shè)備拆箱集中堆放,加電啟動;
Step 4: 使用U盤插到交換機(jī),串口線連接設(shè)備,逐臺進(jìn)行版本升級(若需要);
Step 5: 根據(jù)配置模板結(jié)合實(shí)際設(shè)備的情況進(jìn)行VLAN、IP、路由以及其他基本信息的修訂,然后開始刷配置(另外按照各公司要求,還會協(xié)助收集設(shè)備的SN用于資產(chǎn)管理);
Step 6: 協(xié)調(diào)弱電同學(xué)幫忙搬到機(jī)房上架;
Step 7: 基于Checklist完成連通性的測試工作。
整套流程下來,既耗人力,又耗時(shí)間。據(jù)實(shí)際項(xiàng)目經(jīng)驗(yàn)來看,在不堆疊的前提下完成一臺設(shè)備的升級和配置大約在10分鐘,堆疊情況下由于設(shè)備需要重啟,需要30分鐘才能完成。
總結(jié)來看,對于支撐數(shù)萬臺服務(wù)器集群的數(shù)據(jù)中心網(wǎng)絡(luò)場景,如果按照這種傳統(tǒng)的開局模式來部署,會存在以下幾點(diǎn)不足:
效率低下:靠手工方式進(jìn)行設(shè)備的版本升級、刷腳本,效率非常低;
出錯(cuò)率高:重復(fù)性的工作會導(dǎo)致網(wǎng)工疲于思考,稍有不慎出現(xiàn)失誤,需要額外的時(shí)間用于排查錯(cuò)誤更正,產(chǎn)生一定的時(shí)間損耗。
對此,各廠家做了許多的探索,比如零配置上線技術(shù)。
二、數(shù)據(jù)中心自動化開局
隨著數(shù)據(jù)中心規(guī)模的不斷增大,標(biāo)準(zhǔn)化的建設(shè)方式已經(jīng)成為主流。每個(gè)集群內(nèi)的服務(wù)器以及網(wǎng)絡(luò)設(shè)備的規(guī)模都是固定的,對應(yīng)到網(wǎng)絡(luò)設(shè)備的配置策略也是一致的(當(dāng)然IP等基礎(chǔ)信息會略有不同)。因此,在這樣標(biāo)準(zhǔn)化、規(guī)范化的場景下,我們可以將這些重復(fù)性的、機(jī)械性的工作編成處理邏輯,交給網(wǎng)絡(luò)設(shè)備自己去完成上線工作,進(jìn)而解放人力,同時(shí)也降低了人們出錯(cuò)的風(fēng)險(xiǎn)。
廠商對于自動化上線技術(shù)的開發(fā),主要是利用編程語言(比如Python、Go等)進(jìn)行邏輯處理,讓網(wǎng)絡(luò)設(shè)備自行加載,完成上線,例如ZAM技術(shù)(Zero-configure Automatic Manage)。
交換機(jī)自動化上線的思路:新出廠或空配置的設(shè)備上電啟動后自動向文件服務(wù)器中獲取文件并加載(包括版本文件、配置文件、補(bǔ)丁文件等),實(shí)現(xiàn)設(shè)備的免現(xiàn)場配置、部署,從而避免了運(yùn)維人員重復(fù)地執(zhí)行刷腳本、升級等機(jī)械性操作,提升開局效率。
以ZAM技術(shù)為例,首先要在運(yùn)維端搭建統(tǒng)一的DHCP服務(wù)器和TFTP服務(wù)器(可以是同一臺服務(wù)器),基于架構(gòu)標(biāo)準(zhǔn)化設(shè)計(jì)和項(xiàng)目信息提前生成每臺設(shè)備的完整配置文件以及版本文件,同時(shí)這些文件的文件名需要與設(shè)備的SN關(guān)聯(lián)起來,確保每個(gè)配置文件可以對應(yīng)唯一一臺具體的物理設(shè)備。
圖2 零配置上線方案架構(gòu)
交換機(jī)加電起機(jī)后會主動發(fā)起DHCP請求,通過Option拿到TFTP服務(wù)器的地址以及腳本名稱。通過TFTP的方式下載到腳本文件后,解析并執(zhí)行。然后自動進(jìn)行版本的升級以及配置文件的加載,重啟后完成設(shè)備開局。主要流程如下:
圖3 零配置上線流程
細(xì)節(jié)可以分拆成幾個(gè)階段來理解:
1. DHCP&TFTP獲取階段
1) 設(shè)備加電后,首先判斷自身是否存在配置文件,如果不存在則進(jìn)入ZAM模式;如果存在則正常加載現(xiàn)有配置文件啟動;
2) 進(jìn)入ZAM模式后,會先嘗試從MGMT口上發(fā)起DHCP請求,無應(yīng)答后會從業(yè)務(wù)口上廣播該請求報(bào)文。DHCP Server在回應(yīng)報(bào)文中通過Option66(或者150)、67選項(xiàng),將TFTP Server的IP以及Python腳本名稱同步給設(shè)備;
圖4 典型的DHCP配置
3) 交換機(jī)設(shè)備(需要支持Python的運(yùn)行環(huán)境)進(jìn)行Python腳本的下載。
2. 自動化執(zhí)行階段
1) 初始化:
首先要進(jìn)行初始化,與此同時(shí)要清空之前運(yùn)行過的本地文件,目的是為了避免那些通過錯(cuò)誤邏輯模塊到達(dá)該處時(shí)文件錯(cuò)亂的情況,因此需要執(zhí)行初始化操作;
2) 上傳SN:
初始化完成后需要上傳設(shè)備自身的SN到指定的目錄下,目的是提示TFTP Server該設(shè)備已經(jīng)開始啟動。即上傳 [sn]. ZAM到 /ZAM_STARTUP/, 若上傳失敗則寫"0"到/etc/zam.txt (通告zam執(zhí)行失。,退出;
3) 配置參數(shù)文件下載:
上傳SN之后,會基于SN去下載對應(yīng)的配置參數(shù)文件(.PARAM格式),下載路徑在代碼中已經(jīng)寫好,若下載失敗則跳到錯(cuò)誤處理;
4) 配置參數(shù)文件解析:
下載成功后解析該文件,判斷是否需要升級版本,若解析失敗則跳到錯(cuò)誤處理;
5) 配置文件下載:
通常情況下,腳本中會默認(rèn)寫好配置文件的下載路徑,設(shè)備會基于SN到該路徑下載配置文件 [sn].CFG, 若下載失敗跳到錯(cuò)誤處理;
6) 版本文件下載:
如果配置參數(shù)文件中存在bin文件的標(biāo)識,則到指定的路徑去進(jìn)行bin文件的下載,若下載失敗則跳到錯(cuò)誤處理;
7) 版本文件升級:
如果存在bin的文件,則進(jìn)行升級bin文件,若升級失敗則跳到錯(cuò)誤處理;
8) 配置文件重命名:
執(zhí)行代碼做配置文件的重命名,更改成config.txt的格式后重啟(不同廠家配置文件命名不同,這里以銳捷為例);
9) 設(shè)備重啟加載:
重啟設(shè)備后則再次進(jìn)行配置文件的判斷,發(fā)現(xiàn)此時(shí)存在配置文件,則不進(jìn)入ZAM模式,正常加載配置文件并啟動。
3. 信息同步校驗(yàn)階段
1) 成功處理:
設(shè)備成功上線后
A. 上傳 [sn].log 到 /ZAM_LOG/
B. 上傳 [sn].ok 到 /ZAM_STATUS/
C. 寫"1"到/etc/zam.txt (通告zam執(zhí)行成功)
D. 清空本地本次執(zhí)行相關(guān)文件([sn].CFG, [sn].ZAM, [sn].params, [sn].ok, [sn].error)
圖5 ZAM文件夾目錄
圖6 成功執(zhí)行ZAM流程
2) 失敗處理
主邏輯任意一個(gè)節(jié)點(diǎn)發(fā)生故障,跳到故障處理時(shí),執(zhí)行下列動作
A. 上傳 [sn].log 到 /ZAM_LOG/
B. 上傳 [sn].error 到 /ZAM_STATUS/
C. 寫"0"到/etc/zam.txt(通告zam執(zhí)行失。
D. 清空本地本次執(zhí)行相關(guān)文件([sn].CFG, [sn].ZAM, [sn].params, [sn].ok, [sn].error)
三、探索創(chuàng)新
隨著網(wǎng)絡(luò)設(shè)備對于類似Python的高級編程語言環(huán)境的支持愈加成熟,零配置上線技術(shù)在IDC場景中得到了普遍的應(yīng)用。一方面加快了設(shè)備的開局速度,降低了人為操作失誤的風(fēng)險(xiǎn),節(jié)省人力投入;另一方面,對于后期設(shè)備的運(yùn)維工作(比如擴(kuò)容、故障替換等),只需要上報(bào)或者替換SN就可以自動完成加載,也不需要人工的參與。
那么,除了IDC場景有這樣的需求之外,對于其他場景,是否也存在類似的運(yùn)維痛呢?
銳捷網(wǎng)絡(luò)秉承著創(chuàng)新、探索與實(shí)踐的思路,在新零售門店場景,也做了深入的市場調(diào)研與分析。
最近火爆的新零售門店,其特點(diǎn)就是數(shù)量眾多,業(yè)務(wù)的激增導(dǎo)致開店速度尤其快。但是門店不會有專業(yè)的運(yùn)維同學(xué)駐場,所以網(wǎng)絡(luò)開局時(shí)需要網(wǎng)工四處出差;日常遇到故障,如果遠(yuǎn)程不能解決也需要網(wǎng)工到現(xiàn)場處理,人力投入極大。
對此,聚焦于新零售門店場景,我們基于數(shù)據(jù)中心零配置開局的思路進(jìn)行創(chuàng)新,致力于打造全新的自動化門店網(wǎng)絡(luò)解決方案,提升新零售門店網(wǎng)絡(luò)開局和運(yùn)維的效率,減少人力服務(wù)成本。
圖7 自動化門店網(wǎng)絡(luò)解決方案封面
目前我們正在和新零售客戶積極的探索和實(shí)踐中,敬請期待。如果有相關(guān)建議和思路,也歡迎留言互動,共同探討。
本期作者:劉洋
銳捷網(wǎng)絡(luò)互聯(lián)網(wǎng)系統(tǒng)部行業(yè)咨詢
感謝您關(guān)注銳捷網(wǎng)絡(luò)技術(shù)干貨文章!現(xiàn)誠邀您參與有獎?wù){(diào)研,您寶貴的意見和建議將幫助我們在技術(shù)探索與分享上持續(xù)精進(jìn)。
點(diǎn)擊下方鏈接參與調(diào)研。
http://survey.ruijie.com.cn/jq/26535756.aspx