it-swarm.asia

ما هو تكوين RAID الموصى به لقاعدة بيانات Oracle؟

RAID (المصفوفات الزائدة للأقراص الرخيصة) يأتي مع تكوينات مختلفة (RAID-0 ، RAID-1 ...). ما هو تكوين RAID الموصى به الذي يجب إعداده واستخدامه عند تثبيت قاعدة بيانات Oracle. سيتم استخدام قاعدة البيانات بشكل أساسي كمخزن للبيانات.

16
Eddie Awad

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

النظر في المناقشة في AskTom ، منتديات OTN ، منتديات OTN 2 ، و منتديات OTN .

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

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

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

--تعديل--

قد تتكون كل " مجموعة أقراص " من قرص أو دليل أو ملف أو أكثر على النظام الفرعي المناسب. Oracle توصي "للحصول على أفضل أداء وموثوقية ، اختر جهاز RAID أو وحدة تخزين منطقية على أكثر من جهاز مادي وقم بتنفيذ منهجية الشريط والمرايا لكل شيء (SAME)." عند وضع الملفات على نظام الملفات. يقرأ ذلك كما لو أن أوراكل توصي RAID 1 + 0.

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

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

13
Brian Ballsun-Stanton

إذا كان لديك محركان فعليان:

RAID0: سريع ولكن بدون تكرار. سيؤدي أي خطأ في محرك الأقراص إلى إنهاء الصفيف بالكامل. يضع بعض الأشخاص تخزينًا مؤقتًا على RAID0 (أي tempdb ضمن MSSQL) ، لكنني ما زلت أعتبر هذا الأمر خطيرًا حيث لن تفقد أي بيانات ذات مغزى إذا سقطت الصفيف ، فسيكون لديك انقطاع في الخادم حتى يتم إصلاحه.

RAID1: اذهب لهذا إذا كان لديك محركين. لا توجد ميزة لأداء الكتابة على الرغم من أنك قد تلاحظ زيادة في أداء القراءة باستخدام وحدة تحكم جيدة. السمة الرئيسية لـ RAID1 هي النجاة من أحد محركات الأقراص التي تموت.

إذا كان لديك ثلاثة محركات أقراص فعلية:

اختياراتك هي RAID5 ، أو RAID10 غير القياسي ثلاثي المحركات (أو RAID1E كما تشير إليه وحدات تحكم IBM) إذا كان مدعومًا. يمكنك بالطبع استخدام RAID1 والاحتفاظ بمحرك الأقراص الإضافي كاحتياطي عندما يفشل أحدهما الآخر ، ولكن يجب عليك الاحتفاظ بقطع الغيار في بيئة حرجة للمهمة على أي حال حتى لا يحدث ذلك.

يوفر RAID5 مساحة أكبر من RAID10 (محركان يستحقان بدلاً من واحد ونصف) ولكن لديه مشكلة محتملة في أداء الكتابة كما هو الحال بالنسبة لكل كتلة مكتوبة يحتاجها جهاز التحكم لقراءة كتلة التماثل وتحديثها وكتابتها مرة أخرى. يمكن مضاعفة مشكلة أداء الكتابة هذه في عمليات كتابة قاعدة البيانات حيث يوجد كتابتان على الأقل لكل تحديث: إحداهما إلى سجل المعاملات والأخرى إلى مناطق البيانات الفعلية. نظرًا لأن المساحة رخيصة في هذه الأيام ، فإنني أوصي بـ RAID10 ثلاثي المحركات إذا كان مدعومًا لأداء كتابة أفضل. يقدم برنامج RAID من Linux هذا ، كما يفعل العديد من وحدات تحكم IBM (يسمونه RAID1E). قد تجده تحت أسماء أخرى أيضًا لأنه لا يعتبر ترتيبًا قياسيًا لذلك ليس لديه اسم قياسي.

يعطي كل من R5 و R10-over-three نفس التكرار (أي محرك أقراص واحد يمكن أن يفشل في كل مرة وسيبقى الصفيف) ومقاييس أداء قراءة مماثلة (مماثلة لصفيف RAID0 ثنائي المحرك).

إذا كان لديك أربعة محركات أقراص فعلية:

في حالة إنشاء صفيف واحد فقط ، فهناك خياران (تجاهل الاختلافات "الساخنة"): RAID6 و RAID10 "التقليدي" (RAID0 من RAID1s).

كلاهما يعطي نفس المساحة (محركين من أربعة). يوفر RAID6 تكرارًا أفضل حيث يمكن أن يفشل أي محركين في الوقت الذي يمكن لـ RAID10 فيه البقاء على قيد الحياة في أربعة من المواقف الستة المحتملة لمحركين فقط. كلاهما يعطي أداء قراءة simialr ولكن RAID6 لديه مشكلة في أداء الكتابة مشابهة لـ RAID5's (نفس الشيء على وحدة تحكم جيدة ، على الرغم من أنه يمكن أن يكون أبطأ من RAID5 على وحدة تحكم سيئة أو مع برنامج RAID اعتمادًا على إمكانات تحكم I/O لنظام التشغيل. يفضل عادةً لقواعد البيانات لأسباب تتعلق بالأداء - إذا كنت بحاجة إلى تكرار إضافي ، يمكنك استخدام ستة محركات أقراص ولديك RAID0 أو 2 RAID1 ذات 3 محركات أقراص.

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

إذا كان لديك أكثر من أربعة محركات أقراص:

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

  • 4x كـ RAID10 لمناطق النظام (OS ، SQL Server (MSSQL في حالتنا) ، مبادلة ، tempdb).
  • 4x كـ RAID10 لملفات البيانات
  • 4x كـ RAID10 لسجلات المعاملات

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

بالطبع هذا مبالغة خطيرة لبعض قواعد البيانات (لن يكون هناك فائدة من تشغيل خادم مدونة صغير بهذه الطريقة!) ولكن تطبيقنا الرئيسي يعمل بشكل جيد للغاية مع هذا الترتيب.

إذا كان لديك ستة محركات أقراص ، يمكنك التفكير في ثلاثة صفائف RAID1 ، أو صفيفين RAID10 ثلاثيي السواقات.

بشكل عام

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

  • تجنب RAID5 و 6 إلا إذا كنت تعرف أن مشكلة أداء الكتابة لن تؤثر عليك بشكل كبير
  • مع أربعة أو أكثر من محركات الأقراص المستندة إلى القرص الدوار ، تنظر في تقسيم الأشياء على مصفوفات متعددة لتقليل حركات الرأس (لن تنطبق الفائدة الكاملة من المصفوفات المتعددة على أقراص SSD جيدة حيث لا توجد حركات رأسية فعلية للنظر فيها ، على الرغم من أنك قد ترى بعض الاختلاف اعتمادًا على استراتيجية الجمع بين كتابة وحدة تحكم SSDs وما إلى ذلك)
  • الاختبار والاختبار والاختبار مرة أخرى: من الجيد دائمًا محاولة إيجاد الوقت للتحقق من أن الترتيب الذي اخترته هو الأمثل حقًا

الأجهزة أو برامج RAID؟

كان من المعتاد أن أداء برنامج RAID كان أقل من أداء جهاز RAID لـ RAID 5 بسبب حسابات التكافؤ ولجميع الترتيبات بسبب بطء الواجهات بين محركات الأقراص ووحدة المعالجة المركزية. مع وحدات المعالجة المركزية الحديثة ، لا تعد مشكلة حساب التكافؤ مشكلة حقًا ، ولكن إذا كان لديك محركات أقراص سريعة جدًا ، فلا يزال بإمكان RAID الفوز إذا كانت السرعة الإجمالية لمحركات الأقراص في أي مكان بالقرب (ضمن ترتيب من الحجم ، عند التخمين) إلى مدى سرعة الجهاز في التحدث إلى وحدة تحكم القرص. إذا كان لديك صفيف RAID1 بأربعة محركات أقراص (أي أربع نسخ من نفس البيانات للكثير من التكرار) مع برنامج RAID ، ستؤدي كل عملية كتابة إلى إرسال نظام التشغيل أربع مجموعات من البيانات إلى وحدة تحكم الإدخال/الإخراج ، ربما بالتتابع - مع جهاز جهاز التحكم يرسل نظام التشغيل فقط طلب كتابة واحد ويرسل جهاز التحكم ذلك إلى محركات الأقراص الأربعة ، على الأرجح بالتوازي.

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

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

عادة ما يجمع RAID للأجهزة الرخيصة بين سلبيات RAID والبرامج والأجهزة مع القليل (أو لا شيء) من فوائد أي منهما لذا من الأفضل تجنبه.

أميل إلى استخدام برنامج RAID على خوادم التطوير والاختبار و UAT وأجهزة RAID الجيدة للخوادم التي تشغل خدمات مباشرة تواجه العملاء/الجمهور.

10
David Spillett

يحتوي " دليل ضبط أداء قاعدة بيانات أوراكل" على فصل مخصص تكوين الإدخال/الإخراج . بالمختصر:

  • استخدام الشريط (أجهزة RAID ، برامج RAID ، ASM)
  • لا تستخدم RAID5 للأرشفة وإعادة السجلات
  • محاذاة حجم كتلة نظام الملفات وحجم كتلة DB
5
Benoit

في بعض الحالات ، يكون JBOD هو الجواب الصحيح (أي لا RAID).

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

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

النسخ المطابق (RAID1) متسامح مع الأخطاء ، وهو أسرع للقراءة (كما يمكنك القراءة من أي عمود غير مشغول) ، ولكن يمكن أن يكون أبطأ بالنسبة للكتابة حيث يتعين عليك الانتظار حتى يتم نسخ كلتا النسختين.

لن أذهب أبدًا إلى RAID5 أو RAID6 في قاعدة بيانات. إذا كانت البيانات مهمة ، قم بشراء المزيد من الأقراص واذهب مع RAID1 ؛ RAID5/6 بطيء (خاصة في البرنامج) ، ومع أحجام محركات الأقراص الثابتة اليوم قد تستغرق أيام لإعادة البناء بعد استبدال الأقراص الفاشلة لمجموعة أقراص كبيرة. .. ناهيك عن أن الطريقة التي تتعامل بها معظم أنظمة RAID5/6 مع أخطاء التماثل هي فقط إعادة حساب التماثل ... ولكن الاحتمالات هي أن الخطأ في البيانات وليس التماثل ولكن ليس لديك أي فكرة عن مكان الخطأ. (للأسف ، لا أعتقد أن هناك شيء مثل LOCKSS لقواعد البيانات)

...

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

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

...

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

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

4
Joe

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

3
Tangurena

ما مقدار البيانات التي تخطط لاستخدامها وكم مرة ستقرأ مقابل الكتابة من النظام؟ هناك الكثير من التخطيط لهذا الأمر ، بما فيه الكفاية بحيث يكرس بعض الناس مهنة أكاديمية كاملة لهذا الموضوع.

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

الأساسيات مثل هذا:

RAID0

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

RAID1

كبيرة للموثوقية. لا يمكن توسيعه كثيرًا. جيد جدا في السرعة.

RAID5

المزيج المفضل بين RAID0 و RAID1 (من نوع).

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

2
jcolebrand