المقدمة
يمكن استخدام أداة mdadm
لإنشاء وإدارة مجموعات التخزين باستخدام قدرات تجميع البيانات الآلية في Linux. يتمتع المسؤولون بمرونة كبيرة في تنسيق أجهزة التخزين الفردية الخاصة بهم وإنشاء أجهزة تخزين منطقية تتمتع بخصائص أداء أو تكرار أعلى.
في هذا الدليل، ستقوم بتنفيذ تكوينات RAID مختلفة يمكن إعدادها باستخدام خادم Ubuntu 22.04.
المتطلبات المسبقة
لمتابعة الخطوات في هذا الدليل، ستحتاج إلى:
- A non-root user with
sudo
privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide. - A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
- أجهزة تخزين غير معالجة متعددة متاحة على خادمك. توضح الأمثلة في هذا البرنامج التعليمي كيفية تكوين أنواع مختلفة من المجموعات على الخادم. وبالتالي، ستحتاج إلى بعض الأقراص للتكوين.
- بناءً على نوع المجموعة، ستحتاج إلى جهازي تخزين إلى أربعة أجهزة تخزين. لا يجب تهيئة هذه الأقراص قبل اتباع هذا الدليل.
معلومات: نظرًا لعدم كفاءة إعدادات RAID على خوادم الخاصة الافتراضية، لا نوصي بنشر إعداد RAID على قطرات DigitalOcean. تجعل كفاءة استنساخ القرص في مركز البيانات فوائد RAID تافهة بالمقارنة مع إعداد على الأجهزة المعدنية الأساسية. يهدف هذا البرنامج التعليمي إلى أن يكون مرجعًا لإعداد RAID تقليدي.
إعادة ضبط أجهزة RAID الحالية (اختياري)
يمكنك تخطي هذا القسم في الوقت الحالي إذا لم تقم بعد بإعداد أي مجموعات. ستقدم هذه الدليل مجموعة من مستويات RAID المختلفة. إذا كنت ترغب في متابعة كل مستوى RAID واستكماله لأجهزتك، فمن المحتمل أن ترغب في إعادة استخدام أجهزة التخزين الخاصة بك بعد كل قسم. يمكن الرجوع إلى هذا القسم المحدد إعادة ضبط أجهزة RAID الحالية لإعادة تعيين أجهزة التخزين الخاصة بمكونك قبل اختبار مستوى RAID جديد.
تحذير: سيؤدي هذا العملية إلى تدمير الصفيف بالكامل وأي بيانات تم كتابتها عليه. تأكد من أنك تعمل على الصفيف الصحيح وأنك قمت بنسخ أي بيانات تحتاج إلى الاحتفاظ بها قبل تدمير الصفيف.
ابدأ بالبحث عن الصفائف النشطة في ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdd[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
ثم قم بفصل الصفيف عن نظام الملفات:
- sudo umount /dev/md0
الآن قم بإيقاف وإزالة الصفيف:
- sudo mdadm --stop /dev/md0
ابحث عن الأجهزة التي تم استخدامها لإنشاء الصفيف باستخدام الأمر التالي:
تحذير: تذكر أن أسماء /dev/sd*
يمكن أن تتغير في أي وقت تعيد فيه التشغيل. تحقق منها في كل مرة للتأكد من أنك تعمل على الأجهزة الصحيحة.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G linux_raid_member disk
sdb 100G linux_raid_member disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
بعد اكتشاف الأجهزة المستخدمة لإنشاء صفيف، اصفر ذاكرتها الدائرية التي تحمل البيانات الوصفية لإعداد RAID. يقوم اصفار هذا العمل بإزالة البيانات الوصفية لـ RAID وإعادة تعيينها إلى الوضع الطبيعي:
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
يُوصى أيضًا بإزالة أي إشارات دائمة إلى المصفوفة. قم بتحرير ملف /etc/fstab
وقم بتعليق الإشارة إلى المصفوفة أو إزالتها. يمكنك تعليقها عن طريق إدراج رمز الوسم #
في بداية السطر، باستخدام nano
أو محرر النص الذي تفضله:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
كما يجب تعليق أو إزالة تعريف المصفوفة من ملف /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
وأخيرًا، قم بتحديث initramfs
مرة أخرى بحيث لا يحاول عملية الإقلاع الباكرة إحضار مصفوفة غير متاحة عبر الإنترنت:
- sudo update-initramfs -u
من هنا، يجب أن تكون جاهزًا لإعادة استخدام أجهزة التخزين بشكل فردي، أو كمكونات لمصفوفة مختلفة.
إنشاء مصفوفة RAID 0
تعمل مصفوفة RAID 0 عن طريق تقسيم البيانات إلى قطع وتشريحها عبر الأقراص المتاحة. وهذا يعني أن كل قرص يحتوي على جزء من البيانات وأنه سيتم الرجوع إلى عدة أقراص عند استرداد المعلومات.
- المتطلبات: الحد الأدنى 2 أجهزة تخزين.
- الفائدة الرئيسية: الأداء من حيث القراءة/الكتابة والسعة.
- أشياء يجب مراعاتها: تأكد من وجود نسخ احتياطية فعالة. فشل جهاز واحد سيؤدي إلى تدمير جميع البيانات في المصفوفة.
تحديد أجهزة المكونات
للبدء، ابحث عن المعرفات الخاصة بالأقراص الخام التي ستستخدمها:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
في هذا المثال، لديك اثنين من الأقراص بدون نظام ملفات، كل منها بحجم 100 جيجابايت. تم تعيين هذه الأجهزة المعرفات /dev/sda
و /dev/sdb
لهذه الجلسة وستكون المكونات الخام المستخدمة لإنشاء المجموعة.
إنشاء المجموعة
لإنشاء مجموعة RAID 0 باستخدام هذه المكونات، قم بتمريرها إلى أمر mdadm --create
. ستحتاج إلى تحديد اسم الجهاز الذي تريد إنشاؤه، ومستوى RAID، وعدد الأجهزة. في هذا المثال من الأمر، ستسمي الجهاز بالاسم /dev/md0
، وتتضمن الأقراص الاثنين التي ستبني المجموعة:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
تأكد من إنشاء المجموعة RAID بنجاح عن طريق التحقق من ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdb[1] sda[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
يكشف هذا الإخراج أن الجهاز /dev/md0
تم إنشاؤه في تكوين RAID 0 باستخدام الأجهزة /dev/sda
و /dev/sdb
.
إنشاء وتركيب نظام الملفات
بعد ذلك، قم بإنشاء نظام ملفات على الصف:
- sudo mkfs.ext4 -F /dev/md0
ثم، قم بإنشاء نقطة تركيب لربط النظام الملفات الجديد:
- sudo mkdir -p /mnt/md0
يمكنك تركيب النظام الملفات باستخدام الأمر التالي:
- sudo mount /dev/md0 /mnt/md0
بعد ذلك، تحقق مما إذا كان المساحة الجديدة متاحة:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 196G 61M 186G 1% /mnt/md0
الآن تم تركيب والوصول إلى النظام الملفات الجديد.
حفظ تخطيط الصف
للتأكد من أن الصف يتم إعادة تجميعه تلقائيًا عند التشغيل، يجب عليك ضبط ملف /etc/mdadm/mdadm.conf
. يمكنك فحص الصف النشط تلقائيًا وإضافة الملف بالتالي:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
بعد ذلك، يمكنك تحديث initramfs
، أو نظام الملفات الأساسي على الذاكرة، بحيث يكون الصف متاحًا خلال عملية التشغيل الأولية:
- sudo update-initramfs -u
أضف خيارات تركيب النظام الملفات الجديد إلى ملف /etc/fstab
للتركيب التلقائي عند التشغيل:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
سيتم تجميع صف RAID 0 الخاص بك تلقائيًا وتركيبه في كل تشغيل.
لقد انتهيت الآن من إعداد مجموعة RAID الخاصة بك. إذا كنت ترغب في تجربة نوع RAID مختلف، اتبع تعليمات إعادة الضبط في بداية هذا البرنامج التعليمي للمتابعة في إنشاء صف RAID جديد.
إنشاء مصفوفة RAID 1
نوع مصفوفة RAID 1 يتم تنفيذه عن طريق تكرار البيانات عبر جميع الأقراص المتاحة. يحصل كل قرص في مصفوفة RAID 1 على نسخة كاملة من البيانات، مما يوفر التكرار في حالة فشل الجهاز.
- المتطلبات: الحد الأدنى هو 2 أجهزة تخزين.
- الفائدة الرئيسية: التكرار بين جهازي تخزين.
- الأمور التي يجب مراعاتها: نظرًا للحفاظ على نسختين من البيانات، سيتم استخدام نصف مساحة القرص فقط.
تحديد مكونات الجهاز
للبدء، ابحث عن معرفات الأقراص الخام التي ستستخدمها:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
في هذا المثال، لديك قرصين بحجم 100 جيجابايت لكل منهما بدون نظام ملفات. تم تعيين معرفات /dev/sda
و /dev/sdb
لهذه الأجهزة في هذه الجلسة وستكون المكونات الخام التي ستستخدمها لإنشاء المصفوفة.
إنشاء المصفوفة
لإنشاء مصفوفة RAID 1 باستخدام هذه المكونات، قم بتمريرها إلى أمر mdadm --create
. سيتعين عليك تحديد اسم الجهاز الذي ترغب في إنشاءه، ومستوى RAID، وعدد الأجهزة. في هذا المثال الأمر، ستقوم بتسمية الجهاز باسم /dev/md0
، وتضمن الأقراص التي ستكون جزءًا من المصفوفة:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
إذا كانت أجهزة المكون التي تستخدمها ليست أقسامًا مع علم boot
مفعل، فمن المرجح أن تتلقى التحذير التالي. يمكنك الرد بـ y
بأمان والمتابعة:
Outputmdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 104792064K
Continue creating array? y
سيبدأ أداة mdadm
في تكرار المحركات. قد يستغرق ذلك بعض الوقت للانتهاء، ولكن يمكن استخدام المصفوفة خلال هذا الوقت. يمكنك مراقبة تقدم التكرار من خلال فحص ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1] sda[0]
104792064 blocks super 1.2 [2/2] [UU]
[====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec
unused devices: <none>
في السطر المظلل أولاً، تم إنشاء الجهاز /dev/md0
في تكوين RAID 1 باستخدام أجهزة /dev/sda
و /dev/sdb
. السطر المظلل الثاني يظهر التقدم في التكرار. يمكنك المتابعة إلى الخطوة التالية بينما يتم الانتهاء من هذه العملية.
إنشاء وتثبيت نظام الملفات
بعد ذلك، قم بإنشاء نظام ملفات على المصفوفة:
- sudo mkfs.ext4 -F /dev/md0
ثم، قم بإنشاء نقطة تثبيت لربط نظام الملفات الجديد:
- sudo mkdir -p /mnt/md0
يمكنك تثبيت نظام الملفات عن طريق تشغيل الأمر التالي:
- sudo mount /dev/md0 /mnt/md0
تحقق مما إذا كان المساحة الجديدة متاحة:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 99G 60M 94G 1% /mnt/md0
تم تثبيت النظام الملفي الجديد وهو متاح الآن.
حفظ تخطيط المصفوفة
للتأكد من أن المصفوفة ستُجمع تلقائيًا عند التمهيد، يجب عليك ضبط ملف /etc/mdadm/mdadm.conf
. يمكنك فحص المصفوفة النشطة تلقائيًا وإضافة الملف بالمحتوى التالي:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
بعد ذلك، يمكنك تحديث initramfs
، أو نظام الملفات الأساسي للذاكرة العشوائية، بحيث يكون المصفوفة متاحة أثناء عملية التمهيد الأولية:
- sudo update-initramfs -u
أضف خيارات تثبيت النظام الملفي الجديد إلى ملف /etc/fstab
للتثبيت التلقائي عند التمهيد:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
سيتم تجميع مصفوفة RAID 1 الخاصة بك تلقائيًا وتثبيتها في كل عملية تمهيد الآن.
لقد انتهيت الآن من إعداد مجموعة RAID الخاصة بك. إذا كنت ترغب في تجربة مجموعة RAID مختلفة، فاتبع تعليمات إعادة التعيين في بداية هذا البرنامج التعليمي للمتابعة في إنشاء نوع جديد من مجموعة RAID.
إنشاء مصفوفة RAID 5
النوع RAID 5 يتم تنفيذه عن طريق تجزئة البيانات عبر الأجهزة المتاحة. يتم حساب كتلة الزوجية لكل قطاع، وإذا فشلت إحدى الأجهزة، يمكن استخدام كتلة الزوجية والكتل المتبقية لحساب البيانات المفقودة. يتم تناوب الجهاز الذي يتلقى كتلة الزوجية بحيث يكون لدى كل جهاز كمية متوازنة من معلومات الزوجية.
- المتطلبات: الحد الأدنى لعدد 3 أجهزة تخزين.
- الفائدة الرئيسية: التكرار مع سعة استخدام أكبر.
- الأمور التي يجب مراعاتها: بينما يتم توزيع معلومات الزوجية، سيتم استخدام سعة قرص واحد للزوجية. يمكن أن يعاني RAID 5 من أداء ضعيف جدًا عندما يكون في حالة تدهور.
تحديد أجهزة العنصر
للبدء، ابحث عن هويات الأقراص الخام التي ستستخدمها:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
لديك ثلاثة أقراص بدون نظام ملفات، كل واحدة بحجم 100 جيجابايت. تم تعيين الهويات /dev/sda
، /dev/sdb
، و /dev/sdc
لهذه الجلسة وستكون المكونات الخام التي ستستخدمها لبناء المصفوفة.
إنشاء المصفوفة
لإنشاء مصفوفة RAID 5 باستخدام هذه العناصر، قم بتمريرها إلى أمر mdadm --create
. سيتعين عليك تحديد اسم الجهاز الذي ترغب في إنشائه، ومستوى RAID، وعدد الأجهزة. في مثال هذا الأمر، ستسمي الجهاز /dev/md0
، وتضمن الأقراص التي ستشكل المصفوفة:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
سيبدأ أداة mdadm
في تكوين المصفوفة. يستخدم عملية الاستعادة لبناء المصفوفة لأسباب أداء. يمكن أن يستغرق ذلك بعض الوقت للانتهاء، ولكن يمكن استخدام المصفوفة خلال هذا الوقت. يمكنك مراقبة تقدم عملية المرآة عن طريق فحص ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec
unused devices: <none>
في السطر المميز الأول، تم إنشاء الجهاز /dev/md0
في تكوين RAID 5 باستخدام الأجهزة /dev/sda
، /dev/sdb
و /dev/sdc
. يظهر السطر المميز الثاني تقدم عملية البناء.
تحذير: بسبب كيفية بناء أمصفوفات RAID 5 من قبل mdadm
، أثناء بناء المصفوفة، سيتم الإبلاغ عن عدد القطع الاحتياطية في المصفوفة بشكل غير دقيق. وهذا يعني أنه يجب عليك الانتظار حتى يتم الانتهاء من تجميع المصفوفة قبل تحديث ملف /etc/mdadm/mdadm.conf
. إذا قمت بتحديث ملف التكوين أثناء بناء المصفوفة، ستحتوي النظام على معلومات غير صحيحة حول حالة المصفوفة ولن يكون قادرًا على تجميعها تلقائيًا عند التمهيد بالاسم الصحيح.
يمكنك متابعة الدليل أثناء اكتمال هذه العملية.
إنشاء وتركيب نظام الملفات
بعد ذلك، قم بإنشاء نظام ملفات على المصفوفة:
- sudo mkfs.ext4 -F /dev/md0
قم بإنشاء نقطة تركيب لربط النظام الملفات الجديد:
- sudo mkdir -p /mnt/md0
يمكنك تركيب النظام الملفات باستخدام الأمر التالي:
- sudo mount /dev/md0 /mnt/md0
تحقق مما إذا كان المساحة الجديدة متاحة:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
تم تركيب والوصول إلى النظام الملفات الجديد.
حفظ تخطيط المصفوفة
للتأكد من أن المصفوفة ستُعاد تجميعها تلقائيًا عند التمهيد، عليك ضبط ملف /etc/mdadm/mdadm.conf
.
تحذير: كما ذُكر سابقًا، قبل أن تقوم بضبط الإعدادات، تحقق مرة أخرى للتأكد من أن المصفوفة قد انتهت من التجميع. إكمال الخطوات التالية قبل أن تكون المصفوفة قد تمتلئ سيمنع النظام من تجميع المصفوفة بشكل صحيح عند إعادة التمهيد.
يمكنك مراقبة تقدم عملية المزامنة عن طريق فحص ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
يكشف هذا الإخراج أن إعادة البناء قد اكتملت. الآن، يمكنك تفحص المصفوفة النشطة تلقائيًا وإلحاق الملف:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
بعد ذلك، يمكنك تحديث initramfs
، أو نظام الملفات الأولي في الذاكرة العشوائية، بحيث يكون المصفوفة متاحة خلال عملية التمهيد الأولية.
- sudo update-initramfs -u
أضف خيارات تركيب نظام الملفات الجديدة إلى ملف /etc/fstab
للتركيب التلقائي عند التمهيد:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
سيتم تجميع مصفوفة RAID 5 الخاصة بك تلقائيًا وتركيبها في كل مرة يتم فيها التمهيد.
لقد انتهيت الآن من إعداد مجموعة RAID الخاصة بك. إذا كنت ترغب في تجربة RAID مختلف، اتبع تعليمات إعادة التعيين في بداية هذا البرنامج التعليمي للاستمرار في إنشاء نوع جديد من مصفوفة RAID.
إنشاء مصفوفة RAID 6
نوع مصفوفة RAID 6 يتم تنفيذه عن طريق تجزئة البيانات عبر الأجهزة المتاحة. يتم حساب مكونين من كل تجزئة كتل تكافؤ. إذا فشل جهاز أو جهازان، يمكن استخدام كتل التكافؤ والكتل المتبقية لحساب البيانات المفقودة. يتم تبديل الأجهزة التي تستقبل كتل التكافؤ بحيث يكون لدى كل جهاز كمية متوازنة من المعلومات التكافؤ. هذا مشابه لمصفوفة RAID 5، ولكن يسمح بفشل جهازين.
- المتطلبات: الحد الأدنى لـ 4 أجهزة تخزين.
- الفائدة الرئيسية: استمرارية مضاعفة مع سعة قابلة للاستخدام أكبر.
- أشياء يجب أن تضعها في اعتبارك: بينما يتم توزيع معلومات التكافؤ، سيتم استخدام سعة القرصين لأغراض التكافؤ. يمكن لمصفوفة RAID 6 أن تعاني من أداء سيء للغاية عندما تكون في حالة تدهور.
تحديد أجهزة المكونات
للبدء، ابحث عن معرفات الأقراص الخام التي ستستخدمها:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
في هذا المثال، لديك أربعة أقراص بحجم 100 جيجابايت لكل منها بدون نظام ملفات. تم تخصيص المعرفات /dev/sda
، /dev/sdb
، /dev/sdc
، و /dev/sdd
لهذه الأجهزة لهذه الجلسة وسيتم استخدامها كمكونات خام لبناء المجموعة.
إنشاء المجموعة
لإنشاء مجموعة RAID 6 باستخدام هذه المكونات، قم بتمريرها إلى أمر mdadm --create
. يجب عليك تحديد اسم الجهاز الذي ترغب في إنشائه، ومستوى RAID، وعدد الأجهزة. في مثال الأمر التالي، ستسمي الجهاز /dev/md0
وتشمل الأقراص التي ستبني المجموعة:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
يبدأ أداة mdadm
في تكوين المجموعة. تستخدم عملية الاسترداد لبناء المجموعة لأسباب أداء. قد يستغرق هذا بعض الوقت للاكتمال، ولكن يمكن استخدام المجموعة خلال هذا الوقت. يمكنك مراقبة تقدم عملية المزامنة عن طريق فحص ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
[>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec
unused devices: <none>
في السطر المظلل الأول، تم إنشاء جهاز /dev/md0
بتكوين RAID 6 باستخدام الأجهزة /dev/sda
، /dev/sdb
، /dev/sdc
و /dev/sdd
. السطر المظلل الثاني يوضح تقدم البناء. يمكنك متابعة الدليل أثناء اكتمال هذه العملية.
إنشاء وتثبيت نظام الملفات
بعد ذلك، قم بإنشاء نظام ملفات على المصفوفة:
- sudo mkfs.ext4 -F /dev/md0
أنشئ نقطة تثبيت لربط النظام الملفات الجديد بها:
- sudo mkdir -p /mnt/md0
يمكنك تثبيت النظام الملفات باستخدام الأمر التالي:
- sudo mount /dev/md0 /mnt/md0
تحقق مما إذا كان المساحة الجديدة متاحة:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
تم تثبيت النظام الملفات الجديد ويمكن الوصول إليه.
حفظ تخطيط المصفوفة
للتأكد من أن المصفوفة ستتم إعادة تجميعها تلقائياً عند التمهيد، ستحتاج إلى ضبط ملف /etc/mdadm/mdadm.conf
. يمكنك فحص المصفوفة النشطة تلقائيًا وإضافة الملف عن طريق كتابة:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
بعد ذلك، يمكنك تحديث الـinitramfs
، أو نظام الملفات الأساسي، بحيث تكون المصفوفة متاحة أثناء عملية التمهيد الأولية:
- sudo update-initramfs -u
أضف خيارات تحميل نظام الملفات الجديدة إلى ملف /etc/fstab
لتحميل تلقائي عند التمهيد:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
ستقوم سلسلة RAID 6 الخاصة بك الآن بالتجميع والتحميل تلقائيًا في كل مرة تقوم فيها بالتمهيد.
لقد انتهيت الآن من إعداد مجموعة RAID الخاصة بك. إذا كنت ترغب في تجربة نوع RAID مختلف، اتبع تعليمات إعادة الضبط في بداية هذا البرنامج التعليمي للاستمرار في إنشاء نوع جديد من مجموعة RAID.
إنشاء مجموعة RAID 10 معقدة
نوع مجموعة RAID 10 يتم تنفيذه تقليديًا عن طريق إنشاء مجموعة RAID 0 متعددة الطبقات تتألف من مجموعات من مجموعات RAID 1. هذا النوع المدمج يوفر كل من الإعادة والأداء العالي، على حساب كميات كبيرة من مساحة القرص. أداة mdadm
لديها نوع RAID 10 الخاص بها يوفر نفس فوائد هذا النوع مع زيادة المرونة. لا يتم إنشاءها عن طريق تداخل المجموعات، ولكن لديها العديد من السمات والضمانات نفسها. ستستخدم هنا مجموعة RAID 10 باستخدام أداة mdadm
.
- المتطلبات: الحد الأدنى من 3 أجهزة تخزين.
- الفائدة الرئيسية: الأداء والإعادة.
- أشياء يجب أن تتذكرها: يتم تحديد كمية التقليل في السعة للمجموعة بواسطة عدد نسخ البيانات التي تختار الاحتفاظ بها. يمكن تكوين عدد النسخ التي يتم تخزينها باستخدام RAID 10 بنمط
mdadm
.
بشكل افتراضي، سيتم تخزين نسختين من كل كتلة بيانات في ما يُعرف بتخطيط near. التخطيطات الممكنة التي تحدد كيفية تخزين كل كتلة بيانات هي كما يلي:
- near: الترتيب الافتراضي. تُكتب نسخ من كل قطعة تتاليًا عند التشريح، وهذا يعني أن نسخ الكتل ستكتب حول نفس الجزء من عدة أقراص.
- far: يتم كتابة النسخة الأولى والنسخ اللاحقة إلى أجزاء مختلفة من أجهزة التخزين في المصفوفة. على سبيل المثال، يمكن أن يتم كتابة القطعة الأولى بالقرب من بداية قرص، بينما تُكتب القطعة الثانية في منتصف قرص مختلف. يمكن أن يوفر ذلك بعض المكاسب في أداء القراءة لأقراص الدوران التقليدية على حساب أداء الكتابة.
- offset: يتم نسخ كل شريط وإزاحته بمحرك واحد. يعني هذا أن النسخ تكون مزاحفة عن بعضها البعض، ولكنها لا تزال قريبة من بعضها البعض على القرص. يساعد ذلك في تقليل البحث الزائد أثناء بعض الأعباء.
يمكنك معرفة المزيد حول هذه التخطيطات عن طريق التحقق من قسم RAID10
في صفحة man
هذه:
- man 4 md
يمكنك أيضًا العثور على هذه الصفحة man
على الإنترنت.
تحديد مكونات الأجهزة
للبداية، ابحث عن معرفات الأقراص الخام التي ستستخدمها.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
في هذا المثال، لديك أربعة أقراص بدون نظام ملفات، كل منها بحجم 100 جيجابايت. تم تخصيص الهويات /dev/sda
، /dev/sdb
، /dev/sdc
، و /dev/sdd
لهذه الجلسة وستكون المكونات الخام التي سيتم استخدامها لبناء المصفوفة.
إنشاء المصفوفة
لإنشاء مصفوفة RAID 10 باستخدام هذه المكونات، قم بتمريرها إلى أمر mdadm --create
. يجب عليك تحديد اسم الجهاز الذي ترغب في إنشائه، ومستوى RAID، وعدد الأجهزة. في مثال الأمر التالي، ستسمي الجهاز /dev/md0
وتضمن الأقراص التي ستشكل المصفوفة:
يمكنك إعداد نسختين باستخدام التخطيط القريب بعدم تحديد تخطيط وعدد النسخ:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
إذا كنت ترغب في استخدام تخطيط مختلف أو تغيير عدد النسخ، يجب عليك استخدام الخيار --layout=
، الذي يأخذ معرف تخطيط ونسخة. التخطيطات هي n
للقريب، f
للبعيد، و o
للإزاحة. يتم إلحاق عدد النسخ للتخزين بعد ذلك.
على سبيل المثال، لإنشاء مصفوفة تحتوي على ثلاث نسخ في تخطيط الإزاحة، سيشمل الأمر الآتي:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
ستبدأ أداة mdadm
في تكوين المصفوفة. تستخدم عملية الاسترداد لبناء المصفوفة لأسباب أداء. قد يستغرق ذلك بعض الوقت للانتهاء، ولكن يمكن استخدام المصفوفة خلال هذا الوقت. يمكنك مراقبة تقدم التزامن عن طريق التحقق من ملف /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
[===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec
unused devices: <none>
في السطر المحدد الأول، تم إنشاء جهاز /dev/md0
في تكوين RAID 10 باستخدام أجهزة /dev/sda
، /dev/sdb
، /dev/sdc
، و /dev/sdd
. يوضح المنطقة المحددة الثانية التخطيط الذي تم استخدامه في هذا المثال (نسختان في التكوين القريب). توضح المنطقة المحددة الثالثة تقدم عملية البناء. يمكنك متابعة الدليل أثناء اكتمال هذه العملية.
إنشاء وتثبيت النظام الملفي
بعد ذلك، قم بإنشاء نظام ملفات على المصفوفة:
- sudo mkfs.ext4 -F /dev/md0
أنشئ نقطة تثبيت لربط النظام الملفي الجديد:
- sudo mkdir -p /mnt/md0
يمكنك تثبيت النظام الملفي باستخدام ما يلي:
- sudo mount /dev/md0 /mnt/md0
تحقق مما إذا كان المساحة الجديدة متاحة:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
تم تثبيت النظام الملفي الجديد وهو متاح.
حفظ تخطيط المصفوفة
لضمان أن يتم تجميع المصفوفة تلقائيًا عند التشغيل، ستحتاج إلى ضبط ملف /etc/mdadm/mdadm.conf
. يمكنك فحص المصفوفة النشطة تلقائيًا وإضافة الملف عن طريق تشغيل الأمر التالي:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
بعد ذلك، يمكنك تحديث initramfs
، أو نظام الملفات الأساسي للذاكرة، بحيث تكون المصفوفة متاحة خلال عملية التشغيل الأولية:
- sudo update-initramfs -u
أضف خيارات تركيب نظام الملفات الجديد إلى ملف /etc/fstab
للتركيب التلقائي عند التشغيل:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
ستتمكن المصفوفة الخاصة بك من التجميع والتركيب تلقائيًا في كل مرة يتم فيها تشغيل النظام.
استنتاج
في هذا الدليل، تعلمت كيفية إنشاء مختلف أنواع المصفوفات باستخدام أداة تجميع البرمجيات RAID في نظام Linux، mdadm
. تقدم المصفوفات RAID بعض التحسينات المقنعة للتكرار والأداء عند استخدام عدة أقراص بشكل فردي.
بمجرد تحديد نوع المصفوفة الذي يلبي احتياجات بيئتك وإنشاء الجهاز، يمكنك معرفة كيفية إدارة اليوم اليوم باستخدام mdadm
. يمكن أن يساعدك دليلنا حول كيفية إدارة مصفوفات RAID باستخدام mdadm
على Ubuntu في البداية.