淘宝CDN系统架构
本文側重介紹淘寶網圖片處理與訪問系統前端的CDN系統架構
從商用系統到自主研發
實際上,淘寶網對CDN系統的要求還是十分嚴格的,CDN服務的圖片規模包括大約250T容量的原圖和大約250T容量的縮略圖總和;約286億左右的圖片數,平均圖片大小是17.45K;8K以下圖片占圖片數總量的61%,占存儲容量的11%
CDN的部署規模達到22個節點,部署在網民相當密集的中心城市(7月初),每個節點目前處理能力在10G或以上,CDN部署的總處理能力已到220G以上,目前承載淘寶流量高峰時119G,含一些集團子公司的流量。
淘寶網現有的CDN系統也完全是淘寶自己開發的,最早淘寶也應用過一段商用的CDN產品,選擇Netscaler的CDN系統來解決海量小圖片訪問和讀取的問題。使用一段時間后,認為市場普遍的商用產品存在一些性能瓶頸、功能欠缺,并且性能不穩定。面對淘寶網背后如此巨大的圖片存儲規模,商用系統在整個系統的規模、性能、可用性和可管理性都無法達到要求。
目前淘寶網自主開發的CDN系統,采用了全新的優化架構,包括CDN監控平臺、全局流量調度系統支持基于節點負載狀態調度和基于鏈路狀態調度、CDN實時圖片刪除、CDN訪問日志過濾系統、配置管理平臺。
新舊CDN架構平臺對比
淘寶網老架構的CDN平臺應用Netscaler產品
圖為淘寶網應用Netscaler產品的老架構的CDN平臺,背后管理500TB容量,前端緩存空間約1TB左右,命中率較低,因此需要強大的調度策略。
淘寶網最新的CDN系統架構
上圖為最新的CDN系統架構,全部由淘寶網自己開發,前面介紹過CDN系統的服務規模,包括約250T容量的原圖+250T容量的縮略圖,總計500TB圖片存儲容量;約286億左右的圖片數,平均圖片大小是17.45K;8K以下圖片占圖片數總量的61%,占存儲容量的11%,實際上帶給CDN系統極大的挑戰。
CDN部署規模達到22個節點,部署在網民相當密集(具體訪問量)的中心城市(7月初),每個節點目前處理能力在10G或以上,部署的總處理能力已到220G以上,目前承載淘寶流量高峰時119G(含一些集團子公司的)。
新舊兩代CDN架構的對比
上圖是淘寶網對新舊2代CDN架構進行對比,新的CDN系統在流量分布均勻性上有了較大改進,所有的頻道統一調度到128臺squid,而不是將squid按頻道分組,可提高命中率2%以上;擴展能力也有了較大提升,在一個VIP上新架構可以擴展到近100G的流量(當然要用萬兆網卡);靈活性也有了較大提高,一致性Hash調度方法使得增加和刪除服務器非常方便,只有1/(n+1)的對象需要遷移新的CDN架構。除了在可維護性商稍微弱一點,其余的指標全面超出商用的產品。
Squid節點的改進和優化
新的CDN在squid節點上也進行了一些改進和優化,包括:
在COSS存儲系統基礎上實現了TCOSS,FIFO加上按一定比例保留熱點對象,支持1T大小的文件
Squid內存優化,一臺Squid服務器若有一千萬對象, 大約節省1250M內存,更多的內存可以用作memory cache。
用sendfile來發送緩存在硬盤上的對象,加上page cache,充分利用操作系統的特性
針對SSD硬盤,可以采用DIRECT_IO方式訪問,將內存省給SAS/SATA硬盤做page cache
在Squid服務器上使用SSD+SAS+SATA混合存儲,實現了類似GDSF算法,圖片隨著熱點變化而遷移。
根據淘寶網的資料數據,SSD的存儲成本大約是20¥每GB左右,SAS硬盤的存儲成本約在5-6¥每GB,SATA盤的每GB成本不到1¥。隨著對應用性能的要求提升,應用SSD是未來的趨勢,針對不同硬盤的存取特性進行優化是十分必要的。
目前在squid節點中的熱點遷移采用了兩種策略,一種是根據文件大小來定義遷移到哪種磁盤上去。例如較大的文件存放在SATA磁盤,中等大小的文件放在SAS磁盤上,較小的文件存放在SSD磁盤。下圖是淘寶網進行自動分層遷移后的性能測試結果,測試環境包括1塊SSD硬盤+4塊SAS硬盤+SATA硬盤。訪問負載狀況如下:
第一種遷移策略按文件大小決定存儲的磁盤類型,上圖中:黑色為SATA,綠色為SSD,紅色為SAS,4塊SAS硬盤上的訪問量總和超過SSD硬盤上的訪問量
另外一種策略則是根據訪問熱度來決定,最熱的文件存放在SSD盤,較熱的存放在SAS盤,最冷的文件存放在SATA盤。下圖是淘寶網同樣在1塊SSD硬盤+4塊SAS硬盤+SATA硬盤下的測試結果,訪問負載狀況如下:
第二種遷移策略按訪問的熱度來進行遷移,其中:黑色為SATA,綠色為SSD,紅色為SAS;SSD硬盤上的訪問量是4塊SAS硬盤上訪問量之和的5倍以上,SAS和SATA的硬盤利用率低了很多。
節點的運行狀況
淘寶網列出了兩個代表性節點的運行性能狀況。
節點一由32臺DELLR710服務器構成,邏輯結構包括2LVS+32Haproxy+64Squid構成,于12月21日上線運行。
以下是該節點的運營狀況:
節點二由30臺DELL PowerEdge 2950服務器構成,邏輯結構包括:2LVS + 30Haproxy + 60Squid,于2010年5月上線運行。以下是該節點的理論運行狀況:
淘寶CDN的發展方向
淘寶網未來的CDN發展方向針對研發、運維和CDN建設有不同的要求。
從CDN的研發和運維上,未來淘寶CDN將:
–針對教育網的CDN解決方案,廣大校園用戶將能體會到更高的訪問速度和性能
–動態頁面加速,節點間應用級路由
–持續提高節點性能(應用軟件、操作系統等)
–優化GTM全局調度系統
–持續提高CDN系統可運維性,完善CDN內容管理系統
此外,淘寶CDN建設的思路也有一些調整和改變,建設思路正在轉向“部署更多的小節點,盡可能離用戶近一些”的方向,同時會更加強調定制化和快速部署。
轉載:http://block.blog.51cto.com/1082383/433279
總結
- 上一篇: Flutter自定义IOS的Plugin
- 下一篇: 高中主要物理学史和物理学家及其贡…