第9章 Swift遠程容器同步的實現(xiàn)原理_第1頁
第9章 Swift遠程容器同步的實現(xiàn)原理_第2頁
第9章 Swift遠程容器同步的實現(xiàn)原理_第3頁
第9章 Swift遠程容器同步的實現(xiàn)原理_第4頁
第9章 Swift遠程容器同步的實現(xiàn)原理_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、Swift遠程容器同步的實現(xiàn)原理(第九章)fflCONTENTS 目錄PART 01遠程容器同步簡介PART 04遠程容器同步實現(xiàn)的示例PART 02遠程容器同步的使用PART 05作業(yè)PART 03遠程容器同步的實現(xiàn)原理PART 01遠程容器同步簡介遠程容器同步把不同的集群間的容器內(nèi)容進行同步,用來進行容災(zāi) Swift集群操作員配置他們的集群來允許/接受同步請求到/來自其他 的集群用戶使用同步密鑰來指定要同步的容器ObjectFileObject Server JObjectFileQ遠程容器同步設(shè)置管理員設(shè)置配置文件CO ntai ner-server.co nf,指定可以和哪些服務(wù)器進行

2、遠程同步allowed_sync_hosts = hostl, host2, host3用戶使用swift工具設(shè)置需要遠程同步的容器n獲取2個集群的認(rèn)證n設(shè)置容器testl和容器test2遠程同步swiftpost-tsecret test1swift雙向post-tswiftpost-tsecret test2 HYPERLINK http:/cluster2/host2/vl.0/AUTH http:/cluster2/host2/vl.0/AUTH URL2/test2 -k-k secret test2(單向) HYPERLINK http:/clusterl/hostl/vl.O/A

3、UTH http:/clusterl/hostl/vl.O/AUTH URL1/test1 -kPART 02遠程容器同步的使用遠程容器同步使用向第一集群的容器testl上傳一些對象photo3.jpgswift upload testl photo1.jpg photo2.j等幾分鐘后,檢查容器test 2的內(nèi)容swift list test2photo1.jpgphoto2.jpgphoto3.jpg遠程容器同步使用向第一個集群的容器testl上傳_些對象swift upload test1 photo1.jpg photo2.jpg photo3.jpg等幾分鐘后,檢查容器test 2的

4、內(nèi)容swift list test2photo1.jpgphoto2.jpgphoto3.jpgPART 0 3遠程容器同步的實現(xiàn)原理遠程容器同步實現(xiàn)原理每個存儲節(jié)點上會運行一個Con tai nerSync進程,掃描本地設(shè)備上的容器數(shù)據(jù)庫,檢查每個容器的元數(shù)據(jù)看是不是有下面的元數(shù)據(jù)項n xcontainer-sync-ton x-container-sync-key如果存在,那么在數(shù)據(jù)庫里的所有的在上次同步后新添加的行,都會觸發(fā)對遠程容器的PUT/DELETE/POST操作遠程容器同步實現(xiàn)難點每個容器都有3個副本,如果不采取措施,那么每個容器副本都會去進行同步遠程容器同步實現(xiàn)方案討論為了避免

5、3個容器副本都試圖進行同步,我們可以指定1個副本進行同步其它2個副本不進行同步問題:如果該副本出現(xiàn)了故障,那么就會導(dǎo)致無法完成遠程容器同步任務(wù)TestiTestiTestiTesti集群2遠程容器同步實現(xiàn)方法:分工合作首先Co ntai nerSy nc進程要為每個容器副本進行編號,在3副本情況下,副本編號為0、lc 2根據(jù)副本編號,Co ntai nerSy nc會計算出哪些數(shù)據(jù)庫行應(yīng)該由哪個容器副本進行同步那么,如何決定一個數(shù)據(jù)庫行應(yīng)該有哪個容器副本來進行同步呢?遠程容器同步實現(xiàn)方法MD5 (數(shù)據(jù)庫行對象名)MOD 3= (0zlz 2)結(jié)果就是應(yīng)該對該行進行遠程同步的容器副本號每個容器只

6、有1/3,如何得到其余2/3 ?Row3Row4 MD5 () MOD3Row5Row6Row7容器副本故障問題如果某個容器副本出了故障,那么如何保證它負(fù)責(zé)的1/3數(shù)據(jù)庫行能得到遠程同步?Row1Row2Row3R0W4 MD5 () M0D3Row5R0W6R0W7容器副本故障處理方法I在每個副本負(fù)責(zé)完成1/3的同步后,進行第二輪同步在第二輪同步的時候,每個副本不是對1/3行進行同步,而是要對所 有行都進行同步I這樣萬一第一輪同步時,有哪個副本出現(xiàn)了故障,第二輪可以把它負(fù) 責(zé)的那1/3行進行同步問題:I那么第一輪同步是不是多此一舉?I也會遇到3個副本對所有行都進行同步問題容器副本故障處理方法

7、I在進行第二輪同步的時候,遠程容器會首先檢查2個容器的元數(shù)據(jù)是 不是一致,如果一致,說明第一輪同步已經(jīng)成功,就不需要進行第二 輪同步n timestamp, etagI因為容器出故障的概率很小,所以第二輪同步基本上就是一個簡單的 元數(shù)據(jù)比較PART 04遠程容器同步實現(xiàn)的示例遠程容器副本同步舉例副本數(shù)設(shè)置為3,對象在數(shù)據(jù)庫里的行號為0到5假定該容器是第一次進行遠程容器同步操-所以 SP1 = SP2 = -1SP1SP21-1012345首先檢查位于SP1和SP2之間的行,為空,所以沒有需要進行第二輪同步的行然后檢查大于SP1的行,進行第一輪同步,0到5遠程容器副本第一輪同步再計算這些行里哪些

8、行需要本副本進行同步,假定說,n第0副本:OZ 1n第1副本:2, 5n第2副本:3, 4Row0Row1Row2Row3 MD5 () M0D3Row4Row5副本2皿本地化iTestiTestiRow2Row5Row3Row4Testi遠程容器副本第一輪同步I假如我們是容器副本1所在的節(jié)點,負(fù)責(zé)完成行2 , 5的同步I然后把SP1設(shè)置到剛才所看到的最大的行號5所以SP 1 = 5 SP2 = - 1SP1SP2I、f-1 0 1 2 3 4 5 6 7 8 9 10 11假設(shè)在進行第1輪同步的時候,用戶又新上傳了對象到容器,所以容器數(shù)據(jù)庫又新添加了行6到1 1遠程容器副本第二輪同步I當(dāng)容器

9、的ContainerSync進行下一次同步的時候,檢查到SP2和SP1之間有行0到5,共6行,需要進行第二輪同步SP1SP2-1 0 1 2 3 4 5 6 7 8 9 10 11容器副本第二輪同步,SP1之間的行都需要進行同步Row0Row1Row2Row3Row4Row5TestiTestiRow0Row1Row3Row4Row5Row0Row1Row2Row3Row4Row5Row0Row1Row2Row3Row4Row5Row0Row1Row2Row3Row4Row5I第二輪同步時,所有副本對所有SP2遠程容器副本第二輪同步I如果第二輪同步都取得了成功,就把SP2也移動到SP1的位置,

10、所以SP1 = 5 SP 2 = 5SP1SP2V-1 0 1 2 3 4 5 6 7 8 9 10 11遠程容器副本同步舉例I然后進行第1輪同步,需要同步的行有6到11I這和上次一樣,通過計算每個容器副本負(fù)責(zé)1/3的行進行同步同步完成后,把SP1移動到當(dāng)時看見的最大行1 1所以SP 1 = 1 1 SP2 = 5SP1SP2f-1 012 3 4 5 6 7 8 910 11 12 13容器副本故障問題分析計算這些行里哪些行需要本副本進行同步,假定說,n第0副本:OZ 1第1副本:2, 5 (該副本所在節(jié)點出了故障)第2副本:3, 4Row0Row1Row2row3 MD5 () M0D3R

11、ow4Row5Row0Row1Row2Row5Row3Row4容器副本故障問題分析再計算這些行里哪些行需要本副本進行同步,假定說,n第0副本:OZ 1n第1副本:2, 5 (該副本所在節(jié)點出了故障)n第2副本:3, 4Row0Row1Row2Row3Row4Row5Row0Row1Row3Row4Row0Row1Row3Row4Row0遠程容器副本同步故障分析進行第1輪同步后,遠程容器沒有得到行2,行5的對象SP1二5 SP2二-1但是第二輪同步時,容器副本0和副本2會對所有SP2和SP1之間的行進行- 步,所以,行2,行5會得到同步SP1SP2-1 0 1 2 3 4 5 6 7 8 9 1

12、0 11容器副本故障問題分析第二輪同步副本0和副本2對所有行進行同步Row0Row1Row2Row0Row1Row2Row3Row4Row5副本2TestiRow0Row1Row2Row3Row4Row5Row0Row1Row2Row3Row4Row5TestiTestiRow0 Row3 Row1 Row4 Row3 Row5Row4 Row0Row1Row2Row0 Row3Row1 Row4 Row3 Row5 Row4Row0 Row0 Row1 Row1 Row2 Row3 Row3 Row4 Row4容器副本故障問題分析如果第二輪同步時候,有些行沒有同步成功,比如第3行出現(xiàn)同步失敗, 那么,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論