المقدمة
يوضح هذا المستند ما تعنيه عملية إجهاض بطاقة واجهة شبكة القناة الليفية (FNIC) ويوفر إجابات على الأسئلة المتداولة (FAQ).
ما هو الاجهاض؟
لا تتضمن القناة الليفية (FC) أي وسيلة لاسترداد الإطارات التالفة أو حالات السقوط. يتم إرسال رسالة إجهاض (ABTS) عندما تكون هناك مشاكل مع تبادل. الإجهاض هو خدمة مستوى الارتباط التي يمكن إصدارها من قبل البادئ أو الهدف. تتم معالجة عملية الاسترداد بواسطة طبقة واجهة نظام الكمبيوتر الصغيرة (SCSI) ذات حالات انتهاء المهلة من 60 إلى 120 ثانية والتي تعتمد على تكوين نظام التشغيل.
أين يمكن وضع FNIC في المكدس؟
في حالة نظام التشغيل Linux/ESXi، يجلس برنامج تشغيل FNIC بين مكتبات LIBFC التي يوفرها مورد نظام التشغيل والأجهزة الفعلية. ترسل طبقة SCSI طلبا إلى برنامج تشغيل بطاقة واجهة الشبكة (NIC)، ويرسل برنامج تشغيل بطاقة واجهة الشبكة (FNIC) طلب SCSI إلى البرنامج الثابت. يعمل البرنامج الثابت على إنشاء إطارات تعمل عبر القنوات الليفية عبر شبكة إيثرنت (FCoE)، كما أنه يرسل عبر السلك.
هل عمليات إجهاض FNIC ناتجة عن برنامج تشغيل FNIC؟
لا، عمليات إجهاض FNIC ليست بالضرورة مشكلة في برنامج التشغيل بل هي رسالة عامة تفيد بأن المبادر (أو الهدف) لم يستلم إطارا ضمن فترة المهلة وأن طبقة SCSI تنهي التبادل وإعادة المحاولة.
ما الذي يمكن أن يسبب إجهاض FC؟
يمكن أن تحدث حالات إجهاض القناة الليفية لأسباب مختلفة مثل الازدحام، الأجهزة منخفضة الأداء (القرص الصلب، معالج التخزين، الروابط منخفضة السرعة)، مشكلات البرامج الثابتة، مشكلات برنامج التشغيل، مشكلات نظام التشغيل، فقدان الارتباط، الاتصال لأسفل/لأعلى، وهكذا.
بما أن عمليات الإجهاض هي رسائل عامة، فإن الخطوة الأولى هي تضييق نطاق المشكلة باستخدام أسئلة مثل:
- هل يحدث ذلك على جانب واحد من بنية التخزين فقط أم على كليهما؟
- هل يحدث ذلك على مضيف واحد أو عدة مضيفين؟
- إذا كانت هناك أجهزة مضيفة متعددة، فما هو المشترك بين الأجهزة المضيفة التي لديها مشكلة وما هو المختلف عن الأجهزة المضيفة التي لا تواجه مشكلة؟
- هل يحدث ذلك عند إتصاله بهدف شبكة تخزين متصلة (SAN) محدد أو رقم وحدة منطقي محدد (LUN) على هدف شبكة التخزين (SAN)؟
- هل هناك أهداف أخرى لشبكة منطقة التخزين (SAN) أو وحدات LUN لا تواجه مشكلة وإذا كان الأمر كذلك فما هي الاختلافات مع وحدات LUN/الأهداف العاملة هذه مقابل الأهداف غير العاملة؟
- هل هناك نمط لوقت حدوث المشكلة كما هو الحال أثناء وظائف النسخ الاحتياطي الأسبوعية؟
تساعدك الاجوبة عن هذه الاسئلة على تحديد المكان الذي قد توجد فيه المشكلة والمكان الذي تبدأ فيه تركيزك.
أكثر الأسباب شيوعا للإجهاض هو بسبب مشاكل الطبقة 1 ومن المستحسن فحص المسار بأكمله من البداية إلى الهدف لأي أخطاء واجهة مثل أخطاء التحقق الدوري من التكرار (CRC) أو واجهات رفرفة.
يرجع السبب التالي الشائع للإجهاض إلى الاشتراك الزائد في الارتباطات بين التهيئة/الهدف أو الاشتراك الزائد في المكونات الموجودة على الهدف مثل وحدة المعالجة المركزية والقرص. وهنا يأتي دور خط الأساس للأداء الجيد.
ما الذي تشير إليه هذه الرسالة التي تم إيقافها قبل الاكتمال في السجل؟
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 بالتوقيت العالمي المنسق، تم إستدعاء عملية إجهاض على VMHBA2 ل FCID 0x50a00 على LUN 0xa مع بطاقة SCSI لنظام التشغيل المضيف 0xc8.
الوحدة المنطقية معرف 0xa تم تحويله إلى رقم عشري لتحديد معرف LUN رقم 10 الذي حاول نظام التشغيل الاتصال به في الصفيف.
العلامة 0xc8 هو علامة إدخال/إخراج طبقة SCSI المضيف للطلب الذي يمكن إستخدامه للمطابقة مع إدخالات السجل على محول VIC.
يمكن تطابق مثيل الجهاز 2 إلى رقم VMHBA من VMware باستخدام fnic-tracetool -i
/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 المضيفة لهذا الطلب هي => 0xc8
- معرف المصدر => 0x36010f
- معرف الهدف الأقدم => 0x50c00
- معرف Seq => 0x0
- rx_id => 0
الحالة
-
وضع 3 = أمر كتابة
-
الحالة 1 = أمر قراءة
نوع Exchange(exch_type):
======================
EXCH_NOT_IN_USE = 0،
EXCH_INITIATOR_INGRESS_ACTIVE = 1
EXCH_TARGET_INGRESS_ACTIVE = 2
EXCH_EGRESS_ACTIVE = 3
EXCH_ABORG = 4
EXCH_DEBUG = 5
قيم حالة Exchange(s_stat)
================================
0x00 لم يتم إستلام إطارات
0x01 يتم تسجيل إطار واحد على الأقل
التسلسل 0x02 لا يزال نشطا
اكتمال تسلسل 0x04
تسلسل النقل 0x08 بالداخل
0x10 يكون تسلسل الخروج نشطا
تم إرسال إرسال إرسال بروتوكول RSP بسرعة 0x20 وإدخال المضيف
تسلسل بيانات EXCH المعلق ل 0x40
ما هو الفرق بين رسالة Abort ورسالة 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
معلومات ذات صلة