العقد والتجمعات في Azure Batch

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

الُعقد

العقدة عبارة عن جهاز ظاهري Azure (VM) أو جهاز ظاهري للخدمة السحابية مخصص لمعالجة جزء من حمل عمل التطبيق الخاص بك. يحدد حجم عقدة عدد الذواكر الأساسية للمعالج وسعة الذاكرة وحجم نظام الملفات المحلية التي يتم تخصيصها للعقدة.

يمكنك إنشاء تجمعات من عقد Windows أو لينكس باستخدام خدمات السحابة Azure أو الصور من سوق الأجهزة الظاهرية Azure أو الصور المخصصة التي تُعدها.

يمكن للعقد تشغيل أي ملف قابل للتنفيذ أو برنامج نصي مدعوم من قبِل بيئة نظام التشغيل للعقدة. تتضمن الملفات القابلة للتنفيذ أو البرامج النصية نصوص *.exe و*.cmd و *.bat و PowerShell (بالنسبة إلى Windows) والثنائيات، و shell، ونصوص Python (بالنسبة إلى Linux).

تشمل جميع عقد الحساب في الدُفعة أيضاً:

بشكل افتراضي، يمكن اتصال العقد مع بعضها البعض، ولكن لا يمكنها الاتصال مع الأجهزة الظاهرية التي ليست جزءاً من نفس التجمع. للسماح للعقد بالاتصال بأمان مع الأجهزة الظاهرية الأخرى، أو مع شبكة محلية؛ يمكنك توفير التجمع في شبكة فرعية من Azure virtual network (VNet). عند القيام بذلك، يمكن الوصول إلى العقد الخاصة بك من خلال عناوين IP العامة. يتم إنشاء عناوين IP العامة هذه عبر الدُفعة وقد تتغير خلال عمر التجمع. يمكنك أيضاً إنشاء تجمع مع عناوين IP عامة ثابتة التي تتحكم فيها، ما يضمن عدم تغييرها بشكل غير متوقع.

المجموعات

التجمع عبارة عن مجموعة العقد التي يعمل عليها التطبيق الخاص بك.

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

يتم تعيين اسم فريد وعنوان IP لكل عقدة يتم إضافتها إلى تجمع. عند إزالة عقدة من تجمع، يتم فقدان أي تغييرات يتم إجراؤها على نظام التشغيل أو الملفات، ويتم إصدار الاسم وعنوان IP للاستخدام في المستقبل. عندما تترك عقدة تجمعاً، يكون عمرها قد انتهى.

يمكن استخدام تجمع فقط من قبِل حساب الدفعة الذي تم إنشاؤه فيه. يمكن لحساب الدُفعة إنشاء تجمعات متعددة لتلبية متطلبات الموارد للتطبيقات التي سوف يشغّلها.

يمكن إنشاء التجمع يدوياً أو تلقائياً عبر خدمة الدُفعة عندما تحدد العمل الذي سيتم القيام به. عند إنشاء تجمع، يمكنك تحديد السمات التالية:

هام

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

نظام التشغيل وإصداره

عند إنشاء تجمع دُفعة، يمكنك تحديد تكوين الجهاز الظاهري Azure ونوع نظام التشغيل الذي تريد تشغيله على كل عقدة حساب في التجمع.

تكوينات

تكوين جهاز ظاهري

يحدد تكوين الجهاز الظاهري أن التجمع يتكون من أجهزة Azure الظاهرية. يمكن إنشاء هذه الأجهزة الظاهرية من Linux أو صور Windows.

عامل العقدة الدفعة هو برنامج يعمل على كل عقدة في التجمع ويوفر واجهة الأمر والتحكم بين العقدة وخدمة الدفعة. هناك تطبيقات مختلفة لعامل العقدة، والمعروفة باسم وحدة حفظ المخزون، لأنظمة تشغيل مختلفة. عند إنشاء تجمع استناداً إلى تكوين الجهاز الظاهري، يجب عليك تحديد ليس فقط حجم العقد ومصدر الصور المُستخدمة في إنشائها، ولكن أيضاً مرجع صورة الجهاز الظاهري ووحدة حفظ المخزون لعامل عقدة الدُفعة ليتم تثبيتها على العقد. لمزيد من المعلومات حول تحديد خصائص التجمع، راجع توفير Linux لعقد الحساب في تجمعات Azure Batch. يمكنك إرفاق قرص بيانات فارغ أو أكثر بشكل اختياري لتجميع الأجهزة الظاهرية التي تم إنشاؤها من صور Marketplace، أو تضمين أقراص البيانات في الصور المخصصة المُستخدمة لإنشاء الأجهزة الظاهرية. عند تضمين أقراص البيانات، تحتاج إلى إدخال وتنسيق الأقراص داخل الجهاز الظاهري لاستخدامها.

وحدة حفظ المخزون لعامل العقدة

عند إنشاء تجمع، تحتاج إلى تحديد nodeAgentSkuId المناسبة اعتماداً على نظام التشغيل للصورة الأساسية لوسيط VHD الخاص بك. يمكنك الحصول على تعيين معرفات SKU عامل عقدة متوفرة إلى مراجع صورة نظام التشغيل الخاصة بهم عن طريق استدعاء عملية "قائمة معتمدة لـ SKU عامل العقدة".

صور مخصصة لتجمعات الجهاز الظاهري

لمعرفة كيفية إنشاء تجمع مع الصور المخصصة، راجع استخدام Azure Compute Gallery لإنشاء تجمع مخصص.

دعم الحاوية في تجمعات الجهاز الظاهري

عند إنشاء تجمع تكوين الجهاز الظاهري باستخدام واجهات برمجة التطبيقات الدفعية، يمكنك إعداد التجمع لتشغيل المهام في حاويات Docker. حالياً، يجب إنشاء تجمع باستخدام صورة تدعم حاويات Docker. استخدم مركز بيانات Windows Server 2016 مع صورة الحاويات من سوق Azure، أو قم بتوفير صورة جهاز ظاهري مخصصة تتضمن إصدار مجتمع Docker أو إصدار المؤسسة وأي برامج تشغيل مطلوبة. يجب أن تتضمن إعدادات التجمع تكوين حاوية ينسخ صور حاوية إلى الأجهزة الظاهرية عند إنشاء التجمع. يمكن للمهام التي تعمل على التجمع الإشارة إلى صور الحاوية وخيارات تشغيل الحاوية.

لمزيد من المعلومات، راجع تشغيل تطبيقات حاوية Docker على Azure Batch.

نوع العقدة والهدف

عند إنشاء تجمع، يمكنك تحديد أنواع العقد التي تريدها والرقم المستهدف لكل منها. نوعان العقد هما:

  • العقد المخصصة. يتم حجز عقد الحوسبة المخصصة لأحمال العمل الخاصة بك. فهي أكثر تكلفة من العقد الموضعية، ولكنها مضمونة بعدم استباقها مطلقاً.
  • العقد الموضعية. تستفيد العقد الموضعية من سعة الفائض في Azure لتشغيل أحمال العمل الدفعية الخاصة بك. إن العقد الموضعية أقل تكلفة في الساعة من العقد المخصصة، وتُمكّن أعباء العمل التي تتطلب طاقة حساب كبيرة. لمزيد من المعلومات، راجع استخدام أجهزة Spot الظاهرية باستخدام Batch.

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

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

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

للحصول على معلومات حول كلاً من العُقد الموضعية والعقد المخصصة، راجع التسعير الدفعي.

حجم العقدة

عند إنشاء تجمع Azure Batch، يمكنك الاختيار من بين جميع مجموعات الأجهزة الظاهرية والأحجام المتوفرة في Azure. تقدم Azure مجموعة من أحجام الأجهزة الظاهرية لأحمال العمل المختلفة، بما في ذلك أحجام الأجهزة الظاهرية المُمكنة بـ HPC أو GPU. لاحظ أنه يمكن اختيار أحجام العقد فقط في وقت إنشاء التجمع. بمعنى آخر، بمجرد إنشاء تجمع، يتعذر تغيير حجم عقده.

لمزيد من المعلومات، راجع اختر حجم جهاز ظاهري لعقد الحساب في تجمع Azure Batch.

نهج التحجيم التلقائي

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

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

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

يمكن أن تستند صيغة التحجيم إلى المقاييس التالية:

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

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

لمزيد من المعلومات حول تحجيم تطبيق تلقائيا، راجع قياس عقد الحساب تلقائياً في تجمع Azure Batch.

تلميح

لتعظيم استخدام موارد الحساب، قم بتعيين العدد المستهدف للعقد إلى الصفر في نهاية الوظيفة مع السماح بإنهاء المهام قيد التشغيل.

نهج جدولة المهام

يحدد خيار الحد الأقصى للمهام لكل تكوين عقدة الحد الأقصى لعدد المهام التي يمكن تشغيلها بالتوازي على كل عقدة حساب داخل التجمع.

يحدد التكوين الافتراضي تشغيل مهمة واحدة في كل مرة على عقدة، ولكن هناك سيناريوهات حيث يكون من المفيد تنفيذ مهمتين أو أكثر على عقدة في وقت واحد. راجع مثال السيناريو في مقالة مهام العقد المتزامنة لمعرفة كيف يمكنك الاستفادة من مهام متعددة لكل عقدة.

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

حالة الاتصال

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

يمكنك تكوين تجمع للسماح بالاتصال الداخلي بحيث يمكن اتصال العقد داخل تجمع في وقت التشغيل. عند تمكين الاتصال الداخلي، يمكن للعقد في تجمعات تكوين الخدمات السحابية الاتصال مع بعضها البعض على منافذ أكبر من 1100، ولا تقيد تجمعات تكوين الجهاز الظاهري حركة المرور على أي منفذ.

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

بدء المهام

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

حزم التطبيق

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

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

تكوين الشبكة الظاهرية (VNet) وجدار الحماية

عند توفير تجمع من عقد الحساب في دُفعة، يمكنك إقران التجمع مع شبكة فرعية من Azure virtual network (VNet). لاستخدام Azure VNet، يجب أن تستخدم واجهة برمجة تطبيقات عميل Batch مصادقة Microsoft Entra. يتم توثيق دعم Azure Batch لمعرف Microsoft Entra في حلول خدمة مصادقة Batch باستخدام Active Directory.

متطلبات VNet

لمزيد من المعلومات حول إعداد تجمع دفعي في VNet، راجع إنشاء تجمع من الأجهزة الظاهرية باستخدام الشبكة الظاهرية.

تلميح

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

مدة عمر عقدة الحساب والتجمع

عند تصميم الحل Azure Batch، يجب تحديد كيفية وتوقيت إنشاء التجمعات، ومدة الحفاظ على توفر عقد الحساب في تلك التجمعات.

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

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

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

التجمع التلقائي

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

الأمان والشهادات

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

يمكنك استخدام عملية إضافة شهادة (دفعة REST) أو أسلوب CertificateOperations.CreateCertificate (دفعة .NET) لإضافة شهادة إلى حساب دفعي. يمكنك بعد ذلك إقران الشهادة بتجمع جديد أو قائم.

عند اقتران شهادة بتجمع، تثبت خدمة الدفعة الشهادة على كل عقدة في التجمع. تثبت خدمة الدفعة الشهادات المناسبة عند بدء تشغيل العقدة، قبل بدء تشغيل أي مهام (بما في ذلك مهمة البدء ومهمة job manager).

إذا قمت بإضافة شهادة إلى تجمع قائم، يجب إعادة تمهيد عقد الحساب كي يتم تطبيق الشهادة على العقد.

الخطوات التالية