專利名稱:一種數(shù)據(jù)存儲系統(tǒng)及其更新存儲容量的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,更具體地說,涉及一種數(shù)據(jù)存儲系統(tǒng)及其更新存儲容量的方法。
背景技術(shù):
目前,為了能夠更好地處理大規(guī)模業(yè)務(wù),往往要求系統(tǒng)具備高擴展性,因此更新數(shù)據(jù)存儲系統(tǒng)的容量便成了頻繁的操作,如擴容(增加數(shù)據(jù)存儲系統(tǒng)的存儲數(shù)量)和縮容(減少數(shù)據(jù)存儲系統(tǒng)的存儲數(shù)量)。常規(guī)的數(shù)據(jù)存儲系統(tǒng)其活躍數(shù)據(jù)與非活躍數(shù)據(jù)混合存儲,其中,活躍數(shù)據(jù)為當(dāng)前正在使用的數(shù)據(jù),非活躍數(shù)據(jù)為長期沒有被訪問的數(shù)據(jù),并且在更新存儲容量時,是在原有存儲的基礎(chǔ)上進行存儲數(shù)量的增刪,這就造成在數(shù)據(jù)存儲系統(tǒng)擴容時,當(dāng)前工作的存儲需停止對外服務(wù),以將其數(shù)據(jù)遷移到新增的存儲中;在縮容時,當(dāng)前工作的被縮容存儲需停止對外服務(wù)以將其數(shù)據(jù)遷移出。可以看出,現(xiàn)有的數(shù)據(jù)存儲系統(tǒng)在更新存儲容量時需停止對外服務(wù),需等存儲容量更新完成后再開啟服務(wù),這樣的更新存儲容量方式嚴(yán)重影響系統(tǒng)的服務(wù)質(zhì)量。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種數(shù)據(jù)存儲系統(tǒng)及其更新存儲容量的方法,以解決現(xiàn)有的數(shù)據(jù)存儲系統(tǒng)在更新存儲容量時,需要停止對外服務(wù)的問題,實現(xiàn)存儲容量的動態(tài)更新。為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種數(shù)據(jù)存儲系統(tǒng),包括:存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,導(dǎo)出所述活躍數(shù)據(jù)的第一內(nèi)存存儲單元;與所述第一內(nèi)存存儲單元相連,用于接收并存儲所述第一內(nèi)存存儲單元上傳的數(shù)據(jù),并定期上傳所述數(shù)據(jù)的歸并存儲單元,所述歸并存儲單元監(jiān)控并獲取所述第一內(nèi)存存儲單元內(nèi)的數(shù)據(jù)變動;與所述歸并存儲單元相連,用于接收所述歸并存儲單元上傳的數(shù)據(jù),并永久存儲所述數(shù)據(jù)的硬盤存儲單元;與所述第一內(nèi)存存儲單元相連,用于在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,接收所述第一內(nèi)存存儲單元導(dǎo)出的活躍數(shù)據(jù)的第二內(nèi)存存儲單元;所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài);所述第二內(nèi)存存儲單元在所述數(shù)據(jù)存儲系統(tǒng)完成更新存儲容量后,存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。優(yōu)選的,所述數(shù)據(jù)存儲系統(tǒng)還包括:與所述第一內(nèi)存存儲單元相連,用于在所述第一內(nèi)存存儲單元崩潰后,存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,導(dǎo)出所述活躍數(shù)據(jù)的第一內(nèi)存存儲從單元。
優(yōu)選的,所述硬盤存儲單元將其存儲的所述第一內(nèi)存存儲單元存儲的數(shù)據(jù),導(dǎo)入所述第一內(nèi)存存儲從單元。優(yōu)選的,所述數(shù)據(jù)存儲系統(tǒng)還包括:與歸并存儲單元相連的第一歸并存儲從單元,所述第一歸并存儲從單元內(nèi)存儲的數(shù)據(jù)與所述歸并存儲單元內(nèi)存儲的數(shù)據(jù)相等同;所述第一歸并存儲從單元,用于在所述歸并存儲單元崩潰后,接收所述第一內(nèi)存存儲單元上傳的數(shù)據(jù),并定期向所述硬盤存儲單元上傳所述數(shù)據(jù)。優(yōu)選的,所述歸并存儲從單元,還用于在所述歸并存儲單元向所述硬盤存儲單元上傳數(shù)據(jù)時,接收所述第一內(nèi)存存儲單元上傳的數(shù)據(jù);所述歸并存儲單元在完成數(shù)據(jù)上傳后,恢復(fù)對所述第一內(nèi)存存儲單元上傳數(shù)據(jù)的接收。優(yōu)選的,所述數(shù)據(jù)存儲系統(tǒng)還包括:第二歸并存儲從單元,用于在所述歸并存儲單元恢復(fù)對所述第一內(nèi)存存儲單元上傳數(shù)據(jù)的接收后,替代所述第一歸并存儲從單元的工作,所述第一歸并存儲從單元失效。優(yōu)選的,所述第一內(nèi)存存儲單元包括多個內(nèi)存存儲子單元,所述歸并存儲單元包括多個歸并存儲子單元,所述第一內(nèi)存存儲單元內(nèi)的多個內(nèi)存存儲子單元,與所述歸并存儲單元內(nèi)的一個歸并存儲子單元保持映射關(guān)系。優(yōu)選的,所述數(shù)據(jù)存儲系統(tǒng)還包括:配置單元,用于記錄并存儲所述數(shù)據(jù)存儲系統(tǒng)的當(dāng)前配置信息,監(jiān)控所述數(shù)據(jù)存儲系統(tǒng)的工作狀態(tài)。本發(fā)明還提供一種數(shù)據(jù)存儲系統(tǒng)更新存儲容量的方法,所述方法包括:第一內(nèi)存存儲單元導(dǎo)出存儲的活躍數(shù)據(jù);第二內(nèi)存存儲單元接收所述第一內(nèi)存存儲單元導(dǎo)出的活躍數(shù)據(jù),所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài);所述第二內(nèi)存存儲單元存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。優(yōu)選的,所述方法還包括:歸并存儲單元接收并存儲第二內(nèi)存存儲單元上傳數(shù)據(jù),監(jiān)控并獲取第二內(nèi)存存儲單元內(nèi)的數(shù)據(jù)變動,定期將存儲的數(shù)據(jù)寫入硬盤存儲單元。通過以上技術(shù)方案,可以看出本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)將活躍數(shù)據(jù)和非活躍數(shù)據(jù)分開存儲,活躍數(shù)據(jù)存儲在第一內(nèi)存存儲單元,非活躍數(shù)據(jù)存儲在硬盤存儲單元,歸并存儲單元作為數(shù)據(jù)存儲的過渡裝置,負(fù)責(zé)將第一內(nèi)存存儲單元接收的數(shù)據(jù)定期寫入硬盤存儲單元,在數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,只需對數(shù)據(jù)存儲系統(tǒng)中存儲活躍數(shù)據(jù)的單元部件進行改動即可;同時,通過設(shè)置與數(shù)據(jù)存儲系統(tǒng)更新存儲容量后所要達到的容量狀態(tài)相等同的第二內(nèi)存存儲單元,在數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,將第一內(nèi)存存儲單元的活躍數(shù)據(jù)轉(zhuǎn)入已設(shè)置好的第二內(nèi)存存儲單元中,由第二內(nèi)存存儲單元接替第一內(nèi)存存儲單元的工作,從而完成存儲系統(tǒng)的存儲容量更新。本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)實現(xiàn)了存儲容量的動態(tài)更新,無需在數(shù)據(jù)存儲系統(tǒng)更新存儲容量時停止對外服務(wù)。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明數(shù)據(jù)存儲系統(tǒng)的實施例一的結(jié)構(gòu)框圖;圖2為本發(fā)明數(shù)據(jù)存儲系統(tǒng)擴容示意圖;圖3為本發(fā)明數(shù)據(jù)存儲系統(tǒng)實施例二的結(jié)構(gòu)框圖;圖4本發(fā)明數(shù)據(jù)存儲系統(tǒng)更新存儲容量的方法流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)是基于鍵值對存儲,利用TTServer技術(shù)搭建而成,下面簡單介紹鍵值對存儲,TTServer及其相關(guān)的技術(shù),以使本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)更加清楚。鍵值對存儲:與傳統(tǒng)關(guān)系數(shù)據(jù)庫相比,鍵值對存儲更加注重對海量數(shù)據(jù)存取的性能、分布式、擴展性的支持上,并不需要傳統(tǒng)關(guān)系數(shù)據(jù)庫的一些特征,例如:SChema、事務(wù)、完整SQL查詢支持等等,因此在分布式環(huán)境下的性能相對于傳統(tǒng)的關(guān)系數(shù)據(jù)庫有較大的提升。Tokyo Cabinet:一款 DBM(Date Base Manager,數(shù)據(jù)庫管理)數(shù)據(jù)庫。該數(shù)據(jù)庫讀寫速度非常塊。TTserver (Tokyo Tyrant):是 DBM 數(shù)據(jù) Tokyo Cabinet 的網(wǎng)絡(luò)接口,它使用基于TCP/IP的簡單二進制協(xié)議進行通信,同時擁有Memcached(高性能的分布式內(nèi)存對象緩存系統(tǒng))兼容協(xié)議并且可以用HTTP/1.1協(xié)議進行數(shù)據(jù)交換,實現(xiàn)擴平臺、跨語言使用TokyoTyrant。Tokyo Tyrant采用熱備份,更新日志記錄,復(fù)制的方式來實現(xiàn)高可用性和高可靠性。利用Tokyo Tyrant可以構(gòu)建兼容Memcached協(xié)議、支持故障轉(zhuǎn)移、高并發(fā)的分布式鍵值對持久存儲系統(tǒng)。鍵值對分布式存儲系統(tǒng)查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā)。下面結(jié)合附圖對本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)及更新存儲容量的方法加以闡述。實施例一圖1為本發(fā)明數(shù)據(jù)存儲系統(tǒng)的實施例一的結(jié)構(gòu)框圖。參照圖1,數(shù)據(jù)存儲系統(tǒng)包括:第一內(nèi)存存儲單元100,歸并存儲單元200,硬盤存儲單元300,第二內(nèi)存存儲單元400和配置單元500。第一內(nèi)存存儲單元100,用于存儲本發(fā)明數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并向歸并存儲單元200上傳接收的數(shù)據(jù),在數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,向第二內(nèi)存存儲單元400導(dǎo)入所述存儲的活躍數(shù)據(jù);其中,第一內(nèi)存存儲單元100包括多個內(nèi)存存儲子單元,所述內(nèi)存存儲子單元可以為DB (Date Base,數(shù)據(jù)庫),所述內(nèi)存存儲子單元存儲數(shù)據(jù)存儲系統(tǒng)中的活躍數(shù)據(jù),接收哈希入數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),將接收的數(shù)據(jù)上傳給歸并存儲單元200 ;當(dāng)數(shù)據(jù)存儲系統(tǒng)需要更新存儲容量時,所述更新存儲容量包括:擴容(擴充所述內(nèi)存存儲子單元的個數(shù))和縮容(減少所述內(nèi)存存儲子單元的個數(shù)),第一內(nèi)存存儲單元100將各內(nèi)存存儲子單元中存儲的活躍數(shù)據(jù)導(dǎo)入所述第二內(nèi)存存儲單元400,并由第二內(nèi)存存儲單元400替代第一內(nèi)存存儲單元100的工作,第二內(nèi)存存儲單元400的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài),即第二內(nèi)存存儲單元400內(nèi)的內(nèi)存存儲子單元的數(shù)量為數(shù)據(jù)存儲系統(tǒng)擴容或縮容后,內(nèi)存存儲子單元所要達到的數(shù)量。歸并存儲單元200與第一內(nèi)存存儲單元100相連,接收并存儲所述第一內(nèi)存存儲單元100上傳的數(shù)據(jù),并定期將存儲的數(shù)據(jù)寫入硬盤存儲單元300,歸并存儲單元200監(jiān)控并獲取第一內(nèi)存存儲單元100內(nèi)的數(shù)據(jù)變動,第一內(nèi)存存儲單元100的數(shù)據(jù)變動將反映至歸并存儲單元200 ;其中,歸并存儲單元200包括多個歸并存儲子單元,所述歸并存儲子單元可以為DB,第一內(nèi)存存儲單元100內(nèi)的內(nèi)存存儲子單元上傳的數(shù)據(jù)將存儲在所述歸并存儲子單元中。優(yōu)選的,內(nèi)存存儲單元100內(nèi)的多個內(nèi)存存儲子單元與歸并存儲單元200內(nèi)的一個歸并存儲子單元保持映射關(guān)系,具體為:多個內(nèi)存存儲子單元上傳的數(shù)據(jù)存儲在一個歸并存儲子單元中,多個內(nèi)存存儲子單元的數(shù)據(jù)變動反映到一個歸并存儲子單元中;優(yōu)選的,歸并存儲單元200將存儲的數(shù)據(jù)寫入硬盤存儲單元300的周期為一天。硬盤存儲單元300與歸并存儲單元200相連,接收歸并存儲單元200上傳的數(shù)據(jù),并永久存儲所述數(shù)據(jù);其中,硬盤存儲單元300可以包括多個硬盤存儲子單元,所述硬盤存儲子單元可按其數(shù)量進行分級,以保證海量數(shù)據(jù)的存儲,常用的數(shù)據(jù)可以存儲在一級硬盤存儲子單元,并定期將該數(shù)據(jù)轉(zhuǎn)存至二級硬盤存儲子單元,以此類推,數(shù)據(jù)在硬盤存儲子單元間的轉(zhuǎn)存周期優(yōu)選為一個月一次;優(yōu)選的,存儲非常用數(shù)據(jù)的硬盤存儲子單元,如二級硬盤存儲子單元,可以是mysql或其它數(shù)據(jù)庫。第二內(nèi)存存儲單元400與第一內(nèi)存存儲單元100相連,用于在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,接收所述第一內(nèi)存存儲單元100導(dǎo)出的活躍數(shù)據(jù),并接替第一內(nèi)存存儲單元100的工作,負(fù)責(zé)存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收哈希入數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并向歸并存儲單元200上傳接收的數(shù)據(jù);其中,第二內(nèi)存存儲單元400包括多個內(nèi)存存儲子單元,所述內(nèi)存存儲子單元可以為DB,所述內(nèi)存存儲子單元的個數(shù)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的內(nèi)存存儲子單元的個數(shù);當(dāng)?shù)诙?nèi)存存儲單元400接替第一內(nèi)存存儲單元100的工作后,歸并存儲單元200做出相應(yīng)的調(diào)整,接收并存儲第二內(nèi)存存儲單元400上傳的數(shù)據(jù),監(jiān)控并獲取第二內(nèi)存存儲單元400內(nèi)的數(shù)據(jù)變動;在數(shù)據(jù)存儲系統(tǒng)完成更新存儲容量后,第一內(nèi)存存儲單元100將被設(shè)置為備份的內(nèi)存存儲單元,其保留原有存儲的數(shù)據(jù),并在歸并存儲單元200完成將其上傳的數(shù)據(jù)寫入硬盤存儲單元300后,其備份內(nèi)存存儲單元的設(shè)置將消失。
配置單元500,用于記錄并存儲所述數(shù)據(jù)存儲系統(tǒng)的當(dāng)前配置信息,監(jiān)控所述數(shù)據(jù)存儲系統(tǒng)的工作狀態(tài),具體為:記錄并存儲數(shù)據(jù)存儲系統(tǒng)當(dāng)前各單元的配置信息,如在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,記錄存儲第一內(nèi)存存儲單元100,歸并存儲單元200,硬盤存儲單元300和第二內(nèi)存存儲單元400的配置信息;當(dāng)外界訪問更新存儲容量后的數(shù)據(jù)存儲系統(tǒng)時,可通過配置單元500獲取第二內(nèi)存存儲單元400的配置信息,以實現(xiàn)訪問數(shù)據(jù)的目的;在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,配置單元500將指令第一內(nèi)存存儲單元100將活躍數(shù)據(jù)導(dǎo)入第二內(nèi)存存儲單元200,在完成存儲容量更新后,設(shè)置第一內(nèi)存存儲單元100為備份內(nèi)存存儲單元,并指令歸并存儲單元200盡快將第一內(nèi)存存儲單元100上傳的數(shù)據(jù)寫入硬盤存儲單元300,以刪除第一內(nèi)存存儲單元100的備份設(shè)置;優(yōu)選的,還可以設(shè)置第三內(nèi)存存儲單元,以便在所述數(shù)據(jù)存儲系統(tǒng)下一次更新存儲容量時,接收第二內(nèi)存存儲單元400存儲的活躍數(shù)據(jù),并接替第二內(nèi)存存儲單元400的工作;所述第三內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)下一次更新存儲容量,所要達到的存儲容量狀態(tài)。參照圖2,圖2為本發(fā)明數(shù)據(jù)存儲系統(tǒng)擴容示意圖。第一內(nèi)存存儲單元100包含2個DB,第二內(nèi)存存儲單元400包含4個DB,第二內(nèi)存存儲單元400的DB數(shù)量為所述數(shù)據(jù)存儲系統(tǒng)擴容后,內(nèi)存存儲單元所要達到的DB數(shù)。當(dāng)擴容時,第一內(nèi)存存儲單元100的2個DB所存儲的活躍數(shù)據(jù)將平均導(dǎo)入第二內(nèi)存存儲單元400的4個DB中;同時,存儲數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù)、接收哈希入數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)、并將接收的數(shù)據(jù)上傳給歸并存儲單元200的工作將切換至第二內(nèi)存存儲單元400執(zhí)行,歸并存儲單元200做出相應(yīng)調(diào)整,改為監(jiān)控第二內(nèi)存存儲單元400內(nèi)的數(shù)據(jù)變動,接收并存儲第二內(nèi)存存儲單元400上傳的數(shù)據(jù);第一內(nèi)存存儲單元100在導(dǎo)出活躍數(shù)據(jù)后,配置單元500將其設(shè)置為備份內(nèi)存存儲單元,保留原有存儲的數(shù)據(jù),直至歸并存儲單元200將第一內(nèi)存存儲單元100上傳的數(shù)據(jù)寫入硬盤數(shù)據(jù)存儲單元300。數(shù)據(jù)存儲系統(tǒng)的縮容原理與此相同,不再贅述。需要說明的是,本段采用DB作為內(nèi)存存儲子單元,且涉及到的相關(guān)DB數(shù)量只為便于敘述,以使本發(fā)明的數(shù)據(jù)存儲系統(tǒng)的更新存儲容量的原理更為形象淺顯,其不應(yīng)成為本發(fā)明數(shù)據(jù)存儲系統(tǒng)關(guān)于內(nèi)存存儲子單元及其數(shù)量的限定。本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)將活躍數(shù)據(jù)和非活躍數(shù)據(jù)分開存儲,活躍數(shù)據(jù)存儲在第一內(nèi)存存儲單元,非活躍數(shù)據(jù)存儲在硬盤存儲單元,歸并存儲單元作為數(shù)據(jù)存儲的過渡裝置,負(fù)責(zé)將第一內(nèi)存存儲單元接收的數(shù)據(jù)定期寫入硬盤存儲單元,在更新存儲容量時,本系統(tǒng)只需對存儲活躍數(shù)據(jù)的單元部件進行改動即可;同時,通過設(shè)置與數(shù)據(jù)存儲系統(tǒng)更新存儲容量后所要達到的容量狀態(tài)相等同的第二內(nèi)存存儲單元,在數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,將第一內(nèi)存存儲單元的活躍數(shù)據(jù)轉(zhuǎn)入已設(shè)置好的第二內(nèi)存存儲單元中,由第二內(nèi)存存儲單元接替第一內(nèi)存存儲單元的工作,完成數(shù)據(jù)存儲系統(tǒng)的存儲容量更新,而無需停止對外服務(wù),實現(xiàn)了數(shù)據(jù)存儲系統(tǒng)存儲容量的動態(tài)更新。實施例二圖3為本發(fā)明數(shù)據(jù)存儲系統(tǒng)實施例二的結(jié)構(gòu)框圖。圖3所示數(shù)據(jù)存儲系統(tǒng)與圖1所示數(shù)據(jù)存儲系統(tǒng)相比,所述數(shù)據(jù)存儲系統(tǒng)還包括:與第一內(nèi)存存儲單元100相連的第一內(nèi)存存儲從單元110,和與歸并存儲單元200相連的第一歸并存儲從單元210。
第一內(nèi)存存儲從單元110與第一內(nèi)存存儲單元100相連,用于在第一內(nèi)存存儲單元100崩潰后,接替第一內(nèi)存存儲單元100的工作;負(fù)責(zé)存儲活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,導(dǎo)出所述活躍數(shù)據(jù)給第二內(nèi)存存儲單元400 ;第一內(nèi)存存儲從單元110在接替第一內(nèi)存存儲單元100的工作后,配置單元500指令硬盤存儲單元300將第一內(nèi)存存儲單元100所存儲的數(shù)據(jù),導(dǎo)入第一內(nèi)存存儲從單元110,以實現(xiàn)第一內(nèi)存存儲從單元110與第一內(nèi)存存儲單元100的數(shù)據(jù)相等同,具體為讀取歸并存儲單元200導(dǎo)出到硬盤存儲單元300的數(shù)據(jù)到第一內(nèi)存存儲從單元110,然后接上binlogo第一歸并存儲從單元210與歸并存儲單元200相連,且第一歸并存儲從單元210內(nèi)存儲的數(shù)據(jù)與歸并存儲單元200內(nèi)存儲的數(shù)據(jù)相等同,具體可以設(shè)置歸并存儲單元200備份其存儲的數(shù)據(jù)至第一歸并存儲從單元210 ;第一歸并存儲從單元210在歸并存儲單元200崩潰后,接替歸并存儲單元200的工作,負(fù)責(zé)監(jiān)控第一內(nèi)存存儲單元100內(nèi)的數(shù)據(jù)變動,接收第一內(nèi)存存儲單元100上傳的數(shù)據(jù),并定期向硬盤存儲單元300上傳存儲的數(shù)據(jù);第一歸并存儲從單元210還可以在歸并存儲單元200向硬盤存儲單元300寫入數(shù)據(jù)時,接替歸并存儲單元200的工作,負(fù)責(zé)監(jiān)控第一內(nèi)存存儲單元100內(nèi)的數(shù)據(jù)變動,接收第一內(nèi)存存儲單元100上傳的數(shù)據(jù);歸并存儲單元200在完成向硬盤存儲單元300上傳數(shù)據(jù)后,將恢復(fù)監(jiān)控第一內(nèi)存存儲單元100內(nèi)的數(shù)據(jù)變動,接收第一內(nèi)存存儲單元100上傳的數(shù)據(jù)的工作。優(yōu)選的,所述數(shù)據(jù)存儲系統(tǒng)還可以包括第二歸并存儲從單元,用于在歸并存儲單元200恢復(fù)對第一內(nèi)存存儲單元100上傳數(shù)據(jù)的接收后,接替第一歸并存儲從單元210的工作;由于歸并存儲單元200與第一歸并存儲從單元210內(nèi)存儲的數(shù)據(jù)相等同,當(dāng)歸并存儲單元200完成向硬盤存儲單元300寫入數(shù)據(jù)后,第一歸并存儲從單元210存儲的大部分?jǐn)?shù)據(jù)就都已寫入硬盤存儲單元300,繼續(xù)使用第一歸并存儲從單元210將造成存儲空間不足的后果,使用新的第二歸并存儲從單元接替第一歸并存儲從單元210的工作,將使歸并存儲從單元保留足夠的存儲空間。優(yōu)選的,數(shù)據(jù)存儲系統(tǒng)的各工作單元定時向配置單元500發(fā)送心跳,以便配置單元500監(jiān)控各工作單元的工作狀態(tài);具體可以是:第一內(nèi)存存儲單元100,第一內(nèi)存存儲從單元110,歸并存儲單元200和第一歸并存儲從單元210定時向配置單元500發(fā)送心跳,當(dāng)?shù)谝粌?nèi)存存儲單元100沒有發(fā)送心跳時,由于崩潰等原因,第一內(nèi)存存儲單元100將無法發(fā)送心跳,配置單元500指令第一內(nèi)存存儲從單元110接替第一內(nèi)存存儲單元100的工作;當(dāng)?shù)谝粌?nèi)存存儲從單元110沒有發(fā)送心跳時,配置單元500指令預(yù)置的空閑內(nèi)存存儲從單元作為所述第一內(nèi)存存儲從單元;當(dāng)歸并存儲單元200沒有發(fā)送心跳或第一歸并存儲從單元210沒有發(fā)送心跳時,配置單元500的工作與此相同。優(yōu)選的,還可以設(shè)置第二內(nèi)存存儲從單元,以便在第二內(nèi)存存儲單元400接替第一內(nèi)存存儲單元100的工作,且第二內(nèi)存存儲單元400崩潰時,接替第二內(nèi)存存儲單元400的工作。本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng),不僅實現(xiàn)了存儲容量的動態(tài)更新,還通過設(shè)置內(nèi)存存儲從單元和歸并存儲從單元,可在內(nèi)存存儲單元和歸并存儲單元崩潰時,由相應(yīng)的內(nèi)存存儲從單元和歸并存儲從單元接替其工作,實現(xiàn)了數(shù)據(jù)存儲系統(tǒng)的可靠性保證。實施例三圖4為本發(fā)明數(shù)據(jù)存儲系統(tǒng)更新存儲容量的方法流程圖。結(jié)合圖1和圖4所示,在本發(fā)明數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,第一內(nèi)存存儲單元100的配置保持不變,第二內(nèi)存存儲單元400使用新的配置,第二內(nèi)存存儲單元400的配置為本發(fā)明數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,內(nèi)存存儲單元所要達到的配置狀態(tài);優(yōu)選為設(shè)置第二內(nèi)存存儲單元400的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)擴容或縮容后,所要達到的存儲容量狀態(tài)。該方法可以包括:步驟S10、第一內(nèi)存存儲單元導(dǎo)出存儲的活躍數(shù)據(jù);步驟S20、第二內(nèi)存存儲單元接收所述第一內(nèi)存存儲單元導(dǎo)出的活躍數(shù)據(jù),所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài);步驟S30、所述第二內(nèi)存存儲單元接替第一內(nèi)存存儲單元的工作,存儲活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。該方法還可以包括:步驟S31、歸并存儲單元調(diào)整配置,接收并存儲第二內(nèi)存存儲單元上傳的數(shù)據(jù),監(jiān)控并獲取第二內(nèi)存存儲單元內(nèi)的數(shù)據(jù)變動,定期將存儲的數(shù)據(jù)寫入硬盤存儲單元。優(yōu)選的,該方法還可以包括:步驟S32、在所述第二內(nèi)存存儲單元崩潰后,預(yù)置的第二內(nèi)存存儲從單元接替所述第二內(nèi)存存儲單元的工作,存儲活躍數(shù)據(jù),接收并上傳哈希入數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。優(yōu)選的,該方法還可以包括:步驟S33、在所述數(shù)據(jù)存儲系統(tǒng)下一次更新存儲容量時,所述第二內(nèi)存存儲單元導(dǎo)出存儲的活躍數(shù)據(jù)給預(yù)置的第三內(nèi)存存儲單元,所述第三內(nèi)存存儲單元接替所述第二內(nèi)存存儲單元的工作,所述第三內(nèi)存存儲單元的存儲容量為所述數(shù)據(jù)存儲系統(tǒng)下一次更新存儲容量時,所要達到容量狀態(tài)。本發(fā)明所提供的基于TTserver所搭建的數(shù)據(jù)存儲系統(tǒng)及其更新存儲容量的方法,將存儲分為三層:內(nèi)存存儲單元,歸并存儲單元和硬盤存儲單元,其中內(nèi)存存儲單元存儲活躍數(shù)據(jù),包括第一內(nèi)存存儲單元和第二內(nèi)存存儲單元;優(yōu)選的,各單元部署在不同的硬件服務(wù)器上,在系統(tǒng)擴容或縮容時,只需對該系統(tǒng)存儲活躍數(shù)據(jù)的內(nèi)存存儲單元進行改動,具體為:設(shè)置第二內(nèi)存存儲單元的配置信息為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,內(nèi)存存儲單元所要達到的配置,從而實現(xiàn)動態(tài)的存儲容量更新。需要說明的是,本發(fā)明所提供的數(shù)據(jù)存儲系統(tǒng)不限制使用何種存儲軟件,針對鍵值對存儲的TTserver可以有成熟的運用,但也可以應(yīng)用到其他鍵值對存儲軟件中,如Redis 等。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
權(quán)利要求
1.一種數(shù)據(jù)存儲系統(tǒng),其特征在于,包括: 存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,導(dǎo)出所述活躍數(shù)據(jù)的第一內(nèi)存存儲單元; 與所述第一內(nèi)存存儲單元相連,用于接收并存儲所述第一內(nèi)存存儲單元上傳的數(shù)據(jù),并定期上傳所述數(shù)據(jù)的歸并存儲單元,所述歸并存儲單元監(jiān)控并獲取所述第一內(nèi)存存儲單元內(nèi)的數(shù)據(jù)變動; 與所述歸并存儲單元相連,用于接收所述歸并存儲單元上傳的數(shù)據(jù),并永久存儲所述數(shù)據(jù)的硬盤存儲單元; 與所述第一內(nèi)存存儲單元相連,用于在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,接收所述第一內(nèi)存存儲單元導(dǎo)出的活躍數(shù)據(jù)的第二內(nèi)存存儲單元; 所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài);所述第二內(nèi)存存儲單元在所述數(shù)據(jù)存儲系統(tǒng)完成更新存儲容量后,存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括: 與所述第一內(nèi)存存儲單元相連,用于在所述第一內(nèi)存存儲單元崩潰后,存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù),并在所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量時,導(dǎo)出所述活躍數(shù)據(jù)的第一內(nèi)存存儲從單元。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述硬盤存儲單元將其存儲的所述第一內(nèi)存存儲單元存儲的數(shù)據(jù),導(dǎo)入所述第一內(nèi)存存儲從單 元。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括:與歸并存儲單元相連的第一歸并存儲從單元,所述第一歸并存儲從單元內(nèi)存儲的數(shù)據(jù)與所述歸并存儲單元內(nèi)存儲的數(shù)據(jù)相等同; 所述第一歸并存儲從單元,用于在所述歸并存儲單元崩潰后,接收所述第一內(nèi)存存儲單元上傳的數(shù)據(jù),并定期向所述硬盤存儲單元上傳所述數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述歸并存儲從單元,還用于在所述歸并存儲單元向所述硬盤存儲單元上傳數(shù)據(jù)時,接收所述第一內(nèi)存存儲單元上傳的數(shù)據(jù);所述歸并存儲單元在完成數(shù)據(jù)上傳后,恢復(fù)對所述第一內(nèi)存存儲單元上傳數(shù)據(jù)的接收。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括:第二歸并存儲從單元,用于在所述歸并存儲單元恢復(fù)對所述第一內(nèi)存存儲單元上傳數(shù)據(jù)的接收后,替代所述第一歸并存儲從單元的工作,所述第一歸并存儲從單元失效。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述第一內(nèi)存存儲單元包括多個內(nèi)存存儲子單元,所述歸并存儲單元包括多個歸并存儲子單元,所述第一內(nèi)存存儲單元內(nèi)的多個內(nèi)存存儲子單元,與所述歸并存儲單元內(nèi)的一個歸并存儲子單元保持映射關(guān)系。
8.根據(jù)權(quán)利要求1-7任一項所述的數(shù)據(jù)存儲系統(tǒng),其特征在于,所述數(shù)據(jù)存儲系統(tǒng)還包括: 配置單元,用于記錄并存儲所述數(shù)據(jù)存儲系統(tǒng)的當(dāng)前配置信息,監(jiān)控所述數(shù)據(jù)存儲系統(tǒng)的工作狀態(tài)。
9.一種數(shù)據(jù)存儲系統(tǒng)更新存儲容量的方法,其特征在于,所述方法包括: 第一內(nèi)存存儲單元導(dǎo)出存儲的活躍數(shù)據(jù);第二內(nèi)存存儲單元接收所述第一內(nèi)存存儲單元導(dǎo)出的活躍數(shù)據(jù),所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的容量狀態(tài); 所述第二內(nèi)存存儲單元存儲所述數(shù)據(jù)存儲系統(tǒng)的活躍數(shù)據(jù),接收并上傳哈希入所述數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括: 歸并存儲單元接收并存儲第二內(nèi)存存儲單元上傳數(shù)據(jù),監(jiān)控并獲取第二內(nèi)存存儲單元內(nèi)的數(shù)據(jù)變動 ,定期將存儲的數(shù)據(jù)寫入硬盤存儲單元。
全文摘要
本發(fā)明實施例提供一種數(shù)據(jù)存儲系統(tǒng)及其更新存儲容量的方法。該系統(tǒng)包括第一內(nèi)存存儲單元,歸并存儲單元,硬盤存儲單元和第二內(nèi)存存儲單元;所述第一內(nèi)存存儲單元用于存儲活躍數(shù)據(jù),在系統(tǒng)更新存儲容量時,將所述活躍數(shù)據(jù)導(dǎo)入所述第二內(nèi)存存儲單元,所述第二內(nèi)存存儲單元的存儲容量狀態(tài)為所述數(shù)據(jù)存儲系統(tǒng)更新存儲容量后,所要達到的存儲容量狀態(tài)。歸并存儲單元監(jiān)控并獲取第一內(nèi)存存儲單元的數(shù)據(jù)變動,并定期向硬盤存儲單元寫入獲取的數(shù)據(jù)。本發(fā)明實施例所提供的數(shù)據(jù)存儲系統(tǒng)實現(xiàn)了存儲容量的動態(tài)更新,在更新存儲容量時無需停止對外服務(wù)。
文檔編號G06F17/30GK103177006SQ20111043347
公開日2013年6月26日 申請日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者胡毅 申請人:北京昆侖萬維科技股份有限公司