存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種存儲系統(tǒng),提供了一種高可用的全局仲裁盤。該存儲系統(tǒng)包括:存儲網(wǎng)絡(luò)、至少兩個存儲節(jié)點(diǎn)和至少一個存儲設(shè)備,每個存儲設(shè)備包括至少一個存儲介質(zhì),并且至少一個存儲設(shè)備所包括的所有存儲介質(zhì)構(gòu)成一個存儲池。所述存儲網(wǎng)絡(luò)被配置為使得每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪問所有存儲介質(zhì);將存儲池劃分成至少兩個存儲區(qū)域,并且從至少兩個存儲區(qū)域中選取一個存儲區(qū)域作為全局仲裁盤。
【專利說明】
存儲系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)存儲系統(tǒng)的技術(shù)領(lǐng)域,更具體地,涉及一種存儲系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)應(yīng)用規(guī)模越來越大,對存儲空間的需求也與日倶增。一個典型的高可用的分布式存儲系統(tǒng)將復(fù)數(shù)設(shè)備的物理服務(wù)器連接起來,其中一臺存儲服務(wù)器出現(xiàn)故障時其工作負(fù)載將由其它存儲服務(wù)器接管。在判斷一臺服務(wù)器是否出現(xiàn)故障時,在判斷一臺服務(wù)器是否出現(xiàn)故障時,常用心跳線的方法,兩臺服務(wù)器之間用心跳線連接起來,如果一臺服務(wù)器無法接收另一服務(wù)器的心跳信號,就判斷另一服務(wù)器出現(xiàn)故障。該方法存在一定的問題,當(dāng)服務(wù)器沒有故障只是心跳線出現(xiàn)故障時,就會出現(xiàn)誤判,甚至可能出現(xiàn)兩臺服務(wù)器都以為對方出現(xiàn)故障,互相搶奪接管對方工作負(fù)載的情形。
[0003]仲裁盤是用于解決這個問題的。仲裁盤是主從服務(wù)器共享的存儲空間,通過能否往仲裁盤里寫特定信號來判斷相應(yīng)服務(wù)器是否出現(xiàn)故障。但實(shí)際上,這種技術(shù)并不能完全解決問題,如果只是通向仲裁盤的通道出現(xiàn)了故障,但服務(wù)器依然完好,則同樣的問題依然存在。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實(shí)施方式提供一種存儲系統(tǒng),提升仲裁盤的可用性,并且改善存儲系統(tǒng)的可靠性判斷。
[0005]本發(fā)明實(shí)施例提供的存儲系統(tǒng)包括:
[0006]存儲網(wǎng)絡(luò);
[0007]至少兩個存儲節(jié)點(diǎn),連接至所述存儲網(wǎng)絡(luò);以及
[0008]至少一個存儲設(shè)備,連接至所述存儲網(wǎng)絡(luò),每個存儲設(shè)備包括至少一個存儲介質(zhì),并且至少一個存儲設(shè)備所包括的所有存儲介質(zhì)構(gòu)成一個存儲池;
[0009]所述存儲網(wǎng)絡(luò)被配置為使得每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪冋所有存儲介質(zhì);
[0010]將所述存儲池劃分成至少兩個存儲區(qū)域,并且從所述至少兩個存儲區(qū)域中選取一個存儲區(qū)域作為全局仲裁盤。
[0011]利用本發(fā)明實(shí)施例提供的存儲系統(tǒng),由于每臺物理服務(wù)器上的計(jì)算節(jié)點(diǎn)(虛擬機(jī)、容器等)的自身存儲也都是在共享存儲中,和仲裁盤一樣都在同樣的共享存儲池中,走的是同樣的存儲通道,這樣一臺服務(wù)器如果無法讀寫仲裁盤,不管是服務(wù)器出現(xiàn)了故障還是相關(guān)存儲通道出現(xiàn)了故障,該服務(wù)器上的計(jì)算節(jié)點(diǎn)也肯定無法正常工作,此時用仲裁盤來判斷服務(wù)器是否出現(xiàn)故障將特別準(zhǔn)確。
【附圖說明】
[0012]圖1示出根據(jù)本發(fā)明一個實(shí)施方式所構(gòu)建的存儲系統(tǒng)的架構(gòu)示意圖。
[0013]圖2示出根據(jù)本發(fā)明的一個實(shí)施方式的存儲系統(tǒng)的架構(gòu)示意圖。
【具體實(shí)施方式】
[0014]下文將參考附圖更完整地描述本公開內(nèi)容,其中在附圖中顯示了本公開內(nèi)容的實(shí)施方式。但是這些實(shí)施方式可以用許多不同形式來實(shí)現(xiàn)并且不應(yīng)該被解釋為限于本文所述的實(shí)施方式。相反地,提供這些實(shí)例以使得本公開內(nèi)容將是透徹和完整的,并且將全面地向本領(lǐng)域的熟練技術(shù)人員表達(dá)本公開內(nèi)容的范圍。
[0015]下面結(jié)合附圖以示例的方式詳細(xì)描述本發(fā)明的各種實(shí)施方式。
[0016]圖1示出根據(jù)本發(fā)明的實(shí)施方式的存儲系統(tǒng)的架構(gòu)示意圖。如圖1所示,該存儲系統(tǒng)包括存儲網(wǎng)絡(luò);存儲節(jié)點(diǎn),連接至所述存儲網(wǎng)絡(luò),其中,所述存儲節(jié)點(diǎn)是提供存儲服務(wù)的軟件模塊,而非通常意義上的包含存儲介質(zhì)在內(nèi)的硬件服務(wù)器;以及存儲設(shè)備,同樣連接至所述存儲網(wǎng)絡(luò)。每個存儲設(shè)備包括至少一個存儲介質(zhì)。其中,所述存儲網(wǎng)絡(luò)被配置為使得每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪問所有存儲介質(zhì)。
[0017]利用本發(fā)明實(shí)施例提供的存儲系統(tǒng),每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪問所有存儲介質(zhì),從而使得本發(fā)明所有的存儲介質(zhì)都實(shí)際上被所有的存儲節(jié)點(diǎn)共享,進(jìn)而實(shí)現(xiàn)了全局存儲池的效果。
[0018]同時,從上述的描述可以看出,相比于現(xiàn)有技術(shù),存儲節(jié)點(diǎn)位于存儲介質(zhì)側(cè),或者嚴(yán)格來說,存儲介質(zhì)是存儲節(jié)點(diǎn)所在物理機(jī)的內(nèi)置盤;本發(fā)明實(shí)施例中,存儲節(jié)點(diǎn)所在的物理機(jī)獨(dú)立于存儲設(shè)備,存儲設(shè)備更多作為連接存儲介質(zhì)與存儲網(wǎng)絡(luò)的一個通道。
[0019]根據(jù)本發(fā)明的實(shí)施方式,還可以使得在需要進(jìn)行動態(tài)平衡時,無需將物理數(shù)據(jù)在不同的存儲介質(zhì)中進(jìn)行迀移,只需要通過配置平衡不同的存儲節(jié)點(diǎn)所管理的存儲介質(zhì)即可。
[0020]在本發(fā)明另一實(shí)施例中,存儲節(jié)點(diǎn)側(cè)進(jìn)一步包括計(jì)算節(jié)點(diǎn),并且計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)設(shè)置在一臺物理服務(wù)器中,該物理服務(wù)器通過存儲網(wǎng)絡(luò)與存儲設(shè)備連接。利用本發(fā)明實(shí)施方式所構(gòu)建的將計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)位于同一物理機(jī)的聚合式存儲系統(tǒng),從整體結(jié)構(gòu)而言,可以減少所需物理設(shè)備的數(shù)量,從而降低成本。同時,計(jì)算節(jié)點(diǎn)也可以在本地訪問到其希望訪問的存儲資源。另外,由于將計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)聚合在同一臺物理服務(wù)器上,兩者之間數(shù)據(jù)交換可以簡單到僅僅是共享內(nèi)存,性能特別優(yōu)異。
[0021]本發(fā)明實(shí)施例提供的存儲系統(tǒng)中,計(jì)算節(jié)點(diǎn)到存儲介質(zhì)之間的I/O數(shù)據(jù)路徑長度包括:(I)存儲介質(zhì)到存儲節(jié)點(diǎn);以及(2)存儲節(jié)點(diǎn)到聚合在同一物理服務(wù)器的計(jì)算節(jié)點(diǎn)(CPU總線通路)。而相比之下,圖1所示現(xiàn)有技術(shù)的存儲系統(tǒng),其計(jì)算節(jié)點(diǎn)到存儲介質(zhì)之間的I/O數(shù)據(jù)路徑長度包括:(I)存儲介質(zhì)到存儲節(jié)點(diǎn);(2)存儲節(jié)點(diǎn)到存儲網(wǎng)絡(luò)接入網(wǎng)交換機(jī);
(3)存儲網(wǎng)絡(luò)接入網(wǎng)交換機(jī)到核心網(wǎng)交換機(jī);(4)核心網(wǎng)交換機(jī)到計(jì)算網(wǎng)絡(luò)接入網(wǎng)交換機(jī);以及(5)計(jì)算網(wǎng)絡(luò)接入網(wǎng)交換機(jī)到計(jì)算節(jié)點(diǎn)。顯然,本發(fā)明實(shí)施方式的存儲系統(tǒng)的總數(shù)據(jù)路徑只接近于傳統(tǒng)存儲系統(tǒng)的第(I)項(xiàng)。即,本發(fā)明實(shí)施例提供的存儲系統(tǒng),通過對I/O數(shù)據(jù)路徑長度的極致壓縮能夠極大地提高了存儲系統(tǒng)的I/O通道性能,其實(shí)際運(yùn)行效果非常接近于讀寫本地硬盤的I/O通道。
[0022]在本發(fā)明一實(shí)施例中,存儲節(jié)點(diǎn)可以是物理服務(wù)器的一個虛擬機(jī)、一個容器或直接運(yùn)行在服務(wù)器的物理操作系統(tǒng)上的一個模塊,計(jì)算節(jié)點(diǎn)也可以是同一個物理機(jī)服務(wù)器的一個虛擬機(jī)、一個容器或直接運(yùn)行在所述服務(wù)器的物理操作系統(tǒng)上的一個模塊。在一個實(shí)施例中,每個存儲節(jié)點(diǎn)可以對應(yīng)一個或多個計(jì)算節(jié)點(diǎn)。
[0023]具體而言,可以將一臺物理服務(wù)器分成多個虛擬機(jī),其中一臺虛擬機(jī)做存儲節(jié)點(diǎn)用,其它虛擬機(jī)做計(jì)算節(jié)點(diǎn)用;也可是利用物理OS上的一個模塊做存儲節(jié)點(diǎn)用,以便實(shí)現(xiàn)更好的性能。
[0024]在本發(fā)明一實(shí)施例中,形成虛擬機(jī)的虛擬化技術(shù)可以是KVM或Zen或VMware或Hyper-V虛擬化技術(shù),形成所述容器的容器技術(shù)可以是Docker或Rockett或Odin或Chef■或LXC 或 Vagrant 或 Ansib Ie或 Zone或 Jai I 或Hyper-V容器技術(shù)。
[0025]在本發(fā)明一實(shí)施例中,各個存儲節(jié)點(diǎn)同時只負(fù)責(zé)管理固定的存儲介質(zhì),并且一個存儲介質(zhì)不會同時被多個存儲節(jié)點(diǎn)進(jìn)行寫入,以避免數(shù)據(jù)沖突,從而能夠?qū)崿F(xiàn)每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪問由其管理的存儲介質(zhì),并且能夠保證存儲系統(tǒng)中存儲的數(shù)據(jù)的完整性。
[0026]在本發(fā)明一實(shí)施例中,可以將系統(tǒng)中所有的存儲介質(zhì)按照存儲邏輯進(jìn)行劃分,具體而言,可以將整個系統(tǒng)的存儲池劃分為存儲區(qū)域、存儲組、存儲塊這樣的邏輯存儲層級架構(gòu),其中,存儲塊為最小存儲單位。在本發(fā)明一實(shí)施例中,可以將存儲池劃分成至少兩個存儲區(qū)域。
[0027]在本發(fā)明一實(shí)施例中,每一個存儲區(qū)域可以分為至少一個存儲組。在一個較優(yōu)的實(shí)施例中,每個存儲區(qū)域至少被劃分為兩個存儲組。
[0028]在一些實(shí)施例中,存儲區(qū)域和存儲組是可以合并的,從而可以在該存儲層級架構(gòu)中省略一個層級。
[0029]在本發(fā)明一實(shí)施例中,每個存儲區(qū)域(或者存儲組)可以由至少一個存儲塊組成,其中存儲塊可以是一個完整的存儲介質(zhì)、也可以是一個存儲介質(zhì)的一部分。為了在存儲區(qū)域內(nèi)部構(gòu)建冗余存儲,每個存儲區(qū)域(或者存儲組)可以由至少兩個存儲塊組成,當(dāng)其中任何一個存儲塊出現(xiàn)故障時,可以從該組中其余存儲塊中計(jì)算出完整的被存儲數(shù)據(jù)。冗余存儲方式可以為多副本模式、獨(dú)立冗余磁盤陣列(RAID)模式、糾刪碼(erase code)模式。在本發(fā)明一實(shí)施例中,冗余存儲方式可以通過ZFS文件系統(tǒng)建立。在本發(fā)明一實(shí)施例中,為了對抗存儲設(shè)備/存儲介質(zhì)的硬件故障,每個存儲區(qū)域(或者存儲組)所包含的多個存儲塊不會位于同一個存儲介質(zhì)中,甚至也不位于同一個存儲設(shè)備中。在本發(fā)明一實(shí)施例中,每個存儲區(qū)域(或者存儲組)所包含的任何兩個存儲塊都不會位于同一個存儲介質(zhì)/存儲設(shè)備中。在本發(fā)明另一實(shí)施例中,同一存儲區(qū)域(或者存儲組)中位于同一存儲介質(zhì)/存儲設(shè)備的存儲塊數(shù)量最好小于或等于冗余存儲的冗余度。舉例說明,當(dāng)存儲冗余采取的RAID 5方式時,其冗余存儲的冗余度為I,那么位于同一存儲設(shè)備的同一存儲組的存儲塊數(shù)量最多為I;對RAID6,其冗余存儲的冗余度為2,那么位于同一存儲設(shè)備的同一存儲組的存儲塊數(shù)量最多為2。
[0030]在本發(fā)明一實(shí)施例中,每個存儲節(jié)點(diǎn)都只能讀和寫自己管理的存儲區(qū)域。由于多個存儲節(jié)點(diǎn)對同一個存儲塊的讀操作并不會互相沖突,而多個存儲節(jié)點(diǎn)同時寫一個存儲塊容易發(fā)生沖突,因此,在另一個實(shí)施例中,可以是每個存儲節(jié)點(diǎn)只能寫自己管理的存儲區(qū)域,但是可以讀自己管理的存儲區(qū)域以及其它存儲節(jié)點(diǎn)管理的存儲區(qū)域,即寫操作是局域性的,但讀操作可以是全局性。
[0031]在一個實(shí)施方式中,存儲系統(tǒng)還可以包括存儲控制節(jié)點(diǎn),其連接至存儲網(wǎng)絡(luò),用于確定每個存儲節(jié)點(diǎn)管理的存儲區(qū)域。在另一個實(shí)施方式中,每個存儲節(jié)點(diǎn)可以包括存儲分配模塊,用于確定該存儲節(jié)點(diǎn)所管理的存儲區(qū)域,這可以通過每個存儲節(jié)點(diǎn)所包括的各個存儲分配模塊之間的通信和協(xié)調(diào)處理算法來實(shí)現(xiàn),該算法可以例如以使得各個存儲節(jié)點(diǎn)之間的負(fù)載均衡為原則。
[0032]在一個實(shí)施例中,在監(jiān)測到一個存儲節(jié)點(diǎn)發(fā)生故障時,可以對其他部分或全部存儲節(jié)點(diǎn)進(jìn)行配置,使得這些存儲節(jié)點(diǎn)接管之前由所述發(fā)生故障的存儲節(jié)點(diǎn)管理的存儲區(qū)域。例如,可以由其中一個存儲節(jié)點(diǎn)接管出現(xiàn)故障的存儲節(jié)點(diǎn)管理的存儲區(qū)域,或者,可以由其它至少兩個存儲節(jié)點(diǎn)進(jìn)行接管,其中每個存儲節(jié)點(diǎn)接管出現(xiàn)故障的存儲節(jié)點(diǎn)管理的部分的存儲區(qū)域,比如其他至少兩個存儲節(jié)點(diǎn)分別接管該存儲區(qū)域內(nèi)的不同存儲組。
[0033]在一個實(shí)施例中,存儲介質(zhì)可以包括但不限于硬盤、閃存、SRAM、DRAM、NVME或其它形式,存儲介質(zhì)的訪問接口可以包括但不限于SAS接口、SATA接口、PCI/e接口、DMM接口、NVMe接口、SCSI接口、AHCI接口。
[0034]在本發(fā)明一實(shí)施例中,存儲網(wǎng)絡(luò)可以包括至少一個存儲交換設(shè)備,通過其中包括的存儲交換設(shè)備之間的數(shù)據(jù)交換來實(shí)現(xiàn)存儲節(jié)點(diǎn)對存儲介質(zhì)的訪問。具體而言,存儲節(jié)點(diǎn)和存儲介質(zhì)分別通過存儲通道與存儲交換設(shè)備連接。根據(jù)本發(fā)明的實(shí)施方式,提供了一種支持多點(diǎn)控制的存儲系統(tǒng),其中的單一存儲空間可以通過多個通道訪問,例如由計(jì)算節(jié)點(diǎn)進(jìn)行訪問。
[0035]在本發(fā)明一實(shí)施例中,存儲交換設(shè)備可以是SAS交換機(jī)或PCI/e交換機(jī),對應(yīng)地,存儲通道可以是SAS (串行連接SCSI)通道或PCI/e通道。
[0036]以SAS通道為例,相比傳統(tǒng)的基于IP協(xié)議的存儲方案,基于SAS交換的方案,擁有著性能高,帶寬大,單臺設(shè)備磁盤數(shù)量多等優(yōu)點(diǎn)。在與主機(jī)適配器(HBA)或者服務(wù)器主板上的SAS接口結(jié)合使用后,SAS體系所提供的存儲能夠很容易的被連接的多臺服務(wù)器同時訪問。
[0037]具體而言,SAS交換機(jī)到存儲設(shè)備之間通過一根SAS線連接,存儲設(shè)備與存儲介質(zhì)之間也是由SAS接口連接,比如,存儲設(shè)備內(nèi)部將SAS通道連到每個存儲介質(zhì)(可以在存儲設(shè)備內(nèi)部設(shè)置一個SAS交換芯片)。由于SAS網(wǎng)絡(luò)的帶寬可以達(dá)到24Gb或48Gb,是千兆以太網(wǎng)的幾十倍,以及昂貴的萬兆以太網(wǎng)的數(shù)倍;同時在鏈路層SAS比IP網(wǎng)有大約一個數(shù)量級的提升,在傳輸層,由于TCP協(xié)議三次握手四次關(guān)閉,開銷很高且TCP的延遲確認(rèn)機(jī)制和慢啟動有時會導(dǎo)致100毫秒級的延時,SAS協(xié)議的延時只有TCP的幾十分之一,性能有更大的提升??傊?,SAS網(wǎng)絡(luò)比基于以太網(wǎng)的TCP/IP在帶寬、延時性方面具有巨大優(yōu)勢。本領(lǐng)域技術(shù)人員可以理解,PCI/e通道的性能也可以適應(yīng)系統(tǒng)的需求。
[0038]在本發(fā)明一實(shí)施例中,存儲網(wǎng)絡(luò)可以包括至少兩個存儲交換設(shè)備,所述每個存儲節(jié)點(diǎn)都可以通過任意一個存儲交換設(shè)備連接到任何一個存儲設(shè)備,進(jìn)而連接至存儲介質(zhì)。當(dāng)任何一個存儲交換設(shè)備或連接到一個存儲交換設(shè)備的存儲通道出現(xiàn)故障時,存儲節(jié)點(diǎn)通過其它存儲交換設(shè)備讀寫存儲設(shè)備上的數(shù)據(jù)。
[0039]參考圖2,其示出了根據(jù)本發(fā)明一個實(shí)施方式所構(gòu)建的一個具體的存儲系統(tǒng)30。存儲系統(tǒng)30中的存儲設(shè)備被構(gòu)建成多臺JB0D307-310,分別通過SAS數(shù)據(jù)線連接至兩個SAS交換機(jī)305和306,這兩個SAS交換機(jī)構(gòu)成了存儲系統(tǒng)所包括的存儲網(wǎng)絡(luò)的交換核心。前端為至少兩個服務(wù)器301和302,每臺服務(wù)器通過HBA設(shè)備(未示出)或主板上SAS接口連接至這兩個SAS交換機(jī)305和306。服務(wù)器之間存在基本的網(wǎng)絡(luò)連接用來監(jiān)控和通信。每臺服務(wù)器中都有一個存儲節(jié)點(diǎn),利用從SAS鏈路獲取的信息,管理所有JBOD磁盤中的部分或全部磁盤。具體而言,可以利用本申請文件以上描述的存儲區(qū)域、存儲組、存儲塊來將JBOD磁盤劃分成不同的存儲組。每個存儲節(jié)點(diǎn)都管理一組或多組這樣的存儲組。當(dāng)每個存儲組內(nèi)部采用冗余存儲的方式時,可以將冗余存儲的元數(shù)據(jù)存在于磁盤之上,使得冗余存儲能夠被其他存儲節(jié)點(diǎn)直接從磁盤識別。
[0040]在所示的示例性存儲系統(tǒng)30中,存儲節(jié)點(diǎn)可以安裝監(jiān)控和管理模塊,負(fù)責(zé)監(jiān)控本地存儲和其它服務(wù)器的狀態(tài)。當(dāng)某臺JBOD整體異常,或者JBOD上某個磁盤異常時,數(shù)據(jù)可靠性由冗余存儲來確保。當(dāng)某臺服務(wù)器故障時,另一臺預(yù)先設(shè)定好的服務(wù)器上的存儲節(jié)點(diǎn)中的管理模塊,將按照磁盤上的數(shù)據(jù),在本地識別并接管原來由故障服務(wù)器的存儲節(jié)點(diǎn)所管理的磁盤。故障服務(wù)器的存儲節(jié)點(diǎn)原本對外提供的存儲服務(wù),也將在新的服務(wù)器上的存儲節(jié)點(diǎn)得到延續(xù)。至此,實(shí)現(xiàn)了一種全新的高可用的全局存儲池結(jié)構(gòu)。
[0041]可見,所構(gòu)建的示例性存儲系統(tǒng)30提供了一種多點(diǎn)可控的、全局訪問的存儲池。硬件方面使用多臺服務(wù)器來對外提供服務(wù),使用JBOD來存放磁盤。將多臺JBOD各自連接兩臺SAS交換機(jī),兩臺交換機(jī)再分別連接服務(wù)器的HBA卡,從而確保JBOD上所有磁盤,能夠被所有服務(wù)器訪問。SAS冗余鏈路也確保了鏈路上的高可用性。
[0042]在每臺服務(wù)器本地,利用冗余存儲技術(shù),從每臺JBOD上選取磁盤組成冗余存儲,避免單臺JBOD的損失造成數(shù)據(jù)不可用。當(dāng)一臺服務(wù)器失效時,對整體狀態(tài)進(jìn)行監(jiān)控的模塊將調(diào)度另一臺服務(wù)器,通過SAS通道訪問失效服務(wù)器的存儲節(jié)點(diǎn)所管理的磁盤,快速接管對方負(fù)責(zé)的這些磁盤,實(shí)現(xiàn)高可用的全局存儲。
[0043]雖然在圖2中是以JBOD存放磁盤為例進(jìn)行了說明,但是應(yīng)當(dāng)理解,如圖2所示的本發(fā)明的實(shí)施方式還支持JBOD以外的存儲設(shè)備。另外,以上是以一塊存儲介質(zhì)(整個的)作為一個存儲塊為例,也同樣適用于將一個存儲介質(zhì)的一部分作為一個存儲塊的情形。
[0044]在本發(fā)明一實(shí)施例中,可以通過如下方式監(jiān)控每臺服務(wù)器是否失效:將全局存儲池劃分成至少兩個存儲區(qū)域,并且從該至少兩個存儲區(qū)域中選取一個存儲區(qū)域作為全局仲裁盤。每個存儲節(jié)點(diǎn)都能夠?qū)λ鋈种俨帽P進(jìn)行讀和寫操作,但同時只負(fù)責(zé)管理剩余存儲區(qū)域中(除全局仲裁盤所在存儲區(qū)域外)的零到多個存儲區(qū)域。
[0045]根據(jù)本發(fā)明實(shí)施方式,全局仲裁盤由服務(wù)器上層應(yīng)用、即存儲節(jié)點(diǎn)使用,即每一個存儲節(jié)點(diǎn)都可以直接對全局仲裁盤進(jìn)行讀寫。由于存儲訪問的多點(diǎn)控制的特性,每個存儲節(jié)點(diǎn)都能夠同步的看到其他存儲節(jié)點(diǎn)更新的內(nèi)容。
[0046]在本發(fā)明一個實(shí)施例中,全局仲裁盤的存儲空間被劃分成多個固定分塊,所述多個固定分塊中的每一個分別被分配給所述一個或多個存儲節(jié)點(diǎn)中的每個存儲節(jié)點(diǎn),從而可以避免多個控制節(jié)點(diǎn)對于仲裁盤的并發(fā)讀寫沖突。
[0047]在本發(fā)明一個實(shí)施例中,全局仲裁盤可以被配置為:一個或多個存儲節(jié)點(diǎn)中的每個存儲節(jié)點(diǎn)在使用全局仲裁盤時,只能對分配給其的固定分塊執(zhí)行寫操作,而對分配給其他存儲節(jié)點(diǎn)的固定分塊執(zhí)行讀操作。使得存儲節(jié)點(diǎn)可以在更新自己的狀態(tài)同時了解其他存儲節(jié)點(diǎn)的狀態(tài)變化。
[0048]在本發(fā)明一實(shí)施例中,在全局仲裁盤上可以設(shè)置有選舉鎖。當(dāng)一個存儲節(jié)點(diǎn)出現(xiàn)故障時,其余存儲節(jié)點(diǎn)利用選舉鎖機(jī)制選舉出接管節(jié)點(diǎn)。特別是當(dāng)某一存儲節(jié)點(diǎn)具有特殊功能,并且該具有特殊功能的存儲節(jié)點(diǎn)出現(xiàn)故障時,選舉鎖機(jī)制的價值就更大。
[0049]具體而言,作為一個存儲區(qū)域的全局仲裁盤也可以具有如上討論的存儲區(qū)域的特征。在本發(fā)明一實(shí)施例中,全局仲裁盤包括一個或多個存儲介質(zhì),或包括一個或多個存儲介質(zhì)的部分或全部。同時,全局仲裁盤所包括的存儲介質(zhì)可以位于同一個或不同的存儲設(shè)備中。
[0050]舉例說明,全局仲裁盤可以由一個完整的存儲介質(zhì)組成,也可以由2個完整的存儲介質(zhì)組成,或者是2個存儲介質(zhì)的部分構(gòu)成,還可以是一個存儲介質(zhì)的部分以及另一個或幾個完整的存儲介質(zhì)構(gòu)成。
[0051]在本發(fā)明一實(shí)施例中,全局仲裁盤可以由至少兩個存儲設(shè)備上的至少兩個存儲介質(zhì)的全部或部分以冗余存儲的方式構(gòu)成。
[0052]以JBOD作為存儲介質(zhì)為例進(jìn)行說明,由于每一臺存儲節(jié)點(diǎn)服務(wù)器都能訪問所有JBOD上的存儲資源,因此可以從每臺JBOD的一塊或多塊磁盤中抽取部分存儲空間,組合作為全局的仲裁盤來使用。通過控制仲裁盤的分布,可以很容易的提升仲裁盤的可靠性。最嚴(yán)苛的情況下,系統(tǒng)里只有一臺JBOD存活時,仲裁盤仍然能夠工作。
[0053]利用本發(fā)明實(shí)施例提供的存儲系統(tǒng),由于每臺物理服務(wù)器上的計(jì)算節(jié)點(diǎn)(虛擬機(jī)、容器等)的自身存儲也都是在全局存儲池中,具體而言,是位于與仲裁盤同樣的共享存儲池中。計(jì)算節(jié)點(diǎn)與存儲節(jié)點(diǎn)對全局存儲池的正常讀寫與存儲節(jié)點(diǎn)讀寫仲裁盤走的是同樣的存儲通道,這種情況下,一臺服務(wù)器如果無法讀寫仲裁盤,不管是服務(wù)器出現(xiàn)了故障還是相關(guān)存儲通道出現(xiàn)了故障,該服務(wù)器上的計(jì)算節(jié)點(diǎn)也肯定無法正常工作,即無法訪問其正常的存儲資源。因此通過這種仲裁盤結(jié)構(gòu)來判斷對應(yīng)的計(jì)算節(jié)點(diǎn)是否有效工作是非??煽康?。
[0054]具體而言,每個存儲節(jié)點(diǎn)都會持續(xù)往仲裁盤寫入數(shù)據(jù),同時,每個存儲節(jié)點(diǎn)也會持續(xù)監(jiān)聽(通過讀的方式)其他存儲節(jié)點(diǎn)是否有定期往仲裁盤寫入數(shù)據(jù),一旦發(fā)現(xiàn)某個存儲節(jié)點(diǎn)未準(zhǔn)時往仲裁盤寫入數(shù)據(jù),則可以判斷該存儲節(jié)點(diǎn)對應(yīng)的計(jì)算節(jié)點(diǎn)未正常工作。
[0055]存儲節(jié)點(diǎn)持續(xù)往仲裁盤寫入心跳數(shù)據(jù)的方式為存儲節(jié)點(diǎn)以系統(tǒng)預(yù)設(shè)的時間間隔定期往仲裁盤寫入心跳數(shù)據(jù),比如每五秒往仲裁盤內(nèi)寫入數(shù)據(jù)。
[0056]應(yīng)當(dāng)理解,為了不模糊本發(fā)明的實(shí)施方式,說明書僅對一些關(guān)鍵、未必必要的技術(shù)和特征進(jìn)行了描述,而可能未對一些本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)的特征做出說明。
[0057]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種存儲系統(tǒng),其特征在于,包括: 存儲網(wǎng)絡(luò); 至少兩個存儲節(jié)點(diǎn),連接至所述存儲網(wǎng)絡(luò);以及 至少一個存儲設(shè)備,連接至所述存儲網(wǎng)絡(luò),每個存儲設(shè)備包括至少一個存儲介質(zhì),并且至少一個存儲設(shè)備所包括的所有存儲介質(zhì)構(gòu)成一個共享存儲池; 其中,所述存儲網(wǎng)絡(luò)被配置為使得每一個存儲節(jié)點(diǎn)都能夠無需借助其他存儲節(jié)點(diǎn)而訪問所有存儲介質(zhì),并且, 將所述共享存儲池劃分成至少兩個存儲區(qū)域,并且從所述至少兩個存儲區(qū)域中選取一個存儲區(qū)域作為全局仲裁盤。2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述全局仲裁盤的存儲空間被劃分成多個固定分塊,所述多個固定分塊中的每一個分別被分配給所述一個或多個存儲節(jié)點(diǎn)中的每個存儲節(jié)點(diǎn);所述每個存儲節(jié)點(diǎn)能夠?qū)懛峙浣o其的固定分塊,能夠讀分配給其他存儲節(jié)點(diǎn)的固定分塊。3.根據(jù)權(quán)利要求2所述的存儲系統(tǒng),其特征在于,所述全局仲裁盤包括一個或多個存儲介質(zhì),或包括一個或多個存儲介質(zhì)的部分或全部;或所述全局仲裁盤所包括的存儲介質(zhì)可以位于同一個或不同的存儲設(shè)備中。4.根據(jù)權(quán)利要求3所述的存儲系統(tǒng),其特征在于,所述全局仲裁盤由至少兩個存儲設(shè)備上的至少兩個存儲介質(zhì)的全部或部分以冗余存儲的方式構(gòu)成。5.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,在所述全局仲裁盤上設(shè)置有選舉鎖;當(dāng)一個存儲節(jié)點(diǎn)出現(xiàn)故障時,其余存儲節(jié)點(diǎn)利用所述選舉鎖機(jī)制選舉出接管節(jié)點(diǎn)。6.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述存儲網(wǎng)絡(luò)是SAS網(wǎng)絡(luò)或PCI/e網(wǎng)絡(luò)。7.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,所述存儲節(jié)點(diǎn)持久化保存數(shù)據(jù)的位置是所述共享存儲池。8.根據(jù)權(quán)利要求8所述的存儲系統(tǒng),其特征在于,所述存儲系統(tǒng)進(jìn)一步包括一個或多個計(jì)算節(jié)點(diǎn),每個計(jì)算節(jié)點(diǎn)通過與之對應(yīng)的存儲節(jié)點(diǎn)讀寫持久化保存數(shù)據(jù);其中,所述計(jì)算節(jié)點(diǎn)與對應(yīng)的存儲節(jié)點(diǎn)都位于同一物理服務(wù)器。9.根據(jù)權(quán)利要求1至8所述的存儲系統(tǒng),其特征在于,所述每個存儲節(jié)點(diǎn)持續(xù)往仲裁盤寫入心跳數(shù)據(jù),同時,每個存儲節(jié)點(diǎn)都會持續(xù)監(jiān)聽其他存儲節(jié)點(diǎn)是否持續(xù)往仲裁盤寫入心跳數(shù)據(jù),一旦發(fā)現(xiàn)某個存儲節(jié)點(diǎn)未準(zhǔn)時往仲裁盤寫入心跳數(shù)據(jù),可以判斷該存儲節(jié)點(diǎn)出現(xiàn)故障。10.根據(jù)權(quán)利要求9所述的存儲系統(tǒng),其特征在于,存儲節(jié)點(diǎn)持續(xù)往仲裁盤寫入心跳數(shù)據(jù)的方式為存儲節(jié)點(diǎn)以系統(tǒng)預(yù)設(shè)的時間間隔定期往仲裁盤寫入心跳數(shù)據(jù)。
【文檔編號】H04L12/24GK105872031SQ201610181228
【公開日】2016年8月17日
【申請日】2016年3月26日
【發(fā)明人】王東臨, 金友兵, 齊宇
【申請人】天津書生云科技有限公司