LIO (هدف SCSI)

يُعد Linux -IO ( LIO ) تطبيقًا مفتوح المصدر لواجهة نظام الكمبيوتر الصغيرة (SCSI) مضمنًا في نواة Linux . [ 1 ]

بخلاف المُهيئين، الذين يبدأون الجلسات، يعمل LIO كهدف، حيث يقدم رقم وحدة منطقية واحد أو أكثر (LUNs) إلى مُهيئ SCSI ، ويتلقى أوامر SCSI، ويدير عمليات نقل البيانات للإدخال/الإخراج.

يدعم LIO مجموعة واسعة من بروتوكولات التخزين وشبكات النقل، بما في ذلك على سبيل المثال لا الحصر Fibre Channel over Ethernet (FCoE) و Fibre Channel و IEEE 1394 و iSCSI .

يتم استخدامه في العديد من توزيعات لينكس وهو خيار شائع لبيئات الحوسبة السحابية نظرًا لتكامله مع أدوات مثل QEMU / KVM و libvirt و OpenStack .

تتولى شركة داتيرا ، وهي شركة متخصصة في حلول التخزين مقرها وادي السيليكون، صيانة مشروع LIO. في 15 يناير 2011، تم دمج LIO في نواة لينكس الرئيسية مع الإصدار 2.6.38، الذي صدر رسميًا في 14 مارس 2011. [ 2 ] [ 3 ] وقد أضافت الإصدارات اللاحقة من نواة لينكس وحدات برمجية إضافية لتعزيز توافقها.

يتنافس LIO مع وحدات SCSI المستهدفة الأخرى في بيئة لينكس. يُعد إطار عمل SCSI المستهدف (SCST) [ 4 ] بديلاً بارزاً لوظائف SCSI المستهدفة العامة، بينما بالنسبة لأهداف iSCSI الخاصة، فإن إطار عمل iSCSI Enterprise Target (IET) وإطار عمل SCSI المستهدف (STGT) الأقدمين يحظيان أيضاً باعتماد واسع في هذا المجال. [ 5 ] [ 6 ]

خلفية

يوفر معيار SCSI تجريدًا دلاليًا قابلًا للتوسيع لأجهزة تخزين بيانات الحاسوب ، ويُستخدم مع أنظمة تخزين البيانات. تُحدد معايير SCSI T10 [ 7 ] الأوامر [ 8 ] وبروتوكولات معالج أوامر SCSI (المرسلة في حزم بيانات SCSI CDB )، والواجهات الكهربائية والبصرية لمختلف التطبيقات.

مُهيئ SCSI هو نقطة نهاية تُنشئ جلسة SCSI . أما هدف SCSI فهو نقطة النهاية التي تنتظر أوامر المُهيئ وتُنفذ عمليات نقل بيانات الإدخال/الإخراج المطلوبة . عادةً ما يُصدّر هدف SCSI وحدة تخزين منطقية واحدة أو أكثر (LUNs) ليعمل عليها المُهيئون.

تُنفّذ وحدة LIO Linux SCSI Target هدف SCSI عامًا يوفر وصولًا عن بُعد إلى معظم أنواع أجهزة تخزين البيانات عبر جميع بنى التخزين والبروتوكولات الشائعة. لا تصل LIO إلى البيانات مباشرةً ولا تتواصل مع التطبيقات مباشرةً.

بنيان

هندسة LIO

تعتمد LIO على بنية معيارية وقابلة للتوسيع حول محرك معالجة أوامر SCSI متوازي. [ 9 ]

محرك LIO SCSI الهدف مستقل عن وحدات النسيج أو أنواع التخزين الخلفي المحددة. وبالتالي، يدعم LIO دمج أي عدد من وحدات النسيج والتخزين الخلفي في آن واحد. يُنفذ محرك LIO SCSI الهدف مجموعة شاملة من ميزات SPC-3/SPC-4 [ 10 ] مع دعم ميزات متطورة، بما في ذلك الحجوزات الدائمة SCSI-3/SCSI-4 (PRs)، وتعيين الوحدات المنطقية غير المتماثل SCSI-4 (ALUA)، وواجهات برمجة تطبيقات VMware vSphere لتكامل المصفوفات (VAAI)، وT10 DIF [ 11 ] ، وغيرها.

يمكن تكوين LIO عبر واجهة برمجة تطبيقات النواة المستندة إلى configfs [ 12 ] ، ويمكن إدارتها عبر واجهة سطر الأوامر وواجهة برمجة التطبيقات ( targetcli ).

هدف SCSI

لا يقتصر مفهوم هدف SCSI على الأجهزة المادية المتصلة بناقل SCSI، بل يوفر نموذجًا عامًا لجميع أجهزة الاستقبال على بنية SCSI المنطقية. ويشمل ذلك جلسات SCSI عبر وصلات بينية لا تحتوي على ناقل SCSI مادي على الإطلاق. من الناحية النظرية، يوفر هدف SCSI خدمة أو خادم تخزين كتل عام في هذا السيناريو.

المخازن الخلفية

توفر وحدات التخزين الخلفية لهدف SCSI إمكانية الوصول العام إلى أجهزة تخزين البيانات عن طريق استيرادها عبر برامج تشغيل الأجهزة المناسبة. ولا يشترط أن تكون وحدات التخزين الخلفية أجهزة SCSI فعلية.

أهم أنواع الوسائط المستخدمة في المخازن الخلفية هي:

  • وحدة التخزين الكتلية : يسمح برنامج تشغيل وحدة التخزين الكتلية باستخدام وحدات التخزين الكتلية الخام في نظام لينكس كوحدات تخزين احتياطية للتصدير عبر LIO. يشمل ذلك الأجهزة المادية، مثل محركات الأقراص الصلبة (HDD) ، ومحركات الأقراص ذات الحالة الصلبة (SSD) ، وأقراص CD / DVD ، وأقراص RAM ، وما إلى ذلك، والأجهزة المنطقية، مثل وحدات تخزين RAID البرمجية أو المادية أو وحدات تخزين LVM .
  • الملف : يسمح برنامج تشغيل الملفات باستخدام الملفات التي يمكن أن توجد في أي نظام ملفات Linux أو نظام ملفات مجمع كمخازن احتياطية للتصدير عبر LIO.
  • الخام : يسمح برنامج التشغيل الخام باستخدام الذاكرة غير المهيكلة كمخازن خلفية للتصدير عبر LIO.

ونتيجة لذلك، يوفر LIO نموذجًا عامًا لتصدير تخزين الكتل.

وحدات النسيج

تُنفّذ وحدات النسيج الواجهة الأمامية لهدف SCSI من خلال تغليف وتجريد خصائص مختلف أنواع الربط البيني المدعومة. تتوفر وحدات النسيج التالية.

كلية التميز في كلية التميز

التخزين المدمج وشبكة المنطقة المحلية

تتيح وحدة نقل البيانات عبر بروتوكول قناة الألياف (FCoE) نقل بيانات بروتوكول قناة الألياف (FCP) عبر شبكات إيثرنت بدون فقدان . وتُعدّ هذه المواصفة، المدعومة من قبل عدد كبير من موردي الشبكات والتخزين، جزءًا من معيار اللجنة الفنية T11 FC-BB-5. [ 13 ]

يدعم نظام LIO جميع بطاقات الشبكة القياسية لشبكة الإيثرنت.

تم تطوير وحدة FCoE fabric من قبل شركتي Cisco و Intel ، وتم إصدارها مع Linux 3.0 في 21 يوليو 2011. [ 14 ]

قناة الألياف

تُعد تقنية قناة الألياف تقنية شبكات عالية السرعة تُستخدم بشكل أساسي لشبكات التخزين. وقد تم توحيدها في اللجنة الفنية T11 [ 15 ] التابعة للجنة الدولية لمعايير تكنولوجيا المعلومات (INCITS).

تدعم وحدة QLogic Fibre Channel سرعات 4 و 8 جيجابت مع محولات المضيف التالية:

  • سلسلة QLogic 2400 (QLx246x)، 4GFC
  • سلسلة QLogic 2500 (QLE256x)، 8GFC (مؤهلة بالكامل)

تم إصدار وحدة نسيج قناة الألياف [ 16 ] وبرنامج التشغيل منخفض المستوى [ 17 ] (LLD) مع نظام التشغيل Linux 3.5 في 21 يوليو 2012. [ 18 ]

مع نظام التشغيل لينكس 3.9، يتم أيضًا دعم محولات المضيف QLogic ومحولات الشبكة التالية:

  • سلسلة QLogic 2600 (QLE266x)، 16GFC، SR-IOV
  • سلسلة QLogic 8300 (QLE834x)، 16GFS/10 GbE، PCIe Gen3 SR-IOV
  • سلسلة QLogic 8100 (QLE81xx)، 8GFC/10 GbE، PCIe Gen2

وهذا يجعل LIO أول هدف مفتوح المصدر يدعم قناة الألياف بسرعة 16 جيجابت.

IEEE 1394

جهاز LIO Firewire Target لنظام التشغيل Mac OS X

تتيح وحدة FireWire SBP-2 لشبكة Linux تصدير أجهزة التخزين المحلية عبر IEEE 1394 ، بحيث يمكن للأنظمة الأخرى تركيبها كجهاز تخزين IEEE 1394 عادي.

يُعدّ معيار IEEE 1394 معيارًا لواجهة ناقل تسلسلي للاتصالات عالية السرعة ونقل البيانات في الوقت الحقيقي المتزامن. وقد طوّرته شركة آبل تحت اسم "FireWire" في أواخر الثمانينيات وأوائل التسعينيات، وتدعم أجهزة كمبيوتر ماكنتوش "وضع القرص المستهدف لـFireWire" منذ عام 1999. [ 19 ]

تم إصدار وحدة نسيج FireWire SBP-2 مع نظام التشغيل Linux 3.5 في 21 يوليو 2012. [ 18 ] [ 20 ]

iSCSI

تتيح وحدة نسيج واجهة نظام الكمبيوتر الصغيرة عبر الإنترنت ( iSCSI ) نقل حركة مرور SCSI عبر شبكات IP القياسية.

يُستخدم بروتوكول iSCSI، من خلال نقل جلسات SCSI عبر شبكات IP، لتسهيل نقل البيانات عبر الشبكات الداخلية وإدارة التخزين على مسافات طويلة. ويمكن استخدام iSCSI لنقل البيانات عبر الشبكات المحلية (LAN) أو الشبكات الواسعة (WAN) أو الإنترنت، كما يُمكّن من تخزين البيانات واسترجاعها بشكل مستقل عن الموقع وشفاف.

كما تقوم وحدة نسيج LIO iSCSI بتنفيذ عدد من ميزات iSCSI المتقدمة التي تزيد من الأداء والمرونة، مثل الاتصالات المتعددة لكل جلسة (MC/S) ومستويات استعادة الأخطاء 0-2 (ERL=0,1,2).

يدعم نظام LIO جميع بطاقات الشبكة القياسية لشبكة الإيثرنت.

تم إصدار وحدة نسيج iSCSI مع نظام التشغيل Linux 3.1 في 24 أكتوبر 2011. [ 21 ]

آيزر

يمكن للشبكات التي تدعم الوصول المباشر للذاكرة عن بُعد (RDMA) استخدام وحدة iSER (امتدادات iSCSI لـ RDMA ) لنقل بيانات iSCSI . تسمح iSER بنقل البيانات مباشرةً من وإلى مخازن ذاكرة الكمبيوتر البعيدة بتقنية SCSI دون الحاجة إلى نسخ البيانات الوسيطة ( وضع البيانات المباشر أو DDP) باستخدام RDMA. [ 22 ] يدعم RDMA شبكات InfiniBand ، وشبكات Ethernet المزودة بجسور مراكز البيانات (DCB) عبر RDMA عبر شبكة Ethernet المتقاربة (RoCE)، وشبكات Ethernet القياسية المزودة بوحدات تحكم iWARP المحسّنة لتفريغ TCP .

تم تطوير وحدة نسيج iSER بشكل مشترك بواسطة Datera و Mellanox Technologies ، وتم إصدارها لأول مرة مع Linux 3.10 في 30 يونيو 2013. [ 23 ]

سعر التجزئة المقترح

تتيح وحدة SRP ( بروتوكول SCSI RDMA ) نقل بيانات SCSI عبر شبكات RDMA (انظر أعلاه). في عام 2013، كان استخدام SRP أكثر شيوعًا من iSER، على الرغم من محدوديته، حيث أن SCSI بروتوكول نظير إلى نظير فقط، بينما iSCSI قابل للتوجيه بالكامل. تدعم وحدة SRP محولات قنوات المضيف (HCAs) التالية من Mellanox:

  • بطاقات Mellanox ConnectX-2 VPI PCIe Gen2 HCA (8 مسارات)، منفذ واحد/منفذين QDR بسرعة 40  جيجابت/ثانية
  • بطاقات Mellanox ConnectX-3 VPI PCIe Gen3 HCA (8 مسارات)، منفذ واحد/منفذين FDR بسرعة 56  جيجابت/ثانية
  • بطاقات Mellanox ConnectX-IB PCIe Gen3 HCA (16 مسارًا)، منفذ واحد/منفذان FDR بسرعة 56  جيجابت/ثانية

تم إصدار وحدة نسيج SRP مع نظام التشغيل Linux 3.3 في 18 مارس 2012. [ 24 ]

في عام 2012، قامت مجلة c't  بقياس معدل نقل البيانات لما يقرب من 5000 ميجابايت/ثانية باستخدام LIO SRP Target عبر منفذ Mellanox ConnectX-3 واحد في  وضع FDR بسرعة 56 جيجابت/ثانية على نظام Sandy Bridge PCI Express 3.0 مع أربع بطاقات ذاكرة فلاش Fusion-IO ioDrive PCI Express.

USB

تتيح وحدة نسيج USB Gadget لنظام Linux تصدير أجهزة التخزين المحلية عبر ناقل التسلسل العالمي (USB)، بحيث يمكن للأنظمة الأخرى تثبيتها كجهاز تخزين عادي.

تم تصميم USB في منتصف التسعينيات لتوحيد توصيل الأجهزة الطرفية للكمبيوتر ، وأصبح شائعًا أيضًا لأجهزة تخزين البيانات.

تم إصدار وحدة نسيج USB Gadget مع نظام التشغيل Linux 3.5 في 21 يوليو 2012. [ 25 ]

Targetcli

targetcli هي واجهة سطر أوامر لإدارة عقدة واحدة في مساحة المستخدم لنظام LIO. [ 26 ] وهي تدعم جميع وحدات النسيج وتعتمد على بنية معيارية قابلة للتوسيع، مع وحدات إضافية لوحدات النسيج أو الوظائف الإضافية.

توفر مكتبة targetcli واجهة سطر أوامر تستخدم مكتبة هدف عامة أساسية من خلال واجهة برمجة تطبيقات محددة جيدًا. وبالتالي، يمكن استبدال واجهة سطر الأوامر أو استكمالها بسهولة بواجهة مستخدم رسومية باستخدام أساليب أخرى، مثل واجهة المستخدم الرسومية.

تم تنفيذ targetcli بلغة بايثون ويتكون من ثلاث وحدات رئيسية:

  • مكتبة rtslib الأساسية وواجهة برمجة التطبيقات (API). [ 27 ]
  • configshell ، الذي يغلف السمات الخاصة بالنسيج في ملفات "spec" المقابلة.
  • واجهة سطر الأوامر targetcli نفسها.

يمكن العثور على تعليمات مفصلة حول كيفية إعداد أهداف LIO على موقع LIO wiki. [ 26 ]

توزيعات لينكس

تُضمَّن أدوات targetcli وLIO افتراضيًا في معظم توزيعات لينكس. فيما يلي نظرة عامة على أشهرها، بالإضافة إلى تواريخ تضمينها الأولية:

توزيعالإصدار [ أ ]يطلقأرشيفتثبيتالمصدر: جيتالوثائق
ألباين لينكس2.52011-11-07نسخة احتياطية من نظام Alpine Linux، مؤرشفة بتاريخ 12 ديسمبر 2012 على موقع Wayback Machine.apk add targetcli-fbtargetcli-fb.gitكيفية القيام
نظام التشغيل CentOS6.22011-12-20مرآة CentOSsu -c 'yum install fcoe-target-utils'targetcli-fb.gitملاحظات تقنية
ديبيان7.0 (" أزيزي ")2013-05-04مجموعة دبيانsu -c 'apt-get install targetcli'targetcli.gitDebian - LIO Wiki على Wayback Machine (تمت أرشفته في 2022-08-20)
فيدورا162011-11-08قبعة فيدورا من الجلد الخامsu -c 'yum install targetcli'targetcli-fb.gitويكي الهدف
أوبن سوزي12.12011-11-08يتطلب التثبيت اليدوي من مستودعات Datera targetcli.git .
RHEL [ b ]6.22011-11-16قبعة فيدورا من الجلد الخامsu -c 'yum install fcoe-target-utils'targetcli-fb.gitملاحظات تقنية
لينكس العلمي6.22012-02-16مرآة SLsu -c 'yum install fcoe-target-utils'targetcli-fb.gitملاحظات تقنية
SLES11 SP3 MR2013-12-su -c 'zypper in targetcli'targetcli.gitSLES - LIO Wiki على موقع Wayback Machine (تمت أرشفته في 2022-08-02)
أوبونتو12.04 لتر (دقيق)2012-04-26عالم أوبونتوsudo apt-get install targetclitargetcli.gitأوبونتو - ويكي LIO على موقع Wayback Machine (تمت أرشفته في 21-10-2022)

انظر أيضاً

ملحوظات

  1. إصدار التوزيع الذي تم فيه تضمين LIO لأول مرة.
  2. تضمنت RHEL 6 بروتوكول LIO، لكنه كان البروتوكول الافتراضي فقط لأهداف FCoE، بينما استُخدم بروتوكول STGT لبروتوكول iSCSI. في الإصدار التجريبي من RHEL 7، أصبح بروتوكول LIO هو البروتوكول الافتراضي لـ FCoE وiSCSI وMellanox InfiniBand iSER/SRP. [ 28 ]

مراجع

  1. "LIO" . Linux-IO، ويكي أهداف SCSI لنظام Linux . 12-03-2016. مؤرشف من الأصل في 20-08-2022.
  2. لينوس تورفالدز (14 يناير 2011). "دمج بسيط" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  3. ^ ثورستن ليمهويس (2011/03/02). "سجل النواة: قادم في 2.6.38 (الجزء الرابع) - التخزين" . هيز اون لاين.
  4. "قصة هدفين من أهداف SCSI" . Lwn.net. مؤرشف من الأصل بتاريخ 2014-02-02 . تم الاطلاع عليه بتاريخ 2014-01-20 .
  5. هاس، فلوريان (مايو 2012). "نسخ كل شيء! تخزين iSCSI عالي التوفر مع DRBD وPacemaker" . مجلة لينكس . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  6. بولخوفيتين، فلاديسلاف (11 أبريل 2018). "SCST مقابل STGT" . نظام فرعي عام لأهداف SCSI لنظام لينكس . تم الاسترجاع في 1 أبريل 2019 .
  7. اللجنة الفنية T10. "واجهات تخزين SCSI" . t10.org . تم الاطلاع عليه بتاريخ 24-12-2012 .{{cite web}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
  8. دليل مرجعي لأوامر SCSI (ملف PDF) . 100293068، مراجعة C. سكوتس فالي: سيجيت تكنولوجي. أبريل 2010. مؤرشف من الأصل (ملف PDF) بتاريخ 31 يوليو 2012. تم الاطلاع عليه بتاريخ 25 ديسمبر 2012 .
  9. بيلينجر، نيكولاس (2009). الوضع الحالي ومستقبل بروتوكول iSCSI على منصة لينكس (ملف PDF) . مؤتمر لينكس للسباكين.
  10. رالف ويبر (17 يناير 2011). "أوامر SCSI الأساسية - 4 (SPC-4)" . t10.org . تم الاطلاع عليه بتاريخ 7 مارس 2011 .
  11. "واجهات برمجة تطبيقات vStorage لتكامل المصفوفات" . Linux-IO، ويكي أهداف SCSI لنظام Linux . 2015-08-07. مؤرشف من الأصل في 2022-08-20.
  12. جوناثان كوربيت (24 أغسطس 2005). "Configfs - مقدمة" . lwn.net . تم الاطلاع عليه بتاريخ 7 مارس 2011 .
  13. "قناة الألياف: العمود الفقري - الإصدار 5، المراجعة 2.00" (ملف PDF) . المعيار الوطني الأمريكي لتكنولوجيا المعلومات، اللجنة الدولية لمعايير تكنولوجيا المعلومات، المجموعة الفنية T11. 4 يونيو 2009. تاريخ الاسترجاع : 5 مايو 2011 .
  14. لينوس تورفالدز (18 أبريل 2011). " [ SCSI ] tcm_fc: إضافة موفر FC_FC4 (tcm_fc) لدعم هدف FCoE (TCM - نواة الهدف)" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  15. "الصفحة الرئيسية لـ T11" . t11.org . تم الاطلاع عليه بتاريخ 25-12-2012 .
  16. لينوس تورفالدز (15 مايو 2012). " [ SCSI ] tcm_qla2xxx: إضافة وحدة نسيج من سلسلة 24xx أو أحدث للنواة المستهدفة" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  17. لينوس تورفالدز (15 مايو 2012). " [ SCSI ] qla2xxx: إضافة بنية LLD لوضع الهدف لسلسلة 24xx وما فوق" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  18. 1 2 ثورستن ليمهويس (2012/07/03). "سجل النواة: قادم في الإصدار 3.5 (الجزء 2) - أنظمة الملفات والتخزين" . هيز اون لاين . تم الاسترجاع 2013/01/14 .
  19. "كيفية استخدام وضع القرص الهدف في FireWire واستكشاف أخطائه وإصلاحها" . apple.com . تم الاطلاع عليه بتاريخ 24-12-2012 .
  20. لينوس تورفالدز (15 أبريل 2012). "sbp-target: الدمج الأولي لدعم وضع الهدف firewire/ieee-1394" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  21. لينوس تورفالدز (27 يوليو 2011). "دمج iSCSI" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  22. RFC 5041 
  23. لينوس تورفالدز (30-04-2013). "دمج الفرع 'for-next-merge'"" . Kernel.org . تم الاطلاع عليه بتاريخ 28-09-2019 .
  24. لينوس تورفالدز (18 يناير 2012). "دمج InfiniBand/SRP" . Kernel.org . تم الاطلاع عليه بتاريخ 28 سبتمبر 2019 .
  25. "دمج الفرع 'usb-target-merge'"" . Kernel.org . تم الاطلاع عليه بتاريخ 28-09-2019 .
  26. 1 2 "Targetcli" . Linux-IO، ويكي أهداف SCSI لنظام Linux . 9 ديسمبر 2012. مؤرشف من الأصل في 2 مارس 2013. تم الاطلاع عليه في 25 ديسمبر 2012 .
  27. جيروم مارتن (2011-08-03). "حزمة rtslib" . daterainc.com . تم الاطلاع عليه بتاريخ 25-12-2012 .
  28. "الفصل 6. التخزين" . Access.redhat.com . تم الاطلاع عليه بتاريخ 20-01-2014 .