إن تقنيات المحاكاة الافتراضية مطلوبة اليوم ليس فقط في قطاع "الشركات الكبيرة" ، ولكن أيضًا في الشركات الصغيرة والمتوسطة وبين المستخدمين المنزليين. على وجه الخصوص ، بالنسبة للشركات الصغيرة ، يمكن استخدام خوادم المحاكاة الافتراضية لتنفيذ عدد من خدمات الخدمة غير كثيفة الاستخدام للموارد. يشير هذا عادةً إلى الخوادم المستقلة القائمة على الأنظمة الأساسية أحادية أو ثنائية المعالج ، مع كمية صغيرة نسبيًا من ذاكرة الوصول العشوائي في 32-64 غيغابايت وبدون أنظمة تخزين خاصة عالية الأداء. ولكن بخلاف السلسلة الكاملة من المزايا ، يجب أن تكون على دراية بأن الأنظمة الافتراضية تختلف من حيث الأداء عن الأنظمة الحقيقية. في هذه المقالة ، سنقوم بمقارنة سرعات أنواع مختلفة من محركات الأقراص المحلية (HDD و SSD و NVMe) للعديد من تكوينات الجهاز الظاهري من أجل تقدير الخسائر الناتجة عن المحاكاة الافتراضية الخاصة بهم. لا أحد يجادل في أنه في التطبيقات "الصحيحة" لأنظمة المحاكاة الافتراضية ، من الأفضل استخدام وحدة التخزين الخارجية ، ولكن في إصدار الميزانية يمكنك الحصول عليها باستخدام الأقراص المحلية.
تم إجراء الاختبار على خادم التكوين التالي: اللوحة الأم Asus Z10PE-D16 ، معالجان Intel Xeon E5-2609 v3 ، 64 جيجابايت من ذاكرة الوصول العشوائي. تم اختيار Proxmox VE الإصدار 5.2 ، وهو نظام مفتوح المصدر يعتمد على دبيان ، كبيئة افتراضية. لتركيبه ، تم استخدام SATA SSD منفصل ، وتم توصيل محركات الأقراص المختبرة بشكل منفصل بواجهات ومنافذ أخرى.
أولاً ، اختبر محرك الأقراص من النظام الأساسي المضيف. الخيار الثاني هو إعادة التوجيه إلى الجهاز الظاهري (يتم استخدام KVM و Debian 9 له ، ويتم تخصيص نوى و 8 غيغابايت من ذاكرة الوصول العشوائي) كقرص فعلي. التكوين الثالث هو قرص افتراضي على LVM. الرابع هو ملف RAW على وحدة تخزين بنظام ملفات ext4. في الخيارين الأخيرين ، تم اختيار حجم قرص 64 جيجابايت. لذلك قد تكون نتيجة إضافية للمقالة مقارنة بين LVM و RAW لتخزين صور القرص الافتراضية.
سيتم استخدام أداة fio مع أنماط تسلسلية للقراءة والكتابة مع كتلة 256 كيلوبايت وعمليات عشوائية مع كتلة 4 كيلوبايت لقياس السرعة. تم إجراء الاختبارات باستخدام معلمة iodepth من 1 إلى 256 من أجل محاكاة الأحمال المختلفة. بالنسبة للعمليات التسلسلية ، نقدر السرعة بالميغابايت / ثانية ، للعمليات العشوائية - IOPS. بالإضافة إلى ذلك ، ننظر في متوسط التأخيرات (clat من تقرير الاختبار).
لنبدأ بمحرك أقراص صلبة تقليدي ، في دور كبار السن HGST HUH728080ALE640 - محرك بواجهة SATA وسعة 2 تيرابايت. يمكن اعتبار استخدام محركات الأقراص الثابتة المفردة ، خاصة إذا لم تكن هناك متطلبات حجم ، في السيناريو الموضح للمحاكاة الافتراضية منخفضة التكلفة لحمولة صغيرة خيارًا نموذجيًا إذا قمت بحفظ أو "نحت من ما كان" تمامًا وعدم تضمين هذا الخيار في الاعتبار سيكون خاطئًا.


عند القراءة ، تظهر جميع الخيارات ، باستثناء الخيار الأخير ، نفس النتائج تقريبًا على مستوى 190 ميجابايت / ثانية (فقط مع الأحمال الثقيلة مع iodepth = 256 للعبور و LVM يتم تقليل النتائج إلى 150 ميجابايت / ثانية). في حين أن الخام ، بفضل التخزين المؤقت على المضيف ، "يطير إلى الفضاء" والآخرون لم يعودوا مرئيين على خلفيته. من ناحية ، يمكننا القول أن الاختبار المستخدم وإعدادات النظام لا تسمح لنا بتقييم سرعة هذا التكوين بشكل صحيح وإظهار أداء ليس ذاكرة الوصول العشوائي ، ولكن ذاكرة الوصول العشوائي. من ناحية أخرى ، يعد التخزين المؤقت أحد أكثر التقنيات فاعلية وشائعة لزيادة الإنتاجية ، وإذا كان يعمل ، فسيكون من الغريب رفضه. ولكن لا تنسى القوة الموثوقة في مثل هذه التكوينات.
لم يعد هناك مثل هذا التأثير على التسجيل ، لذلك في العمليات المتتالية ، تكون جميع التكوينات متشابهة تقريبًا - السرعة القصوى حوالي 190 ميجابايت / ثانية. على الرغم من أن الخام لا يزال يتصرف بشكل مختلف عن الآخرين - مع حمولة صغيرة فهو أبطأ ، ولكن في أقصى حد لا يتباطأ مثل الباقي. لا توجد اختلافات في التأخير.
يمكن أيضًا ملاحظة استخدام ذاكرة التخزين المؤقت للمضيف في عمليات القراءة العشوائية - هنا الخام هو الأسرع باستمرار ويظهر حتى 950 IOPS. حوالي ضعف سرعة lvm - حتى 450 IOPS. حسنًا ، يُظهر القرص الصلب نفسه ، بما في ذلك "إعادة التوجيه" إلى نظام الضيف ، حوالي 200 IOPS. يتوافق توزيع المشاركين في جدول التأخير مع السرعات.
في عمليات الكتابة العشوائية ، أثبت تكوين lvm ، الذي قدم ما يصل إلى 400 IOPS ، أنه الأفضل. ويتبعه الخام (~ 330 IOPS) ، وأغلق آخر مشاركين مع 290 IOPS القائمة. لا توجد فروق ملحوظة في التأخير.
بشكل عام ، إذا كنت لا تحتاج إلى الوظائف التي توفرها lvm ، والمعيار الرئيسي ليس سرعة الكتابة العشوائية ، فمن الأفضل استخدام الخام من حيث السرعة عند وضع الأقراص الافتراضية على التخزين المحلي. لا يوفر تطبيق التكنولوجيا لإعادة توجيه قرص مادي إلى جهاز افتراضي مزايا الأداء في هذه الحالة. ولكن قد يكون من المثير للاهتمام إذا كنت تريد توصيل محرك أقراص بالبيانات الموجودة بالجهاز الظاهري.
المشارك الثاني في الاختبار هو Samsung 850 EVO SSD. نظرًا لعمره وعمله في نظام بدون TRIM ، في بعض الاختبارات (خاصة التسجيل المتسلسل) ، فقد بالفعل محرك الأقراص الثابتة. ومع ذلك ، نظرًا لزيادة كبيرة في الأداء في العمليات العشوائية أمام محرك الأقراص الثابتة التقليدي ، فمن المثير للاهتمام للغاية بالنسبة للأجهزة الافتراضية أيضًا.
يمكن التعليق على نتيجة القراءة المتسلسلة في الوضع الخام بشكل مماثل للمتغير باستخدام قرص ثابت. ولكن ما هو أكثر إثارة للاهتمام هنا هو أن التكوينين الأولين يظهران 370 ميجابايت / ثانية ثابتة تحت الحمل الثقيل ، في حين أن lvm قادر على 190 ميجابايت / ثانية فقط. التأخيرات لهذا الوضع أعلى أيضًا.
في عمليات الكتابة ، كما سبق ذكره ، لا يبدو محرك الأقراص ذي الحالة الثابتة هذا في وضعه الحالي مثيرًا للاهتمام ويظهر سرعة 100 ميجابايت / ثانية. أما بالنسبة لمقارنة التكوينات ، في هذا الاختبار ، يفقد الخام عند حمل منخفض في السرعة وفي التأخير.
عمليات عشوائية هي SSD "بطاقة رابحة" الرئيسية. نرى هنا أن أي خيارات "افتراضية" تخسر بشكل ملحوظ بسبب محرك "نظيف" - فهي توفر 30.000 IOPS فقط ، بينما SSD نفسه قادر على العمل بشكل أسرع ثلاث مرات. على ما يبدو ، هنا الحد هو منصة الأجهزة والبرمجيات. ومع ذلك ، لا تتجاوز التأخيرات في هذا الاختبار 7 مللي ثانية ، لذلك من غير المحتمل أن تلاحظ التطبيقات العامة هذا الاختلاف في IOPS.
وعلى سجل عشوائي هو توازن مختلف للقوة. القرص "الحقيقي" يخسر بالفعل ، وإن كان قليلاً. إنه قادر على عرض ما يصل إلى 4200 IOPS. lvm و passthrough مائة أو مائتان أخرى ، ويصل الخام بالفعل إلى 5،500 IOPS. على الرسم البياني للتأخيرات من فيديو مثير للاهتمام ، كسر iodepth = 32.
أظهر الاختبار أن SSD يتصرف بشكل مختلف عن HDD في هذا السيناريو. أولاً ، القراءة المتسلسلة مع lvm تتخلف بشكل ملحوظ عن الخيارات الأخرى. ثانيًا ، تفقد الأقراص الافتراضية على محركات أقراص الحالة الثابتة بشكل ملحوظ في قراءة IOPS العشوائية.
المشارك الثالث هو إلى حد ما خارج "غير مكلف" ، ولكن هذا المنتج في حد ذاته مثير للاهتمام للغاية لـ "المسرّع" العالمي لعمليات القرص وهو قادر على المنافسة بسرعة ليس فقط مع محركات الأقراص المفردة ، ولكن أيضًا مع صفائف RAID. حول Intel Optane. في هذه الحالة ، استخدمنا طراز 900P لناقل PCIe 3.0 x4 بسعة 280 جيجابايت.
Intel Optane قادرة بالفعل على المنافسة مع ذاكرة الوصول العشوائي في هذا الاختبار. لم يعد الاختلاف مرتبة من حيث الحجم ، مثل المشاركين الآخرين ، ولكن فقط مرتين إلى ثلاث مرات. علاوة على ذلك ، مع زيادة الحمل ، تتم مقارنة القيم عمليًا. التأخيرات كما في الاختبارات أعلاه أقل للتكوين الخام.
في عمليات الكتابة التسلسلية ، يخسر محرك الأقراص "النظيف" للمشاركين الآخرين - مع زيادة الحمل ، يصل إلى مستقر قدره 2،150 ميجابايت / ثانية ، ويقلل السرعة إلى حوالي 1،700 ميجابايت / ثانية. لا يمكن مقارنة التأخيرات في هذه الحالة.
يمكن أن توفر عمليات القراءة العشوائية لنموذج SSD هذا عند الوصول إليه من المضيف ما يقرب من 200000 IOPS (ستكون السرعة عند مستوى 760 ميجابايت / ثانية). لكن جميع مخططات الاتصال الأخرى ، كما رأينا أعلاه لمحركات أقراص SSD ذات واجهة SATA ، محدودة بـ 35000 IOPS ، والتي لا يمكن إلا أن تنزعج. تبعا لذلك ، لديهم تأخير أعلى ، حوالي خمس مرات.
في التسجيل العشوائي ، يُظهر طراز محرك الأقراص الفريد هذا بلا شك نفس النتائج تقريبًا كما في القراءة العشوائية - حوالي 190،000 IOPS للاتصال المباشر و 35،000 IOPS للخيارات الأخرى. تتزامن التأخيرات أيضًا مع الرسم البياني في عمليات القراءة. من ناحية أخرى ، أكثر من 700 ميجابايت / ثانية في التسجيل العشوائي في كتل صغيرة - لا تزال هذه النتائج بحاجة إلى البحث.
يُظهر استخدام محرك Intel Optane للمشكلة المدروسة أنه لن يكون هناك انخفاض كبير في السرعة على العمليات المتسلسلة في أنظمة تشغيل الضيف. ولكن إذا كنت بحاجة إلى IOPS عالية للقراءة أو الكتابة العشوائية ، فإن هذا النظام الأساسي سيحد من الأداء عند مستوى 35000 IOPS ، على الرغم من أن محرك الأقراص نفسه أسرع بخمس مرات.
أظهر الاختبار أنه عند إنشاء أنظمة التخزين للخوادم الافتراضية ، يجب الانتباه إلى خسائر معينة من المحاكاة الافتراضية إذا كانت السرعة مهمة لأجهزتك الافتراضية. في معظم التكوينات التي تم اختبارها ، تُظهر الأقراص الافتراضية مؤشرات أداء مختلفة بشكل كبير عن الأجهزة المادية. ومع ذلك ، بالنسبة لمحركات الأقراص الصلبة التقليدية ، يكون الفرق عادةً صغيرًا نسبيًا ، لأنها ليست سريعة جدًا. بالنسبة لمحركات SATA SSD ، يمكن ملاحظة الخسائر الكبيرة في IOPS للوصول العشوائي ، ولكن حتى مع ذلك ، فإنها تظل أسرع بشكل كبير في هذه المهام من Winchesters. من المؤكد أن محرك Intel Optane فقد الكثير في البيئة الافتراضية بسبب العمليات العشوائية ، ولكن حتى في هذه الحالة ، فإنه يظل سريعًا بشكل استثنائي عند التسجيل. وفي العمليات اللاحقة لا توجد تعليقات عليه. ميزة أخرى مهمة لهذا الجهاز هي أدائه المستقر - لا يتطلب أي عمليات تنظيف خاصة ، بحيث بغض النظر عن الحالة والتاريخ الماضي ، بالإضافة إلى نظام التشغيل وإعداداته ، ستكون السرعة ثابتة في أي وقت. ولكن ، كالعادة ، لا يحدث شيء مجانًا. لا يعد Intel Optane 900P سريعًا فحسب ، بل مكلفًا بشكل فريد.