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

הכלי שבחרנו ליצירה, איסוף, ניהול ומעקב אחר RAIDs התוכנה שלנו נקראת mdadm (קיצור ל-multiple disks admin).

$ 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

תן הוראות לשירות המעקב ל"שמור על המערך". הוסף את הפלט של mdadm --detail --scan ל/etc/mdadm/mdadm.conf (דבין ונגזרותיו) או /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

במקרה זה, כל האזהרות שהדאמון לניטור RAID אוסף ישלחו לתיבת הדואר של חשבון ה-root המקומי. אחת מאזהרות כזאת נראית כך:

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

RAID Monitoring Alerts

הבנת רמות RAID ב-Linux

הנה סקירה קצרה של רמות 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 (ידוע גם ככוננים עם תקינות כפולה

גודל המערך הכולל יהיה (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

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

RAID 1+0 (ידוע גם כצירוף של מראות

גודל המערך הכ

Note that you can specify a spare device (/dev/sdf1 in this case) to replace a faulty part when an issue occurs. Run the following command to assemble a RAID 1+0 array using partitions /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, and /dev/sdf1 as spare.

# 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. ניתן לגבות כונן קשיח שלם או חלקה על ידי יצירת תמונה מדויקת בכל נקודה בזמן. שימו לב שזה עובד הכי טוב כאשר ההתקן לא מחובר, כלומר הוא לא ממונטowany ואין תהליכים שמגיעים אליו לפעולות קלט-פלט.

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

לדוגמה, אם ברצונכם ליצור תמונה של חלקה של 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 eBook זמין כעת לרכישה. הזמן את העותק שלך היום והתחל את המסע שלך להיות מנהל מערכת לינוקס מוסמך!

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/