يعمل مطورو Cloudflare على التصحيحات لتسريع تشفير القرص على نظام Linux

كلودفلاري

الكثير أصدر مطورو Cloudflare معلومات حول العمل الذي يقومون به لتحسين أداء تشفير القرص في نواة Linux ، والتي ذكروا أنهم قد أعدوا منها بقع للأنظمة الفرعية dm-crypt و Crypto API.

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

الاهتمام بتحسين التشفير البيانات الموجودة على القرص ذلك لأن Cloudflare يستخدم dm-crypt لتشفير البيانات على محركات الأقراص المستخدمة للتخزين المؤقت للمحتوى على CDN. يعمل Dm-crypt على مستوى جهاز الحظر ويقوم بتشفير طلبات الإدخال / الإخراج لكتابة طلبات القراءة وفك تشفيرها ، ويعمل كطبقة بين جهاز الحظر وبرنامج تشغيل نظام الملفات.

لتقييم الأداء dm-crypt باستخدام حزمة اختبار الإدخال / الإخراج المرنة ، se قياس سرعة العمل مع الأقسام المشفرة وغير مشفر على قرص RAM موجود في ذاكرة الوصول العشوائي للتخلص من التقلبات في أداء القرص.

بالنسبة للأقسام غير المشفرة ، ظل أداء القراءة والكتابة عند 1126 ميجابايت / ثانية ، ولكن عند تشغيل التشفير ، انخفضت السرعة 7 مرات إلى 147 ميجابايت / ثانية.

في البداية، تم الاشتباه في استخدام خوارزميات غير فعالة في نظام تشفير kernel. لكن الاختبارات استخدمت خوارزمية aes-xts الأسرع مع 256 مفتاح تشفير ، والتي يكون أداؤها عند تشغيل "معيار إعداد التشفير" أعلى من النتيجة التي تم الحصول عليها عند اختبار قرص ذاكرة الوصول العشوائي (RAM).

DM- كريبت

تجارب مع أعلام dm-crypt لضبط الأداء لم ينجح: عند استخدام علامة –perf-same_cpu_crypt ، انخفض الأداء حتى إلى 136 ميجابايت / ثانية ، وعندما تم استخدام علامة –perf-submit_from_crypt_cpus ، زادت فقط إلى 166 ميجابايت / ثانية.

تحليل أعمق لمنطق العمل أظهر أن dm-crypt ليس بهذه البساطة كما يبدوا.

عند تلقي طلب كتابة من وحدة تحكم FS ، لا يقوم dm-crypt بمعالجته على الفور ، ولكنه بدلاً من ذلك يضعه في قائمة انتظار "kcryptd" ، وهو أمر غير مفهوم على الفور ، ولكن عندما يأتي الوقت المناسب. من قائمة الانتظار ، يتم إرسال الطلب إلى Linux Crypto API للتشفير.

عند القراءة أولاً ، قوائم انتظار dm-crypt "kcryptd_io" طلب استقبال البيانات من الوحدة. بعد لفترة من الوقت ، البيانات متاحة و يتم وضعها في قائمة الانتظار "kcryptd" لفك التشفير.

يرسل Kcryptd طلبًا إلى Linux Encryption API ، والذي يقوم بفك تشفير المعلومات بشكل غير متزامن. لا تمر الطلبات دائمًا عبر جميع قوائم الانتظار، ولكن في أسوأ الأحوال ، يتم تعيين طلب الكتابة في قوائم الانتظار حتى 4 مرات وقراءة الطلب حتى 3 مرات. كل ضربة في الذيل تؤدي إلى تأخير ، والتي هي السبب الرئيسي لانخفاض كبير في أداء dm-crypt.

بالنظر إلى أن محركات الأقراص الحديثة أصبحت أسرع وأكثر ذكاءً ، فقد تمت مراجعة نظام تخصيص الموارد في Linux kernel و تم إعادة تصميم بعض الأنظمة الفرعية، أضاف مهندسو Cloudflare وضع تشغيل جديد إلى dm-crypt ، مما يلغي استخدام قوائم الانتظار الإضافية والمكالمات غير المتزامنة.

يتم تمكين الوضع من خلال علامة منفصلة "force_inline" ويجلب dm-crypt في شكل وكيل بسيط يقوم بتشفير وفك تشفير الطلبات الواردة. تم تحسين التفاعل مع Crypto API من خلال اختيار واضح لخوارزميات التشفير تعمل في وضع متزامن ولا تستخدم قوائم انتظار الطلبات.

عند اختبار الحمل على الخوادم الحقيقية ، أظهر التطبيق الجديد أداءً قريبًا جدًا من التكوين الذي يعمل بدون تشفير ولم يؤثر تضمين التشفير على الخوادم مع ذاكرة التخزين المؤقت Cloudflare على سرعة الاستجابة.

في المستقبل، تخطط Cloudflare لنقل التصحيحات المعدة إلى نواة Linux الرئيسية، ولكن قبل ذلك سيتعين تعديلها ، حيث إنها مُحسّنة لحمل معين ولا تغطي جميع مجالات التطبيق.

مصدر: https://blog.cloudflare.com


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.