FusionStorage原理及组件,Java面试回忆录
前言
設計模式是我們編程道路上繞不開的一環,用好了設計模式能夠讓代碼擁有良好的維護性、可讀性以及擴展性,它仿佛就是“優雅”的代名詞,各個框架和庫也都能見到它的身影。
正是因為它有種種好處,所以很多人在開發時總想將某個設計模式用到項目中來,然而往往會用得比較別扭。其中一部分原因是業務需求并不太符合所用的設計模式,還有一部分原因就是在Web項目中我們對象都是交由Spring框架的Ioc容器來管理,很多設計模式無法直接套用。那么在真正的項目開發中,我們就需要對設計模式做一個靈活的變通,讓其能夠和框架結合,在實際開發中發揮出真正的優勢。
容災又分為異地容災和同城容災
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重先選主。
數據存儲
《一線大廠Java面試真題解析+Java核心總結學習筆記+最新全套講解視頻+實戰項目源碼》開源
Java優秀開源項目:
- ali1024.coding.net/public/P7/Java/git
最后
針對最近很多人都在面試,我這邊也整理了相當多的面試專題資料,也有其他大廠的面經。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖)
最新整理電子書
數據存儲
《一線大廠Java面試真題解析+Java核心總結學習筆記+最新全套講解視頻+實戰項目源碼》開源
Java優秀開源項目:
- ali1024.coding.net/public/P7/Java/git
最后
針對最近很多人都在面試,我這邊也整理了相當多的面試專題資料,也有其他大廠的面經。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖)
[外鏈圖片轉存中…(img-jQtXcXnW-1649342846889)]
最新整理電子書
[外鏈圖片轉存中…(img-8wBNwgat-1649342846890)]
總結
以上是生活随笔為你收集整理的FusionStorage原理及组件,Java面试回忆录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装CentOS 5.x与多重引导小技巧
- 下一篇: JDBC 加载驱动报错解决办法