国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種大數(shù)據(jù)集群租戶帶寬控制方法及裝置與流程

      文檔序號:12809160閱讀:402來源:國知局
      一種大數(shù)據(jù)集群租戶帶寬控制方法及裝置與流程

      本發(fā)明涉及帶寬控制技術(shù),尤其涉及一種大數(shù)據(jù)集群租戶帶寬控制方法及裝置。



      背景技術(shù):

      隨著大數(shù)據(jù)技術(shù)的廣泛應(yīng)用和飛速發(fā)展,企業(yè)開始部署越來越大規(guī)模的大數(shù)據(jù)集群,集群規(guī)??梢赃_到1000-40000臺服務(wù)器。這些集群上會部署多種大數(shù)據(jù)應(yīng)用,底層采用hadoop平臺,負責hadoop分布式文件系統(tǒng)(hdfs)分布式存儲和mapreduce任務(wù)調(diào)度,上層會部署hive、hbase、spark、pig等等大數(shù)據(jù)應(yīng)用,并且用專門的大數(shù)據(jù)集群管理軟件進行統(tǒng)一管理。大數(shù)據(jù)集群管理軟件可以為不同的租戶分配不同大小的資源,使不同租戶之間的資源和數(shù)據(jù)隔離,這些資源包括中央處理器(cpu)計算資源、內(nèi)存存儲資源、硬盤存儲資源、傳輸帶寬資源,傳輸帶寬又分為硬盤帶寬和網(wǎng)卡帶寬。對于不同的資源,實現(xiàn)其隔離性的方式也不同。對于cpu、內(nèi)存和硬盤存儲,都可以通過cgroup(controlgroups)技術(shù)實現(xiàn)隔離,而硬盤帶寬和網(wǎng)卡帶寬很難實現(xiàn)隔離,只能做籠統(tǒng)的限速,不能針對不同的租戶設(shè)置不同的帶寬值,并且這兩者非常容易成為集群的性能瓶頸。其中,cgroup技術(shù)是linux內(nèi)核提供的一種可以限制、記錄、隔離進程組(processgroups)所使用的物理資源(如:cpu、memory、io等等)的機制。

      目前還沒有較好的技術(shù)方案可以實現(xiàn)帶寬資源的隔離,僅有以下一些思路可以參考:1)對于硬盤帶寬,采用cgroup的blkio子系統(tǒng),通過設(shè)置blkio.throttle.write_bps_device和blkio.throttle.read_bps_device來實現(xiàn)硬盤帶寬限制。2)對于網(wǎng)卡帶寬,使用linux的網(wǎng)絡(luò)控制工具如流量控制工具(tc,traffic control)創(chuàng)建分類隊列,然后結(jié)合cgroup的net_cls子系統(tǒng)將要控制的進程與tc的分類隊列綁定,這樣便可以實現(xiàn)對某個進程網(wǎng)卡帶寬限制。

      上述方案思路存在以下的問題:1)cgroup只能對進程進行直接限制。在大數(shù)據(jù)系統(tǒng)中,作業(yè)通常提交到調(diào)度系統(tǒng)(例如yarn),調(diào)度系統(tǒng)負責資源調(diào)度,cpu和內(nèi)存資源都消耗在調(diào)度系統(tǒng)層,因此cgroup可以獲得調(diào)度系統(tǒng)的進程號,實現(xiàn)調(diào)度系統(tǒng)層的資源隔離。當發(fā)生數(shù)據(jù)讀寫時,調(diào)度系統(tǒng)不會直接去讀寫,而是提交請求給文件系統(tǒng)(例如hdfs),由文件系統(tǒng)完成讀寫,因此帶寬資源實際是由文件系統(tǒng)占用的,而調(diào)度系統(tǒng)無法獲得文件系統(tǒng)的進程號,因此也就無法通過cgroup來對文件系統(tǒng)進行隔離。2)硬盤帶寬和網(wǎng)卡帶寬是兩種資源,而這兩種資源是相互制約的,如果分開限制的話,慢的一方會成為性能瓶頸。3)直接限制硬盤和網(wǎng)卡,沒有考慮資源調(diào)度的問題。4)直接在底層限制硬盤和網(wǎng)卡,不但可擴展性差,而且增加了與cgroup、網(wǎng)絡(luò)控制工具tc的耦合度,并且具有不可移植和不可插拔的缺點。



      技術(shù)實現(xiàn)要素:

      有鑒于此,本發(fā)明實施例為解決現(xiàn)有技術(shù)中存在的至少一個問題而提供一種大數(shù)據(jù)集群租戶帶寬控制方法及裝置,能夠?qū)捹Y源進行隔離和管理。

      本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:

      第一方面,本發(fā)明實施例提供一種大數(shù)據(jù)集群租戶帶寬控制方法,所述方法包括:

      獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;

      根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值,所述關(guān)聯(lián)信息用于表明租戶信息與帶寬閾值之間的映射關(guān)系;

      確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;

      判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;

      根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬。

      第二方面,本發(fā)明實施例提供一種大數(shù)據(jù)集群租戶帶寬控制裝置,所述裝置包括第一獲取單元、查詢單元、確定單元、第一判斷單元和控制單元,其中:

      第一獲取單元,用于獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;

      查詢單元,用于根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值,所述關(guān)聯(lián)信息用于表明租戶信息與帶寬閾值之間的映射關(guān)系;

      確定單元,用于確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;

      第一判斷單元,用于判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;

      控制單元,用于根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬。

      本發(fā)明實施例提供的一種大數(shù)據(jù)集群租戶帶寬控制方法及裝置,所述方法包括:獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值;確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬,如此,能夠?qū)捹Y源進行隔離和管理。

      附圖說明

      圖1為本發(fā)明實施例一大數(shù)據(jù)集群租戶帶寬控制方法的實現(xiàn)流程示意圖;

      圖2為本發(fā)明實施例二大數(shù)據(jù)集群租戶帶寬控制方法的實現(xiàn)流程示意圖;

      圖3-1為相關(guān)技術(shù)中大數(shù)據(jù)系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖3-2為本發(fā)明實施例大數(shù)據(jù)系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖3-3為本發(fā)明實施例三大數(shù)據(jù)集群租戶帶寬控制裝置的組成結(jié)構(gòu)示意圖;

      圖3-4為本發(fā)明實施例三租戶管理系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖3-5為本發(fā)明實施例三節(jié)流閥管理系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖3-6為本發(fā)明實施例三實時帶寬管理系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖4為本發(fā)明實施例四大數(shù)據(jù)集群租戶帶寬控制裝置的組成結(jié)構(gòu)示意圖。

      具體實施方式

      下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進一步詳細闡述。

      實施例一

      為了解決前述的技術(shù)問題,本發(fā)明實施例提供一種大數(shù)據(jù)集群租戶帶寬控制方法,該方法可以應(yīng)用于計算設(shè)備,該方法所實現(xiàn)的功能可以通過計算設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該計算設(shè)備至少包括處理器和存儲介質(zhì)。在具體實現(xiàn)的過程中,所述計算設(shè)備可以為任何具有計算能力的電子設(shè)備,如個人計算機或服務(wù)器集群或筆記本電腦等。

      圖1為本發(fā)明實施例一大數(shù)據(jù)集群租戶帶寬控制方法的實現(xiàn)流程示意圖,如圖1所示,該方法包括:

      步驟s101,獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;

      步驟s102,根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值;

      這里,所述關(guān)聯(lián)信息用于表明租戶信息與帶寬閾值之間的映射關(guān)系;在具體實現(xiàn)的過程中,所述關(guān)聯(lián)信息可以采用映射列表或關(guān)聯(lián)列表來實現(xiàn)。

      這里,在具體實現(xiàn)的過程中,所述關(guān)聯(lián)信息通過以下方式形成:步驟s121,從所述存儲系統(tǒng)獲取租戶信息,根據(jù)所述租戶信息建立本地的租戶列表;步驟s122,從所述存儲系統(tǒng)獲取所述租戶信息對應(yīng)的帶寬閾值;步驟s123,根據(jù)所述租戶信息和所述租戶信息對應(yīng)的帶寬閾值建立關(guān)聯(lián)信息。

      步驟s103,確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;

      步驟s104,判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;

      步驟s105,根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬。

      這里,所述帶寬包括硬盤帶寬和網(wǎng)卡帶寬,因此本發(fā)明實施例能夠?qū)⒂脖P帶寬和網(wǎng)絡(luò)帶寬作為統(tǒng)一的資源進行隔離和管理。

      本發(fā)明實施例中,步驟s105,所述根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬,包括:如果所述當前帶寬信息小于等于所述帶寬閾值,則流程結(jié)束;如果所述當前帶寬信息大于所述帶寬閾值,則控制所述租戶下正在運行的線程處于休眠狀態(tài)。

      本發(fā)明實施例所提供的方法在具體實現(xiàn)的過程中,可以以軟件的形式存在,例如該軟件可以稱為大數(shù)據(jù)集群租戶帶寬控制裝置(簡稱帶寬控制裝置),所述帶寬控制裝置與調(diào)度系統(tǒng)、存儲系統(tǒng)之間的連接關(guān)系可以參見圖3-2或圖3-3中,在圖3-3中,tm、itm、im和rbm共同組成了所述帶寬控制裝置。

      本發(fā)明實施例中,所述方法還包括:判斷所述帶寬閾值是否滿足預(yù)設(shè)的條件,如果不滿足,輸出錯誤信息,所述錯誤信息用于提示用戶使用了不正確的帶寬值;如果滿足,則根據(jù)所述租戶信息和所述租戶信息對應(yīng)的帶寬閾值建立關(guān)聯(lián)信息。

      本發(fā)明實施例中,獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值;確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬,如此,能夠?qū)⒂脖P帶寬和網(wǎng)絡(luò)帶寬作為統(tǒng)一的資源進行隔離和管理。

      實施例二

      為了解決前述的技術(shù)問題,本發(fā)明實施例提供一種大數(shù)據(jù)集群租戶帶寬控制方法,該方法可以應(yīng)用于計算設(shè)備,該方法所實現(xiàn)的功能可以通過計算設(shè)備中的處理器調(diào)用程序代碼來實現(xiàn),當然程序代碼可以保存在計算機存儲介質(zhì)中,可見,該計算設(shè)備至少包括處理器和存儲介質(zhì)。在具體實現(xiàn)的過程中,所述計 算設(shè)備可以為任何具有計算能力的電子設(shè)備,如個人計算機或服務(wù)器集群或筆記本電腦等。

      圖2為本發(fā)明實施例二大數(shù)據(jù)集群租戶帶寬控制方法的實現(xiàn)流程示意圖,如圖2所示,該方法包括:

      步驟s201,從所述調(diào)度系統(tǒng)獲取最新注冊的租戶信息;

      步驟s202,根據(jù)所述最新注冊的租戶信息更新本地的租戶列表;

      步驟s203,根據(jù)所述最新注冊的租戶信息獲取對應(yīng)的帶寬閾值;

      步驟s204,根據(jù)所述最新注冊的租戶信息及其對應(yīng)的帶寬閾值更新所述關(guān)聯(lián)信息。

      步驟s101,獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;

      步驟s102,根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值;

      這里,所述關(guān)聯(lián)信息用于表明租戶信息與帶寬閾值之間的映射關(guān)系;

      這里,在具體實現(xiàn)的過程中,所述關(guān)聯(lián)信息通過以下方式形成:步驟s121,從所述存儲系統(tǒng)獲取租戶信息,根據(jù)所述租戶信息建立本地的租戶列表;步驟s122,從所述存儲系統(tǒng)獲取所述租戶信息對應(yīng)的帶寬閾值;步驟s123,根據(jù)所述租戶信息和所述租戶信息對應(yīng)的帶寬閾值建立關(guān)聯(lián)信息。

      步驟s103,確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;

      步驟s104,判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;

      步驟s105,根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬。

      本發(fā)明實施例中,所述根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬,包括:如果所述當前帶寬信息小于等于所述帶寬閾值,則流程結(jié)束;如果所述當前帶寬信息大于所述帶寬閾值,則控制所述租戶下正在運行的線程處于休眠狀態(tài)。

      本發(fā)明實施例中,所述確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息,包括:根據(jù)所述租戶信息確定第一帶寬值,所述第一帶寬值為所述租戶當前在 所述存儲系統(tǒng)中每一存儲節(jié)點所使用的帶寬值;根據(jù)所述第一帶寬值確定所述租戶的當前帶寬信息。

      這里,將所述存儲系統(tǒng)中所有的存儲節(jié)點的第一帶寬值進行求和,即可得到所述租戶的當前帶寬信息(當前帶寬信息即用于表明所述租戶當前所使用的帶寬數(shù)值)。對應(yīng)地,步驟s105中在對租戶的帶寬進行控制的時候,也可以對所述存儲系統(tǒng)中的每一存儲節(jié)點都設(shè)置一個第一帶寬閾值,然后判斷每一個存儲節(jié)點的第一帶寬值是否超過所述第一帶寬閾值,如果超過,則控制所述租戶在該存儲節(jié)點下正在運行的線程處于休眠狀態(tài);如果未超過,則結(jié)束流程。在具體實現(xiàn)的過程中,所述每一存儲節(jié)點的第一帶寬值根據(jù)實際情況數(shù)值可能不相同,所述每一存儲節(jié)點的第一帶寬閾值也可以設(shè)置的各不相同,每一存儲節(jié)點的第一帶寬閾值具體如何設(shè)置,可以根據(jù)該存儲節(jié)點的作業(yè)信息進行設(shè)置。例如,假設(shè)存儲系統(tǒng)包括第一存儲節(jié)點和第二存儲節(jié)點,其中第一存儲節(jié)點的作業(yè)信息表明該第一存儲節(jié)點的作業(yè)線程比第二存儲節(jié)點的作業(yè)線程多,而且第一存儲節(jié)點比第二存儲節(jié)點使用的帶寬多,那么該第一存儲節(jié)點的第一帶寬閾值可以設(shè)置的比第二存儲節(jié)點的第一帶寬閾值大;換句話說,本發(fā)明實施例將根據(jù)每一存儲節(jié)點的實際讀寫帶寬設(shè)置一個比較合理的第一帶寬閾值,進而限制存儲系統(tǒng)每個存儲節(jié)點的實際讀寫帶寬。但是如果將存儲系統(tǒng)中所有的第一帶寬閾值進行求和,那么該求和值應(yīng)該等于用戶設(shè)置的帶寬閾值。

      實施例三

      目前的大數(shù)據(jù)系統(tǒng)通?;趆adoop生態(tài)圈構(gòu)建的,圖3-1為相關(guān)技術(shù)中大數(shù)據(jù)系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖3-1所示,該大數(shù)據(jù)系統(tǒng)的核心是存儲系統(tǒng)(如hdfs)、任務(wù)調(diào)度系統(tǒng)(如yarn)和計算框架(如mapreduce)。其中,任務(wù)調(diào)度系統(tǒng)維護多個任務(wù)隊列,每個隊列都可以抽象成一個租戶,通過cgroup實現(xiàn)多租戶的cpu和內(nèi)存資源隔離。

      在圖3-1所示的系統(tǒng)中,只提供了多租戶的cpu和內(nèi)存資源的隔離,該隔離發(fā)生在任務(wù)調(diào)度系統(tǒng)。由于真正帶寬資源占用是發(fā)生在存儲系統(tǒng)中,因此在 本發(fā)明實施例中將在調(diào)度系統(tǒng)和存儲系統(tǒng)之間加入了一個新的模塊,該新模塊用來專門做帶寬限制。圖3-2為本發(fā)明實施例大數(shù)據(jù)系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖3-2所示,該大數(shù)據(jù)系統(tǒng)的帶寬控制裝置起到了專門控制帶寬的作用,此處帶寬控制裝置中的帶寬包括硬盤帶寬和網(wǎng)卡帶寬,并且對用戶而言,不區(qū)分具體的帶寬只呈現(xiàn)一個統(tǒng)一的邏輯帶寬,該邏輯帶寬是實際讀寫存儲系統(tǒng)的速度,而具體的硬盤和網(wǎng)卡帶寬的調(diào)度交給裝置本身完成。

      在本發(fā)明實施例中,帶寬限制的實現(xiàn)是通過存儲系統(tǒng)的數(shù)據(jù)傳輸層來做到,但是存儲系統(tǒng)不知道租戶的信息,所以要實現(xiàn)不同租戶之間的帶寬資源隔離,需要添加溝通調(diào)度系統(tǒng)和存儲系統(tǒng)的中間件——帶寬控制裝置。

      基于圖3-2本,本發(fā)明實施例提出一種針對大數(shù)據(jù)集群租戶帶寬控制裝置,該裝置可以對大數(shù)據(jù)集群上的不同租戶使用的帶寬資源進行控制,使租戶實際使用的帶寬資源不超過裝置的限制,同時記錄租戶歷史帶寬使用情況,用于實現(xiàn)大數(shù)據(jù)集群的帶寬資源隔離。

      圖3-3為本發(fā)明實施例三大數(shù)據(jù)集群租戶帶寬控制裝置的組成結(jié)構(gòu)示意圖,如圖3-3所示,該裝置包括:

      1)租戶管理系統(tǒng)(tm,tenancymanager),用于負責管理租戶的信息,參見圖3-4,租戶管理系統(tǒng)包括租戶更新模塊、作業(yè)獲取模塊、租戶列表和作業(yè)列表,其中:租戶更新模塊,用于負責與調(diào)度系統(tǒng)進行實時通信,從而獲取最新的租戶列表。作業(yè)獲取模塊,用于負責從調(diào)度系統(tǒng)獲得租戶信息和該租戶下的作業(yè)信息。租戶列表,用于存儲租戶信息;作業(yè)列表,用于負責存儲租戶下作業(yè)列表,在具體實現(xiàn)的過程中所述租戶信息至少包括租戶的帳號、標識信息(id),所述作業(yè)列表中包括作業(yè)信息,所述作業(yè)信息用于表明該租戶目前正在作業(yè)的線程的相關(guān)信息,其中所述線程的相關(guān)信息至少包括線程的名稱。線程的標識信息等;根據(jù)作業(yè)信息例如線程的標識信息可以知道該線程的速度,根據(jù)速度可以計算出該線程所占用的帶寬。

      2)節(jié)流閥管理系統(tǒng)(itm,iothrottlemanager),用于負責管理存儲系統(tǒng)的帶寬控制。參見圖3-5,節(jié)流閥管理系統(tǒng)包括節(jié)流閥模塊、存儲節(jié)點管理模塊 和租戶節(jié)流閥列表,其中:節(jié)流閥模塊,用于負責限制存儲系統(tǒng)每個存儲節(jié)點的實際讀寫帶寬,每個租戶下所有作業(yè)線程共用一個節(jié)流閥,這些作業(yè)的占用帶寬總和不會超過節(jié)流閥限制的值。存儲節(jié)點管理模塊,用于負責與存儲系統(tǒng)的主節(jié)點進行通信,獲得所述存儲系統(tǒng)中的存儲節(jié)點信息,根據(jù)所述存儲節(jié)點信息例如存儲節(jié)點的標識信息將對應(yīng)的該存儲節(jié)點的帶寬閾值對應(yīng)地發(fā)送給每一個存儲節(jié)點。租戶節(jié)流閥列表,用于負責建立租戶信息與節(jié)流閥的標識信息之間的映射列表。

      這里,存儲系統(tǒng)一般來說包括主節(jié)點和從屬節(jié)點,其中存儲系統(tǒng)的主節(jié)點用于管理存從屬節(jié)點,而所述存儲節(jié)點信息至少包括存儲節(jié)點的標識信息。

      這里,所述每一個租戶都一一對應(yīng)一個節(jié)流閥,在映射列表中可以存儲的是租戶的標識信息與節(jié)流閥的標識信息之間的映射關(guān)系,這樣,節(jié)流閥管理系統(tǒng)就會根據(jù)租戶的標識信息查找到對應(yīng)的節(jié)流閥的標識信息,然后再根據(jù)節(jié)流閥的標識信息開啟對應(yīng)的節(jié)流閥,以對租戶的帶寬進行限制。例如當用戶要對租戶a的帶寬進行限制的時候,那么就根據(jù)租戶a的標識信息查找映射列表,得到租戶a對應(yīng)的節(jié)流閥的標識信息,然后開啟租戶a的節(jié)流閥,從而實現(xiàn)對租戶a的帶寬的限制。

      3)實時帶寬管理系統(tǒng)(rbm,realtimebandwidthmanager),用于負責管理整個實時帶寬獲取、計算和歷史記錄。參見圖3-6,該實時帶寬管理系統(tǒng)包括實時帶寬獲取模塊、租戶帶寬統(tǒng)計模塊、歷史帶寬存儲模塊和租戶帶寬記錄,其中:實時帶寬獲取模塊,用于負責獲取存儲系統(tǒng)每個存儲節(jié)點的實時帶寬(包括讀寫所使用的帶寬)。租戶帶寬統(tǒng)計模塊,用于負責統(tǒng)計每個租戶的實時使用帶寬。歷史帶寬存儲模塊,用于負責存儲每個租戶的歷史帶寬使用情況。租戶帶寬記錄,用于負責記錄每個租戶的帶寬。

      4)接口系統(tǒng)(im,interfacemanager),用于接口系統(tǒng)對外提供調(diào)用接口,接口系統(tǒng)包括帶寬限制接口模塊、實時帶寬獲取接口模塊和歷史帶寬記錄接口模塊,其中:帶寬限制接口模塊,用于負責獲取或接收限制帶寬的命令。實時帶寬獲取接口模塊,用于負責獲取或接收獲取實時帶寬的命令。歷史帶寬記錄 接口模塊,用于負責獲取或接收歷史帶寬使用記錄的命令。

      基于圖3-3至圖3-6,下面介紹一下帶寬控制裝置的初始化流程,該流程包括步驟1-1)至步驟1-4),其中:

      步驟1-1),tm定期發(fā)送心跳給大數(shù)據(jù)調(diào)度系統(tǒng)(簡稱調(diào)度系統(tǒng)),該心跳用于獲得當前所有的租戶信息和作業(yè)信息。

      這里,所謂心跳就是定時發(fā)送一個定義的結(jié)構(gòu)體(心跳包或心跳幀),讓對方知道自己在線,以確保鏈接的有效性。

      步驟1-2),itm初始化rpc(remoteprocedurecallprotocol,遠程過程調(diào)用協(xié)議)服務(wù)器,接收大數(shù)據(jù)存儲系統(tǒng)(簡稱存儲系統(tǒng))節(jié)點定期發(fā)送來的注冊心跳,根據(jù)該注冊心跳更新維護的存儲系統(tǒng)節(jié)點信息,同時收集tm的租戶和作業(yè)信息,初始化每個租戶的節(jié)流閥的帶寬閾值(即實施例一中的租戶的帶寬閾值,一個租戶對應(yīng)一個節(jié)流閥)。

      步驟1-3),rbm接收大數(shù)據(jù)存儲系統(tǒng)節(jié)點定期發(fā)送來的心跳,以獲得實時帶寬信息。同時開啟實時帶寬計算線程,由于一個租戶可能在多個存儲節(jié)點上發(fā)生數(shù)據(jù)的讀寫,該實時帶寬計算線程的作用就是統(tǒng)計單個租戶在大數(shù)據(jù)集群上不同存儲節(jié)點發(fā)生讀寫操作的帶寬總和,該帶寬總和即為實施例一中的當前帶寬信息。

      步驟1-4),im初始化web服務(wù)器,對用戶提供接口。

      基于圖3-3至圖3-6,下面介紹一下帶寬控制裝置的帶寬限制流程,當管理員調(diào)用im模塊的帶寬限制接口(通常為表述性狀態(tài)傳遞(rest,representationalstatetransfer)接口)進行帶寬限制時,itm需要進行如下操作:

      步驟2-1),itm首先驗證用戶設(shè)置的帶寬閾值是否合理,若不合理則返回錯誤信息,提示用戶使用了不正確的帶寬閾值。若是合理的帶寬閾值,則進行步驟2-2)。

      這里,在具體實現(xiàn)的過程中,判斷是否合理可以根據(jù)預(yù)先設(shè)置的條件來判斷,例如,所述預(yù)先設(shè)置的條件例如可以是帶寬閾值必須為大于等于0數(shù)值,如果用戶設(shè)置為負數(shù),那么該帶寬閾值就是不合理的數(shù)值,則返回錯誤信息。本領(lǐng)域的技術(shù)人員可以根據(jù)實際情況設(shè)置所述條件,這里不再贅述。

      步驟2-2),用戶會通過接口系統(tǒng)將要限制帶寬的租戶信息也傳遞給itm,itm會與tm通信獲得要限制帶寬的租戶信息、帶寬閾值以及該租戶的作業(yè)信息,然后itm根據(jù)租戶信息和帶寬閾值建立租戶信息與帶寬閾值之間的映射列表。

      步驟2-3),接著itm會取得其維護的從存儲系統(tǒng)接收到的存儲節(jié)點信息,將步驟2-2)中的租戶信息和帶寬閾值的映射關(guān)系作為心跳的返回值返回給給每個存儲節(jié)點,存儲節(jié)點接收到返回值后,會更新其維護的節(jié)流閥,每個租戶對應(yīng)一個節(jié)流閥。

      步驟2-4),存儲節(jié)點根據(jù)從itm收到的節(jié)流閥,將其作用在實際發(fā)生數(shù)據(jù)傳輸?shù)木€程上,由于存儲節(jié)點可以計算出當前的實時帶寬,因此將節(jié)流閥跟實時帶寬比較:若節(jié)流閥的帶寬限制值大于實時帶寬,說明沒有超出限制,不做操作;若節(jié)流閥的值小于實時帶寬,說明超出了限制,那么會讓該線程休眠(sleep)一小段時間,直到實時帶寬小于等于節(jié)流閥的帶寬限制值。

      步驟2-5),一個租戶會對應(yīng)多個數(shù)據(jù)傳輸線程,但這些線程共享該租戶的節(jié)流閥,從而可以從線程層面限制住租戶在該存儲節(jié)點上的讀寫帶寬。

      基于圖3-3至圖3-6,下面介紹一下帶寬控制裝置的實時帶寬獲取流程,該流程包括步驟3-1)至步驟3-3),其中:

      步驟3-1),當初始化時,rbm會不斷接收來自存儲節(jié)點的心跳,該心跳包含了所有租戶在該存儲節(jié)點上的實時帶寬值。

      步驟3-2),rbm維護的線程周期性地根據(jù)步驟3-1)中的心跳記錄,計算單個租戶在大數(shù)據(jù)集群中總的實時帶寬的值,并將租戶和實時帶寬值的映射保存。

      步驟3-3),當管理員調(diào)用im模塊的實時帶寬獲取接口(通常為restful接口)時,rbm會根據(jù)用戶傳遞來的租戶信息,去步驟3-2)中保存的映射結(jié)果中查找對應(yīng)租戶的實時速度信息值返回給用戶,這里,所述租戶的實時速度信息可以用來計算該租戶的當前帶寬信息。

      基于圖3-3至圖3-6,下面介紹一下帶寬控制裝置的歷史帶寬獲取流程,該流程包括步驟4-1)和步驟4-2),其中:

      步驟4-1),rbm在計算租戶實時帶寬值時,每一個計算周期都會將結(jié)果保存到metrics系統(tǒng)中,metrics系統(tǒng)可以用來記錄某個指標的歷史值。這些歷史值可以通過某些第三方軟件(如ganglia)存入彈性數(shù)據(jù)庫如環(huán)狀數(shù)據(jù)庫(roundrobindatabase,rrd)。

      步驟4-2),當管理員調(diào)用im模塊的歷史帶寬獲取接口(通常為restful接口)時,會調(diào)用步驟4-1)中的第三方軟件,將彈性數(shù)據(jù)庫中的所有符合范圍的歷史值返回給用戶。

      從以上可以看出,本發(fā)明實施例具有以下有益效果:1)本發(fā)明實施例將帶寬控制從調(diào)度系統(tǒng)中分離出來作為獨立的裝置,即解決了存儲系統(tǒng)無法獲取租戶信息的問題,也實現(xiàn)了將硬盤帶寬和網(wǎng)絡(luò)帶寬作為統(tǒng)一的資源進行隔離和管理。對用戶而言,可以方便的指定存儲系統(tǒng)的實際帶寬,便于理解和操作;對大數(shù)據(jù)系統(tǒng)而言,避免了硬盤和網(wǎng)卡兩種不同帶寬資源相互影響制約,自動調(diào)節(jié),防止了分開限制造成的性能瓶頸和資源浪費。2)本發(fā)明實施例中的帶寬控制裝置對于大數(shù)據(jù)調(diào)度系統(tǒng)和存儲系統(tǒng)而言是非必須的,可以任意啟動和停止帶寬控制裝置而不對原有的調(diào)度系統(tǒng)和存儲系統(tǒng)產(chǎn)生影響。同時,帶寬控制裝置具備了節(jié)點主被切換的功能,保證了其自身的可靠性。3)在大數(shù)據(jù)系統(tǒng)不斷擴大的今天,資源共享和資源隔離是一個非常重要的課題,本發(fā)明實施例可以作用在實現(xiàn)了多租戶資源共享的大數(shù)據(jù)集群上,在不影響原大數(shù)據(jù)系統(tǒng)的情況下,提供了原先沒有的多租戶帶寬資源隔離的功能,具有很高的實用性。

      實施例四

      基于前述的實施例,本發(fā)明實施例提供一種大數(shù)據(jù)集群租戶帶寬控制裝置,該裝置所包括的各單元,例如第一獲取單元、查詢單元、確定單元、第一判斷單元和控制單元等單元,以及各單元所包括的各模塊,都可以通過計算設(shè)備中的處理器來實現(xiàn),當然也可通過具體的邏輯電路實現(xiàn);在具體實施例的過程中,處理器可以為中央處理器(cpu)、微處理器(mpu)、數(shù)字信號處理器(dsp)或現(xiàn)場可編程門陣列(fpga)等。

      圖4為本發(fā)明實施例四大數(shù)據(jù)集群租戶帶寬控制裝置的組成結(jié)構(gòu)示意圖,如圖4所示,該裝置400包括第一獲取單元401、查詢單元402、確定單元403、第一判斷單元404和控制單元405,其中:

      第一獲取單元401,用于獲取來自于調(diào)度系統(tǒng)的帶寬限制命令,所述帶寬限制命令用于限制帶寬,所述帶寬限制命令包括租戶信息;

      查詢單元402,用于根據(jù)所述租戶信息查詢預(yù)設(shè)的關(guān)聯(lián)信息,得到對應(yīng)的帶寬閾值;

      確定單元403,用于確定與所述租戶信息對應(yīng)的租戶的當前帶寬信息;

      第一判斷單元404,用于判斷所述當前帶寬信息與所述帶寬閾值之間的大小關(guān)系,得到判斷結(jié)果;

      控制單元405,用于根據(jù)所述判斷結(jié)果控制所述租戶在存儲系統(tǒng)中所使用的帶寬。

      本發(fā)明實施例中,所述裝置還包括形成單元,用于形成映射關(guān)系,具體地,所述形成單元進一步包括第二獲取單元、第三獲取單元和建立單元,其中:

      第二獲取單元,用于從所述存儲系統(tǒng)獲取租戶信息,根據(jù)所述租戶信息建立本地的租戶列表;

      第三獲取單元,用于從所述存儲系統(tǒng)獲取所述租戶信息對應(yīng)的帶寬閾值;

      建立單元,用于根據(jù)所述租戶信息和所述租戶信息對應(yīng)的帶寬閾值建立關(guān)聯(lián)信息,所述關(guān)聯(lián)信息用于表明租戶信息與帶寬閾值之間的映射關(guān)系。

      本發(fā)明實施例中,所述裝置還包括第二判斷單元和輸出單元,其中:

      所述第二判斷單元,用于判斷所述帶寬閾值是否滿足預(yù)設(shè)的條件,如果不滿足,觸發(fā)所述輸出單元;如果滿足,觸發(fā)所述建立單元;

      所述輸出單元,用于輸出錯誤信息,所述錯誤信息用于提示用戶使用了不正確的帶寬值。

      本發(fā)明實施例中,所述裝置還包括第四獲取單元、第一更新單元、第四獲取單元和第二更新單元,其中:

      所述第四獲取單元,用于從所述調(diào)度系統(tǒng)獲取最新注冊的租戶信息;

      所述第一更新單元,用于根據(jù)所述最新注冊的租戶信息更新本地的租戶列表;

      所述第四獲取單元,用于根據(jù)所述最新注冊的租戶信息獲取對應(yīng)的帶寬閾值;

      所述第二更新單元,用于根據(jù)所述最新注冊的租戶信息及其對應(yīng)的帶寬閾值更新所述關(guān)聯(lián)信息。

      本發(fā)明實施例中,所述控制單元,用于如果所述當前帶寬信息小于等于所述帶寬閾值,則流程結(jié)束;如果所述當前帶寬信息大于所述帶寬閾值,則控制所述租戶下正在運行的線程處于休眠狀態(tài)。

      本發(fā)明實施例中,所述確定單元,包括第一確定模塊和第二確定模塊,其中:

      所述第一確定模塊,用于根據(jù)所述租戶信息確定第一帶寬值,所述第一帶寬值為所述租戶當前在所述存儲系統(tǒng)中每一存儲節(jié)點所使用的帶寬值;

      所述第二確定模塊,用于根據(jù)所述第一帶寬值確定所述租戶的當前帶寬信息。

      這里需要指出的是:以上裝置實施例的描述,與上述方法實施例的描述是類似的,具有同方法實施例相似的有益效果,因此不做贅述。對于本發(fā)明裝置實施例中未披露的技術(shù)細節(jié),請參照本發(fā)明方法實施例的描述而理解,為節(jié)約篇幅,因此不再贅述。

      應(yīng)理解,說明書通篇中提到的“一個實施例”或“一實施例”意味著與實施例有關(guān)的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,在整個說明書各處出現(xiàn)的“在一個實施例中”或“在一實施例中”未必一定指相同的實施例。此外,這些特定的特征、結(jié)構(gòu)或特性可以任意適合的方式結(jié)合在一個或多個實施例中。應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

      需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個…...”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。

      在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實現(xiàn)。以上所描述的設(shè)備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結(jié)合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。

      上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個地方,也可以分布到多個網(wǎng)絡(luò)單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來實現(xiàn)本實施例方案的目的。

      另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一 個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。

      本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(readonlymemory,rom)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、rom、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1