天天看點

阿裡雲200G雲專線實戰總結

今年因為項目需要,在阿裡雲開了300多台ECS機器做計算,計算生成的資料需要下載下傳到本地機房的伺服器硬碟裡儲存,用到了阿裡雲高速通道、ECS高性能計算、IDC網絡架構、任務排程等技術,項目持續了兩個月,期間學習和解決了一些問題,也踩了一些坑,今天把項目中遇到的問題及解決方案整理出來,供大家參考。

說明:25GB資料=200Gbps帶寬 / 8Byte

需求很簡單,使用高頻CPU計算資料,然後把每秒産生的25GB資料下載下傳到本地機房的機械硬碟裡存儲。

其中的關鍵問題有:

1、300台ECS機器的排程問題

每秒需要計算的資料量巨大,單台ECS肯定完不成,需要數百台機器同時計算,管理這些機器和計算任務是一個問題。

2、每秒25GB資料網絡傳輸問題

25GB資料需要使用200Gbps帶寬,傳輸如果用公網流量費用會高的吓人,而且會嚴重影響城市骨幹網絡的穩定。隻能使用專線,阿裡雲單條專線最大隻有100G,我們用了兩條100G專線。

3、每秒25GB的存儲問題

除了解決計算和傳輸問題,存儲也是個大問題,企業級機械硬碟的讀寫速度隻有120MB/s,單塊硬碟肯定接不住,需要在IDC機房組建伺服器叢集下載下傳資料。

4、下載下傳任務的排程問題

因為在阿裡雲使用了數百台ECS伺服器,每台機器計算任務完成時間不同,下載下傳時間也會不同,還要考慮每台ECS的配置不同,這塊就踩了一個巨大的坑,後面會講細節。

阿裡雲200G雲專線實戰總結

具體方案:

首先要在阿裡雲申請開通高速通道(專線服務),申請通過後才可以進入阿裡雲機房施工(拉專線),施工費:15000元/次,100G的專線費用:33900元/月。以上完成後就可以進入阿裡雲機房和自己的機房施工了。

從阿裡雲機房拉一條光纖到自己機房的交換機上,交換機選用華為的百G交換機,伺服器網卡通過pci-e接口都換成了萬兆網卡,交換機到伺服器使用萬兆網線。每台交換機下面挂20台萬兆伺服器,主要是保證能把100G的專線接滿,還要考慮伺服器當機,掉盤等情況,是以每台交換機的伺服器至少在10台以上。

為了能跑滿單條100G的專線,伺服器全部安裝pci-e的萬兆網卡,使用的是14T機械硬碟,磁盤讀寫平均在120MB/s,每台機器萬兆帶寬,就是1250MB/s的資料,至少需要安裝11塊硬碟。

任務排程和下載下傳服務需要解決的問題:

1、給每台ECS配置設定任務,并監控任務的狀态

2、将完成的任務資訊上傳到資料庫,包括:伺服器ip、任務名稱、檔案名稱、檔案路徑

3、線下機房每台伺服器中安裝下載下傳腳本,處理下載下傳任務

4、下載下傳腳本擷取本機磁盤空間,根據剩餘空間排序,遠端下載下傳檔案

5、下載下傳完成後上報資料庫,修改檔案狀态,并通知ECS伺服器删除此檔案

我們使用Python+MySql開發了上述的任務排程系統,使用Python開發腳本部署在每台伺服器處理下載下傳任務,檔案下載下傳使用的scp指令。

遇到的最大坑,整個架構運作後總是達不到200Gbps,我們檢查了IDC的兩台百G交換機,檢查了萬兆網卡,檢查了磁盤讀寫速度、檢查了萬兆網線、檢查了兩條百G專線,整個網絡鍊路和裝置都可以達到理想性能,但是整體性能到不了,導緻任務擁堵。經過一天排查發現是阿裡雲ECS的單機網卡問題導緻的,原因是不同配置的ECS,上行和下行帶寬大小是不一樣的,有的機器是10Gbps,有的隻有1Gbps,後來我們修改的下載下傳任務的配置設定機制,當ESC的帶寬是1Gbps時,同時隻配置設定一個下載下傳任務,10Gbps的ECS同時最多配置設定10個下載下傳任務。

阿裡雲200G雲專線實戰總結

其它總結:整個項目中最大困難是對整個網絡鍊路和裝置的部署,為了能承接單條100G的專線,需要交換機、網線、網卡、主機闆、硬碟等鍊路中的環節都能發揮到極限。

實際上兩台100G專線+兩台百G交換機≤200G,理論情況可以達到200G,實際上最高隻能到95%,因為線路和裝置會有損耗,任務的執行環節會有空閑,是以設計系統的負荷時不能按理論值計算。