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