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

عندما يتعلق الأمر بتخزين البيانات من أنواع مختلفة ، بالطبع ، يتبادر إلى الذهن على الفور مستودع للبيانات الموزعة. من الناحية النظرية البحتة ، هناك العديد من المزايا لمثل هذه الحلول: يمكنك استخدام أي أقراص ، ويعمل النظام على أي خوادم (حتى القديمة منها) ، ولا توجد حدود للتوسع عمليًا. هذا هو السبب في أن إدخال مثل هذا النظام قد بدأ منذ عدة سنوات في واحدة من أكبر الإدارات الروسية مع وحدات ليس فقط في جميع مناطق الاتحاد الروسي ، ولكن حتى في جميع المدن الكبيرة تقريبًا.
بعد تحليل الحلول المتاحة ، تم الاختيار لصالح Ceph. كان هناك عدد من الأسباب لهذا القرار:
• Ceph هو منتج ناضج إلى حد ما ، واليوم هناك تركيبات Ceph على بيتابايت من المعلومات.
• يشارك مجتمع كبير في التطوير (بما في ذلك نحن) ، مما يعني ظهور وظائف وتحسينات جديدة للتخزين.
• لدى Ceph بالفعل واجهة برمجة تطبيقات جيدة مع دعم لغات البرمجة المختلفة. كان هذا مهمًا لأنه من الواضح أنه يجب تحسين المنتج لتلبية متطلبات وتوقعات العميل.
• تكلفة التراخيص لا شيء. لا ، بالطبع ، يحتاج النظام إلى مزيد من التطوير ، ولكن في حالة المهام المحددة للعميل ، كان من الضروري إجراء تطوير إضافي ، فلماذا لا تفعل ذلك على أساس منتج مجاني؟
• أخيرا العقوبات. يجب التأمين على الشركات المملوكة للدولة أنه في المرة القادمة التي يأتي فيها شخص بفكرة فرض قيود عليها ، وبالتالي فإن الاعتماد على منتج أجنبي وخاصة أمريكي أمر خطير. شيء آخر ، المصدر المفتوح.
النتائج العمليةحدث إدخال Ceph تدريجياً على مدى عدة أشهر. أولاً ، تم إطلاق التخزين في المنطقة الوسطى ، ثم قمنا بتكرار الحل من خلال ربط مراكز البيانات الإقليمية. مع ظهور كل عقدة شبكة جديدة ، زاد أداء التخزين ، على الرغم من الزيادة في تدفق البيانات داخلها ، مما يضمن نقل المعلومات من منطقة إلى أخرى.
إحدى ميزات عمل أي منظمة كبيرة هي الحاجة إلى تخزين المعلومات غير المتجانسة ، والتي غالبًا ما تكون ملفًا ثنائيًا. كما تظهر الممارسة ، فإن الموظفين ببساطة ليس لديهم وقت لمعرفة نوع الملفات ، وتصنيفها ومعالجتها في الوقت المناسب - تمكن المعلومات من التراكم بشكل أسرع. ولكي لا تفقد بيانات مهمة محتملة للأنشطة التشغيلية ، من الضروري تنظيم التخزين المختص. على سبيل المثال ، بناءً على التخزين الموزع.
وفي عملية تنفيذ هذا المشروع ، توصلنا إلى العديد من الاستنتاجات حول استخدام Ceph:
الاستنتاج 1: تستبدل Ceph جميع حلول النسخ الاحتياطي تمامًاكما أظهرت الممارسة ، لا يتم إجراء النسخ الاحتياطي لمعظم المعلومات غير المنظمة على الإطلاق ، لأنه من الصعب للغاية تنفيذها. عند تنفيذ Ceph ، يتم الحصول على النسخ الاحتياطي كما لو كان "في شكل مكافأة". عند الإعداد ، نقوم ببساطة بتعيين معلمات النسخ المتماثل - عدد النسخ وموقع وضعها. إذا كان لدى العميل عدة مراكز بيانات ، يتم الحصول على تكوين كارثي لا يتطلب ببساطة نسخًا احتياطية إضافية إذا كان هناك 3-4 نسخ من البيانات على أقراص وخوادم مختلفة. يعمل مثل هذا النظام بشكل أفضل من أي حل للجهاز ، على الأقل في الوقت الحالي نتحدث عن كميات كبيرة من البيانات والأنظمة الموزعة جغرافيًا.
الاستنتاج 2: مع التركيبات الكبيرة ، فإن أداء Ceph يساوي 99٪ من أداء الشبكة.عندما قمنا بنقل البيانات من قاعدة بيانات PostgreSQL (المزيد عن ذلك أدناه) إلى التخزين القائم على Ceph ، كانت سرعة التحميل في معظم الحالات مساوية لعرض النطاق الترددي لشبكة نقل البيانات. إذا لم يكن الأمر كذلك في بعض الحالات ، فقد سمحت إعادة تكوين Ceph بتحقيق هذه السرعة. بالطبع ، نحن لا نتحدث عن 100 جيجابت / ثانية من الاتصالات ، ولكن مع قنوات البيانات القياسية للبنى التحتية الموزعة جغرافيًا ، من الممكن تمامًا تحقيق أداء نقطة نقطة Ceph من 10 ميجابت / ثانية أو 100 ميجابت / ثانية أو 1 جيجابت / ثانية. يكفي توزيع الأقراص بشكل صحيح وتكوين تجميع المعلومات.
الخلاصة 3: الشيء الرئيسي هو تكوين Ceph بشكل صحيح مع مراعاة خصوصيات الشركةبالحديث عن الإعدادات ، فإن الجزء الأكبر من الخبرة في عمل Ceph مطلوب في مرحلة تكوين النظام. بالإضافة إلى معلمات النسخ المتماثل ، يتيح لك الحل أيضًا تعيين مستويات الوصول وقواعد الاحتفاظ بالبيانات وما إلى ذلك. على سبيل المثال ، إذا كان لدينا مراكز حوسبة صغيرة في جميع أنحاء روسيا ، فيمكننا تنظيم الوصول السريع إلى المستندات والملفات التي تم إنشاؤها في منطقتنا ، بالإضافة إلى الوصول إلى جميع مستندات الشركة من أي مكان. سوف يعمل هذا الأخير بتأخيرات أطول قليلاً وسرعة أقل ، ولكن هذا "تركيز" المعلومات في مكان الملكية يخلق ظروفًا مثالية للمؤسسة.
الاستنتاج 4: عندما يتم تكوينه بالفعل ، يمكن لأي مسؤول Linux إدارة Cephربما تكون واحدة من أكثر الميزات اللطيفة لـ Ceph هي أن النظام يعمل بدون مشاركة بشرية غير ضرورية عندما يتم تكوينه بالفعل. أي ، اتضح أنه في مراكز البيانات الصغيرة البعيدة يكفي لاحتواء مسؤول Linux فقط ، لأن دعم شريحة Ceph التالية لا يتطلب أي معرفة إضافية.
الاستنتاج 5: إن استكمال Ceph بنظام الفهرسة الخارجية يجعل التخزين مناسبًا للبحث السياقيكما تعلم ، لا يوجد داخل Ceph فهرس يمكن استخدامه للبحث حسب السياق. لذلك ، عند إدخال كائن في التخزين ، من الممكن حفظ البيانات الوصفية التي تعمل بمثابة فهرس. حجمها صغير جدًا ، وبالتالي يمكن لنظام DBMS الارتباطي المنتظم التعامل معه بسهولة. بالطبع ، هذا نظام إضافي ، لكن هذا النهج يسمح لك بالعثور بسرعة على المعلومات حسب السياق بين الأحجام الضخمة من البيانات غير المنظمة.
بضع كلمات حول نقل البياناتينطوي المشروع الكبير على العديد من المراحل ، ولكن ربما كانت الأكثر إثارة للاهتمام بالنسبة لنا كانت عملية نقل كميات هائلة من البيانات من PostgreSQL إلى مستودع جديد. بعد إطلاق Ceph ، نشأت المهمة لترحيل البيانات من قواعد بيانات متعددة دون إيقاف الخدمات والعمليات التجارية وضمان سلامة المعلومات.
للقيام بذلك ، كان علينا أن نساهم في تطوير مشروع Ceph Open Source وإنشاء وحدة ترحيل pg_rbytea ، والتي يمكن العثور على شفرة المصدر الخاصة بها على الرابط (
https://github.com/val5244/pg_rbytea ). كان جوهر الحل هو نقل البيانات في وقت واحد من قاعدة البيانات المحددة إلى مستودع Ceph. تسمح لك الوحدة المطورة بترحيل البيانات على الفور دون إيقاف قاعدة البيانات ، باستخدام تجريد تخزين كائن Rados ، والذي يتم تنفيذ دعمه في Ceph على المستوى الأصلي. بالمناسبة ، قدمنا تقريرًا عن هذا في PG Conf في بداية عام 2018 (
https://pgconf.ru/2018/107082 ).
في المرحلة الأولى ، تم نقل البيانات الثنائية المختلفة اللازمة للعمل الوظيفي لأقسام القسم إلى المستودع. في الواقع ، كل هذه الملفات والكائنات غير الواضحة حول كيفية التخزين بسبب حجمها الإجمالي الضخم وهيكلها الضبابي. بعد ذلك ، من المقرر نقل محتوى وسائط مختلف إلى Ceph ، وتخزين المستندات الأصلية التي تم إنشاؤها قبل التعرف عليها ومرفقاتها من رسائل الشركة.
لكي يعمل كل هذا على الجزء العلوي من التخزين ، تم تطوير خدمات RESTful التي سمحت باستخدام Ceph للاندماج في أنظمة العملاء. هنا مرة أخرى ، لعب وجود واجهة برمجة تطبيقات ملائمة دورًا ، مما يسمح لك بإنشاء خدمة توصيل لأنظمة معلومات مختلفة. لذا أصبحت Ceph المستودع الرئيسي ، حيث تدعي المزيد والمزيد من أحجام وأنواع المعلومات داخل المنظمة.
الخلاصةتوجد مستودعات بيانات موزعة مختلفة في السوق ، بما في ذلك الحلول التجارية ومنتجات أخرى مفتوحة المصدر. يستخدم بعضها تحسينات خاصة ، والبعض الآخر يعمل مع الضغط أو يستخدم تشفير المحو. ومع ذلك ، في الواقع ، كنا مقتنعين بأن Ceph مناسب بشكل مثالي للبيئات الموزعة حقًا والمخازن الضخمة ، لأنه في هذه الحالة يقتصر أداء النظام على سرعة قنوات الاتصال فقط ، وتوفر لك الكثير من المال على التراخيص من خلال عدد الخوادم أو من خلال كمية البيانات (اعتمادًا على مع المنتج للمقارنة). يتيح لك نظام Ceph الذي تم ضبطه جيدًا ضمان الأداء الأمثل مع الحد الأدنى من الإشراف من قبل المسؤولين المحليين في الميدان. وهذه ميزة خطيرة إذا قدمت تطبيقًا موزعًا جغرافيًا.