הקדמה
כלי 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
:
- 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
לאחר גילוי המכשירים ששימשו לבניית המערך, אפס את superblock שבו נמצאים נתוני המטא-נתונים עבור הגדרת ה-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
, או מערכת הקובץ הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך האתחל המוקדם:
- 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
, או מערכת הקבצים הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך תהליך האתחול המוקדם:
- 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
יש לך שלושה דיסקים ללא מערכת הקבצים, כל אחד בגודל של 100G. המכשירים הללו קיבלו את המזהים /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
. בשורה המודגשת השנייה מוצג ההתקדמות של הבנייה.
אזהרה: עקב הדרך שבה mdadm
בונה מערכי RAID 5, במהלך בניית המערך, כמות הרזרבות במערך יידווח באופן בלתי מדויק. זה אומר שעליך להמתין שהמערך יסיים להתקבץ לפני שתעדכן את קובץ התצורה /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
הוא ניתן להגדרה.
כברירת מחדל, שתי העותקים של כל בלוק נתונים יאוחסנו במה שנקרא פריסת קרובה. הפריסות האפשריות שמגדירות כיצד כל בלוק נתונים יאוחסן הן כדלקמן:
- קרובה: הסידור ברירת המחדל. העותקים של כל חתיכה נכתבים ברצף כאשר מתבצעת רצף, אומר שהעותקים של בלוקי הנתונים ייכתבו בסביבה זהה של מספר כוננים מרובים.
- רחוקה: העותק הראשון והעותקים הבאים נכתבים בחלקים שונים של מכשירי האחסון במערך. לדוגמה, החתיכה הראשונה עשויה להיכתב בסמוך להתחלת הדיסק, בעוד החתיכה השנייה תיכתב באמצעותו בדיסק אחר. זה יכול להביא לשיפור בביצועי הקריאה עבור דיסקים סובבים מסורתיים על חשבון ביצועי הכתיבה.
- היסט: כל רצף מועתק ומוזז בדיסק. זה אומר שהעותקים מוזזים אחד מהשני, אך עדיין קרובים זה לזה על הדיסק. זה עוזר להפחית את התנועה היותר מוגזמת במהלך עומסי עבודה מסוימים.
ניתן למצוא מידע נוסף על הפריסות הללו על ידי בדיקת סעיף 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
, או מערכת הקובץ הראשונית של ה-RAM, כך שהמערך יהיה זמין במהלך תהליך ההפעלה המוקדם:
- sudo update-initramfs -u
הוסף את אפשרויות ההרכבת הקובץ החדש לקובץ /etc/fstab
לצורך הרכבה אוטומטית בזמן ההפעלה:
- 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 יכול לעזור לך להתחיל.