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