كيفية إعداد برنامج RAID لخادم ملفات بسيط على Ubuntu
هل تحتاج إلى خادم ملفات رخيص الثمن سهل الإعداد ، "صلب صلب" موثوق به مع خدمة Email Alerting؟ سيوضح لك كيفية استخدام Ubuntu وبرنامج RAID و SaMBa لإنجاز ذلك.
نظرة عامة
على الرغم من الطنين الأخير لنقل كل شيء إلى سحابة "كل الأقوياء" ، قد لا ترغب في بعض الأحيان في معلوماتك في خادم شخص آخر أو أنه من غير الممكن فقط تنزيل مجلدات البيانات التي تحتاجها من الإنترنت في كل مرة (على سبيل المثال نشر الصور ). لذا قبل أن تقوم بمسح مكان في ميزانيتك لحل التخزين ، ضع في اعتبارك تهيئة خالية من الترخيص مع Linux.
ومع ذلك ، فإن السفر بسعر رخيص / مجاني لا يعني "إلقاء الحذر على الرياح" ، ولهذا الغرض ، سنلاحظ النقاط التي يجب أن تكون على دراية بها ، والتشكيلات التي يجب وضعها في مكانها بالإضافة إلى استخدام برنامج RAID ، لتحقيق أقصى سعر لنسبة الموثوقية.
الصورة عن طريق فيلومينا سكاليز
حول البرنامج RAID
كما يوحي الاسم ، هذا هو إعداد RAID (صفيف مكرر من الأقراص غير مكلفة) يتم بشكل كامل في البرنامج بدلاً من استخدام بطاقة جهاز مخصصة. الميزة الرئيسية لمثل هذا الشيء هي التكلفة ، حيث أن هذه البطاقة المخصصة هي علاوة مضافة للتكوين الأساسي للنظام. تتمثل العيوب الرئيسية بشكل أساسي في الأداء وبعض الاعتمادية حيث تأتي هذه البطاقة عادةً مع RAM + CPU الخاصة بها لإجراء الحسابات المطلوبة لرياضيات التكرار ، وتخزين البيانات لزيادة الأداء ، والبطارية الاحتياطية الاختيارية التي تحافظ على العمليات غير المكتوبة في ذاكرة التخزين المؤقت حتى تمت استعادة الطاقة في حالة وجود خارج السلطة.
مع برنامج RAID الإعداد الخاص بك التضحية ببعض من أداء وحدة المعالجة المركزية في النظام من أجل الحد من التكلفة الإجمالية للنظام ، ولكن مع وحدات المعالجة المركزية اليوم ، فإن النفقات العامة ضئيلة للغاية (خاصة إذا كان هدفك الرئيسي هو تخصيص هذا الخادم ليكون "خادم ملفات"). بقدر ما يذهب أداء القرص ، هناك عقوبة ... ولكن لم أواجه أبدا اختناق من النظام الفرعي للقرص من الخادم لاحظ مدى عمق ذلك. إن دليل Tom's Hardware "Tom's goes RAID5" هو عجوز ، ولكنه مقال شامل جدير بالاهتمام حول الموضوع ، والذي استخدمه شخصيا كمرجع ، ومع ذلك ، خذ المقاييس بحبوب ملح لأنه يتحدث عن تنفيذ Windows لبرامج RAID (كما هو الحال مع كل شيء آخر ، أنا متأكد من أن لينكس أفضل بكثير: P).
المتطلبات الأساسية
- الصبر الشاب واحد ، وهذا هو قراءة طويلة.
- من المفترض أن تعرف ما هو RAID وما يستخدم من أجله.
- تمت كتابة هذا الدليل باستخدام Ubuntu server9.10 x64 ، لذلك من المفترض أن لديك نظامًا يستند إلى دبيان للعمل معه أيضًا.
- سترى لي استخدام VIM كبرنامج محرر ، وهذا فقط لأنني اعتدت عليه ... قد تستخدم أي محرر آخر تريد.
- تم تثبيت نظام Ubuntu الذي استخدمته لكتابة هذا الدليل على قرص قيد التشغيل. سمح لي ذلك باستخدام sda1 كجزء من مصفوفة RAID ، لذا اضبطه وفقًا لإعدادك.
- بناءً على نوع RAID الذي ترغب في إنشائه ، ستحتاج إلى قرصين على الأقل في نظامك ، وفي هذا الدليل ، نستخدم 6 محركات أقراص.
اختيار الأقراص التي تصنع الصفيف
الخطوة الأولى في تجنب الفخ هي معرفة وجودها (ثائر حوات من الكثبان الرملية).
اختيار الأقراص هو خطوة حيوية لا ينبغي الاستخفاف بها ، وسيكون من الحكمة أن تستفيد من خبرتك في التعامل مع التحذيرات والتحذيرات:
فعل ليس استخدام محركات الأقراص "درجة المستهلك" لإنشاء الصفيف الخاص بك ، استخدم محركات الأقراص "الملقم الصف"!!!!!!
الآن أنا أعرف ما رأيك ، لم نقول أننا سنذهب على رخيصة؟ نعم ، ولكن هذا هو بالضبط أحد الأماكن التي يكون فيها ذلك متهوراً ويجب تجنبه. على الرغم من السعر الجذاب ، إلا أن محركات الأقراص الثابتة ذات التصنيف الاستهلاكي غير مصممة للاستخدام في نوع "الاستخدام" 24/7. ثق بي ، لقد جربتك حقا هذا بالنسبة لك. فشلت أربع محركات أقراص على مستوى المستهلك في الخوادم الثلاثة التي قمت بإعدادها على هذا النحو (بسبب قيود الميزانية) بعد حوالي 1.5 إلى 1.8 سنة من يوم الإطلاق الأولي للخادم. في حين لم يكن هناك فقدان للبيانات ، لأن RAID فعلتها حسنا ونجحت ... لحظات كهذه تقصير متوسط العمر المتوقع لمسؤول النظام ، ناهيك عن تقليل الوقت الذي تستغرقه الشركة في صيانة الخادم (وهو أمر قد يؤدي في النهاية إلى تكبد تكاليف أكثر من محركات الأقراص ذات الدرجات الأعلى).
قد يقول البعض أنه لا يوجد فرق في معدل الفشل بين النوعين. قد يكون ذلك صحيحًا ، ومع ذلك ، على الرغم من هذه الادعاءات ، لا يزال هناك مستويات أعلى من القيود المفروضة على SMART و QAing في محركات الأقراص من فئة الخوادم (كما يمكن ملاحظتها من خلال حقيقة أنه لم يتم طرحها في السوق بمجرد ظهور محركات الأقراص الخاصة بالمستهلك) ، لذلك ما زلت أوصى بشدة أن تقوم بتفريغ خارج $$$ $$$ للترقية.
اختيار مستوى RAID.
بينما لن أذهب إلى جميع الخيارات المتاحة (وهذا موثق جيدًا في إدخال ويكيبيديا RAID) ، أشعر أنه من الجدير بالذكر أنه يجب عليك دائمًا اختيار RAID 6 أو أعلى على الأقل ( سنستخدم لينكس RAID10). هذا لأنه عندما يفشل القرص ، هناك فرصة أكبر لفشل القرص المجاور ومن ثم يكون لديك فشل "قرصين" على يديك. علاوة على ذلك ، إذا كنت تستخدم محركات الأقراص الكبيرة ، فكلما زادت الكثافة في كثافة البيانات على سطح الطبق ، تكون فرصة الفشل أعلى. سوف تقع دائما الأقراص IMHO من 2T وما بعدها في هذه الفئة ، لذلك كن على علم.
فلنسرع
تقسيم الاقراص
أثناء استخدام Linux / GNU ، يمكننا استخدام جهاز الحظر بالكامل لتلبية احتياجات التخزين ، وسوف نستخدم الأقسام لأنه يسهل استخدام أدوات الإنقاذ على القرص في حالة توقف النظام عن العمل. نحن نستخدم برنامج "fdisk" هنا ، ولكن إذا كان لديك استخدام أكبر للأقراص ثم 2T ، فستحتاج إلى استخدام برنامج تقسيم يدعم تقسيم GPT مثل مفترق.
sudo fdisk / dev / sdb
ملحوظة: لقد لاحظت أنه من الممكن إنشاء المصفوفة بدون تغيير نوع القسم ، ولكن لأن هذه هي الطريقة الموصوفة في جميع أنحاء الشبكة ، فسوف أتحذو حذوها (مرة أخرى عند استخدام جهاز الحظر بالكامل هذا غير ضروري).
مرة واحدة في FDISK هي ضربات المفاتيح هي:
ن لقسم جديد
أدخل
p لقسم أساسي
أدخل
1 عدد من التقسيم
أدخل ؛ قبول الافتراضي
أدخل ؛ قبول الافتراضي
ر لتغيير النوع
fd؛ يحدد النوع ليكون "الكشف التلقائي عن غارة لينكس" (83 ساعة)
ث كتابة التغييرات على القرص والخروج
شطف وتكرار لجميع الأقراص التي ستكون جزءا من الصفيف.
إنشاء مجموعة Linux RAID10
ميزة استخدام "لينكس "raid10" هو أنه يعرف كيف يستفيد من عدد غير محدود من الأقراص لتعزيز الأداء والمرونة حتى بعد ذلك الفانيلا RAID10 ، بالإضافة إلى أنه عند استخدامه يمكن إنشاء مجموعة "10" في واحد خطوة.
قم بإنشاء المصفوفة من الأقراص التي قمنا بإعدادها في الخطوة الأخيرة عن طريق إصدار:
sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 - raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -verbose
ملحوظة: هذا هو كل سطر واحد على الرغم من حقيقة أن التمثيل يكسرها إلى قسمين.
دعونا كسر المعلمات باستمرار:
- "-chunk = 256" - حجم البايتات يتم تقسيمها إلى شرائح ، وهذا الحجم الموصى به للأقراص الجديدة / كبيرة (محركات الأقراص 2T المستخدمة لجعل هذا الدليل كانت دون شك في هذه الفئة).
- "-level = 10" - يستخدم لينكس RAID10 (إذا كانت هناك حاجة إلى غارة تقليدية ، لأي سبب من الأسباب ، سيكون عليك إنشاء صفيفين والانضمام إليها).
- "-p f2" - يستخدم خطة التدوير "البعيدة" انظر الملاحظة أدناه لمزيد من المعلومات و "2" توضح أن الصفيف سيحتفظ بنسختين من البيانات.
ملحوظة: نحن نستخدم الخطة "البعيدة" لأن هذا يتسبب في أن يكون تخطيط البيانات الفعلي على الأقراص غير متماثل. هذا يساعد على التغلب على الحالة التي تفشل فيها الأجهزة الخاصة بأحد محركات الأقراص بسبب خطأ في التصنيع (ولا تعتقد أن "هذا لن يحدث لي" مثلما حدث لك فعلاً). يرجع ذلك إلى حقيقة أن القرصين هما من نفس الطراز والطراز ، وقد تم استخدامهما بنفس الأسلوب وكانا تقليديًا يحتفظان بالبيانات على نفس الموقع الفعلي ... ويكمن الخطر في أن محرك الأقراص الذي يحمل نسخة البيانات قد فشل أيضا أو هو قريب من ولن يوفر المرونة المطلوبة حتى يصل قرص بديل. تجعل الخطة "البعيدة" توزيع البيانات إلى موقع فعلي مختلف تمامًا على محركات أقراص النسخ بالإضافة إلى استخدام الأقراص غير القريبة من بعضها البعض داخل علبة الكمبيوتر. يمكن العثور على مزيد من المعلومات هنا وفي الروابط أدناه.
بمجرد إنشاء الصفيف ، ستبدأ عملية المزامنة الخاصة به. بينما قد ترغب في انتظار التقاليد (لأن هذا قد يستغرق بعض الوقت) ، يمكنك البدء في استخدام المصفوفة على الفور.
يمكن ملاحظة التقدم باستخدام:
watch -d cat / proc / mdstat
قم بإنشاء ملف التكوين mdadm.conf
على الرغم من أنه قد ثبت أن Ubuntu تعرف ببساطة أن تقوم بتفحص وتنشيط المصفوفة تلقائيًا عند بدء التشغيل ، ومن أجل اكتمالها ومجاملة لنظام sysadmin التالي ، سنقوم بإنشاء الملف. النظام الخاص بك لا يقوم تلقائياً بإنشاء الملف ويحاول تذكر جميع مكونات / أجزاء مجموعة RAID الخاصة بك ، هو الخصر لعقل مسؤول النظام. هذه المعلومات يمكن ، ويجب أن تبقى في ملف mdadm.conf. قد يكون التنسيق صعبًا ، ولكن من حسن الحظ أن إخراج الأمر mdadm -detail -scan -verbose يوفر لك.
ملحوظة: لقد قيل أن: "معظم التوزيعات تتوقع ملف mdadm.conf في / etc / ، وليس / etc / mdadm. أعتقد أن هذا هو "ubuntu-ism" للحصول عليه كـ /etc/mdadm/mdadm.conf ". يرجع ذلك إلى حقيقة أننا هي باستخدام Ubuntu هنا ، سوف نذهب فقط معه.
sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf
مهم! تحتاج إلى إزالة "0" واحد من الملف الذي تم إنشاؤه حديثًا لأن بناء الجملة الناتج عن الأمر أعلاه ليس صحيحًا تمامًا (جنو / لينكس ليس نظام تشغيل بعد).
إذا كنت ترغب في رؤية المشكلة التي يسببها هذا التكوين الخاطئ ، فيمكنك إصدار "مسح " الأمر عند هذه النقطة ، قبل إجراء التعديل:
mdadm - فحص - مسح
للتغلب على هذا ، قم بتحرير الملف /etc/mdadm/mdadm.conf والتغيير:
الفوقية = 00.90
ليقرأ:
الفوقية = 0.90
تشغيل mdadm - فحص - مسح الأمر الآن يجب أن يعود دون خطأ.
إعداد نظام الملفات على الصفيف
استعملت ext4 لهذا المثال لأنني بنيت فقط على معرفة نظام الملفات ext3 الذي جاء قبل ذلك مع توفير أداء وميزات أفضل واعدة.
أقترح أخذ الوقت الكافي للتحقيق في أي نظام ملفات يناسب احتياجاتك وتبدأ بداية جيدة لذلك هو "ما هو نظام ملفات Linux الذي يجب عليك اختياره؟".
sudo mkfs.ext4 / dev / md0
ملحوظة: في هذه الحالة لم أقم بتقسيم المصفوفة الناتجة ، لأنني ببساطة لم أكن بحاجة إليها في ذلك الوقت ، حيث طلب الطرف الطالب على وجه التحديد ما لا يقل عن 3.5T من المساحة المستمرة. مع ما قيل ، لو كنت أرغب في إنشاء أقسام ، كنت قد اضطررت إلى استخدام أداة قادرة على تقسيم GPT مثل "مفترق".
متزايد
إنشاء نقطة التحميل:
sudo mkdir / media / raid10
ملحوظة: هذا يمكن أن يكون أي مكان ، ما سبق هو مثال فقط.
لأننا نتعامل مع "أداة مجمعة" سنقوم بذلك ليس استخدم UUID الخاص بنظام الملفات الموجود على الجهاز لتركيبه (كما هو موصى به لأنواع أخرى من الأجهزة في دليل "ما هو linux fstab وكيف يعمل") حيث قد يرى النظام بالفعل جزءًا من نظام الملفات على قرص فردي حاول بشكل غير صحيح جبل عليه مباشرة. للتغلب على هذا نريد أن ننتظر صراحة أن يتم "تجميع" الجهاز قبل أن نحاول تركيبه ، وسنستخدم اسم المجموعة المجمعة ("md") داخل fstab لانجاز هذا.
تحرير ملف fstab:
sudo vim / etc / fstab
وأضف إليه هذا الخط:
/ dev / md0 / media / raid10 / ext4 defaults 1 2
ملحوظة: إذا قمت بتغيير موقع التحميل أو نظام الملفات من المثال ، فسيتعين عليك ضبط ما ورد أعلاه.
استخدم التثبيت مع المعلمة التلقائية (-a) لمحاكاة تمهيد النظام ، حتى تعرف أن التهيئة تعمل بشكل صحيح وأن جهاز RAID سيتم تثبيته تلقائيًا عند إعادة تشغيل النظام:
sudo جبل - أ
يجب أن تكون الآن قادرًا على رؤية المصفوفة المركبة مع الأمر "mount" بدون أي معلمات.
تنبيهات البريد الإلكتروني لـ RAID Array
على عكس صفائف RAID في الأجهزة ، مع مجموعة برامج لا توجد وحدة تحكم من شأنها أن تبدأ التنبيه لتخبرك عندما حدث خطأ ما. لذلك ، ستكون تنبيهات البريد الإلكتروني هي الطريقة الوحيدة لمعرفة ما إذا حدث شيء ما لقرص أو أكثر في الصفيف ، وبالتالي جعله الخطوة الأكثر أهمية.
اتبع دليل "كيفية إعداد تنبيهات البريد الإلكتروني على لينكس باستخدام Gmail أو SMTP" وعند الانتهاء ، يمكنك الرجوع إلى هنا لتنفيذ خطوات RAID المحددة.
تأكد من أن mdadm يمكن أن البريد الإلكتروني
الأمر أدناه ، سيخبر mdadm بإطفاء رسالة بريد إلكتروني واحدة وإغلاقها.
sudo mdadm --monitor --scan - test --oneshot
إذا نجحت ، فيجب أن تحصل على بريد إلكتروني ، مع توضيح حالة المصفوفة.
اضبط تهيئة mdadm لإرسال بريد إلكتروني عند بدء التشغيل
في حين أنه ليس من الضرورة المطلقة ، فمن الجيد الحصول على تحديث من وقت لآخر من الجهاز لإعلامنا بأن قدرة البريد الإلكتروني لا تزال تعمل وحالة الشرط. ربما لن تغرق برسائل البريد الإلكتروني لأن هذا الإعداد يؤثر فقط على الشركات الناشئة (التي لا يجب أن يكون هناك الكثير منها على الخوادم).
تحرير ملف التكوين mdadm:
sudo vim / etc / default / mdadm
أضف ال -اختبار المعلمة إلى DAEMON_OPTIONS القسم بحيث تبدو كالتالي:
DAEMON_OPTIONS = "- syslog - اختبار"
يمكنك إعادة تشغيل الجهاز فقط للتأكد من وجود "في الحلقة" ، ولكنها ليست ضرورية.
تكوين سامبا
يتيح تثبيت SaMBa على خادم Linux أن يتصرف مثل خادم ملفات Windows. ومن أجل الحصول على البيانات التي نستضيفها على خادم Linux المتاح لعملاء windows ، سنقوم بتثبيت SaMBa وتكوينه.
من المضحك أن نلاحظ أن اسم حزمة SaMBa عبارة عن لعبة تورية على بروتوكول Microsoft المستخدم لمشاركة الملفات يسمى SMB (Block Message Block).
في هذا الدليل ، يتم استخدام الخادم لأغراض الاختبار ، لذلك سنتمكن من الوصول إلى مشاركته بدون تتطلب كلمة مرور ، قد ترغب في حفر أكثر قليلاً في كيفية إعداد أذونات بمجرد اكتمال الإعداد.
كما يوصى بإنشاء مستخدم غير مميز ليكون مالك الملفات. في هذا المثال ، نستخدم مستخدم "المهوس" الذي أنشأناه لهذه المهمة. يمكن العثور على شرح حول كيفية إنشاء مستخدم وإدارة الملكية والأذونات في "إنشاء مستخدم جديد على Ubuntu Server 9.10" و "دليل المبتدئين لإدارة المستخدمين والمجموعات في لينكس".
تثبيت سامبا:
aptitude تثبيت السامبا
تعديل ملف تهيئة samba:
sudo vim /etc/samba/smb.conf
إضافة مشاركة تسمى "عام" والتي ستمنح الوصول إلى نقطة التحميل "/ media / raid10 / general" بإلحاق الملف أدناه.
[جنرال لواء]
path = / media / raid10 / general
قوة المستخدم = المهوس
قوة المجموعة = المهوس
قراءة فقط = لا
create mask = 0777
قناع الدليل = 0777
ضيف فقط = نعم
ضيف طيب = نعم
الإعدادات أعلاه تجعل المشاركة قابلة للعنونة بدون كلمة مرور لأي شخص ويجعل المالك الافتراضي للملفات "المستخدم".
لمعلوماتك ، تم أخذ ملف smb.conf هذا من خادم يعمل.
قم بإعادة تشغيل خدمة samba حتى يتم تفعيل الإعدادات:
sudo /etc/init.d/samba إعادة التشغيل
بمجرد القيام به يمكنك استخدام testparm الأمر لمعرفة الإعدادات المطبقة على خادم السامبا.
هذا هو ، يجب أن يكون الملقم الآن ، يمكن الوصول إليها من أي مربع ويندوز باستخدام:
\ خادم namegeneral
استكشاف الأخطاء وإصلاحها
عندما تحتاج إلى استكشاف مشكلة أو فشل قرص في صفيف ، أقترح الإشارة إلى ورقة الغش mdadm (وهذا ما أفعله ...).
بشكل عام يجب أن تتذكر أنه عند فشل القرص تحتاج إلى "إزالة" من الصفيف ، إيقاف تشغيل الجهاز ، استبدال محرك الفشل مع استبدال ثم "إضافة" محرك الأقراص الجديد إلى الصفيف بعد أن قمت بإنشاء القرص المناسب تخطيط (أقسام) على ذلك إذا لزم الأمر.
وبمجرد الانتهاء من ذلك ، قد ترغب في التأكد من إعادة إنشاء المصفوفة ومشاهدة التقدم مع:
watch -d cat / proc / mdstat
حظا سعيدا! :)
المراجع:
mdadm ورقة الغش
تتفكك مستويات RAID
وأوضح Linux RAID10
mdadm صفحة رجل القيادة
mdadm ملف التكوين الصفحة رجل
شرح قيود التقسيم
استخدام برنامج RAID لن يكلفك الكثير ... فقط صوتك ؛-)