摘要:數據遷移過程中的速率問題。關閉源站數據遷移典型案例剖析七牛客戶陌陌的數據量非常大,如果采用常用的傳輸辦法,整個遷移過程要耗時半年,并且會嚴重影響線上的業務。為此,七牛為陌陌制定了個性化的數據遷移方案。
無論是計劃擁抱云服務還是打算從正在使用的云服務切換到另外一家,這其中數據的遷移是很關鍵的一步。在遷移過程中可能遇到以下問題:
數據遷移文件路徑問題。
數據遷移過程中的速率問題。
寄送磁盤后的遷移過程中,上傳數據不完整。
針對這些問題,一個考慮全面的遷移系統就顯得尤為重要,尤其是數據遷移的速度和安全性。首先七牛雖然為非結構化存儲,但是仍然支持帶文件路徑進行上傳,不影響原先數據的訪問規則;其次,數據遷移的速率基本不受網絡帶寬影響,主要受到磁盤讀寫速度的限制;上傳數據不完整,七牛會主動檢測數據遷移的完整性,通過鏡像存儲也可以補全未上傳成功的數據。一般場景有以下幾種:
場景一:自有機房遷移到七牛且數據少量
_____________________________________________________
有兩種方案可以選擇:
一、完全使用七牛鏡像存儲功能
利用七牛提供的鏡像存儲功能,可以非常簡單地將源站的數據被動地同步到七牛云存儲中,所謂被動同步即——只有在資源被訪問時,七牛才會回源站獲取一次,此后對該資源的訪問都不會再發生回源動作,而是直接從七牛這里拿到數據。鏡像存儲使用方式如下:
假設源站所有的圖片,放在一個叫 img.example.com 子域里。
1、在七牛上建立一個鏡像bucket,設定源站為 img.example.com。假設鏡像 bucket是example-img,鏡像 bucket 對應的域名為 example-img.qiniudn.com。
2、將所有對外使用的圖片的域名改為example-img.qiniudn.com。
3、如果網站數據是UGC(用戶產生內容)的,調整上傳流程,傳到七牛的鏡像 bucket。這樣源站就變成只讀。
如此就完成整個遷移過程。此時 img.example.com 這個源站就可以廢棄不用了。
二、借助七牛提供的數據遷移工具qrsync公網間直傳
qrsync 是一個根據七牛API實現的簡易命令行輔助上傳同步工具,支持斷點續上傳,增量同步,它可將用戶本地的某目錄的文件同步到七牛,同步或上傳幾百GB甚至上TB的文件毫無壓力。
場景二:自有機房遷移到七牛但數據總量大
_____________________________________________________
在場景二下,用戶可以將數據先備份到本地,然后寄送數據硬盤給七牛,由七牛通過內網將數據同步到七牛云端;或者七牛寄送空數據硬盤,客戶備份數據后寄回七牛,并由七牛通過內網上傳。這其中,由于數據量巨大,考慮因素需要更多,七牛也會專為該類客戶定制化數據遷移系統。
在寄硬盤的過程中,為了保持新數據也被存到七牛上面,以及試用七牛的服務,可以使用鏡像存儲。
場景三:從任意云服務遷移到七牛且數據少量
_____________________________________________________
在場景三下,可以有兩種方案進行數據的遷移工作。
一、完全使用鏡像存儲,無縫將數據遷移到七牛的空間中,具體使用方式和場景一中鏡像存儲描述部分一致。
二、使用七牛數據遷移定制化工具,在七牛的技術支持的協助下,用工具將數據同步到七牛。
場景四:從任意云服務遷移到七牛但數據總量大
_____________________________________________________
如果想從某一云服務切換到七牛,可以先從正在使用的云服務備份數據到本地,通過磁盤/服務器的遞送,直接上傳數據到七牛。
數據導入的同時依然可以使用鏡像存儲配合數據的遷移,具體步驟如下:
? 開啟鏡像存儲,并將用戶對源站資源的訪問切換到從七牛這里訪問,同時在源站保持使用prefetch 接口預取更新變化了的資源。
? 將資源的上傳動作從源站切換到七牛,這樣用戶對資源的修改動作會直接更新七牛中存儲的內容,此時源站的資源數據已經變成一個靜態的集合,因此可以撤銷第一步中對prefetch 接口的使用。
? 放心地將源站的靜態資源數據增量地導入七牛的存儲,存儲中已有的資源不再導入,只導入存儲中還不存在的資源(我們已有針對此類導入的成熟工具提供您直接使用)。
? 關閉源站(just kidding :P)
[數據遷移典型案例剖析]
七牛客戶陌陌的數據量非常大,如果采用常用的傳輸辦法,整個遷移過程要耗時半年,并且會嚴重影響線上的業務。為此,七牛為陌陌制定了個性化的數據遷移方案。
在遷移過程中可能遇到以下問題:
硬盤遷移過程中,網絡傳輸中的數據出錯。
傳輸過程中的速率問題。拿陌陌舉例,如果采用常用的傳輸辦法,整個遷移過程要耗時半年,并且會嚴重影響線上的業務。
硬盤寄送過程以及使用過程中的磁盤損壞。
存儲數據文件對數據庫的合并。如果按照傳統的數據庫寫入方式,需要若干天,會給客戶數據庫以及云服務的數據庫帶來不必要的巨大壓力。
針對這些問題,一個考慮全面的遷移系統就顯得尤為重要:
針對客戶的業務數據模型,定制數據格式,進行存儲數據的導入。
數據庫結構需要有強擴展性,可以實現瞬時合并。
遷移系統充分考慮不可控因素,比如硬盤損壞,斷電等情況。
至此,七牛已經成為陌陌非常好的合作伙伴,支撐了他們近兩億用戶的數據存儲,訪問加速與圖片處理。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25147.html
摘要:甚至很可能就正有一個這樣的安卓項目包含了各種成員項目和編譯成的文件,這些文件還會包含在最終生成的應用里。這些文件包含了一些很重要的內容,比如所支持的安卓版本和項目依賴的東西,以及安卓項目中其它重要的數據。那么這就是你需要知道的一些基礎知識。 在這個指南里,包含了一些當你要把Eclipse項目轉到Andorid Studio前需要知道的基本信息。 對WorkSapces和Sub-Pro...
摘要:眾所周知,在大公司中進行大的改革很難。目前公司有超過名開發人員,其中有個以上是前端。從年起,已經在一些小規模團隊中探索使用。在年的前端調查中,靜態類型系統呼聲最高。在我們的主倉庫中,絕大多數的公共依賴都已經由做到了類型聲明。 特別說明 這是一個由simviso團隊進行的關于Airbnb大規模應用TypeScript分享的翻譯文檔,分享者是Airbnb的高級前端開發Brie Bunge ...
摘要:盡管把基礎架構遷移到云平臺上好處多多,但是如果考慮不細致反而會妨礙系統性能,把基礎架構從物理遷移到虛擬才能帶來較好的資源利用率。在存儲方面,重要的是可擴展性。確保物理產品的環境已經卸下,但不要完全退役。 盡管把基礎架構遷移到云平臺上好處多多,但是如果考慮不細致反而會妨礙系統性能,把基礎架構從物理遷移到虛擬才能帶來較好的資源利用率。我們需要把物理到虛擬,然后在遷移到云,即所謂的P2V2C(p...
摘要:于年獲得的職位,并發現了一個需要徹底改革的部門。此外,該報告還將云計算確定為了最需要專業開發的領域之一。為了能夠成功過渡到云,首席信息官們正在重新組建他們的IT團隊,使其變得敏捷、跨職能,并且擁有新的技能、角色和高度適應性的思維方式。 Paul Ryan于2017年獲得OpenX的CTO職位,并發現了一個需要徹底改革的IT部門。 OpenX,一家制作程序化廣告平臺的技術公司,服務...
閱讀 2495·2021-11-24 10:29
閱讀 2634·2021-09-24 09:48
閱讀 5737·2021-09-22 15:56
閱讀 3151·2021-09-06 15:00
閱讀 2667·2019-08-30 15:54
閱讀 740·2019-08-30 13:48
閱讀 2893·2019-08-30 11:17
閱讀 3417·2019-08-29 11:20