簡介
本檔案介紹光纖通道網路介面卡(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時間,對LUN 0xa上FCID 0x50a00(主機作業系統SCSI標籤0xc8)的vmhba2呼叫了中止。
LUN 辨識碼 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可以與北向矩陣交換機上fcid資料庫中的fcid特定目標進行匹配。
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
- 序列ID => 0x0
- rx_id => 0
狀態
交換型別(exch_type):
========================
EXCH_NOT_IN_USE = 0,
EXCH_INITIATOR_INGRESS_ACTIVE = 1
EXCH_TARGET_INGRESS_ACTIVE = 2
出口_活動= 3
EXCH_ABORTED = 4
EXCH_DEBUG = 5
交換狀態值(s_stat)
================================
0x00未收到任何幀
0x01至少收到一個影格
0x02序列仍處於活動狀態
0x04序列已完成
0x08傳輸序列初始化
0x10出口序列處於活動狀態
0x20 rsp fr和主機條目已傳送
0x40 exch資料序列掛起
中止消息和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
相關資訊