主機沒有Login到存儲,交換機上需要做哪些檢查?

主機沒有Login到存儲是一個比較常見的故障,故障多發於主機新上線,或者是重啓後。例如在Unisphere中,顯示Host狀態是”Registered: Yes; Logged In: No”。

Connectivity1.jpg

當此狀況發生時,主機到存儲的部分路徑(Path)狀態會變爲不可用,這對於性能以及可靠性都會有負面的影響。主機和存儲管理員在檢查配置後往往發現沒有任何設置錯誤。作爲SAN網絡的數據傳輸基礎架構,FC交換機是否正確工作自然是一個需要重點檢查的對象。這篇文章將對FC交換機的配置進行重點講解。

 

首先讓我們來了解一下兩個設備通訊初始化的過程,這裏借用博科BCFA官方培訓文檔中的流程圖:

 

Connectivity2.jpg

*注:通常來說,末端設備(主機的HBA口,或存儲的前端口)端口類型是N_Port,交換機側的端口類型是F_Port

 


從圖中可以看到,初始化過程可以分爲5個階段,下面我們逐個階段進行講解。

 

Step 1  鏈路初始化
當設備連上交換機後,首先需要進行鏈路的初始化,同步信號,協商端口速率。
在這個階段,必須保證交換機接收到的光強度足夠。接受光強度就如交談時聽到的聲音音量,強度過低就會導致溝通出現問題。
可以通過登陸交換機命令行,執行以下命令確認:

 


博科交換機
sfpshow [slot/]port -f1

 


思科交換機
show interface fc x/y transceiver details

 


(注1-f參數需要FOS 6.3及更新固件來支持)

 


紅色部分請替換爲實際的插槽/端口號,下同。

3.jpg

 

輸出結果中,RX即爲交換機側的接收光功率,EMC推薦RX值不要低於-7dBm(注意是負值,所以數字小反而值大,一般應該在-2-5之間),否則,請檢查光纖線、配線架和末端設備。

 


其次需要確定末端設備和交換機支持的速率匹配。對於交換機,一般來說自協商模式下支持的速率是SFP模塊/交換機端口最大速率及向下兩檔,以16G交換機16G SFP爲例,自協商支持4/8/16Gbps三種端口速率,末端設備必須至少支持這些速率中的一種;如果手動設置了交換機端口速率,也需要確保末端設備能夠工作在此速率下。

 


同樣,通過上述兩條命令來顯示當前SFP支持的速率:


博科交換機

4.jpg

 

思科交換機

5.jpg

 

達成以上兩點後,一般鏈路就能夠起來了。

 

Step 2  FLOGI
接下來,末端設備會發起FLOGIFabric Login),這類似於IP網絡中的DHCP。設備向交換機Fabric Login Server(地址0xFFFFFE)發送申請,交換機回覆一個24bitFC地址給設備,用於路由,類似於IP地址。

 

Connectivity6.jpg

在交換機命令行下,通過以下命令來確認:

 


博科交換機
portloginshow [slot/]port
Example:
DS-5100B:admin> portloginshow 5
Type  PID     World Wide Name        credit df_sz cos
=====================================================
fe  010500 50:06:01:6c:3c:e0:32:e7 8  2048   8 scr=0x3
ff 010500 50:06:01:6c:3c:e0:32:e7     4   128 8  d_id=FFFFFC


思科交換機
show flogi database interface fc x/y details
Example:
`show flogi database details`
--------------------------------------------------------------------------------------------
INTERFACE        VSAN    FCID           PORT NAME               NODE NAME            FLAGS  
--------------------------------------------------------------------------------------------
fc2/20           700   0x290140  50:00:09:74:08:31:12:34 50:00:09:74:08:31:56:78 P
如果能夠返回末端設備的PWWNFC地址,那麼FLOGI就成功了。

 

Step 3  PLOGIName Server
隨後,末端設備會向交換機發起PLOGIPort Login),交換機將設備的信息寫入Name Server(交換機上的服務,地址0xFFFFFC),這些信息包括PWWNNWWNFC4類型等等。

 

Connectivity7.jpg

隨後末端設備會向Fabric Controller(同樣也是交換機上的服務,地址0xFFFFFD)發起SCRState Change Registration),申請接收RSCNRegistered State Change Notification,註冊狀態更改通知。

 

Connectivity8.jpg

之後,每當FC網絡拓撲發生改變或者設備上下線後,交換機會向已完成SCR的設備發出通知)。

 

Connectivity9.jpg

在交換機命令行下,通過以下命令來確認PLOGIName Server是否成功:


博科交換機
nsshow -r
Example:
Type Pid    COS     PortName                NodeName                 SCR

N    030000; 3;50:00:09:74:08:35:12:34;50:00:09:74:08:35:56:78; 0x00000003
FC4s: FCP 
PortSymb: [94] "SYMMETRIX::000292601357::RAF- 7fA::FC::5875_286+::EMUL F80F0000 381AA71D 802DB0 07.02.13 14:26"
NodeSymb: [38] "SYMMETRIX::000292601357::FC::5875_286+"
Fabric Port Name: 20:00:00:05:33:7d:90:ab 
Permanent Port Name: 50:00:09:74:08:35:12:34
Port Index: 0
Share Area: No
Device Shared in Other AD: No
Redirect: No 
Partial: No
LSAN: No


思科交換機
show fcns database detail vsan x 
Example:
------------------------
VSAN:100   FCID:0x290000
------------------------
port-wwn (vendor)           :50:06:04:8c:4a:37:ab:cd (EMC)       
node-wwn :50:06:04:8c:4a:37:ab:cd
class                       :3
node-ip-addr                :0.0.0.0
ipa                         :ff ff ff ff ff ff ff ff
fc4-types:fc4_features      :scsi-fcp 253 
symbolic-port-name          :EMC SYMMETRIX 000287892468 SAF- 4cB EMUL B61F0000 1294AB11 3D1900 2C97C4 04.20.10 12:24 5671_081  
symbolic-node-name          :EMC SYMMETRIX 000287892468 SAF- 4cB EMUL B61F0000 1294AB11 3D1900 2C97C4 04.20.10 12:24 5671_081  
port-type                   :N 
port-ip-addr                :0.0.0.0
fabric-port-wwn :20:07:00:05:73:f0:98:76
hard-addr                   :0x000000
permanent-port-wwn (vendor) :50:06:04:8c:4a:37:ab:cd (EMC)       
connected interface         :fc1/9
switch name (IP address)    :switch01 (1.2.3.4)

Name Server的數據庫中,我們可以得到端口所連末端設備的PWWN/NWWN甚至廠商、設備類型、驅動等等信息。

 

PLOGIName Server的過程中,末端設備Initiator(通常是主機)會發起查詢,Name Server根據Zoning的配置,回覆該末端設備可以訪問的節點信息。只有在同一個Zone中的成員纔可以相互通訊。如果Zoning已經開啓,而一個設備沒有在任何Zone中,那麼它就不能和任何節點通訊。如果Zoning沒有開啓,那麼所有的節點都在一個默認的大Zone中,節點是否可以與任意其他節點通訊就取決於默認Zone的策略。

在交換機命令行下,通過以下命令來檢查Zoning信息:

 


博科交換機
cfgactvshow
Example:
Effective configuration:                 //已經激活的cfg信息
cfg: Brocade                                    //cfg名字爲Brocade
zone:  VER093046                             //cfg包含名爲VER093046Zone,其成員如下
10:00:00:05:33:90:ab:7e
10:00:00:05:33:90:ab:7f
50:06:01:67:3e:a0:04:4a
50:06:01:6e:3e:a0:04:4a


思科交換機
show zoneset active vsan x
Example:
`show zoneset active vsan 100`
zoneset name Fabric_A vsan 100                                                              //Zoneset名爲Fabric_A
zone name Mercury_A_VNX1408_SPA0_SPB1 vsan 100                              //Zone名爲Mercury_A_VNX1408_SPA0_SPB1
* fcid 0x370000 [pwwn 50:06:01:60:47:20:12:34]                               //Zone成員的fcidPWWN
* fcid 0x370100 [pwwn 50:06:01:69:47:20:12:34]                               //*表示FLOGI成功
* fcid 0x370200 [pwwn 10:00:8c:7c:ff:21:ab:cd]
Zone時,EMC推薦使用PWWN作爲成員,並且每個Zone只包含一個Initator(通常情況下理解爲一個HBA端口),以避免不同Initiator之間互相干擾。

 

Step 4&5  端到端PLOGIPRIL
當末端設備完成FLOGI/PLOGI/SCR到交換機,並且Zoning的配置也正確後,Initiator(主機)和Target(存儲)之間在FC Layer2層面上已經可以互相通訊。


Initiator需要再次發起PLOGITarget,成功後再發起PRILProcess Login),爲上層協議(Upper Layer Protocol)搭建環境,FC ULP一般爲SCSI在此階段,交換機只是轉發FC幀,對端到端的PLOGI/PRIL不做任何干預。

綜上:
交換機參與了端到端通訊初始化過程的13階段。當發現主機沒有Login到存儲時,在FC交換機上要檢查的內容爲:

 


1. 末端設備是否分配到了FC地址(FLOGI成功)
2. 末端設備是否已經註冊到Name ServerPLOGIName Server成功)
3. Zoning是否配置正確並且已經激活生效
4. 交換機端口是否看到丟幀


如果以上4項都沒有問題,那麼基本可以排除交換機的問題,需要在主機、存儲上繼續查找原因(驅動、固件、兼容性等等)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章