本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種集群文件系統(tǒng)。
背景技術(shù):
隨著計算機技術(shù)和網(wǎng)絡技術(shù)的快速發(fā)展,集群系統(tǒng)以其強大的運算能力和健壯的容錯機制讓其逐步成為計算機行業(yè)的焦點。但是作為配套的集群文件系統(tǒng)的發(fā)展受到分布式的影響,發(fā)展緩慢,大部分的集群文件系統(tǒng)是在原有的文件系統(tǒng)的基礎(chǔ)上重新創(chuàng)建虛擬機需求的文件系統(tǒng)格式。此類文件系統(tǒng)加深了每一次的IO操作的流程,降低了文件系統(tǒng)的訪問速率。因此如何提高集群文件系統(tǒng)的效率,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種集群文件系統(tǒng),該集群文件系統(tǒng)提供塊設(shè)備使虛擬設(shè)備根據(jù)所需要的文件格式,將該塊設(shè)備格式化為自己需求的文件系統(tǒng),降低了每次IO操作的流程。
為解決上述技術(shù)問題,本發(fā)明提供一種集群文件系統(tǒng),包括:lvm管理模塊,nfs管理模塊;其中,
所述lvm管理模塊,用于根據(jù)塊設(shè)備創(chuàng)建信息創(chuàng)建對應的塊設(shè)備提供給集群用戶,使所述集群用戶直接在所述塊設(shè)備中進行IO操作;
所述nfs管理模塊,用于在掛載lvm存儲池的節(jié)點掛載nfs文件系統(tǒng),通過sanlock管理所述lvm存儲池。
可選的,所述nfs管理模塊包括:
初始化模塊,用于在創(chuàng)建lvm存儲池時,在所述nfs文件系統(tǒng)中創(chuàng)建對應的lvm存儲池鎖信息文件。
可選的,所述初始化模塊具體為在創(chuàng)建lvm存儲池時,通過sanlock執(zhí)行init lockspace,并在每一臺主機上執(zhí)行add lockspace操作,創(chuàng)建以vg的uuid為名的文件,使所述文件具有對應lvm存儲池的資源鎖。
可選的,所述nfs管理模塊包括:
元數(shù)據(jù)一致性單元,用于若接收到元數(shù)據(jù)操作請求時,通過sanlock獲取對應的vg鎖資源后執(zhí)行對應的元數(shù)據(jù)操作,并在所述元數(shù)據(jù)操作完成后釋放所述vg鎖資源。
可選的,所述nfs管理模塊包括:
塊設(shè)備鎖信息創(chuàng)建單元,用于在創(chuàng)建塊設(shè)備時,在所述nfs文件系統(tǒng)中創(chuàng)建對應的塊設(shè)備鎖信息文件。
可選的,所述設(shè)備鎖信息創(chuàng)建單元具體為在創(chuàng)建塊設(shè)備時,通過sanlock創(chuàng)建以所述塊設(shè)備的uuid為名的文件,并通過sanlock執(zhí)行init resource操作,使所述文件具有所述塊設(shè)備的資源鎖。
可選的,所述nfs管理模塊包括:
塊設(shè)備操作單元,用于若接收到塊設(shè)備操作請求時,通過sanlock獲取對應的鎖資源后執(zhí)行對應的塊設(shè)備操作,并在所述塊設(shè)備操作完成后釋放所述鎖資源。
可選的,所述nfs管理模塊包括:
塊設(shè)備鎖信息刪除單元,用于若接收到塊設(shè)備刪除請求時,通過sanlock檢測到所述塊設(shè)備對應的鎖資源未被占用時,刪除所述塊設(shè)備,并在刪除成功后刪除所述塊設(shè)備對應的塊設(shè)備鎖信息文件。
可選的,本方案還包括:
鎖信息檢測模塊,用于定時檢測所述nfs管理模塊中的鎖信息和內(nèi)核中塊設(shè)備信息,并刪除已經(jīng)被刪除的塊設(shè)備對應的內(nèi)核信息。
本發(fā)明所提供的一種集群文件系統(tǒng),包括:lvm管理模塊,nfs管理模塊;其中,lvm管理模塊,根據(jù)塊設(shè)備創(chuàng)建信息創(chuàng)建對應的塊設(shè)備提供給集群用戶,使集群用戶直接在塊設(shè)備中進行IO操作;nfs管理模塊,在掛載lvm存儲池的節(jié)點掛載nfs文件系統(tǒng),通過sanlock管理lvm存儲池;
可見,該集群文件系統(tǒng)提供塊設(shè)備使虛擬設(shè)備根據(jù)所需要的文件格式,直接將該塊設(shè)備格式化為自己需求的文件系統(tǒng),即用戶直接在塊設(shè)備中進行IO操作,減少了現(xiàn)有技術(shù)中首先在文件系統(tǒng)中進行IO操作的步驟,降低了每次IO操作的流程;同時提供了較為速度的IO操作,提高集群文件系統(tǒng)的效率,同時提高了集群的虛擬設(shè)備的IO速度。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的集群文件系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明實施例所提供的另一集群文件系統(tǒng)的結(jié)構(gòu)框圖。
具體實施方式
本發(fā)明的核心是提供一種集群文件系統(tǒng),該集群文件系統(tǒng)提供塊設(shè)備使虛擬設(shè)備根據(jù)所需要的文件格式,將該塊設(shè)備格式化為自己需求的文件系統(tǒng),降低了每次IO操作的流程。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本實施例中l(wèi)vm即logical volume manager(邏輯卷管理),nfs(network file system)即網(wǎng)絡文件系統(tǒng),sanlock是一個軟件實現(xiàn)的輕量靈活的分布式鎖管理器,在ovirt、libvirt等開源虛擬化項目中都有應用。現(xiàn)有技術(shù)中首先在文件系統(tǒng)中進行IO操作,然后再由文件系統(tǒng)將對應的IO操作寫到塊設(shè)備中,即進行了兩次IO操作的流程,降低了IO操作速度。本實施例中直接提供塊設(shè)備,使其直接在塊設(shè)備中進行IO操作,因此節(jié)省了IO操作的流程,提高了IO操作速度。具體請參考圖1,圖1為本發(fā)明實施例所提供的集群文件系統(tǒng)的結(jié)構(gòu)框圖;該系統(tǒng)可以包括:lvm管理模塊100,nfs管理模塊200;其中,
lvm管理模塊100,用于根據(jù)塊設(shè)備創(chuàng)建信息創(chuàng)建對應的塊設(shè)備提供給集群用戶,使集群用戶直接在塊設(shè)備中進行IO操作;
具體的,lvm管理模塊100提供具體的塊設(shè)備,以提供給集群使用,增快集群文件系統(tǒng)的訪問速度。
nfs管理模塊200,用于在掛載lvm存儲池的節(jié)點掛載nfs文件系統(tǒng),通過sanlock管理lvm存儲池。
具體的,nfs管理模塊200提供集群管理的依賴文件,通過nfs來判斷作為sanlock鎖管理的存儲目標。且nfs管理模塊200中sanlock管理的目的是為了lvm更好的適合集群管理文件,同時防止集群成員共同的訪問,造成腦裂現(xiàn)象。即nfs文件系統(tǒng)提供了sanlock管理的存儲依賴,即掛載lvm存儲池的節(jié)點都需要掛載該nfs文件系統(tǒng),通過sanlock來管理lvm存儲池,使之適應于集群文件系統(tǒng)。
進一步,sanlock不僅可以提供鎖管理方案;同時Sanlock還可以提供一個弱的集群管理方案,即集群lvm存儲池訪問節(jié)點控制。以提高nfs管理模塊200的管理效率和管理可靠性。
該系統(tǒng)通過lvm管理模塊100和nfs管理模塊200達到管理控制集群文件系統(tǒng)。通過nfs提供的集群成員可以相互訪問的文件系統(tǒng)來提供共享式可讀寫的文件,通過sanlock提供互斥的鎖的操作,避免資源被不同的機器復用。
基于上述技術(shù)方案,本發(fā)明實施例提供的集群文件系統(tǒng),該系統(tǒng)提供給虛擬設(shè)備以具體的塊文件,虛擬設(shè)備則根據(jù)所需要的文件格式,將該塊設(shè)備格式化為自己需求的文件系統(tǒng),降低了每次IO操作的流程。同時提供了較為速度的IO操作,提高集群文件系統(tǒng)的效率,同時提高了集群的虛擬設(shè)備的IO速度。
基于上述實施例,創(chuàng)建lv時候?qū)vm的元數(shù)據(jù)操作,因為多臺主機都能同時的訪問創(chuàng)建該lvm存儲池,因此,為了保證lvm的元數(shù)據(jù)的安全性,集群的lvm的每一次對于元數(shù)據(jù)的操作必須是互斥的,因此,通過sanlock來保證集群的對于元數(shù)據(jù)的操作是互斥的,因此sanlock+nfs提供了vg鎖,即對元數(shù)據(jù)的操作必須通過sanlock來獲取vg的鎖,然后在進行操作,并在操作完成后釋放該vg鎖。即可選的,本實施例中nfs管理模塊200可以包括:
初始化模塊,用于在創(chuàng)建lvm存儲池時,在nfs文件系統(tǒng)中創(chuàng)建對應的lvm存儲池鎖信息文件。
具體的,初始化模塊具體為在創(chuàng)建lvm存儲池時,通過sanlock執(zhí)行initlockspace,并在每一臺主機上執(zhí)行add lockspace操作,創(chuàng)建以vg的uuid為名的文件,使文件具有對應lvm存儲池的資源鎖。
即首先配置iscsi設(shè)備或者FC塊設(shè)備,通過主機能夠正常的訪問到該LUN,把每一個使用該LUN的主機上掛載一個每臺主機都可以訪問到的nfs文件系統(tǒng)。部署sanlock管理軟件,然后在一臺主機上執(zhí)行init lockspace(以即將創(chuàng)建的vg的uuid為該鎖信息的lockspace name)操作,即初始化該分布式鎖信息,然后在每一臺主機上執(zhí)行add lockspace操作,即執(zhí)行連接鎖操作,對每一臺主機進行鎖管理操作;創(chuàng)建vg(上述的lockspace name的uuid),然后在nfs文件系統(tǒng)上創(chuàng)建該vg的鎖信息(以vg的uuid為名的文件),然后初始化。
元數(shù)據(jù)一致性單元,用于若接收到元數(shù)據(jù)操作請求時,通過sanlock獲取對應的vg鎖資源后執(zhí)行對應的元數(shù)據(jù)操作,并在元數(shù)據(jù)操作完成后釋放vg鎖資源。
其中,將若干個磁盤分區(qū)連接為一個整塊的卷組(volume group,vg),形成一個lvm存儲池。
基于上述實施例,為了防止集群的同時訪問造成腦裂問題,本實施例中nfs管理模塊可以包括:
塊設(shè)備鎖信息創(chuàng)建單元,用于在創(chuàng)建塊設(shè)備時,在nfs文件系統(tǒng)中創(chuàng)建對應的塊設(shè)備鎖信息文件。
具體的,設(shè)備鎖信息創(chuàng)建單元具體為在創(chuàng)建塊設(shè)備時,通過sanlock創(chuàng)建以塊設(shè)備的uuid為名的文件,并通過sanlock執(zhí)行init resource操作,使文件具有塊設(shè)備的資源鎖。
即每一次創(chuàng)建lv(即塊設(shè)備)的操作必須在該nfs文件系統(tǒng)上面創(chuàng)建以該lv的uuid為名的文件,同時對該文件執(zhí)行init resource操作,即該文件為該lv的鎖信息。
塊設(shè)備操作單元,用于若接收到塊設(shè)備操作請求時,通過sanlock獲取對應的鎖資源后執(zhí)行對應的塊設(shè)備操作,并在塊設(shè)備操作完成后釋放鎖資源。
塊設(shè)備鎖信息刪除單元,用于若接收到塊設(shè)備刪除請求時,通過sanlock檢測到塊設(shè)備對應的鎖資源未被占用時,刪除塊設(shè)備,并在刪除成功后刪除塊設(shè)備對應的塊設(shè)備鎖信息文件。
具體的,每一次使用該lv時候必須獲取該lv的資源鎖,刪除lv時候必須同時刪除該資源鎖。即對于內(nèi)核的lv的殘留數(shù)據(jù)來說,每次創(chuàng)建lv的操作必須通過sanlock創(chuàng)建出來sanlock的資源的鎖,即以lv的uuid為命名的資源信息,每次使用lv的時候獲取該lv的鎖,然后才能正常的使用,對于lv的刪除操作時候必須檢查該lv是否已經(jīng)被占用,即該lv正在使用;能夠正常的刪除lv時候執(zhí)行刪除操作,刪除完成之后必須刪除該lv的鎖信息,避免信息殘留。
基于上述任意實施例,請參考圖2,本實施例還可以包括:
鎖信息檢測模塊,用于定時檢測nfs管理模塊中的鎖信息和內(nèi)核中塊設(shè)備信息,并刪除已經(jīng)被刪除的塊設(shè)備對應的內(nèi)核信息。
具體的,其它集群成員節(jié)點需要有定時任務去檢測該鎖信息和內(nèi)核lv的信息的內(nèi)容,刪除該已經(jīng)被刪除的lv的內(nèi)核信息。確保系統(tǒng)資源不會被占用。
以上對本發(fā)明所提供的一種集群文件系統(tǒng)進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。