LFCS #6: كيفية تجميع الأقسام كأجهزة RAID وإنشاء نسخ احتياطي للنظام

مؤسسة لينكس أطلقت شهادة LFCS (مصادقة مؤسسة لينكس لمسؤولي النظام)، فرصة جديدة لمديري النظام في كل مكان لإظهار، من خلال امتحان قائم على الأداء، أنهم قادرون على تقديم الدعم التشغيلي الشامل على أنظمة لينكس: دعم النظام، تشخيص المستوى الأول والمراقبة، بالإضافة إلى تصعيد المشكلات، عند الحاجة، إلى فرق الدعم الأخرى.

ستكون السلسلة تحت عنوان التحضير لشهادة LFCS (مصادقة مؤسسة لينكس لمسؤولي النظام) الأجزاء 1 إلى 33 وتغطي المواضيع التالية:

No. Title
Part 1 How to Use ‘Sed’ Command to Manipulate Files in Linux
Part 2 How to Install and Use Vi/Vim in Linux
Part 3 How to Compress Files & Directoires and Finding Files in Linux
Part 4 How to Partition Storage Devices in Linux
Part 5 How to Mount (Samba and NFS) Filesystems in Linux
Part 6 How to Assemble Partitions as RAID Devices and Create System Backups
Part 7 Managing System Startup Processes and Services (SysVinit, Systemd, and Upstart
Part 8 How to Manage User & Groups, File Permissions, and Sudo Access
Part 9 Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude, and Zypper
Part 10 Learning Basic Shell Scripting and Filesystem Troubleshooting
Part 11 How to Manage and Create LVM Using vgcreate, lvcreate, and lvextend Commands
Part 12 How to Explore Linux with Installed Help Documentations and Tools
Part 13 How to Configure and Troubleshoot Grand Unified Bootloader (GRUB)
Part 14 Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis
Part 15 How to Set or Modify Kernel Runtime Parameters in Linux Systems
Part 16 Implementing Mandatory Access Control with SELinux or AppArmor in Linux
Part 17 How to Set Access Control Lists (ACLs) and Disk Quotas for Users and Groups
Part 18 Installing Network Services and Configuring Automatic Startup at Boot
Part 19 An Ultimate Guide to Setting Up FTP Server to Allow Anonymous Logins
Part 20 Setup a Basic Recursive Caching DNS Server and Configure Zones for Domain
Part 21 How to Install, Secure, and Performance Tuning of MariaDB Database Server
Part 22 How to Install and Configure NFS Server for File System Sharing
Part 23 How to Setup Apache with Name-Based Virtual Hosting with SSL Certificate
Part 24 How To Setup an Iptables Firewall to Enable Remote Access to Services in Linux
Part 25 How to Turn a Linux into a Router to Handle Traffic Statically and Dynamically
Part 26 How to Setup Encrypted Filesystems and Swap Using Cryptsetup Tool
Part 27 How to Monitor System Usage, Outages, and Troubleshoot Linux Servers
Part 28 How to Setup a Network Repository to Install or Update Packages
Part 29 How to Audit Network Performance, Security, and Troubleshooting
Part 30 How to Install and Manage Virtual Machines and Containers
Part 31 Learn the Basics of Git to Manage Projects Efficiently
Part 32 A Beginner’s Guide to Configuring IPv4 and IPv6 Addresses in Linux
Part 33 A Beginner’s Guide to Creating Network Bonding and Bridging in Ubuntu

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

فهم RAID في نظام لينكس

التقنية المعروفة باسم مصفوفة الأقراص المتكررة (RAID) هي حلاً للتخزين يجمع بين أقراص صلبة متعددة في وحدة منطقية واحدة لتوفير استعادة البيانات و/أو تحسين الأداء في عمليات القراءة / الكتابة إلى القرص.

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

يمكنك الرجوع إلى مقال سلسلة RAID التالي لمعرفة شرح مفصل لكل مستوى RAID.

تثبيت mdadm في Linux

أداة اختيارنا لإنشاء وتجميع وإدارة ومراقبة RAID البرمجية هي تسمى mdadm (اختصار لإدارة الأقراص المتعددة).

$ sudo apt install mdadm         [On Debian, Ubuntu and Mint]
$ sudo yum install mdadm         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo zypper install mdadm      [On OpenSUSE]    

تجميع الأقسام كأجهزة RAID

يتكون عملية تجميع الأقسام الحالية كأجهزة RAID من الخطوات التالية.

1. إنشاء مجموعة جديدة باستخدام mdadm

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

بافتراض أنك قمت باتخاذ التدابير اللازمة لتجنب فقدان البيانات المهمة التي قد تكون موجودة فيها، يمكنك كتابة y بأمان والضغط على Enter.

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
Creating RAID Array

2. التحقق من حالة إنشاء المجموعة

للتحقق من حالة إنشاء المجموعة، ستستخدم الأوامر التالية – بغض النظر عن نوع RAID. هذه صالحة بالقدر نفسه عند إنشاء RAID0 (كما هو موضح أعلاه)، أو عندما تكون في عملية إعداد RAID5، كما هو موضح في الصورة أدناه.3. تهيئة جهاز RAID

# cat /proc/mdstat
or 
# mdadm --detail /dev/md0	[More detailed summary]
Check RAID Array Status

3. تنسيق جهاز RAID

قم بتنسيق الجهاز بنظام الملفات حسب احتياجاتك/المتطلبات، كما شرحت في الجزء 4 من هذه السلسلة.

4. مراقبة وظيفة مجموعة RAID

أصدر تعليمات لخدمة المراقبة للحفاظ على العلم بمجموعة RAID. أضف ناتج mdadm --detail --scan إلى /etc/mdadm/mdadm.conf (Debian والمشتقات) أو /etc/mdadm.conf (CentOS / openSUSE)، كما يلي.

# mdadm --detail --scan
Monitor RAID Array
# mdadm --assemble --scan 	[Assemble the array]

للتأكد من بدء الخدمة عند تشغيل النظام، قم بتنفيذ الأوامر التالية كمسؤول.

# systemctl start mdmonitor
# systemctl enable mdmonitor

5. التحقق من فشل قرص RAID

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

Check RAID Faulty Disk

خلاف ذلك، نحتاج إلى توصيل قرص جديد يدويًا بنظامنا وتشغيله.

# mdadm /dev/md0 --add /dev/sdX1

حيث /dev/md0 هي المجموعة التي واجهت المشكلة و /dev/sdX1 هو الجهاز الجديد.

6. تفكيك مجموعة تعمل

قد تضطر إلى القيام بذلك إذا كنت بحاجة إلى إنشاء مجموعة جديدة باستخدام الأجهزة – (خطوة إختيارية).

# mdadm --stop /dev/md0 		#  Stop the array
# mdadm --remove /dev/md0 		# Remove the RAID device
# mdadm --zero-superblock /dev/sdX1 	# Overwrite the existing md superblock with zeroes

7. إنشاء تنبيهات بريدية

يمكنك تكوين عنوان بريد إلكتروني صالح أو حساب أجهزة لإرسال التنبيهات إليه (تأكد من وجود هذا السطر في mdadm.conf). – (خطوة إختيارية)

MAILADDR root

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

ملاحظة: يرتبط هذا الحدث بالمثال في الخطوة 5، حيث تم تحديد جهاز كخرباء وتم بناء الجهاز البديل تلقائيًا في المجموعة من قبل mdadm. وهكذا، فقد “تشبعنا” بالأجهزة البديلة السليمة وحصلنا على التنبيه.

RAID Monitoring Alerts

فهم مستويات RAID في لينكس

إليك نبذة مختصرة عن مستويات RAID الشائعة:

RAID 0

يكون حجم المجموعة بالكامل n ضعف حجم أصغر تجزئة، حيث n هو عدد الأقراص المستقلة في المجموعة (ستحتاج إلى ما لا يقل عن قرصين). استخدم الأمر التالي لتجميع RAID 0 مجموعة باستخدام تجزئات /dev/sdb1 و /dev/sdc1.

# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

الاستخدامات الشائعة: مجموعات تدعم تطبيقات الوقت الحقيقي حيث يكون الأداء أكثر أهمية من الحماية من الأخطار.

RAID 1 (يُعرف أيضًا باسم التصوير)

يساوي حجم المجموعة بالكامل حجم أصغر تجزئة (ستحتاج إلى ما لا يقل عن قرصين). استخدم الأمر التالي لتجميع RAID 1 مجموعة باستخدام تجزئات /dev/sdb1 و /dev/sdc1.

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

الاستخدامات الشائعة: تثبيت نظام التشغيل أو المجلدات الفرعية المهمة، مثل /home.

RAID 5 (يُعرف أيضًا بأقراص التكافؤ)

سيكون حجم المجموعة الكامل (n – 1) مرة من حجم أصغر تقسيم. الفضاء “المفقود” في (n-1) يستخدم لحساب التكافؤ (التكرار) (سوف تحتاج إلى مكبرات ثلاثة على الأقل).

لاحظ أنه يمكنك تحديد جهاز استبدال (/dev/sde1 في هذه الحالة) لاستبدال جزء معطل عندما يحدث مشكلة. اجر الأمر التالي لتجميع RAID 5 مجموعة استخدام تقسيمات /dev/sdb1, /dev/sdc1, /dev/sdd1, و /dev/sde1 كاحتياطي.

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1

الاستخدامات الشائعة: ويب وخوادم الملفات.

RAID 6 (aka القرص مع التكافؤ المزدوج

سيكون حجم المجموعة الكامل (n*s)-2*s، حيث n هو عدد القرص المستقل في المجموعة و s هو حجم أصغر قرص. لاحظ أنه يمكنك تحديد جهاز استبدال (/dev/sdf1 في هذه الحالة) لاستبدال جزء معطل عندما يحدث مشكلة.

اجر الأمر التالي لتجميع RAID 6 مجموعة استخدام تقسيمات /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, و /dev/sdf1 كاحتياطي.

# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1

الاستخدامات الشائعة: خوادم الملفات وخادم النسخ الاحتياطي مع متطلبات السعة الكبيرة والكفالة العالية.

RAID 1+0 (aka شريط من المراسلات)

يتم حساب حجم المجموعة الكامل على أساس الصيغ لRAID 0 و RAID 1 منذ RAID 1+0 هو مزيج من كلاهما. أولا، حساب حجم كل مراسل ثم حجم شريط التجريد.

لاحظ أنه يمكنك تحديد جهاز إحتياطي (/dev/sdf1 في هذه الحالة) لتحل مكان جهاز خاطئ عند حدوث مشكلة. قم بتشغيل الأمر التالي لتجميع مجموعة RAID 1+0 باستخدام التقسيمات /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1، و /dev/sdf1 كجهاز إحتياطي.

# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1

استخدامات شائعة: خواديم قواعد البيانات وخدمات التطبيقات التي تتطلب عمليات I/O سريعة.

إنشاء وإدارة نسخ احتياطية للنظام في لينكس

لا يؤذي أبداً الإحتفاظ بالمعلومة أن RAID بكل فوائده لا يعوض النسخ الاحتياطية! اكتبها 1000 مرة على السبورة إذا كان عليك، لكن تأكد من الإبقاء بهذه الفكرة في كل وقت.

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

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

1. استخدام قرصات النسخ الاحتياطي باستخدام أمر dd

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

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

على سبيل المثال، إذا كنت تريد تصوير قطعة تخزين بحجم 20 جيغابايت وهي ممتلئة بنسبة 10% فستظل صورة الملف بحجم 20 جيغابايت. بمعنى آخر، لا يتم النسخ الاحتياطي للبيانات الفعلية فقط، بل للقطعة التخزين بالكامل. قد تفكر في استخدام هذه الطريقة إذا كنت بحاجة إلى نسخ احتياطية دقيقة للأجهزة الخاصة بك.

إنشاء صورة للقطعة التخزين

# dd if=/dev/sda of=/system_images/sda.img
OR
--------------------- Alternatively, you can compress the image file --------------------- 
# dd if=/dev/sda | gzip -c > /system_images/sda.img.gz 

استعادة صورة للقطعة التخزين

# dd if=/system_images/sda.img of=/dev/sda
OR 
# gzip -dc /system_images/sda.img.gz | dd of=/dev/sda 

2. النسخ الاحتياطي للملفات باستخدام الأمر tar

النسخ الاحتياطي لملفات محددة / مجلدات باستخدام الأمر tar – التي تم التغطية في الجزء 3 من هذه السلسلة. قد تفكر في استخدام هذه الطريقة إذا كنت تريد الحفاظ على نسخ لملفات ومجلدات محددة (ملفات التكوين، مجلدات المستخدمين، وهلم جرا).

2. النسخ الاحتياطي ومزامنة الملفات باستخدام الأمر rsync

تزامن الملفات بواسطة الأمر rsync، الذي هو أداة متعددة الاستخدامات لنسخ الملفات عن بعد (ومحلي). إذا كنت بحاجة إلى حفظ نسخة إحتياطية وتزامن ملفاتك إلى/من محركات الشبكة، rsync هو الخيار الأمثل.

سواء كنت تزامن مجلدين محليين أو مجلدات عن بعد < --- > موصولة على نظام الملفات المحلي، الصيغة الأساسية متشابهة.

تزامن مجلدين محليين

# rsync -av source_directory destination directory

حيث، -a يدخل إلى المجلدات الفرعية (إذا كانت موجودة),يحفظ الروابط الرمزية، والتوقيعات الزمنية، والأذونة، والمالك/المجموعة الأصليين و -v تفصيلي.

rsync Synchronizing Files

بالإضافة إلى ذلك، إذا كنت تريد زيادة أمان تحويل البيانات عبر الخط، يمكنك استخدام ssh عبر rsync.

تزامن المجلدات المحلية → العن بعد عبر SSH

# rsync -avzhe ssh backups root@remote_host:/remote_directory/

هذا المثال سيزامن مجلد النسخ الاحتياطي على الجهاز المحلي مع محتويات /root/remote_directory على الجهاز العن بعد.

حيث يظهر الخيار -h حجم الملفات بصيغة يمكن القراءة للبشر، وتستخدم العلامة -e لإشارة إلى اتصال SSH.

rsync Synchronize Remote Files

تزامن المجلدات العن بعد → المحلية عبر SSH

في هذه الحالة، قم بتبديل المصدر والجهة الوجهة من المثال السابق.

# rsync -avzhe ssh root@remote_host:/remote_directory/ backups 

يرجى ملاحظة أن هذه هي فقط 3 أمثلة (أكثر الحالات التي قد تواجهها) لاستخدام rsync. يمكن العثور على المزيد من الأمثلة واستخدامات أوامر rsync في المقال التالي.

ملخص

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

الكتاب الإلكتروني LFCS متوفر للشراء الآن. قم بطلب نسختك اليوم وابدأ رحلتك نحو أن تصبح مشرفًا معتمدًا على نظام لينكس!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

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

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

Source:
https://www.tecmint.com/creating-and-managing-raid-backups-in-linux/