מבוא לניהול מכסות - Quota

מדריך זה נכתב על ידי jaxler בתאריך 2002-08-01
המדריך הומר לתסדיר דוקוויקי על ידי DoK בתאריך 2007-05-02

מבוא

מה זה quota?

המכסות (quota) נועדו להגביל את כמות הדיסק המותרת לשימוש למשתמש או קבוצה מסוימת ההגבלה יכולה להיות בשני מישורים, הגבלת הבלוקים או הגבלת כמות הinodes המותרים לשימוש. במערכות גדולות עם הרבה משתמשים מומלץ להגביל כל משתמש לכמות דיסק מסוימת וכך להמנע משימוש מיותר בשטח הדיסק.

למי נועד המדריך?

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

זכויות יוצרים

כל הזכויות שמורות © 2002 ל-jaxler
הרשות נתונה בזאת להעתיק, להפיץ ו/או לשנות את המסמך הזה, תחת תנאי רשיון ה-GFDL גרסה 1.1 או כל גרסה מאוחרת יותר שתפורסם ע”י המוסד לתוכנה חופשית.
השימוש במדריך מותר לשימוש לא מסחרי. העתקתו / הפצתו מחדש, מותרת בצירוף זכויות היוצרים ובהתאם למפורט ברשיון ה GFDL.

רישיון ה-GFDL זמין כאן: http://www.gnu.org/copyleft/fdl.html

התקנת תמיכה למכסות

האם המערכת שלי מוכנה?

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

rpm -qu | grep quota

התקנת המכסות במערכת

במקרה והמערכת שלך לא תומכת במכסות יש צורך לקמפל את הקרנל שיתמוך בהם. הורד את הטלאי המתאים לגרסת הקרנל שלך מהכתובת ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota
בזמן קימפול הקרנל תחת התפריט filesystems בחר y באפשרות:

<code>quota support (config_quota) [n]</code>

אחרי הוספת התמיכה במכסות לקרנל הורד והתקן את חבילת התוכנות לניהול המכסות מהכתובת: http://sourceforge.net/projects/linuxqupta

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

הפעלת המכסות

etc/fstab/

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

/dev/hda2 /boot ext2 defaults 1 2
/dev/hda7 / ext2 defaults 1 1
/dev/hda9 /home ext2 defaults 1 1

בשביל להפעיל את המכסות על מחיצה ה-home נשנה את השורה

/dev/hda9 /home ext2 defaults 1 1

ונוסיף לה usrquota בשביל מכסות משתמש או grpquota בשביל מכסות קבוצה אפשר להוסיף את שניהם על ידי הפרדה בפסיק. עכשיו אם הוספנו מכסות משתמש הקובץ יראה כך:

/dev/hda9 /home ext2 defaults,usrquota 1 1

ובשביל מכסות קבוצה נשנה אותו שיראה כך:

/dev/hda9 /home ext2 defaults,grpquota 1 1

אם נרצה את שניהם נשנה את הקובץ שיראה כך:

/dev/hda9 /home ext2 defaults,usrquota,grpquota 1 1

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

quotacheck -avug

בכדי שתייצר את הקבצים הדרושים לעבודת עם המכסות

init

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

# Check quota and then turn quota on.
if [ -x /usr/sbin/quotacheck ]
then
echo "Checking quotas. This may take some time."
/usr/sbin/quotacheck -avug
echo " Done."
fi
if [ -x /usr/sbin/quotaon ]
then
echo "Turning on quota."
/usr/sbin/quotaon -avug
fi

חשוב שהסקריפט יתבצע רק אחרי שהמערכת קבצים ב etc/fstab/ הועלתה (mounted) אחרת הסקריפט לא יעבוד.

ניהול מכסות

תקופת חסד

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

הגבלה רכה

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

[test@ajaxler]$ quota
Disk quotas for user test (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 56 500 1000 14 0 0

בפלט אפשר לראות שמשתמש test מכניס את הפקודה quota לראות כמה מקום נשאר לו/ השדה quota עומד על 500 וזה ההגבלה הרכה שלו. אפשר גם לראות שאין הגבלה על ה-inodes והמכסה שווה לאפס (לא מוגבל)

הגבלה קשיחה

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

[test@ajaxler]$ quota
Disk quotas for user test (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 56 500 1000 14 0 0

בפלט אפשר לראות שמשתמש test מכניס את הפקודה quota לראות כמה מקום נשאר לו. השדה limit עומד על 1000 וזה ההגלבה הקשיחה שלו.

quota - כמה מקום נשאר לי?

הפקודה ללא דגלים בודקת את המגבלה של המשתמש ומציגה אותה:

[test@ajaxler]$ quota
Disk quotas for user test (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3 56 500 1000 14 0 0

אם ננתח את מה שאנחנו רואים:

  • המשתמש test מכניס את הפקודה quota לומקבל את הפלט הבא.
  • הfilesystem אומר לנו על איזה מחיצה מדובר dev/hda3/ במקרה שלנו ה- blocks מראה לנו כמה בלוקים בשימוש 56 במקרה שלנו.
  • quota הראשון הוא ההגבלה הרכה של בלוקים למשתמש ובדוגמא היא 500
  • ה limit הראשון מורה לנו על ההגבלה הקשיחה של המשתמש והיא שווה ל1000
  • files אומר לנו כמה קבצים יש למשתמש
  • אחריו אפשר לראות שוב פעם quota ו limit רק הפעם ההגבלה היא על כמות ה-inodes ולא הבלוקים.
  • והאחרון הוא הgrace והיא תקופת החסד שמוגדרת למשתמש.
  • הדגלים
  • בתוספת הדגל -g אנו נראה את המכסות של הקבוצה.:
quota -g testgrp
  • אם בתור root נרצה לראות מכסות למשתמשים אחרי נוכל להשתמש בדגל -u
quota -u jaxler

יראה את המכסות של המשתמש jaxler

quotaon - הפעל אותי

הפקודה מפעילה את המכסות ולרוב מומלץ להריץ אותה בהפעלה של המערכת.

  • הדגלים
    • בתוספת הדגל -a הפקודה תפעיל את המכסות על כל מערכות הקבצים התומכות בכך.
    • בתוספת הדגל -v הפקודה תציג הודעה עבור כל מערכת קבצים שהיא מפעילה.
    • בתוספת הדגל -u הפקודה מבוצעת על מכסות המשתמש, זוהי הברירת מחדל.
    • בתוספת הדגל -g הפקודה מבוצעת על מכסות הקבוצה.

quotaoff - כבה אותי

הפקודה מכבה את המכסות בכל מערכות הקבצים שהוגדרו לתמוך במכסות.הפקודה דומה מאוד ל- quotaon והדגלים זהים.

  • הדגלים
    • בתוספת הדגל -a הפקודה תכבה את המכסות על כל מערכות הקבצים התומכות בכך.
    • בתוספת הדגל -v הפקודה תציג הודעה עבור כל מערכת קבצים שהיא מכבה.
    • בתוספת הדגל -u הפקודה מבוצעת על מכסות המשתמש, זוהי הברירת מחדל.
    • בתוספת הדגל -g הפקודה מבוצעת על מכסות הקבוצה.

quotachek - בדוק את מערכת הקבצים

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

  • הדגלים
    • הדגל -b יוצר קבצי גיבוי לקבצים של המכסות לפני שמעדכן אותם במידע החדש
    • הדגל -v מראה לנו את הפעולות המתבצעות, בדרך כלל הפעולות לא מוצגות.
    • הדגל -d נוןעד לניפוי שגיאות, הוא מציג הרבה מידע שימושי אך הסריקה מתבצעת לאט.
    • הדגל -g בודק רק מידע הקשור לקבוצות ולא למשתמשים בודדים.
    • הדגל -c מורה לתוכנה לא לקרוא מקבצי המידע הקיימים.
    • הדגל -a בודק את כל מערכות הקבצים שהועלו.

edquota - קבע לי מכסה!

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

edquota -u username

זה יקח אותו לעורך הטקסט ונקבל את הטקסט הבא:

Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 52 500 1000 14 0 0

אנו יכולים לראות כאן שהמשתמש test משתמש ב 52 בלוקים שההגבלה הרכה שלו היא 500 וההגבלה הקשיחה שלו היא 1000. שני האפסים בסוף הם ההגבלה על ה inodes וכאשר הערך הוא 0 המשתמש לא מוגבל. בשביל להגביל קבוצה שלמה נשתמש בדגל -g:

edquota -g grupname

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

edquota -p jaxler user1user2user3

כדי לשים לב שהמשתמשים user1 user2 user3 נכתבים בלי רווח ומקבלים את ההגדרות מכסה שלהם מהמשתמש jaxler

  • הדגלים
    • -u נועד לקביעת מכסה למשתמש בודד
    • -g נועד לקביעת מכסה לקבוצה
    • -p מקצה את ההגבלה של משתמש ספציפי לכמות מסוימת של משתמשים שנרצה

repquota - סכם לי את המידע

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

User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 4129872 0 0 251337 0 0
amanda -- 860 0 0 56 0 0
nobody -- 4 0 0 1 0 0
bin -- 34292 0 0 1779 0 0
netdump -- 16 0 0 5 0 0
daemon -- 8 0 0 3 0 0
test -- 52 500 1000 13 0 0
  • הדגלים
    • בתוספת הדגל -a הפקודה תציג את כל המכסות בכל מערכות הקבצים המוגדרות לכך.
    • בתוספת הדגל -v הפקודה מראה את כל המכסות, גם אלו שלא בשימוש וכמו כן מוצג עוד מידע על המכסות כמו סטטיסטיקה בדומה לזו
Statistics:
Total blocks: 8
Data blocks: 2
Entries: 31
Used average: 15.500000

אם יש קבוצה או שם משתמש ארוך יותר מ9 תווים הדגל -t יציג את הפלט בצורה נוחה יותר

  • הדגל -g מציג סיכום מכסות לקבוצות.

שאלות נפוצות

  • שאלה: אני מקבל שגיאה בהפעלה של המחשב/ אחרי שהוא עושה mount ל fstab הוא פולט לי את השגיאה הזאת
quotaon: using //aquota.group on /dev/hda2: Invalid argument
  • תשובה: הבעיה היא שהקבצים מידע של המכסות לא נוצרו ולכן המערכת לא יכולה להפעיל את המכסות

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

quotacheck -avug

במקרים מסוימים נצטרך גם להוסיף את הדגל -m

  • שאלה: אני לא יודע לקמפל קרנל, מה לעשות?
    • תשובה: אם ההפצה שלך לא באה עם תמיכה במכסות ואתה צריך לקמפל מכסות לבד אך לא יודע איך מאוד מומלץ לקרוא את linux kernel howto בכתובת http://www.tldp.org/HOWTO/Kernel-HOWTO.html
  • שאלה: כיצד אני מתקין את התוכנות הקשורות לquota?
    • תשובה: אם אין לך את תוכנות המכסות בהפצה או שאתה רוצה להתקין את הגרסה הכי חדשה קודם כל תוריד את הקבצים מכאן: http://www.sourceforge.net/projects/linuxquota. ההתקנה היא רגילה:
$ ./configure
$ make
$ su
# make install
  • שאלה: יש לי שאלה והיא לא רשומה כאן
    • תשובה: ובכן אתם מוזמנים לשלוח לי שאלות, הארות או הערות בדואר לכתובת הבאה ואני ינסה לענות.

קישורים ומקורות

קישורים ומקורות

מדריכים/מבוא_לניהול_מכסות_quota.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0