分布式系統(tǒng)中邏輯卷的管理方法以及分布式系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)獲取技術(shù)領(lǐng)域,更具體涉及一種分布式系統(tǒng)中邏輯卷的管理方法以及分布式系統(tǒng)。
【背景技術(shù)】
[0002]LVM, logical volume manager邏輯卷管理是Iinux系統(tǒng)中對磁盤進(jìn)行管理的一種機(jī)制,它可以創(chuàng)建物理卷PV (physical volume),并將多個(gè)物理卷組成為一個(gè)卷組(volumegroup),然后在卷組上分配各個(gè)邏輯卷(logical volume),使用者使用的是邏輯卷。使用LVM的好處是可以動(dòng)態(tài)的擴(kuò)展邏輯卷,也就是說對使用者來說,他看到的磁盤空間大小是可以變化的,如果向某個(gè)分區(qū)寫不下數(shù)據(jù)時(shí),只需要擴(kuò)展邏輯卷即可以將分區(qū)擴(kuò)大,就可以在該分區(qū)中繼續(xù)寫入數(shù)據(jù)。
[0003]LVM在管理磁盤時(shí),需要將PV,VG, LV的信息寫入到基礎(chǔ)的物理盤上,這樣才能從磁盤中讀取出對應(yīng)的PV,VG, LV的信息。
[0004]在分布式系統(tǒng)中,存在多臺主機(jī),每臺主機(jī)上都有LVM對磁盤進(jìn)行管理。當(dāng)前的架構(gòu)多是共享存儲,即多臺主機(jī)使用同一臺專門的存儲設(shè)備(或者簡單的一塊磁盤),那么就會存在多臺主機(jī)同時(shí)對邏輯卷進(jìn)行改變時(shí)出現(xiàn)沖突的問題。下面對出現(xiàn)沖突的場景進(jìn)行說明,如圖1所述:
[0005]PVl,PV2,PV3的大小都是10G,它們加入了卷組VG中,那么VG有30G,從VG中分配了一個(gè)12G的空間LVl給主機(jī)A使用,分配了一個(gè)2G的空間LV2給主機(jī)B使用,此時(shí)LV,VG, PV的信息都寫到了物理盤1,物理盤2中,物理盤3中寫入的是PV和VG的信息。主機(jī)A對LVl的讀寫操作的是物理盤I和部分物理盤2,主機(jī)B對LV2的操作對應(yīng)的是物理盤2。
[0006]當(dāng)主機(jī)A,主機(jī)B都想要擴(kuò)展自己,或者都希望新分配一個(gè)LV時(shí),此時(shí)由于主機(jī)A和主機(jī)B都有自己的LVM軟件,因此會同時(shí)對底層物理盤進(jìn)行讀寫,這就導(dǎo)致了數(shù)據(jù)同時(shí)被兩個(gè)LVM同時(shí)訪問,數(shù)據(jù)訪問發(fā)生沖突,LVM執(zhí)行的結(jié)果也不可預(yù)料。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問題在多個(gè)主機(jī)同時(shí)對邏輯卷進(jìn)行改變時(shí)如何避免出現(xiàn)沖關(guān)O
[0008]為了解決上述技術(shù)問題,本發(fā)明提供一種分布式系統(tǒng)中邏輯卷的管理方法,所述方法包括以下步驟:
[0009]客戶主機(jī)有邏輯卷的改變需求時(shí)向服務(wù)器主機(jī)發(fā)送請求信息;
[0010]所述服務(wù)器主機(jī)接收所述請求信息后,將所述請求信息放入請求隊(duì)列,并按照預(yù)定順序向請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息;對應(yīng)的客戶主機(jī)接收到所述應(yīng)答信息后,調(diào)用自身的邏輯卷管理軟件根據(jù)自身的改變需求對底層物理盤進(jìn)行寫入操作,實(shí)現(xiàn)自身邏輯卷的改變。
[0011]優(yōu)選地,所述請求隊(duì)列包括低級別請求隊(duì)列、中級別請求隊(duì)列以及高級別請求隊(duì)列;所述服務(wù)器主機(jī)根據(jù)所述請求信息中的IP地址將所述請求信息放入對應(yīng)級別的請求隊(duì)列中。
[0012]優(yōu)選地,所述按照預(yù)定順序向請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息具體為:
[0013]對于不同級別的請求隊(duì)列,按照優(yōu)先級從高到低的順序向?qū)?yīng)級別的請求隊(duì)列中的請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息;
[0014]對于同一優(yōu)先級別的請求隊(duì)列,按照時(shí)間從前到后的順序向請求隊(duì)列中的請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息。
[0015]優(yōu)選地,所述方法還包括以下步驟:
[0016]所述服務(wù)器主機(jī)接收的所述請求信息來自本身時(shí),暫停向客戶主機(jī)反饋所述應(yīng)答信息,并調(diào)用自身的邏輯卷管理軟件根據(jù)自身的改變需求對底層物理盤進(jìn)行寫入操作,實(shí)現(xiàn)自身邏輯卷的改變;之后恢復(fù)向客戶主機(jī)反饋應(yīng)答信息。
[0017]優(yōu)選地,在客戶主機(jī)實(shí)現(xiàn)自身邏輯卷的改變后,所述方法還包括以下步驟:
[0018]該客戶主機(jī)向所述服務(wù)器主機(jī)發(fā)送操作完成信息,所述服務(wù)器主機(jī)接收到所述操作完成信息后,按照所述預(yù)定順序向下一個(gè)所述請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息。
[0019]對應(yīng)于上述方法,還存在一種分布式系統(tǒng),所述系統(tǒng)包括設(shè)置有服務(wù)處理模塊的服務(wù)器主機(jī)以及多個(gè)設(shè)置有客戶請求模塊的客戶主機(jī);
[0020]所述客戶請求模塊用于在對應(yīng)的客戶主機(jī)有邏輯卷的改變需求時(shí)向服務(wù)處理模塊發(fā)送請求信息;
[0021]所述服務(wù)處理模塊用于接收所述請求信息,將接收的所述請求信息放入請求隊(duì)列,并按照預(yù)定順序向請求信息對應(yīng)的客戶請求模塊反饋應(yīng)答信息;
[0022]所述客戶請求模塊還用于接收所述應(yīng)答信息,之后調(diào)用自身的邏輯卷管理軟件根據(jù)自身的改變需求對底層物理盤進(jìn)行寫入操作,實(shí)現(xiàn)自身邏輯卷的改變。
[0023]優(yōu)選地,所述服務(wù)處理模塊還用于根據(jù)所述請求信息中的IP地址將所述請求信息放入對應(yīng)級別的請求隊(duì)列中,其中所述請求隊(duì)列包括低級別請求隊(duì)列、中級別請求隊(duì)列以及高級別請求隊(duì)列。
[0024]優(yōu)選地,所述預(yù)定順序?yàn)閮?yōu)先級高的請求隊(duì)列排在優(yōu)先級低的請求隊(duì)列的前面,對于同一優(yōu)先級別的請求隊(duì)列,時(shí)間早的請求信息排在時(shí)間晚請求信息的前面,并且排在最前面的請求信息為第一個(gè)請求信息。
[0025]優(yōu)選地,所述服務(wù)處理模塊在接收的所述請求信息來自本身時(shí),所述服務(wù)處理模塊還用于暫停向客戶請求模塊反饋所述應(yīng)答信息,調(diào)用自身的邏輯卷管理軟件根據(jù)自身的改變需求對底層物理盤進(jìn)行寫入操作,實(shí)現(xiàn)自身邏輯卷的改變;之后恢復(fù)向客戶請求模塊反饋應(yīng)答信息。
[0026]優(yōu)選地,在客戶主機(jī)實(shí)現(xiàn)自身邏輯卷的改變后,所述客戶請求模塊還用于向所述服務(wù)處理模塊發(fā)送操作完成信息;
[0027]所述服務(wù)處理模塊在接收到所述操作完成信息后,所述服務(wù)處理模塊還用于按照所述預(yù)定順序向下一個(gè)所述請求信息對應(yīng)的客戶請求模塊反饋應(yīng)答信息。
[0028]本發(fā)明提供了一種分布式系統(tǒng)中邏輯卷的管理方法以及應(yīng)用該方法的分布式,本發(fā)明通過將各個(gè)客戶主機(jī)的請求信息進(jìn)行排序并按照預(yù)定順序反饋應(yīng)答信息,客戶主機(jī)在收到應(yīng)答信息后才對底層物理盤的信息進(jìn)行修改或?qū)懭?,?shí)現(xiàn)邏輯卷的修改的同時(shí)避免了多個(gè)主機(jī)同時(shí)修改物理盤出現(xiàn)的沖突,提高了邏輯卷管理的安全性以及理效率。
【附圖說明】
[0029]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1為現(xiàn)有技術(shù)中進(jìn)行LVM的管理結(jié)構(gòu)示意圖;
[0031]圖2為本發(fā)明的一種分布式系統(tǒng)中邏輯卷的管理方法流程圖。
【具體實(shí)施方式】
[0032]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不能用來限制本發(fā)明的范圍。
[0033]一種分布式系統(tǒng)中邏輯卷的管理方法,如圖2所示,所述方法包括以下步驟:
[0034]S1、客戶主機(jī)有邏輯卷的改變需求時(shí)向服務(wù)器主機(jī)發(fā)送請求信息;
[0035]S2、所述服務(wù)器主機(jī)接收所述請求信息后,將所述請求信息放入請求隊(duì)列,并按照預(yù)定順序向請求信息對應(yīng)的客戶主機(jī)反饋應(yīng)答信息;
[0036]S3、對應(yīng)的客戶主機(jī)接收到所述應(yīng)答信息后,調(diào)用自身的邏輯卷管理軟件根據(jù)自身的改變需求對底層物理盤進(jìn)行寫入操作,實(shí)現(xiàn)自身邏輯卷的改變。
[0037]進(jìn)一步地,服務(wù)器主機(jī)與客戶主機(jī)之間的信息交互選用TCP的方式進(jìn)行。
[0038]上述請求信息包括對應(yīng)主機(jī)的IP地址以及具體的修改操作,其中修改操作包括擴(kuò)展,縮減等操作。
[0039]上述方法實(shí)現(xiàn)邏輯卷的修改的同時(shí)避免了多個(gè)主機(jī)同時(shí)修改物理盤出現(xiàn)的沖突,提高了邏輯卷管理的安全性以及理效率。
[0