如何正確使用阿里云共享塊存儲(chǔ)?
發(fā)布時(shí)間:2018-01-16 點(diǎn)擊數(shù):2080
共享塊存儲(chǔ)產(chǎn)品為 Share-everything 架構(gòu)提供一種可以共享訪問(wèn)的隨機(jī)讀寫(xiě)塊設(shè)備,但本身并不提供集群文件系統(tǒng),需要您自行安裝集群文件系統(tǒng)來(lái)管理共享塊存儲(chǔ)。
如果只是將共享塊存儲(chǔ)掛載到多個(gè) ECS 實(shí)例,但依舊使用常規(guī)文件系統(tǒng)來(lái)管理時(shí),會(huì)造成磁盤(pán)空間分配沖突和數(shù)據(jù)文件不一致兩個(gè)問(wèn)題,具體如下:
-
磁盤(pán)空間分配沖突
當(dāng)一個(gè)共享塊存儲(chǔ)掛載到多個(gè)計(jì)算節(jié)點(diǎn),其中 實(shí)例 A上的進(jìn)程在寫(xiě)文件時(shí),會(huì)查詢(xún)文件系統(tǒng)和可用的磁盤(pán)空間,文件寫(xiě)入后會(huì)修改自己的空間分配記錄,但不會(huì)修改其他實(shí)例的記錄。因此當(dāng)實(shí)例 B 在嘗試寫(xiě)入文件時(shí),有可能會(huì)將實(shí)例 A 已經(jīng)分配出去的磁盤(pán)空間地址再次分配出去,造成磁盤(pán)空間分配沖突。 -
數(shù)據(jù)文件不一致
當(dāng)實(shí)例 A 讀取數(shù)據(jù)并記錄在緩存中后,實(shí)例 A上另一個(gè)進(jìn)程來(lái)訪問(wèn)同樣的數(shù)據(jù)就會(huì)直接從緩存中進(jìn)行讀取。但如果此時(shí)實(shí)例 B 修改了同樣的數(shù)據(jù),而實(shí)例 A 并不知道,依舊從緩存中讀取數(shù)據(jù),則會(huì)造成業(yè)務(wù)數(shù)據(jù)不一致的問(wèn)題。
因此正確使用共享塊存儲(chǔ)的方式是采用集群文件系統(tǒng)進(jìn)行塊設(shè)備的統(tǒng)一管理,譬如 GFS、GPFS等。典型 Oracle RAC 業(yè)務(wù)場(chǎng)景中推薦采用 ASM 進(jìn)行存儲(chǔ)卷和文件系統(tǒng)的統(tǒng)一管理。