איך ליצור מערכות RAID עם mdadm ב־Ubuntu 22.04

הקדמה

כלי mdadm ניתן לשימוש ליצירה וניהול של מערכות אחסון באמצעות יכולות ה-RAID של 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:

  1. cat /proc/mdstat
Output
Personalities : [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>

לאחר מכן, הסר את המערך מהמערכת הקבצים:

  1. sudo umount /dev/md0

עכשיו עצור והסר את המערך:

  1. sudo mdadm --stop /dev/md0

מצא את המכשירים שנעשה בהם שימוש לבניית המערך עם הפקודה הבאה:

אזהרה: שימו לב ששמות ה-/dev/sd* יכולים להשתנות בכל פעם שאתם מאתחלים. בדקו אותם בכל פעם כדי לוודא שאתם פועלים על המכשירים הנכונים.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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

לאחר גילוי המכשירים ששימשו לבניית המערך, אפס את superblock שבו נמצאים נתוני המטא-נתונים עבור הגדרת ה-RAID. האיפוס מסיר את המטא-נתונים של ה-RAID ומחזיר אותם למצב רגיל:

  1. sudo mdadm --zero-superblock /dev/sda
  2. sudo mdadm --zero-superblock /dev/sdb

מומלץ גם להסיר הפניות עמידות למערך. ערוך את קובץ /etc/fstab והוסף הערות או הסר הפנייה למערך שלך. ניתן להוסיף הערה על ידי הוספת סמל הפרישה # בתחילת השורה, באמצעות nano או העורך הטקסט המועדף עליך:

  1. sudo nano /etc/fstab
/etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

כמו כן, הער או הסר את הגדרת המערך מקובץ /etc/mdadm/mdadm.conf:

  1. sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

לבסוף, עדכן את initramfs שוב כך שתהליך ההפעלה המוקדם לא ינסה להעביר מערך לא זמין לפעולה:

  1. sudo update-initramfs -u

מכאן, אתה צריך להיות מוכן להשתמש שוב בהתקני האחסון באופן יחידני, או כרכיבי מערך שונה.

יצירת מערך RAID 0

מערך RAID 0 פועל על ידי פיצול המידע לחתיכות ועיוותו בכל דיסק זמין. זה אומר שכל דיסק מכיל חלק מהמידע וכי עשרות דיסקים ייעזרו באיחזור מידע.

  • דרישות: מינימום 2 מכשירי אחסון.
  • היתרון העיקרי: ביצועים ביצועים בקריאה/כתיבה ובקיבולת.
  • דברים שחשוב לזכור: ודא שיש לך גיבויים פועלים. כשמכשיר אחד נכשל, זה יהרוס את כל הנתונים במערך.

זיהוי מכשירי הרכיב

להתחלה, יש למצוא את המזהים של הדיסקים הגולמיים שתשתמש בהם:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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, ותכלול את שני הדיסקים שיבנו את המערך:

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

אישור שה-RAID נוצר בהצלחה על ידי בדיקת קובץ /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [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.

יצירת והרכבת הקבצים

בשלב הבא, יש ליצור מערך קבצים:

  1. sudo mkfs.ext4 -F /dev/md0

לאחר מכן, יש ליצור נקודת חיבור כדי לקשור את המערך החדש:

  1. sudo mkdir -p /mnt/md0

ניתן להרכיב את המערך באמצעות הפקודה הבאה:

  1. sudo mount /dev/md0 /mnt/md0

לאחר מכן, יש לבדוק האם השטח החדש זמין:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem 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. ניתן לסרוק באופן אוטומטי את המערך הפעיל ולהוסיף לקובץ את התוצאות באמצעות הפקודה הבאה:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

לבסוף, עליך לעדכן את initramfs, או מערכת הקובץ הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך האתחל המוקדם:

  1. sudo update-initramfs -u

הוסף את אפשרויות ההרכבה החדשות לקובץ /etc/fstab כדי שהם יתבצעו באופן אוטומטי בזמן האתחל:

  1. 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 התקני אחסון.
  • יתרון עיקרי: גיבוי בין שני התקנים אחסון.
  • דברים לקחת בחשבון: מכיוון שנשמרות שתי העותקים של הנתונים, רק מחצית מהשטח בדיסק יהיה ניתן לשימוש.

זיהוי התקנים הרכיבים

להתחלה, יש למצוא את מזהי הדיסקים הגולמיים שתשתמש בהם:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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, ותכלול את הדיסקים שיבנו את המערך:

  1. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

אם רכיבי המכשיר שאתה משתמש בהם אינם מחיצות עם דגל boot מופעל, ייתכן כי תקבל אזהרה זו. זה בטוח לענות y ולהמשיך:

Output
mdadm: 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:

  1. cat /proc/mdstat
Output
Personalities : [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. השורה השנייה המודגשת מראה את ההתקדמות בהעתקה. תוכל להמשיך לשלב הבא בזמן שהתהליך הזה מתממש.

יצירת המערך הקבצים והרכבתו

לאחר מכן, צור מערכת קבצים במערך:

  1. sudo mkfs.ext4 -F /dev/md0

אז, צור נקודת העגינה לצרכי המערכת החדשה:

  1. sudo mkdir -p /mnt/md0

תוכל להעגין את המערכת הקבצים על ידי הרצת הפקודה הבאה:

  1. sudo mount /dev/md0 /mnt/md0

בדוק האם המרחב החדש זמין:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem 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. ניתן לסרוק באופן אוטומטי את המערך הפעיל ולהוסיף לקובץ את המידע הבא:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

לאחר מכן, עליך לעדכן את initramfs, או מערכת הקבצים הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך תהליך האתחול המוקדם:

  1. sudo update-initramfs -u

הוסף אפשרויות הקיבוץ החדשות למערכת הקבצים ב-/etc/fstab עבור ההרכבה האוטומטית בעת האתחול:

  1. 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 יכול להתמודד עם ביצועים גרועים מאוד כאשר הוא במצב מזדקן.

זיהוי מכשירי הרכיב

כדי להתחיל, יש למצוא את המזהים עבור הדיסקים הגולמיים שתשתמש בהם:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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

יש לך שלושה דיסקים ללא מערכת הקבצים, כל אחד בגודל של 100G. המכשירים הללו קיבלו את המזהים /dev/sda, /dev/sdb ו־/dev/sdc עבור הסשן הזה והם יהיו הרכיבים הגולמיים שאתה משתמש בהם כדי לבנות את המערך.

יצירת המערך

ליצור מערך RAID 5 עם הרכיבים הללו, עבור אותם לmdadm --create פקודה. עליך לציין את שם ההתקן שברצונך ליצור, את רמת ה-RAID, ואת מספר ההתקנים. בדוגמה לפקודה זו, תקראו להתקן /dev/md0, ולכלול את הדיסקים שיבנו את המערך:

  1. sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

כלי ה-mdadm יתחיל להגדיר את המערך. הוא משתמש בתהליך השיקום כדי לבנות את המערך מסיבות ביצועים. זה עשוי לקחת זמן עד שיסתיים, אך המערך ניתן לשימוש במהלך הזמן הזה. תוכל לעקוב אחר ההתקדמות של ההעתקות על ידי בדיקת הקובץ /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [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. בשורה המודגשת השנייה מוצג ההתקדמות של הבנייה.

אזהרה: עקב הדרך שבה mdadm בונה מערכי RAID 5, במהלך בניית המערך, כמות הרזרבות במערך יידווח באופן בלתי מדויק. זה אומר שעליך להמתין שהמערך יסיים להתקבץ לפני שתעדכן את קובץ התצורה /etc/mdadm/mdadm.conf. אם תעדכן את קובץ התצורה במהלך בניית המערך, המערכת תכיל מידע שגוי אודות מצב המערך ולא תוכל להרכיב אותו אוטומטית בעת האתחול עם השם הנכון.

תוכל להמשיך במדריך במהלך התהליך הזה.

יצירת והרכבת מערכת הקבצים

הבא, צרו מערכת קבצים על המערך:

  1. sudo mkfs.ext4 -F /dev/md0

צרו נקודת הרכבה כדי לצרף את מערכת הקבצים החדשה:

  1. sudo mkdir -p /mnt/md0

ניתן להרכיב את מערכת הקבצים בעזרת הפקודה הבאה:

  1. sudo mount /dev/md0 /mnt/md0

בדקו האם השטח החדש זמין:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem 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:

  1. cat /proc/mdstat
Output
Personalities : [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>

הפלט מצביע על כך שהבנייה הושלמה. עכשיו, ניתן לסרוק באופן אוטומטי את המערך הפעיל ולהוסיף את הקובץ:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

לאחר מכן, עליכם לעדכן את initramfs, או מערכת הקבצים הראשונית במערכת ההפעלה, כך שהמערך יהיה זמין במהלך האתחול הראשון:

  1. sudo update-initramfs -u

הוסף את האפשרויות החדשות להרכבת מערכת הקבצים לקובץ \etc\fstab עבור ההרכבה האוטומטית בעת האתחול:

  1. 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 יכול להתקשות מאוד בביצועים כאשר במצב פגום.

זיהוי רכיבי ההתקן

להתחיל, יש למצוא את הזהויות של הדיסקים הגולמיים שתשתמש בהם:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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 ותכלול את הדיסקים שיבנו את המערך:

  1. sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

כלי ה-mdadm יתחיל להגדיר את המערך. הוא משתמש בתהליך השחזור כדי לבנות את המערך מבחינת ביצועים. זה יכול לקחת זמן מה כדי להושלם, אך ניתן להשתמש במערך בזמן זה. ניתן למעקב אחר התקדמות ההעתקה על ידי בדיקת הקובץ /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [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. השורה המודגשת השנייה מציגה את התקדמות הבניה. תוכל להמשיך במדריך גם כשתהליך זה מתבצע.

יצירת והרכבת הקובץ

לביצוע זאת, יש ליצור קובץ מערכת במערך:

  1. sudo mkfs.ext4 -F /dev/md0

יצירת נקודת חיבור לקבצים המערכת החדשים:

  1. sudo mkdir -p /mnt/md0

ניתן להרכיב את המערך באמצעות הפקודה הבאה:

  1. sudo mount /dev/md0 /mnt/md0

בדוק האם השטח החדש זמין:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem 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. ניתן לסרוק את המערך הפעיל באופן אוטומטי ולהוסיף את הקובץ באמצעות הפקודה הבאה:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

לאחר מכן, ניתן לעדכן את initramfs, או מערכת הקבצים הראשית בזיכרון המראש, כך שהמערך יהיה זמין במהלך תהליך האתחול המוקדם:

  1. sudo update-initramfs -u

הוסף אפשרויות תחביר המערכת החדשות לקובץ /etc/fstab כדי להרכיב באופן אוטומטי בזמן האתחול:

  1. 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 הוא ניתן להגדרה.

כברירת מחדל, שתי העותקים של כל בלוק נתונים יאוחסנו במה שנקרא פריסת קרובה. הפריסות האפשריות שמגדירות כיצד כל בלוק נתונים יאוחסן הן כדלקמן:

  • קרובה: הסידור ברירת המחדל. העותקים של כל חתיכה נכתבים ברצף כאשר מתבצעת רצף, אומר שהעותקים של בלוקי הנתונים ייכתבו בסביבה זהה של מספר כוננים מרובים.
  • רחוקה: העותק הראשון והעותקים הבאים נכתבים בחלקים שונים של מכשירי האחסון במערך. לדוגמה, החתיכה הראשונה עשויה להיכתב בסמוך להתחלת הדיסק, בעוד החתיכה השנייה תיכתב באמצעותו בדיסק אחר. זה יכול להביא לשיפור בביצועי הקריאה עבור דיסקים סובבים מסורתיים על חשבון ביצועי הכתיבה.
  • היסט: כל רצף מועתק ומוזז בדיסק. זה אומר שהעותקים מוזזים אחד מהשני, אך עדיין קרובים זה לזה על הדיסק. זה עוזר להפחית את התנועה היותר מוגזמת במהלך עומסי עבודה מסוימים.

ניתן למצוא מידע נוסף על הפריסות הללו על ידי בדיקת סעיף RAID10 בעמוד ה-man הזה:

  1. man 4 md

ניתן גם למצוא את עמוד ה-man הזה באינטרנט.

זיהוי יחידות הרכיב

להתחיל, יש למצוא את המזהים של הדיסקים הגולמיים שיישמשו לך:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME 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 ותכלול את הדיסקים שיבנו את המערך:

ניתן להגדיר שני העתקים באמצעות סידור הערכים הקרוב בלעדי כאשר אין לציין סידור או מספר העתקים:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

אם ברצונך להשתמש בסידור אחר או לשנות את מספר העתקים, עליך להשתמש באפשרות --layout=, שמקבלת זיהוי עיצוב והעתק. העיצובים הם n לקרוב, f לרחוק, ו- o לסיבוב. מספר העתקים לאחסון יתווסף לאחר מכן.

לדוגמה, כדי ליצור מערך שיש לו שלושה העתקים בעיצוב סיבוב, הפקודה תכלול את הכתוב:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

הכלי mdadm יתחיל להגדיר את המערך. הוא משתמש בתהליך השיקום כדי לבנות את המערך מסיבות ביצועים. זה עשוי לקחת זמן עד שהתהליך יסתיים, אך המערך יכול להיות בשימוש במהלך זמן זה. ניתן לעקוב אחר ההתקדמות של המראות על ידי בדיקה של קובץ /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [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. האזור המודגש השני מראה את הפריסה שנעשתה לדוגמה זו (שתי העתקים בפריסה קרובה). האזור המודגש השלישי מראה את ההתקדמות בבנייה. ניתן להמשיך במדריך במהלך השלמת התהליך הזה.

יצירת הקובץ וההתקנה של מערך הקבצים

בשלב הבא, יש ליצור מערך קבצים על המערך:

  1. sudo mkfs.ext4 -F /dev/md0

יצירת נקודת העגינה כדי לקשור את המערך החדש:

  1. sudo mkdir -p /mnt/md0

ניתן לעגן את המערך הקובץ עם הפקודה הבאה:

  1. sudo mount /dev/md0 /mnt/md0

לבדוק האם המרחב החדש זמין:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem 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. תוכל לסרוק באופן אוטומטי את המערך הפעיל ולהוסיף לקובץ באמצעות הפעלת הפקודה הבאה:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

לאחר מכן, תוכל לעדכן את initramfs, או מערכת הקובץ הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך תהליך ההפעלה המוקדם:

  1. sudo update-initramfs -u

הוסף את אפשרויות ההרכבת הקובץ החדש לקובץ /etc/fstab לצורך הרכבה אוטומטית בזמן ההפעלה:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

מערך ה-RAID 10 שלך יופעל ויתקן אוטומטית בכל הפעלה.

סיכום

במדריך זה, למדת כיצד ליצור מגוון של סוגי מערכות באמצעות יישום RAID של mdadm ב-Linux. מערכות RAID מציעות את התקנים הכוללים והביצועים המתקדמים יותר משימוש בדיסקים מרובים באופן נפרד.

פעם שהחלטת על סוג המערכת הנדרשת לסביבתך ויצרת את ההתקן, תוכל ללמוד איך לנהל את זה ביום-יום עם mdadm. מדריך שלנו על איך לנהל מערכות RAID עם mdadm ב-Ubuntu יכול לעזור לך להתחיל.

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-22-04