<small id="hjex1"></small>

        <tbody id="hjex1"></tbody>
      1. <menuitem id="hjex1"></menuitem>
        <menuitem id="hjex1"></menuitem>

          安基網 首頁 系統 Web技術 查看內容

          運維工程師必備技能:CDN加速揭密

          2019-3-11 11:59| 投稿: xiaotiger |來自: 互聯網


          免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

          摘要: 1、 CDN發展歷史CDN的誕生是因為為寬帶網的骨干網帶寬小,接入帶寬高,它本質上是通過一種分布試服務器構成的網絡,把熱點內容存儲在網絡靠近接入側的服務器上,從而使用用戶訪問熱點內容時不用再訪問骨干網的服務器,減少骨干網流量需要,并提高服務質量。CDN是為互聯網上的應用服務服務的,它伴隨關 ...

          1、 CDN發展歷史

          CDN的誕生是因為為寬帶網的骨干網帶寬小,接入帶寬高,它本質上是通過一種分布試服務器構成的網絡,把熱點內容存儲在網絡靠近接入側的服務器上,從而使用用戶訪問熱點內容時不用再訪問骨干網的服務器,減少骨干網流量需要,并提高服務質量。

          CDN是為互聯網上的應用服務服務的,它伴隨關互聯網的發展而逐步成長,其發展過程中的高峰低谷、起起落落與整個互聯網的發展軌跡基本保持一致,這里借此回顧一下CDN的發展歷程,如表1-1所示。

          表1-1

          2、 CDN核心原理

          CDN(Content Delivery Network,內容分發網絡)簡單地說就是通過在不同地點緩存內容,通過負載平衡等技術請求到最近的緩存服務器上獲取內容,提高用戶訪問網站的響應速度。和簡單的內容鏡像不同,CDN通過用戶就近性和服務器負載的判斷,以一種更為高效的方式為用戶提供服務。

          2.1、CDN操作流程

          從用戶使用的角度來看,CDN是透明的,用戶在使用互聯網業務時,該業務是否使用了CDN承載,是不改變和影響用戶用戶的正常操作流程的。CDN操作流程如圖2-1所示。

          當內容提供商、運營商(cp/sp)接入CDN(假設CDN的URL為http://sample.ctccdn.cn)時,在接入CDN成功后,把接入CDN后的URL發布到業務門戶上。

          1、 用戶終端從門戶上觀看一個在線視頻,在打開一個播放頁面后,點擊播放按鈕,該播放按鈕URL地址實際是指向CDN的,如http://sample.ctccdn.com/001.

          2、 用戶終攜帶該URL向CDN發起播放請求,CDN通過內容分發機制把內容傳送給用戶

          CDN的內容分發機制是CDN的核心技術,如何高效地把內容由節點分發送給用戶是各大CDN廣商研究的重點內容。CDN的高效分發,指的是在有限的產資源下,能實現用戶就近服務最大化、網絡消耗最小化。

          圖2-1 CDN操作圖

          2.2、基于pull的分發機制

          基于PULL(下拉)的CDN分發機制如圖2-2所示

          圖2-2 基于pull(下拉)的CDN分發機制

          基于(下拉)的CDN分發機制基本原理主要是通過把用戶服務請求調度到合適的邊緣節點,如果發內容末命中,則該邊緣節點向上PULL(下拉)內容,如果其上級也沒有,則逐級向上下拉。其流程如下。

          1、 用戶計算機通過門戶得到訪問CDN的URL后,向CDN發起服務請求,如http://sample.bdqn.cn/001。

          2、 CDN檢查訪問請求的源IP地址,并根據調度策略,把用戶請求進行重定向,返回邊緣的訪問地址,如:。

          3、 用戶計算機根據得到的重定向地址,如http://bianyuan1.ctccdn.com/001,向CDN邊緣服務器發起請求。

          4、 邊緣服務器檢查發現本機沒有"001"內容,如不存在則向上PULL機制,向上發起下拉"001"的請求。

          5、 CDN節點逐級檢查是否存在"001"內容,如不存在則向上PULL內容,最終把內容下拉下來,并由邊緣服務器向用戶擔任服務。

          從基于PULL的CDN分發流程來分析,CDN的處理機制是比較簡單的:CDN的主要調度策略是不需要考慮內容的分布情況的,CDN只需要根據訪問請求的源IP地址,把用戶訪問請求調度到合適的邊緣服務器。CDN節點間的下拉機制也比簡單,一般下級節點只需要把所需要下拉的內容ID,如"001"向上發起請求即可。

          2.3、基于PUSH的分發機制

          基于PUSH(推)的CDN分發機制如圖3.1所示。

          圖3-1 基于push(推)的CDN分發機制

          基于PUSH(推)的CDN分發機制基本原理主要是,把用戶服務請求調度到有內容的CDN最接近用戶節點。在這種機制下,就不會發生內容末命中的情況。其流程如下。

          1、 用戶計算機通過門戶得到訪問CDN的URL后,向CDN發起請求,如http://sample.ctccdn.com/001。

          2、 CDN檢查訪問請求的源IP地址,檢查"001"內容在CDN分布情況,并根據調度策略,對用戶訪問請求進行重定向,返回有內容的CDN最接近用戶的節點,如http://quyu1.ctccdn.com/001。用戶計算機機據得到的重定向地址,http://quyu1.ctccdn.com/001,向該服務器發送服務器請求。

          3、 CDN統計"001"的訪問情況,當發現"001"內容達到熱度閾值時,中心節點就主動下推內容到區域節點。

          4、 區域節點發現"001"內容達到熱度閾值時,也主動把內容下推到邊緣服務器。

          5、 當再有用戶服務請求調度到有內容的邊緣服務器。

          從基于PUSH的CDN分發流程來分析,CDN的處理機制是相對較為復雜的:CDN需要了解到全網CD N內容分布,能正確把用戶調度到有內容的服務器上,而且PUSH的主動下發,需要對內容熱度有完全的統計信息。

          2.4、混合分發機制

          混合分發機制就是PUSH與PULL分發機制結合和一種機制。混合分發機制。混合分發機制有多種方案,最常見的混合分發機制,是利用PUSH機制進行內容預推,后續的CDN內容分發機制使用PULL機制。

          需要支持智能分發(PUSH/PULL)方式,支持根據當前內容分發系統中的內容服務狀況,采用推位的方式動態地調整內容在內容分發系統中的分布,對于熱點內容自動智能地將其緩存在邊緣節點。

          對于PUSH分發方式需要支持手工分發、自動分發、單個分發、批量分發、邏輯群分發(可選);至少應支持即時、定時、增量的內容分發策略;根據節點分組信息、節點IP地址段等策略進行內容分發;應支持根據訪問量設置分發門限、定向分發,客戶自定義分發策略;支持分類、分級的內容分發策略;支持對內容的分發優先級、更新頻率、新鮮度設定等管理功能。

          3、 CDN的四大關鍵技術

          隨著寬帶網絡和寬帶流媒體應用的興起,CDN(通常被稱為內容分發網絡Content distribution network,有時也被稱作內容傳遞網絡Contentdeliverynetwork)作為一種提高網絡內容,特別是提高流媒體內容傳輸的服務質量、節省骨干網絡帶寬的技術,在國內外得到越來越廣泛的應用。

          CDN的關鍵技術主要有內容路由技術、內容分發技術、內容存儲技術、內容管理技術等。

          3.1、內容路由技術

          CDN負載均衡系統實現CDN的內容路由功能。它的作用是將用戶的請求導向整個CDN網絡中的最佳節點。最佳節點的選定可以根據多種策略,例如距離最近、節點負載最輕等。負載均衡系統是整個CDN的核心,負載均衡的準確性和效率直接決定了整個CDN的效率和性能。

          通常負載均衡可以分為兩個層次:全局負載均衡(GSLB)和本地負載均衡(SLB)。全局負載均衡(GSLB)主要的目的是在整個網絡范圍內將用戶的請求定向到最近的節點(或者區域)。因此,就近性判斷是全局負載均衡的主要功能。本地負載均衡一般局限于一定的區域范圍內,其目標是在特定的區域范圍內尋找一臺最適合的節點提供服務,因此,CDN節點的健康性、負載情況、支持的媒體格式等運行狀態是本地負載均衡進行決策的主要依據。

          負載均衡可以通過多種方法實現,主要的方法包括DNS、應用層重定向、傳輸層重定向等等。

          對于全局負載均衡而言,為了執行就近性判斷,通常可以采用兩種方式,一種是靜態的配置,例如根據靜態的IP地址配置表進行IP地址到CDN節點的映射。另一種方式是動態的檢測,例如實時地讓CDN節點探測到目標IP的距離(可以采用RRT,Hops作為度量單位),然后比較探測結果進行負載均衡。當然,靜態和動態的方式也可以綜合起來使用。

          對于本地負載均衡而言,為了執行有效的決策,需要實時地獲取Cache設備的運行狀態。獲取的方法一般有兩種,一種是主動探測,一種是協議交互。主動探測針對SLB設備和Cache設備沒有協議交互接口的情況,通過ping等命令主動發起探測,根據返回結果分析狀態。另一種是協議交互,即SLB和Cache根據事先定義好的協議實時交換運行狀態信息,以便進行負載均衡。比較而言,協議交互比探測方式要準確可靠,但是目前尚沒有標準的協議,各廠家的實現一般僅是私有協議,互通比較困難。

          3.2、內容分發技術

          內容分發包含從內容源到CDN邊緣的Cache的過程。從實現上看,有兩種主流的內容分發技術:PUSH和PULL.

          PUSH是一種主動分發的技術。通常,PUSH由內容管理系統發起,將內容從源或者中心媒體資源庫分發到各邊緣的Cache節點。分發的協議可以采用HTTP/FTP等。通過PUSH分發的內容一般是比較熱點的內容,這些內容通過PUSH方式預分發(Preload)到邊緣Cache,可以實現有針對的內容提供。對于PUSH分發需要考慮的主要問題是分發策略,即在什么時候分發什么內容。一般來說,內容分發可以由CP(內容提供商)或者CDN內容管理員人工確定,也可以通過智能的方式決定,即所謂的智能分發。它根據用戶訪問的統計信息,以及預定義的內容分發的規則,確定內容分發的過程。

          PULL是一種被動的分發技術,PULL分發通常由用戶請求驅動。當用戶請求的內容在本地的邊緣Cache上不存在(未命中)時,Cache啟動PULL方法從內容源或者其他CDN節點實時獲取內容。在PULL方式下,內容的分發是按需的。

          在實際的CDN系統中,一般兩種分發方式都支持,但是根據內容的類型和業務模式的不同,在選擇主要的內容分發方式時會有所不同。通常,PUSH的方式適合內容訪問比較集中的情況,如熱點的影視流媒體內容;PULL方式比較適合內容訪問分散的情況。

          在內容分發的過程中,對于Cache設備而言,關鍵的是需要建立內容源URL、內容發布的URL、用戶訪問的URL,以及內容在Cache中存儲的位置之間的映射關系。

          3.3、內容存儲技術

          對于CDN系統而言,需要考慮兩個方面的內容存儲問題。一個是內容源的存儲,一個是內容在Cache節點中的存儲。

          對于內容源的存儲,由于內容的規模比較大(通常可以達到幾個甚至幾十個TB),而且內容的吞吐量較大,因此,通常采用海量存儲架構。如NAS和SON.

          對于在Cache節點中的存儲,是Cache設計的一個關鍵問題。需要考慮的因素包括功能和性能兩個方面:在功能上包括對各種內容格式的支持、對部分緩存的支持,在性能上包括支持的容量、多文件吞吐率、可靠性、穩定性。

          其中,多種內容格式的支持要求存儲系統根據不同文件格式的讀寫特點進行優化,以提高文件內容讀寫的效率,特別是對流媒體文件的讀寫。

          部分緩存能力指流媒體內容可以以不完整的方式存儲和讀取。部分緩存的需求來自用戶訪問行為的隨機性,因為許多用戶并不會完整地收看整個流媒體節目,事實上,許多用戶訪問單個流媒體節目的時間不超過10分鐘。因此,部分緩存能力能夠大大提高存儲空間的利用率,并有效地提高用戶請求的響應時間。但是部分緩存可能導致內容出現碎片問題,需要進行良好的設計和控制。

          Cache存儲的另一個重要因素是存儲的可靠性,目前,多數存儲系統都采用了RAID技術進行可靠存儲。但是不同設備使用的RAID方式各有不同。

          3.4、內容管理技術

          內容管理在廣義上涵蓋了從內容的發布、注入、分發、調整、傳遞等一系列過程。在這里,內容管理重點強調內容進入Cache點后的內容管理,我們稱為本地內容管理。

          本地內容管理主要針對一個CDN節點(由多個CDN Cache設備和一個SLB設備構成)進行。本地內容管理的主要目標是提高內容服務的效率,提高本地節點的存儲利用率。通過本地內容管理,可以在CDN節點實現基于內容感知的調度,通過內容感知的調度,可以避免將用戶重定向到沒有該內容的Cache設備上,從而提高負載均衡的效率。通過本地內容管理還可以有效地實現在CDN節點內容的存儲共享,提高存儲空間的利用率。

          在實現上,本地內容管理主要包括如下幾個方面。

          1. 本地內容索引。本地內容管理首先依賴于對本地內容的了解。包括每個Cache設備上內容的名稱、URL、更新時間、內容信息等。本地內容索引是實現基于內容感知的調度的關鍵。

          2. 本地內容拷貝。通常,為了提高存儲效率,同一個內容在一個CDN節點中僅存儲一份,即僅存儲在某個特定的Cache上。但是一旦對該內容的訪問超過該Cache的服務提供能力,就需要在本地(而不是通過PUSL的方式)實現內容的分發。這樣可以大大提高效率。

          3. 本地內容訪問狀態信息收集。搜集各個Cache設備上各個內容訪問的統計信息,Cache設備的可用服務提供能力及內容變化的情況。

          可以看出,通過本地內容管理,可以將內容的管理從原來的Cache設備一級,提高到CDN節點一級,從而大大增加了CDN的可擴展性和綜合能力。

          綜上所述,CDN作為一種支持大規模高質量的流媒體服務的關鍵技術,目前已經基本成熟,具備了廣泛應用的能力。

          4、 CDN在企業中架構圖

          5、 CDN監控維護思路

          1、了解節點服務機器分布的情況

          機器數量對監控部署也是挑戰,CDN的布點和其他的服務布點策略不太一樣。為了最大化節約成本,通常會選擇2-3線城市,并且跨多個運營商。特別是過多的小運營商,延遲通常都比較大,延遲別說十幾毫秒,十幾秒那種都很正常。我們一般統計的平均標準至少都在一秒以上。

          2、物理層面的。

          由CDN的機房比較分散,在判斷一個機房故障時,不能單純從一條鏈路故障來判斷,比如A機房down掉的情況,不能主觀意識的從核心結構去觀察到它,這個機房不通了,或者是已經掛掉了。因為CDN的話,除了管理之外,還可以對用戶從用戶層面上來講,有可能這個機房是沒有問題的。但是從管理級別上來講,這個機房已經掛掉了,因為它不可控。

          從運維角度上來講,因為不可控了,那就應該標記為不可用了。但是實際上,有可能無法做到它不可控了、不可用了,就去把服務切掉,因為有可能這個機房所承載的服務量會比較大。特別是高峰期,做這種流量標注的時候會影響到用戶的質量,其他服務機房的帶寬的成本就會上升。所以在第一個維度,要跟據監控體系,從多機房的維度去探測這一個機房。如果說我在這一個時間之內判斷,比方說我的維度是五個機房,有三個地方探測這個機房不可用了,那就把這個機房標記為不可用。它是真的不可用了。

          第二個維度是用戶層面的,就是說,去模擬這個地區之內的用戶的請求。比方說這個機房是在廣州,那就模擬廣州用戶的請求,在湖北,就看湖北用戶的請求,然后去判斷它在這種情況下的不可用。如果說它不可用了,就預警,標記這個機房為不可用的。如果只是單次的情況,比如從監控層面來講,經常會用有網絡顧客打來說丟包啊什么的,大部分時間都采用忽略不計,除非影響故障時間特別長。

          更多的時間是保障節點回源的情況,只要回源沒有問題。網絡鏈路的情況是我們優化的重點。對于源站那塊,主要是HTTP層面的監控,保證服務響應是正常的,確保網絡層面的正常。

          總體來說, CDN的監控體系從物理層可用性(設備、節點、網絡狀態)、應用層面可用性(HTTP)、服務質量三個維度出發,結合業務特性做優化工作,并把相關的數據結合更加精密,每一個監控項都需要不斷深入細化、調試。慢工做細活,監控就是個細活。

          CDN故障響應機制及修復措施。

          有的時候我們的源站點負載過高,當然也可能是web服務器,也可能是存儲服務器……

          1) 分析服務器訪問日志,判斷源IP的來源。

          2) 也有可能是CDN頻繁的來抓取數據。可能有這幾點原因a.源站點更新頻繁,CDN的緩存經常更新數據

          3) CDN公司增加緩存節點。它要抓取源服務器。

          6、 CDN計費

          也不是所有的CDN的計費都相同,不同的公司有著不同計費方式。下例是舉例說明:

          6.1、按流量計費

          按使用流量后付費,流量按自然月累積,做為階梯判斷依據

          按小時計費,實時扣費(每小時出賬單并扣費)。

          賬單出賬時間為當前計費周期結束。賬單出賬時間通常在當前計費周期結束后一小時內, 例10:00-11:00的賬單會在11:00以后生成, 具體以系統出賬時間為準,賬單生成后會自動從您的賬戶余額中扣除費用以結算賬單。

          6.2、按峰值帶寬計費

          按使用峰值帶寬后付費,峰值帶寬按自然日計算,做為階梯判斷依據

          按自然日計費,每日出賬單并實時扣費。

          賬單出賬時間為當前計費周期結束(自然日)。賬單出賬時間通常在當前計費周期結束后一小時內, 6月17日的賬單會在6月18日零點以后生成, 具體以系統出賬時間為準,賬單生成后會自動從您的賬戶余額中扣除費用以結算賬單。

          ……



          小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

          本文出自:https://www.toutiao.com/a6664850182280053260/

          免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


          鮮花

          握手

          雷人

          路過

          雞蛋

          相關閱讀

          最新評論

           最新
          返回頂部
          北京赛车高手经验分享