מבוא ל-GlusterFS (מערכת קבצים) והתקנה על RHEL/CentOS ו- Fedora

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

GlusterFS Storage

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

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

מהו GlusterFS?

GlusterFS הוא מערכת קבצים מבוזרת שמוגדרת לשימוש במרחב המשתמש, כלומר, מערכת קבצים במרחב המשתמש (FUSE). זו מערכת קבצים מבוסרת מבוססת תוכנה שתורמת לגמישותה האישית.

הסתכלו על התרשים הבא שמייצג בצורה סכמטית את מיקומה של GlusterFS במודל ההיררכי. כברירת מחדל, פרוטוקול TCP יועשה בשימוש על ידי GlusterFS.

GlusterFS Design

יתרונות של GlusterFS

  1. חדשנות – היא מסירה את המטה-נתונים ויכולה לשפר באופן דרמטי את הביצועים, אשר יסייע לנו לאחד את הנתונים והאובייקטים.
  2. גמישות – מותאמת לצמיחה והפחתה של גודל הנתונים.
  3. לגדול בצורה לינארית – יש אפשרות לפטבייטים ומעבר.
  4. פשטות – קל לניהול ואינו תלוי בליבת המערכת בזמן ריצה במרחב המשתמש.

מה הופך את Gluster למצטיין בהשוואה למערכות הקבצים המבוזרות האחרות?

  1. ניתן לשפר – החיסרון של שחזור נתונים מהיר יותר.
  2. זול – מוצב על חומרה בגינה.
  3. גמיש – כפי שציינתי לפני כן, GlusterFS הוא מערכת קבצים של תוכנה בלבד. כאן הנתונים מאוחסנים במערכות קבצים נטייביות כמו ext4, xfs וכו'
  4. קוד פתוח – GlusterFS נתמך כיום על ידי Red Hat Inc, חברת קוד פתוח בעלת תקציב מיליארד, כחלק מ-Red Hat Storage.

מושגי אחסון ב-GlusterFS

  1. בריק – בריק הוא בגדול תיקייה בה מיועד לשיתוף בין בריכת האחסון המהימנה.
  2. בריכת אחסון מהימנה – אוסף של קבצים/תיקיות משותפים אלו, המבוסס על הפרוטוקול המעוצב.
  3. אחסון לקוח – זהם התקנים באמצעותם הנתונים מועברים בין מערכות בצורת בלוקים.
  4. אשכול – ב-Red Hat Storage, גם אשכול ובריכת האחסון המהימנה מעבירים את אותו המשמעות של שיתוף פעולה של שרתי אחסון בהתבסס על פרוטוקול מוגדר.
  5. מערכת קבצים מבוזרת – מערכת קבצים בה מידע מפוזר על צמתים שונים בהם המשתמשים יכולים לגשת לקובץ בלי לדעת את המיקום המדויק שלו. המשתמש לא מרגיש את הגישה המרוחקת.
  6. FUSE – מודול קורנל שניתן לטעינה המאפשר למשתמשים ליצור מערכות קבצים מעל הקרנל מבלי לעורר קוד קרנל כלשהו.
  7. glusterd – glusterd הוא שרת ניהול GlusterFS שהוא הגב המרכזי של מערכת הקבצים שירוצה במשך כל הזמן כל עוד השרתים נמצאים במצב פעיל.
  8. POSIX – Portable Operating System Interface (POSIX) הוא משפחת התקנים שהוגדרה על ידי ה-IEEE כפתרון להתאמת Unix-המשפחה בצורת API.
  9. RAID – Redundant Array of Independent Disks (RAID) היא טכנולוגיה שמעניקה אמינות אחסון גבוהה יותר דרך גילוי חוסר בדידות.
  10. Subvolume – טיחול פסיק ברגע הגעתו בפחות ממתרגם אחד.
  11. מתרגם – מתרגם היא קטע הקוד המבצע את הפעולות הבסיסיות הנבנות על ידי המשתמש מנקודת העיגון. הוא מחבר נתב או יותר.
  12. אוחזת – אוחזות היא אוסף לוגי של טיחולים. כל הפעולות מבוססות על סוגי אוחזות שונים שנוצרים על ידי המשתמש.
אוחזויות שונות

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

Distributed Volume
Replicated Volume
Striped Volume
נפצל נפלא נפלא

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

Distributed Replicated Volume

התקנת GlusterFS ב-RHEL/CentOS וב-Fedora

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

שלב 1: יש לך לפחות שני צמתים

  1. התקן CentOS 6.5 (או כל מערכת הפעלה אחרת) על שני הצמתים.
  2. הגדר שמות מארחים בשמות " שרת1 " ו- " שרת2 ".
  3. A working network connection.
  4. דיסק אחסון בשני הצמתים בשם " /data/brick ".

שלב 2: הפעלת EPEL ומאגר GlusterFS

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

  1. איך להפעיל את מאגר ה-epel ב-RHEL/CentOS

בנוסף, עלינו להפעיל את מאגר 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

  1. תיקון עצמי – אם כל אחד מהלבנים בנפח משוכפל נפל למטה והמשתמשים משנים את הקבצים בלבן השני, שרת תיקון עצמי אוטומטי ייכנס לפעולה כאשר הלבן יהיה מחובר שוב והעסקאות שהתרחשו בזמן ההשבתה יסונכרנו בהתאם.
  2. איזון מחדש – אם אנו מוסיפים לבן חדש לנפח קיים, שבו כמות גדולה של נתונים הייתה שוהה קודם, אנו יכולים לבצע פעולת איזון מחדש כדי להפיץ את הנתונים בין כל הלבנים כולל הלבן החדש.
  3. גיאו-שיתוף – זה מספק גיבויים של נתונים לשחזור במקרה של פשיטת מזל. כאן מתקיימת הרעיון של נפחי ראש ועבד. כך שאם הנטמע יפול, ניתן לגשת לכל הנתונים דרך העבד. תכונה זו משמשת לסנכרון של נתונים בין שרתים שנפרדים גיאוגרפית. לאתחול הישיבת גיאו-שיתוף דרוש סדרת פקודות של Gluster.

כאן, הנה תצפית מסך המראה את מודול הגיאו-שיתוף.

Geo Replication

קישורים להפניה

דף הבית של GlusterFS

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

Source:
https://www.tecmint.com/introduction-to-glusterfs-file-system-and-installation-on-rhelcentos-and-fedora/