【正文】
A 。 ? 訪問接口: – 不支持 POSIX文件接口 – 面向 Java/C++的 API: read,insert,delete,append,update等 – HTTP文件讀取接口 ? 支持多副本 ? 支持數(shù)據(jù)復制和遷移 ? 支持文件粒度的數(shù)據(jù)去重 ? 定制硬件降低成本 DFS的功能特點 DFS系統(tǒng)架構 數(shù)據(jù)定位 ——ID到文件地址的映射 B u c k e t I D ( 1 6 b i t ) L e v e l 1 ( 1 2 b i t ) L e v e l 1 ( 1 2 b i t ) L e v e l 3 ( 1 2 b i t ) F i l e n a m e ( 1 2 b i t )B u c k e t 1B u c k e t 2B u c k e t 3B u c k e t 4… …S N 1S N 2S N 3… …文 檔 分 配 表S NR o o t D i r / L e v e l 1 / L e v e l 2 / L e v e l 3 / F i l e n a m eI D? 以 Bucket為單位進行配置和管理 ? 將 Bucket映射到不同 SN的不同磁盤上 ? FSI負責多副本的同步寫 ? FSI和前端機隨機挑選副本讀取數(shù)據(jù) ? SN故障處理: SN心跳失效 FSI和前端機停止對故障 SN的訪問 SN將桶數(shù)據(jù)復制到空閑 SN上 多副本管理 ? 應用場景: – 恢復或增加副本 – SN系統(tǒng)軟硬件更換或升級,服務器搬遷 – 跨數(shù)據(jù)中心災備 – 均衡負載 ? 實現(xiàn)策略 : 以桶為單位進行遷移 ,通過 Redo日志避免停服或只讀 . 操作步驟 : 1. 源 SN記錄 Redo日志 2. 源 SN將桶目錄復制到目標 SN的指定目錄 3. 在目標 SN上 Redo