SAS Expander的路由表概觀

  • You do not have permissions to view this page - please try logging in.
內容表格
沒有標頭

版本為 10:17, 20 Feb 2025

到這個版本。

返回到 版本存檔.

查閱目前版本

SAS Expander標準允許路由表的建立, 這個作用在於面臨路徑選擇的時候, 必須要依賴路由表的使用. 由於direct routing和subtractive routing無法應付這樣的情況.
expander_routing.gif
從上圖這個案例可以看到三種路由算法的使用, 一個Edge Expander Device Set可以看做是一個could. Expander B和C的downstream直接銜接end devices, 所以使用no routing的direct routing建立通訊即可. 當Expander B和C往upstream通訊的時候, 由於這並非存在於本身的既有目的端位址集合, 也就是說他必須要跨Expander通訊, 例如一個來自Expander C的請求發送至Expander B的目的端-某個target port對應, 由於Expander B上某個target port的SAS Address是不可能存在於Expander C上, 因此使用Subtractive routing來轉發送到Expander C.

No routing的direct routing和Subtractive routing都可以看出一種共通的情況, 那就是他們都不會面臨路徑選擇, 也就是只會有1對1的情況下, 當遇到路徑選擇的時候, 前面兩個路由算法就不適合使用了. 在SAS Expander標準下便改使用一種routing table紀錄的方式來提供更大範圍的裝置數量存取. 上圖的案例, 在Expander A轉發送請求, 面對downstream發生了路徑選擇的情況, 這時候無法去判別請求的目的端是屬於哪一個Expander(B or C???). 改用routing table記錄每個downstream的SAS Address便可解決這個問題, 也就是使用table routing算法. 下面另一個不太好看的HP案例可以看到使用了routing table進行downstream的SAS Address紀錄.
hp_table_routing.gif
在說明這個案例的routing table應用以前, 必須要先知道routing table的綱要是如何定義的, 也就是table的metadata. 來自HP的一份SAS標準文件提供這方面的紀載, 如下所示:
 routing_table_definition.gif
首先說明table上的row與column的header定義, 在每個column的header定義了在Expander上每個實體輸出的對應端口賦予的唯一識別代碼. N<=number of phys -1, 由於索引(index)是從0開始計算, 所以必須減1; 而row的header就是對於每個的路由索引(route index), 路由索引值集終值會是索引值集合數量去減1得出, 因為索引值要從0開始計算.Expander route entry代表抵達的路由位址, 由column與row定址過後取得, entry包含了被蒐集的SAS Address以及開關位元資訊.
1. column header: 對於Expander上每個實體輸出賦予唯一的識別碼
2. row header: 對應到expander route entry所在位址的Expander路由索引(route index)
3. expander route entry: 透過column和row定址的每個Expander路由個體(route entry). 包含SAS Address和開關位元.

說明了table的綱要以後, 或許概念上可能還迷迷糊糊, 還是有很多疑問, 這邊將透過一個範例來說明table如何做routing, 使得在概念上更為清晰. 自製的一個範例圖如下所示, 這個範例圖比HP的案例較為簡單:
table_routing_sample1.gif
看到這張範例圖或許會有一個疑問, Es1-M是甚麼意思呢? T0-L是甚麼? Mf又是做甚麼意思? 一整個就是可能完全看不懂! 沒關係, 分別來解釋這些代號的意義.
expander_phy.gif
在上圖這個橢圓圖案代表expander或著end device對應的合法輸出(eligible output PHY), 裡面的關鍵詞彙有不同的意義存在. 來分別列舉說明這些詞彙.
1. type: 表示合法輸出的類型, 例如T表示Terminal, 終端設備, 也就是end device; 而E就是Expander了
2. routing: 中括號刮起來表示optional, 這個意指所使用的routing method. 例如s表示使用subtractive routing; t則是table routing. 如果不存在為連接end device, 使用no routing的direct routing.
3. index: 這個就是table上記載的expander route index
4. entry: 同樣表示table上的expander route entry. 這個entry必定是合法的.
了解PHY物件所代表的含意以後, 在看方框圖案所代表的涵義.

expander_entry.gif
方框圖案本身就代表這個entry, 也就是硬體的實體, 他可能是end device或著Expander, 是抽象化的觀點. 這個entry物件的重點在於有包含SAS Address和開關位元的資訊, 用來對應table的expander route entry.

Powered by MindTouch Core