نحفظ على وحدة تحكم RAID ، أو كيفية إطعام Varia باستخدام Iops

في عصر الخدمات السحابية لدينا ، AWS Lambda والاستضافة المشتركة الأخرى لموارد الحوسبة غير الملموسة تمامًا ، أحيانًا أريد القليل من بلدي. بالإضافة إلى الرغبة ، في بعض الأحيان ، هناك حاجة أيضًا إلى تحريف منتج برنامج أو آخر بعناية مع الحد الأدنى من تكاليف النظام الأساسي. يمكنك دائمًا العثور على بعض المعدات الزائدة ، وأحيانًا يتبين أنه يتم تجميع كل شيء وتشغيله. إذا كانت هذه الفوائض تمثل وحدة معالجة مركزية مع 4-6 نوى على الأقل وذاكرة من 64 جيجابايت - بشكل عام ممتاز ، يمكنك أخذ ESXi والعمل مع أي شيء. مشكلة واحدة: مع سعة القرص على الأجهزة المنزلية في VMWare - لا شيء على الإطلاق. أداء محركات الأقراص الصلبة الفردية المحلية منخفضة ، وفقدان محتويات برغي واحد في فراغ في القرن الحادي والعشرين يشبه الترحيب. دعونا نحاول توصيل شيء ما عبر الشبكة.

TL ؛ DR> جمعية ، موازنة ، حد rr ، هذا كل شيء.

في الواقع ، لا يتعلق النص أدناه بحقيقة أن هذا ممكن بشكل عام أو نوع من الخبرة. الإنترنت مليء بالمقالات الخاصة بالدمى (راجع هنا ، ثم التالي ، التالي ، تم) حول كيفية إرسال سعة قرص iSCSI. أنا أكتب فقط من أجل استبعاد "أخطاء الناجين" ومشاركة اللحظات التي "يسير فيها كل شيء بشكل خاطئ" (وسوف يذهب ، كان مورفي على حق) ، وعندما تحاول تحميل الحل ، فإنه ببساطة يتعطل.

لذا ، سنحاول خنق "مراقبنا المنزلي" بمجموعة أقراص خارجية متصلة عبر الشبكة. نظرًا لأن كل شيء يدور حولنا "بشكل غير مكلف" ، فليكن أقراص FreeNAS و 4 أقراص SATA ، والتي تتم خدمتها بواسطة متوسط ​​3 جيجا هرتز 45 نانومتر في المئة. نحن ننظر إلى Ebay ، ولأموال قابلة للمقارنة مع وحدة تحكم RAID المستخدمة ، يسحبون بضع بطاقات شبكة i350-T4 من هناك. هذه هي محولات جيجابت أربعة منافذ من Intel. وفقًا لهم ، سوف نربط التخزين ببرنامج Hypervisor.

عد قليلا. يبلغ متوسط ​​سرعة نقل البيانات لقرص SATA متوسط ​​160-180 ميجابايت / ثانية مع عرض واجهة 6 جيجابت / ثانية. في الواقع ، لا يتجاوز معدل نقل البيانات الفعلي من HDD 2 Gb / s. هذا ليس رقمًا كبيرًا ، نظرًا لأننا نخطط للتواصل على 4 منافذ جيجابت (كيفية تحويل 4x1Gbps إلى 4Gbps - سنناقش أكثر). كل شيء بسرعات وصول عشوائية أسوأ بكثير - هنا كل شيء يقع تقريبًا في مستوى الأقراص المرنة.


نظرًا لأن ملف تعريف تحميل القرص للعديد من أنظمة تشغيل الضيف بعيدًا عن الخطية ، أود أن أرى المزيد من الأرقام الممتعة. لتصحيح الوضع في نظام الملفات الخاص ببرنامج hypervisor (VMFS v6) ، يبلغ حجم الكتلة 1 ميغا بايت ، مما يساعد على ضغط العديد من العمليات العشوائية ويسرع الوصول إلى البيانات الموجودة على الأقراص الافتراضية. ولكن حتى مع هذا ، لن يكون القرص الفعلي واحدًا كافيًا للتعامل مع عمليات الإدخال / الإخراج من جميع "الضيوف".

سأحجز على الفور - كل شيء سيكون أكثر منطقية إذا كان لديك أكثر من محولي "شبكة التخزين". يمكن لـ ESXi بترخيص أحادي المعالج الاتصال ، بالإضافة إلى الأقراص المحلية ، بنوعين من التخزين - NFS و iSCSI. يتضمن NFS الوصول على مستوى الملف وهو أيضًا جيد بطريقته الخاصة. على ذلك ، يمكنك نشر الضيوف غير المتساهلين في أداء القرص. إنه لمن دواعي سروري أن النسخ الاحتياطي لهم. يمكنك فتح نفس كرة NFS في مكان آخر ونسخ لقطات vm. بشكل عام ، مع واجهة شبكة واحدة (إذا لم تكن 10GE ، بالطبع) - NFS هو اختيارك.

ISCSI له العديد من المزايا على NFS. من أجل تحقيقها بالكامل ، قمنا بالفعل بالاستعداد - بعد أن قمنا بالفعل بتركيب 4 منافذ جيجابت لشبكة التخزين. كيف يحدث توسيع النطاق الترددي للشبكة عادة بسرعة واجهة معروفة؟ هذا صحيح ، التجميع. ولكن من أجل الاستخدام الكامل للقناة المجمعة ، هناك حاجة إلى عدد من الشروط ، وهذا أكثر ملاءمة للتواصل بين المحولات أو لوصلة شبكة مفرطة. يوفر تنفيذ بروتوكول iSCSI وظيفة مثل تعدد المسارات (حرفيا ، العديد من المسارات) - القدرة على توصيل نفس الحجم من خلال واجهات شبكة مختلفة. بالطبع ، حول إمكانية موازنة التحميل هناك أيضًا ، على الرغم من أن الغرض الرئيسي هو التسامح مع خطأ شبكة التخزين. (في الإنصاف ، يدعم NFSv4.1 ربط الجلسة استنادًا إلى السحر الأكثر تقدمًا مثل RDMA و MPTCP ، ولكن هذه محاولة لتحويل مشاكل الوصول إلى الملف من رأس مؤلم إلى حالة صحية إلى مستويات أقل.)

لذا ، بداية سننشر هدفنا. نعتقد أن FreeNAS مثبت ، عنوان IP الخاص بالإدارة يشحن بانتظام واجهة الويب إلينا ، نقطع الصفيف و zvol عليه بما يتفق تمامًا مع قناعاتنا الداخلية. في حالتنا ، هذا هو محرك أقراص 4 × 500 جيجابايت مدمج في raidz1 (الذي يعطي 1.3 تيرابايت من السعة الفعالة فقط) ، و zvol بحجم 1 تيرابايت بالضبط. سنقوم بتهيئة واجهات شبكة i350 ، من أجل البساطة ، نقبل أن ينتمي الجميع إلى شبكات فرعية مختلفة.


ثم نقوم بتكوين كرة iSCSI باستخدام طريقة "التالي ، التالي ، تم". عند تكوين البوابة الإلكترونية ، لا تنس إضافة جميع واجهات الشبكة المخصصة لـ iSCSI هناك. يجب أن يبدو شيء مثل الصور.



ستحتاج إلى مزيد من الاهتمام إلى حد ما لتحديد المدى - عند تقديم وحدة تخزين ، من الضروري فرض حجم كتلة 512 بايت. بدون هذا ، رفض البادئ ESXi تحديد المجلدات المعروضة على الإطلاق. من أجل الإخلاص ، من الأفضل تعطيل أحجام probros للكتلة المادية (والتي ليست على zvol ولا يمكن ذلك) وتمكين وضع دعم Xen.
مع FreeNAS في الوقت الحالي.

من ناحية ESXi ، يصعب إنشاء شبكة. مرة أخرى ، نعتقد أنه تم تثبيت برنامج Hypervisor نفسه وإدارته على منفذ منفصل. ستحتاج إلى تحديد 4 واجهات VM Kernel تنتمي إلى 4 مجموعات منافذ مختلفة في 4 محولات افتراضية مختلفة. لكل من هذه المفاتيح منفذها الفعلي للوصلة الصاعدة. نأخذ عناوين vmk # ، بالطبع ، في الشبكات الفرعية المقابلة ، على نحو مشابه لتكوين منافذ التخزين. يعد ترتيب تعيين العناوين مهمًا بشكل عام - إما أن نقوم بتوصيل بطاقات منفذ إلى آخر بدون مفتاح ، أو نقدم روابط مختلفة لشبكات مختلفة (حسنًا ، هذا إذا كان بطريقة للبالغين) ، لذا فإن مطابقة المنفذ الفعلي مهمة.




عند إنشاء شبكة لـ iSCSI ، نولي اهتمامًا خاصًا لمعلمة MTU. هذا هو الحال تمامًا عندما يكون "الحجم مهمًا" - نحن نأخذ الحد الأقصى الذي يمكن لجميع مكونات الشبكة تثبيته. إذا كانت البطاقات متصلة مباشرة ، يمكنك توجيه mtu 9000 على كلا الجانبين ، على ESXi و FreeNAS. ومع ذلك ، ستدعم المفاتيح العادية هذه القيمة. نقوم ping ، ونرى أن الشبكة طبيعية ، وتمرر حزم الحجم المطلوب. عظيم. أشعلنا النار في البادئ.

قم بتشغيل iSCSI ، أضف عناوين IP إلى قسم التكوين الديناميكي (التخزين -> المحولات -> تكوين iSCSI -> الأهداف الديناميكية). بعد الحفظ ، سيتم استطلاع بوابات iSCSI على هذه العناوين ، سيحدد البادئ أن كل واحد منهم لديه نفس الحجم ويتصل به في جميع العناوين المتاحة (نفس المسار المتعدد). بعد ذلك ، نحتاج إلى إنشاء مخزن بيانات على الجهاز الذي يظهر.

بعد ذلك ، يمكنك طرح الجهاز الظاهري وقياس ما حصلنا عليه.


نتائج ليست مثيرة للإعجاب. افتح وحدة التخزين ، واعرض حالة الشبكة الحالية وقم بإجراء الاختبارات.

root@freenas:~ # systat -ifstat
ماذا نرى؟
  /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10 Load Average Interface Traffic Peak Total lo0 in 0.319 KB/s 0.893 KB/s 3.041 MB out 0.319 KB/s 0.893 KB/s 3.041 MB alc0 in 0.478 KB/s 1.233 KB/s 3.934 MB out 0.412 KB/s 1.083 KB/s 2.207 MB igb3 in 0.046 KB/s 0.105 KB/s 181.434 KB out 0.073 KB/s 0.196 KB/s 578.396 KB igb2 in 0.046 KB/s 0.105 KB/s 120.963 KB out 0.096 KB/s 0.174 KB/s 517.221 KB igb1 in 4.964 MB/s 121.255 MB/s 10.837 GB out 6.426 MB/s 120.881 MB/s 3.003 GB igb0 in 0.046 KB/s 0.105 KB/s 139.123 KB out 0.073 KB/s 0.210 KB/s 869.938 KB 


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

[root@localhost:~] esxcfg-mpath -b
naa.6589cfc000000b478db42ca922bb9308 : FreeNAS iSCSI Disk (naa.6589cfc000000b478db42ca922bb9308)

[root@localhost:~] esxcli storage nmp device list -d naa.6589cfc000000b478db42ca922bb9308 | grep PSP
Path Selection Policy: VMW_PSP_MRU


سياسة اختيار المسار هي MRU ، وهي الأحدث استخدامًا. تنتقل جميع البيانات إلى نفس المنفذ ، ولا تتم إعادة تحديد المسار إلا في حالة عدم توفر اتصال الشبكة. نتحول إلى Round-robin ، حيث تتغير جميع الواجهات بدورها بعد عدد معين من العمليات:

[root@localhost:~] esxcli storage nmp device set -d naa.6589cfc000000b478db42ca922bb9308 -P VMW_PSP_RR

نعيد تشغيل ESXi ونفتح المراقبة ونجري الاختبارات. نرى أن الحمل يتم توزيعه بالتساوي عبر محولات الشبكة (على الأقل قيم الذروة ، وكشط أكثر من اللازم) ، كما أن نتائج الاختبار أكثر متعة.

  Interface Peak igb3 in 43.233 MB/s out 46.170 MB/s igb2 in 42.806 MB/s out 45.773 MB/s igb1 in 43.495 MB/s out 45.489 MB/s igb0 in 43.208 MB/s out 46.079 MB/s 

هناك بعض الانحرافات على المنافذ ، ويرجع ذلك إلى حدود نهج تحديد المسار - عدد العمليات أو البايت ، وبعد ذلك يحدث التحول إلى منفذ آخر. بشكل افتراضي ، 1000 IOPS ، أي إذا كان تبادل البيانات ضمن 999 عملية ، فسيتم عبر منفذ شبكة واحد. يمكنك تغيير ومقارنة واختيار القيمة المناسبة. لا يمكنك التغيير ، الافتراضي كافٍ لمعظم المهام.

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

Source: https://habr.com/ru/post/ar423513/


All Articles