التخزين المُعرف بالبرمجيات
كما رأيت بالفعل، يمكن توزيع أنواع مختلفة من أنظمة التخزين بناءً على احتياجات التطبيق. إن النموذج الأساسي للتخزين هو التخزين المرفق المباشر، حيث يتم توصيل أجهزة التخزين مثل الأقراص المغناطيسية أو محركات الأقراص ذات الحالة الصلبة مباشرةً بخادم داخلي (من خلال اتصال ناقل داخلي، عادةً ما يكون SATA أو SAS). من ناحية أخرى، يمكن استخدام أنظمة التخزين الضخمة على مستوى المؤسسات في شكل شبكة منطقة النظام (SAN)، والتي تستخدم إحدى الشبكات (باستخدام تقنيات مختلفة) لتوصيل الخوادم بمجموعة من الأقراص.
تذكر أنه في السحابة، تتم مشاركة موارد الحوسبة المادية بين مستأجرين متعددين من خلال خوادم ظاهرية. يمكن أن ينطبق هذا النهج أيضًا على موارد التخزين. يمكن مشاركة موارد التخزين بين مستأجرين متعددين، وخفض التكلفة وتحسين الاستخدام العام لهذه الموارد. ومع ذلك، يجب توفير نموذج من نماذج العزل جنبًا إلى جنب مع التسامح مع الخطأ والتقنيات الأخرى لتلبية SLO لتطبيق معين. يتيح ذلك للعملاء أن يحصلوا على سلوك يمكن التنبؤ به لتطبيقاتهم، في أثناء مشاركة موارد التخزين مع مستأجرين آخرين. من شأن توفير SLO من البداية إلى النهاية أن يُترجم إلى متطلبات لعرض النطاق الترددي، أو عمليات الإدخال/الإخراج في الثانية (IOPS)، أو الأولوية، أو التحكم في مسار الإدخال/الإخراج بالكامل، كما هو موضح في الشكل التالي.
الشكل 7: مثال على مسار الإدخال/الإخراج
يتيح التخزين المُعرف بالبرمجيات للعملاء تحديد السعة الدقيقة و/أو زمن الانتقال و/أو متطلبات النطاق الترددي، على شكل نموذج SLO، والتي يتم تخطيطها لخدمات التخزين المجردة للعميل. يمكن لموفر السحابة تجميع خدمة تخزين قابلة للتطوير وتوفيرها باستخدام تقنيات تخزين متنوعة في برنامج الخلفية. يمكن تلبية SLO للعملاء عن طريق إدارة مكدس التخزين من جانب الموفر.
من أجل فهم كيفية تحقيق ذلك بشكل أفضل، لنلقي نظرة على إحدى التقنيات الناشئة التي تمكّن SDS وIOFlow.1
مثال على SDS: IOFlow
في مراكز البيانات، يكون تشغيل التطبيق الذي يطلب عمليات على الملفات ونظام التخزين الذي يفي بالعمليات معقدًا ويتضمن عدة مراحل، مثل نظام تشغيل المضيف وبرنامج مراقب الأجهزة الافتراضية (Hypervisor) ونسيج الشبكة، وخادم التخزين، وأخيرًا تشغيل القرص. يظهر الطلب أيضًا بشكل مختلف في كل طبقة. على سبيل المثال، ينتج عن طلب إدخال/إخراج ملف مثل القراءة أو الكتابة أو الإنشاء في أحد الأجهزة الظاهرية طلب إدخال/إخراج كتلة في برنامج مراقب الأجهزة الافتراضية. ينتج عن هذا بدوره إنشاء حزم بيانات Ethernet عبر الشبكة، وأخيرًا طلب إدخال/إخراج ملف آخر وطلب جهاز كُتلي في خادم التخزين.
يعني عدد الطبقات في النظام أن فرض نهج التدفق من البداية إلى النهاية (تكون هذه النُهج مشتقة عادةً من SLO) يُعد أمرًا صعبًا. يتطلب هذا طبقات على طول مسار الإدخال/الإخراج لمعالجة الطلبات بشكل مختلف بناءً على محتواها و/أو SLO للعميل. علاوة على ذلك، قد تحتاج السياسات إلى أن يتم فرضها على طبقة واحدة أو أكثر أو جميع الطبقات على طول المسار. على سبيل المثال، يتطلب تحديد أولويات عمليات الإدخال/الإخراج من جهاز ظاهري معين إلى التخزين، تهيئة الأولوية على كل الطبقات على طول المسار.
إن IOFlow عبارة عن بنية تخزين مُعرّف بالبرمجيات، تم تصميمها من قِبل Microsoft، للحفاظ على SLO من البداية إلى النهاية وSLO لعرض النطاق الترددي، وكذلك لتحسين الأداء. إن العملاء هم الأجهزة الظاهرية قيد التشغيل على خوادم الحوسبة من خلال برنامج مراقب الأجهزة الافتراضية. تحتاج الأجهزة الظاهرية هذه إلى الوصول إلى خادم التخزين، الذي ينظمه IOFlow. يتم الوصول إلى تدفق البيانات باستخدام قوائم الانتظار في كل مرحلة في مسار الإدخال/الإخراج. يتم تنظيم قوائم الانتظار هذه من قِبل وحدة تحكم مركزية. تُعيّن وحدة التحكم المركزية في هندسة IOFlow بتعيين مقاييس معدل البيانات والمسار في كل مرحلة من مراحل البنية الكلية.
يوضح الشكل 8 مثالاً لمسار إدخال/إخراج نموذجي من الجهاز الظاهري إلى خادم التخزين. يتفاعل خادم الحوسبة، الذي يتكون من عدد من الأجهزة الافتراضية التي تعمل في وقت واحد مع خادم التخزين. ومن ثمّ، فإن تفاعل التطبيق مع نظام الملفات داخل جهاز افتراضي يصبح في شكل طلبات لجهاز كُتلي على القرص الثابت الظاهري (VHD). في هذا المثال المحدد، القرص الثابت الظاهري هو في الواقع خادم تخزين بعيد يقدم الملفات باستخدام بروتوكول SMB من Microsoft. لذلك، يتم ترجمة طلبات الإدخال/الإخراج إلى حزمة بيانات الشبكة عند برنامج تشغيل الجهاز لبرنامج مراقب الأجهزة الافتراضية وإرسالها عبر خادم التخزين البعيد عبر الشبكة. في خادم التخزين، يتم فك حزمة بيانات الشبكة في كل طبقة، وتحويلها إلى طلب SMB، والذي يُترجم بدوره إلى طلب نظام ملفات على خادم التخزين. في كل طبقة في مسار الإدخال/الإخراج هذا، يضيف IOFlow تجريدًا في قائمة الانتظار، والذي يتم عرضه بعد ذلك إلى وحدة تحكم IOFlow. يمكن لوحدة التحكم ترجمة هذه السياسات إلى قواعد انتظار منخفضة المستوى في كل مرحلة.
الشكل 8: مثال IOFlow (المصدر)
تنظم وحدة التحكم IOFlow نسبة استخدام الشبكة للإدخال/الإخراج بالطريقة التالية:
- تحصل وحدة التحكم IOFlow على رسم بياني للشبكة بأكملها التي تتضمنها، بما في ذلك مكان وجود المراحل المتوافقة.
- يتم اختيار السياسات (الموضحة أدناه) التي تدعمها وحدة التحكم من قِبل العميل.
- بناءً على نهج العميل، يتم تشكيل قوائم الانتظار وتكوينها في مراحل وسيطة.
- عندما تمر نسبة استخدام الشبكة للإدخال/الإخراج عبر هذه المراحل الوسيطة، يتم التعرف على عنوان الإدخال/الإخراج ويتم تنفيذ النهج ذي الصلة.
يُطبّق IOFlow معرّفات التدفق، والتي تُعد أساسًا عناوين إدخال/إخراج مرفقة بطلبات إدخال / إخراج فردية. يتم إرفاق هذه العناوين منخفضة المستوى بالإدخال/الإخراج على أنها عناوين عالية المستوى ولا يمكن التعرف عليها من قِبل المراحل الوسيطة. بمجرد أن تُحدد المراحل الوسيطة عنوانًا، فإنها تستخدمه بمثابة معلومات توجيه من أجل توجيه الإدخال/الإخراج إلى المرحلة التالية.
كمثال على كيفية استخدام SDS للسياسات لتنظيم نسبة استخدام الشبكة للإدخال/الإخراج، تقدم IOFlow حاليًا سياسات التدفق الخمس التالية:
| سير العمل | الوصف |
|---|---|
| P1 | جهاز ظاهري واحد (VM1) يضمن عرض نطاق ترددي ثابت، B. |
| P2 | عندما يتوفر عرض نطاق ترددي إضافي، يُسمح لـ VM1 بتجاوز B. |
| P3 | نهج التعقيم؛ حيث يتم توجيه نسبة استخدام الشبكة للإدخال/الإخراج عبر طبقة التعقيم (مثل اكتشاف البرامج الضارة). |
| P4 | (أ) ذات أولوية عُليا؛ يجب إعطاء نقل البيانات VM2 أولوية عالية من الطرف إلى الطرف. |
| P5 | يمكن ضمان عرض النطاق الترددي بعدة أجهزة ظاهرية تنتمي إلى العميل نفسه، والتي لديها إمكانية الوصول إلى مجموعة مشتركة من الموارد B. |
بالنسبة إلى P1، يتعهد كل جهاز افتراضي بحد أدنى من النطاق الترددي من أجل الوصول إلى خادم تخزين واحد أو أكثر. ومع ذلك، في P2، إذا كان هناك عرض نطاق ترددي إضافي متاح نتيجة أن أحد الأجهزة الظاهرية النظيرة أصبح خاملاً، فإنه يمكن أن يتغير عرض النطاق الترددي المتاح لـ VM1 ديناميكيًا. يتطلب P3 توجيه نسبة استخدام الشبكة إلى إحدى الطبقات من أجل التعقيم. على سبيل المثال، يمكن لجهاز ظاهري جديد غير موثوق به توجيه نسبة استخدام الشبكة إلى نظام الكشف عن البرامج الضارة. يمكن أن يضمن P4 عمليات زمن انتقال منخفض عن طريق تعيين أولوية عالية لنسبة استخدام الشبكة تخزين VM2. يسمح P5 بضمان عرض النطاق الترددي لمجموعة من الأجهزة الظاهرية التي تحتاج إلى الوصول إلى خوادم تخزين محددة. يتم تحديد السياسات من P1 إلى P4 للتدفقات من نقطة إلى نقطة، بينما يتم تحديد سياسات P5 للتدفقات المتعددة.
إن SDS هو نهج سريع التطور من أجل توفير التخزين كخدمة تلبي SLO للعميل من خلال أنظمة التخزين المشتركة. كما هو مذكور أعلاه، لن يتم تبني المشاركة دون ضمانات SLO الشاملة بسهولة. إن IOFlow هو مثال مبكر لتقنية SDS. نتوقع أن يستمر الابتكار في مجال SDS بوتيرة سريعة، مع تقديم حلول جديدة ستحاول تلبية متطلبات التطبيقات السحابية الجديدة.
المراجع
- Thereska وآخرون. (2013). IOFlow: هندسة التخزين المُعرّف بالبرمجيات SOSP'13: ندوة ACM الرابعة والعشرين حول مبادئ أنظمة التشغيل