跨中心的雙活儲(chǔ)存數(shù)據(jù)一致性如何保障?
一方面,當(dāng)寫入數(shù)據(jù)時(shí),在復(fù)制過程中,數(shù)據(jù)傳遞是在緩存中進(jìn)行的,這樣做的好處是提升了性能,問題是當(dāng)出現(xiàn)控制器節(jié)點(diǎn)異常死機(jī)事件時(shí),就會(huì)導(dǎo)致緩存內(nèi)的數(shù)據(jù)不能寫入儲(chǔ)存中,從而造成數(shù)據(jù)的不一致,這時(shí)有沒有保障單個(gè)儲(chǔ)存數(shù)據(jù)一致性的措施?另外一方面,兩個(gè)站點(diǎn)的儲(chǔ)存之間的數(shù)據(jù)一致性,從緩存層、底層數(shù)據(jù)層又是如何保障的?
解析和解答
第一個(gè)問題:前端節(jié)點(diǎn)寫緩存與后端儲(chǔ)存間的數(shù)據(jù)一致性如何保障?
儲(chǔ)存跨中心雙活中的單個(gè)儲(chǔ)存架構(gòu)分為三種:
1.物理儲(chǔ)存的內(nèi)部雙控制器
比如V5000/V7000/V9000 HYPERSWAP,寫儲(chǔ)存的操作也就是寫緩存的過程,寫了一個(gè)控制器,控制器也會(huì)將緩存數(shù)據(jù)同步至另一控制器的緩存,只有當(dāng)真正同步完,這次的寫操作才算完成,當(dāng)寫緩存達(dá)到水位線后,會(huì)將寫緩存刷入到磁盤組中,當(dāng)一個(gè)控制器異常死機(jī)時(shí),IO HANG住一小段時(shí)間,另一控制器將接管,緩存數(shù)據(jù)也不會(huì)因此遺失,一致性得到保障;單控制器時(shí),寫緩存被禁止,之前的緩存被刷入后端儲(chǔ)存,即使這時(shí)這個(gè)控制器也異常死機(jī),后端磁盤的數(shù)據(jù)完整性和一致性也得到了保障;如果不幸兩個(gè)控制器的電源同時(shí)斷電了,這時(shí)寫緩存數(shù)據(jù)還未及時(shí)刷入磁盤組,不用怕,幾乎所有儲(chǔ)存都會(huì)考慮到這一點(diǎn),都有專門的電池模塊維持供電幾分鐘,保證緩存數(shù)據(jù)能夠順利落到磁盤組當(dāng)中。
2.物理儲(chǔ)存+儲(chǔ)存虛擬化網(wǎng)關(guān)(有寫緩存)
比如SVC ESC/HYPERSWAP,NETAPP MCC(叫寫日志),這種架構(gòu)也就是相當(dāng)于在物理儲(chǔ)存前端又加了一道控制器,也存在寫緩存,相當(dāng)于擴(kuò)大了后端物理儲(chǔ)存的緩存容量,寫操作要先寫入SVC節(jié)點(diǎn),再同步至另一SVC節(jié)點(diǎn),只有完全同步成功,才算做是一個(gè)完整的寫周期,后面的操作也是等待寫緩存達(dá)到水位線刷后端儲(chǔ)存。佑了這種機(jī)制的保障,儲(chǔ)存虛擬化網(wǎng)關(guān)的緩存與后端物理儲(chǔ)存的數(shù)據(jù)完整性和一致性得到保障,無論是單SVC節(jié)點(diǎn)問題,另一節(jié)點(diǎn)緩存數(shù)據(jù)冗余,寫緩存被禁止,所有緩存刷入后端儲(chǔ)存,還是SVC的電源斷電,SVC有專門的UPS供電模塊保障寫緩存及時(shí)刷入后端儲(chǔ)存,都能完整的保障數(shù)據(jù)的完整性和一致性。這里不再贅述。
3.物理儲(chǔ)存+儲(chǔ)存虛擬化網(wǎng)關(guān)(無寫緩存)
比如EMC VPLEX METRO,它只有讀緩存,寫緩存還是由后端的物理儲(chǔ)存提供,所以該問題還是和前面說的相似的保障機(jī)制。
第二個(gè)問題:兩個(gè)站點(diǎn)的雙活儲(chǔ)存間的數(shù)據(jù)一致性如何保障?
這里分兩種方式來闡述這個(gè)問題:
1.一種是兩個(gè)站點(diǎn)的主機(jī)識(shí)別的是相同的VOLUME
比如:SVC ESC、EMC VPLEX、HDS GAD等,兩個(gè)站點(diǎn)的主機(jī)對(duì)這一個(gè)VOLUME寫操作時(shí),數(shù)據(jù)被刷入兩個(gè)鏡像的后端儲(chǔ)存,這有兩個(gè)儲(chǔ)存都寫完成返回,才算一個(gè)完整的緩存刷后端儲(chǔ)存的寫周期,這時(shí)兩個(gè)儲(chǔ)存從數(shù)據(jù)塊角度來說,是一致的,一個(gè)站點(diǎn)或者儲(chǔ)存問題,另一個(gè)站點(diǎn)的儲(chǔ)存是可以接管,而不會(huì)造成數(shù)據(jù)遺失。
2.另一種是兩個(gè)站點(diǎn)的主機(jī)識(shí)別的是不一樣的VOLUME
比如:SVC V7000/V5000 HYPERSWAP、NET APP MCC等,由于兩個(gè)站點(diǎn)的主機(jī)識(shí)別的不是同一個(gè)VOLUME,必然存在儲(chǔ)存或者儲(chǔ)存虛擬化網(wǎng)關(guān)的VOLUME與VOLUME的同步復(fù)制技術(shù),HYPERSWAP有METRO MIRROR,MCC有Syncmirror,它們的技術(shù)共同點(diǎn)是復(fù)制技術(shù)的一致性校驗(yàn)機(jī)制,更高級(jí)的有以多個(gè)卷為單位的卷組一致性校驗(yàn)機(jī)制,來保障跨站點(diǎn)的兩個(gè)卷/卷組的一致性,在某站點(diǎn)所有控制器或者站點(diǎn)完全問題時(shí),另一站點(diǎn)有完整的、一致的儲(chǔ)存可以接管。
Q:跨中心雙活儲(chǔ)存數(shù)據(jù)一致性保障主要涉及哪些方面的問題?
A:主要涉及兩個(gè)方面問題,一是單個(gè)儲(chǔ)存數(shù)據(jù)一致性保障措施,二是兩個(gè)站點(diǎn)儲(chǔ)存間數(shù)據(jù)一致性保障(包括緩存層、底層數(shù)據(jù)層)。
Q:在跨中心雙活儲(chǔ)存中,寫入數(shù)據(jù)在緩存中進(jìn)行有什么好處和問題?
A:好處是提升了性能,問題是當(dāng)出現(xiàn)控制器節(jié)點(diǎn)異常死機(jī)事件時(shí),會(huì)導(dǎo)致緩存內(nèi)的數(shù)據(jù)不能寫入儲(chǔ)存中,從而造成數(shù)據(jù)的不一致。
Q:儲(chǔ)存跨中心雙活中的單個(gè)儲(chǔ)存架構(gòu)有哪幾種?
A:有三種,分別是物理儲(chǔ)存的內(nèi)部雙控制器、物理儲(chǔ)存 + 儲(chǔ)存虛擬化網(wǎng)關(guān)(有寫緩存)、物理儲(chǔ)存 + 儲(chǔ)存虛擬化網(wǎng)關(guān)(無寫緩存)。
Q:物理儲(chǔ)存的內(nèi)部雙控制器架構(gòu)下,寫操作是怎樣進(jìn)行的?
A:寫儲(chǔ)存的操作也就是寫緩存的過程,寫了一個(gè)控制器,控制器也會(huì)將緩存數(shù)據(jù)同步至另一控制器的緩存,只有當(dāng)真正同步完,這次的寫操作才算完成,當(dāng)寫緩存達(dá)到水位線后,會(huì)將寫緩存刷入到磁盤組中。
Q:物理儲(chǔ)存的內(nèi)部雙控制器架構(gòu)下,一個(gè)控制器異常死機(jī)時(shí),數(shù)據(jù)一致性如何保障?
A:當(dāng)一個(gè)控制器異常死機(jī)時(shí),IO HANG住一小段時(shí)間,另一控制器將接管,緩存數(shù)據(jù)也不會(huì)因此遺失,一致性得到保障;單控制器時(shí),寫緩存被禁止,之前的緩存被刷入后端儲(chǔ)存,即使這時(shí)這個(gè)控制器也異常死機(jī),后端磁盤的數(shù)據(jù)完整性和一致性也得到了保障;如果兩個(gè)控制器的電源同時(shí)斷電,幾乎所有儲(chǔ)存都有專門的電池模塊維持供電幾分鐘,保證緩存數(shù)據(jù)能夠順利落到磁盤組當(dāng)中。
Q:物理儲(chǔ)存 + 儲(chǔ)存虛擬化網(wǎng)關(guān)(有寫緩存)架構(gòu)的特點(diǎn)是什么?
A:這種架構(gòu)相當(dāng)于在物理儲(chǔ)存前端又加了一道控制器,也存在寫緩存,相當(dāng)于擴(kuò)大了后端物理儲(chǔ)存的緩存容量,寫操作要先寫入SVC節(jié)點(diǎn),再同步至另一SVC節(jié)點(diǎn),只有完全同步成功,才算做是一個(gè)完整的寫周期,后面等待寫緩存達(dá)到水位線刷后端儲(chǔ)存。
Q:物理儲(chǔ)存 + 儲(chǔ)存虛擬化網(wǎng)關(guān)(有寫緩存)架構(gòu)下,如何保障數(shù)據(jù)完整性和一致性?
A:有了這種機(jī)制的保障,儲(chǔ)存虛擬化網(wǎng)關(guān)的緩存與后端物理儲(chǔ)存的數(shù)據(jù)完整性和一致性得到保障,無論是單SVC節(jié)點(diǎn)問題,另一節(jié)點(diǎn)緩存數(shù)據(jù)冗余,寫緩存被禁止,所有緩存刷入后端儲(chǔ)存,還是SVC的電源斷電,SVC有專門的UPS供電模塊保障寫緩存及時(shí)刷入后端儲(chǔ)存,都能完整的保障數(shù)據(jù)的完整性和一致性。
Q:物理儲(chǔ)存 + 儲(chǔ)存虛擬化網(wǎng)關(guān)(無寫緩存)架構(gòu)的寫緩存情況是怎樣的?
A:比如EMC VPLEX METRO,它只有讀緩存,寫緩存還是由后端的物理儲(chǔ)存提供,所以該問題還是和前面說的相似的保障機(jī)制。
Q:兩個(gè)站點(diǎn)的雙活儲(chǔ)存間數(shù)據(jù)一致性保障分哪兩種方式?
A:一種是兩個(gè)站點(diǎn)的主機(jī)識(shí)別的是相同的VOLUME;另一種是兩個(gè)站點(diǎn)的主機(jī)識(shí)別的是不一樣的VOLUME。
Q:兩個(gè)站點(diǎn)的主機(jī)識(shí)別不一樣的VOLUME時(shí),如何保障數(shù)據(jù)一致性?
A:由于兩個(gè)站點(diǎn)的主機(jī)識(shí)別的不是同一個(gè)VOLUME,必然存在儲(chǔ)存或者儲(chǔ)存虛擬化網(wǎng)關(guān)的VOLUME與VOLUME的同步復(fù)制技術(shù),HYPERSWAP有METRO MIRROR,MCC有Sync mirror,它們的技術(shù)共同點(diǎn)是復(fù)制技術(shù)的一致性校驗(yàn)機(jī)制,更高級(jí)的有以多個(gè)卷為單位的卷組一致性校驗(yàn)機(jī)制,來保障跨站點(diǎn)的兩個(gè)卷/卷組的一致性。