يوجد لدى عدد كبير من تطبيقات Enterprise وأنظمة المحاكاة الافتراضية آليات خاصة بها لبناء حلول تتحمل الأخطاء. على وجه الخصوص ، Oracle RAC (Oracle Real Application Cluster) عبارة عن مجموعة من خوادم أوراكل لقاعدة بيانات أو أكثر تعمل معًا لتحقيق التوازن بين التحميل وتوفير التسامح مع الخطأ على مستوى الخادم / التطبيق. للعمل في هذا الوضع ، يلزم وجود تخزين مشترك يكون دوره عادةً هو التخزين.
كما ناقشنا بالفعل في أحد مقالاتنا ، في حد ذاته ، على الرغم من وجود مكونات مكررة (بما في ذلك وحدات التحكم) ، لا تزال أنظمة التخزين تعاني من نقاط فشل - بشكل رئيسي في شكل مجموعة بيانات واحدة. لذلك ، لبناء حل Oracle مع متطلبات الموثوقية المتزايدة ، يجب أن يكون مخطط "خوادم N - وحدة تخزين واحدة" معقدًا.
أولاً ، بالطبع ، عليك أن تقرر ما هي المخاطر التي نحاول تأمينها ضدنا. في هذه المقالة ، لن نفكر في الحماية من التهديدات مثل نيزك قد وصل. لذا ، سيظل بناء حل التعافي من الكوارث المشتت جغرافيا موضوعًا لأحد المقالات التالية. هنا نلقي نظرة على ما يسمى بحل الاسترداد بعد عطل فادح ، عندما تكون الحماية مبنية على مستوى خزائن الخادم. يمكن وضع الخزانات نفسها في نفس الغرفة ، أو في غرف مختلفة ، ولكن عادةً داخل نفس المبنى.
يجب أن تحتوي هذه الخزانات على كل مجموعة المعدات والبرامج الضرورية التي تضمن تشغيل قواعد بيانات Oracle بغض النظر عن حالة "الجوار". بمعنى آخر ، باستخدام حل الاسترداد بعد عطل فادح ، نزيل مخاطر الفشل:
- خوادم تطبيقات أوراكل
- أنظمة التخزين
- تبديل النظم
- الفشل الكامل لجميع المعدات في مجلس الوزراء:
- انقطاع التيار الكهربائي
- فشل نظام التبريد
- العوامل الخارجية (الإنسان ، الطبيعة ، إلخ)
يتضمن تكرار خوادم Oracle مبدأ Oracle RAC ذاته ويتم تنفيذه من خلال التطبيق. الازدواجية في أدوات التبديل هي أيضا ليست مشكلة. ولكن مع ازدواج نظام التخزين ، كل شيء ليس بهذه البساطة.
الخيار الأسهل هو النسخ المتماثل للبيانات من التخزين الأساسي إلى النسخ الاحتياطي. متزامن أو غير متزامن ، وهذا يتوقف على قدرات التخزين. يثير النسخ المتماثل غير المتزامن على الفور مسألة ضمان تناسق البيانات مع Oracle. ولكن حتى إذا كان هناك تكامل بين البرامج والتطبيق ، على أي حال ، في حالة وقوع حادث على نظام التخزين الرئيسي ، فسوف تكون هناك حاجة إلى تدخل يدوي من قبل المسؤولين من أجل تحويل الكتلة إلى التخزين الاحتياطي.
هناك خيار أكثر تعقيدًا هو البرامج و / أو الأجهزة "الظاهرية" لأنظمة التخزين ، والتي ستقضي على مشاكل الاتساق والتدخل اليدوي. لكن تعقيد النشر والإدارة اللاحقة ، فضلاً عن التكلفة غير اللائقة لمثل هذه الحلول ، يخيف الكثير.
فقط للسيناريوهات مثل الاسترداد بعد عطل فادح في حالة الكوارث ، تعد مجموعة All Flash AccelStor NeoSapphire ™ H710 باستخدام بنية Shared-Nothing مثالية . هذا النموذج عبارة عن نظام تخزين ثنائي يستخدم تقنية FlexiRemap® الخاصة به للعمل مع محركات أقراص فلاش. بفضل FlexiRemap® NeoSapphire ™ H710 ، يمكنه تقديم ما يصل إلى 600 كيلو بايت من الكتابة العشوائية IOPS @ 4K وقراءة عشوائية 1M + IOPS @ 4K ، والتي لا يمكن الوصول إليها من خلال التخزين الكلاسيكي القائم على RAID.
لكن الميزة الرئيسية لـ NeoSapphire ™ H710 هي تنفيذ عقدتين كحاويات منفصلة ، ولكل منها نسخته الخاصة من البيانات. تتم مزامنة العقدة من خلال واجهة InfiniBand الخارجية. بفضل هذه البنية ، يمكن نشر العقد عبر مواقع مختلفة على مسافات تصل إلى 100 متر ، وبالتالي توفير حل التعافي من الكوارث. كلا العقدتين تعمل تماما في وضع متزامن. من جانب المضيف ، يبدو H710 بمثابة وحدة تخزين عادية مزدوجة التحكم. لذلك ، لا يلزم إجراء أي خيارات إضافية للبرامج والأجهزة ، ولا سيما الإعدادات المعقدة.
إذا قارنت جميع حلول الاسترداد بعد عطل فادح الموضحة أعلاه ، فإن إصدار AccelStor يبرز عن الباقي:
| AccelStor NeoSapphire ™ شيء مشترك الهندسة المعمارية | برنامج أو جهاز "virtualizer" للتخزين | حل النسخ المتماثل |
---|
توفر |
فشل الخادم | لا توقف | لا توقف | لا توقف |
تبديل الفشل | لا توقف | لا توقف | لا توقف |
فشل التخزين | لا توقف | لا توقف | التوقف |
فشل مجلس الوزراء بأكمله | لا توقف | لا توقف | التوقف |
التكلفة والتعقيد |
تكلفة الحل | منخفض * | ارتفاع | ارتفاع |
صعوبة النشر | منخفض | ارتفاع | ارتفاع |
* لا يزال AccelStor NeoSapphire ™ عبارة عن مجموعة All Flash ، والتي لا تكلف بحكم تعريفها "3 كوبيل" ، لا سيما وأن لديها احتياطي مزدوج السعة. ومع ذلك ، عند مقارنة التكلفة الإجمالية للحل استنادًا إلى الحلول المماثلة من البائعين الآخرين ، يمكن اعتبار التكلفة منخفضة.
سيبدو الهيكل الخاص بتوصيل خوادم التطبيقات وعقد مجموعة All Flash كما يلي:
عند تخطيط الهيكل ، يوصى بشدة أيضًا بتكرار مفاتيح الإدارة وتوصيلات الخادم.
فيما يلي ، سنتحدث عن الاتصال عبر القناة الليفية. في حالة استخدام iSCSI ، سيكون كل شيء على حاله ، ويتم ضبطه لأنواع المحولات المستخدمة وإعدادات الصفيف المختلفة قليلاً.
الأعمال التحضيرية على مجموعة
تستخدم الأجهزة والبرامجمواصفات الخادم والتبديل
المكونات | وصف |
---|
خوادم أوراكل قاعدة بيانات 11g | اثنان |
خادم نظام التشغيل | أوراكل لينكس |
نسخة قاعدة بيانات أوراكل | 11 جم (RAC) |
معالجات لكل خادم | اثنين من 16 النواة Intel® Xeon® CPU E5-2667 v2 @ 3.30GHz |
الذاكرة الفعلية لكل خادم | 128GB |
شبكة FC | 16 جيجابت / ثانية FC مع تعدد المسارات |
FC HBA | Emulex Lpe-16002B |
منافذ 1GbE عامة مخصصة لإدارة الكتلة | إنتل محول إيثرنت rj45 |
16 جيجابت / ثانية التبديل FC | بروكيد 6505 |
منافذ خاصة 10 جيجابت مخصصة لتزامن البيانات | إنتل X520 |
AccelStor NeoSapphhire ™ جميع مواصفات صفيف الفلاش
المكونات | وصف |
---|
نظام التخزين | NeoSapphire ™ طراز التوفر العالي: H710 |
نسخة الصورة | 4.0.1 |
إجمالي عدد محركات الأقراص | 48 |
حجم محرك الأقراص | 1.92TB |
نوع محرك الأقراص | SSD |
منافذ الهدف FC | منافذ 16 × 16 جيجابت (8 لكل عقدة) |
منافذ الإدارة | يتصل كابل إيثرنت 1GbE بالمضيفين عبر مفتاح إيثرنت |
ميناء نبضات | توصيل كابل إيثرنت 1GbE بين عقدة تخزين اثنين |
منفذ تزامن البيانات | كابل InfiniBand بسعة 56 جيجابايت / ثانية |
قبل البدء في استخدام صفيف ، يجب أن تقوم بتهيئته. افتراضيًا ، يكون عنوان التحكم في كلا العقدتين هو نفسه (192.168.1.1). تحتاج إلى الاتصال بهم واحدًا تلو الآخر وتعيين عناوين إدارة جديدة (مختلفة بالفعل) وتكوين تزامن الوقت ، وبعد ذلك يمكن توصيل منافذ الإدارة بشبكة واحدة. بعد ذلك ، يتم دمج العقد في زوج HA عن طريق تخصيص شبكات فرعية لاتصالات Interlink.
بعد اكتمال التهيئة ، يمكنك التحكم في الصفيف من أي عقدة.
بعد ذلك ، قم بإنشاء وحدات التخزين الضرورية ونشرها لخوادم التطبيقات.
يوصى بشدة بإنشاء عدة مجلدات لـ Oracle ASM ، حيث سيؤدي ذلك إلى زيادة عدد الأهداف للخوادم ، مما سيؤدي في النهاية إلى تحسين الأداء الكلي (المزيد في قوائم الانتظار في مقال آخر).
اختبار التكويناسم حجم التخزين | حجم الحجم |
---|
Data01 | 200GB |
Data02 | 200GB |
Data03 | 200GB |
Data04 | 200GB |
Data05 | 200GB |
Data06 | 200GB |
Data07 | 200GB |
Data08 | 200GB |
Data09 | 200GB |
Data10 | 200GB |
Grid01 | 1GB |
Grid02 | 1GB |
Grid03 | 1GB |
Grid04 | 1GB |
Grid05 | 1GB |
Grid06 | 1GB |
Redo01 | 100GB |
Redo02 | 100GB |
Redo03 | 100GB |
Redo04 | 100GB |
Redo05 | 100GB |
Redo06 | 100GB |
Redo07 | 100GB |
Redo08 | 100GB |
Redo09 | 100GB |
Redo10 | 100GB |
بعض التفسيرات حول أوضاع التشغيل للصفيف والعمليات التي تحدث في حالات الطوارئ
تحتوي كل مجموعة بيانات عقدة على معلمة "رقم الإصدار". بعد التهيئة الأولية ، يكون هو نفسه ويساوي 1. إذا كان رقم الإصدار مختلفًا لسبب ما ، فهناك دائمًا تزامن البيانات من الإصدار الأقدم مع الإصدار الأصغر ، وبعد ذلك يتم محاذاة الرقم للإصدار الأصغر سناً ، أي هذا يعني أن النسخ متطابقة. أسباب اختلاف الإصدارات:
- إعادة تشغيل مجدولة لأحد العقد
- حادث في إحدى العقد بسبب إغلاق مفاجئ (الطاقة ، ارتفاع درجة الحرارة ، وما إلى ذلك).
- اتصال InfiniBand المعطلة مع عدم القدرة على المزامنة
- تحطم على واحدة من العقد بسبب تلف البيانات. سوف يتطلب الأمر بالفعل إنشاء مجموعة HA جديدة وتزامن كامل لمجموعة البيانات.
في أي حال ، تزيد العقدة المتبقية على الإنترنت من رقم الإصدار الخاص به ، بحيث بعد مزامنة مجموعة البيانات ، بعد إعادة الاتصال مع الزوج.
في حالة فقد الاتصال عبر ارتباط Ethernet ، فإن Heartbeat تتحول مؤقتًا إلى InfiniBand وتعود مرة أخرى خلال 10 ثوانٍ عند استعادتها.
تكوين المضيف
لضمان التسامح مع الخطأ وزيادة الأداء ، يجب تمكين دعم MPIO للصفيف. للقيام بذلك ، أضف أسطرًا إلى ملف /etc/multipath.conf ، ثم أعد تحميل خدمة المسارات المتعددة
النص المخفيالأجهزة {
الجهاز {
بائع "AStor"
path_grouping_policy "group_by_prio"
path_selector "قائمة الانتظار طول 0"
path_checker "tur"
ميزات "0"
معالج_الأجهزة "0"
prio "const"
الفشل الفوري
fast_io_fail_tmo 5
dev_loss_tmo 60
user_friendly_names نعم
detect_prio نعم
rr_min_io_rq 1
no_path_retry 0
}
}
علاوة على ذلك ، لكي يعمل ASM مع MPIO من خلال ASMLib ، تحتاج إلى تعديل ملف / etc / sysconfig / oracleasm ثم تشغيل /etc/init.d/oracleasm scandisks
النص المخفي# ORACLEASM_SCANORDER: مطابقة الأنماط لطلب مسح القرص
ORACLEASM_SCANORDER = "dm"
# ORACLEASM_SCANEXCLUDE: مطابقة الأنماط لاستبعاد الأقراص من الفحص
ORACLEASM_SCANEXCLUDE = "sd"
تعليق
إذا كنت لا ترغب في استخدام ASMLib ، فيمكنك استخدام قواعد UDEV ، والتي تعد أساس ASMLib.
بدءًا من الإصدار 12.1.0.2 من Oracle Database ، يتوفر الخيار للتثبيت كجزء من برنامج ASMFD.
تأكد من أن الأقراص التي تم إنشاؤها لـ Oracle ASM تتم محاذاتها مع حجم الكتلة الذي يعمل الصفيف فعليًا به (4K). خلاف ذلك ، قد تحدث مشاكل في الأداء. لذلك ، يجب عليك إنشاء وحدات تخزين مع المعلمات المناسبة:
افترق / ديف / معين / اسم الجهاز mklabel gpt mkpart الأساسي 2048s 100 ٪ محاذاة الاختيار الأمثل 1
توزيع قواعد البيانات على وحدات التخزين التي تم إنشاؤها لتكوين الاختبار الخاص بنا
اسم حجم التخزين | حجم الحجم | حجم LUNs رسم الخرائط | ASM حجم جهاز التفاصيل | تخصيص وحدة الحجم |
---|
Data01 | 200GB | خريطة جميع أحجام التخزين لنظام التخزين جميع منافذ البيانات | التكرار: طبيعي الاسم: DGDATA الغرض: ملفات البيانات
| 4MB |
Data02 | 200GB |
Data03 | 200GB |
Data04 | 200GB |
Data05 | 200GB |
Data06 | 200GB |
Data07 | 200GB |
Data08 | 200GB |
Data09 | 200GB |
Data10 | 200GB |
Grid01 | 1GB | التكرار: طبيعي الاسم: DGGRID1 الغرض: الشبكة: CRS والتصويت
| 4MB |
Grid02 | 1GB |
Grid03 | 1GB |
Grid04 | 1GB | التكرار: طبيعي الاسم: DGGRID2 الغرض: الشبكة: CRS والتصويت
| 4MB |
Grid05 | 1GB |
Grid06 | 1GB |
Redo01 | 100GB | التكرار: طبيعي الاسم: DGREDO1 الغرض: إعادة سجل من مؤشر الترابط 1
| 4MB |
Redo02 | 100GB |
Redo03 | 100GB |
Redo04 | 100GB |
Redo05 | 100GB |
Redo06 | 100GB | التكرار: طبيعي الاسم: DGREDO2 الغرض: إعادة سجل الخيط 2
| 4MB |
Redo07 | 100GB |
Redo08 | 100GB |
Redo09 | 100GB |
Redo10 | 100GB |
إعدادات قاعدة البيانات- حجم الكتلة = 8K
- مساحة المبادلة = 16GB
- تعطيل AMM (إدارة الذاكرة التلقائية)
- تعطيل صفحات ضخمة شفافة
الإعدادات الأخرى# vi /etc/sysctl.conf
✓ fs.aio-max-nr = 1048576
✓ fs.file-max = 6815744
ern kernel.shmmax 103079215104
ern kernel.shmall 31457280
ern kernel.shmmn 4096
ern kernel.sem = 250 32000 100 128
✓ net.ipv4.ip_local_port_range = 9000 65500
✓ net.core.rmem_default = 262144
✓ net.core.rmem_max = 4194304
✓ net.core.wmem_default = 262144
✓ net.core.wmem_max = 1048586
✓ vm.swappiness = 10
m vm.min_free_kbytes = 524288 # لا تقم بتعيين هذا إذا كنت تستخدم Linux x86
✓ vm.vfs_cache_pressure = 200
✓ vm.nr_hugepages = 57000
# vi /etc/security/limits.conf
soft شبكة لينة nproc 2047
✓ شبكة الصلب nproc 16384
✓ شبكة لينة nofile 1024
hard شبكة الصلب nofile 65536
✓ شبكة كومة لينة 10240
✓ شبكة كومة الثابت 32768
✓ أوراكل الناعمة nproc 2047
✓ أوراكل الصعب nproc 16384
✓ أوراكل لينة nofile 1024
✓ أوراكل الصعب nofile 65536
✓ أوراكل لينة كومة 10240
✓ أوراكل الصلب كومة 32768
✓ لينة memlock 120795954
✓ الثابت memlock 120795954
sqlplus "/ as sysdba"
تغيير عمليات مجموعة النظام = 2000 range = spfile؛
تبديل مجموعة النظام open_cursors = 2000 scope = spfile؛
تغيير مجموعة دورات session_cached_cursors = 300 نطاق = spfile ؛
تغيير مجموعة النظام db_files = 8192 scope = spfile؛
اختبار التسامح مع الخطأ
لأغراض العرض التوضيحي ، تم استخدام HammerDB لمضاهاة تحميل OLTP. تكوين HammerDB:
عدد المستودعات | 256 |
إجمالي المعاملات لكل مستخدم | 1000000000000 |
المستخدمين الظاهري | 256 |
نتيجة لذلك ، تم الحصول على مؤشر TPM 2.1M ، وهو أبعد ما يكون عن الحد الأقصى لأداء صفيف H710 ، لكنه "السقف" لتكوين الأجهزة الحالي للخوادم (يرجع أساسًا إلى المعالجات) وعددهم. لا يزال الغرض من هذا الاختبار هو إظهار التسامح مع الخطأ للحل ككل ، وليس لتحقيق أقصى أداء. لذلك ، سوف نبني ببساطة على هذا الرقم.
اختبار لفشل إحدى العقد
خسر المضيفون بعض المسارات إلى المتجر ، واستمروا في العمل من خلال المسارات المتبقية مع العقدة الثانية. انخفض الأداء لبضع ثوان بسبب إعادة هيكلة المسارات ، ثم عاد إلى طبيعته. لم يحدث انقطاع في الخدمة.
اختبار فشل مجلس الوزراء مع جميع المعدات
في هذه الحالة ، انخفض الأداء أيضًا لبضع ثوان بسبب إعادة هيكلة المسارات ، ثم عاد إلى نصف القيمة من المؤشر الأصلي. تم خفض النتيجة إلى النصف من الأصل بسبب الاستبعاد من تشغيل خادم تطبيق واحد. انقطاع الخدمة أيضا لم يحدث.
إذا كنت بحاجة إلى تنفيذ حل لاسترداد عطل الكوارث عبر نظام التحمل المسبق للأخطاء بتكلفة معقولة وبأقل مجهود في النشر / الإدارة ، فإن العمل مع Oracle RAC و AccelStor Shared-Nothing سيكون أحد أفضل الخيارات. بدلاً من Oracle RAC ، يمكن أن يكون هناك أي برامج أخرى تنص على التجميع ، أو أنظمة إدارة قواعد البيانات أو الأنظمة الافتراضية نفسها ، على سبيل المثال. سيبقى مبدأ بناء الحل كما هو. والنتيجة النهائية هي صفر ل RTO و RPO.