數(shù)據(jù)存儲(chǔ)及訪問(wèn)的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種數(shù)據(jù)存儲(chǔ)及訪問(wèn)的方法和系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)存儲(chǔ)系統(tǒng)是企業(yè)IT基礎(chǔ)設(shè)施的關(guān)鍵組成部分。早期,數(shù)據(jù)存儲(chǔ)主要依賴于計(jì)算機(jī)的本地硬盤(pán)。隨著信息技術(shù)的飛速發(fā)展,本地硬盤(pán)的容量和存儲(chǔ)性能遠(yuǎn)遠(yuǎn)不能滿足企業(yè)級(jí)軟件系統(tǒng)的需求,例如一些數(shù)據(jù)庫(kù)管理系統(tǒng)所生成的數(shù)據(jù)庫(kù)文件,可能達(dá)到TB(1TB =1024GB)甚至成百上千TB大小。傳統(tǒng)的將硬盤(pán)放到計(jì)算機(jī)主機(jī)箱內(nèi)的做法已經(jīng)不能滿足現(xiàn)代應(yīng)用程序?qū)Υ鎯?chǔ)容量的需求,這就催生了網(wǎng)絡(luò)存儲(chǔ)技術(shù)。
[0003]網(wǎng)絡(luò)存儲(chǔ)技術(shù)是指有獨(dú)立的設(shè)備提供數(shù)據(jù)存儲(chǔ)功能,其它計(jì)算機(jī)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)訪問(wèn)、使用存儲(chǔ)。這樣,即使計(jì)算機(jī)主機(jī)內(nèi)沒(méi)有硬盤(pán),也可以通過(guò)網(wǎng)絡(luò)來(lái)存取存儲(chǔ)設(shè)備中的數(shù)據(jù)。網(wǎng)絡(luò)存儲(chǔ)作為專(zhuān)門(mén)的設(shè)備,通常以大規(guī)模磁盤(pán)陣列的形式出現(xiàn),它既提升了存儲(chǔ)的性能,也更有利于統(tǒng)一擴(kuò)容、備份,使得其它的IT部分更為便利的統(tǒng)一規(guī)劃、管理存儲(chǔ)資源,所以在過(guò)去的20年中在大型企業(yè)中得到了廣泛使用。目前在大型企業(yè)中使用最為廣泛的是網(wǎng)絡(luò)存儲(chǔ)技術(shù)是SAN(Storage Area Network,存儲(chǔ)區(qū)域網(wǎng)絡(luò))。
[0004]云存儲(chǔ)服務(wù)是云計(jì)算的一種,體現(xiàn)了一種將存儲(chǔ)作為“服務(wù)”的形式統(tǒng)一對(duì)外提供的理念。不同于網(wǎng)絡(luò)存儲(chǔ)技術(shù),云存儲(chǔ)除了存儲(chǔ)功能外,還同時(shí)能夠提供一系列針對(duì)數(shù)據(jù)的公共服務(wù),例如:圖片處理、視頻格式轉(zhuǎn)換等功能,目前廣泛使用的百度云存儲(chǔ)、360云存儲(chǔ)等都是云存儲(chǔ)。在企業(yè)中,云存儲(chǔ)同樣有很大的價(jià)值。以生成圖片縮略圖功能為例,企業(yè)各信息系統(tǒng)(如培訓(xùn)系統(tǒng)、辦公系統(tǒng)等)為了提升頁(yè)面的圖片渲染速度,通常在首次顯示圖片的時(shí)候只顯示尺寸更小的縮略圖,在以前,各系統(tǒng)都需要各自開(kāi)發(fā)“生成縮略圖”服務(wù)。如果統(tǒng)一使用云存儲(chǔ),該功能可以由云存儲(chǔ)統(tǒng)一通過(guò)服務(wù)的形式提供,避免了功能的重復(fù)開(kāi)發(fā)。所以,云存儲(chǔ)順應(yīng)了 IT技術(shù)發(fā)展趨勢(shì),對(duì)位進(jìn)一步簡(jiǎn)化企業(yè)IT架構(gòu)都有積極作用,也越來(lái)越成為大型企業(yè)重點(diǎn)考慮的IT基礎(chǔ)設(shè)施革新方向,并且已經(jīng)在不少企業(yè)中得到了實(shí)際使用。
[0005]由于在云存儲(chǔ)之前,SAN存儲(chǔ)已經(jīng)在企業(yè)中得到了大規(guī)模使用。目前很多針對(duì)企業(yè)的云存儲(chǔ)方案都要求重新實(shí)施存儲(chǔ)設(shè)備(如統(tǒng)一采用基于大容量硬盤(pán)的X86服務(wù)器作為存儲(chǔ)資源),從而企業(yè)無(wú)法重復(fù)利用在SAN存儲(chǔ)上的不菲投資。而如果要將SAN存儲(chǔ)資源在云存儲(chǔ)服務(wù)中重復(fù)利用,則需要突破“SAN存儲(chǔ)的共享訪問(wèn)”問(wèn)題。對(duì)該問(wèn)題的詳細(xì)介紹如下:
[0006]信息系統(tǒng)訪問(wèn)云存儲(chǔ)服務(wù),進(jìn)行文件的下載和上傳及相關(guān)數(shù)據(jù)處理服務(wù)。云存儲(chǔ)資源通過(guò)網(wǎng)絡(luò)交換機(jī)訪問(wèn)SAN存儲(chǔ);SAN存儲(chǔ)可以按容量劃分為一個(gè)一個(gè)的邏輯單元(成為L(zhǎng)UN),一個(gè)LUN的容量是有上限的(比如2TB),將不同的LUN分配給不同的云存儲(chǔ)服務(wù)器。
[0007]由于云存儲(chǔ)服務(wù)需要整體支撐企業(yè)的多數(shù)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)訪問(wèn)需求,所以通常都是以集群的方式提供服務(wù)。信息系統(tǒng)對(duì)云存儲(chǔ)服務(wù)的請(qǐng)求,最終可能被分配為集群中的一臺(tái)服務(wù)器,這要求每一臺(tái)服務(wù)器均可以訪問(wèn)所有的存儲(chǔ)單元LUN。而SAN存儲(chǔ)技術(shù)上不支持多個(gè)服務(wù)器同時(shí)對(duì)一個(gè)LUN進(jìn)行寫(xiě)入操作,否則將導(dǎo)致數(shù)據(jù)完全紊亂。所以,大型企業(yè)將SAN存儲(chǔ)直接用于云存儲(chǔ)服務(wù),需要解決多臺(tái)服務(wù)器對(duì)SAN存儲(chǔ)資源共享訪問(wèn)的問(wèn)題。
[0008]針對(duì)多臺(tái)服務(wù)器共享訪問(wèn)SAN存儲(chǔ)資源的問(wèn)題,目前主要有兩種解決方案:
[0009]方案一:通過(guò)操作系統(tǒng)提供的文件共享協(xié)議,實(shí)現(xiàn)SAN共享訪問(wèn)操作系統(tǒng),如Linux、Windows提供了文件共享訪問(wèn)協(xié)議。以Linux為例,支持網(wǎng)絡(luò)文件共享的協(xié)議是NFS。云存儲(chǔ)服務(wù)器I將掛載的LUN-1通過(guò)NFS協(xié)議,共享給云存儲(chǔ)服務(wù)器2訪問(wèn)。服務(wù)器2將不再直接訪問(wèn)SAN存儲(chǔ)。對(duì)LUN-1的文件寫(xiě)入操作將有Linux操作系統(tǒng)負(fù)責(zé)協(xié)調(diào),從而不會(huì)出現(xiàn)數(shù)據(jù)混亂的情況。專(zhuān)利“一種利用Linux全局文件系統(tǒng)實(shí)現(xiàn)共享存儲(chǔ)池的方法”(申請(qǐng)?zhí)?201210088796.1)就是采用這個(gè)方案。該方案能夠解決同一種操作系統(tǒng)的多服務(wù)器共同訪問(wèn)同一個(gè)SAN數(shù)據(jù)存儲(chǔ)的問(wèn)題,然而,這種訪問(wèn)無(wú)法支持多種操作系統(tǒng),這是因?yàn)椴煌僮飨到y(tǒng)的文件共享訪問(wèn)協(xié)議是不兼容的,而云服務(wù)器集群由多種操作系統(tǒng)的服務(wù)器組成的需求是廣泛存在的,例如有些windows下的文件如Word文檔只能在windows服務(wù)器中才能進(jìn)行格式轉(zhuǎn)換等數(shù)據(jù)處理。并且,其運(yùn)行性能較差。簡(jiǎn)單的例子中云存儲(chǔ)服務(wù)集群由兩臺(tái)服務(wù)器構(gòu)成,而實(shí)際的集群會(huì)由更多服務(wù)器組成,那么這些服務(wù)器訪問(wèn)存儲(chǔ)都需要通過(guò)云存儲(chǔ)服務(wù)器I,形成數(shù)據(jù)存儲(chǔ)性能瓶頸。此外,該服務(wù)的可靠性亦欠佳。如果云存儲(chǔ)服務(wù)器I出故障掛起,那么集群中的所有服務(wù)器都將不能訪問(wèn)該對(duì)應(yīng)的LUN。
[0010]方案二:通過(guò)研發(fā)新的文件系統(tǒng),“接管”操作系統(tǒng)的文件訪問(wèn)接口,實(shí)現(xiàn)SAN共享訪問(wèn)。文件系統(tǒng)是操作系統(tǒng)的重要組成部分,如windows下的NTFS、FAT32以及Linux下的Ext4等都是文件系統(tǒng)。安裝在操作系統(tǒng)上的應(yīng)用程序,通過(guò)文件系統(tǒng)提供的文件讀寫(xiě)及管理接口使用存儲(chǔ)資源。這種方案是通過(guò)研制獨(dú)立的文件系統(tǒng),提供與操作系統(tǒng)文件系統(tǒng)一樣的訪問(wèn)接口,安裝到操作系統(tǒng)中,并讓上層應(yīng)用程序通過(guò)這個(gè)文件系統(tǒng)訪問(wèn)存儲(chǔ)資源。而后,通過(guò)在網(wǎng)絡(luò)中部署獨(dú)立的“協(xié)調(diào)器”,協(xié)調(diào)集群中各服務(wù)器對(duì)同一個(gè)數(shù)據(jù)的訪問(wèn)順序,避免同時(shí)寫(xiě)入一個(gè)數(shù)據(jù)塊。
[0011]由于實(shí)現(xiàn)一個(gè)文件系統(tǒng)是非常復(fù)雜的工作,所以,采用這種方案的一般是大型商業(yè)軟件(如IBM公司的GPFS文件系統(tǒng))或免費(fèi)但應(yīng)用范圍較小的開(kāi)源軟件(如Redhat GFS文件系統(tǒng))。該方案能夠解決SAN存儲(chǔ)共享訪問(wèn)的問(wèn)題,且沒(méi)有明顯的性能瓶頸。然而其只能盡可能多的支持不同操作系統(tǒng),而做不到完全跨操作系統(tǒng)。比如Redhat GFS主要支持Linux中的Redhat分支版(Linux操作系統(tǒng)有超過(guò)10種主流的分支版,比如Ubuntu、SuseLinux等,Redhat是其中一種)。IBM GPFS最為全面,同時(shí)支持Windows和Linux,相應(yīng)的,價(jià)格也最為昂貴,需要通過(guò)升級(jí)支持新出現(xiàn)的操作系統(tǒng)。此外,此方案復(fù)雜,實(shí)施和維護(hù)的難度都很大。操作系統(tǒng)是最復(fù)雜的軟件,而文件系統(tǒng)是操作系統(tǒng)中最為基礎(chǔ)的功能之一,重新實(shí)現(xiàn)一套文件系統(tǒng)并且需要于不同操作系統(tǒng)進(jìn)行適配,導(dǎo)致該方案的實(shí)施難度極大,相應(yīng)的也需要投入更多的維護(hù)力量。
[0012]綜上所述,上述兩種解決方案雖然都能滿足SAN存儲(chǔ)共享訪問(wèn)的需求,但都存在一定的缺陷。
【發(fā)明內(nèi)容】
[0013]為此,需要提供一種在滿足SAN存儲(chǔ)共享訪問(wèn)需求的同時(shí)具有能夠提供支持多種操作系統(tǒng)、運(yùn)行性能好、可靠性高、投資有限且方便維護(hù)等優(yōu)點(diǎn)的數(shù)據(jù)存儲(chǔ)訪問(wèn)的方法和系統(tǒng)。
[0014]為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種數(shù)據(jù)存儲(chǔ)及訪問(wèn)的方法,包括數(shù)據(jù)存儲(chǔ)階段和數(shù)據(jù)訪問(wèn)階段;所述數(shù)據(jù)存儲(chǔ)階段包括如下步驟:
[0015]客戶端向協(xié)調(diào)服務(wù)器發(fā)起待上傳文件請(qǐng)求;
[0016]協(xié)調(diào)服務(wù)器通過(guò)心跳時(shí)間校驗(yàn)流程確定一當(dāng)前可有效執(zhí)行寫(xiě)入操作的存儲(chǔ)服務(wù)器;
[0017]客戶端獲取所述經(jīng)協(xié)調(diào)服務(wù)器確定可有效執(zhí)行寫(xiě)入操作的存儲(chǔ)服務(wù)器的IP并向該存儲(chǔ)服務(wù)器上傳文件;
[0018]所述數(shù)據(jù)訪問(wèn)段階包括如下步驟:
[0019]客戶端向協(xié)調(diào)服務(wù)器發(fā)起下載文件請(qǐng)求;
[0020]協(xié)調(diào)服務(wù)器獲取可執(zhí)行下載任務(wù)的存儲(chǔ)服務(wù)器IP列表并將該列表提供給客戶端;
[0021]客戶端從所述列表中選取一 IP,根據(jù)待下載文件信息從路徑服務(wù)器獲取文件路徑信息;
[0022]客戶端對(duì)所選取的IP對(duì)應(yīng)的存儲(chǔ)服務(wù)器發(fā)送文件下載請(qǐng)求以及所述文件路徑信息;
[0023]存儲(chǔ)服務(wù)器從所述文件路徑讀取文件數(shù)據(jù)后發(fā)送給客戶端。
[0024]進(jìn)一步地,所述的數(shù)據(jù)存儲(chǔ)及訪問(wèn)的方法中,各存儲(chǔ)服務(wù)器每隔預(yù)設(shè)時(shí)間與協(xié)調(diào)服務(wù)器進(jìn)行通訊,此時(shí):存儲(chǔ)服務(wù)器將心跳時(shí)間更新為當(dāng)前時(shí)間,以及,狀態(tài)為只讀的存儲(chǔ)服務(wù)器檢查自身狀態(tài)是否被置為可寫(xiě)入狀態(tài),如是則在內(nèi)部標(biāo)記至此后后續(xù)文件寫(xiě)入操作;
[0025]步驟“協(xié)調(diào)服務(wù)器通過(guò)心跳時(shí)間校驗(yàn)流程確定一當(dāng)前可有效執(zhí)行寫(xiě)入操作的存儲(chǔ)服務(wù)器”具體包括:
[0026]協(xié)調(diào)服務(wù)器判斷當(dāng)前待判斷的存儲(chǔ)服務(wù)器距離上次更新心跳時(shí)間的時(shí)間是否大于所述預(yù)設(shè)時(shí)間:
[0027]如否,將該存儲(chǔ)服務(wù)器的IP發(fā)送給客戶端;
[0028]如是,從狀態(tài)為只讀的存儲(chǔ)服務(wù)器中擇一將其狀態(tài)置為可寫(xiě)入,然后將該被存儲(chǔ)服務(wù)器的IP發(fā)送給客戶端。
[0029]進(jìn)一步地,所述的數(shù)據(jù)存儲(chǔ)及訪問(wèn)的方法中,步驟“協(xié)調(diào)服務(wù)器獲取可執(zhí)行下載任務(wù)的存儲(chǔ)服務(wù)器IP列表并將該列表提供給客戶端”中,協(xié)調(diào)服務(wù)器判定一存儲(chǔ)服務(wù)器可執(zhí)行下載任務(wù)的標(biāo)準(zhǔn)是,該存儲(chǔ)服務(wù)器的心跳時(shí)間在所述預(yù)設(shè)時(shí)間內(nèi)更新過(guò)。
當(dāng)前第1頁(yè)
1 
2 
3 
4