صفائف RAID على NVMe

صفائف RAID على NVMe
سنتحدث في هذه المقالة عن طرق مختلفة لتنظيم مصفوفات RAID، وسنعرض أيضًا إحدى وحدات تحكم RAID الأولى للأجهزة التي تدعم NVMe.

تم العثور على جميع تطبيقات تقنية RAID المتنوعة في قطاع الخادم. في قطاع العميل، يتم استخدام برنامج RAID0 أو RAID1 فقط الموجود على قرصين في أغلب الأحيان.

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

ما هو الغارة؟

ويكيبيديا يعطي تعريفاً شاملاً لتقنية RAID:

RAID (العربية مصفوفة زائدة عن الأقراص المستقلة - مجموعة زائدة من الأقراص المستقلة (المستقلة) - تقنية المحاكاة الافتراضية للبيانات لدمج العديد من أجهزة الأقراص الفعلية في وحدة منطقية لزيادة تحمل الأخطاء والأداء.

يعتمد تكوين صفائف الأقراص والتقنيات المستخدمة على ما تم تحديده مستوى الغارة. يتم توحيد مستويات RAID في المواصفات تنسيق بيانات قرص RAID الشائع. وهو يصف العديد من مستويات RAID، ولكن الأكثر شيوعًا هي RAID0 وRAID1 وRAID5 وRAID6.

RAID0أو شرائط، هو مستوى RAID يجمع بين محركين فعليين أو أكثر في محرك أقراص منطقي واحد. حجم القرص المنطقي يساوي مجموع أحجام الأقراص الفعلية المضمنة في المصفوفة. لا يوجد تكرار على مستوى RAID هذا، وقد يؤدي فشل محرك أقراص واحد إلى فقدان جميع البيانات الموجودة في القرص الظاهري.

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

مستوى RAID5 يحل مشكلة التكلفة العالية. لإنشاء مصفوفة بمستوى RAID5، تحتاج إلى 3 أقراص على الأقل، ويكون المصفوفة مقاومة لفشل قرص واحد. يتم تخزين البيانات في RAID5 في كتل ذات مجاميع اختبارية. لا يوجد تقسيم صارم بين أقراص البيانات وأقراص المجموع الاختباري. المجاميع الاختبارية في RAID5 هي نتيجة عملية XOR المطبقة على كتل N-1، كل منها مأخوذ من قرص مختلف.

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

بعد رحلة قصيرة إلى أنواع صفائف RAID، يمكنك الانتقال إلى الأجهزة والبرامج التي تسمح لك بتجميع صفائف القرص واستخدامها.

أنواع وحدات تحكم RAID

هناك طريقتان لإنشاء صفائف RAID واستخدامها: الأجهزة والبرامج. سننظر في الحلول التالية:

  • غارة برامج لينكس.
  • Intel® Virtual RAID على وحدة المعالجة المركزية.
  • إل إس آي ميجاريد 9460-8i.

لاحظ أن حل Intel® يعمل على مجموعة شرائح، مما يثير التساؤل حول ما إذا كان حلاً للأجهزة أو البرامج. على سبيل المثال، يأخذ برنامج Hypervisor VMWare ESXi في الاعتبار برنامج VROC ولا يدعمه رسميًا.

غارة برامج لينكس

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

يعد غياب تكاليف المعدات والبرامج ميزة واضحة لهذه الطريقة. يقوم Linux Software RAID بتنظيم صفائف الأقراص على حساب وقت وحدة المعالجة المركزية. يمكن عرض قائمة مستويات RAID المدعومة وحالة صفائف القرص الحالية في ملف mdstat الموجود في جذر procfs:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

تتم إضافة دعم مستويات RAID عن طريق توصيل وحدة kernel المناسبة، على سبيل المثال:

root@grindelwald:~# modprobe raid456
root@grindelwald:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

يتم تنفيذ جميع العمليات باستخدام صفائف القرص من خلال الأداة المساعدة لسطر الأوامر mdadm. يتم تجميع مصفوفة الأقراص في أمر واحد:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

بعد تنفيذ هذا الأمر، سيظهر جهاز الكتلة /dev/md0 في النظام، والذي يمثلك كقرص افتراضي.

Intel® Virtual RAID على وحدة المعالجة المركزية

صفائف RAID على NVMeمفتاح الأجهزة القياسي Intel® VROC
Intel® Virtual RAID On CPU (VROC) عبارة عن تقنية أجهزة وبرمجيات لإنشاء صفائف RAID استنادًا إلى شرائح Intel®. تتوفر هذه التقنية بشكل أساسي للوحات الأم التي تدعم معالجات Intel® Xeon® Scalable. بشكل افتراضي، لا يكون VROC متاحًا. لتنشيطه، يجب عليك تثبيت مفتاح ترخيص جهاز VROC.

يتيح لك ترخيص VROC القياسي إنشاء مصفوفات أقراص ذات مستويات 0 و1 و10 RAID. يعمل الإصدار المميز على توسيع هذه القائمة بدعم RAID5.

تعمل تقنية Intel® VROC على اللوحات الأم الحديثة جنبًا إلى جنب مع جهاز Intel® Volume Management Device (VMD)، الذي يوفر إمكانية التبديل السريع لمحركات أقراص NVMe.

صفائف RAID على NVMeترخيص Intel® VROC القياسي يتم تكوين المصفوفات من خلال أداة الإعداد المساعدة عند تشغيل الخادم. على علامة التبويب متقدم يظهر عنصر Intel® Virtual RAID الموجود على وحدة المعالجة المركزية، حيث يمكنك تكوين صفائف الأقراص.

صفائف RAID على NVMeإنشاء مصفوفة RAID1 على محركين
تتمتع تقنية Intel® VROC بتقنياتها الخاصة. تتوافق صفائف الأقراص التي تم إنشاؤها باستخدام VROC مع Linux Software RAID. وهذا يعني أنه يمكن مراقبة حالة المصفوفات في /proc/mdstat وإدارتها من خلال mdadm. هذه "الميزة" مدعومة رسميًا من قبل شركة Intel. بعد تجميع RAID1 في الأداة المساعدة للإعداد، يمكنك ملاحظة مزامنة محركات الأقراص في نظام التشغيل:

root@grindelwald:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

لاحظ أنه لا يمكنك تجميع المصفوفات على VROC باستخدام mdadm (ستكون المصفوفات المجمعة هي Linux SW RAID)، ولكن يمكنك تغيير الأقراص فيها وتفكيك المصفوفات.

إل إس آي ميجاريد 9460-8i

صفائف RAID على NVMeظهور وحدة التحكم LSI MegaRAID 9460-8i
تعد وحدة التحكم RAID حلاً مستقلاً للأجهزة. تعمل وحدة التحكم فقط مع محركات الأقراص المتصلة بها مباشرةً. تدعم وحدة التحكم RAID هذه ما يصل إلى 24 محرك أقراص NVMe. إن دعم NVMe هو ما يميز وحدة التحكم هذه عن العديد من وحدات التحكم الأخرى.

صفائف RAID على NVMeالقائمة الرئيسية لوحدة تحكم الأجهزة
عند استخدام وضع UEFI، يتم دمج إعدادات وحدة التحكم في Setup Utility. بالمقارنة مع VROC، تبدو قائمة وحدة التحكم في الأجهزة أكثر تعقيدًا.

صفائف RAID على NVMeإنشاء RAID1 على قرصين
يعد شرح كيفية تكوين صفائف الأقراص على وحدة تحكم الأجهزة موضوعًا حساسًا إلى حد ما ويمكن أن يكون سببًا لمقالة كاملة. سنقتصر هنا ببساطة على إنشاء RAID0 وRAID1 بالإعدادات الافتراضية.

الأقراص المتصلة بوحدة تحكم الأجهزة غير مرئية لنظام التشغيل. وبدلاً من ذلك، تقوم وحدة التحكم "بإخفاء" جميع صفائف RAID كمحركات أقراص SAS. لن يتمكن نظام التشغيل من الوصول إلى محركات الأقراص المتصلة بوحدة التحكم، ولكنها ليست جزءًا من مصفوفة الأقراص.

root@grindelwald:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

على الرغم من كونها متخفية في هيئة محركات أقراص SAS، إلا أن مصفوفات NVMe ستعمل بسرعات PCIe. ومع ذلك، تسمح لك هذه الميزة بالتمهيد من NVMe في Legacy.

اختبار موقف

كل طريقة لتنظيم صفائف القرص لها إيجابياتها وسلبياتها المادية. ولكن هل هناك فرق في الأداء عند العمل مع صفائف القرص؟

لتحقيق أقصى قدر من العدالة، سيتم إجراء جميع الاختبارات على نفس الخادم. تكوينها:

  • 2x إنتل® زيون® 6240؛
  • 12x DDR4-2666 16 جيجابايت؛
  • إل إس آي ميجاريد 9460-8i؛
  • مفتاح الأجهزة القياسي Intel® VROC؛
  • 4x Intel® SSD DC P4510 U.2 سعة 2 تيرابايت؛
  • 1x سامسونج 970 EVO بلس M.2 500 جيجابايت.

وحدات الاختبار هي P4510، نصفها متصل باللوحة الأم، والنصف الآخر بوحدة تحكم RAID. يعمل M.2 بنظام التشغيل Ubuntu 20.04 وسيتم تشغيل الاختبارات باستخدام الإصدار 3.16 من fio.

تجريب

بادئ ذي بدء، دعونا نتحقق من التأخير عند العمل مع القرص. يتم تنفيذ الاختبار في موضوع واحد، وحجم الكتلة هو 4 كيلو بايت. كل اختبار يستمر 5 دقائق. قبل البدء، يتم تعيين جهاز الكتلة المقابل على لا شيء باعتباره برنامج جدولة الإدخال/الإخراج. يبدو الأمر fio كما يلي:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

من نتائج FIO نأخذ clat 99.00%. وتظهر النتائج في الجدول أدناه.

قراءة عشوائية، μs
تسجيل عشوائي، μs

أسطوانة
112
78

لينكس SW RAID، RAID0
113
45

فيروك، RAID0
112
46

إل إس آي، ريد0
122
63

لينكس SW RAID، RAID1
113
48

فيروك، RAID1
113
45

إل إس آي، ريد1
128
89

بالإضافة إلى التأخير عند الوصول إلى البيانات، أود أن أرى أداء محركات الأقراص الافتراضية ومقارنتها بأداء القرص الفعلي. أمر تشغيل fio:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

يتم قياس الأداء من حيث عمليات الإدخال/الإخراج. يتم عرض النتائج في الجدول أدناه.

قراءة عشوائية لموضوع واحد، IOPS
كتابة عشوائية لموضوع واحد، IOPS
قراءة عشوائية لـ 128 موضوعًا، IOPS
كتابة عشوائية 128 موضوعًا، IOPS

أسطوانة
11300
40700
453000
105000

لينكس SW RAID، RAID0
11200
52000
429000
232000

فيروك، RAID0
11200
52300
441000
162000

إل إس آي، ريد0
10900
44200
311000
160000

لينكس SW RAID، RAID1
10000
48600
395000
147000

فيروك، RAID1
10000
54400
378000
244000

إل إس آي، ريد1
11000
34300
229000
248000

من السهل أن ترى أن استخدام وحدة تحكم الأجهزة يؤدي إلى زيادة زمن الوصول وتحسين الأداء مقارنة بالحلول البرمجية.

اختتام

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

صفائف RAID على NVMe

يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. تسجيل الدخول، من فضلك.

هل تستخدم حلول RAID؟

  • 29,6%نعم، حلول الأجهزة32

  • 50,0%نعم، حلول البرمجيات54

  • 16,7%رقم 18

  • 3,7%لا حاجة إلى RAID4

صوت 108 مستخدمين. امتنع 14 مستخدما عن التصويت.

المصدر: www.habr.com

إضافة تعليق