細說 Azure Storage 的冗余策略

來源: sparkdev
作者:sparkdev
時間:2020-09-10
16556
用戶的數(shù)據(jù)萬一丟掉怎么辦?同時,我們是不是可以根據(jù)云服務(wù)提供的數(shù)據(jù)服務(wù)的特點來優(yōu)化程序的性能呢?基于如此種種的原因,我們需要了解云端數(shù)據(jù)服務(wù)的一些特性的詳情,這將對我們很有幫助。本文將和大家一起探討 Azure Storage 的冗余策略。

當(dāng)我們想要把應(yīng)用搬到云端的時候,首先要關(guān)注的便是數(shù)據(jù)的安全性。當(dāng)然所有的云服務(wù)廠商都會對用戶數(shù)據(jù)承諾一個非常高的安全性,但萬一出現(xiàn)意外呢?我們是不是還要有適當(dāng)?shù)膽?yīng)對方案?比如今年的3月8日晚間,Azure某個區(qū)域中的存儲幾乎全部不能訪問,持續(xù)達兩個多小時。當(dāng)時最擔(dān)心的是:用戶的數(shù)據(jù)萬一丟掉怎么辦?同時,我們是不是可以根據(jù)云服務(wù)提供的數(shù)據(jù)服務(wù)的特點來優(yōu)化程序的性能呢?基于如此種種的原因,我們需要了解云端數(shù)據(jù)服務(wù)的一些特性的詳情,這將對我們很有幫助。本文將和大家一起探討Azure Storage的冗余策略。

理解Azure Storage冗余策略的好處

微軟針對不同的應(yīng)用場景提供了不同的存儲冗余策略。比如對可靠性要求很高的數(shù)據(jù)可以選擇多個異地的備份,而對訪問速度要求高的數(shù)據(jù)則可以使用高速的存儲設(shè)備。當(dāng)然,不同的方案成本也是不一樣的。我們可以針對應(yīng)用的特點使用不同的存儲策略,這樣可以節(jié)省成本。還可以指定對應(yīng)的容災(zāi)備份以及災(zāi)難恢復(fù)方案。

Azure Storage Account

需要注意的是,Azure Storage存儲的冗余策略是綁定在Azure Storage Account上的。Azure Storage當(dāng)前一共有四種數(shù)據(jù)的冗余策略,分別是:

Locally Redundant Storage(LRS)

Zone Redundant Storage(ZRS)

Geo Redundant Storage(GRS)

Read-access Geo Redundant Storage(RA-GRS)

當(dāng)我們創(chuàng)建Storage Account的時候就需要指定其對應(yīng)的存儲的相關(guān)類型和策略:

ia_5800000001.png

Performance選項目前有兩種選擇,分別是"Standard"和"Premium"。準(zhǔn)確的說,下面的Replication選項才是Storage Account的冗余策略。可是,冗余策略和性能選項是有關(guān)聯(lián)性的。比如,當(dāng)performance為"Standard"時,Replication可以選擇ZRS,LRS,GRS,RA-GRS:

ia_5800000002.png

而performance為"Premium"時,Replication則只能選擇LRS:

ia_5800000003.png

下面我們將詳細的介紹這四種冗余策略及常見用例。

Locally Redundant Storage

本地冗余存儲(LRS),在單個數(shù)據(jù)中心里有多個同步的數(shù)據(jù)拷貝。數(shù)據(jù)在彈性存儲單元中被復(fù)制三次,該彈性存儲單元托管在創(chuàng)建存儲帳戶的區(qū)域中的數(shù)據(jù)中心內(nèi)。僅在寫入所有三個副本后,才成功返回寫入請求。這三個副本駐留在同一彈性存儲單元中的不同容錯域和升級域中。

彈性存儲單元是存儲節(jié)點的機架的集合。容錯域(FD)是一組代表出錯的物理單元的節(jié)點,可將其視為屬于同一物理機架的節(jié)點。升級域(UD)是一組在服務(wù)升級(推出)過程中一起升級的節(jié)點。三個副本將分布在同一彈性存儲單元中的UD和FD上,以確保即使在硬件故障影響單個機架時,或在推出期間升級節(jié)點時,數(shù)據(jù)也可用。

當(dāng)看到這里時,相信你已經(jīng)感受到了,即便是Azure Storage中最基礎(chǔ)的LRS數(shù)據(jù)冗余策略也遠高于我們自己維護的系統(tǒng)了!

LRS的優(yōu)點是成本最低,這里說的低是和其它類型的冗余策略相比。并且可以提高訪問的性能,比如選擇performance為“Premium”時只能使用LRS策略。

但是它的缺點也很明顯,就是無法應(yīng)對整個數(shù)據(jù)中心都crash的情況(火災(zāi)、洪災(zāi)、地震、技術(shù)故障等)。

Zone Redundant Storage

區(qū)域冗余存儲(ZRS),除了存儲類似于LRS的三個副本外,還在一個或兩個區(qū)域內(nèi)的數(shù)據(jù)中心之間異步復(fù)制數(shù)據(jù),從而提供比LRS更高的安全性。在這種情況下,即使主數(shù)據(jù)中心不可用或不可恢復(fù),存儲在ZRS中的數(shù)據(jù)也安全的。

需要注意的是,ZRS僅能應(yīng)用于blob類型的存儲。

Geo Redundant Storage

異地冗余存儲(GRS),將數(shù)據(jù)復(fù)制到距主區(qū)域數(shù)百英里以外的輔助區(qū)域。如果Storage Account啟用了GRS,即使在遇到區(qū)域完全停電或?qū)е轮饕獏^(qū)域不可恢復(fù)的災(zāi)難時,用戶的數(shù)據(jù)也是安全的。

對于啟用了GRS的Storage Account,更新將首先提交到主要區(qū)域,并在其中復(fù)制三份。

然后,更新將異步復(fù)制到次要區(qū)域(也是在其中復(fù)制三份)。

使用GRS時,主要和次要區(qū)域在一個彈性存儲單元內(nèi)管理跨單獨容錯域和升級域的副本。

GRS是一種性價比很高的選擇,對數(shù)據(jù)安全要求較高的用戶可以選擇這種冗余策略。比如我們在一個web應(yīng)用中保存了用戶上傳的數(shù)據(jù)(文檔、圖片、視頻等)。為了保護用戶的數(shù)據(jù),我們可以把這些文件存放在設(shè)置為GRS的存儲中。當(dāng)主區(qū)域發(fā)生問題時,至少可以把用戶的數(shù)據(jù)恢復(fù)回來。下面是筆者維護的一個使用了GRS的項目:

ia_5800000004.png

次區(qū)域是系統(tǒng)自動設(shè)置的,不支持用戶自由選擇。其實我們都沒有必要知道它的存在,只需要知道數(shù)據(jù)是安全的就可以了。

Read-access Geo Redundant Storage

除了GRS所提供的在兩個區(qū)域之間進行復(fù)制外,讀取訪問異地冗余存儲(RA-GRS)還提供對輔助位置中的數(shù)據(jù)的只讀訪問權(quán)限,從而最大限度地提高了Storage Account的可用性。

當(dāng)設(shè)置為RA-GRS時,除了Storage Account的主終結(jié)點外,還可以通過訪問輔助終結(jié)點獲取數(shù)據(jù)。輔助終結(jié)點與主終結(jié)點類似,但會在帳戶名稱后面追加后綴–secondary。例如,如果Blob服務(wù)的主終結(jié)點是myaccount.blob.core.windows.net,輔助終結(jié)點則是myaccount-secondary.blob.core.windows.net。Storage Account的訪問密鑰對于主終結(jié)點和輔助終結(jié)點是相同的。

對于RA-GRS,看起來可能很高大上,但是我們卻很難把這種能力加以應(yīng)用。按照Azure文檔所說,這種策略主要的目的是高可用性。但是用戶又不能自由的指定次區(qū)域的位置,所以十分懷疑是否可以達到真正的目的。

總結(jié)

數(shù)據(jù)的安全永遠都是相對的,片面的追求數(shù)據(jù)安全肯定會為我們帶來不可承受的成本壓力。我們能做的就是針對不同類型的數(shù)據(jù),尋找價格上可以接受的冗余方案。而Azure Storage提供的豐富選項,則給我們的選擇帶來了很大的靈活性。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于sparkdev,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家