البحث في الموقع
المحتوى عن 'قرص صلب'.
-
واحدة من أسهل الطرق لزيادة استجابة خادومك وجعله قويًا ضدّ أخطاء الذاكرة التي قد تطرأ على تطبيقاتك التي تشغّلها عليه هي عبر إضافة مساحة Swap. Swap هي مساحة من القرص الصلب يتم تعريفها على أنّها مكان يمكن لنظام التشغيل تخزين البيانات فيها مؤقتًا في حال عدم توفّر مكان لذلك على الذاكرة العشوائية (RAM). يعطيك هذا القدرة على زيادة كميّة المعلومات التي يمكن لخادومك الاحتفاظ بها في "ذاكرته" ريثما يعمل. سيتم استخدام المساحة من على القرص الصلب مؤقتًا عندما لا يكون هناك مساحة كافية في الذاكرة العشوائية لحفظ البيانات. المعلومات التي يتم كتابتها على القرص الصلب ستكون أبطء في الاستجابة من تلك الموجودة في الذاكرة العشوائية، ولكنّ نظام التشغيل سيفضّل الإبقاء على بيانات التطبيق العامِلة حاليًا في الذاكرة العشوائية مع استخدام قرص Swap للبيانات الأقدم. بشكلٍ عام، يعتبر امتلاك قرص Swap صمّام أمانٍ فاصل يتم استعماله تلقائيًا عند نضوب الذاكرة العشوائية من خادومك. في هذا الدرس، سنشرح كيفية إنشاء وتمكين ملفّ swap على توزيعة Ubuntu 14.04. ملاحظة: على الرغم من أنّ قرص Swap مستحسن للأنظمة التي تستخدم الأقراص الصلبة التقليدية، إلّا أنّ استخدام Swap مع أقراص SSD يمكن أن يسبب مشاكل وتهتّكًا للعتاد مع مرور الوقت. القيام بذلك قد يؤثر على بنية العتاد التحتية التي توفّر الخدمة لك ولجيرانك. إذا كنت تحتاج تحسين أداء خادومك، فإننا ننصحك بترقيته. سيوفّر لك هذا نتائج أفضل بما يتعلّق بالأداء وسيقلّص من احتمالية حصول مشاكل مع العتاد. التحقق من معلومات Swap على النظام قبل أن نبدأ، سنأخذ جولةً على نظام التشغيل الخاصّ بنا لنرى ما إذا كنّا نمتلك بالفعل قرص Swap أم لا. يمكننا امتلاك أكثر من قرص أو ملفّ Swap واحد، ولكن بشكلٍ عام، يجب أن يكون واحد منها كافيًا فقط. يمكننا رؤية ما إذا كان النظام يمتلك أيّ ملفّات Swap مُعدّة مسبقًا عبر كتابة: sudo swapon -s Filename Type Size Used Priority إذا رأيت فقط ترويسة الجدول، كما رأينا أعلاه، فهذا يعني أنّك لا تمتلك حاليًا أيّ قرص Swap على النظام. طريقة أخرى للتحقق من مساحة swap هي عبر استخدام الأداة free، والتي تقوم بإظهار استخدام الذاكرة الحالي لنا. يمكننا رؤية نسبة استخدام الذاكرة الحالية و swap محسوبةً بالميغابايت عبر كتابة: free -m total used free shared buffers cached Mem: 3953 154 3799 0 8 83 -/+ buffers/cache: 62 3890 Swap: 0 0 0 كما يمكنك أن ترى، مساحة Swap على نظامنا هي 0. وهذا مطابقٌ لما رأيناه في الأمر السابق. التحقق من المساحة المتوفرة على القرص الصلب الطريقة النموذجية لتخصيص المساحة لـ Swap هي عبر استخدام (partition) قسم من القرص الصلب له، ولكنّ التعديل على التقسيم الافتراضي للقرص الصلب ليس دومًا ممكنًا. يمكننا ببساطة إنشاء ملفّ swap عادي ليعمل على قسمٍ موجودٍ بالفعل. قبل أن نقوم بهذا، يجب أن نعرف حجم المساحة الحرّة المتوفّرة على القرص الصلب. يمكننا الحصول على هذه المعلومات عبر كتابة: df -h Filesystem Size Used Avail Use% Mounted on /dev/vda 59G 1.3G 55G 3% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 312K 396M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user كما يمكنك أن ترى في السطر الأول، يمتلك القرص الصلب الخاصّ بنا حوالي 55 جيجابايت من المساحة المتوفّرة، لذا فإنّه يوجد لدينا مساحة كبيرة لاستغلالها. هذا طبعًا على خادوم افتراضي خاصّ جديد بحجمٍ متوسّط، قد يكون خادومك مختلفًا تبعًا لاستخداماتك. على الرغم من أنّه يوجد العديد من الآراء حول الحجم المناسب لملفّ swap، إلّا أنّه يعتمد في الواقع على رغبتك واحتياجات تطبيقاتك. بشكلٍ عام، من المنصوح أن تجعل حجم swap مساويًا أو مضاعفًا لحجم الذاكرة العشوائية (RAM) المتوفّرة على خادومك. بما أنّ خادومنا يحتوي 4 جيجابايت من الذاكرة العشوائية هنا، وبما أنّ ضعف هذا الرقم سيعطينا ملفّ swap كبير جدًا لن نحتاج بتاتًا لاستخدامه كلّه أو حتّى نصفه، فسنقوم فقط باستخدام 4 جيجابايت من المساحة لملفّ swap. إنشاء ملف Swap الآن وبعد أن عرفنا المساحة المتوفّرة على القرص الصلب الخاصّ بنا، يمكننا المضي قدمًا في إنشاء ملفّ swap على نظام الملفّات الخاصّ بنا. سنقوم بإنشاء ملفّ يدعى swapfile ضمن المسار الجذر (/). يجب أن يكون حجم الملفّ مساويًا لحجم المساحة التي نريد تخصيصها لـ Swap، وهناك طريقتان للقيام بالعملية: الطريقة التقليدية البطيئة يمكننا إنشاء ملفّ جديد بحجمٍ معيّن عبر استخدام الأمر dd. تقوم هذه الأداة متعددة الاستخدامات بكتابة البيانات من موقعٍ إلى آخر. يمكننا أن نستعمل هذه الأداة للقيام بكتابة أصفار إلى ملفّ من جهازٍ خاص في أنظمة لينكس موجود في المسار dev/zero/، يقوم هذا الجهاز فقط بطباعة عددٍ من الأصفار حسب ما يُطلبُ منه. نقوم بتحديد حجم الملفّ عبر استخدام bs لحجم الكتلة الواحدة (block size) وcount لعدد الكتل (blocks) التي نريد إنشاءها. يمكننا إسناد أيّ قيمة إلى كِلا المُعامِلين، ولكن ما يهم حقًا هو نتيجتهما معًا. كمثال، في حالتنا نريد إنشاء ملف بحجم 4 جيجابايت. يمكننا القيام بهذا عبر تحديد حجم الكتلة الواحدة بـ 1 جيجابايت وبتحديد عدد الكتل إلى 4: sudo dd if=/dev/zero of=/swapfile bs=1G count=4 4+0 records in 4+0 records out 4294967296 bytes (4.3 GB) copied, 18.6227 s, 231 MB/s تحقق من الأمر الذي تريد إدخاله قبل الضغط على زرّ Enter، لأنّ هذا الأمر يمكن أن يقوم بمسح بياناتك في حال قمت بتوجيه of (والذي يرمز إلى output file أو ملف الخرج) إلى المسار الخاطئ. يمكننا أن نرى أنّه قد تمّ إنشاء الملفّ بحجم 4 جيجابايت عبر كتابة: ls -lh /swapfile -rw-r--r-- 1 root root 4.0G Apr 28 17:15 /swapfile إذا قمت بتنفيذ الأمر السابق لإنشاء ملف swap بنجاح، فقد تكون قد لاحظت أنّه أخذ وقتًا ليكتمل، في خادومنا التجريبي، سترى أنّ النظام استغرق 18 ثانية ليقوم بإنشاء الملفّ، لأنّه يجب عليه كتابة 4 جيجابايت من الأصفار إلى ملفّ على القرص الصلب. إذا كنت تريد معرفة كيفيّة إنشاء الملفّ بشكلٍ أسرع، فقم بحذف الملفّ عبر الأمر أدناه وطبّق الخطوة التالية: sudo rm /swapfile الطريقة السريعة الطريقة الأسرع لإنشاء نفس الملفّ هي عبر استخدام برنامج fallocate. يقوم هذا الأمر بإنشاء ملفّ بحجمٍ معيّن، دون الحاجة إلى كتابة أصفار مثلًا أو محتوىً آخر إليه. يمكننا إنشاء ملفّ بحجم 4 جيجابايت عبر كتابة: sudo fallocate -l 4G /swapfile ستقوم الطرفية بالرجوع إليك في نفس اللحظة تقريبًا. يمكننا التحقق مما إذا كان حجم الملفّ صحيحًا أم لا عبر كتابة الأمر: ls -lh /swapfile -rw-r--r-- 1 root root 4.0G Apr 28 17:19 /swapfile وكما ترى، تمّ إنشاء ملفّ Swap الخاصّ بنا بالمساحة المطلوبة بشكلٍ صحيح. تفعيل ملف Swap الآن تمّ إنشاء الملفّ، ولكنّ النظام لا يعرف أنّه من المفترض به أن يستخدمه بعد. يجب أن نقوم بإخبار النظام بأن يقوم بتهيئة هذا الملفّ كقرص Swap ومن ثمّ تفعيله. ولكن قبل أن نقوم بهذا، علينا ضبط صلاحيات الملفّ بحيث لا يكون قابلًا للقراءة لأيّ أحد باستثناء المستخدم الجذر (root). السماح للمستخدمين الآخرين بقراءة أو كتابة محتويات هذا الملفّ قد يكون خطرًا أمنيًا كبيرًا. يمكننا قفل هذه الصلاحيات عبر كتابة: sudo chmod 600 /swapfile تحقق الآن من أنّ الملفّ يمتلك الصلاحيات الصحيحة عبر تطبيق: ls -lh /swapfile -rw------- 1 root root 4.0G Apr 28 17:19 /swapfile كما نرى، فقط المستخدم الجذر يمتلك صلاحيات الكتابة والقراءة حاليًا. الآن وبعد أن أصبح ملفّنا أكثر أمانًا، يمكننا أن نخبر نظامنا بأن يقوم بتهيئته كملفّ swap عبر تنفيذ: sudo mkswap /swapfile Setting up swapspace version 1, size = 4194300 KiB no label, UUID=e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944 أصبح الملفّ الآن جاهزًا ليتم استخدامه كمساحة Swap. يمكننا تفعيله عبر الأمر: sudo swapon /swapfile يمكننا كذلك اختبار نجاح العملية أو فشلها عبر سؤال النظام الآن عمّا إذا كان يتعرّف على مساحة Swap أم لا عبر كتابة: sudo swapon -s Filename Type Size Used Priority /swapfile file 4194300 0 -1 لدينا ملفّ swap جديد هنا. يمكننا أيضًا استخدام أداة free للتأكّد مما وجدناه: free -m total used free shared buffers cached Mem: 3953 101 3851 0 5 30 -/+ buffers/cache: 66 3887 Swap: 4095 0 4095 تمّ الآن إعداد swap بنجاح، وسيقوم النظام باستخدامه عندما يحتاجه فقط. استخدام ملف Swap بشكل دائم لقد قمنا بتفعيل ملفّ Swap الآن، ولكن عندما نقوم بإعادة التشغيل، فإنّ الخادوم لن يقوم تلقائيًا بإعادة تفعيل الملفّ. يمكننا تغيير هذا عبر تعديل ملفّ fstab. قم بتعديل الملفّ بصلاحيات الجذر باستخدام محرر نصوصك المفضّل: sudo nano /etc/fstab في نهاية ملفّك، تحتاج إلى إضافة سطرٍ يخبر نظام التشغيل أن يقوم باستخدام الملفّ الذي أنشأته تلقائيًا: /swapfile none swap sw 0 0 احفظ الملفّ واخرج عندما تنتهي. اضبط إعدادات Swap الخاصة بك هناك بعض الخيارات المؤثّرة على أداء خادومك التي يمكنك ضبطها وتعديلها للحصول على أداءٍ أفضل عند التعامل مع swap. يقوم مُعامِل swappiness بإعداد معدّل تكرار النظام للقيام بعملية نقل البيانات من الذاكرة العشوائية إلى ملفّ swap، وهذه القيمة محصورة بين الـ0 والـ100 وتمثّل نسبةً مئوية. عندما تكون القيمة أقرب إلى الصفر، فإنّ النظام لن يقوم بنقل أيّ بيانات من الذاكرة العشوائية إلى swap إلّا في حال الضرورة القصوى. تذكّر أنّ التعامل مع swap "مكلف" حيث أنّه بطيء بشكلٍ ملحوظ مقارنةً بالذاكرة العشوائية مما يسبب بطئًا في الأداء. لذا فإنّ إخبار النظام بألّا يقوم بالاعتماد على swap كثيرًا سيقوم بتسريع أداء نظامك بشكلٍ عام. إذا كانت القيمة أقرب إلى المئة، فإنّ النظام سيقوم بنقل المزيد من البيانات إلى swap بهدف حفظ المزيد من الذاكرة العشوائية. اعتمادًا على ماهيّة التطبيقات التي تقوم بتشغيلها على خادومك واحتياجاتك الشخصية، قد يكون هذا الخيار أفضل لك في بعض الحالات. يمكننا أن نرى قيمة مُعامِل swappiness الحالية عبر تطبيق: cat /proc/sys/vm/swappiness 60 بالنسبة لجهاز سطح مكتب (استخدام عادي)، فإنّ قيمة 60 ليست سيئة. ولكن بالنسبة إلى خادوم، فإننا قد نود تقريب القيمة إلى الصفر. يمكننا تغيير قيمة swappiness إلى قيمة أخرى عبر استخدام الأمر sysctl. كمثال، لتغيير قيمة swappiness إلى 10، يمكننا تنفيذ: sudo sysctl vm.swappiness=10 vm.swappiness = 10 سيستمر هذا التغيير إلى حين عملية إعادة التشغيل المقبلة. يمكننا جعل هذا التغيير دائمًا حتّى بعد إعادة التشغيل عبر إضافة سطرٍ معيّن إلى نهاية ملفّ etc/sysctl.conf/: sudo nano /etc/sysctl.conf في نهاية الملفّ أضف: vm.swappiness=10 احفظ الملفّ واخرج عندما تنتهي. قيمة أخرى مرتبطة قد تودّ تغييرها هي vfs_cache_pressure. يقوم هذا المُعامِل بتحديد إلى أيّ مدى سيقوم النظام بالاحتفاظ بالخبيئة (cache) للبيانات الأكثر تكرارًا في مقابل البيانات الأخرى. تكون هذه البيانات عادةً متعلقة بنظام الملفّات نفسه، وغالبًا ما يتكرر طلبها، لذلك فإنّه من الممتاز لنظامك أن يقوم بالاحتفاظ بهذه البيانات في ذاكرته المؤقتة. يمكنك رؤية قيمة هذا المُعامِل الحالية عبر الأمر: cat /proc/sys/vm/vfs_cache_pressure 100 حاليًا، يقوم نظامنا بحذف البيانات والمعلومات من الخبيئة (cache) بسرعة سريعة جدًا. يمكننا جعل هذه العملية أكثر بطئًا عبر استخدام قيمة كـ50: sudo sysctl vm.vfs_cache_pressure=50 vm.vfs_cache_pressure = 50 مرةً أخرى.. هذه القيمة ليست دائمة حاليًا وسيتم فقدانها عند إعادة التشغيل، يمكننا تغيير هذا الوضع عبر إضافتها إلى ملفّات إعداداتنا كما فعلنا مسبقًا: sudo nano /etc/sysctl.conf في نهاية الملفّ، أضف القيمة التي تريدها: vm.vfs_cache_pressure = 50 احفظ الملفّ واخرج عندما تنتهي. الخاتمة اتبّاع الخطوات في هذا الدرس سيعطيك بعض الهواء لتتنفسه عندما يتعلّق الأمر باستخدام الذاكرة العشوائية في نظامك. مساحة Swap مفيدة بشكلٍ لا يصدّق في تفادي بعض المشاكل الشائعة. إذا كنت تصادف أخطاء (OOM (Out of memory أو عدم توفّر الذاكرة بشكلٍ شائع، أو إذا كنت ترى أنّ نظامك غير قادر على استخدام التطبيقات التي تحتاجها، فإنّ الحلّ الأفضل لك هو في ضبط إعدادات تطبيقاتك أو في ترقية موارد خادومك، كما أنّ تفعيل مساحة Swap على خادومك سيعطيه المزيد من المرونة ويوفّر لك المزيد من الوقت على خادومٍ بمواصفاتٍ عادية. ترجمة -وبتصرف- للمقال How To Add Swap on Ubuntu 14.04 لصاحبه Justin Ellingwood.
-
بعد أن تطرّقنا في الدّرس السّابق إلى كيفية تنصيب نسخة الخواديم من نظام أوبنتو إضافة إلى كيفية إعداد مُختلف تطبيقاته، سنستعرض في هذا المقال بعض الخصائص المُتقدّمة التي قد تحتاج إليها لدى تنصيبك للنّظام. RAID برمجيمصفوفة التعدد للأقراص المستقلة (Redundant Array of Independent Disks أو اختصارًا RAID) هي طريقة لاستخدام عدِّة أقراص صلبة لتوفير توازن بين زيادة مرونة ووثوقيّة تخزين البيانات، و/أو زيادة أداء القراءة والكتابة، وذلك بالاعتماد على مستوى RAID المطبَّق؛ ويمكن تطبيق RAID إما بطريقة برمجية (حيث يَعلم نظام التشغيل عن القرصين المستخدمين، ويصون العلاقة بينهما)، أو عن طريق العتاد (حيث يضاف متحكم خاص يجعل نظام التشغيل يعتقد أنه يتعامل مع قرص واحد، ويتحكم بالأقراص تحكمًا «خفيًا»). النسخة البرمجية من RAID الموجودة في الإصدارات الحالية من لينُكس (وأوبنتو) هي مبنية على محرك «mdadm» الذي يعمل عملًا ممتازًا، وحتى أنه أفضل من متحكمات RAID «الفيزيائية»؛ سيدلُّك هذا القسم على طريقة تثبيت نسخة الخادوم من أوبنتو باستخدام قسمَي RAID1 على قرصين صلبين منفصلين، واحد من أجل نظام ملفات الجذر (/)، والآخر لذاكرة التبديل (swap). التقسيماتَّبِع تعليمات التثبيت إلى أن تصل إلى خطوة تقسيم الأقراص، عندها: اختر طريقة التقسيم اليدوية.اختر القرص الصلب الأول، ووافق على «هل تريد إنشاء جدول تجزئة جديد وفارغ على هذا الجهاز؟» ، أعد هذه الخطوة لجميع الأجهزة التي تريدها أن تصبح جزءًا من مصفوفة RAID.اختر «المساحة المتاحة» في أول قرص، ثم حدد «إنشاء جزء [قسم] جديد».اختر بعدها المساحة التخزينية لهذا القسم، سيكون هذا القسم هو القسم الخاص بذاكرة التبديل، والقاعدة العامة لحجم ذاكرة التبديل هي أن تكون ضعف حجم ذاكرة الوصول العشوائي (RAM)، اختر المساحة التخزينية للقسم، ثم اختر «أولي»، ثم «في البداية» (مكان بدء القطاعات).ملاحظة: لا يُستحسَن دومًا أن يكون حجم ذاكرة التخزين ضعف حجم الذاكرة، وخصوصًا في الأنظمة التي تملك مقدارًا كبيرًا من الذاكرة، يتوقف حساب الحجم التخزيني لقسم ذاكرة التبديل على طريقة استخدام النظام.اختر سطر «طريقة الاستخدام» من الأعلى، الذي يكون افتراضيًا «نظام ملفات Ext4»، وغيرّه إلى «حجم فيزيائي لمصفوفة RAID» (أو «الكتلة الجسمية لـ RAID») ، ثم اختر «انتهى إعداد الجزء [القسم]».ولتهيئة قسم الجذر (/) فاختر «المساحة المتاحة» مرةً أخرى على القرص الصلب الأول، ثم اختر «إنشاء جزء [قسم] جديد».اختر ما تبقى من مساحة القرص التخزينية، ثم اضغط على متابعة، ثم «أولي».وكما في قرص ذاكرة التبديل، اختر «طريقة الاستخدام» ثم «حجم فيزيائي لمصفوفة RAID»، ثم اختر سطر «وسم إمكانية الإقلاع»، وغيرها إلى «ممكَّن»، ثم اختر «انتهى إعداد الجزء [القسم]».أعد تنفيذ الخطوات من ثلاثة إلى ثمانية للأقراص والأقسام الأخرى.إعداد RAIDبعد أن أُعِّدَت الأقسام، يمكن الآن ضبط المصفوفة: عد إلى صفحة «تقسيم الأقراص» الرئيسية، ثم اختر «تهيئة مصفوفة RAID البرمجية» في الأعلى.اختر «نعم» لكتابة التغيرات إلى القرص.اختر «إنشاء جهاز MD».لهذا المثال، اختر «RAID1»، لكن إن كنت تستخدم ضبطًا مختلفًا، فاختر النوع الملائم (RAID0، أو RAID1، أو RAID5). ملاحظة: ستحتاج إلى ثلاثة أقراص على الأقل لاستخدام RAID5، أما استخدام RAID0 أو RAID1، فيلزمك قرصان فقط.أدخِل رقم الأجهزة الفعالة (2)، أو مقدار الأقراص الصلبة التي عندك والتي ترغب باستخدامها في المصفوفة، ثم اختر «متابعة».أدخل رقم الأقراص البديلة (في حالة حدوث عطب في أحد الأقراص)، الذي هو «0» افتراضيًا، ثم اختر «متابعة».اختر الأقسام التي تريد استخدامها، عمومًا، ستكون sda1, sdb1, sdc1 ...إلخ. ستتطابق الأرقام غالبًا، وستختلف الأحرف للدلالة على اختلاف الأقراص الصلبة.لقسم ذاكرة التبديل، اختر sda1، و sdb1، ثم اختر «متابعة» للذهاب للخطوة الآتية.أعد الخطوات من ثلاثة إلى سبعة لقسم الجذر (/) باختيار sda2، و sdb2.بعد انتهائك من الضبط، اختر «إنهاء».التهيئةيجب أن تحصل الآن على قائمة بالأقراص الصلبة وأجهزة RAID، الخطوة الآتية هي التهيئة وإعداد نقاط الوصل لأجهزة RAID؛ عامل جهاز RAID كقرص صلب، هيِّئه وصِلْه كالمعتاد. اختر «#1» تحت قسم «RAID1 برمجي الجهاز #0».اختر «استخدام كـ»، ثم اختر «ذاكرة التبديل»، ثم «انتهى إعداد الجزء [القسم]».ثم اختر «#1» تحت قسم «RAID1 برمجي الجهاز #1».اختر «طريقة الاستخدام»، ثم اختر «نظام ملفات Ext4 سجلي».اختر «نقطة الوصل»، واضبطها على «/ - جذر نظام الملفات»، عدِّل الخيارات الأخرى كما تريد، ثم اختر «انتهى إعداد الجزء [القسم]».في النهاية، اختر «إنهاء التجزئة، وكتابة التغيرات إلى القرص».إذا اخترت وضع قسم الجذر في مصفوفة RAID، فسيسألك المثبت إذا كنت تريد الإقلاع بحالة «منخفضة» (degraded)، راجع القسم «مصفوفة RAID ذات الحالة المتدهورة (degraded state)» للمزيد من التفاصيل. يجب أن تُكمَل عملية التثبيت بشكلٍ اعتيادي. مصفوفة RAID ذات الحالة المتدهورة (degraded state)قد يحصل خلل في القرص في نقطة ما من حياة الحاسوب؛ وعندما يحصل ذلك وقت استخدام مصفوفة RAID برمجية، فسيضع نظام التشغيل المصفوفة في ما يدعى «الحالة المتدهورة» (degraded state). إذا أصبحت المصفوفة في الحالة المتدهورة -ربما لحدوث تلف في البيانات- فعندها تحاول نسخة الخادوم من أوبنتو افتراضيًا الإقلاع إلى initramfs بعد ثلاثين ثانية، وعندما يكتمل إقلاع initramfs، فسيظهر مِحَث لمدة خمس عشرة ثانية يسمح لك بالاختيار بين إقلاع النظام أو محاولة استرداده يدويًا؛ ربما لا يكون الإقلاع إلى محث initramfs هو السلوك المطلوب، وخصوصًا إن كان الحاسوب في مكان بعيد عنك. يمكن إعداد الإقلاع إلى مصفوفة متدهورة بعدة طرق: الأداة dpkg-reconfigure التي تستخدم لضبط السلوك الافتراضي؛ وستُسأل خلال العملية عن الخيارات الإضافية المتعلقة بالمصفوفة، كالمراقبة، وتنبيهات البريد ...إلخ. أدخِل الأمر الآتي لإعداد mdadm: sudo dpkg-reconfigure mdadmستغير عملية dpkg-reconfigure mdadm ملف الإعدادات /etc/initramfs-tools /conf.d/mdadm، لدى هذا الملف ميزة القدرة على الإعداد المسبق لسلوك النظام، ويمكن تعديله يدويًا: BOOT_DEGRADED=tureملاحظة: يمكن تجاوز ملف الإعدادات باستخدام وسيط يمرر للنواة. يَسمح استخدام وسيط يمرر للنواة لك أيضًا بإقلاع النظام من مصفوفة ذات الحالة المتدهورة كما يلي: عندما يقلع الخادوم، اضغط على Shift لفتح قائمة جروب (Grub).اضغط e لتعديل خيارات النواة.اضغط على زر السم السفلي لتعليم سطر النواة.أضف «bootdegraded=true» (دون علامات الاقتباس) إلى نهاية السطر.اضغط على Ctrl+x لإقلاع النظام.بعد أن يُقلِع النظام، تستطيع إما إصلاح المصفوفة (انظر قسم «صيانة مصفوفات RAID» للتفاصيل) أو نسخ المعلومات المهمة إلى جهاز آخر بسبب عطب في العتاد. صيانة مصفوفات RAIDيمكن أن تَعرِض الأداة mdadm حالة المصفوفة، أو تستطيع إضافة أو إزالة أقراص في المصفوفة ...إلخ. لإظهار حالة مصفوفة أقراص، فأدخِل الأمر الآتي إلى الطرفية: sudo mdadm -D /dev/md0الخيار -D يخبر mdadm أن يُظهِر معلوماتٍ تفصيلية حول الجهاز /dev/md0، استبدل مسار جهاز RAID المناسب بالمسار /dev/md0. لعرض حالة قرص في مصفوفة: sudo mdadm -E /dev/sda1ستُشابِه مخرجات الأمر السابق مخرجات الأمر mdadm -D؛ عدِّل /dev/sda1 لكل قرص من أقراص المصفوفة. إذا عُطِبَ قرصٌ ما، فيجب أن يُزال من المصفوفة: sudo mdadm --remove /dev/mo0 /dev/sda1بدِّل كلًّا من /dev/md0 و /dev/sda1 إلى جهاز RAID والقرص الملائمَين بالتوالي وبالترتيب. وبطريقة مشابهة، لإضافة قرص جديد: sudo mdadm --add /dev/md0 /dev/sda1يمكن أن تُبَدَّل حالة القرص في بعض الأحيان إلى «مُعَاب» (faulty)، حتى وإن لم يكن فيه خلل فيزيائي؛ من المفيد في كثير من الأحيان إزالة القرص من المصفوفة، ثم إعادة إضافته؛ وهذا ما يجعل القرص يُزامَن مرةً أخرى مع المصفوفة؛ وإذا لم يزامن القرص مع المصفوفة، فهذا دليلٌ قويٌ على وجود مشكلة فيزيائية فيه. يحتوي الملف /proc/mdstat على معلومات مفيدة حول حالة أجهزة RAID في النظام: cat /proc/mdstatPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[0] sdb1[1] 10016384 blocks [2/2] [UU] unused devices: <none>الأمر الآتي رائع لمشاهدة حالة مزامنة قرص: watch -n1 cat /proc/mdstatاضغط على Ctrl+c لإيقاف الأمر watch. إذا احتجت لاستبدال قرص معطوب، فيجب أن يعاد تثبيت محمل الإقلاع «جروب» (grub) مرةً أخرى بعد استبدال القرص المعطوب بالجديد ومزامنته؛ أدخِل الأمر الآتي لتثبيت «جروب» على القرص الجديد: sudo grub-install /dev/md0ضع اسم جهاز المصفوفة الملائم بدلًا من /dev/md0. مصادرإن موضوع مصفوفات RAID هو موضوع معقد نتيجةً لوفرة الطرق التي يمكن ضبط RAID فيها، رجاءً راجع الروابط الآتية لمزيدٍ من المعلومات: المقالات التي تتحدث عن RAID في ويكي أوبنتو. مقالة بعنوان «Software RAID HOWTO».كتاب «Managing RAID on Linux».مدير الحجوم المنطقية (LVM)يسمح مدير الحجوم المنطقية (Logical Volume Manager) لمدراء الأنظمة بإنشاء حجوم تخزينية على قرصٍ واحد أو أقراصٍ صلبة متعددة؛ ويمكن إنشاء حجوم LVM على أقسام في مصفوفة RAID أو على الأقسام الموجودة في قرص واحد، ويمكن أيضًا توسيع تلك الحجوم، مما يضيف مرونةً كبيرةً للنظام عندما تتغير المتطلبات التشغيلية. لمحة عامةتأثيرٌ جانبي لقوة ومرونة LVM هو درجة كبيرةٌ من التعقيد؛ ويجدر بنا التعرف على بعض المصطلحات قبل الخوض في عملية تثبيت LVM: الحجم الفيزيائي (PV): القرص الصلب الفيزيائي، أو قسم في قرص، أو قسم مصفوفة RAID برمجية؛ مهيئين للعمل كحجم LVM.مجموعة الحجوم (VG): التي تُصنَع من حجم فيزيائي واحد أو أكثر؛ ويمكن أن تُوسَّع مجموعة الحجوم بإضافة المزيد من الحجوم الفيزيائية، حيث تكون مجموعة الحجوم كقرص صلب وهمي (virtual disk drive)، الذي يُنشَأ منه المزيد من الحجوم المنطقية.حجم منطقي (LV): الذي يشبه القسم في الأنظمة الأخرى (التي ليست LVM)، حيث يُهيَّأ الحجم المنطقي بنظام الملفات المطلوب (Ext3، أو XFS، أو JFS ...إلخ.)، ويكون متوفرًا للوصل وتخزين البيانات.التثبيتسيشرح المثال في هذا القسم طريقة تثبيت نسخة الخادوم من أوبنتو مع وصل مجلد /srv على حجم LVM، إذ سيُضاف حجمٌ فيزيائيٌ (PV) واحدٌ فقط أثناء عملية التثبيت، والذي يمثِّل جزءًا من مجموعة الحجوم؛ وسيضاف حجم فيزيائي آخر بعد التثبيت لشرح كيف يمكن أن تُوسَّع مجموعة الحجوم. هنالك خياراتُ تثبيتٍ عدِّة لاستخدام LVM، الخيار الأول «موجّه - استخدام القرص بأكمله وإعداد LVM» الذي يسمح بإعطاء جزء من المساحة التخزينية المتوفرة لاستخدامها في LVM، والخيار الآخر «موجّه - استخدام القرص بأكمله وإعداد LVM مشفّر»، أو إعداد الأقسام وضبط LVM يدويًا؛ والطريقة الوحيدة لهذه اللحظة لإعداد النظام لاستخدام LVM والأقسام الاعتيادية أثناء التثبيت هو استخدام الطريقة اليدوية. اتَّبِع خطوات التثبيت إلى أن تصل إلى خطوة «تقسيم الأقراص»، عندها: في صفحة «تقسيم الأقراص»، اختر «يدويًا».اختر القرص الصلب، ثم في الشاشة التالية اختر «نعم» للرد على الرسالة «هل تريد إنشاء جدول تجزئة جديد وفارغ على هذا الجهاز؟».ثم أنشئ أقسام /boot، و swap، و / بأي نظام ملفات تريد.ولإنشاء /srv باستخدام LVM، فأنشئ قسمًا منطقيًا جديدًا، ثم غير «طريقة الاستخدام» إلى «حجم فيزيائي لتخزين LVM»، ثم اختر «انتهى إعداد الجزء [القسم]».اختر الآن «إعداد مدير الحجوم المنطقية» في الأعلى، ثم اختر «نعم» لكتابة التعديلات إلى القرص.والآن اختر «إنشاء مجموعة حجوم» في «إعدادات LVM» في الشاشة التالية، ثم اختر اسمًا لمجموعة الحجوم، وليكن vg01، أو أي شيء يصفها أكثر من ذلك؛ وبعد اختيار الاسم، اختر القسم المُعَدّ لاستخدام LVM عليه، ثم «متابعة».وبالعودة لصفحة «إعدادات LVM»، اختر «إنشاء حجم منطقي»، واختر مجموعة الحجوم المُنشَأة منذ قليل، وأدخل اسمًا للحجم المنطقي الجديد (على سبيل المثالsrv ﻷنه اسم نقطة الوصل المخطط لها) ثم اختر المساحة التخزينية، التي ستكون القسم بأكمله، لا تنسَ أنه يمكنك دائمًا زيادتها لاحقًا، ثم اختر «إنهاء» ويجب أن تعود لشاشة «تقسيم الأقراص».لإضافة نظام ملفات إلى LVM الجديد، اختر القسم تحت «LVM VG vg01, LV srv»، أو أي اسم قد اخترته في الخطوة السابقة، ثم اختر «طريقة الاستخدام»، واضبط نظام الملفات كالمعتاد باختيار /srv نقطةً للوصل، ثم اضغط على «انتهى إعداد الجزء [القسم]» عند الفراغ منه.في النهاية، اختر «إنهاء التجزئة وكتابة التغيرات إلى القرص»، ثم وافق على إجراء التغيرات، وأكمل عملية التثبيت.هذه بعض الأدوات المفيدة لعرض المعلومات حول LVM: الأمر pvdisplay: عرض معلومات حول الحجوم الفيزيائية.الأمر vgdisplay: عرض معلومات حول مجموعات الحجوم.الأمر lvdisplay: عرض معلومات حول الحجوم المنطقية.توسيع مجموعات الحجومبإكمال مثالنا المتعلق بحجم LVM واستخدامه كنقطة وصل لمجلد /srv، فسيناقش هذا القسم إضافة قرص صلب آخر، وإنشاء حجم فيزيائي (PV)، وإضافته إلى مجموعة الحجوم (VG)، وتوسيع الحجم المنطقي srv، ثم في النهاية توسيع نظام الملفات؛ يفترض هذا المثال أنَّ قرصًا صلبًا ثانيًا قد أُضيف إلى النظام، وفي هذا المثال، سيكون اسمه /dev/sdbوسنستخدم القرص بأكمله كحجمٍ فيزيائي (بإمكانك إنشاء أقسام واستخدامها كحجوم فيزيائية مختلفة). تحذير: تأكد أنه ليس لديك قرص صلب باسم /dev/sdbقبل تنفيذ الأوامر الآتية، قد تخسر بعض البيانات إذا نفَّذت هذه الأوامر على قرص غير فارغ. أولًا، أنشِئ الحجم الفيزيائي بتنفيذ الأمر الآتي في الطرفية: sudo pvcreate /dev/sdbوسِّع الآن مجموعة الحجوم (VG): sudo vgextend vg01 /dev/sdbاستخدم vgdisplay لمعرفة الامتدادات الفيزيائية أو PE (physical extents)، التي هي الامتدادات الفيزيائية الحرة / الحجم (الحجم التخزيني الذي حددته)، سنعتبر أن المساحة الفارغة هي 511 PE (مما يساوي2 غيغابايت إذا كان حجم PE هو 4 ميغابايت)، وسنستخدم كل المساحة الفارغة المتاحة، لا تنسَ استخدام رقم PE -أو الحجم التخزيني الحر- المتوفر عندك. يمكن توسيع الحجم المنطقي بعدِّة طرق، وسنشرح كيف يمكن استخدام PE لتوسعة حجم منطقي: sudo lvextend /dev/vg01/srv -l +511إن الخيار -l يسمح بتوسعة الحجم المنطقي باستخدام PE، يسمح الخيار -L للحجم المنطقي بأن يُوسَّع باستخدام الميغا، أو الغيغا، أو التيرابايت ...إلخ. حتى وإن كان من المفترض أنه باستطاعتك توسيع نظام ملفات ext3 أو ext4 دون فصله أولًا، لكن من العادات الجيدة فصله على أيّة حال وتفحص نظام الملفات؛ وبهذا لن تخرِّب شيئًا في اليوم الذي تريد فيه تقليل الحجم المنطقي (إذ يكون فصل نظام الملفات في هذه الحالة إلزاميًا). الأوامر الآتية ﻷنظمة الملفات EXT3 أو EXT4، إذا كنت تستخدم أنظمة ملفات أخرى، فتتوفر أدوات مختلفة: sudo umount /srv sudo e2fsck -f /dev/vg01/srvالخيار -f يجبر الأداة e2fsck على تفحص نظام الملفات وإن كان يبدو «نظيفًا». في النهاية، غيِّر حجم نظام الملفات: sudo resize2fs /dev/vg01/srvثم صِل نظام الملفات وتأكد من حجمه التخزيني: mount /dev/vg01/srv /srv && df -h /srvمصادرراجع المقالات حول LVM في ويكي أوبنتو.انظر مقالة LVM HOWTO للمزيد من المعلومات.مقالة أخرى جيدة هي «Managing Disk Space with LVM» في موقع O'Reilly المدعو linuxdevcenter.com.للمزيد من المعلومات حول fdisk، انظر صفحة الدليل الخاصة به.رجمة -وبتصرّف- للمقال Ubuntu Server Guide: Advanced Installation.