磁盤陣列
JBOD
在過去一臺服務(wù)器只能放兩三塊盤陆爽,遠(yuǎn)遠(yuǎn)不能滿足要求,所以可以把盤放到主機的外面扳缕。也就是說專門拿一個箱子慌闭,所有磁盤都放在機箱里面,而且獨立電源和散熱躯舔,接口方面驴剔,內(nèi)部其實就是一條SCSI線纜,這就形成了磁盤柜(Just a Bound Of Disk 粥庄, JBOD)丧失,顧名思義,實際上就是“一串磁盤”
獨立的外部磁盤陣列
JBOD的內(nèi)部不含RAID卡惜互,這樣布讹,如果要調(diào)整RAID的話,還需要重啟主機训堆,影響主機里面的應(yīng)用描验。那么最好是可以把RAID功能做到磁盤箱內(nèi)部。
如下圖所示坑鱼,凡是自帶RAID控制器的盤柜就叫磁盤陣列膘流。通過外部的SCSI接口,連接到主機上端的SCSI端口。
主機的SCSI控制器與盤陣SCSI控制器相比睡扬,盤陣的SCSI控制器作為Target模式盟蚣,被主機SCSI控制器操控黍析。
而在右邊的SCSI總線上卖怜,盤陣的S2控制器作為Initiator模式,占據(jù)主動權(quán)阐枣。磁盤均為SCSI Target马靠,受控于Initiator
前端和后端
對盤陣來說,左邊為前端蔼两,面向主機提供對外服務(wù)
面向自己管理的磁盤就變成了后端甩鳄。也就是右邊的部分。
內(nèi)部接口和外部接口
- 內(nèi)部接口:盤陣RAID控制器連接內(nèi)部磁盤時用的接口:可以連接IDE磁盤等
- 外部接口:盤陣控制器對于主機端额划,提供什么接口妙啃,
內(nèi)外接口可以不一樣,比如內(nèi)部連接IDE磁盤俊戳,外部用SCSI接口連接主機揖赴。(僅限于盤陣,盤柜必須一樣)
因為盤陣控制器是一個虛擬化引擎抑胎,可以不一致燥滑,即使內(nèi)部是IDE的,也可以向主機報告有多少LUN
多外部接口
有多個接口是為了連接多臺的主機阿逃。
每個由盤陣RAID控制器生成的邏輯磁盤铭拧,可以通過設(shè)置只分配到其中一個口,連接到其他口的主機就不會看到這個LUN恃锉。
也可以把一個LUN同時分配到兩個口搀菩,兩臺主機對一個LUN寫數(shù)據(jù),容易造成數(shù)據(jù)不一致破托。
關(guān)于LUN
LUN是SCSI ID的更細(xì)一級的地址號肪跋。每個SCSI ID下面可有更多的LUN ID 。
大型磁盤陣列有幾千個虛擬磁盤炼团,但是每條SCSI總線最多允許16個設(shè)備澎嚣,所以為每個虛擬磁盤分配一個SCSI ID不夠用。
可以在一個SCSI ID虛擬多個LUN地址瘟芝,每個LUN地址對應(yīng)一個虛擬磁盤易桃。
LUN
:硬件層次生成的虛擬磁盤統(tǒng)稱為LUN。
卷
:軟件生成的虛擬磁盤
雙控制器磁盤陣列
如果控制器只有一個锌俱,則會存在單點故障晤郑,所以至少有兩個控制器。雙控制器需要相互通信,一般使用PCI總線進(jìn)行互聯(lián)造寝。
而兩個控制器的協(xié)同方式有兩種磕洪,Active-Standby 、Dual-Active
Active-Standby(HA)
HA方式:兩個控制器同一時刻只有一個在工作诫龙,另一個在等待析显、同步和監(jiān)控狀態(tài),只是在故障以后才接管签赃。
兩控制器各占一個ID 谷异。剩余14個ID給磁盤,
為了預(yù)防腦分裂
锦聊,備份控制器在接管之前需要將主控斷電或者重啟歹嘹,釋放其總線使用權(quán),然后接管前端和后端總線孔庭。
主機端必須使用兩個SCSI適配器分別連接到盤陣上的控制器尺上,但是這樣做,主機端必須通過某種方式感知到HA策略圆到,并在故障發(fā)生時切換怎抛。
對于FC盤陣來說,使用雙控及主機端使用雙FC適配卡非常普遍构资。
Dual-Active
所謂Dual-active抽诉,也叫控制器雙活,指的是兩個控制器同時工作吐绵,對所有后端總線有通路迹淌,但是每個總線平時只被一個控制器管理,另一個不觸動己单。
可以將后端一半數(shù)量的總線交由一個控制器管理唉窃,另一半交由另一個控制器管理。一旦損壞纹笼,可以立刻接管所有的總線纹份,比Active-Standby更高效。
腦分裂Split Brain
腦裂指的是控制器之間的通路出現(xiàn)了問題廷痘。也就是說兩個控制器其實是正常的蔓涧,但是檢測不到對方的 存在。所以都會嘗試接管所有的總線笋额。類似于精神分裂元暴。
解決方案:
加入一個仲裁者
- 使用兩個控制器都能寫到的硬盤,向其寫入自己的仲裁信息兄猩,如果腦分裂茉盏,就看誰在上面最后寫了信息鉴未。
- 電源控制器:向電源控制器發(fā)送信號,讓對方重啟并進(jìn)入Standby
接管了總線的控制器一般會對總線上所有的磁盤進(jìn)行SCSI Reserve操作鸠姨,即預(yù)訂操作铜秆。
總線上所有目標(biāo)設(shè)備一旦被預(yù)訂,便不再接受其他控制器的IO請求讶迁。
連接多個擴展柜
到現(xiàn)在连茧,一個盤柜里面有兩個磁盤控制器、有磁盤添瓷,但是一條SCSI總線最多15塊磁盤梅屉,為了15塊磁盤值纱,使用兩個RAID控制器有點不值鳞贷。
下圖為一個機頭,它帶有一個擴展磁盤接口以及兩個控制器虐唠。
然后使用這個機頭連接JBOD擴展柜
總結(jié)一下:
機頭:帶有控制器的磁盤柜搀愧,就像是火車的機頭一樣,是提供動力的疆偿,機頭也可以有磁盤咱筛。
擴展柜:用于擴展容量的JBOD,就如同車廂杆故,沒有動力迅箩,但是需要有基本的供電和冷卻系統(tǒng)。
主機和磁盤陣列本是一家
盤陣控制器的主機化
可以說盤陣控制器本來但是一個簡單的主機系統(tǒng)
所以完全可以用一臺服務(wù)器來充當(dāng)存儲系統(tǒng)的控制器处铛。
插入幾張SCSI卡作為前端接口卡饲趋,若干SCSI卡作為后端連接磁盤箱的接口卡,然后設(shè)計軟件從/向后端讀寫數(shù)據(jù),經(jīng)過處理或者虛擬化后撤蟆,傳送給前端的主機服務(wù)器奕塑。
目前有兩種趨勢:
- 主機充當(dāng)控制器
- 高集成度的芯片作為控制器的核心
盤陣類型
按照前端-后端接口分,有
- SCSI-FC盤陣:前端是FC接口的盤陣家肯,后端是SCSI磁盤
- FC-FC盤陣
- SATA-FC盤陣
- SCSI-SCSI盤陣
后面會講到FC-FC盤陣龄砰,這是目前高端盤陣所采用的架構(gòu)。
SAN(Storage area network)
RAID 控制器相當(dāng)與路由器讨衣,也就是協(xié)議轉(zhuǎn)換器换棚。
SAN,存儲區(qū)域網(wǎng)
: 將磁盤放到主機外部反镇,存儲設(shè)備和主機之間形成了一個獨立的網(wǎng)絡(luò)