1.一種分布式文件系統(tǒng)中存儲文件的方法,其特征在于,所述分布式文件系統(tǒng)包括名稱節(jié)點、多個作為數(shù)據(jù)節(jié)點的虛擬機(jī),所述多個虛擬機(jī)共享同一存儲區(qū)域;所述方法包括:
第一虛擬機(jī)接收客戶端發(fā)送的待寫數(shù)據(jù)、第二虛擬機(jī)的地址,所述第一虛擬機(jī)為所述多個虛擬機(jī)中被所述名稱節(jié)點指定具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限的一個虛擬機(jī),所述第二虛擬機(jī)為所述多個虛擬機(jī)中除所述第一虛擬機(jī)以外的虛擬機(jī);
所述第一虛擬機(jī)向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù),并生成或更新所述待寫數(shù)據(jù)的元數(shù)據(jù);
所述第一虛擬機(jī)根據(jù)所述第二虛擬機(jī)的地址向所述第二虛擬機(jī)發(fā)送所述元數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一虛擬機(jī)向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)之前,還包括:
所述第一虛擬機(jī)接收所述客戶端發(fā)送的所述第一虛擬機(jī)的寫權(quán)限標(biāo)識,所述寫權(quán)限標(biāo)識是所述名稱節(jié)點在所述客戶端向所述名稱節(jié)點請求向分布式文件系統(tǒng)寫入所述待寫數(shù)據(jù)時向所述客戶端發(fā)送的,所述寫權(quán)限標(biāo)識用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述多個虛擬機(jī)掛載分布式塊存儲系統(tǒng)提供的同一虛擬硬盤,所述虛擬硬盤包括所述存儲區(qū)域。
4.如權(quán)利要求1至3任一項所述的方法,其特征在于,
若所述第二虛擬機(jī)通過自身的操作系統(tǒng)讀取所述待寫數(shù)據(jù),則所述元數(shù)據(jù)用于所述第二虛擬機(jī)生成或更新自身的操作系統(tǒng)中記錄的文件信息,所述文件信息用于所述操作系統(tǒng)從所述存儲區(qū)域中讀取所述待寫數(shù)據(jù);或者
若所述第二虛擬機(jī)讀取所述待寫數(shù)據(jù),則所述元數(shù)據(jù)用于所述第二虛擬機(jī)從所述存儲區(qū)域中讀取所述待寫數(shù)據(jù)。
5.如權(quán)利要求1至4任一項所述的方法,其特征在于,所述第二虛擬機(jī)被所述名稱節(jié)點指定具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
6.一種分布式文件系統(tǒng)中存儲文件的方法,其特征在于,所述分布式文件系統(tǒng)包括名稱節(jié)點、多個作為數(shù)據(jù)節(jié)點的虛擬機(jī),所述多個虛擬機(jī)共享同一存儲區(qū)域;所述方法包括:
所述名稱節(jié)點接收客戶端請求向所述分布式文件系統(tǒng)寫入待寫數(shù)據(jù)的請求消息;
所述名稱節(jié)點向所述客戶端發(fā)送所述請求消息對應(yīng)的響應(yīng)消息,所述響應(yīng)消息包括第一虛擬機(jī)的地址和第二虛擬機(jī)的地址,所述響應(yīng)消息指示所述第一虛擬機(jī)為所述多個虛擬機(jī)中具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限的一個虛擬機(jī),所述第二虛擬機(jī)為所述多個虛擬機(jī)中除所述第一虛擬機(jī)以外的虛擬機(jī)。
7.如權(quán)利要求6所述的方法,其特征在于,所述響應(yīng)消息還指示所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
8.如權(quán)利要求6或7所述的方法,其特征在于,所述響應(yīng)消息還包括所述第一虛擬機(jī)的寫權(quán)限標(biāo)識和所述第二虛擬機(jī)的讀權(quán)限標(biāo)識,所述寫權(quán)限標(biāo)識用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限,所述讀權(quán)限標(biāo)識用于指定所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
9.如權(quán)利要求6或7所述的方法,其特征在于,所述響應(yīng)消息中所述第一虛擬機(jī)的地址和所述第二虛擬機(jī)的地址按照預(yù)設(shè)規(guī)則排列,所述預(yù)設(shè)規(guī)則用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限,以及指定所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
10.如權(quán)利要求6至9任一項所述的方法,其特征在于,所述多個虛擬機(jī)掛載分布式塊存儲系統(tǒng)提供的同一虛擬硬盤,所述虛擬硬盤包括所述存儲區(qū)域。
11.如權(quán)利要求6至10任一項所述的方法,其特征在于,所述方法還包括:
當(dāng)所述第一虛擬機(jī)發(fā)生故障時,所述名稱節(jié)點向所述客戶端發(fā)送第一更新信息,所述第一更新信息包括更新的第一虛擬機(jī)的地址,所述第一更新信息指定所述多個虛擬機(jī)中除發(fā)生故障的所述第一虛擬機(jī)以外的另一個虛擬機(jī)作為所述更新的第一虛擬機(jī),所述更新的第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限;和/或當(dāng)所述第二虛擬機(jī)發(fā)生故障時,所述名稱節(jié)點向所述客戶端發(fā)送第二更新信息,所述第二更新信息包括更新的第二虛擬機(jī)的地址,所述第二更新信息指定所述多個虛擬機(jī)以外的另一個虛擬機(jī)作為所述更新的第二虛擬機(jī),所述更新的第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
12.一種分布式文件系統(tǒng)中的第一虛擬機(jī),其特征在于,所述分布式文件系統(tǒng)包括名稱節(jié)點、多個作為數(shù)據(jù)節(jié)點的虛擬機(jī),所述多個虛擬機(jī)共享同一存儲區(qū)域,所述第一虛擬機(jī)為所述多個虛擬機(jī)中被所述名稱節(jié)點指定具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限的一個虛擬機(jī);所述第一虛擬機(jī)包括:
接收模塊,用于接收客戶端發(fā)送的待寫數(shù)據(jù)、第二虛擬機(jī)的地址,所述第二虛擬機(jī)為所述多個虛擬機(jī)中除所述第一虛擬機(jī)以外的虛擬機(jī);
處理模塊,用于向所述存儲區(qū)域?qū)懭胨鼋邮漳K接收的所述待寫數(shù)據(jù),并生成或更新所述待寫數(shù)據(jù)的元數(shù)據(jù);
發(fā)送模塊,用于根據(jù)所述接收模塊接收的所述第二虛擬機(jī)的地址向所述第二虛擬機(jī)發(fā)送所述處理模塊生成或更新所述元數(shù)據(jù)。
13.如權(quán)利要求12所述的第一虛擬機(jī),其特征在于,所述接收模塊還用于:
在所述處理模塊向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)之前,接收所述客戶端發(fā)送的所述第一虛擬機(jī)的寫權(quán)限標(biāo)識,所述寫權(quán)限標(biāo)識是所述名稱節(jié)點在所述客戶端向所述名稱節(jié)點請求向分布式文件系統(tǒng)寫入所述待寫數(shù)據(jù)時向所述客戶端發(fā)送的,所述寫權(quán)限標(biāo)識用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限。
14.如權(quán)利要求12或13所述的第一虛擬機(jī),其特征在于,所述多個虛擬機(jī)掛載分布式塊存儲系統(tǒng)提供的同一虛擬硬盤,所述虛擬硬盤包括所述存儲區(qū)域。
15.如權(quán)利要求12至14任一項所述的第一虛擬機(jī),其特征在于,
若所述第二虛擬機(jī)通過自身的操作系統(tǒng)讀取所述待寫數(shù)據(jù),則所述元數(shù)據(jù)用于所述第二虛擬機(jī)生成或更新自身的操作系統(tǒng)中記錄的文件信息,所述文件信息用于所述操作系統(tǒng)從所述存儲區(qū)域中讀取所述待寫數(shù)據(jù);或者
若所述第二虛擬機(jī)讀取所述待寫數(shù)據(jù),則所述元數(shù)據(jù)用于所述第二虛擬機(jī)從所述存儲區(qū)域中讀取所述待寫數(shù)據(jù)。
16.如權(quán)利要求12至15任一項所述的第一虛擬機(jī),其特征在于,所述第二虛擬機(jī)被所述名稱節(jié)點指定具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
17.一種分布式文件系統(tǒng)中的名稱節(jié)點,其特征在于,所述分布式文件系統(tǒng)包括所述名稱節(jié)點、多個作為數(shù)據(jù)節(jié)點的虛擬機(jī),所述多個虛擬機(jī)共享同一存儲區(qū)域;所述名稱節(jié)點包括:
接收模塊,用于接收客戶端請求向所述分布式文件系統(tǒng)寫入待寫數(shù)據(jù)的請求消息;
發(fā)送模塊,用于向所述客戶端發(fā)送所述接收模塊接收的所述請求消息對應(yīng)的響應(yīng)消息,所述響應(yīng)消息包括第一虛擬機(jī)的地址和第二虛擬機(jī)的地址,所述響應(yīng)消息指示所述第一虛擬機(jī)為所述多個虛擬機(jī)中具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限的一個虛擬機(jī),所述第二虛擬機(jī)為所述多個虛擬機(jī)中除所述第一虛擬機(jī)以外的虛擬機(jī)。
18.如權(quán)利要求17所述的名稱節(jié)點,其特征在于,所述響應(yīng)消息還指示所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
19.如權(quán)利要求17或18所述的名稱節(jié)點,其特征在于,所述響應(yīng)消息還包括所述第一虛擬機(jī)的寫權(quán)限標(biāo)識和所述第二虛擬機(jī)的讀權(quán)限標(biāo)識,所述寫權(quán)限標(biāo)識用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限,所述讀權(quán)限標(biāo)識用于指定所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
20.如權(quán)利要求17或18所述的名稱節(jié)點,其特征在于,所述響應(yīng)消息中所述第一虛擬機(jī)的地址和所述第二虛擬機(jī)的地址按照預(yù)設(shè)規(guī)則排列,所述預(yù)設(shè)規(guī)則用于指定所述第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭胨龃龑憯?shù)據(jù)的權(quán)限,以及指定所述第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。
21.如權(quán)利要求17至20任一項所述的名稱節(jié)點,其特征在于,所述多個虛擬機(jī)掛載分布式塊存儲系統(tǒng)提供的同一虛擬硬盤,所述虛擬硬盤包括所述存儲區(qū)域。
22.如權(quán)利要求17至21任一項所述的名稱節(jié)點,其特征在于,所述發(fā)送模塊還用于:
當(dāng)所述第一虛擬機(jī)發(fā)生故障時,向所述客戶端發(fā)送第一更新信息,所述第一更新信息包括更新的第一虛擬機(jī)的地址,所述第一更新信息指定所述多個虛擬機(jī)中除發(fā)生故障的所述第一虛擬機(jī)以外的另一個虛擬機(jī)作為所述更新的第一虛擬機(jī),所述更新的第一虛擬機(jī)具有向所述存儲區(qū)域?qū)懭霐?shù)據(jù)的權(quán)限;和/或
當(dāng)所述第二虛擬機(jī)發(fā)生故障時,向所述客戶端發(fā)送第二更新信息,所述第二更新信息包括更新的第二虛擬機(jī)的地址,所述第二更新信息指定所述多個虛擬機(jī)以外的另一個虛擬機(jī)作為所述更新的第二虛擬機(jī),所述更新的第二虛擬機(jī)具有從所述存儲區(qū)域讀取所述待寫數(shù)據(jù)的權(quán)限。