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

המושג של שרת מטה-נתונים אינו נחוץ יותר במערכת קבצים מבוזרת. במערכות קבצים מבוזרות, היא מציעה נקודת ראיה משותפת של כל הקבצים המופרדים בין שרתים שונים. קבצים/תיקיות בשרתי אחסון אלה נגישים בדרכים רגילות.
לדוגמה, ההרשאות לקבצים/תיקיות ניתן להגדיר כמו בדגם הרשאת המערכת הרגיל, כלומר, הבעלים, הקבוצה והאחרים. גישה למערכת הקבצים תלויה בעיקר על איך הפרוטוקול המסוים מותאם לעבודה על פיו.
מהו GlusterFS?
GlusterFS הוא מערכת קבצים מבוזרת שמוגדרת לשימוש במרחב המשתמש, כלומר, מערכת קבצים במרחב המשתמש (FUSE). זו מערכת קבצים מבוסרת מבוססת תוכנה שתורמת לגמישותה האישית.
הסתכלו על התרשים הבא שמייצג בצורה סכמטית את מיקומה של GlusterFS במודל ההיררכי. כברירת מחדל, פרוטוקול TCP יועשה בשימוש על ידי GlusterFS.

יתרונות של GlusterFS
- חדשנות – היא מסירה את המטה-נתונים ויכולה לשפר באופן דרמטי את הביצועים, אשר יסייע לנו לאחד את הנתונים והאובייקטים.
- גמישות – מותאמת לצמיחה והפחתה של גודל הנתונים.
- לגדול בצורה לינארית – יש אפשרות לפטבייטים ומעבר.
- פשטות – קל לניהול ואינו תלוי בליבת המערכת בזמן ריצה במרחב המשתמש.
מה הופך את Gluster למצטיין בהשוואה למערכות הקבצים המבוזרות האחרות?
- ניתן לשפר – החיסרון של שחזור נתונים מהיר יותר.
- זול – מוצב על חומרה בגינה.
- גמיש – כפי שציינתי לפני כן, GlusterFS הוא מערכת קבצים של תוכנה בלבד. כאן הנתונים מאוחסנים במערכות קבצים נטייביות כמו ext4, xfs וכו'
- קוד פתוח – GlusterFS נתמך כיום על ידי Red Hat Inc, חברת קוד פתוח בעלת תקציב מיליארד, כחלק מ-Red Hat Storage.
מושגי אחסון ב-GlusterFS
- בריק – בריק הוא בגדול תיקייה בה מיועד לשיתוף בין בריכת האחסון המהימנה.
- בריכת אחסון מהימנה – אוסף של קבצים/תיקיות משותפים אלו, המבוסס על הפרוטוקול המעוצב.
- אחסון לקוח – זהם התקנים באמצעותם הנתונים מועברים בין מערכות בצורת בלוקים.
- אשכול – ב-Red Hat Storage, גם אשכול ובריכת האחסון המהימנה מעבירים את אותו המשמעות של שיתוף פעולה של שרתי אחסון בהתבסס על פרוטוקול מוגדר.
- מערכת קבצים מבוזרת – מערכת קבצים בה מידע מפוזר על צמתים שונים בהם המשתמשים יכולים לגשת לקובץ בלי לדעת את המיקום המדויק שלו. המשתמש לא מרגיש את הגישה המרוחקת.
- FUSE – מודול קורנל שניתן לטעינה המאפשר למשתמשים ליצור מערכות קבצים מעל הקרנל מבלי לעורר קוד קרנל כלשהו.
- glusterd – glusterd הוא שרת ניהול GlusterFS שהוא הגב המרכזי של מערכת הקבצים שירוצה במשך כל הזמן כל עוד השרתים נמצאים במצב פעיל.
- POSIX – Portable Operating System Interface (POSIX) הוא משפחת התקנים שהוגדרה על ידי ה-IEEE כפתרון להתאמת Unix-המשפחה בצורת API.
- RAID – Redundant Array of Independent Disks (RAID) היא טכנולוגיה שמעניקה אמינות אחסון גבוהה יותר דרך גילוי חוסר בדידות.
- Subvolume – טיחול פסיק ברגע הגעתו בפחות ממתרגם אחד.
- מתרגם – מתרגם היא קטע הקוד המבצע את הפעולות הבסיסיות הנבנות על ידי המשתמש מנקודת העיגון. הוא מחבר נתב או יותר.
- אוחזת – אוחזות היא אוסף לוגי של טיחולים. כל הפעולות מבוססות על סוגי אוחזות שונים שנוצרים על ידי המשתמש.
אוחזויות שונות
ייצוגים של אוחזויות שונות ושילובים בין סוגי האוחזויות הבסיסיות אלו גם מותרים כפי שמוצג להלן.



נפצל נפלא נפלא
ייצוג של נפצל משותף.

התקנת GlusterFS ב-RHEL/CentOS וב-Fedora
במאמר זה, נתקין ונגדיר את GlusterFS לראשונה לצורך זמינות גבוהה של אחסון. לצורך כך, אנו משתמשים בשני שרתים כדי ליצור נפצלים ולשכפל נתונים ביניהם.
שלב 1: יש לך לפחות שני צמתים
- התקן CentOS 6.5 (או כל מערכת הפעלה אחרת) על שני הצמתים.
- הגדר שמות מארחים בשמות " שרת1 " ו- " שרת2 ".
- A working network connection.
- דיסק אחסון בשני הצמתים בשם " /data/brick ".
שלב 2: הפעלת EPEL ומאגר GlusterFS
לפני התקנת GlusterFS בשני השרתים, עלינו להפעיל את מאגרי EPEL ו- GlusterFS כדי לספק תלויות חיצוניות. יש להשתמש בקישור הבא כדי להתקין ולהפעיל את מאגר ה-epel בשני המערכות.
בנוסף, עלינו להפעיל את מאגר GlusterFs בשני השרתים.
# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
שלב 3: התקנת GlusterFS
התקן את התוכנה בשני השרתים.
# yum install glusterfs-server
הפעל את סוכן ניהול GlusterFS.
# service glusterd start
עכשיו בדוק את מצב הסוכן.
# service glusterd status
פלט דוגמא
service glusterd start service glusterd status glusterd.service - LSB: glusterfs server Loaded: loaded (/etc/rc.d/init.d/glusterd) Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/glusterd.service ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost... └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...
שלב 4: הגדרת SELinux ו-iptables
פתח את '/etc/sysconfig/selinux' ושנה את SELinux למצב "פרמיסיבי" או "נכית" על שני השרתים. שמור וסגור את הקובץ.
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
בשלב הבא, נקה את ה-iptables בשני הצמתים או נדרש לאפשר גישה לצומת השני באמצעות iptables.
# iptables -F
שלב 5: הגדר את בריכת האמין
הרץ את הפקודה הבאה על 'Server1'.
gluster peer probe server2
הרץ את הפקודה הבאה על 'Server2'.
gluster peer probe server1
הערה: לאחר שהבריכה הזו התחברה, רק משתמשים מהימנים יכולים לבדוק שרתים חדשים לבריכה זו.
שלב 6: הגדר נפח GlusterFS
על שני השרתים server1 ו-server2.
# mkdir /data/brick/gv0
צור נפח על שרת יחיד והפעל את הנפח. כאן, לקחתי 'Server1'.
# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0 # gluster volume start gv0
הבא, אשר את מצב הנפח.
# gluster volume info
הערה: אם במקרה שהנפח לא הופעל, הודעות השגיאה מתעדכנות תחת '/var/log/glusterfs' באחד או שני השרתים.
שלב 7: אמת את נפח GlusterFS
כניחות את הנפח לתיקייה מתחת ל-'/mnt'.
# mount -t glusterfs server1:/gv0 /mnt
עכשיו תוכל ליצור, לערוך קבצים בנקודת העגינה כתצוגה יחידה של מערכת הקבצים.
תכונות של GlusterFS
- תיקון עצמי – אם כל אחד מהלבנים בנפח משוכפל נפל למטה והמשתמשים משנים את הקבצים בלבן השני, שרת תיקון עצמי אוטומטי ייכנס לפעולה כאשר הלבן יהיה מחובר שוב והעסקאות שהתרחשו בזמן ההשבתה יסונכרנו בהתאם.
- איזון מחדש – אם אנו מוסיפים לבן חדש לנפח קיים, שבו כמות גדולה של נתונים הייתה שוהה קודם, אנו יכולים לבצע פעולת איזון מחדש כדי להפיץ את הנתונים בין כל הלבנים כולל הלבן החדש.
- גיאו-שיתוף – זה מספק גיבויים של נתונים לשחזור במקרה של פשיטת מזל. כאן מתקיימת הרעיון של נפחי ראש ועבד. כך שאם הנטמע יפול, ניתן לגשת לכל הנתונים דרך העבד. תכונה זו משמשת לסנכרון של נתונים בין שרתים שנפרדים גיאוגרפית. לאתחול הישיבת גיאו-שיתוף דרוש סדרת פקודות של Gluster.
כאן, הנה תצפית מסך המראה את מודול הגיאו-שיתוף.

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