منسق السحابة المرنة: ما الذي يؤكل به

منسق السحابة المرنة: ما الذي يؤكل به

لتقديم خدمة IaaS (مركز البيانات الافتراضي) ، نحن في روسونيكس باستخدام منسق تجاري منسق السحابة المرنة (وزارة الخارجية). يحتوي هذا الحل على بنية فريدة إلى حد ما ، والتي تميزه عن Openstack و CloudStack المعروفين.

يتم دعم KVM و VmWare و Xen و Virtuozzo6 / 7 ، بالإضافة إلى الحاويات من Virtuozzo نفسها باعتبارها برامج Hypervisor للعقد الحسابية. تشمل المخازن المدعومة التخزين المحلي و NFS و Ceph و Virtuozzo Storage.

يدعم FCO إنشاء وإدارة مجموعات متعددة من واجهة واحدة. وهذا يعني أنه يمكنك إدارة مجموعة Virtuozzo ومجموعة KVM + Ceph عن طريق التبديل بينهما بنقرة على الماوس.

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

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

منسق السحابة المرنة: ما الذي يؤكل به

من الناحية المعمارية ، يتكون FCO من عدة أجزاء ، لكل منها كود مستقل خاص به ، وبعضها لديه قاعدة بيانات خاصة به.

أفق - واجهة المسؤول والمستخدم
اليشم - منطق الأعمال والفواتير وإدارة المهام
TIGERLILY - منسق الخدمة ، ويدير وينسق تبادل المعلومات بين منطق الأعمال والمجموعات.
XVPManager - إدارة عناصر الكتلة: العقد والتخزين والشبكة والآلات الافتراضية.
XV وكيل - وكيل مثبت على العقد للتفاعل مع XVPManager

منسق السحابة المرنة: ما الذي يؤكل به

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

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

# cat /etc/extility/config/vars
…
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
…

يتم تصحيح التكوين بالكامل مبدئيًا في القوالب ، ثم يبدأ المولد
# build-config الذي سينشئ ملف vars ويوجه الخدمات لإعادة قراءة ملف config. واجهة المستخدم رائعة ويمكن تمييزها بسهولة.

منسق السحابة المرنة: ما الذي يؤكل به

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

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

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

تتم كتابة كل التخصيصات بلغة FDL ، والتي تستند إلى Lua. إذا كنت تعرف Lua ، فلن تكون هناك مشكلة مع FDL.

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

function register()
    return {"pre_user_api_publish"}
end
   
function pre_user_api_publish(p)  
    if(p==nil) then
        return{
            ref = "cancelPublishImage",
            name = "Cancel publishing",
            description = "Cancel all user’s images publishing",
            triggerType = "PRE_USER_API_CALL",
            triggerOptions = {"publishResource", "publishImage"},
            api = "TRIGGER",
            version = 1,
        }
    end

    -- Turn publishing off
    return {exitState = "CANCEL"}
   
end

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

والأهم من ذلك - إرجاع {exitState = "CANCEL"} ، هذا ما تم تصميم المشغل من أجله. سيعود بالفشل عندما يحاول المستخدم مشاركة صورته في لوحة التحكم.

في بنية FCO ، يتم تمثيل أي كائن (قرص ، خادم ، صورة ، شبكة ، محول شبكة ، إلخ) ككيان موارد ، له معلمات مشتركة:

  • UUID المورد
  • اسم المورد
  • نوع المورد
  • UUID مالك المورد
  • حالة المورد (نشطة ، غير نشطة)
  • البيانات الوصفية للمورد
  • مفاتيح الموارد
  • UUID للمنتج الذي يمتلك المورد
  • المورد VDC

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

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

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

FCO هو منتج كامل ، ووظائفه غنية جدًا ، لذلك نخطط لإعداد عدة مقالات في وقت واحد مع وصف مفصل لعمل جزء الشبكة.

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

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

المجموع: بشكل عام ، انطباعات المنتج جيدة. نحن على اتصال دائم مع مطوري المنسق. يقع الرجال على التعاون البناء.

على الرغم من بساطته ، يتمتع FCO بمجموعة واسعة من الوظائف. في المقالات المستقبلية ، نخطط للتعمق في الموضوعات التالية:

  • التشبيك في وزارة الخارجية والكومنولث
  • توفير بروتوكول الاسترداد المباشر وبروتوكول FQP
  • كتابة الإضافات والحاجيات الخاصة بك
  • توصيل خدمات إضافية ، مثل Load Balancer و Acronis
  • دعم
  • آلية موحدة لتكوين وتكوين العقد
  • معالجة البيانات الوصفية للجهاز الظاهري

Z.Y. اكتب في التعليقات إذا كنت مهتمًا بجوانب أخرى. ابقوا متابعين!

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

إضافة تعليق