訪問文件的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,并且更具體地,涉及一種訪問文件的方法和裝置。
【背景技術(shù)】
[0002]集群文件系統(tǒng)或者分布式文件系統(tǒng)中的多個主機通過交換機連接在一起形成一個可以互通的網(wǎng)絡(luò),多個主機之間對共享資源進行訪問采用的是互斥訪問的模式,例如多個主機同時寫一個文件,這時候要用分布式鎖保證互斥。只有當(dāng)一個主機寫完后,釋放鎖,其他主機才能繼續(xù)寫。但是如果出現(xiàn)主機網(wǎng)卡故障或者交換機端口故障網(wǎng)絡(luò)故障或者軟件故障時,有可能那個造成集群文件系統(tǒng)被分割成兩個或多個子網(wǎng)絡(luò),在子網(wǎng)絡(luò)內(nèi)的網(wǎng)絡(luò)是互通的,但是在各個分割的網(wǎng)絡(luò)間是不互通的。
[0003]現(xiàn)有技術(shù)中,當(dāng)集群文件系統(tǒng)發(fā)生網(wǎng)絡(luò)分割時,為了保證集群文件系統(tǒng)不掛住,必須把一部分的服務(wù)器剔除集群文件系統(tǒng),那么被剔除出集群文件系統(tǒng)的主機上的應(yīng)用就不能訪問集群文件系統(tǒng),從而導(dǎo)致業(yè)務(wù)中斷,業(yè)務(wù)為了保證連續(xù)性,只能關(guān)閉虛擬機,然后再在其他主機上啟動虛擬機,因此,在網(wǎng)絡(luò)發(fā)生分割時訪問集群文件系統(tǒng)的可靠性降低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種訪問文件的方法和裝置,能夠提高網(wǎng)絡(luò)發(fā)生分割時,訪問文件系統(tǒng)的可靠性。
[0005]第一方面,提供了一種訪問文件的方法,該方法包括:確定文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài),所述文件系統(tǒng)運行在多個主機上,所述網(wǎng)絡(luò)分割狀態(tài)指示所述文件系統(tǒng)被劃分為至少兩個分區(qū),所述至少兩個分區(qū)之間的網(wǎng)絡(luò)不通;接收第一文件的訪問請求;獲取所述訪問請求對應(yīng)的第一主機標(biāo)識;確定所述第一主機標(biāo)識與所述文件系統(tǒng)中為所述第一文件預(yù)配置的第二主機標(biāo)識一致;訪問所述第一文件。
[0006]結(jié)合第一方面,在第一方面的第一種實現(xiàn)方式中,在所述確定文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài)之前,所述方法還包括:在所述文件系統(tǒng)的整個磁盤空間中,分別為所述多個主機中的每個主機預(yù)先分配所述每個主機對應(yīng)的磁盤空間。
[0007]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第二種實現(xiàn)方式中,所述第一文件的訪問請求為寫入請求,在所述訪問所述第一文件之前,所述方法還包括:確定所述文件系統(tǒng)的整個磁盤空間中所述第一主機對應(yīng)的磁盤空間的剩余空間不小于寫入所述第一文件所需的磁盤空間;所述訪問所述第一文件,包括:在所述第一主機的所述剩余空間為寫入所述第一文件分配第一磁盤空間;在所述第一磁盤空間寫入所述第一文件。
[0008]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第三種實現(xiàn)方式中,所述在所述文件系統(tǒng)的整個磁盤空間中,分別為所述多個主機中的每個主機預(yù)先分配所述每個主機對應(yīng)的磁盤空間,包括:將所述整個磁盤空間平均分配給所述每個主機;或根據(jù)所述每個主機上的虛擬機的磁盤空間的大小,分別為所述每個主機分配相應(yīng)的磁盤空間。
[0009]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第四種實現(xiàn)方式中,所述將所述整個磁盤空間平均分配給所述每個主機,包括:若所述N能被M整除,為所述M個主機中的每個主機分配N/M個磁盤塊;或若所述N不能被M整除,為所述M個主機中的a個主機分配b+Ι個磁盤塊,為剩余的M-a個主機中的每個主機分配b個磁盤塊;其中,所述M為所述多個主機包括的主機的數(shù)量,所述N為所述整個磁盤空間包括的磁盤塊的數(shù)量,a為N對M取余得到的整數(shù),b*N對M取整得到的整數(shù)。
[0010]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第五種實現(xiàn)方式中,所述根據(jù)所述每個主機上的虛擬機的磁盤空間的大小,分別為所述每個主機分配相應(yīng)的磁盤空間,包括:若所述每個主機的虛擬機的磁盤空間的大小的總和大于所述整個磁盤空間的大小,按照所述每個主機的虛擬機的磁盤空間的大小的比例,分別為所述每個主機分配相應(yīng)的磁盤空間;或若所述每個主機的虛擬機的磁盤空間的大小不大于所述整個磁盤空間的大小,為所述每個主機分配的磁盤空間的大小為所述每個主機上的虛擬機的磁盤空間的大小。
[0011]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第六種實現(xiàn)方式中,所述確定所述文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài),包括:若第三主機接收不到第四主機發(fā)送的網(wǎng)絡(luò)心跳的時間大于第一時間閾值,確定所述文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài),所述第三主機和所述第四主機為所述多個主機中的兩個不同的主機。
[0012]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第七種實現(xiàn)方式中,在所述確定文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài)之后,所述方法還包括:
[0013]將所述多個主機中的每個主機的狀態(tài)配置為本地文件系統(tǒng)狀態(tài);
[0014]在確定第一主機已加鎖第二文件,且所述文件系統(tǒng)中為所述第二文件預(yù)配置的主機標(biāo)識指示的第二主機與所述第一主機位于網(wǎng)絡(luò)不通的兩個分區(qū)時,解鎖所述第二文件的文件鎖。
[0015]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第八種實現(xiàn)方式中,所述第二主機在確定所述第一主機對所述第二文件解鎖成功后,對所述第二文件進行加鎖。
[0016]結(jié)合第一方面及其上述實現(xiàn)方式,在第一方面的第九種實現(xiàn)方式中,所述方法還包括:為所述文件系統(tǒng)中的文件預(yù)配置相應(yīng)的主機標(biāo)識,所述主機標(biāo)識指示在所述文件系統(tǒng)處于網(wǎng)絡(luò)分割狀態(tài)時,所述主機標(biāo)識指示的主機能夠訪問所述文件。
[0017]第二方面,提供了一種訪問文件的裝置,用于執(zhí)行第一方面或第一方面的任一種實現(xiàn)方式中的方法。
[0018]具體地,該裝置可以包括用于執(zhí)行第一方面或第一方面的任一種實現(xiàn)方式中的各模塊。
[0019]第三方面,提供了一種訪問文件的裝置,包括收發(fā)器、處理器、存儲器和總線系統(tǒng),該收發(fā)器、該處理器和該存儲器通過該總線系統(tǒng)相連,該存儲器用于存儲指令,該處理器用于執(zhí)行該存儲器存儲的指令,并且對該存儲器中存儲的指令的執(zhí)行使得該處理器執(zhí)行第一方面或第一方面的任一種實現(xiàn)方式中的方法。
[0020]本發(fā)明實施例的訪問文件的方法和裝置,在網(wǎng)絡(luò)發(fā)生分割時,不是將主機踢除出文件系統(tǒng),從而導(dǎo)致主機不能訪問文件系統(tǒng),而是可以允許與文件系統(tǒng)中為該文件預(yù)配置的主機標(biāo)識一致的主機訪問該文件,該預(yù)配置的主機標(biāo)識指示的主機為經(jīng)常訪問該文件的主機,因此,即使在網(wǎng)絡(luò)發(fā)生分割時,該主機也是可以訪問該文件的,因此,提高了網(wǎng)絡(luò)發(fā)生分割時,訪問文件系統(tǒng)的可靠性。
【附圖說明】
[0021]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1是本發(fā)明實施例所適用的系統(tǒng)的示意性框圖;
[0023]圖2是本發(fā)明實施例的訪問文件的方法的示意性流程圖;
[0024]圖3是本發(fā)明另一實施例的訪問文件的方法的示意性流程圖;
[0025]圖4是本發(fā)明再一實施例的訪問文件的方法的示意性流程圖;
[0026]圖5是本發(fā)明實施例的訪問文件的裝置的示意性框圖;
[0027]圖6是本發(fā)明另一實施例的訪問文件的裝置的示意性框圖。
【具體實施方式】
[0028]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0029]應(yīng)理解,本發(fā)明實施例的技術(shù)方案可以應(yīng)用于各種文件系統(tǒng),例如,基于存儲區(qū)域網(wǎng)絡(luò)(英文全稱:Storage Area Network,簡稱:SAN)的集群文件系統(tǒng),或基于本地磁盤的分布式文件系統(tǒng)等,本發(fā)明實施例對此不作限制。
[0030]為了簡潔,本發(fā)明實施例以基于SAN的集群文件系統(tǒng)為例進行描述,但不應(yīng)對本發(fā)明實施例構(gòu)成任何限制。
[0031]首先介紹一下本發(fā)明實施例的訪問文件的方法所適用的系統(tǒng)架構(gòu)的示意圖。需要理解的是,圖1僅為方便理解的示意性說明圖,并不限定該系統(tǒng)架構(gòu)的組成模式。如圖1所示,該系統(tǒng)架構(gòu)可以包括:
[0032]主機110和/或主機120,主機110和/或主機120可以是物理主機、終端計算機等,本發(fā)明不做限定。
[0033]FC(Fiber Channel,光纖通道)交換機 130和/或IP( Internet Protocol,因特網(wǎng)協(xié)議)交換機140,F(xiàn)C交換機130和IP交換機140,用于將主機110和120輸出的數(shù)據(jù)轉(zhuǎn)發(fā)至對應(yīng)的SAN側(cè)。
[0034]FCSAN(Fiber Channel Storage Area Network,光纖通道存儲區(qū)域網(wǎng)絡(luò))150,和/或IPSAN(Internet Protocol Storage Area Network,因特網(wǎng)協(xié)議存儲區(qū)域網(wǎng)絡(luò))160。FCSAN150,通過光纖網(wǎng)絡(luò)連接HBA卡/網(wǎng)卡、交換機和/或存儲陣列。