استطرادا صغيرا: هذا هو اصطناعي.
يمكن إجراء بعض المهام الموضحة هنا بسهولة أكبر ، ولكن نظرًا لأن مهمة l / r هي التعرف على وظيفة raid ، lvm ، فإن بعض العمليات معقدة بشكل مصطنع.
متطلبات الأدوات اللازمة لتنفيذ l \ r:
- أدوات المحاكاة الافتراضية مثل Virtualbox
- صورة تثبيت Linux مثل Debian9
- توفر الإنترنت لتنزيل عدة حزم
- الاتصال عبر ssh بجهاز VM المثبت (اختياري)
تنبيه
يرتبط هذا العمل المختبري بمسألة حساسة مثل أمان البيانات - وهذا مجال يسمح لك بفقدان جميع بياناتك بسبب أصغر خطأ - حرف أو رقم إضافي واحد.
بما أنك تقوم بعمل مخبري ، فأنت لست في خطر ، إلا إذا كان عليك البدء في القيام بذلك مرة أخرى.
في الحياة الواقعية ، كل شيء أكثر خطورة ، لذا يجب عليك إدخال أسماء الأقراص بعناية فائقة ، وفهم ما تقوم به بالضبط باستخدام الأمر الحالي وأي الأقراص التي تعمل معها.
النقطة المهمة الثانية هي تسمية الأقراص والأقسام: اعتمادًا على الموقف ، قد تختلف أرقام الأقراص عن تلك القيم الواردة في الأوامر في المختبر.
لذلك ، على سبيل المثال ، إذا قمت بإزالة محرك الأقراص sda من الصفيف ، ثم قمت بإضافة محرك أقراص جديد ، فسيتم عرض محرك الأقراص الجديد على النظام باسم sda. إذا قمت بإعادة التشغيل قبل إضافة قرص جديد ، فسيتم تسمية القرص الجديد باسم sdb ، وسيتم تسمية القرص القديم بـ sda
يجب أن يتم عمل المختبر تحت الخارق (الجذر) لأن معظم الأوامر تتطلب امتيازات مرتفعة وليس من المنطقي رفع الامتيازات باستمرار من خلال sudo.
مواد الدراسة
- RAID
- LVM
- تسمية القرص لينكس
- ما هو القسم
- ما هو جدول التقسيم وأين يتم تخزينه
- ما هو اليرقة
المرافق المستخدمة
- عرض معلومات القرص:
- lsblk -o NAME ، SIZE ، FSTYPE ، TYPE ، MUNTPOINT
- fdisk -l
- عرض المعلومات والعمل مع LVM
- ص ف
- pvextend
- pvcreate
- pvresize
- VGS
- vgreduce
- لفس
- lvextend
- عرض المعلومات والعمل مع RAID:
- القط / بروك / مدستات
- mdadm
- نقاط جبل:
- جبل
- umount
- القط / الخ / فستاب
- القط / الخ / متعب
- إعادة تقسيم القرص:
- نسخ الأقسام:
- dd if = / dev / xxx of = / dev / yyy
- العمل مع جدول القسم:
- العمل مع محمل الإقلاع:
- grub-install / dev / XXX
- التحديث نكش
- متفرقات
يتكون المختبر من 3 أجزاء:
- تكوين نظام صحي باستخدام LVM ، غارة.
- مضاهاة فشل أحد محركات الأقراص.
- استبدال الأقراص على الطاير ، مع إضافة أقراص جديدة ونقل القسم.
المهمة 1 (تثبيت نظام التشغيل وتكوين LVM ، RAID)
قم بإنشاء جهاز ظاهري جديد بالميزات التالية:
- 1 غيغابايت من ذاكرة الوصول العشوائي
- 1 وحدة المعالجة المركزية
- قرصان صلبان (قم بتسميةهما ssd1 و ssd2 وقم بتعيين حجم متساوٍ وتحقق من مربعات المبادلة الساخنة و ssd)
- وحدة تحكم SATA مكونة على 4 منافذ:

ابدأ في تثبيت Linux وانتقل إلى اختيار محركات الأقراص الثابتة بما يلي:
- طريقة التقسيم: دليل ، وبعد ذلك سترى الصورة التالية:

- إعداد قسم منفصل ضمن / boot: حدد القرص الأول وقم بإنشاء جدول قسم جديد عليه:
- حجم القسم: 512M
- نقطة جبل: / التمهيد
- كرر الإعداد للقرص الثاني ، ولكن بما أنه لا يمكنك التحميل / التمهيد مرتين في نفس الوقت ، فحدد نقطة التحميل: لا شيء ، وأخيراً احصل على ما يلي (صورة مع دعامة ، أعيدي الكسل):

- إعداد RAID:
- حدد المساحة الحرة على القرص الأول وقم بتكوين وحدة التخزين الفعلية لـ RAID كنوع القسم.
- حدد "تم إعداد القسم"
- كرر نفس الإعداد بالضبط للقرص الثاني ، مما أدى إلى ما يلي:

- حدد "تكوين برنامج RAID"
- إنشاء جهاز MD
- نوع جهاز RAID للبرنامج: حدد مصفوفة ذات نسخ متطابقة
- الأجهزة النشطة لصفيف RAID XXXX: حدد كلا محركي الأقراص
- قطع الغيار: اترك صفرًا كإعداد افتراضي
- الأجهزة النشطة لصفيف RAID XX: حدد الأقسام التي قمت بإنشائها تحت الغارة
- نهاية
- في النهاية ، يجب أن تحصل على هذه الصورة:

- إعداد LVM: حدد "تكوين إدارة التخزين المنطقي"
- الحفاظ على تخطيط القسم الحالي وتكوين LVM: نعم
- إنشاء مجموعة وحدة التخزين
- اسم مجموعة المجلد: النظام
- الأجهزة الخاصة بمجموعة وحدات التخزين الجديدة: اختر RAID الذي تم إنشاؤه
- إنشاء حجم منطقي
- اسم وحدة التخزين المنطقية: الجذر
- حجم وحدة التخزين المنطقية: 2 \ 5 من حجم القرص الخاص بك
- إنشاء حجم منطقي
- اسم وحدة التخزين المنطقية: var
- حجم وحدة التخزين المنطقية: 2 \ 5 من حجم القرص الخاص بك
- إنشاء حجم منطقي
- اسم وحدة التخزين المنطقية: سجل
- حجم وحدة التخزين المنطقية: 1 \ 5 من حجم القرص الخاص بك
- عند اختيار تفاصيل تكوين العرض ، يجب أن تحصل على الصورة التالية:

- بعد الانتهاء من تكوين LVM ، سترى ما يلي:

- التقسيم: بدوره ، حدد كل وحدة تخزين تم إنشاؤها في LVM وقسمها ، على سبيل المثال ، لجذر مثل هذا:
- استخدم كـ: ext4
- نقطة التركيب: /
- يجب أن تكون نتيجة تمييز القسم الجذر كما يلي:

- كرر عملية الترميز لـ var وسجل من خلال تحديد نقاط التحميل المناسبة (/ var و / var / log إدخال يدويًا) ، والحصول على النتيجة التالية:

- اختر "إنهاء التقسيم"
- سيُطرح عليك بعض الأسئلة حول حقيقة أنه لا يزال لديك قسم غير مثبت ولا يتم تكوين المبادلة. يجب الإجابة على كلا السؤالين بالنفي.
- يجب أن تبدو النتيجة النهائية كما يلي:

قم بإنهاء تثبيت نظام التشغيل عن طريق تثبيت grub على الجهاز الأول (sda) وقم بتشغيل النظام.
نسخ محتويات قسم / boot من محرك الأقراص sda (ssd1) إلى محرك الأقراص sdb (ssd2)
dd if=/dev/sda1 of=/dev/sdb1
تثبيت اليرقة على الجهاز الثاني:
عرض محركات الأقراص في النظام:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
- قم بإدراج كافة الأقراص التي أصدرها الأمر السابق لك ووصف نوع القرص الذي هو عليه.
حدد موقع محرك الأقراص الذي لم يتم تثبيت اليرقة عليه وأكمل هذا التثبيت:
grub-install /dev/sdb
- عرض الغارة الحالية مع القط / بروك / mdstat واكتب ما رأيته.
- انظر إلى مخرجات الأوامر: pvs ، vgs ، lvs ، قم بتركيب واكتب ما رأيته بالضبط.
صف بكلماتك ما قمت به والنتيجة التي حصلت عليها كنتيجة للمهمة المكتملة.
بعد الانتهاء من هذه المهمة ، يوصى بعمل نسخة احتياطية للمجلد باستخدام الجهاز الظاهري أو إنشاء مربع متشرد .
النتيجة: جهاز افتراضي مع أقراص ssd1 ، ssd2.
المهمة 2 (محاكاة فشل أحد محركات الأقراص)
- إذا حددت مربع اختيار التبديل السريع ، فيمكنك حذف الأقراص أثناء الطيران:
- حذف محرك الأقراص ssd1 في خصائص الجهاز.
- ابحث عن الدليل حيث يتم تخزين ملفات الجهاز الظاهري وحذف ssd1.vmdk.
- تأكد من أن جهازك الظاهري لا يزال قيد التشغيل.
- أعد تشغيل الجهاز الظاهري وتأكد من أنه لا يزال يعمل
- تحقق من حالة مجموعة RAID:
cat /proc/mdstat
- أضف قرصًا جديدًا بنفس الحجم في واجهة VM وقم بتسمية ssd3.
- أداء العمليات:
- انظر إلى القرص الجديد الذي يأتي إلى النظام باستخدام
fdisk -l
- انسخ جدول القسم من القرص القديم إلى الجديد:
sfdisk -d /dev/XXXX | sfdisk /dev/YYY
sfdisk -d /dev/XXXX | sfdisk /dev/YYY
- عرض النتيجة مع
fdisk -l
- إضافة قرص جديد إلى مجموعة الغارة:
mdadm --manage /dev/md0 --add /dev/YYY
- انظر النتيجة:
cat /proc/mdstat
. يجب أن ترى أن التزامن قد بدأ.
أنت الآن بحاجة إلى مزامنة الأقسام التي لا تشكل جزءًا من RAID. للقيام بذلك ، سوف نستخدم الأداة المساعدة dd ، بالنسخ من القرص "المباشر" إلى القرص الجديد الذي قمت بتثبيته مؤخرًا:
dd if=/dev/XXX of=/dev/YYY
- بعد اكتمال المزامنة ، قم بتثبيت grub على القرص الجديد.
- أعد تشغيل VM للتأكد من أن كل شيء يعمل.
صف بكلماتك ما قمت به والنتيجة التي حصلت عليها كنتيجة للمهمة المكتملة.
النتيجة: إزالة محرك الأقراص ssd1 ، حفظ محرك الأقراص ssd2 ، إضافة محرك الأقراص ssd3.
المهمة 3 (إضافة أقراص جديدة وتقسيم)
هذه هي المهمة الأكثر صعوبة وضخامة من جميع المقدمة. تحقق بعناية مما تفعله وبأي الأقراص والأقسام. يوصى بأخذ نسخة قبل تنفيذها. هذه المهمة ، بغض النظر عن المهمة رقم 2 ، يمكن تنفيذها بعد المهمة رقم 1 ، المعدلة لأسماء الأقراص.
يجب أن يؤدي الجزء الثاني من مهمة هذا المختبر إلى نفس الحالة تمامًا كما كان بعد إكمال الجزء الأول.
لتسهيل العمل ، أوصي بعدم حذف الأقراص فعليًا من الجهاز المضيف ، ولكن فقط قطع الاتصال بها في خصائص الجهاز. من وجهة نظر نظام التشغيل في جهاز VM ، سيبدو هذا هو نفسه تمامًا ، ولكن في هذه الحالة يمكنك توصيل محرك الأقراص مرة أخرى ومواصلة العمل عن طريق استعادة بضع نقاط في حال واجهتك أي مشاكل. على سبيل المثال ، ربما تكون قد قمت بالأداء بشكل غير صحيح أو نسيت نسخ قسم / boot إلى قرص جديد. لا يمكنني أن أنصحك فقط بالتحقق عدة مرات من الأقراص والأقسام التي تعمل بها ، والأفضل من ذلك ، كتابة مراسلات الأقراص والأقسام ورقم القرص "الفعلي" على قطعة من الورق. يرسم الأمر lsblk
شجرة جميلة ومفهومة ، lsblk
قدر المستطاع لتحليل ما قمت به وما يجب القيام به.
إلى القصة ...
تخيل أن الخادم الخاص بك يعمل لفترة طويلة على أقراص ssd 2 ، عندما فجأة ...
محاكاة فشل قرص ssd2 عن طريق إزالة القرص من خصائص VM وإعادة التشغيل.
عرض الحالة الحالية للأقراص و RAID:
cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
أنت محظوظ - سمحت السلطات بشراء عدة أقراص جديدة:
2 وحدات تخزين SATA كبيرة للمهمة التي طال انتظارها وهي نقل قسم السجل إلى قرص منفصل. 2 SSDs ليحل محل المتوفى ، وكذلك ليحل محل لا يزال يعمل.
ضع في اعتبارك أن سلة الخادم تدعم تثبيت 4 محركات أقراص فقط. في نفس الوقت ، لذلك لا يمكنك إضافة جميع الأقراص مرة واحدة.
حجم القرص الصلب لاختيار 2 مرات أكثر من SSD.
حجم SSD اختيار 1.25 أضعاف حجم SSD السابق.
أضف محرك أقراص ssd جديدًا ، وقم بتسميته باسم ssd4 ، وبعد إضافة تحقق ما حدث:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
بادئ ذي بدء ، يجب أن تهتم بسلامة بيانات القرص القديم. هذه المرة سننقل البيانات باستخدام LVM:
بادئ ذي بدء ، تحتاج إلى نسخ جدول الملفات من القرص القديم إلى الجديد:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
استبدل الأقراص الصحيحة بدلاً من x و y واكتشف ما يفعله هذا الأمر.
- قم بتشغيل lsblk -o NAME و SIZE و FSTYPE و TYPE و MOUNTPOINT وقارن ناتجها مع المكالمة السابقة. ما الذي تغير؟
استخدم الأمر dd لنسخ بيانات / boot إلى القرص الجديد:
dd if=/dev/XXX of=/dev/YYY
إذا ظل / boot مثبتًا على محرك الأقراص القديم ، فيجب تثبيته على محرك أقراص مباشر:
mount | grep boot
قم بتثبيت أداة تحميل التشغيل على محرك الأقراص ssd الجديد:
grub-install /dev/YYY
لماذا نفعل هذه العملية؟
قم بإنشاء مجموعة غارة جديدة مع تضمين محرك أقراص ssd جديد واحد فقط:
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY
لن يعمل الأمر أعلاه دون تحديد مفتاح خاص ، اقرأ التعليمات وأضف هذا المفتاح إلى الأمر.
- استخدم الأمر cat / proc / mdstat للتحقق من نتيجة العملية. ما الذي تغير؟
- قم بتشغيل lsblk -o NAME و SIZE و FSTYPE و TYPE و MOUNTPOINT وقارن ناتجها مع المكالمة السابقة. ما الذي تغير؟
والخطوة التالية هي لتكوين LVM
- قم بتشغيل الأمر pvs لعرض معلومات حول وحدات التخزين الفعلية الحالية.
قم بإنشاء وحدة تخزين فعلية جديدة من خلال تضمين صفيف RAID الذي تم إنشاؤه مسبقًا فيه:
pvcreate /dev/md63
- قم بتشغيل lsblk -o NAME و SIZE و FSTYPE و TYPE و MOUNTPOINT وقارن ناتجها مع المكالمة السابقة. ما الذي تغير؟
- قم بتشغيل الأمر pvs مرة أخرى. ما الذي تغير؟
قم بزيادة حجم نظام Volume Group باستخدام الأمر التالي:
vgextend system /dev/md63
قم بتشغيل الأوامر واكتب ما رأيته وما الذي تغير.
vgdisplay system -v pvs vgs lvs -a -o+devices
ما القرص الفعلي LV var ، سجل ، الجذر الآن؟
انقل البيانات من محرك الأقراص القديم إلى محرك الأقراص الجديد عن طريق استبدال أسماء الأجهزة الصحيحة.
pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63
كرر العملية لجميع الحجم المنطقي.
قم بتشغيل الأوامر واكتب ما رأيته وما الذي تغير.
vgdisplay system -v pvs vgs lvs -a -o+devices lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
تغيير VG لدينا عن طريق إزالة الغارة القديمة منه. استبدال اسم الغارة الصحيح.
vgreduce system /dev/md0
قم بتشغيل الأوامر واكتب ما رأيته وما الذي تغير.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgs
- من أجل جمال الصورة ، قم بإعادة تحميل / تشغيل محرك الأقراص ssd الثاني (ssd4) وتشغيل lsblk. نتيجة لذلك ، لا يجب تحميل أي شيء على القرص ssd3. تحقق بعناية من أن قسم / boot ليس فارغًا!
ls /boot
يجب أن تظهر العديد من الملفات والمجلدات. افحص ما تم تخزينه في هذا القسم واكتب الملف / الدليل المسؤول عن ماذا.
أزل قرص ssd3 وأضف ssd5 ، hdd1 ، hdd2 وفقًا للمعارف التقليدية المذكورة أعلاه ، وحصل في النهاية على:
- SSD4 - أول SSD جديدة
- SSD5 - الثانية SSD جديدة
- الأقراص الصلبة - أول الأقراص الصلبة الجديدة
- الأقراص الصلبة - الثانية الأقراص الصلبة الجديدة
تحقق مما حدث بعد إضافة الأقراص:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
دعونا استعادة مجموعة الغارة الرئيسية:
انسخ جدول القسم ، واستبدل الأقراص الصحيحة:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
يرجى ملاحظة أنه عندما قمنا بنسخ جدول الأقسام من القرص القديم ، اتضح أن الحجم الجديد لا يستخدم مساحة القرص الثابت بأكملها. لذلك ، سنحتاج قريبًا إلى تغيير حجم هذا القسم وتوسيع الغارة. انظر لنفسك عن طريق إدخال الأمر:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
انسخ قسم التمهيد / boot من ssd4 إلى ssd5:
dd if=/dev/XXX of=/dev/YYY
تثبيت اليرقة على القرص الجديد (SSD5).
تغيير حجم القسم الثاني من محرك SSD5.
أعد قراءة جدول القسم وتحقق من النتيجة:
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
إضافة قرص جديد إلى مجموعة الغارة الحالية (لا تنس أن تحل محل الأقراص الصحيحة):
mdadm --manage /dev/md63 --add /dev/sda2
نحن نزيد عدد الأقراص في مجموعتنا إلى قطعتين:
mdadm --grow /dev/md63 --raid-devices=2
انظر إلى النتيجة: لدينا صفيفان مرمزان ، لكن كلا القسمين المدرجين في هذه المجموعة لهما أحجام مختلفة:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
زيادة حجم القسم على القرص ssd4
نقوم بإعادة قراءة جدول القسم والتحقق من النتيجة.
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
يرجى ملاحظة أنه الآن sda2 ، أقسام sdc2 أكبر من حجم جهاز الغارة.
في هذه المرحلة ، يمكن الآن توسيع حجم الغارة:
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
تصفح lsblk واكتب ما الذي تغير.
ومع ذلك ، على الرغم من أننا غيرنا حجم الغارة ، فإن أحجام جذر vg ، var ، سجل أنفسهم لم يتغير.
إضافة مكان ظهرت حديثا VG var ، الجذر:
lvs
في هذه المرحلة ، أكملت ترحيل الصفيف الرئيسي إلى أقراص جديدة. العمل مع SSD1 ، الانتهاء من SSD2.
مهمتنا التالية هي نقل / var / log إلى محركات أقراص جديدة ، لذلك سنقوم بإنشاء مجموعة جديدة و lvm على محركات الأقراص الصلبة.
دعونا نرى ما هي أسماء محركات الأقراص الصلبة الجديدة:
fdisk -l
إنشاء مجموعة غارة:
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
إنشاء PV جديد في الغارة من الأقراص الكبيرة:
pvcreate data /dev/md127
في هذا PV ، قم بإنشاء مجموعة تسمى البيانات:
vgcreate data /dev/md127
قم بإنشاء وحدة تخزين منطقية بحجم كل المساحة الحرة واطلق عليها اسم val_log:
lvcreate -l 100%FREE -n var_log data
تنسيق القسم الذي تم إنشاؤه في نظام ext4:
mkfs.ext4 /dev/mapper/data-var_log
دعونا نرى النتيجة:
lsblk
نقل بيانات السجل من القسم القديم إلى الجديد
سنقوم بتخزين مؤقت سجل جديد:
mount /dev/mapper/data-var_log /mnt
دعونا مزامنة الأقسام:
apt install rsync rsync -avzr /var/log/ /mnt/
تعرف على العمليات التي تعمل مع / var / log الآن:
apt install lsof lsof | grep '/var/log'
نوقف هذه العمليات:
systemctl stop rsyslog.service syslog.socket
سنقوم بإجراء المزامنة النهائية للأقسام (من البيانات التي يمكن أن تتغير منذ آخر مزامنة):
rsync -avzr /var/log/ /mnt/
تبديل المقاطع:
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/log
تحقق ما حدث:
lsblk
تحرير / الخ / فستاب
fstab - ملف يتم فيه كتابة القواعد وفقًا للأجزاء التي سيتم تحميلها عند التمهيد. تتمثل مهمتنا في العثور على السطر الذي يتم فيه تثبيت / var / log وإصلاح جهاز system-log
على data-var_log
.
الشيء الأكثر أهمية في هذه المرحلة هو تذكر تغيير جدول القسم (ext4 ، على سبيل المثال). لأنه بغض النظر عن كيفية تغيير جميع أنواع الغارة ، lvm - حتى يتم إشعار FS على القسم أن حجم القسم قد تغير الآن ، فلن نتمكن من استخدام المساحة الجديدة. استخدم الأمر resize2fs
لتغيير FS.
الوتر النهائي
[اختياري] اتبع الخطوات