簡介
本檔案將說明什麼是光纖通道網路介面卡(FNIC)中止,並提供常見問題(FAQ)的答案。
什麼是中止?
光纖通道(FC)無法恢復丟棄或損壞的幀。當交換器發生問題時,會傳送Abort(ABTS)訊息。中止是可以由啟動器或目標發出的鏈路級服務。恢復由小型運算系統介面(SCSI)層處理,逾時60-120秒,視作業系統組態而定。
FNIC在堆疊中的位置?
在Linux/ESXi中,FNIC驅動程式位於作業系統(OS)供應商提供的libfc庫和實際硬體之間。 SCSI層向fnic驅動程式傳送請求,fnic驅動程式向韌體傳送scsi請求。韌體會生成乙太網光纖通道(FCoE)幀,並線上路上傳送。
FNIC是否因FNIC驅動程式而中止?
不可以,FNIC中止不一定是驅動程式問題,而是啟動程式(或目標)在超時期限內未收到幀且SCSI層終止交換並重試的通用消息。
什麼會導致FC中止?
FC中斷可能是由多種原因引起的,例如擁塞、低效能裝置(硬碟、儲存處理器、低速鏈路)、韌體問題、驅動程式問題、作業系統問題、鏈路丟失、鏈路關閉/開啟等。
由於中止是一般消息,第一步是縮小問題的範圍,提出以下問題:
- 它只出現在儲存結構的一端,還是同時出現在儲存結構的一端?
- 它發生在單台主機還是多台主機上?
- 如果有多台主機,發生問題的主機之間有何共同點?與未遇到問題的主機有何不同?
- 當與SAN目標上的特定儲存連線網路(SAN)目標或特定邏輯單元號(LUN)通訊時,是否會發生這種情況?
- 是否有其他SAN目標或LUN沒有遇到問題?如果是,這些工作LUN/目標與非工作目標有何區別?
- 是否存在發生問題的模式,例如在每週備份作業期間?
這些問題的答案可幫助您確定問題可能出現在哪裡,以及開始關注的位置。
中止的最常見原因是第1層問題,建議檢查從啟動程式到目標的整個路徑中是否有任何介面錯誤(如循環冗餘檢查(CRC)錯誤或擺動介面)。
中止的下一個常見原因是初始化/目標之間的鏈路超訂用或目標上的元件(如CPU和磁碟)超訂用。 這就是一個好的效能基線能派上用場的地方。
此中止消息表示在日誌中發現了什麼?
VMWare vmkernel log:
2017-07-27T14:54:10.590Z cpu6:33351)<7>fnic : 2 :: Abort Cmd called FCID 0x50a00, LUN 0xa TAG c8 flags 3
在本示例中,在2017-07-27T14:54:10 UTC時間,在vmhba2上為帶有主機作業系統SCSI標籤0xc8的LUN 0xa00上的FCID 0x50a00呼叫中止。
LUN ID 0xA 轉換為十進位制,確定LUN ID 10是作業系統嘗試與陣列上的LUN進行通訊。
標籤 0xc8 是請求的主機scsi層的IO標籤,可用於與VIC介面卡上的日誌條目匹配。
裝置例項2可以使用fnic-tracetool -i匹配vmware vmhba編號
/tmp # ./fnic-tracetool -i
HBA Device
--- ------
vmhba1 fnic1
vmhba2 fnic2
如果交換矩陣互聯以終端主機模式運行,FCID 0x50c00最多可以匹配北向交換矩陣交換機上fcns資料庫中的一個特定目標。
switch-A(nxos)# show fcns database fcid 0x50c00 detail vsan 1 ------------------------ VSAN:1 FCID:0x50c00 ------------------------ port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) node-wwn :50:00:00:00:ff:ff:ff:00 class :3 node-ip-addr :0.0.0.0 ipa :ff ff ff ff ff ff ff ff fc4-types:fc4_features :scsi-fcp:both 253 symbolic-port-name :SYMMETRIX::SAF- 3fB::FC::5876_272+::EMUL B80F0000 41234F44 94F360 07.27.15 11:14 symbolic-node-name :SYMMETRIX::FC::5876_272+ port-type :N port-ip-addr :0.0.0.0 fabric-port-wwn :20:1e:00:2a:6a:ea:00:00 hard-addr :0x000000 permanent-port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) connected interface :fc1/30
VIC介面卡日誌
170727-14:54:10.590661 ecom.ecom_main ecom(4:0): abort called for exch abort called for exch 431b, status 3 rx_id 0s_stat 0x0xmit_recvd 0x0burst_offset 0x0sgl_err 0x0 last_param 0x0 last_seq_cnt 0x0tot_bytes_exp 0xa00h_seq_cnt 0x0exch_type 0x1s_id 0x36010fd_id 0x50c00 host_tag 0xc8
- s_stat 0x0 =>未收到幀
- exch_type 0x1 => Exchange是入口且處於活動狀態
- 所需的總位元組數為=> tot_bytes_exp 0xa00
- 接收時間=> 0x0
- 設定burst_offset => 0x0
- 此請求的主機scsi層的IO標籤為=> 0xc8
- 源ID => 0x36010f
- 目標目標ID => 0x50c00
- 序列號=> 0x0
- rx_id => 0
狀態
-
狀態3 = write命令
-
狀態1 = read命令
交換類型(exch_type):
========================
EXCH_NOT_IN_USE = 0,
EXCH_INITIATOR_INGRESS_ACTIVE = 1
EXCH_TARGET_INGRESS_ACTIVE = 2
EXCH_EGRESS_ACTIVE = 3
EXCH_ABORTED = 4
EXCH_DEBUG = 5
交換狀態值(s_stat):
================================
0x00未收到任何幀
0x01至少收到一個幀
0x02序列仍處於活動狀態
0x04序列已完成
0x08傳輸序列初始化
0x10輸出序列處於活動狀態
0x20 rsp fr和主機條目已傳送
0x40交換資料序列掛起
中止和FCPIO不相符訊息之間的區別是什麼?
收到所有預期資料時,可能會發生FCPIO不匹配。
Total bytes xmit < expecte ddata length
160621-04:26:51.733255 ecom.ecom_main ecom(8:3): ox_id 41d4 rx_id 44b seq_cnt 7 seq_id 1 160621-04:26:52.066235 ecom.ecom_main ecom(8:1): fcpio_data_cnt_mismatch for exch 4202 status 1 rx_id5f7 s_stat 0x3 xmit_recvd 0x3000 burst_offset 0x3000 sgl_err 0x0 last_param 0x2800 last_seq_cnt 0x0 tot_bytes_exp 0x8000 h_seq_cnt 0x5 exch_type 0x0 s_id 0xab800 d_id 0xab800 host_tag 0x377
相關資訊