本發(fā)明涉及云存儲(chǔ),特別涉及一種云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法。
背景技術(shù):
云存儲(chǔ)采用了云計(jì)算、分布式文件系統(tǒng)以及服務(wù)器集群等技術(shù),將網(wǎng)絡(luò)中各種存儲(chǔ)資源聚合起來,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能,在醫(yī)藥科研、生產(chǎn)和貿(mào)易服務(wù)領(lǐng)域有著廣泛應(yīng)用。目前的云存儲(chǔ)分為公有服務(wù)型存儲(chǔ),即對(duì)企業(yè)或者個(gè)人提供存儲(chǔ)服務(wù);一種是私有架構(gòu)型云存儲(chǔ),即企業(yè)內(nèi)部搭建的基于存儲(chǔ)服務(wù)器集群和分布式文件系統(tǒng),部署在企業(yè)數(shù)據(jù)中心或者安全的節(jié)點(diǎn)托管場(chǎng)所,為企業(yè)自身提供相應(yīng)的存儲(chǔ)服務(wù)。醫(yī)藥云存儲(chǔ)平臺(tái)保密性較高,且存儲(chǔ)過程無需太多I/O操作,因此采用搭建私有云存儲(chǔ)系統(tǒng)來保存其藥品數(shù)據(jù)文件是最好的選擇。目前,私有云存儲(chǔ)搭建方案有很多種:包括鍵值型分布式文件系統(tǒng),采用了分組的方式,服務(wù)器集群由一個(gè)或多個(gè)組構(gòu)成,同組內(nèi)的業(yè)務(wù)節(jié)點(diǎn)為互備關(guān)系。采用分組存儲(chǔ)的方式能夠使存儲(chǔ)服務(wù)器集群更加靈活,可控性也相對(duì)較強(qiáng)。然而,Hadoop作為一個(gè)開源的分布式存儲(chǔ)計(jì)算框架,也有著它自身的缺點(diǎn)。那就是系統(tǒng)架構(gòu)設(shè)計(jì)復(fù)雜,運(yùn)行維護(hù)難度較大。對(duì)云存儲(chǔ)平臺(tái)的使用不僅需要多方面的知識(shí)積累,而且在其運(yùn)行維護(hù)方面也有很多技能去學(xué)習(xí)掌握,從一定程度上限制了醫(yī)藥云存儲(chǔ)平臺(tái)的行業(yè)推廣和使用。在搭建醫(yī)藥信息云存儲(chǔ)平臺(tái)中,還有兩個(gè)影響部署和系統(tǒng)性能的問題:第一個(gè)是運(yùn)行過程中,節(jié)點(diǎn)容易發(fā)生故障。一旦節(jié)點(diǎn)故障發(fā)生而不能準(zhǔn)備及時(shí)地進(jìn)行處理,就會(huì)影響多個(gè)節(jié)點(diǎn)的存儲(chǔ)服務(wù)器集群搭建過程中,每個(gè)節(jié)點(diǎn)都有很多重復(fù)的操作,使得搭建過程非常繁瑣而且容易出錯(cuò);第二個(gè)是因?yàn)楣?jié)點(diǎn)均為普通個(gè)人計(jì)算機(jī),而非小型機(jī)或大型機(jī)之類的專用服務(wù)器,因此數(shù)據(jù)在使用過程中,受到諸如CPU,內(nèi)存以及磁盤I/O等影響較為嚴(yán)重。
技術(shù)實(shí)現(xiàn)要素:
為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法,包括:
在數(shù)據(jù)在寫入前通過存儲(chǔ)負(fù)載平衡策略確定存儲(chǔ)節(jié)點(diǎn),在數(shù)據(jù)寫入后根據(jù)訪問頻率或節(jié)點(diǎn)存儲(chǔ)容量重新分配副本存儲(chǔ)節(jié)點(diǎn)。
優(yōu)選地,該方法進(jìn)一步包括:在云存儲(chǔ)平臺(tái)的文件系統(tǒng)中設(shè)置節(jié)點(diǎn)選擇與調(diào)度監(jiān)視器,其中節(jié)點(diǎn)選擇策略實(shí)現(xiàn)于名字節(jié)點(diǎn)之中,由名字節(jié)點(diǎn)在選擇業(yè)務(wù)節(jié)點(diǎn)時(shí)調(diào)用,調(diào)度監(jiān)視器用來監(jiān)視服務(wù)器集群運(yùn)行狀況,包括數(shù)據(jù)塊的訪問頻率以及業(yè)務(wù)節(jié)點(diǎn)的存儲(chǔ)容量,系統(tǒng)在閑置狀態(tài)時(shí),管理節(jié)點(diǎn)根據(jù)數(shù)據(jù)訪問頻率和系統(tǒng)容量,調(diào)度副本存放位置;
文件上傳之前,業(yè)務(wù)節(jié)點(diǎn)向名字節(jié)點(diǎn)發(fā)出寫數(shù)據(jù)請(qǐng)求,名字節(jié)點(diǎn)調(diào)用節(jié)點(diǎn)選擇模型,通過調(diào)度監(jiān)視器,獲取服務(wù)器集群運(yùn)行信息,計(jì)算節(jié)點(diǎn)的存儲(chǔ)比例,計(jì)算每個(gè)機(jī)架節(jié)點(diǎn)的存儲(chǔ)比例,并按照備份因子個(gè)數(shù),優(yōu)先選擇存儲(chǔ)比例最高的節(jié)點(diǎn)組成節(jié)點(diǎn)隊(duì)列發(fā)送給客戶端,由客戶端將待存儲(chǔ)的數(shù)據(jù)分割成多個(gè)數(shù)據(jù)塊,存儲(chǔ)在不同的業(yè)務(wù)節(jié)點(diǎn)上;
在所有文件已經(jīng)保存于服務(wù)器集群之后,通過調(diào)度監(jiān)視器收集服務(wù)器集群運(yùn)行信息,獲取到所有節(jié)點(diǎn)的數(shù)據(jù)訪問頻率及所有節(jié)點(diǎn)的存儲(chǔ)容量,若數(shù)據(jù)的訪問頻率超過預(yù)定義閾值,則將副本放置在訪問頻率最低的節(jié)點(diǎn)上;若系統(tǒng)剩余容量低于閾值,則將副本放置在存儲(chǔ)比例最高的節(jié)點(diǎn);
服務(wù)器集群運(yùn)行信息通過云存儲(chǔ)平臺(tái)運(yùn)行信息測(cè)量和展示框架進(jìn)行監(jiān)視,所述框架監(jiān)測(cè)和調(diào)度云存儲(chǔ)平臺(tái)相關(guān)的任務(wù);客戶端在節(jié)點(diǎn)選擇分為兩種方式:客戶端在服務(wù)器集群節(jié)點(diǎn)上的選擇策略與客戶端在服務(wù)器集群節(jié)點(diǎn)外的選擇方式,具體實(shí)現(xiàn)方式如下:
在n個(gè)機(jī)架服務(wù)器集群的每個(gè)機(jī)架設(shè)置TR臺(tái)業(yè)務(wù)節(jié)點(diǎn),副本數(shù)為r;若客戶端在服務(wù)器集群業(yè)務(wù)節(jié)點(diǎn)上,則
a)客戶端向管理節(jié)點(diǎn)發(fā)出寫數(shù)據(jù)請(qǐng)求;
b)管理節(jié)點(diǎn)根據(jù)文件內(nèi)容及系統(tǒng)配置情況,計(jì)算客戶端所在機(jī)架的所有業(yè)務(wù)節(jié)點(diǎn)存儲(chǔ)比例,過程如下:
設(shè)客戶端在第i臺(tái)機(jī)架,初始化被選節(jié)點(diǎn)集合SDN為空;
該機(jī)架第j個(gè)節(jié)點(diǎn)的剩余容量為CLij,存儲(chǔ)的塊數(shù)為BLij,節(jié)點(diǎn)的存儲(chǔ)優(yōu)選比例RSij=CLij/BLij,將存儲(chǔ)優(yōu)選比最高的兩個(gè)節(jié)點(diǎn)放入被選節(jié)點(diǎn)集合,即SDN={DNia、DNib};其中DNia、DNib表示第i個(gè)機(jī)架上的a和b業(yè)務(wù)節(jié)點(diǎn),
c)從剩余每個(gè)機(jī)架中計(jì)算r-2個(gè)存儲(chǔ)比最大的節(jié)點(diǎn),排序后選擇最大的r-2個(gè)節(jié)點(diǎn)放入被選節(jié)點(diǎn)集合SDN,共r個(gè)節(jié)點(diǎn),用來存放數(shù)據(jù)塊及其副本;
d)管理節(jié)點(diǎn)將SDN集合中的節(jié)點(diǎn)分配業(yè)務(wù)節(jié)點(diǎn)給客戶端,由客戶端來寫入;
當(dāng)客戶端不在業(yè)務(wù)節(jié)點(diǎn)上時(shí),則直接計(jì)算服務(wù)器集群中所有節(jié)點(diǎn)的存儲(chǔ)比例,選擇前r個(gè)最大的節(jié)點(diǎn),即為數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn);從個(gè)節(jié)點(diǎn)中,根據(jù)RSij=CLij/BLij選出存儲(chǔ)比例最高的r個(gè)節(jié)點(diǎn),放入SDN列表中,即為選中的最優(yōu)節(jié)點(diǎn)。
本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
本發(fā)明提出了一種云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法,簡(jiǎn)化了服務(wù)器集群部署方式,避免用戶直接對(duì)服務(wù)器集群進(jìn)行操作,保證存儲(chǔ)節(jié)點(diǎn)的合理性和數(shù)據(jù)穩(wěn)定性。
附圖說明
圖1是根據(jù)本發(fā)明實(shí)施例的云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法的流程圖。
具體實(shí)施方式
下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法。圖1是根據(jù)本發(fā)明實(shí)施例的云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法流程圖。
為了更好地管理服務(wù)器集群,本發(fā)明對(duì)云存儲(chǔ)平臺(tái)分布式框架運(yùn)行過程的整個(gè)生命周期進(jìn)行自動(dòng)化管理,包括安裝,搭建以及監(jiān)視,提供可視化界面,提高管理員的效率。同時(shí)存儲(chǔ)資源控制系統(tǒng)進(jìn)行故障報(bào)警及處理。除了對(duì)服務(wù)器集群的運(yùn)行維護(hù)操作,還需要對(duì)服務(wù)器集群的性能進(jìn)行優(yōu)化。服務(wù)器集群中新增節(jié)點(diǎn)后,重新優(yōu)化服務(wù)器集群性能。針對(duì)云存儲(chǔ)服務(wù)器集群在部署、運(yùn)行維護(hù)與使用過程中的種種問題,本發(fā)明針對(duì)搭建的服務(wù)器集群,利用數(shù)據(jù)讀寫階段的節(jié)點(diǎn)調(diào)度優(yōu)化模型,來實(shí)現(xiàn)服務(wù)器集群的便捷管理與優(yōu)化。本發(fā)明將針對(duì)服務(wù)器集群的部署框架、節(jié)點(diǎn)管理和服務(wù)器優(yōu)化調(diào)度的方面進(jìn)行詳細(xì)說明。
本發(fā)明采用主從結(jié)構(gòu),包含一個(gè)管理節(jié)點(diǎn)和多個(gè)業(yè)務(wù)節(jié)點(diǎn)。管理節(jié)點(diǎn)用于與業(yè)務(wù)節(jié)點(diǎn)交互,接受業(yè)務(wù)節(jié)點(diǎn)發(fā)送的心跳請(qǐng)求,完成集中式管理監(jiān)視邏輯,而每個(gè)業(yè)務(wù)節(jié)點(diǎn)負(fù)責(zé)所在節(jié)點(diǎn)的狀態(tài)采集及維護(hù)工作。管理節(jié)點(diǎn)部署在單獨(dú)的節(jié)點(diǎn),作為服務(wù)器集群部署框架的管理節(jié)點(diǎn),其職責(zé)是接收用戶發(fā)送的命令執(zhí)行請(qǐng)求,隨后向業(yè)務(wù)節(jié)點(diǎn)發(fā)送命令,采用JSON方式來發(fā)送命令,該JSON數(shù)據(jù)包括了安裝、開始、停止服務(wù)的配置信息。
業(yè)務(wù)節(jié)點(diǎn)部署在所有待加入服務(wù)器集群的節(jié)點(diǎn)上,用來執(zhí)行由管理節(jié)點(diǎn)發(fā)送的執(zhí)行任務(wù)請(qǐng)求,所執(zhí)行的腳本存儲(chǔ)在管理節(jié)點(diǎn)上的指定目錄下,該腳本將業(yè)務(wù)節(jié)點(diǎn)接收來自管理節(jié)點(diǎn)的命令文件的內(nèi)容轉(zhuǎn)化為字典格式,便于腳本實(shí)現(xiàn)部署時(shí)對(duì)配置的使用。在部署過程中的狀態(tài)和行為傳遞均為由管理節(jié)點(diǎn)發(fā)送給業(yè)務(wù)節(jié)點(diǎn),業(yè)務(wù)節(jié)點(diǎn)接收到某個(gè)操作行為,通過行為執(zhí)行線程來執(zhí)行對(duì)應(yīng)的方法,并將執(zhí)行后的消息通過消息隊(duì)列反饋給管理節(jié)點(diǎn)。
在服務(wù)器集群部署過程中,操作人員通過頁面執(zhí)行不同的行為,管理節(jié)點(diǎn)將該行為發(fā)送給業(yè)務(wù)節(jié)點(diǎn),.再由業(yè)務(wù)節(jié)點(diǎn)的行為執(zhí)行線程來執(zhí)行對(duì)應(yīng)的操作,完成服務(wù)器集群部署。在業(yè)務(wù)節(jié)點(diǎn)執(zhí)行過程中,將服務(wù)器集群中的狀態(tài)信息發(fā)回給管理節(jié)點(diǎn),由管理節(jié)點(diǎn)的有限狀態(tài)機(jī)來進(jìn)行判斷。
在服務(wù)器集群節(jié)點(diǎn)配置中,本發(fā)明默認(rèn)所有節(jié)點(diǎn)均已經(jīng)成功安裝操作系統(tǒng),無論是物理機(jī)還是虛擬機(jī)。節(jié)點(diǎn)加入到服務(wù)器集群中有兩個(gè)步驟,第一是雙方安全認(rèn)證,第二是節(jié)點(diǎn)名的配置。雙方安全認(rèn)證采用Shell腳本來編寫,系統(tǒng)執(zhí)行該腳本,將管理節(jié)點(diǎn)的公鑰文件分發(fā)到各個(gè)業(yè)務(wù)節(jié)點(diǎn),以達(dá)到無密碼登錄的狀態(tài)。
配置服務(wù)器集群服務(wù)包括選擇服務(wù)和選擇服務(wù)所在節(jié)點(diǎn)。目前的服務(wù)信息寫在JSON數(shù)據(jù)中,在選擇服務(wù)時(shí)通過讀取該JSON數(shù)據(jù),獲取所有的云存儲(chǔ)平臺(tái)服務(wù),選擇性地進(jìn)行安裝。在選擇服務(wù)后,對(duì)將服務(wù)分配在對(duì)應(yīng)的節(jié)點(diǎn),這時(shí)會(huì)讀取之前的節(jié)點(diǎn)列表,然后將每個(gè)服務(wù)進(jìn)行節(jié)點(diǎn)選擇。
在服務(wù)和節(jié)點(diǎn)的配置信息均己設(shè)置完畢后,系統(tǒng)會(huì)通過執(zhí)行Shell,將對(duì)應(yīng)的云存儲(chǔ)平臺(tái)服務(wù)安裝包分發(fā)到對(duì)應(yīng)的節(jié)點(diǎn)上,并進(jìn)行安裝。所有節(jié)點(diǎn)的服務(wù)配置信息進(jìn)行同步。
服務(wù)器集群搭建完成后,服務(wù)器集群中節(jié)點(diǎn)隨著數(shù)據(jù)量的增加而增加,節(jié)點(diǎn)的添加以及故障節(jié)點(diǎn)的處理的復(fù)雜度也呈指數(shù)級(jí)上漲。本發(fā)明利用節(jié)點(diǎn)管理,通過一個(gè)云存儲(chǔ)平臺(tái)服務(wù)監(jiān)視線程,對(duì)管理節(jié)點(diǎn)的云存儲(chǔ)平臺(tái)服務(wù)進(jìn)行輪詢,實(shí)時(shí)監(jiān)視服務(wù)器集群上各個(gè)節(jié)點(diǎn)的運(yùn)行狀態(tài),同時(shí)實(shí)現(xiàn)對(duì)節(jié)點(diǎn)進(jìn)行增加和刪除操作。
節(jié)點(diǎn)管理采用觀測(cè)者模式來實(shí)現(xiàn)云存儲(chǔ)平臺(tái)服務(wù)監(jiān)視器,其中節(jié)點(diǎn)管理器為觀測(cè)者,云存儲(chǔ)平臺(tái)服務(wù)監(jiān)視器為被觀測(cè)者。監(jiān)視包括監(jiān)視服務(wù)器集群運(yùn)行狀況,包括所有節(jié)點(diǎn)運(yùn)行狀況,文件系統(tǒng)使用情況。管理包括服務(wù)器集群節(jié)點(diǎn)和服務(wù)的開啟、關(guān)閉,節(jié)點(diǎn)的增加和刪除等。
云存儲(chǔ)平臺(tái)服務(wù)器搭建完畢后,管理節(jié)點(diǎn)會(huì)啟動(dòng)服務(wù)器集群監(jiān)視,周期性地發(fā)起節(jié)點(diǎn)信息獲取服務(wù)器集群節(jié)點(diǎn)指標(biāo)。同時(shí)由云存儲(chǔ)平臺(tái)節(jié)點(diǎn)管理器來選擇節(jié)點(diǎn)增加或者刪除的操作。
如果有新節(jié)點(diǎn)要加入服務(wù)器集群,則需要云存儲(chǔ)平臺(tái)節(jié)點(diǎn)管理器獲取待加入服務(wù)器集群的節(jié)點(diǎn)信息,再將該信息發(fā)送給云存儲(chǔ)平臺(tái)節(jié)點(diǎn)監(jiān)視器,通過執(zhí)行相關(guān)Shell命令,判斷該節(jié)點(diǎn)是否可以加入到服務(wù)器集群,并反饋相關(guān)信息給云存儲(chǔ)平臺(tái)節(jié)點(diǎn)管理器,由云存儲(chǔ)平臺(tái)節(jié)點(diǎn)管理器來選擇節(jié)點(diǎn)的具體行為。同理,節(jié)點(diǎn)刪除也需要首先從云存儲(chǔ)平臺(tái)節(jié)點(diǎn)管理器中,將要?jiǎng)h除的節(jié)點(diǎn)信息發(fā)送給云存儲(chǔ)平臺(tái)節(jié)點(diǎn)監(jiān)視器,監(jiān)視器判斷該節(jié)點(diǎn)的狀態(tài),執(zhí)行節(jié)點(diǎn)移除操作。
本發(fā)明提出的服務(wù)器優(yōu)化包括節(jié)點(diǎn)選擇與存儲(chǔ)調(diào)度。節(jié)點(diǎn)選擇是指數(shù)據(jù)在寫入前通過某些策略地指定存儲(chǔ)節(jié)點(diǎn),能夠保證存儲(chǔ)負(fù)載平衡,存儲(chǔ)調(diào)度是指數(shù)據(jù)寫入后,根據(jù)訪問頻率或節(jié)點(diǎn)存儲(chǔ)容量來重新分配副本存儲(chǔ)節(jié)點(diǎn),使得系統(tǒng)能夠更加高效地運(yùn)行。
文件系統(tǒng)設(shè)有節(jié)點(diǎn)選擇與調(diào)度監(jiān)視器。其中節(jié)點(diǎn)選擇策略實(shí)現(xiàn)于名字節(jié)點(diǎn)之中,由名字節(jié)點(diǎn)在選擇業(yè)務(wù)節(jié)點(diǎn)時(shí)調(diào)用。調(diào)度監(jiān)視器用來監(jiān)視服務(wù)器集群運(yùn)行狀況,包括數(shù)據(jù)塊的訪問頻率以及業(yè)務(wù)節(jié)點(diǎn)的存儲(chǔ)容量,系統(tǒng)在閑置狀態(tài)時(shí),管理節(jié)點(diǎn)根據(jù)數(shù)據(jù)訪問頻率和系統(tǒng)容量,調(diào)度副本存放位置,提高系統(tǒng)運(yùn)行效率。
節(jié)點(diǎn)選擇具體包括,文件上傳之前,業(yè)務(wù)節(jié)點(diǎn)向名字節(jié)點(diǎn)發(fā)出寫數(shù)據(jù)請(qǐng)求,名字節(jié)點(diǎn)調(diào)用節(jié)點(diǎn)選擇模型,通過調(diào)度監(jiān)視器,獲取服務(wù)器集群運(yùn)行信息,計(jì)算節(jié)點(diǎn)的存儲(chǔ)比例,計(jì)算每個(gè)機(jī)架節(jié)點(diǎn)的存儲(chǔ)比例,并按照備份因子個(gè)數(shù),優(yōu)先選擇存儲(chǔ)比例最高的節(jié)點(diǎn)組成節(jié)點(diǎn)隊(duì)列,發(fā)送給客戶端,由客戶端將待存儲(chǔ)的數(shù)據(jù)分割成多個(gè)數(shù)據(jù)塊,存儲(chǔ)在不同的業(yè)務(wù)節(jié)點(diǎn)上。
存儲(chǔ)調(diào)度具體包括,在所有文件已經(jīng)保存于服務(wù)器集群之后,通過調(diào)度監(jiān)視器收集服務(wù)器集群運(yùn)行信息,獲取到所有節(jié)點(diǎn)的數(shù)據(jù)訪問頻率及所有節(jié)點(diǎn)的存儲(chǔ)容量,在服務(wù)器集群處于閑置狀態(tài)時(shí),管理節(jié)點(diǎn)根據(jù)獲取到的數(shù)據(jù),進(jìn)行存儲(chǔ)調(diào)度。若數(shù)據(jù)的訪問頻率超過預(yù)定義閾值,則將副本放置在訪問頻率最低的節(jié)點(diǎn)上;若系統(tǒng)剩余容量低于閾值,則將副本放置在存儲(chǔ)比例最高的節(jié)點(diǎn)。
以下針對(duì)服務(wù)器優(yōu)化調(diào)度模型,對(duì)其監(jiān)視器以及優(yōu)化策略進(jìn)行描述。
首先,服務(wù)器集群運(yùn)行信息需要通過云存儲(chǔ)平臺(tái)運(yùn)行信息測(cè)量和展示框架進(jìn)行監(jiān)視,所述框架對(duì)測(cè)量工具進(jìn)行擴(kuò)展,提供了一個(gè)可以展示實(shí)時(shí)和歷史數(shù)據(jù)的工具,幫助監(jiān)測(cè)和調(diào)度云存儲(chǔ)平臺(tái)相關(guān)的任務(wù)。
本發(fā)明中的云存儲(chǔ)調(diào)度分為兩個(gè)階段。其中第一個(gè)階段為文件寫入時(shí)的業(yè)務(wù)節(jié)點(diǎn)選擇,是通過優(yōu)化節(jié)點(diǎn)選擇策略來實(shí)現(xiàn)。客戶端在節(jié)點(diǎn)選擇分為兩種方式:客戶端在服務(wù)器集群節(jié)點(diǎn)上的選擇策略與客戶端在服務(wù)器集群節(jié)點(diǎn)外的選擇方式。實(shí)現(xiàn)方式如下:
假設(shè)服務(wù)器集群有n個(gè)機(jī)架,每個(gè)機(jī)架有TR臺(tái)業(yè)務(wù)節(jié)點(diǎn),副本數(shù)為r
若客戶端在服務(wù)器集群業(yè)務(wù)節(jié)點(diǎn)上,則
a)客戶端向管理節(jié)點(diǎn)發(fā)出寫數(shù)據(jù)請(qǐng)求;
b)管理節(jié)點(diǎn)根據(jù)文件內(nèi)容及系統(tǒng)配置情況,計(jì)算客戶端所在機(jī)架的所有業(yè)務(wù)節(jié)點(diǎn)存儲(chǔ)比例,過程如下
設(shè)客戶端在第i臺(tái)機(jī)架,初始化被選節(jié)點(diǎn)集合SDN為空;
該機(jī)架第j個(gè)節(jié)點(diǎn)的剩余容量為CLij,存儲(chǔ)的塊數(shù)為BLij,節(jié)點(diǎn)的存儲(chǔ)優(yōu)選比例RSij=CLij/BLij,將存儲(chǔ)優(yōu)選比最高的兩個(gè)節(jié)點(diǎn)放入被選節(jié)點(diǎn)集合,即SDN={DNia、DNib};其中DNia、DNib表示第i個(gè)機(jī)架上的a和b業(yè)務(wù)節(jié)點(diǎn),
c)從剩余每個(gè)機(jī)架中計(jì)算r-2個(gè)存儲(chǔ)比最大的節(jié)點(diǎn),排序后選擇最大的r-2個(gè)節(jié)點(diǎn)放入被選節(jié)點(diǎn)集合SDN,共r個(gè)節(jié)點(diǎn),用來存放數(shù)據(jù)塊及其副本;
d)管理節(jié)點(diǎn)將SDN集合中的節(jié)點(diǎn)分配業(yè)務(wù)節(jié)點(diǎn)給客戶端,由客戶端來寫入。
當(dāng)客戶端不在業(yè)務(wù)節(jié)點(diǎn)上時(shí),則直接計(jì)算服務(wù)器集群中所有節(jié)點(diǎn)的存儲(chǔ)比例,選擇前r個(gè)最大的節(jié)點(diǎn),即為數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)。從個(gè)節(jié)點(diǎn)中,根據(jù)RSij=CLij/BLij選出存儲(chǔ)比例最高的r個(gè)節(jié)點(diǎn),放入SDN列表中,即為選中的最優(yōu)節(jié)點(diǎn)。
綜上所述,本發(fā)明提出了一種云存儲(chǔ)平臺(tái)的醫(yī)藥數(shù)據(jù)處理方法,簡(jiǎn)化了服務(wù)器集群部署方式,避免用戶直接對(duì)服務(wù)器集群進(jìn)行操作,保證存儲(chǔ)節(jié)點(diǎn)的合理性和數(shù)據(jù)穩(wěn)定性。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。