【大話儲存】學習筆記(6章), 磁碟陣列

weixin_34234823發表於2018-02-05

磁碟陣列

JBOD

在過去一臺伺服器只能放兩三塊盤,遠遠不能滿足要求,所以可以把盤放到主機的外面。也就是說專門拿一個箱子,所有磁碟都放在機箱裡面,而且獨立電源和散熱,介面方面,內部其實就是一條SCSI線纜,這就形成了磁碟櫃(Just a Bound Of Disk , JBOD),顧名思義,實際上就是“一串磁碟”

1323506-bcbb850708639578.png
image.png

獨立的外部磁碟陣列

JBOD的內部不含RAID卡,這樣,如果要調整RAID的話,還需要重啟主機,影響主機裡面的應用。那麼最好是可以把RAID功能做到磁碟箱內部。

如下圖所示,凡是自帶RAID控制器的盤櫃就叫磁碟陣列。通過外部的SCSI介面,連線到主機上端的SCSI埠。

1323506-c6708875ee5d74ed.png
image.png

主機的SCSI控制器與盤陣SCSI控制器相比,盤陣的SCSI控制器作為Target模式,被主機SCSI控制器操控。

而在右邊的SCSI匯流排上,盤陣的S2控制器作為Initiator模式,佔據主動權。磁碟均為SCSI Target,受控於Initiator

前端和後端

對盤陣來說,左邊為前端,面向主機提供對外服務
面向自己管理的磁碟就變成了後端。也就是右邊的部分。

內部介面和外部介面

  • 內部介面:盤陣RAID控制器連線內部磁碟時用的介面:可以連線IDE磁碟等
  • 外部介面:盤陣控制器對於主機端,提供什麼介面,

內外介面可以不一樣,比如內部連線IDE磁碟,外部用SCSI介面連線主機。(僅限於盤陣,盤櫃必須一樣)

因為盤陣控制器是一個虛擬化引擎,可以不一致,即使內部是IDE的,也可以向主機報告有多少LUN

多外部介面

有多個介面是為了連線多臺的主機。

每個由盤陣RAID控制器生成的邏輯磁碟,可以通過設定只分配到其中一個口,連線到其他口的主機就不會看到這個LUN。

也可以把一個LUN同時分配到兩個口,兩臺主機對一個LUN寫資料,容易造成資料不一致。

關於LUN

LUN是SCSI ID的更細一級的地址號。每個SCSI ID下面可有更多的LUN ID 。

大型磁碟陣列有幾千個虛擬磁碟,但是每條SCSI匯流排最多允許16個裝置,所以為每個虛擬磁碟分配一個SCSI ID不夠用。

可以在一個SCSI ID虛擬多個LUN地址,每個LUN地址對應一個虛擬磁碟。

LUN:硬體層次生成的虛擬磁碟統稱為LUN。
:軟體生成的虛擬磁碟

雙控制器磁碟陣列

如果控制器只有一個,則會存在單點故障,所以至少有兩個控制器。雙控制器需要相互通訊,一般使用PCI匯流排進行互聯。

而兩個控制器的協同方式有兩種,Active-Standby 、Dual-Active

Active-Standby(HA)

HA方式:兩個控制器同一時刻只有一個在工作,另一個在等待、同步和監控狀態,只是在故障以後才接管。

兩控制器各佔一個ID 。剩餘14個ID給磁碟,

為了預防腦分裂,備份控制器在接管之前需要將主控斷電或者重啟,釋放其匯流排使用權,然後接管前端和後端匯流排。

主機端必須使用兩個SCSI介面卡分別連線到盤陣上的控制器,但是這樣做,主機端必須通過某種方式感知到HA策略,並在故障發生時切換。

對於FC盤陣來說,使用雙控及主機端使用雙FC適配卡非常普遍。

Dual-Active

所謂Dual-active,也叫控制器雙活,指的是兩個控制器同時工作,對所有後端匯流排有通路,但是每個匯流排平時只被一個控制器管理,另一個不觸動
可以將後端一半數量的匯流排交由一個控制器管理,另一半交由另一個控制器管理。一旦損壞,可以立刻接管所有的匯流排,比Active-Standby更高效。

腦分裂Split Brain

腦裂指的是控制器之間的通路出現了問題。也就是說兩個控制器其實是正常的,但是檢測不到對方的 存在。所以都會嘗試接管所有的匯流排。類似於精神分裂。

解決方案:
加入一個仲裁者

  • 使用兩個控制器都能寫到的硬碟,向其寫入自己的仲裁資訊,如果腦分裂,就看誰在上面最後寫了資訊。
  • 電源控制器:向電源控制器傳送訊號,讓對方重啟並進入Standby

接管了匯流排的控制器一般會對匯流排上所有的磁碟進行SCSI Reserve操作,即預訂操作。

匯流排上所有目標裝置一旦被預訂,便不再接受其他控制器的IO請求。

連線多個擴充套件櫃

到現在,一個盤櫃裡面有兩個磁碟控制器、有磁碟,但是一條SCSI匯流排最多15塊磁碟,為了15塊磁碟,使用兩個RAID控制器有點不值。

下圖為一個機頭,它帶有一個擴充套件磁碟介面以及兩個控制器。

1323506-128ed7fa1ba8cefe.png
image.png

然後使用這個機頭連線JBOD擴充套件櫃

1323506-cd6739cd9108e529.png
image.png

總結一下:

機頭:帶有控制器的磁碟櫃,就像是火車的機頭一樣,是提供動力的,機頭也可以有磁碟。
擴充套件櫃:用於擴充套件容量的JBOD,就如同車廂,沒有動力,但是需要有基本的供電和冷卻系統。

主機和磁碟陣列本是一家

盤陣控制器的主機化

可以說盤陣控制器本來但是一個簡單的主機系統

所以完全可以用一臺伺服器來充當儲存系統的控制器。

插入幾張SCSI卡作為前端介面卡,若干SCSI卡作為後端連線磁碟箱的介面卡,然後設計軟體從/向後端讀寫資料,經過處理或者虛擬化後,傳送給前端的主機伺服器。

目前有兩種趨勢:

  • 主機充當控制器
  • 高整合度的晶片作為控制器的核心

盤陣型別

按照前端-後端介面分,有

  • SCSI-FC盤陣:前端是FC介面的盤陣,後端是SCSI磁碟
  • FC-FC盤陣
  • SATA-FC盤陣
  • SCSI-SCSI盤陣

後面會講到FC-FC盤陣,這是目前高階盤陣所採用的架構。

SAN(Storage area network)

RAID 控制器相當與路由器,也就是協議轉換器。

SAN,儲存區域網: 將磁碟放到主機外部,儲存裝置和主機之間形成了一個獨立的網路

1323506-b8ef4f1af760ab7d.png
image.png

相關文章