日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FusionStorage原理及组件

發布時間:2023/12/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FusionStorage原理及组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、FS的部署模式

1)融合部署?

2)分離部署?

3)scsi和iscsi使用場景

二、FS的災備

FS的高級特性

三、FS的DHT算法

四、存儲池和卷

五、FS的可靠性和安全級別

可靠性

安全級別

六、VBS結構

scsi:將內核態VSC模塊的scsi流引入VBS用戶態

七、OSD結構

八、FS的IO流程

1)寫IO

2)讀IO

九、ZK的作用

MDC主備管理:

數據存儲

數據同步

十、FS的視圖

十一、FS組件交互過程

1)創建控制集群?? 自動ZK? 控制MDC

2)創建存儲池

3)創建塊客戶端


一、FS的部署模式

1)融合部署?

VBS和OSD合部在同一節點

2)分離部署?

VBS和OSD分開部署在不同的節點

3)scsi和iscsi使用場景

業務與VBS是否合部

如果合部---scsi

如果分開部署在不同節點----iscsi

無論是scsi還是iscsi,都支持融合部署和分離部署

通常在應用場景上考慮是融合還是分離,多在scsi場景考慮

scsi場景下

如果業務需要大量計算資源保障,此時考慮分離部署----關鍵業務系統,例如數據庫

如果服務器主機有足夠計算資源支持業務和FS的組件運行,此時考慮融合部署----云場景

融合部署的成本低于分離部署

二、FS的災備

?

備份主要用來保證業務的安全性

容災主要作用是保護業務的連續性

容災又分為異地容災和同城容災

FS作為生產存儲支持ebakcup或者第三方備份管理軟件的備份

FS的高級特性

雙活

hyper metro?

遠程復制(異步)?

hyper replication

可以實現存儲層容災

三、FS的DHT算法

DHT(分布式哈希表,Distrubuted Hash Table

111? 698d51a19d8a121ce581499d7b701668

112? 7f6ffaa6bb0b408017b62254211691b5

將十進制的數,轉化為2的128次方的數,就可以實現平均切隨機

一個存儲池對應一個DHT環(邏輯)

讀寫流程:

1.scsi流交給vbs--->vbs轉換scsi流為key-value

2.對key值進行--->hash尋址

目的:將主機下發的IO平均且隨機的落到存儲池各個OSD對應硬盤上

也就是為了實現IO 的負載均衡

3.經過hash得到一個2的32次方的數值--->模運算-->得到patition

目的:縮減表的尺度,加速查找DHT

4.查詢由MDC維護的映射表記錄的是patition和osd的關系patition--->得到osd

目的:解決壞盤或者擴容場景,準確定位patition對應的osd位置

5.osd做key-value到iscsi流的轉化,做磁盤的讀寫操作

四、存儲池和卷

存儲池是由一組服務器本地硬盤構成,硬盤類型相同、容量相同、參數相同等限制(參考產品文檔)

主存類型:SATA機械? SAS機械?? SAS-SSD?? SATA-SSD? NVME SSD盤、SSD卡

一塊硬盤只能屬于一個存儲池

一個存儲池可以劃多個卷(劃卷依賴vbs)

一個卷只能屬于一個存儲,不能跨存儲池

卷可以通過scsi掛載給vbs或者iscsi映射給業務主機使用

一個主機可以使用多個卷,多個卷可以來自不同存儲池

五、FS的可靠性和安全級別

可靠性

副本機制:

2副本--50%?? 3副本--33.3%

EC機制: M=2,3,4? N最大22

EC(Erusure code)算法,分布式raid算法,可以跨界點raid

N+M?? 壞M塊硬盤或者M個節點數據不丟失,業務不中斷

N是數據分片

M是校驗分片

N+M:B?? 壞M塊硬盤或者B=1個節點數據不丟失,業務不中斷

22+2保護? 高達91%空間利用率

安全級別

FSM配置界面創建存儲池僅支持服務器級和機柜級

服務器級安全:數據副本或者EC的數據分片一定不會放在同一個服務器節點內

機柜級安全:數據副本或者EC的數據分片一定不會放在同一個機柜內

機房級安全:數據副本或者EC的數據分片一定不會放在同一個機房內

不同的存儲池可配置不同的數據保護方式和安全級別

六、VBS結構

scsi:將內核態VSC模塊的scsi流引入VBS用戶態

VBP:scsi流轉換成key-value

client:key--hash---mod--patition--查io-view--主OSD 走存儲網絡平面將io流轉發至主OSD

VBM:卷和快照生命周期管理操作? 創建卷、掛載卷、卸載卷、查詢卷、刪除卷、創建快照、刪除快照、基于快照創建卷等

hearbeat:心跳模塊? 通過存儲平面與MDC交互心跳包? 使MDC維持VBS view狀態視圖

七、OSD結構

RSM:復制協議實現。

SNAP:實現卷與快照的IO功能、磁盤空間的管理。

CACHE:實現cache功能。

AIO:實現異步IO下發到底層SMIO模塊和通過調用SMIO接口來監控介質故障。

SMIO:下發到IO到實際的物理介質、監控物理介質故障、獲取磁盤信息。

八、FS的IO流程

1)寫IO

APP--》OS--》scsi/iscsi---》VSC內核模塊接收---》scsi initiator--》scsi target---》VBP(LUN ID/LBA ID/length-->key data-->value)

---》client(key--hash--mod--patition--查io view--主OSD)---》主OSD(key--hash--mod--patition--查patition view--備OSD)--》主OSD一方面下發寫IO到本端cache,一方面通過RSM復制IO到備OSD---》主備OSD同步寫cache成功--》由主OSD返回VBS寫成功(回寫),VBS返回APP寫成功。

2)讀IO

APP--OS--scsi/iscsi---VSC內核模塊接收---scsi initiator--scsi target---VBP(LUN ID/LBA ID/length-->key data-->value)---client(key--hash--mod--patition--查io view--主OSD)---主OSD

1、主OSD正常,先讀cache,如果cache讀命中,返回讀成功,如果未讀命中,主OSD向主存disk查詢讀數據。

2、主OSD異常,MDC會檢測硬盤異常觸發退盤,修改視圖(OSD view? IO view? Patition view),指導VBS引流到備OSD(新主OSD讀數據),先讀cache,如果cache讀命中,返回度成功,如果未讀命中,主OSD向主存disk查詢讀數據。

九、ZK的作用

Zookeeper(簡稱ZK)分布式服務框架主要用來解決分布式應用中經常遇到的,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等,ZK主要工作包括三項:

MDC主備管理:

MDC采用一主兩備部署模式;在MDC模塊進程啟動后,各個MDC進程會向ZK注冊選主,先注冊的為主MDC;運行過程中,ZK記錄MDC主備信息,并通過心跳機制監控MDC主備健康狀況,一旦主MDC進程故障,會觸發MDC重先選主。

數據存儲

在MDC運行過程中,會生成各種控制視圖信息,包括目標視圖、中間視圖、IO視圖信息等,這些信息的保存、更新、查詢、刪除操作都通過ZK提供的接口實現。

數據同步

數據更新到主ZK,由主ZK自動同步到備ZK,保證主備ZK數據同步,一旦ZK發生主備切換,業務不受影響

為什么奇數部署ZK

在ZK集群中,如果大于等于半數ZK節點宕機那么整個集群不可用

比如部署4個ZK,是只允許壞一個ZK

部署3個ZK,也是只允許壞一個ZK

部署3臺和4臺都是只允許一臺宕機,既然是同樣的容錯能力,那么考慮節省服務器資源,所以推薦奇數部署

幫助MDC選主

持久保存MDC管理的系統元數據

幫助MDC實現元數據同步

十、FS的視圖

VBS view?? VBSid---VBS status

OSD view?? OSDid---OSD status

IO view??? patitionid----主OSD

Patition view?? patitionid---主OSD/備OSD--主備OSD的status

視圖持久化保存在ZK盤或者ZK分區

MDC所在主機內存緩存所有視圖

VBS所在主機內存緩存io view

OSD所在主機內存緩存 patition view

十一、FS組件交互過程

1)創建控制集群?? 自動ZK? 控制MDC

ZK啟動形成ZK集群,MDC找ZK注冊,最先注冊成功的為主MDC,MDC與ZK位置心跳,MDC通過ZK形成集群關系

主MDC故障,其他MDC與ZK聯動重新注冊選舉主MDC

備MDC故障,上報FSM,管理員看到進程異常告警及時處理

2)創建存儲池

主MDC確定是否需要啟動新的歸屬MDC管理該存儲,或者用現有MDC作為該存儲池歸屬MDC管理存儲池

如果歸屬MDC故障,由主MDC決定歸屬MDC的接替者

一個歸屬MDC最多管理2個存儲池

啟動OSD,OSD向MDC查詢自己的歸屬MDC,向歸屬MDC上報狀態,維持心跳

如果OSD異常,超過5S,歸屬MDC檢測OSD異常修改視圖,數據引流、數據重建

3)創建塊客戶端

VBS啟動時查詢主MDC,向主MDC注冊

主MDC維護了一個活動VBS的列表,主MDC同步VBS列表到其它MDC,以便MDC能將OSD的狀態變化通知到VBS

VBS向主MDC確認自己是否為leader(最先注冊成功的為主)

VBS從主MDC獲取IO View

主VBS向OSD獲取元數據,其它VBS向主VBS獲取卷的元數據。

總結

以上是生活随笔為你收集整理的FusionStorage原理及组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。