FusionStorage原理及组件,Java面试回忆录
前言
設(shè)計(jì)模式是我們編程道路上繞不開(kāi)的一環(huán),用好了設(shè)計(jì)模式能夠讓代碼擁有良好的維護(hù)性、可讀性以及擴(kuò)展性,它仿佛就是“優(yōu)雅”的代名詞,各個(gè)框架和庫(kù)也都能見(jiàn)到它的身影。
正是因?yàn)樗蟹N種好處,所以很多人在開(kāi)發(fā)時(shí)總想將某個(gè)設(shè)計(jì)模式用到項(xiàng)目中來(lái),然而往往會(huì)用得比較別扭。其中一部分原因是業(yè)務(wù)需求并不太符合所用的設(shè)計(jì)模式,還有一部分原因就是在Web項(xiàng)目中我們對(duì)象都是交由Spring框架的Ioc容器來(lái)管理,很多設(shè)計(jì)模式無(wú)法直接套用。那么在真正的項(xiàng)目開(kāi)發(fā)中,我們就需要對(duì)設(shè)計(jì)模式做一個(gè)靈活的變通,讓其能夠和框架結(jié)合,在實(shí)際開(kāi)發(fā)中發(fā)揮出真正的優(yōu)勢(shì)。
容災(zāi)又分為異地容災(zāi)和同城容災(zāi)
FS作為生產(chǎn)存儲(chǔ)支持ebakcup或者第三方備份管理軟件的備份
FS的高級(jí)特性
雙活
hyper metro
遠(yuǎn)程復(fù)制(異步)
hyper replication
可以實(shí)現(xiàn)存儲(chǔ)層容災(zāi)
三、FS的DHT算法
==========
DHT(分布式哈希表,Distrubuted Hash Table)
111? 698d51a19d8a121ce581499d7b701668
112? 7f6ffaa6bb0b408017b62254211691b5
將十進(jìn)制的數(shù),轉(zhuǎn)化為2的128次方的數(shù),就可以實(shí)現(xiàn)平均切隨機(jī)
一個(gè)存儲(chǔ)池對(duì)應(yīng)一個(gè)DHT環(huán)(邏輯)
讀寫(xiě)流程:
1.scsi流交給vbs—>vbs轉(zhuǎn)換scsi流為key-value
2.對(duì)key值進(jìn)行—>hash尋址
目的:將主機(jī)下發(fā)的IO平均且隨機(jī)的落到存儲(chǔ)池各個(gè)OSD對(duì)應(yīng)硬盤(pán)上
也就是為了實(shí)現(xiàn)****IO 的負(fù)載均衡
3.經(jīng)過(guò)hash得到一個(gè)2的32次方的數(shù)值—>模運(yùn)算–>得到patition
目的:縮減表的尺度,加速查找DHT環(huán)
4.查詢由MDC維護(hù)的映射表記錄的是patition和osd的關(guān)系patition—>得到osd
目的:解決壞盤(pán)或者擴(kuò)容場(chǎng)景,準(zhǔn)確定位patition對(duì)應(yīng)的osd位置
5.osd做key-value到iscsi流的轉(zhuǎn)化,做磁盤(pán)的讀寫(xiě)操作
四、存儲(chǔ)池和卷
=======
存儲(chǔ)池是由一組服務(wù)器本地硬盤(pán)構(gòu)成,硬盤(pán)類(lèi)型相同、容量相同、參數(shù)相同等限制(參考產(chǎn)品文檔)
主存類(lèi)型:SATA機(jī)械? SAS機(jī)械?? SAS-SSD?? SATA-SSD? NVME SSD盤(pán)、SSD卡
一塊硬盤(pán)只能屬于一個(gè)存儲(chǔ)池
一個(gè)存儲(chǔ)池可以劃多個(gè)卷(劃卷依賴vbs)
一個(gè)卷只能屬于一個(gè)存儲(chǔ),不能跨存儲(chǔ)池
卷可以通過(guò)scsi掛載給vbs或者iscsi映射給業(yè)務(wù)主機(jī)使用
一個(gè)主機(jī)可以使用多個(gè)卷,多個(gè)卷可以來(lái)自不同存儲(chǔ)池
五、FS的可靠性和安全級(jí)別
=============
可靠性
副本機(jī)制:
2副本–50%?? 3副本–33.3%
EC機(jī)制: M=2,3,4? N最大22
EC(Erusure code)算法,分布式raid算法,可以跨界點(diǎn)raid
N+M?? 壞M塊硬盤(pán)或者M(jìn)個(gè)節(jié)點(diǎn)數(shù)據(jù)不丟失,業(yè)務(wù)不中斷
N是數(shù)據(jù)分片
M是校驗(yàn)分片
N+M:B?? 壞M塊硬盤(pán)或者B=1個(gè)節(jié)點(diǎn)數(shù)據(jù)不丟失,業(yè)務(wù)不中斷
22+2保護(hù)? 高達(dá)91%空間利用率
安全級(jí)別
FSM配置界面創(chuàng)建存儲(chǔ)池僅支持服務(wù)器級(jí)和機(jī)柜級(jí)
服務(wù)器級(jí)安全:數(shù)據(jù)副本或者EC的數(shù)據(jù)分片一定不會(huì)放在同一個(gè)服務(wù)器節(jié)點(diǎn)內(nèi)
機(jī)柜級(jí)安全:數(shù)據(jù)副本或者EC的數(shù)據(jù)分片一定不會(huì)放在同一個(gè)機(jī)柜內(nèi)
機(jī)房級(jí)安全:數(shù)據(jù)副本或者EC的數(shù)據(jù)分片一定不會(huì)放在同一個(gè)機(jī)房?jī)?nèi)
不同的存儲(chǔ)池可配置不同的數(shù)據(jù)保護(hù)方式和安全級(jí)別
六、VBS結(jié)構(gòu)
=======
scsi:將內(nèi)核態(tài)VSC模塊的scsi流引入VBS用戶態(tài)
============================
VBP:scsi流轉(zhuǎn)換成key-value
client:key–hash—mod–patition–查io-view–主OSD 走存儲(chǔ)網(wǎng)絡(luò)平面將io流轉(zhuǎn)發(fā)至主OSD
VBM:卷和快照生命周期管理操作? 創(chuàng)建卷、掛載卷、卸載卷、查詢卷、刪除卷、創(chuàng)建快照、刪除快照、基于快照創(chuàng)建卷等
hearbeat:心跳模塊? 通過(guò)存儲(chǔ)平面與MDC交互心跳包? 使MDC維持VBS view狀態(tài)視圖
七、OSD結(jié)構(gòu)
=======
RSM:復(fù)制協(xié)議實(shí)現(xiàn)。
SNAP:實(shí)現(xiàn)卷與快照的IO功能、磁盤(pán)空間的管理。
CACHE:實(shí)現(xiàn)cache功能。
AIO:實(shí)現(xiàn)異步IO下發(fā)到底層SMIO模塊和通過(guò)調(diào)用SMIO接口來(lái)監(jiān)控介質(zhì)故障。
SMIO:下發(fā)到IO到實(shí)際的物理介質(zhì)、監(jiān)控物理介質(zhì)故障、獲取磁盤(pán)信息。
八、FS的IO流程
=========
1)寫(xiě)IO
APP–》OS–》scsi/iscsi—》VSC內(nèi)核模塊接收—》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一方面下發(fā)寫(xiě)IO到本端cache,一方面通過(guò)RSM復(fù)制IO到備OSD—》主備OSD同步寫(xiě)cache成功–》由主OSD返回VBS寫(xiě)成功(回寫(xiě)),VBS返回APP寫(xiě)成功。
2)讀IO
APP–OS–scsi/iscsi—VSC內(nèi)核模塊接收—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查詢讀數(shù)據(jù)。
2、主OSD異常,MDC會(huì)檢測(cè)硬盤(pán)異常觸發(fā)退盤(pán),修改視圖(OSD view? IO view? Patition view),指導(dǎo)VBS引流到備OSD(新主OSD讀數(shù)據(jù)),先讀cache,如果cache讀命中,返回度成功,如果未讀命中,主OSD向主存disk查詢讀數(shù)據(jù)。
九、ZK的作用
=======
Zookeeper(簡(jiǎn)稱(chēng)ZK)分布式服務(wù)框架主要用來(lái)解決分布式應(yīng)用中經(jīng)常遇到的,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等,ZK主要工作包括三項(xiàng):
MDC主備管理:
MDC采用一主兩備部署模式;在MDC模塊進(jìn)程啟動(dòng)后,各個(gè)MDC進(jìn)程會(huì)向ZK注冊(cè)選主,先注冊(cè)的為主MDC;運(yùn)行過(guò)程中,ZK記錄MDC主備信息,并通過(guò)心跳機(jī)制監(jiān)控MDC主備健康狀況,一旦主MDC進(jìn)程故障,會(huì)觸發(fā)MDC重先選主。
數(shù)據(jù)存儲(chǔ)
《一線大廠Java面試真題解析+Java核心總結(jié)學(xué)習(xí)筆記+最新全套講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》開(kāi)源
Java優(yōu)秀開(kāi)源項(xiàng)目:
- ali1024.coding.net/public/P7/Java/git
最后
針對(duì)最近很多人都在面試,我這邊也整理了相當(dāng)多的面試專(zhuān)題資料,也有其他大廠的面經(jīng)。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖)
最新整理電子書(shū)
數(shù)據(jù)存儲(chǔ)
《一線大廠Java面試真題解析+Java核心總結(jié)學(xué)習(xí)筆記+最新全套講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼》開(kāi)源
Java優(yōu)秀開(kāi)源項(xiàng)目:
- ali1024.coding.net/public/P7/Java/git
最后
針對(duì)最近很多人都在面試,我這邊也整理了相當(dāng)多的面試專(zhuān)題資料,也有其他大廠的面經(jīng)。希望可以幫助到大家。
下面的面試題答案都整理成文檔筆記。也還整理了一些面試資料&最新2021收集的一些大廠的面試真題(都整理成文檔,小部分截圖)
[外鏈圖片轉(zhuǎn)存中…(img-jQtXcXnW-1649342846889)]
最新整理電子書(shū)
[外鏈圖片轉(zhuǎn)存中…(img-8wBNwgat-1649342846890)]
總結(jié)
以上是生活随笔為你收集整理的FusionStorage原理及组件,Java面试回忆录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安装CentOS 5.x与多重引导小技巧
- 下一篇: JDBC 加载驱动报错解决办法