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


磁盤陣列

JBOD

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

image.png

獨立的外部磁盤陣列

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

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

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控制器有點不值。

下圖為一個機頭,它帶有一個擴展磁盤接口以及兩個控制器。

image.png

然后使用這個機頭連接JBOD擴展櫃

image.png
總結一下:

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

主機和磁盤陣列本是一家

盤陣控制器的主機化

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

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

插入幾張SCSI卡作為前端接口卡,若干SCSI卡作為后端連接磁盤箱的接口卡,然后設計軟件從/向后端讀寫數據,經過處理或者虛擬化后,傳送給前端的主機服務器。

目前有兩種趨勢:

  • 主機充當控制器
  • 高集成度的芯片作為控制器的核心

盤陣類型

按照前端-后端接口分,有

  • SCSI-FC盤陣:前端是FC接口的盤陣,后端是SCSI磁盤
  • FC-FC盤陣
  • SATA-FC盤陣
  • SCSI-SCSI盤陣

后面會講到FC-FC盤陣,這是目前高端盤陣所采用的架構。

SAN(Storage area network)

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

SAN,存儲區域網: 將磁盤放到主機外部,存儲設備和主機之間形成了一個獨立的網絡

image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM