国产精品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>

      一種分布式文件處理方法及裝置與流程

      文檔序號:11524238閱讀:188來源:國知局
      一種分布式文件處理方法及裝置與流程

      本發(fā)明涉及數(shù)據(jù)處理技術領域,尤其涉及一種分布式文件處理方法及裝置。



      背景技術:

      作為新興的網絡存儲技術,ceph提供了一個性能可靠、擴展性好的、統(tǒng)一的、分布式存儲系統(tǒng),是一個免費開源軟件。不同于swift只提供對象存儲服務,ceph同時還提供塊存儲,文件存儲等存儲服務。

      ceph系統(tǒng)可以大致劃分為四部分:client(客戶端);mds(元數(shù)據(jù)服務器,metadataservercluster),用于緩存和同步元數(shù)據(jù);osd(objectstoragecluster,對象存儲集群),用于存儲數(shù)據(jù);mon(clustermonitors,集群監(jiān)控器),執(zhí)行監(jiān)視功能。

      對于ceph文件系統(tǒng),用戶終端需要在本地安裝相應的客戶端軟件包,并掛載ceph文件系統(tǒng),才能對ceph文件系統(tǒng)進行訪問,現(xiàn)有的ceph文件系統(tǒng)有兩種掛載方式:基于內核驅動掛載和用戶空間掛載,對應的軟件分別為ceph-fuse和mount.ceph。對于這兩種掛載方式,在掛載ceph文件系統(tǒng)之前,均需要進行cephx密鑰認證,并向集群監(jiān)控器申請服務ip和端口。當集群監(jiān)控器的監(jiān)聽端口、服務ip或者cephx認證密鑰發(fā)生變化時,客戶端需要相應更改掛載項,并且由于部分操作系統(tǒng)不支持軟件包的安裝,如windows系統(tǒng)或者unix系統(tǒng),則安裝了這部分操作系統(tǒng)的終端無法接入文件系統(tǒng),或接入到文件系統(tǒng)的過程相當復雜繁瑣,時間消耗較長。



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

      本發(fā)明實施例提供一種分布式文件處理方法及裝置,用以解決現(xiàn)有技術中不同操作系統(tǒng)的終端無法接入到文件系統(tǒng),或接入到文件系統(tǒng)的過程復雜,耗時較長的問題。

      本發(fā)明實施例提供的分布式文件處理方法包括:

      元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求,所述文件讀寫請求是所述終端根據(jù)掛載的所述元數(shù)據(jù)服務器的共享目錄發(fā)送的;

      所述元數(shù)據(jù)服務器根據(jù)所述共享目錄掛載的文件系統(tǒng),向所述文件系統(tǒng)的存儲集群發(fā)送所述文件讀寫請求,所述元數(shù)據(jù)服務器與所述存儲集群位于同一文件系統(tǒng)集群中。

      可選的,所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      所述元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求,包括:

      所述主節(jié)點服務器接收終端發(fā)送的文件讀寫請求;

      所述元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求之后,還包括:

      所述主節(jié)點服務器在確定所述文件讀寫請求為多個文件的讀寫請求時,根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器;

      所述主節(jié)點服務器將所述文件讀寫請求通過內部傳輸通道發(fā)送給所述備節(jié)點服務器。

      可選的,所述根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器,包括:

      針對一個元數(shù)據(jù)服務器,所述元數(shù)據(jù)服務器根據(jù)以下公式計算所述元數(shù)據(jù)服務器的工作量:

      gk=nk*tk

      其中,nk為第k元數(shù)據(jù)服務器的緩存中存儲的文件讀寫請求的數(shù)量,tk為第k元數(shù)據(jù)服務器處理緩存中所有的文件讀寫請求所需的總時間,gk為第k元數(shù)據(jù)服務器的工作量。

      可選的,所述元數(shù)據(jù)服務器的對外存儲服務ip為同一虛擬ip;所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      還包括:所述主節(jié)點服務器將所述主節(jié)點服務器的服務訪問端口與所述虛擬ip進行綁定。

      可選的,還包括:

      所述元數(shù)據(jù)服務器接收集群監(jiān)控器的狀態(tài)變更信息,所述集群監(jiān)控器屬于所述文件系統(tǒng)集群。

      可選的,還包括:

      所述元數(shù)據(jù)服務器向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,以確定所述任一元數(shù)據(jù)服務器的工作狀態(tài)。

      可選的,所述元數(shù)據(jù)服務器向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,包括:

      所述元數(shù)據(jù)服務器發(fā)送icmp數(shù)據(jù)包;或,

      所述元數(shù)據(jù)服務器監(jiān)控所述任一元數(shù)據(jù)服務器的服務訪問端口的狀態(tài);或,

      所述元數(shù)據(jù)服務器監(jiān)控所述任一元數(shù)據(jù)服務器的服務可用性。

      可選的,所述共享目錄由網絡文件系統(tǒng)nfs提供。

      一種分布式文件處理裝置,包括:

      接收模塊,用于接收終端發(fā)送的文件讀寫請求,所述文件讀寫請求是根據(jù)所述終端掛載的元數(shù)據(jù)服務器的共享目錄發(fā)送的;

      發(fā)送模塊,用于根據(jù)所述共享目錄掛載的文件系統(tǒng),向所述文件系統(tǒng)的存儲集群發(fā)送所述文件讀寫請求,所述元數(shù)據(jù)服務器與所述存儲集群位于同一文件系統(tǒng)集群中。

      可選的,所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      還包括處理模塊,用于:

      在確定所述文件讀寫請求為多個文件的讀寫請求時,根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器;

      將所述文件讀寫請求通過內部傳輸通道發(fā)送給所述備節(jié)點服務器。

      可選的,所述處理模塊,具體用于:

      針對一個元數(shù)據(jù)服務器,根據(jù)以下公式計算所述元數(shù)據(jù)服務器的工作量:

      gk=nk*tk

      其中,nk為第k元數(shù)據(jù)服務器的緩存中存儲的文件讀寫請求的數(shù)量,tk為第k元數(shù)據(jù)服務器處理緩存中所有的文件讀寫請求所需的總時間,gk為第k元數(shù)據(jù)服務器的工作量。

      可選的,所述元數(shù)據(jù)服務器的對外存儲服務ip為同一虛擬ip;所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      還包括綁定模塊,用于將所述主節(jié)點服務器的服務訪問端口與所述虛擬ip進行綁定。

      可選的,所述接收模塊,還用于:

      接收集群監(jiān)控器的狀態(tài)變更信息,所述集群監(jiān)控器屬于所述文件系統(tǒng)集群。

      可選的,所述發(fā)送模塊,還用于:

      向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,以確定所述任一元數(shù)據(jù)服務器的工作狀態(tài)。

      可選的,所述發(fā)送模塊,具體用于:

      發(fā)送icmp數(shù)據(jù)包;或,

      監(jiān)控所述任一元數(shù)據(jù)服務器的訪問端口的狀態(tài);或,

      監(jiān)控所述任一元數(shù)據(jù)服務器的服務可用性。

      可選的,所述共享目錄由網絡文件系統(tǒng)nfs提供。

      本發(fā)明實施例中,終端上掛載了元數(shù)據(jù)服務器提供的共享目錄,終端需要進行文件的存取時,根據(jù)共享目錄,向元數(shù)據(jù)服務器發(fā)送文件讀寫請求。元數(shù)據(jù)服務器上的共享目錄掛載了文件系統(tǒng),元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求后,根據(jù)共享目錄內掛載的文件系統(tǒng),向文件系統(tǒng)的存儲集群發(fā)送文件讀寫請求,存儲集群即可根據(jù)該文件讀寫請求執(zhí)行相應的讀寫操作。本發(fā)明實施例通過兩級掛載,賦予終端對文件系統(tǒng)的訪問能力,且終端無需安裝相應的文件系統(tǒng)客戶端軟件。同時,由于元數(shù)據(jù)服務器與存儲集群位于同一個文件系統(tǒng)集群,則元數(shù)據(jù)服務器與存儲集群具有相同的集群屬性,元數(shù)據(jù)服務器上掛載文件系統(tǒng)時,無需進行密鑰認證的過程,避免了終端繁瑣的配置操作以及軟件安裝和前期的準備工作。不同操作系統(tǒng)的終端也可通過直接掛載共享文件,從而訪問文件系統(tǒng),免去了終端接入到文件系統(tǒng)的復雜過程,節(jié)省了時間開銷和人力物力的資源投入。此外,當監(jiān)聽端口、對外存儲服務ip或者cephx認證密鑰發(fā)生變化時,由于對文件系統(tǒng)的掛載是在元數(shù)據(jù)服務器上,因此,終端無需更改掛載項,終端進行一次配置,即可持續(xù)性使用文件系統(tǒng)的服務。

      附圖說明

      為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明實施例中一種分布式文件處理方法的流程圖;

      圖2為本發(fā)明實施例中主節(jié)點服務器向備節(jié)點服務器分發(fā)文件的示意圖;

      圖3為本發(fā)明的具體實施例中分布式文件處理的系統(tǒng)框架的示意圖;

      圖4為本發(fā)明實施例中一種分布式文件處理裝置的結構示意圖。

      具體實施方式

      為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

      現(xiàn)有的ceph文件系統(tǒng)的兩種掛載方式:基于內核驅動掛載和用戶空間掛載,在掛載文件系統(tǒng)時,都需要加載cephx認證密鑰然后通過訪問cephmon的監(jiān)聽端口來尋求服務??紤]以下兩種情況:

      1、mon災備切換模式下,新的mon節(jié)點加入,或者mon節(jié)點的ip、監(jiān)聽端口需要更換時,需要人為改變客戶端的服務接入ip和端口參數(shù),以保證能正確接入ceph文件系統(tǒng)進行數(shù)據(jù)讀寫操作。

      2、通常,對于在客戶端掛載ceph文件系統(tǒng),終端需要安裝ceph-fuse軟件包以及相關的依賴包,并且得到cephx認證密鑰才能完成。而部分操作系統(tǒng)內置安裝源中可能沒有ceph-fuse客戶端軟件及相關依賴包,或者操作系統(tǒng)本身并不支持ceph-fuse的軟件,例如windows和aix,以及有些服務器節(jié)點因已安裝敏感應用而要求不能隨意更新軟件源、依賴包,在終端上安裝ceph-fuse將會牽扯大量前期準備操作。而對于mount.ceph掛載方式,操作系統(tǒng)不支持的問題顯得更為突出。mount.ceph需要操作系統(tǒng)內核的支持,然而不是所有版本的操作系統(tǒng)都支持此掛載方式。對于支持內核驅動掛載的部分操作系統(tǒng),由于操作系統(tǒng)的內核版本過低,需要升級相應內核來支持ceph掛載,這不僅過程繁瑣,還會給部署了敏感業(yè)務的ceph文件系統(tǒng)服務器帶來極大風險。

      由此可見,上述兩種情況對于生產環(huán)境服務的部署,災備模式下的服務恢復等都會增加相應的時間開銷,這顯然不滿足業(yè)務時效性的要求。而隨著集群規(guī)模的擴大,相應操作則需要更多的人力物力的資源投入。因此,需要一種不用在終端上安裝客戶端的更通用和便捷的方案,來使用ceph提供的大容量存儲空間。

      為了解決上述問題,本發(fā)明實施例提供了一種分布式文件處理方法,如圖1所示,包括以下步驟:

      步驟101、元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求,所述文件讀寫請求是根據(jù)所述終端掛載的所述元數(shù)據(jù)服務器的共享目錄發(fā)送的。

      步驟102、所述元數(shù)據(jù)服務器根據(jù)所述共享目錄掛載的文件系統(tǒng),向所述文件系統(tǒng)的存儲集群發(fā)送所述文件讀寫請求,所述元數(shù)據(jù)服務器與所述存儲集群位于同一文件系統(tǒng)集群中。

      本發(fā)明實施例中,終端上掛載了元數(shù)據(jù)服務器提供的共享目錄,終端需要進行文件的存取時,根據(jù)共享目錄,向元數(shù)據(jù)服務器發(fā)送文件讀寫請求。元數(shù)據(jù)服務器上的共享目錄掛載了文件系統(tǒng),元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求后,根據(jù)共享目錄內掛載的文件系統(tǒng),向文件系統(tǒng)的存儲集群發(fā)送文件讀寫請求,存儲集群即可根據(jù)該文件讀寫請求執(zhí)行相應的讀寫操作。本發(fā)明實施例通過兩級掛載,賦予終端對文件系統(tǒng)的訪問能力,且終端無需安裝相應的文件系統(tǒng)客戶端軟件。同時,由于元數(shù)據(jù)服務器與存儲集群位于同一個文件系統(tǒng)集群,則元數(shù)據(jù)服務器與存儲集群具有相同的集群屬性,元數(shù)據(jù)服務器上掛載文件系統(tǒng)時,無需進行密鑰認證的過程,避免了終端繁瑣的配置操作以及軟件安裝和前期的準備工作。不同操作系統(tǒng)的終端也可通過直接掛載共享文件,從而訪問文件系統(tǒng),免去了終端接入到文件系統(tǒng)的復雜過程,節(jié)省了時間開銷和人力物力的資源投入。此外,當監(jiān)聽端口、對外存儲服務ip或者cephx認證密鑰發(fā)生變化時,由于對文件系統(tǒng)的掛載是在元數(shù)據(jù)服務器上,因此,終端無需更改掛載項,終端進行一次配置,即可持續(xù)性使用文件系統(tǒng)的服務。

      本發(fā)明實施例中,共享目錄由共享文件系統(tǒng)提供,共享文件系統(tǒng)安裝于元數(shù)據(jù)服務器,這樣元數(shù)據(jù)服務器可利用共享文件系統(tǒng)將共享目錄提供給用戶終端。元數(shù)據(jù)服務器上支持大部分共享文件系統(tǒng),但為了保證封裝服務的用戶友好性,本發(fā)明實施例中推薦采用nfs(networkfilesystem,網絡文件系統(tǒng)),它允許網絡中的計算機之間通過tcp/ip網絡共享資源。nfs因其能通過tcp/ip(transmissioncontrolprotocol/internetprotocol,傳輸控制協(xié)議/因特網互聯(lián)協(xié)議)網絡實現(xiàn)網絡中的計算機的資源共享功能而被業(yè)界廣泛應用。將元數(shù)據(jù)服務器作為nfs的服務器端,在元數(shù)據(jù)服務器中配置/etc/exportfs文件,添加nfs相關共享目錄的配置語句。將用戶終端作為nfs的客戶端,在用戶終端中掛載nfs的共享目錄。在nfs的應用中,本地nfs的客戶端可以透明地讀寫位于遠端nfs服務器上的文件,就像訪問本地文件一樣。相較于其他網絡共享文件系統(tǒng),nfs具有l(wèi)inux默認安裝,內核直接支持,配置簡易等特點。并且共享文件系統(tǒng)采用nfs帶來另一好處便是:用戶終端便只需通過內核中提供的nfs客戶端即可掛載元數(shù)據(jù)服務器中的共享目錄,從而訪問共享目錄中掛載的文件系統(tǒng),簡化了客戶端配置操作。

      本發(fā)明實施例中,將文件系統(tǒng)掛載于元數(shù)據(jù)服務器,可通過在元數(shù)據(jù)服務器內封裝ceph-fuse軟件實現(xiàn),這樣可將元數(shù)據(jù)服務器作為該文件系統(tǒng)的客戶端。另一方面,將元數(shù)據(jù)服務器中的共享目錄提供給用戶終端進行掛載,由于本發(fā)明實施例推薦nfs支持這一功能,因此,在元數(shù)據(jù)服務器內還需封裝nfs,即元數(shù)據(jù)服務器又作為用戶終端內的nfs服務器。本發(fā)明實施例通過兩層服務器-客戶端結構,兩層掛載,將文件系統(tǒng)共享給用戶終端,免去了集群監(jiān)控器對用戶終端的監(jiān)控,也就是說,用戶終端無需通過集群監(jiān)控器的密鑰認證即可尋求到ceph文件系統(tǒng)的服務。

      集群監(jiān)控器的狀態(tài)發(fā)生變更時,其變更包括新的集群監(jiān)控器加入、ip更換、監(jiān)控端口改變等,向文件系統(tǒng)的客戶端,在本發(fā)明實施例中為元數(shù)據(jù)服務器發(fā)送狀態(tài)變更信息,元數(shù)據(jù)服務器接收集群監(jiān)控器的狀態(tài)變更信息,所述集群監(jiān)控器屬于所述文件系統(tǒng)集群。也就是說,集群監(jiān)控器與元數(shù)據(jù)服務器屬于同一個文件系統(tǒng)集群。這樣一來,存儲集群、元數(shù)據(jù)服務器和集群監(jiān)控器均屬于同一個文件系統(tǒng)集群中,因此,內部狀態(tài)發(fā)生改變時,元數(shù)據(jù)服務器上的客戶端做出相應更新即可,無需用戶終端進行更新操作。

      元數(shù)據(jù)(metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(dataaboutdata),主要是描述數(shù)據(jù)屬性的信息,用來支持如指示存儲位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。元數(shù)據(jù)算是一種電子式目錄,描述并收藏了數(shù)據(jù)的內容或特色,進而達成協(xié)助數(shù)據(jù)檢索的目的。元數(shù)據(jù)服務器是對元數(shù)據(jù)進行存儲和管理,對于文件系統(tǒng),在數(shù)據(jù)存儲時,系統(tǒng)將待存儲的文件分成多個塊結構,然后對每個塊結構進行分別存儲,元數(shù)據(jù)服務器中即存儲了各個塊結構的標識、存儲位置、存儲時間等信息,這樣,在數(shù)據(jù)寫入和讀取的過程中,元數(shù)據(jù)服務器可指示數(shù)據(jù)的存儲位置,支持數(shù)據(jù)查找等。

      本發(fā)明實施例中,元數(shù)據(jù)服務器中的ceph-fuse和nfs也可封裝于其它模塊或服務器中,但封裝于元數(shù)據(jù)服務器是最優(yōu)方案。這是由于將ceph-fuse和nfs封裝于其它模塊,待存儲的數(shù)據(jù)也需通過元數(shù)據(jù)服務器,將數(shù)據(jù)的存儲數(shù)據(jù)等信息進行存儲,同樣,讀取存儲的數(shù)據(jù)也需通過元數(shù)據(jù)服務器的指示,從而確定數(shù)據(jù)的存儲位置。因此,將ceph-fuse和nfs封裝于元數(shù)據(jù)服務器中,可以使數(shù)據(jù)流的路徑最短,節(jié)省了網絡資源。

      為了保證文件系統(tǒng)集群的高可用,本發(fā)明實施例中的元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器。其中,主節(jié)點服務器可以為一個,備節(jié)點服務器為多個。則所述元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求,包括:

      所述主節(jié)點服務器接收終端發(fā)送的文件讀寫請求;

      所述元數(shù)據(jù)服務器接收終端發(fā)送的文件讀寫請求之后,還包括:

      所述主節(jié)點服務器在確定所述文件讀寫請求為多個文件的讀寫請求時,根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器;

      所述主節(jié)點服務器將所述文件讀寫請求通過內部傳輸通道發(fā)送給所述備節(jié)點服務器。

      具體來說,用戶終端向文件系統(tǒng)發(fā)送文件讀寫請求,由于文件系統(tǒng)內包括多個元數(shù)據(jù)服務器,一般由主節(jié)點服務器接收該文件讀寫請求,并處理文件讀寫請求后發(fā)送給文件系統(tǒng)底層的存儲集群。為了減輕主節(jié)點服務器端文件存儲尋址壓力,當主節(jié)點服務器接收到的文件讀寫請求是關于多個文件的讀寫時,則需要對主節(jié)點服務器進行負載均衡,主節(jié)點服務器可通過軟件將文件分發(fā)給各個備節(jié)點服務器。這樣,通過利用各備節(jié)點服務器的文件系統(tǒng)訪問能力,達到了文件級別的并行存儲,提高了文件讀寫效率和硬件資源的利用率。具體做法可以為,主節(jié)點在接收到多個文件后,針對每一個文件,根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理該文件的備節(jié)點服務器,并將該文件的讀寫請求通過內部專用文件轉發(fā)網段發(fā)送給該備節(jié)點服務器。

      處理文件讀寫請求的備節(jié)點服務器的選擇,為選出工作量最少的元數(shù)據(jù)服務器。所述根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器,包括:

      針對一個元數(shù)據(jù)服務器,所述元數(shù)據(jù)服務器根據(jù)以下公式計算所述元數(shù)據(jù)服務器的工作量:

      gk=nk*tk………………公式1

      其中,nk為第k元數(shù)據(jù)服務器的緩存中存儲的文件讀寫請求的數(shù)量,tk為第k元數(shù)據(jù)服務器處理緩存中所有的文件讀寫請求所需的總時間,gk為第k元數(shù)據(jù)服務器的工作量。

      具體來說,主節(jié)點服務器接收到多個文件,將每個文件放在緩存排隊,一個一個對文件進行處理。處理每個文件時,根據(jù)公式1計算出每個元數(shù)據(jù)服務器的工作量,從所有元數(shù)據(jù)服務器中選出工作量最少的。舉例來說,如圖2所示,主節(jié)點服務器接到的文件讀寫請求中包括3個文件,根據(jù)緩存中的排隊順序,標記為文件a、文件b、文件c。首先處理文件a,主節(jié)點服務器計算每個元數(shù)據(jù)服務器的工作量,即將元數(shù)據(jù)服務器的緩存中待處理的文件讀寫請求的數(shù)量與處理這些待處理的文件讀寫請求所需時間進行相乘,得出該元數(shù)據(jù)服務器的工作量,這個工作量也就是該元數(shù)據(jù)服務器在處理文件a之前剩余的工作量。從所有元數(shù)據(jù)服務器中找出工作量最少的,將文件a發(fā)送給該元數(shù)據(jù)服務器。需要說明的是,該元數(shù)據(jù)服務器可以是備節(jié)點服務器,也可能是主節(jié)點服務器,若為主節(jié)點服務器,則該主節(jié)點服務器直接處理,無需發(fā)送過程。將文件a發(fā)送給處理的元數(shù)據(jù)服務器后,考察文件b,同樣的,主節(jié)點服務器計算每個元數(shù)據(jù)服務器在處理文件b之前剩余的工作量,從中選出工作量最少的元數(shù)據(jù)服務器,來處理文件b。對于文件c也做同樣處理。通過公式1分配文件處理任務,保證了選取的服務器為最閑,更好地實現(xiàn)負載均衡和并行處理,提高了文件的處理效率。

      本發(fā)明實施例除了滿足負載均衡,還通過多個備節(jié)點服務器保證整個元數(shù)據(jù)服務器集群的高可用。其中,所述元數(shù)據(jù)服務器向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,以確定所述任一元數(shù)據(jù)服務器的工作狀態(tài)。

      元數(shù)據(jù)服務器集群中,在部分元數(shù)據(jù)服務器上安裝高可用集群軟件。每個元數(shù)據(jù)服務器通過高可用集群軟件,向其余部署了高可用集群軟件的元數(shù)據(jù)服務器發(fā)送檢測報文,以檢測每個元數(shù)據(jù)服務器的工作狀態(tài)。對于主節(jié)點服務器,若檢測到任一備節(jié)點服務器的工作狀態(tài)為非正常狀態(tài),則將該備節(jié)點服務器剔除文件系統(tǒng)集群。對于備節(jié)點服務器,若檢測到主節(jié)點服務器的工作狀態(tài)為非正常狀態(tài),則根據(jù)預先設定的排序,將位于第一位的備節(jié)點服務器作為主節(jié)點服務器,高可用集群軟件將所有服務整體遷移至該第一位的備節(jié)點服務器上,因此,所有備節(jié)點服務器和主節(jié)點服務器上封裝的軟件均一致,使得每個備節(jié)點服務器均能提供與主節(jié)點服務器相同的服務。

      較佳地,所述元數(shù)據(jù)服務器向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,包括:

      所述元數(shù)據(jù)服務器發(fā)送icmp數(shù)據(jù)包;或,

      所述元數(shù)據(jù)服務器監(jiān)控所述任一元數(shù)據(jù)服務器的訪問端口的狀態(tài);或,

      所述元數(shù)據(jù)服務器監(jiān)控所述任一元數(shù)據(jù)服務器的服務可用性。

      本發(fā)明實施例中的高可用集群軟件推薦采用keepalived軟件。keepalived軟件綜合了大多數(shù)高可用軟件的優(yōu)點,該軟件能為集群提供更好的可擴展性、高可用性和負載均衡能力。keepalived軟件的高可用實現(xiàn)機制主要作用于服務器os七層模型的第3層網絡層,第4層傳輸層和第7層應用層。對于網絡層,定期向對方服務器發(fā)送icmp(internetcontrolmessageprotocol,網絡控制報文協(xié)議)的數(shù)據(jù)包,若icmp數(shù)據(jù)包發(fā)送失敗,則表明對方服務器的網絡不通,無法成功接受數(shù)據(jù),需將其剔除服務器集群。對于傳輸層,keepalived通過監(jiān)控對方服務器tcp端口的狀態(tài)來判定對方服務器傳輸層的狀態(tài),若端口為關閉狀態(tài),則表明傳輸層未非正常狀態(tài),則將其剔除服務器集群。對于應用層,通過檢查對方服務器提供服務的可用性來判定服務器是否工作正常,如對方服務器是否能正常登陸、是否能正常處理待讀寫的文件等。無論工作于哪一層,keepalived一旦發(fā)現(xiàn)集群中某個元數(shù)據(jù)服務器失效,便會將其剔除集群。當處于非正常狀態(tài)的原數(shù)據(jù)服務器為主節(jié)點服務器時,keepalived會將整個服務遷移至備節(jié)點服務器上,備節(jié)點服務器提供與主節(jié)點服務器相同的服務。則當作為主節(jié)點的元數(shù)據(jù)服務器宕機時,其所提供的服務將整體切換至備節(jié)點,保證了服務提供的連續(xù)性。

      在上述主節(jié)點的變換中,為了保證不影響用戶終端的接入,所述元數(shù)據(jù)服務器的對外存儲服務ip為同一虛擬ip;所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器。本發(fā)明實施例還包括:所述主節(jié)點服務器將所述主節(jié)點服務器的服務訪問端口與所述虛擬ip進行綁定。

      也就是說,整個文件系統(tǒng)向用戶終端提供服務的ip為虛擬ip(vip)。所有元數(shù)據(jù)服務器均存有該虛擬ip,其中主節(jié)點服務器通過軟件將服務訪問端口與虛擬ip進行綁定,用戶終端可以通過虛擬ip直接連接到主節(jié)點服務器的服務訪問端口。當主節(jié)點服務器宕機后,不僅所有的服務均遷移到備節(jié)點服務器中,該備節(jié)點服務器還通過軟件將服務訪問端口與虛擬ip進行綁定,此時主節(jié)點服務器的服務訪問端口與虛擬ip解除綁定。這樣,用戶終端通過虛擬ip是連接到備節(jié)點服務器的服務訪問端口,由于用戶終端使用的ip為虛擬ip,該無論文件系統(tǒng)內部的服務器如何改變,其虛擬ip不變,則用戶終端無需跟隨服務器的改變進行更新,進一步保證用戶使用服務的連續(xù)性。這樣,由于提供服務的虛擬ip是固定的,文件系統(tǒng)內所做的任何修改并不影響用戶終端對文件系統(tǒng)的接入,即文件系統(tǒng)的任何非nfs服務器的修改對于用戶終端都是“透明的”。所以本發(fā)明實施例的方案對于用戶終端而言,能做到掛載項的一次配置,持續(xù)可用。

      此外,用戶終端可以配置/etc/fstab信息,通過文件系統(tǒng)提供的服務訪問端口對共享目錄進行自動化掛載,即ceph系統(tǒng)的自動化掛載,來滿足用戶終端的自動化部署要求。

      為了更清楚地理解本發(fā)明,下面以具體的實施例對方案進行詳細描述,圖3顯示了本發(fā)明的一個具體實施例中的系統(tǒng)框架。

      如圖3所示,包括用戶終端和服務器端。

      其中,用戶終端中安裝有nfs客戶端(nfsclient),掛載了元數(shù)據(jù)服務器中的共享目錄。

      服務器端包括ceph文件系統(tǒng)集群,ceph文件系統(tǒng)集群中包括存儲集群,存儲集群中有多個存儲單元,即osd.0、osd.1……osd.n,存儲單元中將文件分解成固定大小的數(shù)據(jù)塊進行存儲。

      ceph文件系統(tǒng)集群中還包括多個元數(shù)據(jù)服務器,即mds模塊所在的服務器,其中一個元數(shù)據(jù)服務器為主節(jié)點服務器,即圖中的mds(active),其余元數(shù)據(jù)服務器為備節(jié)點服務器,即圖中的mds(standby)。無論主節(jié)點服務器還是備節(jié)點服務器,每個元數(shù)據(jù)服務器中安裝的軟件均相同,保證了整個元數(shù)據(jù)服務器集群的高可用。另外,通過軟件將虛擬ip(vip)綁定于主節(jié)點服務器,這樣,用戶終端訪問文件系統(tǒng)時,總是通過該虛擬ip連接于其綁定的端口,從而獲得文件系統(tǒng)的服務。

      集群中的每個元數(shù)據(jù)服務器中均安裝有mds模塊、ceph-fuse軟件、keepalived軟件和nfs服務器端(nfsserver)軟件。當然,在整個ceph文件系統(tǒng)集群中還包括部分元數(shù)據(jù)服務器中未安裝mds模塊、ceph-fuse軟件、keepalived軟件和nfs服務器端軟件,則這部分元數(shù)據(jù)服務器不包括在本發(fā)明實施例的討論范圍內。其中,ceph-fuse使得元數(shù)據(jù)服務器作為ceph文件系統(tǒng)的客戶端,將ceph文件系統(tǒng)掛載于元數(shù)據(jù)服務器的本地文件夾。nfsserver將該本地文件夾作為共享目錄對外共享,使得元數(shù)據(jù)服務器作為nfs的服務器端,安裝共享目錄,從而元數(shù)據(jù)服務器將ceph文件系統(tǒng)掛載在共享目錄中。keepalived使得了主節(jié)點服務器為工作狀態(tài)為正常狀態(tài)的元數(shù)據(jù)服務器,保證了元數(shù)據(jù)服務器集群的高可用性和工作持續(xù)性。

      本發(fā)明的一個具體實施例將ceph-fuse軟件、keepalived軟件和nfs服務器端(nfsserver)軟件進行服務封裝,這樣,元數(shù)據(jù)服務器可以向外提供上述的各項服務。

      ceph文件系統(tǒng)集群中還包括多個集群監(jiān)控器,即mon.a、mon.b……,集群監(jiān)控器在ceph文件系統(tǒng)的客戶端接入時,進行cephx密鑰認證,且在集群監(jiān)控器的ip或端口等更換時,向客戶端發(fā)送消息,以使客戶端的進行相應的更新。但在本發(fā)明的一個具體實施例中,由于ceph文件系統(tǒng)的客戶端為元數(shù)據(jù)服務器,而元數(shù)據(jù)服務器與集群監(jiān)控器在同一個ceph文件系統(tǒng)集群中,因此,客戶端的接入無線進行cephx密鑰認證,且ceph文件系統(tǒng)集群內部的狀態(tài)或裝置的更換,也不影響用戶終端的使用服務。

      此外,圖3中,publicnetwork是ceph文件系統(tǒng)集群對外提供讀寫服務的公有網段;clusternetwork是ceph文件系統(tǒng)集群中各osd間傳輸文件、同步文件、發(fā)送心跳的專用網段;transnetwork是服務封裝中主節(jié)點服務器向備用節(jié)點服務器分發(fā)文件讀寫任務的專用網段。各網段相互獨立,分工明確,保證服務的安全、高效運作。

      基于相同的技術構思,本發(fā)明實施例還提供一種分布式文件處理裝置,如圖4所示,包括:

      接收模塊401,用于接收終端發(fā)送的文件讀寫請求,所述文件讀寫請求是根據(jù)所述終端掛載的元數(shù)據(jù)服務器的共享目錄發(fā)送的;

      發(fā)送模塊402,用于根據(jù)所述共享目錄掛載的文件系統(tǒng),向所述文件系統(tǒng)的存儲集群發(fā)送所述文件讀寫請求,所述元數(shù)據(jù)服務器與所述存儲集群位于同一文件系統(tǒng)集群中。

      可選的,所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      還包括處理模塊403,用于:

      在確定所述文件讀寫請求為多個文件的讀寫請求時,根據(jù)所有元數(shù)據(jù)服務器的工作量,確定出處理所述文件讀寫請求的備節(jié)點服務器;

      將所述文件讀寫請求通過內部傳輸通道發(fā)送給所述備節(jié)點服務器。

      可選的,所述處理模塊403,具體用于:

      針對一個元數(shù)據(jù)服務器,根據(jù)以下公式計算所述元數(shù)據(jù)服務器的工作量:

      gk=nk*tk

      其中,為第k元數(shù)據(jù)服務器的緩存中存儲的文件讀寫請求的數(shù)量,為第k元數(shù)據(jù)服務器處理緩存中所有的文件讀寫請求所需的總時間,為第k元數(shù)據(jù)服務器的工作量。

      可選的,所述元數(shù)據(jù)服務器的對外存儲服務ip為同一虛擬ip;所述元數(shù)據(jù)服務器包括主節(jié)點服務器和備節(jié)點服務器;

      還包括綁定模塊404,用于將所述主節(jié)點服務器的服務訪問端口與所述虛擬ip進行綁定。

      可選的,所述接收模塊401,還用于:

      接收集群監(jiān)控器的狀態(tài)變更信息,所述集群監(jiān)控器屬于所述文件系統(tǒng)集群。

      可選的,所述發(fā)送模塊402,還用于:

      向所述文件系統(tǒng)集群中的任一元數(shù)據(jù)服務器發(fā)送檢測報文,以確定所述任一元數(shù)據(jù)服務器的工作狀態(tài)。

      可選的,所述發(fā)送模塊402,具體用于:

      發(fā)送icmp數(shù)據(jù)包;或,

      監(jiān)控所述任一元數(shù)據(jù)服務器的服務訪問端口的狀態(tài);或,

      監(jiān)控所述任一元數(shù)據(jù)服務器的服務可用性。

      可選的,所述共享目錄由網絡文件系統(tǒng)nfs提供。

      總的來說,ceph文件系統(tǒng)中集群監(jiān)控器所做的任何更改都由元數(shù)據(jù)服務器作相應更新操作,達到了更改操作的集中處理,簡化了更改操作步驟。并且由于提供共享服務的vip是固定的,服務端所做的任何修改并不影響終端對文件系統(tǒng)的接入,即服務端的任何非nfsserver的修改對于終端都是“透明的”。所以本發(fā)明實施例對于用戶終端而言,能做到掛載項的一次配置,持續(xù)可用。

      另外,本發(fā)明實施例中的用戶終端利用系統(tǒng)內核提供的nfs客戶端連接封裝服務的nfsserver,即元數(shù)據(jù)服務器,通過服務中轉完成了對ceph文件系統(tǒng)的訪問,達到了系統(tǒng)的負載均衡,簡化了存儲服務接入步驟,從而減少了用戶終端的部署耗時,提高了工作效率。并且用戶終端可以通過配置,利用封裝服務提供的服務訪問端口對共享目錄進行自動化掛載,滿足了用戶終端的自動化部署要求。

      高可用性能方面,本發(fā)明實施例實現(xiàn)了整個系統(tǒng)“無單點故障”。對于文件讀寫服務提供者ceph文件系統(tǒng)集群而言,其穩(wěn)定性依賴于自身的高可用設計,即當mon、mds、osd故障后都有相應的切換機制。并且由于數(shù)據(jù)是一式三份的存儲模式,文件的安全性、完整性得到了保障。而對于nfs系統(tǒng),每一臺元數(shù)據(jù)服務器都部署了相同的軟件和業(yè)務,其高可用性的實現(xiàn)由keepalived保證。當作為主節(jié)點服務器的mds宕機時,其所提供的服務將整體切換至備節(jié)點服務器,保證了服務提供的連續(xù)性。除此之外,整個系統(tǒng)的網絡連接都采用雙網卡綁定方式,保證了網絡的高可用性能。至此,整個方案實現(xiàn)了軟件、硬件高可用全覆蓋的工作模式。

      本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

      這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

      這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

      顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。

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